Pairxдля разработчиков

Инструменты

Для приложения из одного файла инструменты не обязательны: его можно вставить в 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 следуют переключателю эмулятора, а CSS prefers-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.

Что меняется в платформе — в разделе Изменения.