@maudecode/talaria-web 1.18.0 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_release.json +8 -8
- package/dist/api/auth-raw.js +16 -16
- package/dist/api/auth-raw.js.map +1 -1
- package/dist/api/automation-raw.d.ts +2 -2
- package/dist/api/automation-raw.js +32 -32
- package/dist/api/automation-raw.js.map +1 -1
- package/dist/api/automation-router.d.ts +102 -22
- package/dist/api/automation-router.js +15 -13
- package/dist/api/automation-router.js.map +1 -1
- package/dist/api/chat-router.d.ts +1205 -34
- package/dist/api/chat-router.js +158 -78
- package/dist/api/chat-router.js.map +1 -1
- package/dist/api/git-router.d.ts +2 -2
- package/dist/api/git-router.js +29 -29
- package/dist/api/git-router.js.map +1 -1
- package/dist/api/raw-routes.d.ts +3 -3
- package/dist/api/raw-routes.js +63 -61
- package/dist/api/raw-routes.js.map +1 -1
- package/dist/api/router.d.ts +6 -6
- package/dist/api/router.js +22 -22
- package/dist/api/router.js.map +1 -1
- package/dist/api/session-visibility.d.ts +4 -4
- package/dist/api/session-visibility.js +26 -16
- package/dist/api/session-visibility.js.map +1 -1
- package/dist/api/sessions-router.d.ts +1928 -124
- package/dist/api/sessions-router.js +177 -173
- package/dist/api/sessions-router.js.map +1 -1
- package/dist/api/settings-router.d.ts +427 -9
- package/dist/api/settings-router.js +48 -32
- package/dist/api/settings-router.js.map +1 -1
- package/dist/api/sse-routes.d.ts +2 -2
- package/dist/api/sse-routes.js +63 -63
- package/dist/api/sse-routes.js.map +1 -1
- package/dist/api/tools-raw.d.ts +5 -0
- package/dist/api/tools-raw.js +58 -33
- package/dist/api/tools-raw.js.map +1 -1
- package/dist/api/tools-router.d.ts +663 -91
- package/dist/api/tools-router.js +309 -52
- package/dist/api/tools-router.js.map +1 -1
- package/dist/api/transcribe-stream.d.ts +16 -0
- package/dist/api/transcribe-stream.js +172 -0
- package/dist/api/transcribe-stream.js.map +1 -0
- package/dist/app.d.ts +4 -1
- package/dist/app.js +66 -47
- package/dist/app.js.map +1 -1
- package/dist/auth/gate.js +10 -9
- package/dist/auth/gate.js.map +1 -1
- package/dist/auth/passkeys.d.ts +15 -14
- package/dist/auth/passkeys.js +89 -91
- package/dist/auth/passkeys.js.map +1 -1
- package/dist/auth/store.d.ts +17 -7
- package/dist/auth/store.js +93 -52
- package/dist/auth/store.js.map +1 -1
- package/dist/bin/talaria-web.js +12 -81
- package/dist/bin/talaria-web.js.map +1 -1
- package/dist/cli/ctl.js +2 -1
- package/dist/cli/ctl.js.map +1 -1
- package/dist/cli/dotenv.d.ts +5 -0
- package/dist/cli/dotenv.js +14 -2
- package/dist/cli/dotenv.js.map +1 -1
- package/dist/cli/launcher.js +5 -5
- package/dist/cli/launcher.js.map +1 -1
- package/dist/cli/main.d.ts +1 -0
- package/dist/cli/main.js +85 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/supervise.d.ts +2 -0
- package/dist/cli/supervise.js +67 -4
- package/dist/cli/supervise.js.map +1 -1
- package/dist/config/agent-config.d.ts +34 -11
- package/dist/config/agent-config.js +113 -58
- package/dist/config/agent-config.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +14 -5
- package/dist/config.js.map +1 -1
- package/dist/fs/atomic.d.ts +1 -0
- package/dist/fs/atomic.js +4 -1
- package/dist/fs/atomic.js.map +1 -1
- package/dist/fs/stat.d.ts +1 -0
- package/dist/fs/stat.js +11 -0
- package/dist/fs/stat.js.map +1 -0
- package/dist/http/context.d.ts +14 -9
- package/dist/http/context.js +29 -20
- package/dist/http/context.js.map +1 -1
- package/dist/onboarding.d.ts +2 -2
- package/dist/onboarding.js +10 -8
- package/dist/onboarding.js.map +1 -1
- package/dist/profiles/profiles.d.ts +10 -4
- package/dist/profiles/profiles.js +77 -30
- package/dist/profiles/profiles.js.map +1 -1
- package/dist/projects.d.ts +15 -6
- package/dist/projects.js +55 -47
- package/dist/projects.js.map +1 -1
- package/dist/providers/catalog.d.ts +78 -12
- package/dist/providers/catalog.js +445 -141
- package/dist/providers/catalog.js.map +1 -1
- package/dist/providers/env-file.d.ts +10 -3
- package/dist/providers/env-file.js +24 -75
- package/dist/providers/env-file.js.map +1 -1
- package/dist/providers/runtime-env.d.ts +4 -2
- package/dist/providers/runtime-env.js +9 -6
- package/dist/providers/runtime-env.js.map +1 -1
- package/dist/providers/tables.d.ts +3 -1
- package/dist/providers/tables.js +4 -2
- package/dist/providers/tables.js.map +1 -1
- package/dist/redact.js +18 -9
- package/dist/redact.js.map +1 -1
- package/dist/release.d.ts +7 -0
- package/dist/release.js +14 -0
- package/dist/release.js.map +1 -1
- package/dist/runtime.d.ts +5 -1
- package/dist/runtime.js +233 -90
- package/dist/runtime.js.map +1 -1
- package/dist/server.js +10 -0
- package/dist/server.js.map +1 -1
- package/dist/sessions/anchor.d.ts +9 -3
- package/dist/sessions/anchor.js +28 -36
- package/dist/sessions/anchor.js.map +1 -1
- package/dist/sessions/background-events.d.ts +2 -0
- package/dist/sessions/background-events.js +10 -0
- package/dist/sessions/background-events.js.map +1 -0
- package/dist/sessions/background-tasks.d.ts +26 -20
- package/dist/sessions/background-tasks.js +88 -86
- package/dist/sessions/background-tasks.js.map +1 -1
- package/dist/sessions/background-updates.d.ts +15 -8
- package/dist/sessions/background-updates.js +101 -25
- package/dist/sessions/background-updates.js.map +1 -1
- package/dist/sessions/cli-sessions.d.ts +15 -5
- package/dist/sessions/cli-sessions.js +62 -43
- package/dist/sessions/cli-sessions.js.map +1 -1
- package/dist/sessions/completions.d.ts +30 -2
- package/dist/sessions/completions.js +294 -53
- package/dist/sessions/completions.js.map +1 -1
- package/dist/sessions/compress.d.ts +8 -0
- package/dist/sessions/compress.js +2 -2
- package/dist/sessions/compress.js.map +1 -1
- package/dist/sessions/drafts.d.ts +14 -10
- package/dist/sessions/drafts.js +38 -43
- package/dist/sessions/drafts.js.map +1 -1
- package/dist/sessions/gateway-sessions.d.ts +46 -0
- package/dist/sessions/gateway-sessions.js +378 -0
- package/dist/sessions/gateway-sessions.js.map +1 -0
- package/dist/sessions/goals.d.ts +31 -0
- package/dist/sessions/goals.js +75 -0
- package/dist/sessions/goals.js.map +1 -0
- package/dist/sessions/journal.d.ts +5 -79
- package/dist/sessions/journal.js +15 -606
- package/dist/sessions/journal.js.map +1 -1
- package/dist/sessions/list.d.ts +27 -18
- package/dist/sessions/list.js +133 -131
- package/dist/sessions/list.js.map +1 -1
- package/dist/sessions/merge.d.ts +68 -10
- package/dist/sessions/merge.js +259 -51
- package/dist/sessions/merge.js.map +1 -1
- package/dist/sessions/notices.d.ts +22 -0
- package/dist/sessions/notices.js +72 -0
- package/dist/sessions/notices.js.map +1 -0
- package/dist/sessions/pending.d.ts +10 -4
- package/dist/sessions/pending.js +83 -7
- package/dist/sessions/pending.js.map +1 -1
- package/dist/sessions/prefix-index.d.ts +82 -0
- package/dist/sessions/prefix-index.js +232 -0
- package/dist/sessions/prefix-index.js.map +1 -0
- package/dist/sessions/recovery.d.ts +4 -7
- package/dist/sessions/recovery.js +97 -281
- package/dist/sessions/recovery.js.map +1 -1
- package/dist/sessions/relay.d.ts +20 -20
- package/dist/sessions/relay.js +205 -127
- package/dist/sessions/relay.js.map +1 -1
- package/dist/sessions/service.d.ts +162 -59
- package/dist/sessions/service.js +1133 -521
- package/dist/sessions/service.js.map +1 -1
- package/dist/sessions/session.d.ts +18 -2
- package/dist/sessions/session.js +29 -5
- package/dist/sessions/session.js.map +1 -1
- package/dist/sessions/shares.d.ts +7 -6
- package/dist/sessions/shares.js +22 -45
- package/dist/sessions/shares.js.map +1 -1
- package/dist/sessions/source-kind.js +1 -0
- package/dist/sessions/source-kind.js.map +1 -1
- package/dist/sessions/state-db-identity.d.ts +18 -0
- package/dist/sessions/state-db-identity.js +67 -0
- package/dist/sessions/state-db-identity.js.map +1 -0
- package/dist/sessions/state-db-worker.js +3 -1
- package/dist/sessions/state-db-worker.js.map +1 -1
- package/dist/sessions/state-db.d.ts +53 -8
- package/dist/sessions/state-db.js +576 -50
- package/dist/sessions/state-db.js.map +1 -1
- package/dist/sessions/storage/backend.d.ts +162 -0
- package/dist/sessions/storage/backend.js +19 -0
- package/dist/sessions/storage/backend.js.map +1 -0
- package/dist/sessions/storage/conformance.d.ts +20 -0
- package/dist/sessions/storage/conformance.js +237 -0
- package/dist/sessions/storage/conformance.js.map +1 -0
- package/dist/sessions/storage/document.d.ts +16 -0
- package/dist/sessions/storage/document.js +44 -0
- package/dist/sessions/storage/document.js.map +1 -0
- package/dist/sessions/storage/json-documents.d.ts +23 -0
- package/dist/sessions/storage/json-documents.js +233 -0
- package/dist/sessions/storage/json-documents.js.map +1 -0
- package/dist/sessions/storage/json-files.d.ts +12 -0
- package/dist/sessions/storage/json-files.js +124 -0
- package/dist/sessions/storage/json-files.js.map +1 -0
- package/dist/sessions/storage/json-installation.d.ts +3 -0
- package/dist/sessions/storage/json-installation.js +31 -0
- package/dist/sessions/storage/json-installation.js.map +1 -0
- package/dist/sessions/storage/json-journal.d.ts +114 -0
- package/dist/sessions/storage/json-journal.js +686 -0
- package/dist/sessions/storage/json-journal.js.map +1 -0
- package/dist/sessions/storage/json-recovery.d.ts +4 -0
- package/dist/sessions/storage/json-recovery.js +195 -0
- package/dist/sessions/storage/json-recovery.js.map +1 -0
- package/dist/sessions/storage/json.d.ts +68 -0
- package/dist/sessions/storage/json.js +258 -0
- package/dist/sessions/storage/json.js.map +1 -0
- package/dist/sessions/storage/row.d.ts +6 -0
- package/dist/sessions/storage/row.js +49 -0
- package/dist/sessions/storage/row.js.map +1 -0
- package/dist/sessions/storage/search-text.d.ts +4 -0
- package/dist/sessions/storage/search-text.js +16 -0
- package/dist/sessions/storage/search-text.js.map +1 -0
- package/dist/sessions/store.d.ts +63 -73
- package/dist/sessions/store.js +305 -611
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/streams.d.ts +4 -0
- package/dist/sessions/streams.js +9 -1
- package/dist/sessions/streams.js.map +1 -1
- package/dist/sessions/titles.js +1 -1
- package/dist/sessions/titles.js.map +1 -1
- package/dist/sessions/todo.d.ts +5 -0
- package/dist/sessions/todo.js +28 -21
- package/dist/sessions/todo.js.map +1 -1
- package/dist/sessions/tool-display.d.ts +5 -4
- package/dist/sessions/tool-display.js +22 -16
- package/dist/sessions/tool-display.js.map +1 -1
- package/dist/sessions/turn-context.d.ts +10 -1
- package/dist/sessions/turn-context.js +7 -4
- package/dist/sessions/turn-context.js.map +1 -1
- package/dist/sessions/turn.d.ts +87 -17
- package/dist/sessions/turn.js +795 -347
- package/dist/sessions/turn.js.map +1 -1
- package/dist/sessions/wakeup-pause.d.ts +8 -13
- package/dist/sessions/wakeup-pause.js +31 -49
- package/dist/sessions/wakeup-pause.js.map +1 -1
- package/dist/sessions/window.js +13 -12
- package/dist/sessions/window.js.map +1 -1
- package/dist/settings.d.ts +19 -7
- package/dist/settings.js +179 -183
- package/dist/settings.js.map +1 -1
- package/dist/sidecar/client.d.ts +17 -3
- package/dist/sidecar/client.js +78 -8
- package/dist/sidecar/client.js.map +1 -1
- package/dist/sidecar/discover.d.ts +2 -1
- package/dist/sidecar/discover.js +93 -10
- package/dist/sidecar/discover.js.map +1 -1
- package/dist/sidecar/env.d.ts +4 -0
- package/dist/sidecar/env.js +3 -0
- package/dist/sidecar/env.js.map +1 -0
- package/dist/sidecar/fake.js +19 -2
- package/dist/sidecar/fake.js.map +1 -1
- package/dist/test/env-file.d.ts +5 -0
- package/dist/test/env-file.js +88 -0
- package/dist/test/env-file.js.map +1 -0
- package/dist/test/harness.d.ts +1 -0
- package/dist/test/harness.js +1 -1
- package/dist/test/harness.js.map +1 -1
- package/dist/test/passkeys.d.ts +22 -0
- package/dist/test/passkeys.js +62 -0
- package/dist/test/passkeys.js.map +1 -0
- package/dist/test/storage.d.ts +15 -0
- package/dist/test/storage.js +26 -0
- package/dist/test/storage.js.map +1 -0
- package/dist/tools/commands.d.ts +6 -1
- package/dist/tools/commands.js +8 -2
- package/dist/tools/commands.js.map +1 -1
- package/dist/tools/connectors.d.ts +33 -0
- package/dist/tools/connectors.js +121 -0
- package/dist/tools/connectors.js.map +1 -0
- package/dist/tools/crons.d.ts +38 -1
- package/dist/tools/crons.js +82 -15
- package/dist/tools/crons.js.map +1 -1
- package/dist/tools/dashboard-plugins.d.ts +5 -5
- package/dist/tools/dashboard-plugins.js +14 -14
- package/dist/tools/dashboard-plugins.js.map +1 -1
- package/dist/tools/extensions.d.ts +5 -4
- package/dist/tools/extensions.js +213 -207
- package/dist/tools/extensions.js.map +1 -1
- package/dist/tools/gateway-restart.d.ts +62 -0
- package/dist/tools/gateway-restart.js +142 -0
- package/dist/tools/gateway-restart.js.map +1 -0
- package/dist/tools/health.d.ts +15 -3
- package/dist/tools/health.js +97 -34
- package/dist/tools/health.js.map +1 -1
- package/dist/tools/hygiene.d.ts +4 -3
- package/dist/tools/hygiene.js +23 -9
- package/dist/tools/hygiene.js.map +1 -1
- package/dist/tools/kanban.d.ts +4 -2
- package/dist/tools/kanban.js +28 -19
- package/dist/tools/kanban.js.map +1 -1
- package/dist/tools/memory-masks.d.ts +5 -0
- package/dist/tools/memory-masks.js +256 -0
- package/dist/tools/memory-masks.js.map +1 -0
- package/dist/tools/memory.d.ts +29 -3
- package/dist/tools/memory.js +69 -27
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/plugin-settings.d.ts +15 -0
- package/dist/tools/plugin-settings.js +90 -0
- package/dist/tools/plugin-settings.js.map +1 -0
- package/dist/tools/skills.d.ts +9 -4
- package/dist/tools/skills.js +44 -13
- package/dist/tools/skills.js.map +1 -1
- package/dist/tools/update-notifications.d.ts +34 -15
- package/dist/tools/update-notifications.js +141 -57
- package/dist/tools/update-notifications.js.map +1 -1
- package/dist/tools/update-rollback.d.ts +11 -0
- package/dist/tools/update-rollback.js +28 -0
- package/dist/tools/update-rollback.js.map +1 -0
- package/dist/tools/updates.d.ts +93 -33
- package/dist/tools/updates.js +1051 -345
- package/dist/tools/updates.js.map +1 -1
- package/dist/util.d.ts +2 -0
- package/dist/util.js +5 -0
- package/dist/util.js.map +1 -1
- package/dist/workspace/git.d.ts +16 -1
- package/dist/workspace/git.js +291 -11
- package/dist/workspace/git.js.map +1 -1
- package/dist/workspace/media.d.ts +12 -9
- package/dist/workspace/media.js +31 -20
- package/dist/workspace/media.js.map +1 -1
- package/dist/workspace/rollback.d.ts +2 -2
- package/dist/workspace/rollback.js +5 -5
- package/dist/workspace/rollback.js.map +1 -1
- package/dist/workspace/workspaces.d.ts +15 -19
- package/dist/workspace/workspaces.js +55 -127
- package/dist/workspace/workspaces.js.map +1 -1
- package/dist/workspace/worktrees.js +170 -32
- package/dist/workspace/worktrees.js.map +1 -1
- package/package.json +5 -3
- package/sidecar/agent_dependency.json +4 -4
- package/sidecar/agent_support.json +26 -0
- package/sidecar/scripts/record-fixtures.py +12 -3
- package/sidecar/scripts/replay_sidecar.py +8 -0
- package/sidecar/scripts/suite_runner.py +302 -0
- package/sidecar/scripts/test.sh +12 -4
- package/sidecar/talaria_sidecar/__init__.py +6 -1
- package/sidecar/talaria_sidecar/__main__.py +4 -2
- package/sidecar/talaria_sidecar/agent_mutation.py +975 -0
- package/sidecar/talaria_sidecar/agent_services.py +1053 -0
- package/sidecar/talaria_sidecar/dependency_sync.py +85 -0
- package/sidecar/talaria_sidecar/home.py +43 -1
- package/sidecar/talaria_sidecar/methods/__init__.py +2 -2
- package/sidecar/talaria_sidecar/methods/aux.py +139 -31
- package/sidecar/talaria_sidecar/methods/chat.py +847 -134
- package/sidecar/talaria_sidecar/methods/commands.py +213 -4
- package/sidecar/talaria_sidecar/methods/config.py +123 -4
- package/sidecar/talaria_sidecar/methods/connectors.py +343 -0
- package/sidecar/talaria_sidecar/methods/cron.py +366 -34
- package/sidecar/talaria_sidecar/methods/cron_execution.py +284 -0
- package/sidecar/talaria_sidecar/methods/gateway.py +194 -54
- package/sidecar/talaria_sidecar/methods/gateway_sessions.py +234 -0
- package/sidecar/talaria_sidecar/methods/goals.py +81 -41
- package/sidecar/talaria_sidecar/methods/kanban.py +80 -27
- package/sidecar/talaria_sidecar/methods/memory.py +84 -0
- package/sidecar/talaria_sidecar/methods/oauth.py +5 -2
- package/sidecar/talaria_sidecar/methods/process.py +160 -11
- package/sidecar/talaria_sidecar/methods/profiles.py +44 -6
- package/sidecar/talaria_sidecar/methods/providers.py +196 -26
- package/sidecar/talaria_sidecar/methods/runtime.py +69 -1
- package/sidecar/talaria_sidecar/methods/skills.py +67 -4
- package/sidecar/talaria_sidecar/methods/state_db.py +277 -70
- package/sidecar/talaria_sidecar/methods/stt.py +159 -78
- package/sidecar/talaria_sidecar/methods/text.py +14 -1
- package/sidecar/talaria_sidecar/methods/toolsets.py +49 -0
- package/sidecar/talaria_sidecar/methods/usage.py +113 -14
- package/sidecar/talaria_sidecar/methods/worktree.py +26 -19
- package/sidecar/talaria_sidecar/methods/write_approval.py +181 -0
- package/sidecar/talaria_sidecar/rpc.py +45 -4
- package/sidecar/talaria_sidecar/runtime.py +81 -12
- package/sidecar/talaria_sidecar/speed.py +35 -0
- package/static/dist/FILES.txt +126 -127
- package/static/dist/assets/AppShell-cey33v9s.js +8 -0
- package/static/dist/assets/ChatPage-i8wnugr7.js +18 -0
- package/static/dist/assets/ConnectTargets-hg19553x.js +1 -0
- package/static/dist/assets/ExtensionRoute-cly4apm5.js +1 -0
- package/static/dist/assets/Field-j8uqoigz.js +9 -0
- package/static/dist/assets/HubRoute-e4bgz41j.js +2 -0
- package/static/dist/assets/Markdown-lahuichm.js +598 -0
- package/static/dist/assets/RightPanel-lbo4i0fn.js +1 -0
- package/static/dist/assets/Select-gqatm2e0.js +1 -0
- package/static/dist/assets/SessionListPanel-mfqayfjh.js +1 -0
- package/static/dist/assets/SettingsLayout-b8980u7k.js +1 -0
- package/static/dist/assets/States-e7dkgtxf.js +1 -0
- package/static/dist/assets/Toaster-bfqqy786.js +1 -0
- package/static/dist/assets/_app-n1n6pfx1.js +1 -0
- package/static/dist/assets/{_app.ext._extensionId-gfbzpoou.js → _app.ext._extensionId-buxjxav3.js} +1 -1
- package/static/dist/assets/_app.index-jt8zwiu2.js +1 -0
- package/static/dist/assets/_app.insights-cv76ml71.js +1 -0
- package/static/dist/assets/_app.kanban-h6ts53j7.js +1 -0
- package/static/dist/assets/_app.logs-dm873z90.js +1 -0
- package/static/dist/assets/_app.memory-glk5y6m8.js +1 -0
- package/static/dist/assets/_app.profiles-ka6zpstq.js +1 -0
- package/static/dist/assets/{_app.session._sessionId-fn1bhde6.js → _app.session._sessionId-g2vzghvc.js} +1 -1
- package/static/dist/assets/_app.settings-hgjdhzcd.js +1 -0
- package/static/dist/assets/_app.settings._section-jf2kmhae.js +3 -0
- package/static/dist/assets/_app.skills-cii852yq.js +1 -0
- package/static/dist/assets/_app.tasks-fp9q7atm.js +1 -0
- package/static/dist/assets/_app.todos-dw94qzue.js +1 -0
- package/static/dist/assets/_app.workspaces-inyygzze.js +1 -0
- package/static/dist/assets/{abnfDiagram-VCTEODGH-c8kdixke.js → abnfDiagram-VCTEODGH-gjayq3ra.js} +1 -1
- package/static/dist/assets/architecture-7GRP2DOG-lp56972r.js +1 -0
- package/static/dist/assets/{architectureDiagram-5GKGNRK7-cku06x1p.js → architectureDiagram-5GKGNRK7-nwb3xovn.js} +1 -1
- package/static/dist/assets/archive-b1j004vn.js +1 -0
- package/static/dist/assets/back-g74gkozu.js +1 -0
- package/static/dist/assets/{blockDiagram-I7D4REHJ-jzthp1wa.js → blockDiagram-I7D4REHJ-joedghi3.js} +1 -1
- package/static/dist/assets/{c4Diagram-7LVT6UL2-mwr67mt8.js → c4Diagram-7LVT6UL2-hyrjrohe.js} +1 -1
- package/static/dist/assets/channel-es95o4y8.js +1 -0
- package/static/dist/assets/{chunk-4HAMMTFA-gpq1y228.js → chunk-4HAMMTFA-koouqbut.js} +1 -1
- package/static/dist/assets/{chunk-75Z2AOVW-ktje58c4.js → chunk-75Z2AOVW-bl4bhdnt.js} +1 -1
- package/static/dist/assets/{chunk-DU6HZSFF-ofajdixh.js → chunk-DU6HZSFF-gpedttsp.js} +3 -3
- package/static/dist/assets/{chunk-F27PBJKO-cmev85ti.js → chunk-F27PBJKO-d8xxi0zi.js} +1 -1
- package/static/dist/assets/{chunk-GMAD6QVW-htjgt22y.js → chunk-GMAD6QVW-jro0hl73.js} +1 -1
- package/static/dist/assets/{chunk-GVQU2GXP-qndvoxl7.js → chunk-GVQU2GXP-djn6gbyu.js} +1 -1
- package/static/dist/assets/{chunk-IMKFNOWR-e5bkd5q6.js → chunk-IMKFNOWR-vw4p5p7o.js} +1 -1
- package/static/dist/assets/{chunk-L3NEJ4N5-mj1155r6.js → chunk-L3NEJ4N5-n1hj77q8.js} +1 -1
- package/static/dist/assets/{chunk-OSK3NFVY-e7gkikcw.js → chunk-OSK3NFVY-oy0gwn2n.js} +1 -1
- package/static/dist/assets/{chunk-P2QGCYS3-f7t54xfm.js → chunk-P2QGCYS3-onf1hz6c.js} +1 -1
- package/static/dist/assets/{chunk-POPQ4Y6H-i927v9oa.js → chunk-POPQ4Y6H-m8sqn7cs.js} +1 -1
- package/static/dist/assets/{chunk-PWAF6VOD-m84lmnyt.js → chunk-PWAF6VOD-ek4smc8x.js} +1 -1
- package/static/dist/assets/{chunk-SHT3W25Y-mi0tlcu9.js → chunk-SHT3W25Y-g9gfvefo.js} +3 -3
- package/static/dist/assets/{chunk-SVP7TREG-dnau702j.js → chunk-SVP7TREG-f9nfv2cu.js} +1 -1
- package/static/dist/assets/{chunk-TICWLB2K-edem1gkg.js → chunk-TICWLB2K-bnk3m1mq.js} +1 -1
- package/static/dist/assets/classDiagram-ZZMXUADV-kmihoqxh.js +1 -0
- package/static/dist/assets/classDiagram-v2-VYDZK3BY-kmihoqxh.js +1 -0
- package/static/dist/assets/copied-bli9tbcx.js +1 -0
- package/static/dist/assets/{copy-magtofyp.js → copy-jamtd1pf.js} +1 -1
- package/static/dist/assets/{cynefin-OW5HDTMX-siqlulkl.js → cynefin-OW5HDTMX-f8xfdd3f.js} +1 -1
- package/static/dist/assets/{cynefinDiagram-5FMLGOSQ-i648tah9.js → cynefinDiagram-5FMLGOSQ-n9lb99h9.js} +1 -1
- package/static/dist/assets/{dagre-GXQ25YYZ-mwn6uc17.js → dagre-GXQ25YYZ-dgailddi.js} +4 -4
- package/static/dist/assets/{diagram-S7CK7UJ4-l8abxaes.js → diagram-S7CK7UJ4-m6aeoe7c.js} +1 -1
- package/static/dist/assets/{diagram-UQ7AKVKN-mekq7zgq.js → diagram-UQ7AKVKN-jall3j0x.js} +1 -1
- package/static/dist/assets/{diagram-VSXAHHWV-fnky6lvc.js → diagram-VSXAHHWV-hbawi7hn.js} +1 -1
- package/static/dist/assets/{diagram-VX7I27RA-xe6r5qfw.js → diagram-VX7I27RA-hendl2tt.js} +1 -1
- package/static/dist/assets/{diagram-Z3DM3KII-nq07dg7k.js → diagram-Z3DM3KII-igwc35p3.js} +1 -1
- package/static/dist/assets/{ebnfDiagram-PWID7BFC-c62ipm3g.js → ebnfDiagram-PWID7BFC-c64knz08.js} +1 -1
- package/static/dist/assets/{erDiagram-RLTQ6QDP-h39kmnzy.js → erDiagram-RLTQ6QDP-brdu9lcm.js} +1 -1
- package/static/dist/assets/eventmodeling-NTZA5JFV-njk1j8wl.js +1 -0
- package/static/dist/assets/flowDiagram-HODETNUW-nma6f0ga.js +1 -0
- package/static/dist/assets/folder-plus-lvt9kudb.js +1 -0
- package/static/dist/assets/{ganttDiagram-EL5Y4UJY-ngbsyp37.js → ganttDiagram-EL5Y4UJY-ma6jxj5i.js} +1 -1
- package/static/dist/assets/{gitGraph-4MIJSDKK-fr2i7caa.js → gitGraph-4MIJSDKK-naa9w6xa.js} +1 -1
- package/static/dist/assets/{gitGraphDiagram-WWUBYQGX-eravdti4.js → gitGraphDiagram-WWUBYQGX-hzltvsod.js} +1 -1
- package/static/dist/assets/{highlighted-body-KPVGNVTW-jwpop9p8.js → highlighted-body-KPVGNVTW-ghoavj8d.js} +1 -1
- package/static/dist/assets/host-hzm8n85n.js +1 -0
- package/static/dist/assets/index-drdcaqeq.css +2 -0
- package/static/dist/assets/index-jzm844he.js +11 -0
- package/static/dist/assets/{info-A6RAGUB7-h11x0dxo.js → info-A6RAGUB7-mn2ut5ko.js} +1 -1
- package/static/dist/assets/{infoDiagram-27XIBGKW-dfh47dw9.js → infoDiagram-27XIBGKW-h6kuqvsb.js} +1 -1
- package/static/dist/assets/{ishikawaDiagram-5VMMS53U-i6ypq351.js → ishikawaDiagram-5VMMS53U-e7bnwq7h.js} +1 -1
- package/static/dist/assets/{journeyDiagram-3NMN7TZE-lduf1z95.js → journeyDiagram-3NMN7TZE-etd1bi6p.js} +1 -1
- package/static/dist/assets/{kanban-definition-UXKFOSKX-e18bu4pg.js → kanban-definition-UXKFOSKX-emb1g9dz.js} +4 -4
- package/static/dist/assets/lazyRouteComponent-o816ytzl.js +1 -0
- package/static/dist/assets/{line-meizqsvn.js → line-h0ojzsvs.js} +1 -1
- package/static/dist/assets/link-k01ryaf9.js +1 -0
- package/static/dist/assets/login-bsae49ew.js +1 -0
- package/static/dist/assets/mermaid-HWGCJPDP-ihl34s74.js +1 -0
- package/static/dist/assets/{mermaid-parser.core-ntne45i9.js → mermaid-parser.core-bnre27u8.js} +3 -3
- package/static/dist/assets/{mindmap-definition-YA3MSWOX-27b26eok.js → mindmap-definition-YA3MSWOX-o1vathns.js} +1 -1
- package/static/dist/assets/onboarding-c65tysya.js +1 -0
- package/static/dist/assets/onboarding_model_label-gpn28uix.js +1 -0
- package/static/dist/assets/{packet-AYTQ26CC-l6jdka8p.js → packet-AYTQ26CC-hatq7m2e.js} +1 -1
- package/static/dist/assets/pcmTap.worklet-74EKjWAZ.js +1 -0
- package/static/dist/assets/{pegDiagram-XKGWAZYB-g1er3bxj.js → pegDiagram-XKGWAZYB-gwisz8jv.js} +1 -1
- package/static/dist/assets/{pie-WAS4IAKB-i0ylcrt9.js → pie-WAS4IAKB-fpftf0mk.js} +1 -1
- package/static/dist/assets/{pieDiagram-E7YTZNPT-fbz1e55z.js → pieDiagram-E7YTZNPT-khm1o9a6.js} +1 -1
- package/static/dist/assets/{quadrantDiagram-AXDQQJYC-hhue7d8o.js → quadrantDiagram-AXDQQJYC-owqc4uqn.js} +1 -1
- package/static/dist/assets/{radar-RG4KPBEZ-f9b70aa4.js → radar-RG4KPBEZ-cntfwjpq.js} +1 -1
- package/static/dist/assets/{railroad-74A4TZTK-lgsuoeda.js → railroad-74A4TZTK-a7t5eibp.js} +1 -1
- package/static/dist/assets/railroad-abnf-HS5TGJTU-ol8cdktf.js +1 -0
- package/static/dist/assets/railroad-ebnf-LZEXJU2U-i8vzd429.js +1 -0
- package/static/dist/assets/railroad-peg-WCYAUIDC-nw3ulewz.js +1 -0
- package/static/dist/assets/{railroadDiagram-O6MQD6OU-eqpy9fnz.js → railroadDiagram-O6MQD6OU-etuh0qa0.js} +1 -1
- package/static/dist/assets/{refresh-cw-hlwb02qv.js → refresh-cw-mqbkv2a3.js} +1 -1
- package/static/dist/assets/refresh-l29ljp76.js +1 -0
- package/static/dist/assets/{requirementDiagram-BXWQKSXE-ogf6puhi.js → requirementDiagram-BXWQKSXE-oq2ulk22.js} +1 -1
- package/static/dist/assets/{sankeyDiagram-P5KCCOFB-fqb8xcjf.js → sankeyDiagram-P5KCCOFB-iqc02emv.js} +1 -1
- package/static/dist/assets/saved-ndd4t2xb.js +1 -0
- package/static/dist/assets/{sequenceDiagram-WJ2MYXX4-dlcz6qjz.js → sequenceDiagram-WJ2MYXX4-i0v116q0.js} +2 -2
- package/static/dist/assets/settings_section_extensions_title-jhfo6o8z.js +1 -0
- package/static/dist/assets/share._token-c1ri0hy1.js +2 -0
- package/static/dist/assets/sliders-horizontal-j3jjt9tv.js +1 -0
- package/static/dist/assets/{stateDiagram-D77RDMKH-fyoznpcs.js → stateDiagram-D77RDMKH-dnpt1ato.js} +1 -1
- package/static/dist/assets/stateDiagram-v2-MP3YSRHH-bxjacpk6.js +1 -0
- package/static/dist/assets/{swimlanes-42K2YHIH-oefldhfy.js → swimlanes-42K2YHIH-loqbdazb.js} +1 -1
- package/static/dist/assets/swimlanesDiagram-VR7AAH4N-id62p9hz.js +8 -0
- package/static/dist/assets/{timeline-definition-24CTP7MA-b1vl2zil.js → timeline-definition-24CTP7MA-ol2hnvma.js} +1 -1
- package/static/dist/assets/toast-i3h34v6o.js +64 -0
- package/static/dist/assets/{treeView-Q6P3EWNA-f7hcci5o.js → treeView-Q6P3EWNA-idrj6iox.js} +1 -1
- package/static/dist/assets/{treemap-WGGIJYW6-nl85071a.js → treemap-WGGIJYW6-lzr49vv5.js} +1 -1
- package/static/dist/assets/untitled-oaoya4qj.js +1 -0
- package/static/dist/assets/useForm-nfaxgmsk.js +1 -0
- package/static/dist/assets/{useParams-b4dq6n4q.js → useParams-gjc70qru.js} +1 -1
- package/static/dist/assets/{useSearch-ipfmv3he.js → useSearch-e6ae539u.js} +1 -1
- package/static/dist/assets/{vennDiagram-4TSXK5OY-h5hzbk0n.js → vennDiagram-4TSXK5OY-bvwr9o2z.js} +1 -1
- package/static/dist/assets/{wardley-WFR3VGLG-jftvpm3e.js → wardley-WFR3VGLG-31ui8tma.js} +1 -1
- package/static/dist/assets/{wardleyDiagram-VM6X3IG4-hedh85ge.js → wardleyDiagram-VM6X3IG4-k5wqtx4b.js} +1 -1
- package/static/dist/assets/{xychartDiagram-S5SC5T6Z-e49523ab.js → xychartDiagram-S5SC5T6Z-aqbgvujg.js} +1 -1
- package/static/dist/index.html +1 -1
- package/static/dist/sw.js +1 -1
- package/static/dist/assets/AppShell-g3bkgnvt.js +0 -1
- package/static/dist/assets/ChatPage-oo7bdan6.js +0 -25
- package/static/dist/assets/Dialog-g355qxhp.js +0 -1
- package/static/dist/assets/ExtensionRoute-i2y9fvjm.js +0 -1
- package/static/dist/assets/HubRoute-lmkrbw47.js +0 -2
- package/static/dist/assets/Markdown-j4kut4j2.js +0 -598
- package/static/dist/assets/RightPanel-ohlsdzfl.js +0 -1
- package/static/dist/assets/Select-kddq75qc.js +0 -1
- package/static/dist/assets/SessionListPanel-lu3oy0hw.js +0 -1
- package/static/dist/assets/SettingsLayout-o9bv4mgb.js +0 -1
- package/static/dist/assets/States-eq6fe29m.js +0 -1
- package/static/dist/assets/Toaster-pc247u9f.js +0 -1
- package/static/dist/assets/_app-f8n1i0m1.js +0 -1
- package/static/dist/assets/_app.index-bzzv80hk.js +0 -1
- package/static/dist/assets/_app.insights-dzixbryi.js +0 -1
- package/static/dist/assets/_app.kanban-c6hep2us.js +0 -1
- package/static/dist/assets/_app.logs-i69qds98.js +0 -1
- package/static/dist/assets/_app.memory-kl4vf0gd.js +0 -1
- package/static/dist/assets/_app.profiles-b8zinmyp.js +0 -1
- package/static/dist/assets/_app.settings-cg8plwmf.js +0 -1
- package/static/dist/assets/_app.settings._section-bkwbi9zn.js +0 -3
- package/static/dist/assets/_app.skills-cs47sbvs.js +0 -1
- package/static/dist/assets/_app.tasks-dwvk64tc.js +0 -1
- package/static/dist/assets/_app.todos-c8xjm8p3.js +0 -1
- package/static/dist/assets/_app.workspaces-ehvd1gds.js +0 -1
- package/static/dist/assets/architecture-7GRP2DOG-6crvnylg.js +0 -1
- package/static/dist/assets/back-h7aun7ew.js +0 -1
- package/static/dist/assets/cancel-fhi0vcnu.js +0 -1
- package/static/dist/assets/channel-b2zo73z1.js +0 -1
- package/static/dist/assets/classDiagram-ZZMXUADV-oe99st8x.js +0 -1
- package/static/dist/assets/classDiagram-v2-VYDZK3BY-oe99st8x.js +0 -1
- package/static/dist/assets/copied-hcplv46p.js +0 -1
- package/static/dist/assets/endpoints-klbxod4t.js +0 -64
- package/static/dist/assets/eventmodeling-NTZA5JFV-obfede4u.js +0 -1
- package/static/dist/assets/flowDiagram-HODETNUW-kdpsp1je.js +0 -1
- package/static/dist/assets/host-i828xuo7.js +0 -1
- package/static/dist/assets/index-eh8zilnv.css +0 -2
- package/static/dist/assets/index-r648f4o1.js +0 -11
- package/static/dist/assets/lazyRouteComponent-e1y4t2i9.js +0 -1
- package/static/dist/assets/link-oot2yn73.js +0 -1
- package/static/dist/assets/login-gu28l9ou.js +0 -1
- package/static/dist/assets/mermaid-HWGCJPDP-mtwrj8fn.js +0 -1
- package/static/dist/assets/onboarding-lkphzu1s.js +0 -1
- package/static/dist/assets/onboarding_model_label-ftpjdwqk.js +0 -1
- package/static/dist/assets/railroad-abnf-HS5TGJTU-nf9d6pdx.js +0 -1
- package/static/dist/assets/railroad-ebnf-LZEXJU2U-f7ummkt5.js +0 -1
- package/static/dist/assets/railroad-peg-WCYAUIDC-oczq5tqs.js +0 -1
- package/static/dist/assets/refresh-abtu93ke.js +0 -1
- package/static/dist/assets/saved-girnabkf.js +0 -1
- package/static/dist/assets/settings_section_extensions_title-h14cwk6f.js +0 -1
- package/static/dist/assets/share._token-kl0r7ido.js +0 -2
- package/static/dist/assets/sliders-horizontal-n1zm34qq.js +0 -1
- package/static/dist/assets/sse-iwku0sjo.js +0 -1
- package/static/dist/assets/stateDiagram-v2-MP3YSRHH-ixhx8r46.js +0 -1
- package/static/dist/assets/swimlanesDiagram-VR7AAH4N-h9ersk2e.js +0 -8
- package/static/dist/assets/todoStore-jjr5yr78.js +0 -1
- package/static/dist/assets/units-kgxzxfhi.js +0 -1
- package/static/dist/assets/untitled-cikfjntn.js +0 -1
- package/static/dist/assets/useForm-kqoqg0k9.js +0 -1
- package/static/dist/assets/useLocale-o59tbiea.js +0 -1
package/dist/auth/passkeys.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DocumentBackend } from '../sessions/storage/backend.js';
|
|
1
2
|
import { type Dict } from '../config/agent-config.js';
|
|
2
3
|
export declare class PasskeyError extends Error {
|
|
3
4
|
}
|
|
@@ -12,38 +13,38 @@ export declare function rpContext(headers: {
|
|
|
12
13
|
forwardedProto?: string | undefined;
|
|
13
14
|
}, secure: boolean): [string, string];
|
|
14
15
|
export declare class PasskeyStore {
|
|
15
|
-
private readonly
|
|
16
|
+
private readonly documents;
|
|
16
17
|
private readonly now;
|
|
17
18
|
private readonly credentialsFile;
|
|
18
19
|
private readonly challengesFile;
|
|
19
|
-
constructor(
|
|
20
|
+
constructor(documents: DocumentBackend, now?: () => number);
|
|
20
21
|
private loadJson;
|
|
21
|
-
private writeJson;
|
|
22
22
|
private credentials;
|
|
23
|
+
private parseCredentials;
|
|
23
24
|
/** Public metadata only; never the public key. */
|
|
24
|
-
registered(): Dict[]
|
|
25
|
-
available(): boolean
|
|
25
|
+
registered(): Promise<Dict[]>;
|
|
26
|
+
available(): Promise<boolean>;
|
|
26
27
|
private challenges;
|
|
27
28
|
private storeChallenge;
|
|
28
29
|
private consumeChallenge;
|
|
29
|
-
registrationOptions(rpId: string, origin: string): Dict
|
|
30
|
-
authenticationOptions(rpId: string, origin: string): Dict
|
|
30
|
+
registrationOptions(rpId: string, origin: string): Promise<Dict>;
|
|
31
|
+
authenticationOptions(rpId: string, origin: string): Promise<Dict>;
|
|
31
32
|
private clientData;
|
|
32
33
|
private parseAuthData;
|
|
33
|
-
finishRegistration(payload: Dict): {
|
|
34
|
+
finishRegistration(payload: Dict): Promise<{
|
|
34
35
|
ok: true;
|
|
35
36
|
credential: {
|
|
36
37
|
id: string;
|
|
37
38
|
label: string;
|
|
38
39
|
};
|
|
39
|
-
}
|
|
40
|
-
finishLogin(payload: Dict): {
|
|
40
|
+
}>;
|
|
41
|
+
finishLogin(payload: Dict): Promise<{
|
|
41
42
|
ok: true;
|
|
42
43
|
credential_id: string;
|
|
43
|
-
}
|
|
44
|
-
delete(credentialId: string): {
|
|
44
|
+
}>;
|
|
45
|
+
delete(credentialId: string): Promise<{
|
|
45
46
|
ok: true;
|
|
46
47
|
credentials: Dict[];
|
|
47
|
-
}
|
|
48
|
-
clear(): void
|
|
48
|
+
}>;
|
|
49
|
+
clear(): Promise<void>;
|
|
49
50
|
}
|
package/dist/auth/passkeys.js
CHANGED
|
@@ -4,10 +4,8 @@
|
|
|
4
4
|
* `passkeys.json`, bounded challenge store in `.passkey_challenges.json`.
|
|
5
5
|
*/
|
|
6
6
|
import { createHash, createPublicKey, randomBytes, timingSafeEqual, verify as cryptoVerify } from 'node:crypto';
|
|
7
|
-
import {
|
|
8
|
-
import { join } from 'node:path';
|
|
7
|
+
import { readDocument, updateDocument } from '../sessions/storage/document.js';
|
|
9
8
|
import { domainToASCII } from 'node:url';
|
|
10
|
-
import { atomicWriteText } from '../fs/atomic.js';
|
|
11
9
|
import { isDict } from '../config/agent-config.js';
|
|
12
10
|
import { str } from '../util.js';
|
|
13
11
|
export class PasskeyError extends Error {
|
|
@@ -101,102 +99,96 @@ export function rpContext(headers, secure) {
|
|
|
101
99
|
return [host, `${proto}://${headers.host ?? host}`];
|
|
102
100
|
}
|
|
103
101
|
export class PasskeyStore {
|
|
104
|
-
|
|
102
|
+
documents;
|
|
105
103
|
now;
|
|
106
|
-
credentialsFile;
|
|
107
|
-
challengesFile;
|
|
108
|
-
constructor(
|
|
109
|
-
this.
|
|
104
|
+
credentialsFile = 'passkeys';
|
|
105
|
+
challengesFile = '.passkey_challenges';
|
|
106
|
+
constructor(documents, now = () => Date.now() / 1000) {
|
|
107
|
+
this.documents = documents;
|
|
110
108
|
this.now = now;
|
|
111
|
-
this.credentialsFile = join(stateDir, 'passkeys.json');
|
|
112
|
-
this.challengesFile = join(stateDir, '.passkey_challenges.json');
|
|
113
109
|
}
|
|
114
|
-
loadJson(
|
|
110
|
+
async loadJson(key) {
|
|
115
111
|
try {
|
|
116
|
-
|
|
112
|
+
const record = await readDocument(this.documents, 'passkeys', key, { replaceInvalid: true });
|
|
113
|
+
return record?.value ?? null;
|
|
117
114
|
}
|
|
118
115
|
catch {
|
|
119
116
|
return null;
|
|
120
117
|
}
|
|
121
118
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
atomicWriteText(path, JSON.stringify(payload, sortedReplacer, 2), { mode: 0o600 });
|
|
125
|
-
try {
|
|
126
|
-
chmodSync(path, 0o600);
|
|
127
|
-
}
|
|
128
|
-
catch { /* best effort */ }
|
|
119
|
+
async credentials() {
|
|
120
|
+
return this.parseCredentials(await this.loadJson(this.credentialsFile));
|
|
129
121
|
}
|
|
130
|
-
|
|
131
|
-
const raw = this.loadJson(this.credentialsFile);
|
|
122
|
+
parseCredentials(raw) {
|
|
132
123
|
return Array.isArray(raw) ? raw.filter((c) => isDict(c) && typeof c.id === 'string').map((c) => ({ id: str(c.id), label: str(c.label), public_key_pem: str(c.public_key_pem), sign_count: Number(c.sign_count) || 0, created_at: Number(c.created_at) || 0, last_used_at: typeof c.last_used_at === 'number' ? c.last_used_at : null })) : [];
|
|
133
124
|
}
|
|
134
125
|
/** Public metadata only; never the public key. */
|
|
135
|
-
registered() {
|
|
136
|
-
return this.credentials().map((c) => ({ id: c.id, label: c.label || 'Passkey', created_at: c.created_at, last_used_at: c.last_used_at, sign_count: c.sign_count }));
|
|
126
|
+
async registered() {
|
|
127
|
+
return (await this.credentials()).map((c) => ({ id: c.id, label: c.label || 'Passkey', created_at: c.created_at, last_used_at: c.last_used_at, sign_count: c.sign_count }));
|
|
137
128
|
}
|
|
138
|
-
available() { return this.credentials().length > 0; }
|
|
139
|
-
challenges() {
|
|
140
|
-
const raw = this.loadJson(this.challengesFile);
|
|
129
|
+
async available() { return (await this.credentials()).length > 0; }
|
|
130
|
+
challenges(raw) {
|
|
141
131
|
if (!isDict(raw))
|
|
142
132
|
return {};
|
|
143
133
|
const now = this.now();
|
|
144
134
|
const clean = {};
|
|
145
|
-
for (const [
|
|
146
|
-
if (isDict(
|
|
147
|
-
clean[
|
|
148
|
-
if (Object.keys(clean).length !== Object.keys(raw).length)
|
|
149
|
-
this.writeJson(this.challengesFile, clean);
|
|
135
|
+
for (const [key, value] of Object.entries(raw))
|
|
136
|
+
if (isDict(value) && now - (Number(value.ts) || 0) < CHALLENGE_TTL_S)
|
|
137
|
+
clean[key] = { kind: str(value.kind), rp_id: str(value.rp_id), origin: str(value.origin), ts: Number(value.ts) || 0 };
|
|
150
138
|
return clean;
|
|
151
139
|
}
|
|
152
|
-
storeChallenge(challenge, kind, rpId, origin) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
140
|
+
async storeChallenge(challenge, kind, rpId, origin) {
|
|
141
|
+
await updateDocument(this.documents, 'passkeys', this.challengesFile, (raw) => {
|
|
142
|
+
const data = this.challenges(raw);
|
|
143
|
+
const oldest = (keys) => keys.sort((a, b) => (data[a]?.ts ?? 0) - (data[b]?.ts ?? 0))[0] ?? null;
|
|
144
|
+
for (;;) {
|
|
145
|
+
const same = Object.keys(data).filter((key) => data[key]?.kind === kind && data[key]?.rp_id === rpId && data[key]?.origin === origin);
|
|
146
|
+
if (same.length < MAX_PER_CONTEXT)
|
|
147
|
+
break;
|
|
148
|
+
const victim = oldest(same);
|
|
149
|
+
if (!victim)
|
|
150
|
+
break;
|
|
151
|
+
Reflect.deleteProperty(data, victim);
|
|
152
|
+
}
|
|
153
|
+
while (Object.keys(data).length >= MAX_CHALLENGES) {
|
|
154
|
+
const victim = oldest(Object.keys(data));
|
|
155
|
+
if (!victim)
|
|
156
|
+
break;
|
|
157
|
+
Reflect.deleteProperty(data, victim);
|
|
158
|
+
}
|
|
159
|
+
data[challenge] = { kind, rp_id: rpId, origin, ts: this.now() };
|
|
160
|
+
return { value: data, result: undefined };
|
|
161
|
+
}, { replaceInvalid: true });
|
|
172
162
|
}
|
|
173
|
-
consumeChallenge(challenge, kind) {
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
163
|
+
async consumeChallenge(challenge, kind) {
|
|
164
|
+
const entry = await updateDocument(this.documents, 'passkeys', this.challengesFile, (raw) => {
|
|
165
|
+
const data = this.challenges(raw);
|
|
166
|
+
const entry = data[challenge];
|
|
167
|
+
Reflect.deleteProperty(data, challenge);
|
|
168
|
+
return { value: data, result: entry };
|
|
169
|
+
}, { replaceInvalid: true });
|
|
178
170
|
if (entry?.kind !== kind)
|
|
179
171
|
throw new PasskeyError('Passkey challenge expired. Try again.');
|
|
180
172
|
return entry;
|
|
181
173
|
}
|
|
182
|
-
registrationOptions(rpId, origin) {
|
|
174
|
+
async registrationOptions(rpId, origin) {
|
|
183
175
|
const challenge = b64u(randomBytes(32));
|
|
184
|
-
this.storeChallenge(challenge, 'register', rpId, origin);
|
|
176
|
+
await this.storeChallenge(challenge, 'register', rpId, origin);
|
|
185
177
|
return {
|
|
186
178
|
challenge, rp: { name: RP_NAME, id: rpId }, user: { id: b64u(createHash('sha256').update(rpId).digest().subarray(0, 16)), name: RP_NAME, displayName: RP_NAME },
|
|
187
179
|
pubKeyCredParams: [{ type: 'public-key', alg: -7 }], authenticatorSelection: { residentKey: 'preferred', userVerification: 'preferred' }, timeout: 60000, attestation: 'none',
|
|
188
|
-
excludeCredentials: this.registered().map((c) => ({ type: 'public-key', id: c.id })),
|
|
180
|
+
excludeCredentials: (await this.registered()).map((c) => ({ type: 'public-key', id: c.id })),
|
|
189
181
|
};
|
|
190
182
|
}
|
|
191
|
-
authenticationOptions(rpId, origin) {
|
|
192
|
-
const creds = this.registered();
|
|
183
|
+
async authenticationOptions(rpId, origin) {
|
|
184
|
+
const creds = (await this.registered());
|
|
193
185
|
if (!creds.length)
|
|
194
186
|
throw new PasskeyError('No passkeys are registered.');
|
|
195
187
|
const challenge = b64u(randomBytes(32));
|
|
196
|
-
this.storeChallenge(challenge, 'login', rpId, origin);
|
|
188
|
+
await this.storeChallenge(challenge, 'login', rpId, origin);
|
|
197
189
|
return { challenge, rpId, allowCredentials: creds.map((c) => ({ type: 'public-key', id: c.id })), timeout: 60000, userVerification: 'preferred' };
|
|
198
190
|
}
|
|
199
|
-
clientData(encoded, expectedType, kind) {
|
|
191
|
+
async clientData(encoded, expectedType, kind) {
|
|
200
192
|
const raw = b64uDecode(encoded);
|
|
201
193
|
let data;
|
|
202
194
|
try {
|
|
@@ -209,7 +201,7 @@ export class PasskeyStore {
|
|
|
209
201
|
throw new PasskeyError('Unexpected passkey response type');
|
|
210
202
|
if (typeof data.challenge !== 'string')
|
|
211
203
|
throw new PasskeyError('Missing passkey challenge');
|
|
212
|
-
const entry = this.consumeChallenge(data.challenge, kind);
|
|
204
|
+
const entry = (await this.consumeChallenge(data.challenge, kind));
|
|
213
205
|
if (data.origin !== entry.origin)
|
|
214
206
|
throw new PasskeyError('Passkey origin mismatch');
|
|
215
207
|
return [data, entry, raw];
|
|
@@ -225,9 +217,9 @@ export class PasskeyStore {
|
|
|
225
217
|
throw new PasskeyError('Passkey user presence was not verified');
|
|
226
218
|
return { flags, sign_count: authData.readUInt32BE(33), rest: authData.subarray(37) };
|
|
227
219
|
}
|
|
228
|
-
finishRegistration(payload) {
|
|
220
|
+
async finishRegistration(payload) {
|
|
229
221
|
const response = isDict(payload.response) ? payload.response : {};
|
|
230
|
-
const [, entry] = this.clientData(response.clientDataJSON ?? '', 'webauthn.create', 'register');
|
|
222
|
+
const [, entry] = (await this.clientData(response.clientDataJSON ?? '', 'webauthn.create', 'register'));
|
|
231
223
|
const att = cborDecode(b64uDecode(response.attestationObject ?? ''));
|
|
232
224
|
if (!(att instanceof Map) || !Buffer.isBuffer(att.get('authData')))
|
|
233
225
|
throw new PasskeyError('Malformed attestation object');
|
|
@@ -255,21 +247,23 @@ export class PasskeyStore {
|
|
|
255
247
|
}
|
|
256
248
|
const id = b64u(credentialId);
|
|
257
249
|
const label = str(payload.label).trim().slice(0, 80) || 'Passkey';
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
250
|
+
await updateDocument(this.documents, 'passkeys', this.credentialsFile, (raw) => {
|
|
251
|
+
const creds = this.parseCredentials(raw).filter((credential) => credential.id !== id);
|
|
252
|
+
creds.push({ id, label, public_key_pem: pem, sign_count: parsed.sign_count, created_at: this.now(), last_used_at: null });
|
|
253
|
+
return { value: creds, result: undefined };
|
|
254
|
+
}, { replaceInvalid: true });
|
|
261
255
|
return { ok: true, credential: { id, label } };
|
|
262
256
|
}
|
|
263
|
-
finishLogin(payload) {
|
|
257
|
+
async finishLogin(payload) {
|
|
264
258
|
const response = isDict(payload.response) ? payload.response : {};
|
|
265
259
|
const credId = payload.id ?? payload.rawId;
|
|
266
260
|
if (typeof credId !== 'string')
|
|
267
261
|
throw new PasskeyError('Missing passkey credential id');
|
|
268
|
-
const creds = this.credentials();
|
|
262
|
+
const creds = (await this.credentials());
|
|
269
263
|
const idx = creds.findIndex((c) => c.id === credId);
|
|
270
264
|
if (idx < 0)
|
|
271
265
|
throw new PasskeyError('Unknown passkey');
|
|
272
|
-
const [, entry, clientRaw] = this.clientData(response.clientDataJSON ?? '', 'webauthn.get', 'login');
|
|
266
|
+
const [, entry, clientRaw] = (await this.clientData(response.clientDataJSON ?? '', 'webauthn.get', 'login'));
|
|
273
267
|
const authData = b64uDecode(response.authenticatorData ?? '');
|
|
274
268
|
const parsed = this.parseAuthData(authData, entry.rp_id);
|
|
275
269
|
const signature = b64uDecode(response.signature ?? '');
|
|
@@ -283,28 +277,32 @@ export class PasskeyStore {
|
|
|
283
277
|
}
|
|
284
278
|
if (!ok)
|
|
285
279
|
throw new PasskeyError('Passkey signature verification failed');
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
280
|
+
await updateDocument(this.documents, 'passkeys', this.credentialsFile, (raw) => {
|
|
281
|
+
const current = this.parseCredentials(raw);
|
|
282
|
+
const credential = current.find((item) => item.id === credId);
|
|
283
|
+
if (credential?.public_key_pem !== creds[idx].public_key_pem)
|
|
284
|
+
throw new PasskeyError('Unknown passkey');
|
|
285
|
+
if (parsed.sign_count && credential.sign_count && parsed.sign_count <= credential.sign_count)
|
|
286
|
+
throw new PasskeyError('Passkey sign counter did not advance');
|
|
287
|
+
credential.sign_count = parsed.sign_count || credential.sign_count;
|
|
288
|
+
credential.last_used_at = this.now();
|
|
289
|
+
return { value: current, result: undefined };
|
|
290
|
+
}, { replaceInvalid: true });
|
|
292
291
|
return { ok: true, credential_id: credId };
|
|
293
292
|
}
|
|
294
|
-
delete(credentialId) {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
293
|
+
async delete(credentialId) {
|
|
294
|
+
await updateDocument(this.documents, 'passkeys', this.credentialsFile, (raw) => {
|
|
295
|
+
const creds = this.parseCredentials(raw);
|
|
296
|
+
const kept = creds.filter((credential) => credential.id !== credentialId);
|
|
297
|
+
if (kept.length === creds.length)
|
|
298
|
+
throw new PasskeyError('Passkey not found');
|
|
299
|
+
return { value: kept, result: undefined };
|
|
300
|
+
}, { replaceInvalid: true });
|
|
301
|
+
return { ok: true, credentials: (await this.registered()) };
|
|
301
302
|
}
|
|
302
|
-
clear() {
|
|
303
|
-
if (
|
|
304
|
-
this.
|
|
303
|
+
async clear() {
|
|
304
|
+
if (await this.loadJson(this.credentialsFile))
|
|
305
|
+
await updateDocument(this.documents, 'passkeys', this.credentialsFile, () => ({ value: [], result: undefined }), { replaceInvalid: true });
|
|
305
306
|
}
|
|
306
307
|
}
|
|
307
|
-
function sortedReplacer(_key, value) {
|
|
308
|
-
return isDict(value) ? Object.fromEntries(Object.keys(value).sort().map((k) => [k, value[k]])) : value;
|
|
309
|
-
}
|
|
310
308
|
//# sourceMappingURL=passkeys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passkeys.js","sourceRoot":"","sources":["../../src/auth/passkeys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAa,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAC1C,MAAM,OAAO,qBAAsB,SAAQ,YAAY;CAAG;AAE1D,MAAM,eAAe,GAAG,EAAE,CAAA;AAC1B,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,MAAM,eAAe,GAAG,CAAC,CAAA;AACzB,MAAM,OAAO,GAAG,aAAa,CAAA;AAE7B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC3D,MAAM,UAAU,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAA;AAKlF,gGAAgG;AAChG,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAA,CAAC,CAAC,CAAA;IAC/K,MAAM,GAAG,GAAG,CAAC,IAAY,EAAU,EAAE;QACnC,IAAI,IAAI,GAAG,EAAE;YAAE,OAAO,IAAI,CAAA;QAC1B,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1D,MAAM,IAAI,YAAY,CAAC,0CAA0C,CAAC,CAAA;IACpE,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,GAAY,EAAE;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;QAC7B,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACzB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/D,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAoB,CAAC;YAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;gBAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YAAC,CAAC;YAAC,OAAO,CAAC,CAAA;QAAC,CAAC;QAC1I,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAA;QAAC,CAAC;QACrG,MAAM,IAAI,YAAY,CAAC,uBAAuB,CAAC,CAAA;IACjD,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;IACpB,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAAA;IACrE,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAA;IACtE,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3E,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,SAAS,CAAC,OAAwG,EAAE,MAAe;IACjJ,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5C,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;YACzB,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;gBACrG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACpG,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAAA;IACzD,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;IACvF,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO;QAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;IAC5E,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,OAAO,YAAY;IAIM;IAAmC;IAH/C,eAAe,CAAQ;IACvB,cAAc,CAAQ;IAEvC,YAA6B,QAAgB,EAAmB,MAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;QAA9E,aAAQ,GAAR,QAAQ,CAAQ;QAAmB,QAAG,GAAH,GAAG,CAAwC;QACzG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;IAClE,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,IAAI,CAAC;YAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAA;QAAC,CAAC;IACvG,CAAC;IAEO,SAAS,CAAC,IAAY,EAAE,OAAgB;QAC9C,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAClF,IAAI,CAAC;YAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IAEO,WAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1V,CAAC;IAED,kDAAkD;IAClD,UAAU;QACR,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IACrK,CAAC;IAED,SAAS,KAAc,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA,CAAC,CAAC;IAErD,UAAU;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAA;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,KAAK,GAA8B,EAAE,CAAA;QAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,eAAe;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;QAC3M,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QACrG,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,cAAc,CAAC,SAAiB,EAAE,IAAY,EAAE,IAAY,EAAE,MAAc;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC9B,MAAM,MAAM,GAAG,CAAC,IAAc,EAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;QACzH,SAAS,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;YAC7H,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe;gBAAE,MAAK;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAI,CAAC,MAAM;gBAAE,MAAK;YAClB,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;YAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM;gBAAE,MAAM;YAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAAC,CAAC;QACzJ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IAEO,gBAAgB,CAAC,SAAiB,EAAE,IAAY;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7B,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QACzC,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,YAAY,CAAC,uCAAuC,CAAC,CAAA;QACzF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mBAAmB,CAAC,IAAY,EAAE,MAAc;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QACxD,OAAO;YACL,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;YAC/J,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM;YAC7K,kBAAkB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACrF,CAAA;IACH,CAAC;IAED,qBAAqB,CAAC,IAAY,EAAE,MAAc;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,YAAY,CAAC,6BAA6B,CAAC,CAAA;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QACrD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAA;IACnJ,CAAC;IAEO,UAAU,CAAC,OAAgB,EAAE,YAAoB,EAAE,IAAY;QACrE,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,IAAa,CAAA;QACjB,IAAI,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,YAAY,CAAC,uBAAuB,CAAC,CAAA;QAAC,CAAC;QACzG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,IAAI,YAAY,CAAC,kCAAkC,CAAC,CAAA;QAC3G,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAA;QAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC,CAAA;QACnF,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC3B,CAAC;IAEO,aAAa,CAAC,QAAgB,EAAE,IAAY;QAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,8BAA8B,CAAC,CAAA;QAChF,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;QAC3F,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,wBAAwB,CAAC,CAAA;QAC1G,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,wCAAwC,CAAC,CAAA;QACrF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;IACtF,CAAC;IAED,kBAAkB,CAAC,OAAa;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;QACjE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAA;QAC/F,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAA;QACpE,IAAI,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,8BAA8B,CAAC,CAAA;QAC1H,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAC7E,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,iCAAiC,CAAC,CAAA;QACrF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACxB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAA;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;QACpD,IAAI,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,mCAAmC,CAAC,CAAA;QACvF,MAAM,CAAC,GAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,GAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,mCAAmC,CAAC,CAAA;QAC5K,IAAI,GAAW,CAAA;QACf,IAAI,CAAC;YAAC,GAAG,GAAG,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,YAAY,CAAC,mCAAmC,CAAC,CAAA;QAAC,CAAC;QACnO,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAA;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;QACzH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAC3C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAA;IAChD,CAAC;IAED,WAAW,CAAC,OAAa;QACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;QACjE,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,CAAA;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,+BAA+B,CAAC,CAAA;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;QACnD,IAAI,GAAG,GAAG,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAA;QACtD,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;QACpG,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACxD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACzF,IAAI,EAAE,GAAG,KAAK,CAAA;QACd,IAAI,CAAC;YAAC,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,EAAE,GAAG,KAAK,CAAA;QAAC,CAAC;QACxH,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,uCAAuC,CAAC,CAAA;QACxE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAE,CAAA;QACxB,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,YAAY,CAAC,sCAAsC,CAAC,CAAA;QAChJ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAA;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAC3C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,YAAoB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAA;QACvD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAAA;QAC7E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;QAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAA;IACrD,CAAC;IAED,KAAK;QACH,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAChF,CAAC;CACF;AAED,SAAS,cAAc,CAAgB,IAAY,EAAE,KAAc;IACjE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACxG,CAAC"}
|
|
1
|
+
{"version":3,"file":"passkeys.js","sourceRoot":"","sources":["../../src/auth/passkeys.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/store.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session, key, password-hash, and login-rate state (Python `api/auth.py`).
|
|
3
|
+
* Every on-disk artefact keeps its Python name and format so an install can
|
|
4
|
+
* switch backends without a forced logout: `.pbkdf2_key`, `.signing_key`,
|
|
5
|
+
* `.sessions.json`, `.login_attempts.json`.
|
|
6
|
+
*/
|
|
7
|
+
import { type DocumentBackend } from '../sessions/storage/backend.js';
|
|
1
8
|
import { type Env } from '../config.js';
|
|
2
9
|
import type { SettingsStore } from '../settings.js';
|
|
3
10
|
export declare const SESSION_TTL: number;
|
|
@@ -24,14 +31,14 @@ export interface SessionInfo extends SessionRecord {
|
|
|
24
31
|
type StoredSession = number | SessionRecord;
|
|
25
32
|
export declare function sessionExpiry(record: unknown): number | null;
|
|
26
33
|
export interface AuthStoreOptions {
|
|
27
|
-
|
|
34
|
+
documents: DocumentBackend;
|
|
28
35
|
env: Env;
|
|
29
36
|
settings: SettingsStore;
|
|
30
37
|
log?: (line: string) => void;
|
|
31
38
|
/** Seconds since the epoch; tests inject a clock. */
|
|
32
39
|
now?: () => number;
|
|
33
40
|
/** At least one passkey credential is registered (feature flag applied by the caller). */
|
|
34
|
-
passkeysEnabled?: () => boolean
|
|
41
|
+
passkeysEnabled?: () => Promise<boolean>;
|
|
35
42
|
/** Last-known OIDC auth posture (sync for the auth gate); stays on while the operator config is unreadable. */
|
|
36
43
|
oidcEnabled?: () => boolean;
|
|
37
44
|
/** Last-known OIDC config resolved and complete, so SSO can be offered. */
|
|
@@ -44,7 +51,7 @@ export interface AuthStoreOptions {
|
|
|
44
51
|
persistWrite?: (file: string, text: string) => Promise<void>;
|
|
45
52
|
}
|
|
46
53
|
export declare class AuthStore {
|
|
47
|
-
readonly
|
|
54
|
+
private readonly documents;
|
|
48
55
|
readonly env: Env;
|
|
49
56
|
readonly settings: SettingsStore;
|
|
50
57
|
readonly now: () => number;
|
|
@@ -57,7 +64,7 @@ export declare class AuthStore {
|
|
|
57
64
|
private signingKeyCache;
|
|
58
65
|
private passwordHash;
|
|
59
66
|
private readonly warned;
|
|
60
|
-
passkeysEnabled: () => boolean
|
|
67
|
+
passkeysEnabled: () => Promise<boolean>;
|
|
61
68
|
oidcEnabled: () => boolean;
|
|
62
69
|
oidcAvailable: () => boolean;
|
|
63
70
|
private readonly oidcProbe;
|
|
@@ -66,6 +73,9 @@ export declare class AuthStore {
|
|
|
66
73
|
private readonly sessionsWriter;
|
|
67
74
|
private readonly attemptsWriter;
|
|
68
75
|
constructor(opts: AuthStoreOptions);
|
|
76
|
+
initialize(): Promise<void>;
|
|
77
|
+
private readonly persistedSnapshots;
|
|
78
|
+
private persistDocument;
|
|
69
79
|
/**
|
|
70
80
|
* Awaits every pending session and login-attempt write; orderly shutdown and restart call it before exiting. Loops
|
|
71
81
|
* until both writers are idle, because a request still being served can start a write while this one waits.
|
|
@@ -74,7 +84,7 @@ export declare class AuthStore {
|
|
|
74
84
|
private warnPersistence;
|
|
75
85
|
warnOnce(key: string, message: string): void;
|
|
76
86
|
private loadKey;
|
|
77
|
-
pbkdf2Key(): Buffer
|
|
87
|
+
pbkdf2Key(): Promise<Buffer>;
|
|
78
88
|
signingKey(): Buffer;
|
|
79
89
|
/** Tests inject fixed keys to assert byte compatibility with Python outputs. */
|
|
80
90
|
setKeysForTest(pbkdf2Key: Buffer, signingKey: Buffer): void;
|
|
@@ -90,7 +100,7 @@ export declare class AuthStore {
|
|
|
90
100
|
* Feature flag AND at least one registered credential (Python `are_passkeys_enabled`). With credentials on disk and
|
|
91
101
|
* the flag unknown (sidecar down, config changed underneath), the gate stays closed rather than opening the API.
|
|
92
102
|
*/
|
|
93
|
-
passkeysAvailable(): boolean
|
|
103
|
+
passkeysAvailable(): Promise<boolean>;
|
|
94
104
|
isTrustedAuthEnabled(): boolean;
|
|
95
105
|
isAuthEnabled(): Promise<boolean>;
|
|
96
106
|
/** OIDC enablement after resolving its config, so a cold cache does not hide SSO behind another auth method. */
|
|
@@ -102,7 +112,7 @@ export declare class AuthStore {
|
|
|
102
112
|
}>;
|
|
103
113
|
verifyPassword(plain: string): Promise<boolean>;
|
|
104
114
|
resolveSessionTtl(): number;
|
|
105
|
-
resolveSessionSliding(): boolean
|
|
115
|
+
resolveSessionSliding(): Promise<boolean>;
|
|
106
116
|
cookieName(): string;
|
|
107
117
|
private loadSessions;
|
|
108
118
|
private persistSessions;
|