Инструменты
Для приложения из одного файла инструменты не обязательны: его можно вставить в Pairx и открыть предпросмотр. Но с ними быстрее — приложение открывается у нескольких участников сразу, перезапускается при сохранении, а проверки сервиса видны до отправки.
Установка#
Нужен Node.js 20 или новее.
npm install -g https://dev.pairx.org/download/pairx-apps-cli.tgz
pairx helpПакет без зависимостей; его код открыт и лежит в том же архиве.
pairx create — начать#
pairx create my-appСоздаёт my-app/index.html — рабочее голосование из одного файла: хранилище slot, нативная кнопка Pairx, светлая и тёмная тема. Быстрый режим Pairx принимает его как есть.
pairx dev — эмулятор#
pairx dev my-app # или pairx dev app.htmlОткройте http://127.0.0.1:5174/ в браузере. Эмулятор показывает приложение так, как его увидят участники чата:
- Та же защита. Страница получает ту же политику безопасности (CSP) и заголовки, что в Pairx, а мост — тот же скрипт, что на iPhone и Android. Что работает здесь, работает и там.
- Ограничения iPhone включены. Нет
WebAssembly,indexedDB, WebAudio и WebGL — как на iPhone в защищённом режиме. Флаг--no-iphone-limitsих снимает, но в Pairx на iPhone они всё равно не заработают. - Несколько участников. От одного до четырёх участников одного чата рядом (
--participants 3), общее хранилище с правилами сервиса: порядокseq, форма изменений, пределы, праваwriters. Участник 1 — автор приложения. - Интерфейс Pairx. Шапка с пометкой «Код пользователя», нативная кнопка, «Назад», окна и подсказки.
- Перезапуск при сохранении. Данные остаются; новые хранилища начинаются пустыми. «Сбросить данные» начинает с чистого листа, «Удалить мои данные» в меню участника присылает остальным
storage.reset. - Личный режим.
--personal— у каждого участника свой контекст, как при открытии по ссылке. - Тема.
ui.themeиtheme.changedследуют переключателю эмулятора, а CSSprefers-color-schemeв рамке — теме браузера.
Журнал под участниками показывает каждый вызов моста и каждое событие — удобно, чтобы понять, что именно отправило приложение.
pairx check — проверка до отправки#
pairx check my-appТе же проверки, что сервис делает при отправке:
✗— сервис не примет приложение: ошибка в манифесте или превышен предел. Код выхода 1.!— примет, но версия уйдёт на ручную проверку: WebRTC, адреса STUN/TURN, обращение к окнам фреймов, нажатие ссылок из кода, обфускация, майнеры.·— в песочнице не заработает, только предупреждение: сеть, внешние адреса, WebGL, WebAudio, IndexedDB, WebAssembly.
Полный список проверок — в справочнике манифеста.
SDK#
@pairx/apps-sdk — типизированная обёртка моста для проектов со сборкой (Vite, esbuild): хранилище само применяет изменения по порядку и перечитывает снимок при storage.reset, документ сам повторяет запись при conflict, нативные кнопки и тема — в одну строку. Подробнее — в справочнике SDK.
npm install https://dev.pairx.org/download/pairx-apps-sdk-0.1.0.tgzПриложение со сборкой отправляется в Pairx так же — одним HTML-файлом: соберите проект в один файл (например, vite-plugin-singlefile), и быстрый режим примет его как есть.
Скоро#
- Вход разработчика и отправка версий из командной строки, без телефона.
- Пакеты в npm.
Что меняется в платформе — в разделе Изменения.