Объект PK
Среда QuickJS, правила доступа к библиотекам и первый рабочий JavaScript-пример.
Что такое объект PK
PK — встроенный объект, через который JavaScript-код Скрипт-бокса получает данные текущего запуска Private Keeper и вызывает операции программы. Например, PK.login читает первое входное значение, PK.getPars(4) возвращает четвёртый результат обычного парсера, а PK.md5(text) вычисляет MD5 строки.
Объект создаёт сама программа и помещает его в глобальную область выполнения. Это не класс и не конструктор: обращайтесь к готовой переменной PK, не пишите new PK().
Объект PK и in-Line Kit работают с состоянием одного проекта. Запись PK.login в JavaScript соответствует значению |LOGIN| в выражении in-Line. Если достаточно короткой подстановки непосредственно в поле проекта, начните со .
Первый рабочий пример
Пример вычисляет MD5 строки test и сохраняет результат в динамическую переменную Digest.
1. Создайте переменную
Добавьте в проект динамическую переменную с точным именем Digest. Метод setDV изменяет существующую переменную; если имя не найдено, значение сохранить некуда.
3. Проверьте результат
После выполнения |DV|[Digest] возвращает 098f6bcd4621d373cade4e832627b4f6.
Здесь PK.md5(...) возвращает строку, а PK.setDV(...) выполняет отдельное действие и ничего не возвращает. Поэтому результат сначала помещён в переменную digest, а затем явно записан в состояние проекта.
Правила среды QuickJS
JavaScript выполняется движком QuickJS в глобальном контексте Скрипт-бокса. Код из руководств для браузера или Node.js подходит только тогда, когда он не зависит от возможностей отсутствующей среды.
Глобальный сценарий
Сценарий не является модулем ES6, поэтому верхнеуровневые import и export в нём недоступны. Объект PK уже находится в глобальной области и не требует подключения.
Подключённые библиотеки
Глобальные библиотеки доступны всей среде выполнения. Если библиотека предоставляет глобальный объект, обращайтесь к нему через globalThis.ИМЯ. Изолированные модули не становятся обычными переменными соседнего модуля.
Без Node.js
QuickJS не предоставляет среду Node.js: require(...) и встроенные модули Node.js недоступны. Для файлов, кодирования, шифрования и других операций используйте публичные методы PK.
Например, эти записи решают разные задачи:
Следующая запись для Скрипт-бокса неверна, потому что он выполняет глобальный сценарий, а не модуль ES6:
Порядок изучения
1. Свойства PK
Все доступные значения, их типы, источник, момент обновления и возможность изменения.
2. Данные и состояние
Результаты парсеров, входные значения, динамические переменные и критическая секция.
3. Строки и разбор
Изменение строк, выбор значений, обычный разбор и разбор регулярным выражением.
4. Файлы и защита данных
Файлы, кодирование и двоичные преобразования; шифрование и контрольные суммы вынесены в соседние страницы этого раздела.