Thanks for your interest! This is a small personal-use tool — issues and PRs are welcome.
pnpm install # runs `wxt prepare` via postinstall
pnpm dev # dev build + HMR → .output/chrome-mv3Load the unpacked extension from .output/chrome-mv3 at chrome://extensions (Developer
mode). Node ≥ 20 and pnpm ≥ 9.
There is no ESLint/Prettier — pnpm compile (strict tsc) and pnpm test are the only
checks, and CI runs both plus pnpm build. Run them before opening a PR:
pnpm compile # wxt prepare + tsc --noEmit
pnpm test # vitest
pnpm build # production bundle- Architecture and house style live in
AGENTS.md: pure core + injected effects (clock/sleep/DOM/network are parameters), pureparse*split fromfetch, unconfirmed endpoints throwNotDiscoveredErrorand the UI degrades to manual entry. - UI copy is Ukrainian; icons come from
react-icons/md— no native emoji. - Keep the fair-play throttles (poll floors, 429 backoff). reCAPTCHA is detected, never solved.
booking.uz's API shifts under us, so the most useful reports for endpoint issues include a debug capture. Use the Endpoint / API change issue template, and:
- Open the extension's Options page → «Дебаг» section → enable «Запис усіх запитів і подій».
- Reproduce the problem in the booking.uz tab.
- Click «Експортувати JSON» and attach the
uz-debug-*.jsonto the issue.
The export is redacted at record time: Bearer/JWT tokens, x-session-id, your user id,
names, email, phone, document and card fields are stripped or replaced with a stable hash —
so a reviewer can still tell "same session" without ever seeing the real value. The redaction
lives in src/lib/debug.ts (redactEvent) and is covered by
src/lib/debug.test.ts. If you add any field that can carry personal data, extend both.
- No
.harfiles, page snapshots, or raw API captures — they contain live JWTs, session ids, and passenger PII..gitignoreblocks them; keep it that way. - Test fixtures in
fixtures/must use anonymized data (fake names, emails, phones). - Don't paste tokens or personal data into issues, commits, or code comments.