Документация объекта PK в среде QuickJS

Описание

Объект в среде движка QuickJS PK является интеграцией из среды Delphi (на чем написан Private Keeper) и не основывается на традиционной концепции класса. Это бесклассовый объект, имеющий набор методов. Он служит в качестве интерфейса между Delphi и JavaScript, предоставляя возможности для взаимодействия между двумя средами. Он используется в самом коде через переменную с именем PK.

Важно учитывать следующие особенности при работе с QuickJS:

  1. Библиотеки в QuickJS могут быть двух типов: ES6-модули (изолированные) и глобальные (не изолированные). ES6-модули изолированы друг от друга, а глобальные библиотеки доступны во всей среде выполнения.
  2. Чтобы получить доступ к ES6-модулям из глобального контекста, необходимо использовать встроенную переменную JavaScript globalThis. Это позволяет работать с модулями, которые в обычных условиях недоступны в глобальной области видимости.
  3. Каждый скрипт выполняется в глобальном контексте, что означает, что в них не будут доступны ключевые слова import и export, как это было бы в модульной системе ES6.
  4. Для выполнения скриптов используется движок QuickJS. Важно понимать, что в нем недоступны функции и библиотеки, характерные для NodeJS, такие как require и встроенные модули NodeJS.

Эти особенности нужно учитывать при интеграции и разработке скриптов для использования в среде Private Keeper с QuickJS.


Пример

JavaScript код в среде in-Line Kit - Studo

PK.md5(PK.login + PK.getPars(4));


Свойства объекта

login: string


pwd: string


ip: string


port: string


proxyType: string


proxy: string


userAgent: string


response: string


headers: string


cookies: string


conclusion: integer


AGResult: integer

Методы управления данными

getPars(index)


setPars(index, value)


getRegex(index)


setRegex(index, value)


getinputValue(Index)


getDV(name)


setDV(name, value)

Методы критической секции

enterCriticalSection


leaveCriticalSection

Методы манипуляции со строками

getValueByKey(input)

random(alphabet, len, len2)


lower(input)


upper(input)


fupper(input)


removenum(input)


urlEncode(input)


urlDecode(input)


fdspace(input)


edspace(input)


script(input)


demptystr(input)


dupDel(input)


getLine(input, line)


getChar(input, index)


getCount(input)


length(input)


regexGlue(input)


simpleGlue(input)


escJSON(input)


simplePars(from, _to, _in, index = 1)


regexPars(input, group, expression)


replaceStr(from, _to, _in)


regexReplace(expr, _to, _in)

Методы управления прокси

deleteProxy()


freezeProxy(input)


nextProxy()


setProxy(proxy, _type)


Методы кодирования и хеширования

md5(input)


base64(input)


sha1(input)


sha256(input)


sha512(input)


fileToBase64(input)


generatePBKDF2Key(input)


generateScryptKey(input)


decodeBase64(input)


SHA3Hash(input)


SHA2Hash(input)


bcryptHash(input)


AESEncrypt(input)


AESDecrypt(input)


RSAEncrypt(input)


RSADecrypt(input)


randomBytes(input)


stringToByteArray(input)


byteArrayToString(input)


AESGCMEncrypt(input)


AESGCMDecrypt(input)


UUIDV4(input)


hextobase64(input)


base64tohex(input)


Различные методы

math(input)


dll(name, func, params)


savefile(input)


sleep(time)


addID(ID)


delID(ID)


unixToDate(input, dateType = 'dd/mm/yy')