Объект в среде движка QuickJS PK
является интеграцией из среды Delphi (на чем написан Private Keeper) и не основывается на традиционной концепции класса. Это бесклассовый объект, имеющий набор методов. Он служит в качестве интерфейса между Delphi и JavaScript, предоставляя возможности для взаимодействия между двумя средами. Он используется в самом коде через переменную с именем PK.
Важно учитывать следующие особенности при работе с QuickJS:
globalThis
. Это позволяет работать с модулями, которые в обычных условиях недоступны в глобальной области видимости.import
и export
, как это было бы в модульной системе ES6.require
и встроенные модули NodeJS.Эти особенности нужно учитывать при интеграции и разработке скриптов для использования в среде Private Keeper с QuickJS.
JavaScript код в среде in-Line Kit - Studo
PK.md5(PK.login + PK.getPars(4));
login: string
Описание: Возвращает первое входное значение. (обычно логин)
Тип доступа: Только для чтения.
pwd: string
Описание: Возвращает второе входное значение. (обычно пароль)
Тип доступа: Только для чтения.
ip: string
Описание: IP-адрес.
Тип доступа: Только для чтения.
port: string
Описание: Порт подключения.
Тип доступа: Только для чтения.
proxyType: string
Описание: Тип прокси-сервера.
Тип доступа: Только для чтения.
proxy: string
Описание: Полная информация о прокси-сервере.
Тип доступа: Только для чтения.
userAgent: string
Описание: User-Agent, используемый в запросе.
Тип доступа: Только для чтения.
response: string
Описание: Текст ответа сервера.
Тип доступа: Только для чтения.
headers: string
Описание: Заголовки ответа сервера.
Тип доступа: Только для чтения.
cookies: string
Описание: Cookies, полученные от сервера.
Тип доступа: Только для чтения.
conclusion: integer
Описание: Заключение или итоговый результат.
Тип доступа: Чтение/Запись.
Возможные значения:
Хороший результат = 1;
Плохой результат = 0;
Ошибка = 2;
Требуется капча = 3;
Прочее = 99;
AGResult: integer
Описание: Результат работы AG модуля.
Тип доступа: Только для чтения.
getPars(index)
Описание: Получает значение парсера по указанному индексу.
Параметры:
index
(Integer): Индекс парсера.
Возвращает: (String) Значение парсера.
Примечание: |PARS|
- это переменная, представляющая обычный парсер. Необходимо указывать индекс для получения соответствующего значения.
setPars(index, value)
Описание: Устанавливает значение для парсера по указанному индексу.
Параметры:
index
(Integer): Индекс парсера.
value
(String): Значение для установки.
Возвращает: Ничего.
Примечание: |PARS|
- это переменная, представляющая обычный парсер. Индекс используется для определения конкретного парсера, которому будет присвоено значение.
getRegex(index)
Описание: Получает значение парсера по регулярному выражению по указанному индексу.
Параметры:
index
(Integer): Индекс парсера.
Возвращает: (String) Значение парсера.
Примечание: |REGEX|
- это переменная, представляющая парсер, работающий с регулярными выражениями. Необходимо указывать индекс для получения соответствующего значения.
setRegex(index, value)
Описание: Устанавливает значение для парсера по регулярному выражению по указанному индексу.
Параметры:
index
(Integer): Индекс парсера.
value
(String): Значение для установки.
Возвращает: Ничего.
Примечание: |REGEX|
- это переменная, представляющая парсер, работающий с регулярными выражениями. Индекс используется для определения конкретного парсера, которому будет присвоено значение.
getinputValue(Index)
Описание: Получает входное значение по индексу.
Параметры:
index
(Integer): Индекс входного значения.
Возвращает: (String) Входное значение.
getDV(name)
Описание: Получает значение динамической переменной.
Параметры:
name
(String): Имя переменной.
Возвращает: (String) Значение переменной.
setDV(name, value)
Описание: Устанавливает значение динамической переменной.
Параметры:
name
(String): Имя переменной.
value
(String): Значение для установки.
Возвращает: Ничего.
enterCriticalSection
Описание: Входит в критическую секцию.
Возвращает: Ничего.
leaveCriticalSection
Описание: Выходит из критической секции.
Возвращает: Ничего.
getValueByKey(input)
Описание: Извлекает значение по ключу из многострочного текста.
Параметры:
input
(String): Входная строка формата: “Многострочный текст|KEYNAME|Ключ”, где:
Первая часть (до |KEYNAME|) содержит многострочный текст формата “ключ: значение”.
Вторая часть (после |KEYNAME|) содержит ключ, по которому нужно найти значение.
Возвращает: (String) Значение, соответствующее ключу в многострочном тексте. Если ключ не найден, возвращает сообщение “Key not found: Ключ”.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат (не содержит |KEYNAME|).
random(alphabet, len, len2)
Описание: Генерирует случайную строку.
Параметры:
alphabet
(String): Алфавит для генерации.
len
(Integer): Минимальная длина строки.
len2
(Integer): Максимальная длина строки.
Возвращает: (String) Случайная строка.
lower(input)
Описание: Преобразует строку в нижний регистр.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка в нижнем регистре.
upper(input)
Описание: Преобразует строку в верхний регистр.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка в верхнем регистре.
fupper(input)
Описание: Преобразует первый символ строки в верхний регистр.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка с первым символом в верхнем регистре.
removenum(input)
Описание: Удаляет все цифры из строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка без цифр.
urlEncode(input)
Описание: Кодирует строку для использования в URL.
Параметры:
input
(String): Входная строка.
Возвращает: (String) URL-кодированная строка.
urlDecode(input)
Описание: Декодирует URL-кодированную строку.
Параметры:
input
(String): URL-кодированная строка.
Возвращает: (String) Декодированная строка.
fdspace(input)
Описание: Удаляет пробелы в начале строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка без пробелов в начале.
edspace(input)
Описание: Удаляет пробелы в конце строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка без пробелов в конце.
script(input)
Описание: Выполняет скриптовый код.
Параметры:
input
(String): Скрипт для выполнения.
Возвращает: (String) Результат выполнения скрипта.
demptystr(input)
Описание: Удаляет пустые строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка без пустых строк.
dupDel(input)
Описание: Удаляет дубликаты строк.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка без дубликатов.
getLine(input, line)
Описание: Получает строку по номеру строки.
Параметры:
input
(String): Входная строка.
line
(Integer): Номер строки.
Возвращает: (String) Запрошенная строка.
getChar(input, index)
Описание: Получает символ по индексу.
Параметры:
input
(String): Входная строка.
index
(Integer): Индекс символа.
Возвращает: (String) Символ по заданному индексу.
getCount(input)
Описание: Возвращает количество элементов в строке.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Количество элементов.
length(input)
Описание: Возвращает длину входной строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Длина строки.
regexGlue(input)
Описание: Склеивает данные из |REGEX| по индексам с добавлением разделителя.
Параметры:
input
(String): Входная строка в формате JSON. Пример: |REGEXGLUE|[1, | ,2, \ ,3]
. Итоговое значение: ко всем значениям в |REGEX|[1], |REGEX|[2] и |REGEX|[3] будет добавлен указанный разделитель.
Возвращает: (String) Итоговое значение.
simpleGlue(input)
Описание: Склеивает данные из |REGEX| по индексу и значения.
Параметры:
input
(String): Входная строка в формате JSON. Пример: |SIMPLEGLUE|[1, - Значение]
. Итоговое значение: ко всем значениям в |REGEX|[1] будет добавлено " - Значение".
Возвращает: (String) Итоговое значение.
escJSON(input)
Описание: Экранирует JSON значение.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Экранированное значение.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
simplePars(from, _to, _in, index = 1)
Описание: Простой парсер строк.
Параметры:
from
(String): Начальная строка для поиска.
_to
(String): Конечная строка для поиска.
_in
(String): Входная строка для анализа.
index
(Integer, optional): Индекс для поиска, по умолчанию 1.
Возвращает: (String) Результат парсинга.
regexPars(input, group, expression)
Описание: Парсинг строки с использованием регулярных выражений.
Параметры:
input
(String): Входная строка.
group
(Integer): Группа для возврата.
expression
(String): Регулярное выражение.
Возвращает: (String) Результат парсинга.
replaceStr(from, _to, _in)
Описание: Заменяет часть строки.
Параметры:
from
(String): Часть строки для замены.
_to
(String): Новая часть строки.
_in
(String): Исходная строка.
Возвращает: (String) Измененная строка.
regexReplace(expr, _to, _in)
Описание: Заменяет части строки на основе регулярного выражения.
Параметры:
expr
(String): Регулярное выражение.
_to
(String): Строка замены.
_in
(String): Исходная строка.
Возвращает: (String) Измененная строка.
deleteProxy()
Описание: Удаляет текущий прокси.
Возвращает: Ничего.
freezeProxy(input)
Описание: Замораживает текущий прокси на указанное время в секундах.
Параметры:
input
(Integer): Время в секундах.
Возвращает: Ничего.
nextProxy()
Описание: Переключает на следующий прокси.
Возвращает: (String) Информация о следующем прокси.
setProxy(proxy, _type)
Описание: Устанавливает новый прокси.
Параметры:
proxy
(String): Адрес прокси.
_type
(String): Тип прокси.
Возвращает: Ничего.
md5(input)
Описание: Вычисляет MD5-хеш строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) MD5-хеш.
base64(input)
Описание: Кодирует строку в формат Base64.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Строка в формате Base64.
sha1(input)
Описание: Вычисляет SHA1-хеш строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) SHA1-хеш.
sha256(input)
Описание: Вычисляет SHA256-хеш строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) SHA256-хеш.
sha512(input)
Описание: Вычисляет SHA512-хеш строки.
Параметры:
input
(String): Входная строка.
Возвращает: (String) SHA512-хеш.
fileToBase64(input)
Описание: Конвертирует файл в строку Base64.
Параметры:
input
(String): Путь к файлу.
Возвращает: (String) Строка файла в формате Base64.
generatePBKDF2Key(input)
Описание: Генерирует ключ с использованием алгоритма PBKDF2.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
text
: Текст для генерации ключа.
salt
: Соль для генерации ключа.
keyLength
(опционально, по умолчанию 128): Длина ключа в байтах.
hashSizeBits
(опционально, по умолчанию 256): Размер хеша в битах (256, 512 для SHA-2; 224, 256, 384, 512 для SHA-3).
counter
(опционально, по умолчанию 10000): Количество итераций.
outputFormat
(опционально, по умолчанию ‘hexa’): Формат выходных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’).
hashFunction
(опционально, по умолчанию ‘sha2’): Хеш-функция (‘sha2’, ‘sha3’).
Возвращает: (String) Сгенерированный ключ.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
generateScryptKey(input)
Описание: Генерирует ключ с использованием алгоритма Scrypt.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
password
: Пароль для генерации ключа.
salt
: Соль для генерации ключа.
N
: Параметр N (cost factor) для scrypt.
r
: Параметр r (block size) для scrypt.
p
: Параметр p (parallelization factor) для scrypt.
outputSize
(опционально, по умолчанию 64): Размер выходного ключа в байтах.
Возвращает: (String) Сгенерированный ключ в шестнадцатеричном формате.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
decodeBase64(input)
Описание: Декодирует строку в формате Base64.
Параметры:
input
(String): Входная строка в формате Base64.
Возвращает: (String) Декодированная строка.
SHA3Hash(input)
Описание: Вычисляет хеш SHA-3.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
text
: Текст для хеширования.
type
(опционально, по умолчанию ‘sha’): Тип SHA-3 (‘sha’, ‘xof’).
hashSizeBits
(опционально, по умолчанию 256): Размер хеша в битах для типа ‘sha’ (224, 256, 384, 512) или в байтах для типа ‘xof’.
outputFormat
(опционально, по умолчанию ‘hexa’): Формат выходных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’).
version
(опционально, по умолчанию 256): Версия SHA-3 (224, 256, 384, 512).
Возвращает: (String) Хеш SHA-3.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
SHA2Hash(input)
Описание: Вычисляет хеш SHA-2.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
text
: Текст для хеширования.
hashSizeBits
(опционально, по умолчанию 256): Размер хеша в битах (256, 384, 512).
outputFormat
(опционально, по умолчанию ‘hexa’): Формат выходных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’).
Возвращает: (String) Хеш SHA-2.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
bcryptHash(input)
Описание: Вычисляет хеш с использованием Bcrypt.
Параметры:
input
(String): Входная строка.
Возвращает: (String) Хеш Bcrypt.
AESEncrypt(input)
Описание: Шифрует строку с использованием AES.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
text
: Текст для шифрования.
key
: Ключ шифрования.
mode
(опционально, по умолчанию ‘CBC’): Режим работы AES (‘ECB’, ‘CBC’, ‘OFB’, ‘CTR’).
keyLength
(опционально, по умолчанию 256): Длина ключа в битах (128, 192, 256).
outputFormat
(опционально, по умолчанию ‘hexa’): Формат выходных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’, ‘raw’).
padding
(опционально, по умолчанию False): Использовать ли паддинг (‘PKCS7’, ‘nopadding’).
Возвращает: (String) Зашифрованная строка или сообщение об ошибке, если шифрование не удалось.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
AESDecrypt(input)
Описание: Дешифрует строку с использованием AES.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
text
: Зашифрованная строка.
key
: Ключ шифрования.
mode
(опционально, по умолчанию ‘CBC’): Режим работы AES (‘ECB’, ‘CBC’, ‘OFB’, ‘CTR’).
keyLength
(опционально, по умолчанию 256): Длина ключа в битах (128, 192, 256).
outputFormat
(опционально, по умолчанию ‘hexa’): Формат выходных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’, ‘raw’).
padding
(опционально, по умолчанию False): Использовать ли паддинг (‘PKCS7’, ‘nopadding’).
Возвращает: (String) Дешифрованная строка или сообщение об ошибке, если дешифрование не удалось.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
RSAEncrypt(input)
Описание: Шифрует строку с использованием RSA.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
text
: Текст для шифрования.
modulus
: Модуль ключа RSA.
publicExponent
: Публичный экспонент ключа RSA.
privateExponent
: Приватный экспонент ключа RSA.
keyLength
(опционально, по умолчанию 2048): Длина ключа в битах (2048, 3072, 4096).
inputFormat
(опционально, по умолчанию ‘hexa’): Формат входных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’, ‘raw’).
outputFormat
(опционально, по умолчанию ‘hexa’): Формат выходных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’, ‘raw’).
encType
(опционально, по умолчанию ‘oaep/pss’): Тип шифрования (‘oaep/pss’, ‘v1.5’).
Возвращает: (String) Зашифрованный текст или сообщение об ошибке, если шифрование не удалось.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
RSADecrypt(input)
Описание: Дешифрует строку с использованием RSA.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
text
: Зашифрованная строка.
modulus
: Модуль ключа RSA.
publicExponent
: Публичный экспонент ключа RSA.
privateExponent
: Приватный экспонент ключа RSA.
keyLength
(опционально, по умолчанию 2048): Длина ключа в битах (2048, 3072, 4096).
inputFormat
(опционально, по умолчанию ‘hexa’): Формат входных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’, ‘raw’).
outputFormat
(опционально, по умолчанию ‘hexa’): Формат выходных данных (‘hexa’, ‘base64’, ‘base64url’, ‘base32’, ‘raw’).
encType
(опционально, по умолчанию ‘oaep/pss’): Тип шифрования (‘oaep/pss’, ‘v1.5’).
Возвращает: (String) Дешифрованный текст или сообщение об ошибке, если дешифрование не удалось.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
randomBytes(input)
Описание: Генерирует массив случайных байтов указанной длины.
Параметры:
input
(String): Входная строка, представляющая длину массива случайных байтов. Пример входной строки: "16"
для генерации массива из 16 случайных байтов.
Возвращает: (String) Строка, представляющая массив случайных байтов в формате JSON.
Исключения: Выбрасывает исключение, если входная строка не может быть преобразована в целое число.
stringToByteArray(input)
Описание: Преобразует строку в массив байтов и возвращает его в формате JSON.
Параметры:
input
(String): Входная строка, которую необходимо преобразовать в массив байтов.
Возвращает: (String) Строка в формате JSON, представляющая массив байтов. Пример результата: [104, 101, 108, 108, 111]
, что соответствует строке “hello” в UTF-8.
Исключения: Выбрасывает исключение, если входная строка не может быть обработана.
byteArrayToString(input)
Описание: Преобразует массив байтов, представленный в формате JSON, в строку с использованием кодировки UTF-8.
Параметры:
input
(String): Входная строка в формате JSON, представляющая массив байтов. Пример входной строки: [104, 101, 108, 108, 111]
, что соответствует строке “hello” в UTF-8.
Возвращает: (String) Строка, полученная из массива байтов.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если элементы массива не являются числами.
AESGCMEncrypt(input)
Описание: Шифрует текст с использованием алгоритма AES-GCM.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
text
: Текст для шифрования.
key
: Ключ шифрования.
associatedData
(опционально): Ассоциированные данные.
keyLength
(опционально, по умолчанию 256): Длина ключа в битах (128, 192, 256).
tagSizeBits
(опционально, по умолчанию 16): Размер тега в байтах (1-16).
outputFormat
(опционально, по умолчанию ‘hexa’): Формат вывода (‘hexa’, ‘base64’, ‘base64url’, ‘base32’).
Возвращает: (String) Зашифрованный текст в формате JSON, содержащий tag
и encryptedText
.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
AESGCMDecrypt(input)
Описание: Расшифровывает зашифрованный текст с использованием алгоритма AES-GCM.
Параметры:
input
(String): Входная строка в формате JSON, содержащая следующие параметры:
encryptedText
: Зашифрованный текст.
tag
: Тег для верификации.
key
: Ключ шифрования.
associatedData
(опционально): Ассоциированные данные.
keyLength
(опционально, по умолчанию 256): Длина ключа в битах (128, 192, 256).
tagSizeBits
(опционально, по умолчанию 16): Размер тега в байтах (1-16).
outputFormat
(опционально, по умолчанию ‘hexa’): Формат вывода (‘hexa’, ‘base64’, ‘base64url’, ‘base32’).
Возвращает: (String) Расшифрованный текст или сообщение об ошибке, если расшифровка не удалась.
Исключения: Выбрасывает исключение, если входная строка имеет некорректный формат JSON или если отсутствуют обязательные параметры.
UUIDV4(input)
Описание: Генерирует уникальный UUIDV4.
Параметры: Нет входных параметров.
Возвращает: (String) Сгенерированный UUIDV4.
hextobase64(input)
Описание: Преобразует шестнадцатеричную строку в строку в формате Base64. Если длина строки нечетная или данные не могут быть преобразованы, возвращает сообщение об ошибке.
Параметры:
input
(String): Шестнадцатеричная строка для преобразования в Base64.
Возвращает: Строку в формате Base64 или сообщение об ошибке.
base64tohex(input)
Описание: Преобразует строку в формате Base64 в шестнадцатеричную строку. В случае ошибки при декодировании возвращает сообщение об ошибке.
Параметры:
input
(String): Строка в формате Base64 для преобразования в шестнадцатеричную строку.
Возвращает: Шестнадцатеричную строку или сообщение об ошибке.
math(input)
Описание: Выполняет математические операции.
Параметры:
input
(String): Входная строка с математическим выражением.
Возвращает: (String) Результат математических
dll(name, func, params)
Описание: Вызывает функцию из DLL.
Параметры:
name
(String): Имя DLL.
func
(String): Имя функции.
params
(…Strings): Параметры для функции.
Возвращает: (String) Результат выполнения функции.
savefile(input)
Описание: Сохраняет данные в файл относительно пути созданной сессии с возможностью перезаписи, добавления к существующему файлу или сохранения с инкрементированным именем. Поддерживает сохранение текстовых и бинарных данных (Base64). В случае ошибок возвращает сообщение об ошибке.
Параметры:
input
(String): Имя файла, включая путь (если необходимо) и команды, разделённые символом |:
Возвращает: Сообщение об успешном сохранении или об ошибке.
sleep(time)
Описание: Останавливает выполнение на указанное время.
Параметры:
time
(Integer): Время в миллисекундах.
Возвращает: Ничего.
addID(ID)
Описание: Добавляет ID.
Параметры:
ID
(String): Идентификатор для добавления.
Возвращает: Ничего.
delID(ID)
Описание: Удаляет ID.
Параметры:
ID
(String): Идентификатор для удаления.
Возвращает: Ничего.
unixToDate(input, dateType = 'dd/mm/yy')
Описание: Конвертирует время Unix в дату.
Параметры:
input
(String): Время Unix.
dateType
(String, optional): Формат даты, по умолчанию ‘dd/mm/yy’.
Возвращает: (String) Строковое представление даты.