@mdbase-dev/sdk 0.0.0-stage → 0.1.0-beta.153
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/LICENSE +21 -0
- package/README.md +844 -2
- package/dist/account-key.d.ts +176 -0
- package/dist/account-key.js +409 -0
- package/dist/account-key.js.map +1 -0
- package/dist/account.d.ts +11 -0
- package/dist/account.js +9 -0
- package/dist/account.js.map +1 -0
- package/dist/app-grant/client.d.ts +209 -0
- package/dist/app-grant/client.js +930 -0
- package/dist/app-grant/client.js.map +1 -0
- package/dist/app-grant/grant-store.d.ts +77 -0
- package/dist/app-grant/grant-store.js +201 -0
- package/dist/app-grant/grant-store.js.map +1 -0
- package/dist/app-grant/index.d.ts +11 -0
- package/dist/app-grant/index.js +10 -0
- package/dist/app-grant/index.js.map +1 -0
- package/dist/app-grant/native-completion.d.ts +22 -0
- package/dist/app-grant/native-completion.js +63 -0
- package/dist/app-grant/native-completion.js.map +1 -0
- package/dist/app-grant/people.d.ts +10 -0
- package/dist/app-grant/people.js +84 -0
- package/dist/app-grant/people.js.map +1 -0
- package/dist/app-grant/setup-attempt.d.ts +12 -0
- package/dist/app-grant/setup-attempt.js +62 -0
- package/dist/app-grant/setup-attempt.js.map +1 -0
- package/dist/app-grant/setup-producer.d.ts +31 -0
- package/dist/app-grant/setup-producer.js +65 -0
- package/dist/app-grant/setup-producer.js.map +1 -0
- package/dist/app-grant/setup.d.ts +11 -0
- package/dist/app-grant/setup.js +222 -0
- package/dist/app-grant/setup.js.map +1 -0
- package/dist/app-host/app-environment.d.ts +27 -0
- package/dist/app-host/app-environment.js +48 -0
- package/dist/app-host/app-environment.js.map +1 -0
- package/dist/app-host/app-origin.d.ts +7 -0
- package/dist/app-host/app-origin.js +48 -0
- package/dist/app-host/app-origin.js.map +1 -0
- package/dist/app-host/bases-pages.d.ts +29 -0
- package/dist/app-host/bases-pages.js +42 -0
- package/dist/app-host/bases-pages.js.map +1 -0
- package/dist/app-host/bases-wire.d.ts +159 -0
- package/dist/app-host/bases-wire.js +376 -0
- package/dist/app-host/bases-wire.js.map +1 -0
- package/dist/app-host/browser-direct-access.d.ts +18 -0
- package/dist/app-host/browser-direct-access.js +17 -0
- package/dist/app-host/browser-direct-access.js.map +1 -0
- package/dist/app-host/cloud-copy-bootstrap.d.ts +127 -0
- package/dist/app-host/cloud-copy-bootstrap.js +606 -0
- package/dist/app-host/cloud-copy-bootstrap.js.map +1 -0
- package/dist/app-host/cloud-copy-host.d.ts +248 -0
- package/dist/app-host/cloud-copy-host.js +1028 -0
- package/dist/app-host/cloud-copy-host.js.map +1 -0
- package/dist/app-host/cloud-copy-persistence-idb.d.ts +33 -0
- package/dist/app-host/cloud-copy-persistence-idb.js +255 -0
- package/dist/app-host/cloud-copy-persistence-idb.js.map +1 -0
- package/dist/app-host/cloud-copy-persistence.d.ts +57 -0
- package/dist/app-host/cloud-copy-persistence.js +341 -0
- package/dist/app-host/cloud-copy-persistence.js.map +1 -0
- package/dist/app-host/collection-control.d.ts +111 -0
- package/dist/app-host/collection-control.js +604 -0
- package/dist/app-host/collection-control.js.map +1 -0
- package/dist/app-host/collection-delete.d.ts +7 -0
- package/dist/app-host/collection-delete.js +54 -0
- package/dist/app-host/collection-delete.js.map +1 -0
- package/dist/app-host/collection-display-name.d.ts +2 -0
- package/dist/app-host/collection-display-name.js +22 -0
- package/dist/app-host/collection-display-name.js.map +1 -0
- package/dist/app-host/collection-join-ledger.d.ts +52 -0
- package/dist/app-host/collection-join-ledger.js +208 -0
- package/dist/app-host/collection-join-ledger.js.map +1 -0
- package/dist/app-host/collection-people.d.ts +32 -0
- package/dist/app-host/collection-people.js +119 -0
- package/dist/app-host/collection-people.js.map +1 -0
- package/dist/app-host/collection-readiness.d.ts +119 -0
- package/dist/app-host/collection-readiness.js +649 -0
- package/dist/app-host/collection-readiness.js.map +1 -0
- package/dist/app-host/collection-setup-journal.d.ts +59 -0
- package/dist/app-host/collection-setup-journal.js +813 -0
- package/dist/app-host/collection-setup-journal.js.map +1 -0
- package/dist/app-host/collection-setup-types.d.ts +155 -0
- package/dist/app-host/collection-setup-types.js +10 -0
- package/dist/app-host/collection-setup-types.js.map +1 -0
- package/dist/app-host/cp-authority.d.ts +65 -0
- package/dist/app-host/cp-authority.js +243 -0
- package/dist/app-host/cp-authority.js.map +1 -0
- package/dist/app-host/cp-people.d.ts +23 -0
- package/dist/app-host/cp-people.js +145 -0
- package/dist/app-host/cp-people.js.map +1 -0
- package/dist/app-host/cp-problem.d.ts +34 -0
- package/dist/app-host/cp-problem.js +114 -0
- package/dist/app-host/cp-problem.js.map +1 -0
- package/dist/app-host/device-key-custody.d.ts +51 -0
- package/dist/app-host/device-key-custody.js +128 -0
- package/dist/app-host/device-key-custody.js.map +1 -0
- package/dist/app-host/device-key-idb.d.ts +31 -0
- package/dist/app-host/device-key-idb.js +176 -0
- package/dist/app-host/device-key-idb.js.map +1 -0
- package/dist/app-host/device-key-provider.d.ts +33 -0
- package/dist/app-host/device-key-provider.js +181 -0
- package/dist/app-host/device-key-provider.js.map +1 -0
- package/dist/app-host/device-registration.d.ts +51 -0
- package/dist/app-host/device-registration.js +180 -0
- package/dist/app-host/device-registration.js.map +1 -0
- package/dist/app-host/foreground-wake.d.ts +43 -0
- package/dist/app-host/foreground-wake.js +113 -0
- package/dist/app-host/foreground-wake.js.map +1 -0
- package/dist/app-host/handover.d.ts +27 -0
- package/dist/app-host/handover.js +82 -0
- package/dist/app-host/handover.js.map +1 -0
- package/dist/app-host/http-log.d.ts +96 -0
- package/dist/app-host/http-log.js +608 -0
- package/dist/app-host/http-log.js.map +1 -0
- package/dist/app-host/index.d.ts +63 -0
- package/dist/app-host/index.js +33 -0
- package/dist/app-host/index.js.map +1 -0
- package/dist/app-host/initial-sync.d.ts +22 -0
- package/dist/app-host/initial-sync.js +41 -0
- package/dist/app-host/initial-sync.js.map +1 -0
- package/dist/app-host/installation-sign-in.d.ts +319 -0
- package/dist/app-host/installation-sign-in.js +1231 -0
- package/dist/app-host/installation-sign-in.js.map +1 -0
- package/dist/app-host/installation-store.d.ts +56 -0
- package/dist/app-host/installation-store.js +285 -0
- package/dist/app-host/installation-store.js.map +1 -0
- package/dist/app-host/ledger-rows.d.ts +3 -0
- package/dist/app-host/ledger-rows.js +23 -0
- package/dist/app-host/ledger-rows.js.map +1 -0
- package/dist/app-host/local-facade.d.ts +24 -0
- package/dist/app-host/local-facade.js +361 -0
- package/dist/app-host/local-facade.js.map +1 -0
- package/dist/app-host/log-pump.d.ts +124 -0
- package/dist/app-host/log-pump.js +326 -0
- package/dist/app-host/log-pump.js.map +1 -0
- package/dist/app-host/log-push.d.ts +90 -0
- package/dist/app-host/log-push.js +376 -0
- package/dist/app-host/log-push.js.map +1 -0
- package/dist/app-host/log-token-cache.d.ts +28 -0
- package/dist/app-host/log-token-cache.js +104 -0
- package/dist/app-host/log-token-cache.js.map +1 -0
- package/dist/app-host/native-sign-in.d.ts +27 -0
- package/dist/app-host/native-sign-in.js +12 -0
- package/dist/app-host/native-sign-in.js.map +1 -0
- package/dist/app-host/noise-custody.d.ts +62 -0
- package/dist/app-host/noise-custody.js +238 -0
- package/dist/app-host/noise-custody.js.map +1 -0
- package/dist/app-host/noise-idb.d.ts +33 -0
- package/dist/app-host/noise-idb.js +199 -0
- package/dist/app-host/noise-idb.js.map +1 -0
- package/dist/app-host/open-wait.d.ts +3 -0
- package/dist/app-host/open-wait.js +17 -0
- package/dist/app-host/open-wait.js.map +1 -0
- package/dist/app-host/opening-progress.d.ts +3 -0
- package/dist/app-host/opening-progress.js +5 -0
- package/dist/app-host/opening-progress.js.map +1 -0
- package/dist/app-host/owner.d.ts +103 -0
- package/dist/app-host/owner.js +262 -0
- package/dist/app-host/owner.js.map +1 -0
- package/dist/app-host/private-bootstrap.d.ts +78 -0
- package/dist/app-host/private-bootstrap.js +230 -0
- package/dist/app-host/private-bootstrap.js.map +1 -0
- package/dist/app-host/private-persistence-idb.d.ts +32 -0
- package/dist/app-host/private-persistence-idb.js +188 -0
- package/dist/app-host/private-persistence-idb.js.map +1 -0
- package/dist/app-host/private-persistence.d.ts +55 -0
- package/dist/app-host/private-persistence.js +257 -0
- package/dist/app-host/private-persistence.js.map +1 -0
- package/dist/app-host/scoped-sign-in-session.d.ts +49 -0
- package/dist/app-host/scoped-sign-in-session.js +243 -0
- package/dist/app-host/scoped-sign-in-session.js.map +1 -0
- package/dist/app-host/setup-engine.d.ts +14 -0
- package/dist/app-host/setup-engine.js +73 -0
- package/dist/app-host/setup-engine.js.map +1 -0
- package/dist/app-host/sign-out-erase.d.ts +37 -0
- package/dist/app-host/sign-out-erase.js +139 -0
- package/dist/app-host/sign-out-erase.js.map +1 -0
- package/dist/app-host/status.d.ts +62 -0
- package/dist/app-host/status.js +43 -0
- package/dist/app-host/status.js.map +1 -0
- package/dist/app-host/storage-probe.d.ts +46 -0
- package/dist/app-host/storage-probe.js +63 -0
- package/dist/app-host/storage-probe.js.map +1 -0
- package/dist/app-host/timer-port.d.ts +29 -0
- package/dist/app-host/timer-port.js +483 -0
- package/dist/app-host/timer-port.js.map +1 -0
- package/dist/app-host/wasm-runtime.d.ts +302 -0
- package/dist/app-host/wasm-runtime.js +1050 -0
- package/dist/app-host/wasm-runtime.js.map +1 -0
- package/dist/app-host/web-collection.d.ts +78 -0
- package/dist/app-host/web-collection.js +671 -0
- package/dist/app-host/web-collection.js.map +1 -0
- package/dist/app-host/web-sign-in-problem.d.ts +17 -0
- package/dist/app-host/web-sign-in-problem.js +59 -0
- package/dist/app-host/web-sign-in-problem.js.map +1 -0
- package/dist/app-host/web-sign-in-session.d.ts +367 -0
- package/dist/app-host/web-sign-in-session.js +1258 -0
- package/dist/app-host/web-sign-in-session.js.map +1 -0
- package/dist/app-storage/app-binary-index.d.ts +33 -0
- package/dist/app-storage/app-binary-index.js +274 -0
- package/dist/app-storage/app-binary-index.js.map +1 -0
- package/dist/app-storage/app-sqlite-index.d.ts +40 -0
- package/dist/app-storage/app-sqlite-index.js +102 -0
- package/dist/app-storage/app-sqlite-index.js.map +1 -0
- package/dist/app-storage/collection-sql.d.ts +39 -0
- package/dist/app-storage/collection-sql.js +93 -0
- package/dist/app-storage/collection-sql.js.map +1 -0
- package/dist/app-storage/index.d.ts +10 -0
- package/dist/app-storage/index.js +7 -0
- package/dist/app-storage/index.js.map +1 -0
- package/dist/app-storage/sqlite-index.d.ts +95 -0
- package/dist/app-storage/sqlite-index.js +280 -0
- package/dist/app-storage/sqlite-index.js.map +1 -0
- package/dist/application/asset-loader.d.ts +22 -0
- package/dist/application/asset-loader.js +130 -0
- package/dist/application/asset-loader.js.map +1 -0
- package/dist/application/asset-pins.json +24 -0
- package/dist/application/browser-capabilities.d.ts +48 -0
- package/dist/application/browser-capabilities.js +87 -0
- package/dist/application/browser-capabilities.js.map +1 -0
- package/dist/application/browser-selection.d.ts +58 -0
- package/dist/application/browser-selection.js +160 -0
- package/dist/application/browser-selection.js.map +1 -0
- package/dist/application/capabilities.d.ts +20 -0
- package/dist/application/capabilities.js +22 -0
- package/dist/application/capabilities.js.map +1 -0
- package/dist/application/collection-selection.d.ts +147 -0
- package/dist/application/collection-selection.js +351 -0
- package/dist/application/collection-selection.js.map +1 -0
- package/dist/application/configuration.d.ts +52 -0
- package/dist/application/configuration.js +568 -0
- package/dist/application/configuration.js.map +1 -0
- package/dist/application/declaration.d.ts +51 -0
- package/dist/application/declaration.js +100 -0
- package/dist/application/declaration.js.map +1 -0
- package/dist/application/entry.d.ts +343 -0
- package/dist/application/entry.js +945 -0
- package/dist/application/entry.js.map +1 -0
- package/dist/application/file-access.d.ts +55 -0
- package/dist/application/file-access.js +93 -0
- package/dist/application/file-access.js.map +1 -0
- package/dist/application/file-readiness.d.ts +16 -0
- package/dist/application/file-readiness.js +53 -0
- package/dist/application/file-readiness.js.map +1 -0
- package/dist/application/forgotten.d.ts +15 -0
- package/dist/application/forgotten.js +70 -0
- package/dist/application/forgotten.js.map +1 -0
- package/dist/application/front-door.d.ts +68 -0
- package/dist/application/front-door.js +66 -0
- package/dist/application/front-door.js.map +1 -0
- package/dist/application/local-build.d.ts +5 -0
- package/dist/application/local-build.js +22 -0
- package/dist/application/local-build.js.map +1 -0
- package/dist/application/manifest.d.ts +16 -0
- package/dist/application/manifest.js +31 -0
- package/dist/application/manifest.js.map +1 -0
- package/dist/application/native-assets.d.ts +25 -0
- package/dist/application/native-assets.js +29 -0
- package/dist/application/native-assets.js.map +1 -0
- package/dist/application/native-authorization-rpc.d.ts +23 -0
- package/dist/application/native-authorization-rpc.js +54 -0
- package/dist/application/native-authorization-rpc.js.map +1 -0
- package/dist/application/notification-readiness.d.ts +33 -0
- package/dist/application/notification-readiness.js +222 -0
- package/dist/application/notification-readiness.js.map +1 -0
- package/dist/application/packaged-assets.d.ts +5 -0
- package/dist/application/packaged-assets.js +55 -0
- package/dist/application/packaged-assets.js.map +1 -0
- package/dist/application/packaged-trust.d.ts +5 -0
- package/dist/application/packaged-trust.js +10 -0
- package/dist/application/packaged-trust.js.map +1 -0
- package/dist/application/people-readiness.d.ts +23 -0
- package/dist/application/people-readiness.js +213 -0
- package/dist/application/people-readiness.js.map +1 -0
- package/dist/application/phase.d.ts +108 -0
- package/dist/application/phase.js +113 -0
- package/dist/application/phase.js.map +1 -0
- package/dist/application/portal-reservation.d.ts +38 -0
- package/dist/application/portal-reservation.js +183 -0
- package/dist/application/portal-reservation.js.map +1 -0
- package/dist/application/private-collections.d.ts +114 -0
- package/dist/application/private-collections.js +415 -0
- package/dist/application/private-collections.js.map +1 -0
- package/dist/application/readiness.d.ts +59 -0
- package/dist/application/readiness.js +223 -0
- package/dist/application/readiness.js.map +1 -0
- package/dist/application/registration-refusal.d.ts +16 -0
- package/dist/application/registration-refusal.js +41 -0
- package/dist/application/registration-refusal.js.map +1 -0
- package/dist/application/registration.d.ts +26 -0
- package/dist/application/registration.js +372 -0
- package/dist/application/registration.js.map +1 -0
- package/dist/application/return-url.d.ts +1 -0
- package/dist/application/return-url.js +40 -0
- package/dist/application/return-url.js.map +1 -0
- package/dist/application/runtime.d.ts +107 -0
- package/dist/application/runtime.js +379 -0
- package/dist/application/runtime.js.map +1 -0
- package/dist/application/scope.d.ts +34 -0
- package/dist/application/scope.js +164 -0
- package/dist/application/scope.js.map +1 -0
- package/dist/application/session-hint.d.ts +21 -0
- package/dist/application/session-hint.js +87 -0
- package/dist/application/session-hint.js.map +1 -0
- package/dist/application/setup.d.ts +105 -0
- package/dist/application/setup.js +137 -0
- package/dist/application/setup.js.map +1 -0
- package/dist/application/sign-out.d.ts +17 -0
- package/dist/application/sign-out.js +28 -0
- package/dist/application/sign-out.js.map +1 -0
- package/dist/application/storage-scope.d.ts +8 -0
- package/dist/application/storage-scope.js +15 -0
- package/dist/application/storage-scope.js.map +1 -0
- package/dist/application/tabs.d.ts +98 -0
- package/dist/application/tabs.js +407 -0
- package/dist/application/tabs.js.map +1 -0
- package/dist/application/timer-criteria.d.ts +5 -0
- package/dist/application/timer-criteria.js +15 -0
- package/dist/application/timer-criteria.js.map +1 -0
- package/dist/application/ui-connections.d.ts +35 -0
- package/dist/application/ui-connections.js +129 -0
- package/dist/application/ui-connections.js.map +1 -0
- package/dist/application/worker-client.d.ts +59 -0
- package/dist/application/worker-client.js +381 -0
- package/dist/application/worker-client.js.map +1 -0
- package/dist/application/worker-host.d.ts +84 -0
- package/dist/application/worker-host.js +547 -0
- package/dist/application/worker-host.js.map +1 -0
- package/dist/application/worker-protocol.d.ts +40 -0
- package/dist/application/worker-protocol.js +83 -0
- package/dist/application/worker-protocol.js.map +1 -0
- package/dist/application/worker-session.d.ts +45 -0
- package/dist/application/worker-session.js +37 -0
- package/dist/application/worker-session.js.map +1 -0
- package/dist/application/worker.d.ts +1 -0
- package/dist/application/worker.js +34835 -0
- package/dist/application/worker.js.map +1 -0
- package/dist/attachment-wire.d.ts +15 -0
- package/dist/attachment-wire.js +47 -0
- package/dist/attachment-wire.js.map +1 -0
- package/dist/browser/mdbase-sdk.js +49398 -0
- package/dist/browser/mdbase-sdk.min.js +130 -0
- package/dist/browser.d.ts +4 -0
- package/dist/browser.js +5 -0
- package/dist/browser.js.map +1 -0
- package/dist/cbor.d.ts +52 -0
- package/dist/cbor.js +480 -0
- package/dist/cbor.js.map +1 -0
- package/dist/client.d.ts +658 -0
- package/dist/client.js +1966 -0
- package/dist/client.js.map +1 -0
- package/dist/codec.d.ts +82 -0
- package/dist/codec.js +388 -0
- package/dist/codec.js.map +1 -0
- package/dist/collection-availability.d.ts +34 -0
- package/dist/collection-availability.js +63 -0
- package/dist/collection-availability.js.map +1 -0
- package/dist/contract-query.d.ts +31 -0
- package/dist/contract-query.js +13 -0
- package/dist/contract-query.js.map +1 -0
- package/dist/contract-records.d.ts +51 -0
- package/dist/contract-records.js +14 -0
- package/dist/contract-records.js.map +1 -0
- package/dist/describe-error.d.ts +61 -0
- package/dist/describe-error.js +452 -0
- package/dist/describe-error.js.map +1 -0
- package/dist/errors.d.ts +65 -0
- package/dist/errors.js +94 -0
- package/dist/errors.js.map +1 -0
- package/dist/files.d.ts +147 -0
- package/dist/files.js +537 -0
- package/dist/files.js.map +1 -0
- package/dist/holds.d.ts +74 -0
- package/dist/holds.js +118 -0
- package/dist/holds.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/keys.d.ts +40 -0
- package/dist/keys.js +181 -0
- package/dist/keys.js.map +1 -0
- package/dist/live.d.ts +38 -0
- package/dist/live.js +82 -0
- package/dist/live.js.map +1 -0
- package/dist/local-build.d.ts +13 -0
- package/dist/local-build.js +47 -0
- package/dist/local-build.js.map +1 -0
- package/dist/native/provenance.json +23 -0
- package/dist/native/runtime.wasm +0 -0
- package/dist/native/sqlite3.d.ts +5 -0
- package/dist/native/sqlite3.js +17392 -0
- package/dist/native/sqlite3.js.map +1 -0
- package/dist/native/sqlite3.wasm +0 -0
- package/dist/node.d.ts +63 -0
- package/dist/node.js +255 -0
- package/dist/node.js.map +1 -0
- package/dist/notifications.d.ts +95 -0
- package/dist/notifications.js +226 -0
- package/dist/notifications.js.map +1 -0
- package/dist/offline-shell-build.d.ts +25 -0
- package/dist/offline-shell-build.js +78 -0
- package/dist/offline-shell-build.js.map +1 -0
- package/dist/offline-shell-worker.d.ts +46 -0
- package/dist/offline-shell-worker.js +115 -0
- package/dist/offline-shell-worker.js.map +1 -0
- package/dist/people.d.ts +82 -0
- package/dist/people.js +199 -0
- package/dist/people.js.map +1 -0
- package/dist/presence.d.ts +21 -0
- package/dist/presence.js +109 -0
- package/dist/presence.js.map +1 -0
- package/dist/private-account.d.ts +197 -0
- package/dist/private-account.js +510 -0
- package/dist/private-account.js.map +1 -0
- package/dist/private.d.ts +55 -0
- package/dist/private.js +69 -0
- package/dist/private.js.map +1 -0
- package/dist/read-helpers.d.ts +32 -0
- package/dist/read-helpers.js +181 -0
- package/dist/read-helpers.js.map +1 -0
- package/dist/records/session.d.ts +60 -0
- package/dist/records/session.js +534 -0
- package/dist/records/session.js.map +1 -0
- package/dist/records/types.d.ts +76 -0
- package/dist/records/types.js +2 -0
- package/dist/records/types.js.map +1 -0
- package/dist/records/witness.d.ts +19 -0
- package/dist/records/witness.js +64 -0
- package/dist/records/witness.js.map +1 -0
- package/dist/records.d.ts +23 -0
- package/dist/records.js +234 -0
- package/dist/records.js.map +1 -0
- package/dist/runtime/wasm.d.ts +69 -0
- package/dist/runtime/wasm.js +274 -0
- package/dist/runtime/wasm.js.map +1 -0
- package/dist/runtime-wire.d.ts +71 -0
- package/dist/runtime-wire.js +71 -0
- package/dist/runtime-wire.js.map +1 -0
- package/dist/saved-views.d.ts +29 -0
- package/dist/saved-views.js +171 -0
- package/dist/saved-views.js.map +1 -0
- package/dist/semver.d.ts +22 -0
- package/dist/semver.js +63 -0
- package/dist/semver.js.map +1 -0
- package/dist/session.d.ts +65 -0
- package/dist/session.js +332 -0
- package/dist/session.js.map +1 -0
- package/dist/status.d.ts +46 -0
- package/dist/status.js +59 -0
- package/dist/status.js.map +1 -0
- package/dist/strength.d.ts +12 -0
- package/dist/strength.js +194 -0
- package/dist/strength.js.map +1 -0
- package/dist/testing/application.d.ts +59 -0
- package/dist/testing/application.js +230 -0
- package/dist/testing/application.js.map +1 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/index.js +6 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/memory-contracts.d.ts +40 -0
- package/dist/testing/memory-contracts.js +127 -0
- package/dist/testing/memory-contracts.js.map +1 -0
- package/dist/testing/memory-replica.d.ts +191 -0
- package/dist/testing/memory-replica.js +1465 -0
- package/dist/testing/memory-replica.js.map +1 -0
- package/dist/testing/noise-server.d.ts +11 -0
- package/dist/testing/noise-server.js +65 -0
- package/dist/testing/noise-server.js.map +1 -0
- package/dist/testing/test-app.d.ts +93 -0
- package/dist/testing/test-app.js +140 -0
- package/dist/testing/test-app.js.map +1 -0
- package/dist/thin-client.d.ts +67 -0
- package/dist/thin-client.js +42 -0
- package/dist/thin-client.js.map +1 -0
- package/dist/timers.d.ts +158 -0
- package/dist/timers.js +258 -0
- package/dist/timers.js.map +1 -0
- package/dist/transport/bases-rpc.d.ts +15 -0
- package/dist/transport/bases-rpc.js +61 -0
- package/dist/transport/bases-rpc.js.map +1 -0
- package/dist/transport/control-route.d.ts +34 -0
- package/dist/transport/control-route.js +84 -0
- package/dist/transport/control-route.js.map +1 -0
- package/dist/transport/inprocess.d.ts +13 -0
- package/dist/transport/inprocess.js +37 -0
- package/dist/transport/inprocess.js.map +1 -0
- package/dist/transport/local-link.d.ts +53 -0
- package/dist/transport/local-link.js +66 -0
- package/dist/transport/local-link.js.map +1 -0
- package/dist/transport/next-relay.d.ts +64 -0
- package/dist/transport/next-relay.js +222 -0
- package/dist/transport/next-relay.js.map +1 -0
- package/dist/transport/noise-session.d.ts +88 -0
- package/dist/transport/noise-session.js +264 -0
- package/dist/transport/noise-session.js.map +1 -0
- package/dist/transport/noise.d.ts +102 -0
- package/dist/transport/noise.js +307 -0
- package/dist/transport/noise.js.map +1 -0
- package/dist/transport/original-session.d.ts +6 -0
- package/dist/transport/original-session.js +6 -0
- package/dist/transport/original-session.js.map +1 -0
- package/dist/transport/port.d.ts +67 -0
- package/dist/transport/port.js +184 -0
- package/dist/transport/port.js.map +1 -0
- package/dist/transport/read-fence-policy.d.ts +3 -0
- package/dist/transport/read-fence-policy.js +11 -0
- package/dist/transport/read-fence-policy.js.map +1 -0
- package/dist/transport/relay-close.d.ts +31 -0
- package/dist/transport/relay-close.js +23 -0
- package/dist/transport/relay-close.js.map +1 -0
- package/dist/transport/relay-pipe.d.ts +15 -0
- package/dist/transport/relay-pipe.js +190 -0
- package/dist/transport/relay-pipe.js.map +1 -0
- package/dist/transport/relay.d.ts +36 -0
- package/dist/transport/relay.js +45 -0
- package/dist/transport/relay.js.map +1 -0
- package/dist/type-packs.d.ts +124 -0
- package/dist/type-packs.js +188 -0
- package/dist/type-packs.js.map +1 -0
- package/dist/validation.d.ts +30 -0
- package/dist/validation.js +125 -0
- package/dist/validation.js.map +1 -0
- package/dist/values.d.ts +37 -0
- package/dist/values.js +133 -0
- package/dist/values.js.map +1 -0
- package/dist/view-sources.d.ts +31 -0
- package/dist/view-sources.js +78 -0
- package/dist/view-sources.js.map +1 -0
- package/dist/wire.d.ts +857 -0
- package/dist/wire.js +915 -0
- package/dist/wire.js.map +1 -0
- package/dist/witness.d.ts +7 -0
- package/dist/witness.js +82 -0
- package/dist/witness.js.map +1 -0
- package/dist/write-ledger.d.ts +41 -0
- package/dist/write-ledger.js +184 -0
- package/dist/write-ledger.js.map +1 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/application-authorization.d.ts +32 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/application-authorization.js +207 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/application-contract.d.ts +23 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/application-contract.js +76 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/application-declaration.d.ts +120 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/application-declaration.js +1 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/authorization-errors.d.ts +34 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/authorization-errors.js +52 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/capabilities.d.ts +73 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/capabilities.js +92 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/change-events.generated.d.ts +48 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/change-events.generated.js +18 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/collection-setup.d.ts +93 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/collection-setup.js +7 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/compatibility.d.ts +37 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/compatibility.js +65 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/connect-problems.generated.d.ts +1533 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/connect-problems.generated.js +598 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/files.d.ts +288 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/files.js +426 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/index.d.ts +723 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/index.js +104 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/manifest-validators.generated.d.ts +13 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/manifest-validators.generated.js +7940 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/manifest.d.ts +72 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/manifest.js +643 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/mutation-fingerprint.d.ts +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/mutation-fingerprint.js +116 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/next-authorization.d.ts +30 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/next-authorization.js +90 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/operations.d.ts +15 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/operations.js +196 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/people.d.ts +33 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/people.js +26 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/records.d.ts +108 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/records.js +3 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/type-packs.d.ts +154 -0
- package/node_modules/@mdbase-dev/connect-protocol/dist/type-packs.js +30 -0
- package/node_modules/@mdbase-dev/connect-protocol/package.json +49 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/application-capability-catalog.v1.json +40 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/application-capability-catalog.v2.json +68 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/catalog.json +17 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/change-events.v1.json +48 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/connect-problem.v1.schema.json +5665 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/connect-problems.v1.catalog.json +373 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/connect-protocol.v1.schema.json +901 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/data-contract.schema.json +163 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/encrypted-relay.v1.schema.json +63 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/encrypted-relay.v2.schema.json +63 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/encrypted-relay.v3.schema.json +64 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/files.v1.schema.json +551 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-cancellation.schema.json +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-invocation.schema.json +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-outcome.schema.json +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-provider-declaration.schema.json +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-request.schema.json +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/conformance-claim.schema.json +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/event-source-declaration.schema.json +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/event.schema.json +6 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/profile.schema.json +456 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/mdbase-app.legacy-v1.schema.json +430 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/mdbase-app.schema.json +437 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/mdbase-query.v0.3.schema.json +176 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/next-trust.v1.schema.json +54 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/notification-webhook.v1.schema.json +56 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/operation-catalog.v1.json +43 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/operation-mutation-classification.v1.json +554 -0
- package/node_modules/@mdbase-dev/connect-protocol/schemas/sync.v1.schema.json +483 -0
- package/node_modules/@noble/hashes/LICENSE +21 -0
- package/node_modules/@noble/hashes/README.md +478 -0
- package/node_modules/@noble/hashes/_blake.d.ts +20 -0
- package/node_modules/@noble/hashes/_blake.js +59 -0
- package/node_modules/@noble/hashes/_md.d.ts +95 -0
- package/node_modules/@noble/hashes/_md.js +209 -0
- package/node_modules/@noble/hashes/_u64.d.ts +36 -0
- package/node_modules/@noble/hashes/_u64.js +77 -0
- package/node_modules/@noble/hashes/argon2.d.ts +148 -0
- package/node_modules/@noble/hashes/argon2.js +577 -0
- package/node_modules/@noble/hashes/blake1.d.ts +162 -0
- package/node_modules/@noble/hashes/blake1.js +630 -0
- package/node_modules/@noble/hashes/blake2.d.ts +203 -0
- package/node_modules/@noble/hashes/blake2.js +573 -0
- package/node_modules/@noble/hashes/blake3.d.ts +68 -0
- package/node_modules/@noble/hashes/blake3.js +310 -0
- package/node_modules/@noble/hashes/eskdf.d.ts +91 -0
- package/node_modules/@noble/hashes/eskdf.js +225 -0
- package/node_modules/@noble/hashes/hkdf.d.ts +70 -0
- package/node_modules/@noble/hashes/hkdf.js +152 -0
- package/node_modules/@noble/hashes/hmac.d.ts +50 -0
- package/node_modules/@noble/hashes/hmac.js +93 -0
- package/node_modules/@noble/hashes/index.d.ts +1 -0
- package/node_modules/@noble/hashes/index.js +34 -0
- package/node_modules/@noble/hashes/legacy.d.ts +107 -0
- package/node_modules/@noble/hashes/legacy.js +348 -0
- package/node_modules/@noble/hashes/package.json +91 -0
- package/node_modules/@noble/hashes/pbkdf2.d.ts +66 -0
- package/node_modules/@noble/hashes/pbkdf2.js +176 -0
- package/node_modules/@noble/hashes/scrypt.d.ts +98 -0
- package/node_modules/@noble/hashes/scrypt.js +304 -0
- package/node_modules/@noble/hashes/sha2.d.ts +176 -0
- package/node_modules/@noble/hashes/sha2.js +446 -0
- package/node_modules/@noble/hashes/sha3-addons.d.ts +533 -0
- package/node_modules/@noble/hashes/sha3-addons.js +973 -0
- package/node_modules/@noble/hashes/sha3.d.ts +208 -0
- package/node_modules/@noble/hashes/sha3.js +475 -0
- package/node_modules/@noble/hashes/src/_blake.ts +67 -0
- package/node_modules/@noble/hashes/src/_md.ts +227 -0
- package/node_modules/@noble/hashes/src/_u64.ts +111 -0
- package/node_modules/@noble/hashes/src/argon2.ts +693 -0
- package/node_modules/@noble/hashes/src/blake1.ts +677 -0
- package/node_modules/@noble/hashes/src/blake2.ts +648 -0
- package/node_modules/@noble/hashes/src/blake3.ts +344 -0
- package/node_modules/@noble/hashes/src/eskdf.ts +265 -0
- package/node_modules/@noble/hashes/src/hkdf.ts +161 -0
- package/node_modules/@noble/hashes/src/hmac.ts +130 -0
- package/node_modules/@noble/hashes/src/index.ts +33 -0
- package/node_modules/@noble/hashes/src/legacy.ts +361 -0
- package/node_modules/@noble/hashes/src/pbkdf2.ts +219 -0
- package/node_modules/@noble/hashes/src/scrypt.ts +375 -0
- package/node_modules/@noble/hashes/src/sha2.ts +486 -0
- package/node_modules/@noble/hashes/src/sha3-addons.ts +1157 -0
- package/node_modules/@noble/hashes/src/sha3.ts +525 -0
- package/node_modules/@noble/hashes/src/utils.ts +978 -0
- package/node_modules/@noble/hashes/src/webcrypto.ts +283 -0
- package/node_modules/@noble/hashes/utils.d.ts +560 -0
- package/node_modules/@noble/hashes/utils.js +687 -0
- package/node_modules/@noble/hashes/webcrypto.d.ts +121 -0
- package/node_modules/@noble/hashes/webcrypto.js +228 -0
- package/node_modules/yaml/LICENSE +13 -0
- package/node_modules/yaml/README.md +172 -0
- package/node_modules/yaml/bin.mjs +11 -0
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
- package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +226 -0
- package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/node_modules/yaml/browser/dist/errors.js +57 -0
- package/node_modules/yaml/browser/dist/index.js +17 -0
- package/node_modules/yaml/browser/dist/log.js +11 -0
- package/node_modules/yaml/browser/dist/nodes/Alias.js +118 -0
- package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
- package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
- package/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/node_modules/yaml/browser/dist/util.js +11 -0
- package/node_modules/yaml/browser/dist/visit.js +233 -0
- package/node_modules/yaml/browser/index.js +5 -0
- package/node_modules/yaml/browser/package.json +3 -0
- package/node_modules/yaml/dist/cli.d.ts +8 -0
- package/node_modules/yaml/dist/cli.mjs +201 -0
- package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/node_modules/yaml/dist/compose/compose-node.js +112 -0
- package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/node_modules/yaml/dist/compose/composer.js +224 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +228 -0
- package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/node_modules/yaml/dist/doc/Document.js +337 -0
- package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/node_modules/yaml/dist/doc/directives.js +178 -0
- package/node_modules/yaml/dist/errors.d.ts +21 -0
- package/node_modules/yaml/dist/errors.js +62 -0
- package/node_modules/yaml/dist/index.d.ts +25 -0
- package/node_modules/yaml/dist/index.js +50 -0
- package/node_modules/yaml/dist/log.d.ts +3 -0
- package/node_modules/yaml/dist/log.js +19 -0
- package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/Alias.js +120 -0
- package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
- package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/node_modules/yaml/dist/options.d.ts +350 -0
- package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/node_modules/yaml/dist/parse/cst.js +112 -0
- package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/node_modules/yaml/dist/parse/lexer.js +723 -0
- package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/node_modules/yaml/dist/parse/parser.js +980 -0
- package/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/node_modules/yaml/dist/public-api.js +107 -0
- package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/node_modules/yaml/dist/schema/tags.js +99 -0
- package/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/node_modules/yaml/dist/test-events.js +134 -0
- package/node_modules/yaml/dist/util.d.ts +16 -0
- package/node_modules/yaml/dist/util.js +28 -0
- package/node_modules/yaml/dist/visit.d.ts +102 -0
- package/node_modules/yaml/dist/visit.js +236 -0
- package/node_modules/yaml/package.json +97 -0
- package/node_modules/yaml/util.js +2 -0
- package/package.json +108 -4
- package/vendor/mdbase-connect-sdk-e6e66bcd172f.json +13 -0
- package/vendor/mdbase-dev-connect-protocol-0.1.0-beta.145-e6e66bcd172f.tgz +0 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";var MdbaseSDK=(()=>{var Zh=Object.defineProperty;var EI=Object.getOwnPropertyDescriptor;var qI=Object.getOwnPropertyNames;var TI=Object.prototype.hasOwnProperty;var I=(n,e,t)=>()=>{if(t)throw t[0];try{return n&&(e=n(n=0)),e}catch(i){throw t=[i],i}};var ls=(n,e)=>{for(var t in e)Zh(n,t,{get:e[t],enumerable:!0})},MI=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of qI(e))!TI.call(n,o)&&o!==t&&Zh(n,o,{get:()=>e[o],enumerable:!(i=EI(e,o))||i.enumerable});return n};var LI=n=>MI(Zh({},"__esModule",{value:!0}),n);function $I(n){let e=n.isWellFormed;if(e)return e.call(n);for(let t=0;t<n.length;t++){let i=n.charCodeAt(t);if(i>=55296&&i<=56319){let o=n.charCodeAt(t+1);if(!(o>=56320&&o<=57343))return!1;t++}else if(i>=56320&&i<=57343)return!1}return!0}function tv(n,e){let t=typeof e=="bigint"?e:BigInt(e);if(t>=0n){if(t>jI)throw new Ie("unencodable","integer above 2^64-1");n.head(0,typeof e=="number"?e:t)}else{if(t<NI)throw new Ie("unencodable","integer below -2^63");let i=-1n-t;n.head(1,i<=BigInt(Number.MAX_SAFE_INTEGER)?Number(i):i)}}function zI(n,e,t){let i=[...e.entries()];iv(i.map(([o])=>o)),n.head(5,i.length);for(let[o,s]of i)typeof o=="number"?n.head(0,o):nv(n,o),vp(n,s,t+1)}function nv(n,e){if(!$I(e))throw new Ie("utf8","text is not well-formed UTF-16");let t=UI.encode(e);try{n.head(3,t.length),n.bytes(t)}finally{n.wipeTemporary(t)}}function iv(n){if(n.length===0)return;if(typeof n[0]=="string"){let t=new Set;for(let i of n){if(typeof i!="string")throw new Ie("mixed_map_keys");if(t.has(i))throw new Ie("duplicate_key",`duplicate data map key ${JSON.stringify(i)}`);t.add(i)}return}let e;for(let t of n){if(typeof t=="string")throw new Ie("mixed_map_keys");if(typeof t=="number"&&!(Number.isSafeInteger(t)&&t>=0))throw new Ie("mixed_map_keys","struct map keys must be unsigned integers");let i=BigInt(t);if(i<0n)throw new Ie("mixed_map_keys");if(e!==void 0&&e>=i)throw new Ie("unsorted_keys");e=i}}function vp(n,e,t){if(t>em)throw new Ie("too_deep");if(e===null)return n.byte(246);switch(typeof e){case"boolean":return n.byte(e?245:244);case"number":return Number.isSafeInteger(e)&&!Object.is(e,-0)?tv(n,e):n.float(e);case"bigint":return tv(n,e);case"string":return nv(n,e)}if(e instanceof yt)return n.float(e.value);if(e instanceof Uint8Array)return n.head(2,e.length),n.bytes(e);if(Array.isArray(e)){n.head(4,e.length);for(let i of e)vp(n,i,t+1);return}if(e instanceof Map)return zI(n,e,t);throw new Ie("unencodable",`cannot encode ${Object.prototype.toString.call(e)}`)}function ce(n){let e=new wp;return vp(e,n,0),e.result()}function En(n){let e=new wp(!0);try{return vp(e,n,0),e.result()}finally{e.buf.fill(0)}}function ue(n){let e=new Qh(n),t=e.item(0);if(e.remaining!==0)throw new Ie("trailing_bytes");return t}function BI(n){try{return ue(n),!0}catch{return!1}}function FI(n){let e=new Map;for(let[t,i]of n)i!==void 0&&e.set(t,i);return e}function ri(n){let e="";for(let t of n)e+=t.toString(16).padStart(2,"0");return e}function cs(n){if(n.length%2!==0||!/^[0-9a-fA-F]*$/.test(n))throw new Error("invalid hex");let e=new Uint8Array(n.length/2);for(let t=0;t<e.length;t++)e[t]=parseInt(n.slice(t*2,t*2+2),16);return e}function VI(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(n[t]!==e[t])return!1;return!0}var yt,em,Ie,jI,NI,UI,DI,wp,Qh,Je=I(()=>{"use strict";yt=class{constructor(e){this.value=e}value;valueOf(){return this.value}toJSON(){return this.value}},em=128,Ie=class extends Error{constructor(t,i){super(i??t);this.kind=t;this.name="CborError"}kind},jI=(1n<<64n)-1n,NI=-(1n<<63n),UI=new TextEncoder,DI=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}),wp=class{constructor(e=!1){this.sensitive=e}sensitive;buf=new Uint8Array(256);len=0;view=new DataView(this.buf.buffer);ensure(e){if(this.len+e<=this.buf.length)return;let t=this.buf.length*2;for(;t<this.len+e;)t*=2;let i=new Uint8Array(t);i.set(this.buf.subarray(0,this.len)),this.sensitive&&this.buf.fill(0),this.buf=i,this.view=new DataView(i.buffer)}byte(e){this.ensure(1),this.buf[this.len++]=e}bytes(e){this.ensure(e.length),this.buf.set(e,this.len),this.len+=e.length}head(e,t){let i=e<<5;if(typeof t=="number"&&t<24)this.byte(i|t);else if(typeof t=="number"&&t<=255)this.ensure(2),this.buf[this.len++]=i|24,this.buf[this.len++]=t;else if(typeof t=="number"&&t<=65535)this.ensure(3),this.buf[this.len++]=i|25,this.view.setUint16(this.len,t),this.len+=2;else if(typeof t=="number"&&t<=4294967295)this.ensure(5),this.buf[this.len++]=i|26,this.view.setUint32(this.len,t),this.len+=4;else{let o=BigInt(t);if(o<=0xffffffffn)return this.head(e,Number(o));this.ensure(9),this.buf[this.len++]=i|27,this.view.setBigUint64(this.len,o),this.len+=8}}float(e){if(!Number.isFinite(e))throw new Ie("float","float must be finite");this.ensure(9),this.buf[this.len++]=251,this.view.setFloat64(this.len,e),this.len+=8}wipeTemporary(e){this.sensitive&&e.fill(0)}result(){return this.buf.slice(0,this.len)}};Qh=class{constructor(e){this.buf=e;this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}buf;pos=0;view;get remaining(){return this.buf.length-this.pos}need(e){if(e>this.remaining)throw new Ie("unexpected_end")}byte(){return this.need(1),this.buf[this.pos++]}take(e){this.need(e);let t=this.buf.subarray(this.pos,this.pos+e);return this.pos+=e,t}arg(e){if(e<24)return e;switch(e){case 24:{let t=this.byte();if(t<24)throw new Ie("non_canonical_head");return t}case 25:{this.need(2);let t=this.view.getUint16(this.pos);if(this.pos+=2,t<=255)throw new Ie("non_canonical_head");return t}case 26:{this.need(4);let t=this.view.getUint32(this.pos);if(this.pos+=4,t<=65535)throw new Ie("non_canonical_head");return t}case 27:{this.need(8);let t=this.view.getBigUint64(this.pos);if(this.pos+=8,t<=0xffffffffn)throw new Ie("non_canonical_head");return t<=BigInt(Number.MAX_SAFE_INTEGER)?Number(t):t}case 31:throw new Ie("indefinite");default:throw new Ie("non_canonical_head","reserved additional info")}}len(e){let t=this.arg(e);if(typeof t=="bigint")throw new Ie("too_long");if(t>this.remaining)throw new Ie("unexpected_end");return t}item(e){if(e>em)throw new Ie("too_deep");let t=this.byte(),i=t>>5,o=t&31;switch(i){case 0:return this.arg(o);case 1:{let s=this.arg(o);if(typeof s=="number"){let r=-1-s;return Number.isSafeInteger(r)?r:-1n-BigInt(s)}return-1n-s}case 2:return this.take(this.len(o)).slice();case 3:{let s=this.take(this.len(o));try{return DI.decode(s)}catch{throw new Ie("utf8")}}case 4:{let s=this.len(o),r=new Array(s);for(let a=0;a<s;a++)r[a]=this.item(e+1);return r}case 5:{let s=this.len(o),r=[],a=[];for(let l=0;l<s;l++){let p=this.item(e+1);if(typeof p!="string"&&typeof p!="number"&&typeof p!="bigint")throw new Ie("mixed_map_keys");if((typeof p=="number"||typeof p=="bigint")&&p<0)throw new Ie("mixed_map_keys");r.push(p),a.push(this.item(e+1))}iv(r);let c=new Map;for(let l=0;l<s;l++){let p=r[l];if(typeof p=="bigint")throw new Ie("too_long","struct key beyond 2^53");c.set(p,a[l])}return c}case 6:throw new Ie("tag");default:switch(o){case 20:return!1;case 21:return!0;case 22:return null;case 27:{this.need(8);let s=this.view.getFloat64(this.pos);if(this.pos+=8,!Number.isFinite(s))throw new Ie("float");return Number.isInteger(s)?new yt(s):s}case 25:case 26:throw new Ie("float","float must be binary64");case 31:throw new Ie("indefinite");default:throw new Ie("simple")}}}}});function KI(n){return n===null?"null":n instanceof Uint8Array?"bytes":n instanceof yt?"float":Array.isArray(n)?"array":n instanceof Map?"map":typeof n=="number"?Number.isInteger(n)?"int":"float":typeof n}function ln(n,e,t){return new ne(n,`expected ${e}, found ${KI(t)}`)}function ov(n,e){return{name:e,enc:t=>{if(!(t instanceof Uint8Array)||t.length!==n)throw new ne(e,`must be ${n} bytes`);return t},dec:t=>{if(!(t instanceof Uint8Array))throw ln(e,"bytes",t);if(t.length!==n)throw new ne(e,`must be ${n} bytes`);return t}}}function U(n){if(!WI.test(n))throw new ne("uuid",`not a UUID: ${n}`);return cs(n.replace(/-/g,""))}function yl(n){let e=ri(n);return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20,32)}`}function Ap(n){let e=/^sha256:([0-9a-f]{64})$/.exec(n);if(!e)throw new ne("hash",`not a sha256: revision token: ${n}`);return cs(e[1])}function tm(n){return`sha256:${ri(n)}`}function _p(n,e=0){if(e>128)throw new ne("value","nesting too deep");if(n instanceof Uint8Array)throw new ne("value","byte strings are not values");if(typeof n=="bigint"){if(n>0x7fffffffffffffffn||n<-0x8000000000000000n)throw new ne("value","integer outside int64");return}if(Array.isArray(n))for(let t of n)_p(t,e+1);else if(n instanceof Map)for(let[t,i]of n){if(typeof t!="string")throw new ne("value","map keys must be text");_p(i,e+1)}}function F(n,e={}){let t=`[${n.name}]`;return{name:t,enc:i=>{if(e.nonEmpty&&i.length===0)throw new ne(t,"list must not be empty");return i.map(o=>n.enc(o))},dec:i=>{if(!Array.isArray(i))throw ln(t,"array",i);if(e.nonEmpty&&i.length===0)throw new ne(t,"list must not be empty");return i.map(o=>n.dec(o))}}}function gl(n){let e=`{tstr => ${n.name}}`;return{name:e,enc:t=>{let i=new Map;for(let[o,s]of t)i.set(o,n.enc(s));return i},dec:t=>{if(!(t instanceof Map))throw ln(e,"map",t);let i=new Map;for(let[o,s]of t){if(typeof o!="string")throw new ne(e,"data map keys must be text");i.set(o,n.dec(s))}return i}}}function Sp(n,e,t,i,o){return{name:n,enc:s=>t(s)?e.enc(s):o.enc(s),dec:s=>i(s)?e.dec(s):o.dec(s)}}function Pe(n,e,t=0){let i=new Map(e.map((o,s)=>[o,s+t]));return{name:n,values:e,enc:o=>{let s=i.get(o);if(s===void 0)throw new ne(n,`unknown value ${JSON.stringify(o)}`);return s},dec:o=>{if(typeof o=="bigint")throw new ne(n,`unknown variant ${o}`,!0);if(typeof o!="number"||!Number.isInteger(o)||o<0)throw ln(n,"uint enum",o);let s=o>=t?e[o-t]:void 0;if(s===void 0)throw new ne(n,`unknown variant ${o}`,!0);return s}}}function N(n,e){for(let t=1;t<e.length;t++)if(e[t][0]<=e[t-1][0])throw new Error(`${n}: field keys must ascend`);return{name:n,enc:t=>{let i=new Map,o=t;for(let[s,r,a,c="req"]of e){let l=o[r];if(l===void 0){if(c==="req"||c==="req1")throw new ne(n,`missing required field ${r}`);continue}if((c==="req1"||c==="opt1")&&Array.isArray(l)&&l.length===0)throw new ne(n,`${r} must not be empty`);i.set(s,a.enc(l))}return i},dec:t=>{if(!(t instanceof Map))throw ln(n,"struct map",t);let i=t;for(let s of i.keys())if(typeof s!="number")throw ln(n,"struct map",t);let o={};for(let[s,r,a,c="req"]of e){let l=i.get(s);if(l===void 0){if(c==="req"||c==="req1")throw new ne(n,`missing required key ${s} (${r})`);continue}let p=a.dec(l);if((c==="req1"||c==="opt1")&&Array.isArray(p)&&p.length===0)throw new ne(n,`${r} must not be empty`);o[r]=p}return o}}}function bl(n,e){let t=new Map,i=new Map;for(let[o,s,r]of e){let a=N(`${n}.${s}`,r);t.set(o,[s,a]),i.set(s,[o,a])}return{name:n,enc:o=>{let s=i.get(o.kind);if(!s)throw new ne(n,`unknown kind ${JSON.stringify(o.kind)}`);let r=s[1].enc(o);return new Map([[0,s[0]],...r])},dec:o=>{if(!(o instanceof Map))throw ln(n,"struct map",o);let s=o.get(0);if(s===void 0)throw new ne(n,"missing discriminator");if(typeof s=="bigint")throw new ne(n,`unknown variant ${s}`,!0);if(typeof s!="number")throw ln(n,"uint discriminator",s);let r=t.get(s);if(!r)throw new ne(n,`unknown variant ${s}`,!0);return{kind:r[0],...r[1].dec(o)}}}}function sv(n,e,t,i){return{name:n,enc:o=>e.enc(i(o)),dec:o=>t(e.dec(o))}}function nm(n,e){return{name:n,enc:t=>e.map((i,o)=>i.enc(t[o])),dec:t=>{if(!Array.isArray(t))throw ln(n,"array",t);if(t.length!==e.length)throw new ne(n,"wrong number of elements");return e.map((i,o)=>i.dec(t[o]))}}}var ne,B,qn,E,Oe,rv,uo,Ii,WI,T,H,kp,at,ge=I(()=>{"use strict";Je();ne=class extends Error{constructor(t,i,o=!1){super(`${t}: ${i}`);this.ty=t;this.unknown=o;this.name="SchemaError"}ty;unknown};B={name:"uint",enc:n=>{if(!Number.isSafeInteger(n)||n<0)throw new ne("uint",`not an unsigned integer: ${n}`);return n},dec:n=>{if(typeof n=="number"&&Number.isSafeInteger(n)&&n>=0)return n;throw typeof n=="bigint"&&n>=0n?new ne("uint","value beyond 2^53 is not supported here"):ln("uint","uint",n)}},qn={name:"int",enc:n=>{if(!Number.isSafeInteger(n))throw new ne("int",`not an integer: ${n}`);return n},dec:n=>{if(typeof n=="number"&&Number.isInteger(n))return n;throw ln("int","int",n)}},E={name:"tstr",enc:n=>{if(typeof n!="string")throw new ne("tstr","not a string");return n},dec:n=>{if(typeof n=="string")return n;throw ln("tstr","text",n)}},Oe={name:"bool",enc:n=>n,dec:n=>{if(typeof n=="boolean")return n;throw ln("bool","bool",n)}},rv={name:"bstr",enc:n=>n,dec:n=>{if(n instanceof Uint8Array)return n;throw ln("bstr","bytes",n)}};uo=ov(16,"b16"),Ii=ov(32,"b32"),WI=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;T={name:"uuid",enc:n=>U(n),dec:n=>yl(uo.dec(n))};H={name:"hash",enc:n=>Ap(n),dec:n=>tm(Ii.dec(n))},kp={name:"any",enc:n=>n,dec:n=>n},at={name:"value",enc:n=>(_p(n),n),dec:n=>(_p(n),n)}});function Sr(n){return Object.prototype.hasOwnProperty.call(Pp,n)}function HI(n){return Sr(n)?Pp[n]:"contact_support"}function A(n,e,t={}){let i=typeof t=="string"?{reason:t}:t;return new pe({code:n,recovery:Pp[n],message:e,...i})}function oe(n,e){return n instanceof pe&&(e===void 0||n.code===e)}var Pp,pe,ie=I(()=>{"use strict";Pp={invalid_request:"fix_request",invalid_record:"fix_request",not_found:"refresh",conflict:"resolve_conflict",unauthenticated:"reauthorize",forbidden:"reauthorize",collection_invalid:"repair_collection",unavailable:"retry",rate_limited:"retry",quota_exceeded:"free_space",too_large:"fix_request",upgrade_required:"upgrade",outcome_unknown:"resolve_outcome",cancelled:"none",internal:"contact_support"};pe=class extends Error{code;recovery;reason;details;retryAfterMs;issues;traceId;mutationId;mutationIds;constructor(e,t={}){super(e.message,t.cause===void 0?void 0:{cause:t.cause}),this.name="MdbaseError",this.code=Sr(e.code)?e.code:"internal",this.recovery=Sr(e.code)?e.recovery:"contact_support",e.reason!==void 0&&(this.reason=e.reason),e.details!==void 0&&(this.details=e.details),e.retryAfterMs!==void 0&&(this.retryAfterMs=e.retryAfterMs),e.issues!==void 0&&(this.issues=e.issues),e.traceId!==void 0&&(this.traceId=e.traceId);let i=t.mutationIds?Object.freeze([...t.mutationIds]):void 0,o=t.mutationId??i?.[0];o!==void 0&&(this.mutationId=o),i!==void 0&&(this.mutationIds=i)}toProblem(){let e={code:this.code,recovery:this.recovery,message:this.message};return this.reason!==void 0&&(e.reason=this.reason),this.details!==void 0&&(e.details=this.details),this.retryAfterMs!==void 0&&(e.retryAfterMs=this.retryAfterMs),this.issues!==void 0&&(e.issues=this.issues),this.traceId!==void 0&&(e.traceId=this.traceId),e}}});function cv(n,e,t){if(!Array.isArray(n)||n.length!==e)throw new ne(t,`must have exactly ${e} elements`);if(B.dec(n[0])!==1)throw new ne(t,"unknown version",!0);return n}var xp,av,lv,Pr,im=I(()=>{"use strict";ge();xp={name:"attachment-uint64",enc:n=>{if(typeof n=="number")return B.enc(n);if(typeof n!="bigint"||n<0n||n>0xffffffffffffffffn)throw new ne("attachment-uint64","outside uint64");return n},dec:n=>{if(typeof n=="number")return B.dec(n);if(typeof n!="bigint"||n<0n||n>0xffffffffffffffffn)throw new ne("attachment-uint64","outside uint64");return n<=BigInt(Number.MAX_SAFE_INTEGER)?Number(n):n}},av=8388608;lv={name:"attachment-ref-v1",enc:n=>[1,T.enc(n.collection),xp.enc(n.keyEpoch),Ii.enc(n.attachmentId),av,H.enc(n.manifestCipherHash)],dec:n=>{let e=cv(n,6,"attachment-ref-v1");if(B.dec(e[4])!==av)throw new ne("attachment-ref-v1","unknown chunk profile",!0);return{collection:T.dec(e[1]),keyEpoch:xp.dec(e[2]),attachmentId:Ii.dec(e[3]),manifestCipherHash:H.dec(e[5])}}},Pr={name:"attachment-content-v1",enc:n=>[1,lv.enc(n.reference),H.enc(n.wholePlainHash),xp.enc(n.totalPlainBytes)],dec:n=>{let e=cv(n,4,"attachment-content-v1");return{reference:lv.dec(e[1]),wholePlainHash:H.dec(e[2]),totalPlainBytes:xp.dec(e[3])}}}});function pv(n){return n.content.form==="blob"?n.content.blob.size:n.content.content.totalPlainBytes}function GI(n){return n.kind==="ordinary_attachment_continuation"||n.kind==="file_attach"||n.kind==="unindexed_markdown_put"||n.kind==="record_to_unindexed_markdown"||n.kind==="unindexed_markdown_to_record"||n.kind==="ordinary_file_to_record"}function fv(n,e){return{name:n,enc:t=>e().enc(t),dec:t=>e().dec(t)}}var Ip,Cp,dv,uv,Op,yM,hv=I(()=>{"use strict";ge();At();im();Ip={name:"file-content",enc:n=>n.form==="blob"?Xi.enc(n.blob):Pr.enc(n.content),dec:n=>Array.isArray(n)?{form:"attachment",content:Pr.dec(n)}:{form:"blob",blob:Xi.dec(n)}};Cp={name:"unindexed-markdown-payload-v1",enc:n=>{if(pv(n)<=1048576)throw new ne("unindexed-markdown-payload-v1","declared size must exceed record cap");return[2,1,1,Ip.enc(n.content)]},dec:n=>{let e="unindexed-markdown-payload-v1";if(!Array.isArray(n)||n.length!==4)throw new ne(e,"must have exactly four elements");if(B.dec(n[0])!==2||B.dec(n[1])!==1||B.dec(n[2])!==1)throw new ne(e,"unknown discriminator/profile/kind",!0);let t={content:Ip.dec(n[3])};if(pv(t)<=1048576)throw new ne(e,"declared size must exceed record cap");return t}},dv=Sp("text",E,n=>typeof n=="string",n=>typeof n=="string",B),uv=bl("extended-runtime-op",[[13,"file_attach",[[1,"id",T],[2,"path",E],[3,"content",Pr],[4,"ifRevision",H,"opt"],[5,"base",H,"opt"]]],[14,"unindexed_markdown_put",[[1,"id",T],[2,"path",E],[3,"payload",Cp],[4,"expected",Cp,"opt"]]],[15,"record_to_unindexed_markdown",[[1,"id",T],[2,"path",E],[3,"payload",Cp],[4,"priorRevision",H]]],[16,"unindexed_markdown_to_record",[[1,"id",T],[2,"path",E],[3,"doc",dv],[4,"prior",Cp]]],[18,"ordinary_attachment_continuation",[[1,"id",T],[2,"path",E],[3,"content",Pr],[4,"prior",Ip]]],[17,"ordinary_file_to_record",[[1,"id",T],[2,"path",E],[3,"doc",dv],[4,"prior",Ip]]]]);Op={name:"runtime-v1-op",enc:n=>GI(n)?uv.enc(n):ps.enc(n),dec:n=>{let e=n instanceof Map?B.dec(n.get(0)):void 0;return e!==void 0&&e>=13&&e<=18?uv.dec(n):ps.dec(n)}};yM=N("runtime-v1-mutation",[[0,"id",T],[1,"origin",T],[2,"baseSeq",B],[3,"clock",fv("op-clock",()=>fo)],[4,"seed",Ii],[5,"source",Pe("source",["api","external"])],[6,"ops",F(Op,{nonEmpty:!0}),"req1"],[7,"onBehalf",T,"opt"],[8,"conflictMode",fv("conflict-mode",()=>wl),"opt"],[9,"validatedAt",Pe("level",["off","warn","error"]),"opt"],[10,"room",N("room-checkpoint",[[0,"stream",uo],[1,"state",H]]),"opt"]])});var jm={};ls(jm,{DESCRIBE_TYPING_MAX_PATHS:()=>Pl,DESCRIBE_TYPING_MAX_TYPES:()=>Sl,HOLD_REASONS:()=>Sv,HOLD_RESOLUTIONS:()=>Pv,INCIDENT_KINDS:()=>vv,MEDIA_CLASSES:()=>Rv,PUSH_CODECS:()=>JI,RECOVERY:()=>yv,ROLES:()=>bv,TEMPORAL_HINTS:()=>Fp,TRANSFER_PHASES:()=>Lv,appliedPrefix:()=>pm,appliedPrefixParams:()=>cm,authorRef:()=>Tp,b16:()=>uo,b32:()=>Ii,backlinksResult:()=>Em,baseField:()=>Np,blobRef:()=>Xi,bodyEdit:()=>bm,change:()=>Ov,changesResult:()=>us,clientFrame:()=>Qi,confirmedHead:()=>Lp,conflict:()=>_m,conflictEntry:()=>Al,conflictMode:()=>wl,conflictValue:()=>Ep,describeResult:()=>Tm,describeTypingResult:()=>Lm,docVersion:()=>om,executeViewParams:()=>iO,fenceApply:()=>Cm,fenceReport:()=>Im,fenceResult:()=>Om,fileChunk:()=>Up,fileInclusion:()=>wm,fileView:()=>kl,fmMap:()=>_n,grantInfo:()=>lm,helloParams:()=>am,helloResult:()=>dm,hold:()=>vl,holdReason:()=>um,holdRef:()=>fm,holdResolution:()=>hm,incident:()=>_v,include:()=>ds,issue:()=>Zi,linkResolution:()=>Cv,linkView:()=>mm,listFilesResult:()=>km,listPendingResult:()=>Mm,listResourcesResult:()=>Rm,listViewsResult:()=>QI,materialization:()=>$p,mediaClass:()=>fs,mutation:()=>XI,newTypeFile:()=>qm,op:()=>ps,opClock:()=>fo,openUploadParams:()=>Sm,openUploadResult:()=>Pm,peer:()=>jv,preflight:()=>qv,presencePush:()=>zp,problem:()=>Mn,progress:()=>Av,publishState:()=>Ev,queryGroup:()=>gm,queryMetadata:()=>Iv,queryParams:()=>nO,queryResult:()=>_l,queryUpdate:()=>jp,receipt:()=>kt,recordState:()=>xv,recordView:()=>Tn,recovery:()=>gv,resourceView:()=>Bp,resyncing:()=>kv,role:()=>wv,severity:()=>Mp,submitParams:()=>vm,submitResult:()=>Am,syncStatus:()=>er,target:()=>sm,temporalHint:()=>Nv,textOrBlob:()=>Rp,transferProgress:()=>Dp,typingEntry:()=>Uv,uploadChunkParams:()=>xm,version:()=>qp,viewRef:()=>ym,viewSourceDocument:()=>eO});function Mv(n){throw new ne(n,"wrong type")}var qp,yv,gv,Mp,Zi,Mn,Qi,am,bv,wv,lm,vv,_v,Av,kv,Lp,cm,pm,er,dm,Xi,Rp,Sv,um,fm,vl,Pv,hm,xv,Cv,mm,Tp,_n,Tn,ds,ym,gm,Iv,_l,jp,Ov,us,Rv,fs,wl,Np,bm,om,wm,mv,ps,vm,YI,Ep,_m,Ev,qv,kt,Am,Al,Tv,rm,kl,km,Sm,Pm,xm,Up,Lv,Dp,$p,jv,zp,Cm,Im,Om,JI,fo,XI,ZI,Bp,Rm,Em,QI,eO,qm,Tm,tO,Mm,sm,nO,iO,Fp,Nv,Uv,Lm,Sl,Pl,At=I(()=>{"use strict";hv();im();ge();qp=sv("version",nm("version",[B,B]),([n,e])=>({major:n,minor:e}),n=>[n.major,n.minor]),yv=["fix_request","refresh","resolve_conflict","reauthorize","repair_collection","retry","free_space","upgrade","resolve_outcome","none","contact_support"],gv=Pe("recovery",yv),Mp=Pe("severity",["warning","error"]),Zi=N("issue",[[0,"code",E],[1,"severity",Mp],[2,"message",E],[3,"details",at,"opt"]]),Mn=N("problem",[[0,"code",E],[1,"recovery",gv],[2,"message",E],[3,"reason",E,"opt"],[4,"details",at,"opt"],[5,"retryAfterMs",B,"opt"],[6,"issues",F(Zi),"opt"],[7,"traceId",E,"opt"]]),Qi=bl("client-frame",[[0,"request",[[1,"id",B],[2,"method",E],[3,"params",kp]]],[1,"response",[[1,"id",B],[2,"result",kp,"opt"],[3,"problem",Mn,"opt"]]],[2,"push",[[1,"type",E],[2,"payload",kp]]]]),am=N("hello-params",[[0,"versions",F(qp,{nonEmpty:!0}),"req1"],[1,"clientName",E],[2,"clientVersion",E],[3,"features",F(E),"opt"],[4,"timezone",E,"opt"]]),bv=["viewer","editor","owner"],wv=Pe("role",bv),lm=N("grant-info",[[0,"grant",T,"opt"],[1,"capabilities",F(E,{nonEmpty:!0}),"req1"],[2,"role",wv],[3,"account",T,"opt"],[4,"fileFolders",F(E),"opt"]]),vv=["upgrade_required","waiting_for_key","integrity","access_revoked","quota_exceeded","read_only","verification_mismatch","voided_items","key_inconsistent","foreign_sync_tool","gone","lost_entries","log_regressed"],_v=N("incident",[[0,"kind",Pe("incident-kind",vv)],[1,"details",at,"opt"]]),Av=N("progress",[[0,"done",B],[1,"total",B]]),kv=N("resyncing",[[0,"phase",Pe("resync-phase",["probing","repairing","rolling_back","awaiting_control"])],[1,"positions",B]]),Lp=N("confirmed-head",[[0,"seq",B],[1,"chain",H],[2,"policyGeneration",H],[3,"catalogGeneration",H]]),cm=N("applied-prefix-params",[[0,"seq",B]]),pm=N("applied-prefix",[[0,"appliedThrough",B],[1,"seq",B],[2,"chain",H,"opt"]]),er=N("sync-status",[[0,"mode",Pe("sync-mode",["local_only","synced"])],[1,"confirmedThrough",B],[2,"headKnown",B],[3,"pending",B],[4,"oldestPending",qn,"opt"],[5,"holds",B],[6,"unresolved",B],[7,"connection",Pe("connection",["online","connecting","offline"])],[8,"installing",Av,"opt"],[9,"incidents",F(_v)],[10,"resyncing",kv,"opt"],[11,"confirmedHead",Lp,"opt"],[12,"grant",lm,"opt"]]),dm=N("hello-result",[[0,"version",qp],[1,"runtimeVersion",E],[2,"sem",qp],[3,"collection",T],[4,"grant",lm],[5,"status",er],[6,"features",F(E)],[7,"headWitness",rv,"opt"]]),Xi=N("blob-ref",[[0,"plainHash",H],[1,"size",B],[2,"blobId",Ii],[3,"idEpoch",B],[4,"partSize",B]]),Rp={name:"text-or-blob",enc:n=>{if(typeof n=="string")return E.enc(n);if("form"in n){if(n.form!=="attachment")throw new ne("text-or-blob","unknown arm",!0);return[1,Pr.enc(n.content)]}return Xi.enc(n)},dec:n=>{if(typeof n=="string")return E.dec(n);if(Array.isArray(n)){if(n.length!==2)throw new ne("text-or-blob","attachment arm must have exactly two elements");if(B.dec(n[0])!==1)throw new ne("text-or-blob","unknown attachment arm",!0);return{form:"attachment",content:Pr.dec(n[1])}}return Xi.dec(n)}},Sv=["conflict","unknown_provenance","deleted_elsewhere","read_only","editor_busy","suspect_write"],um=Pe("hold-reason",Sv),fm=N("hold-ref",[[0,"id",T],[1,"reason",um]]),vl=N("hold",[[0,"id",T],[1,"path",E],[2,"reason",um],[3,"since",qn],[4,"base",Rp,"opt"],[5,"mine",Rp],[6,"theirs",Rp,"opt"],[7,"saves",B]]),Pv=["keep_mine","take_theirs","use","delete","keep_both"],hm=Pe("hold-resolution",Pv),xv=N("record-state",[[0,"state",Pe("confirmation",["confirmed","pending"])],[1,"confirmedSeq",B],[2,"hold",fm,"opt"],[3,"unresolved",B,"opt"]]),Cv=N("link-resolution",[[0,"kind",Pe("link-kind",["record","file","ambiguous","not_found","invalid"])],[1,"target",T,"opt"],[2,"path",E,"opt"]]),mm=N("link-view",[[0,"raw",E],[1,"embed",Oe],[2,"resolution",Cv],[3,"field",E,"opt"]]),Tp=N("author-ref",[[0,"account",T],[1,"device",T],[2,"grant",T,"opt"],[3,"grantAccount",T,"opt"]]),_n=gl(at),Tn=N("record-view",[[0,"id",T],[1,"path",E],[2,"revision",H],[3,"frontmatter",_n],[4,"effective",_n,"opt"],[5,"body",E,"opt"],[6,"document",E,"opt"],[7,"types",F(E)],[8,"state",xv],[9,"diagnostics",F(Zi),"opt"],[10,"values",_n,"opt"],[11,"mtime",qn,"opt"],[12,"links",F(mm),"opt"],[13,"createdBy",Tp,"opt"],[14,"modifiedBy",Tp,"opt"]]),ds=N("include",[[0,"effective",Oe,"opt"],[1,"body",Oe,"opt"],[2,"document",Oe,"opt"],[3,"diagnostics",Oe,"opt"],[4,"links",Oe,"opt"]]),ym=N("view-ref",[[0,"path",E],[1,"view",E]]),gm=N("query-group",[[0,"values",_n],[1,"count",B],[2,"summaries",_n,"opt"]]),Iv=N("query-metadata",[[0,"columns",F(E),"opt"],[1,"totalCount",B,"opt"],[2,"diagnostics",F(Zi),"opt"],[3,"view",ym,"opt"],[4,"groups",F(gm),"opt"],[5,"hasMore",Oe,"opt"]]),_l=N("query-result",[[0,"records",F(Tn)],[1,"cursor",E,"opt"],[2,"complete",Oe],[3,"asOf",B],[4,"columns",F(E),"opt"],[5,"totalCount",B,"opt"],[6,"diagnostics",F(Zi),"opt"],[7,"view",ym,"opt"],[8,"groups",F(gm),"opt"],[9,"hasMore",Oe,"opt"]]),jp=N("query-update",[[0,"sub",B],[1,"kind",Pe("update-kind",["snapshot","diff","reset"])],[2,"added",F(Tn),"opt"],[3,"changed",F(Tn),"opt"],[4,"removed",F(T),"opt"],[5,"order",F(T),"opt"],[6,"complete",Oe],[7,"asOf",B],[8,"metadata",Iv,"opt"]]),Ov=N("change",[[0,"id",T],[1,"path",E],[2,"kind",Pe("change-kind",["put","remove"])],[3,"version",B],[4,"author",Tp,"opt"],[5,"entity",Pe("change-entity",["record","file"]),"opt"],[6,"types",F(E),"opt"]]),us=N("changes-result",[[0,"changes",F(Ov)],[1,"cursor",E],[2,"reset",Oe]]),Rv=["image","audio","video","pdf","other"],fs=Pe("media-class",Rv),wl=Pe("conflict-mode",["record","reject"]),Np={name:"base-field",enc:n=>n.observed===void 0?[n.key]:[n.key,at.enc(n.observed)],dec:n=>{if(!Array.isArray(n)||n.length<1||n.length>2)throw new ne("base-field","must have 1 or 2 elements");return n.length===1?{key:E.dec(n[0])}:{key:E.dec(n[0]),observed:at.dec(n[1])}}},bm=nm("body-edit",[B,B,E]),om=N("doc-version",[[0,"path",E],[1,"doc",E]]),wm=N("file-inclusion",[[0,"include",F(fs)],[1,"exclude",F(E),"opt"],[2,"maxSize",B,"opt"]]),mv=gl(F(at)),ps=bl("op",[[1,"create",[[1,"id",T],[2,"path",E,"opt"],[3,"type",E,"opt"],[4,"frontmatter",_n,"opt"],[5,"body",E,"opt"],[6,"document",E,"opt"]]],[2,"update",[[1,"id",T],[2,"patch",_n,"opt"],[3,"unset",F(E),"opt1"],[4,"add",mv,"opt"],[5,"remove",mv,"opt"],[6,"body",E,"opt"],[7,"bodyEdits",F(bm),"opt1"],[8,"bodyBase",H,"opt"],[9,"bodyBaseText",E,"opt"],[10,"base",F(Np),"opt1"],[11,"ifRevision",H,"opt"],[12,"updateRefs",Oe,"opt"]]],[3,"document",[[1,"id",T],[2,"base",om,"opt"],[3,"new",om,"opt"],[4,"ifRevision",H,"opt"]]],[4,"delete",[[1,"id",T],[2,"baseRevision",H,"opt"],[3,"ifRevision",H,"opt"]]],[5,"rename",[[1,"id",T],[2,"from",E],[3,"to",E],[4,"updateRefs",Oe],[5,"ifRevision",H,"opt"]]],[6,"resource_put",[[1,"path",E],[2,"doc",E],[3,"baseRevision",H,"opt"],[4,"mustNotExist",Oe,"opt"]]],[7,"resource_delete",[[1,"path",E],[2,"baseRevision",H,"opt"]]],[8,"file_put",[[1,"id",T],[2,"path",E],[3,"blob",Xi],[4,"ifRevision",H,"opt"],[5,"base",H,"opt"]]],[9,"file_delete",[[1,"id",T],[2,"ifRevision",H,"opt"],[3,"base",H,"opt"]]],[10,"file_move",[[1,"id",T],[2,"from",E],[3,"to",E],[4,"updateRefs",Oe],[5,"ifRevision",H,"opt"]]],[11,"conflict_dismiss",[[1,"mutation",T],[2,"record",T]]],[12,"sync_settings",[[1,"inclusion",wm]]]]),vm=N("submit-params",[[0,"ops",F(ps,{nonEmpty:!0}),"req1"],[1,"mutationId",T,"opt"],[2,"conflictMode",wl,"opt"],[3,"timezone",E,"opt"],[4,"allowPartial",Oe,"opt"],[5,"mutationIds",F(T),"opt1"],[6,"dryRun",Oe,"opt"],[7,"include",ds,"opt"],[8,"wait",Pe("wait-for",["pending","confirmed","published"]),"opt"]]),YI=["missing","value","text","blob","deleted"],Ep={name:"conflict-value",enc:n=>{switch(n.form){case"missing":return[0];case"value":return[1,at.enc(n.value)];case"text":return[2,n.text];case"blob":return[3,Xi.enc(n.blob)];case"deleted":return[4]}},dec:n=>{if(!Array.isArray(n)||n.length===0)throw new ne("conflict-value","malformed conflict value");let e=n[0];if(typeof e!="number")throw new ne("conflict-value","malformed conflict value");if(e>4)throw new ne("conflict-value",`unknown variant ${e}`,!0);let t=YI[e];if(t==="missing"||t==="deleted"){if(n.length!==1)throw new ne("conflict-value","malformed conflict value");return{form:t}}if(n.length!==2)throw new ne("conflict-value","malformed conflict value");return t==="value"?{form:t,value:at.dec(n[1])}:t==="text"?{form:t,text:E.dec(n[1])}:{form:t,blob:Xi.dec(n[1])}}},_m=N("conflict",[[0,"kind",Pe("conflict-kind",["field","frontmatter","body","path","delete","file"],1)],[1,"id",T],[2,"field",E,"opt"],[3,"base",Ep,"opt"],[4,"kept",Ep],[5,"lost",Ep]]),Ev=Pe("publish-state",["publishing","published","not_published"]),qv=N("preflight",[[0,"rewrites",F(N("link-rewrite",[[0,"record",T],[1,"path",E],[2,"from",E],[3,"to",E],[4,"field",E,"opt"]]))],[1,"broken",F(N("broken-link",[[0,"record",T],[1,"path",E],[2,"raw",E],[3,"target",T],[4,"field",E,"opt"]]))]]),kt=N("receipt",[[0,"mutation",T],[1,"state",Pe("receipt-state",["pending","confirmed","rejected","unknown"])],[2,"seq",B,"opt"],[3,"status",Pe("status",["applied","merged","conflicted"]),"opt"],[4,"conflicts",F(_m),"opt1"],[5,"records",F(Tn),"opt"],[6,"problem",Mn,"opt"],[7,"published",Ev,"opt"],[8,"preflight",qv,"opt"],[9,"relocatedFrom",B,"opt"]]),Am=F(kt,{nonEmpty:!0}),Al=N("conflict-entry",[[0,"mutation",T],[1,"seq",B],[2,"conflict",_m]]),Tv=Pe("file-content-profile",["ordinary_blob","ordinary_attachment_v1","unindexed_markdown_blob","unindexed_markdown_attachment_v1"]),rm=N("file-view",[[0,"id",T],[1,"path",E],[2,"size",B],[3,"digest",H],[4,"media",fs],[5,"state",Pe("file-state",["materialized","remote","fetching","pending_upload"])],[6,"confirmedSeq",B],[7,"hold",fm,"opt"],[8,"mtime",qn,"opt"],[9,"mediaType",E,"opt"],[10,"contentProfile",Tv,"opt"]]),kl={...rm,dec(n){let e=n instanceof Map?n:void 0;if(e?.has(10))try{Tv.dec(e.get(10))}catch(t){if(!(t instanceof ne)||!t.unknown)throw t;let i=new Map(e);return i.delete(10),rm.dec(i)}return rm.dec(n)}},km=N("list-files-result",[[0,"files",F(kl)],[1,"cursor",E,"opt"],[2,"complete",Oe]]),Sm=N("open-upload-params",[[0,"transfer",T],[1,"path",E],[2,"size",B],[3,"digest",H,"opt"],[4,"fileId",T,"opt"],[5,"ifRevision",H,"opt"],[6,"mutationId",T,"opt"]]),Pm=N("open-upload-result",[[0,"transfer",T],[1,"chunkSize",B],[2,"received",F(B)],[3,"expiresAt",qn],[4,"fileId",T,"opt"]]),xm=N("upload-chunk-params",[[0,"transfer",T],[1,"index",B],[2,"bytes",{name:"bstr",enc:n=>n,dec:n=>n instanceof Uint8Array?n:Mv("bstr")}]]);Up=N("file-chunk",[[0,"stream",B],[1,"offset",B],[2,"bytes",{name:"bstr",enc:n=>n,dec:n=>n instanceof Uint8Array?n:Mv("bstr")}],[3,"last",Oe]]),Lv=["receiving","sealing","uploading","appending","confirmed","fetching","streaming","done"],Dp=N("transfer-progress",[[0,"id",Sp("transfer-id",T,n=>typeof n=="string",n=>n instanceof Uint8Array,B)],[1,"phase",Pe("phase",Lv)],[2,"done",B],[3,"total",B]]),$p=N("materialization",[[0,"mode",Pe("materialize-mode",["all","on_demand"])],[1,"pinned",F(E),"opt"],[2,"media",F(fs),"opt"],[3,"maxSize",B,"opt"]]),jv=N("peer",[[0,"session",uo],[1,"account",T,"opt"],[2,"app",E,"opt"],[3,"state",at],[4,"lastSeen",qn]]),zp=N("presence",[[0,"record",T],[1,"peers",F(jv)]]),Cm=N("fence-apply",[[0,"path",E],[1,"base",H],[2,"edits",F(bm,{nonEmpty:!0}),"req1"],[3,"expected",H]]),Im=N("fence-report",[[0,"open",F(N("fence-open",[[0,"path",E],[1,"dirty",Oe],[2,"buffer",H]]))]]),Om=N("fence-result",[[0,"outcome",Pe("fence-outcome",["applied","not_open","buffer_changed"])],[1,"buffer",E,"opt"]]),JI={query_update:jp,receipt:kt,status:er,holds:F(vl),conflicts:F(Al),presence:zp,file_chunk:Up,transfer_progress:Dp,changes:us},fo=N("op-clock",[[0,"instant",qn],[1,"tz",E],[2,"localDate",E]]),XI=N("mutation",[[0,"id",T],[1,"origin",T],[2,"baseSeq",B],[3,"clock",fo],[4,"seed",Ii],[5,"source",Pe("source",["api","external"])],[6,"ops",F(ps,{nonEmpty:!0}),"req1"],[7,"onBehalf",T,"opt"],[8,"conflictMode",wl,"opt"],[9,"validatedAt",Pe("level",["off","warn","error"]),"opt"],[10,"room",N("room-checkpoint",[[0,"stream",uo],[1,"state",H]]),"opt"]]),ZI=Pe("confirmation",["confirmed","pending"]),Bp=N("resource-view",[[0,"path",E],[1,"revision",H],[2,"size",B],[3,"state",ZI],[4,"text",E,"opt"]]),Rm=N("list-resources-result",[[0,"resources",F(Bp)],[1,"complete",Oe],[2,"cursor",E,"opt"]]),Em=N("backlinks-result",[[0,"backlinks",F(N("backlink",[[0,"record",Tn],[1,"links",F(mm,{nonEmpty:!0}),"req1"]]))],[1,"cursor",E,"opt"],[2,"complete",Oe],[3,"asOf",B]]),QI=N("list-views-result",[[0,"sources",F(N("view-source",[[0,"record",T],[1,"id",E],[2,"name",E],[3,"source",N("view-source-ref",[[0,"path",E],[1,"format",E],[2,"revision",H],[3,"writable",Oe]])],[4,"views",F(N("view-descriptor",[[0,"id",E],[1,"name",E],[2,"properties",F(N("view-property",[[0,"key",E],[1,"label",E,"opt"],[2,"description",E,"opt"],[3,"format",E,"opt"],[4,"hidden",Oe,"opt"]]))],[3,"presentation",at,"opt"]]))]]))],[1,"diagnostics",F(Zi)],[2,"complete",Oe]]),eO=N("view-source-document",[[0,"path",E],[1,"format",E],[2,"revision",H],[3,"document",E],[4,"record",T]]),qm=N("new-type-file",[[0,"name",E],[1,"path",E]]),Tm=N("describe-result",[[0,"specVersion",E],[1,"types",F(N("type-summary",[[0,"name",E],[1,"path",E],[2,"implements",F(N("implementation",[[0,"contract",E],[1,"version",E],[2,"fields",gl(E)],[3,"binding",at,"opt"],[4,"digest",H,"opt"]]))],[3,"version",qn,"opt"],[4,"revision",H,"opt"],[5,"definition",at,"opt"],[6,"schema",at,"opt"]]))],[2,"settings",at],[3,"inclusion",wm],[4,"issues",F(Zi)],[5,"contracts",F(N("contract-summary",[[0,"id",E],[1,"version",E],[2,"path",E],[3,"digest",H],[4,"contractType",E],[5,"implementedBy",F(E)],[6,"schemas",gl(at),"opt"]]))]]),tO={name:"pending-runtime-op",enc:n=>Op.enc(n),dec:n=>Op.dec(n)},Mm=N("list-pending-result",[[0,"pending",F(N("pending-mutation",[[0,"receipt",kt],[1,"captured",qn],[2,"ops",F(tO,{nonEmpty:!0}),"req1"]]))],[1,"next",T,"opt"]]),sm={name:"target",enc:n=>typeof n=="string"?T.enc(n):n.path,dec:n=>typeof n=="string"?{path:n}:T.dec(n)},nO=N("query-params",[[0,"query",at],[1,"include",ds,"opt"],[2,"contract",E,"opt"]]),iO=N("execute-view-params",[[0,"source",sm],[1,"view",E],[2,"context",sm,"opt"],[3,"limit",B,"opt"],[4,"offset",B,"opt"],[5,"timezone",E,"opt"],[6,"include",ds,"opt"]]),Fp=["none","date","date_time"],Nv=Pe("temporal-hint",Fp),Uv=N("typing-entry",[[0,"path",E],[1,"hint",Nv]]),Lm=N("describe-typing-result",[[0,"catalogGeneration",B],[1,"fields",F(Uv)]]),Sl=64,Pl=256});function Dv(n,e,t,i){let o=rO(t),s=oO(t);n.setUint32(e,i?s:o,i),n.setUint32(e+4,i?o:s,i)}var rO,oO,$v=I(()=>{rO=n=>n/2**32|0,oO=n=>n>>>0});function Vp(n){return n instanceof Uint8Array||ArrayBuffer.isView(n)&&n.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in n&&n.BYTES_PER_ELEMENT===1}function ho(n,e=""){if(typeof n!="number")throw new TypeError(Nm(e)+"expected number, got "+typeof n);if(!Number.isSafeInteger(n)||n<0)throw new RangeError(Nm(e)+"expected integer >= 0, got "+n);return n}function tr(n,e,t=""){if(Vp(n)&&(e===void 0||n.length===e))return n;e!==void 0&&ho(e,"length");let i=Vp(n),o=e!==void 0?` of length ${e}`:"",s=i?`length=${n.length}`:`type=${typeof n}`,r=Nm(t)+"expected Uint8Array"+o+", got "+s;throw i?new RangeError(r):new TypeError(r)}function Fv(n){if(typeof n!="function"||typeof n.create!="function")throw new TypeError("expected hash wrapped by utils.createHasher");if(ho(n.outputLen),ho(n.blockLen),n.outputLen<1||n.blockLen<1)throw new Error("hash blockLen / outputLen must be >= 1")}function hs(n,e=!0){if(n.destroyed)throw new Error("hash was destroyed");if(e&&n.finished)throw new Error("digest() was already called")}function Kp(n,e){tr(n,void 0,"output");let t=e.outputLen;if(!(n.length>=t))throw new RangeError('"output" expected length >= '+t)}function ms(...n){for(let e=0;e<n.length;e++)n[e].fill(0)}function Wp(n){return new DataView(n.buffer,n.byteOffset,n.byteLength)}function oi(n,e){return n<<32-e|n>>>e}function ys(n){if(tr(n),Vv)return n.toHex();let e="";for(let t=0;t<n.length;t++)e+=aO[n[t]];return e}function Bv(n){return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void 0}function Um(n){if(typeof n!="string")throw new TypeError("hex string expected, got "+typeof n);if(Vv)try{return Uint8Array.fromHex(n)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let e=n.length,t=e/2;if(e%2)throw new RangeError("hex string expected, got unpadded hex of length "+e);let i=new Uint8Array(t);for(let o=0,s=0;o<t;o++,s+=2){let r=Bv(n.charCodeAt(s)),a=Bv(n.charCodeAt(s+1));if(r===void 0||a===void 0){let c=n[s]+n[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}i[o]=r*16+a}return i}function Kv(n){if(typeof n!="string")throw new TypeError("string expected");let e=new TextEncoder().encode(n);try{return new Uint8Array(e)}finally{ms(e)}}function lO(n,e,t="opts"){return zv(n,"defaults"),e!==void 0&&zv(e,t),Object.assign(Object.create(null),n,e)}function Wv(n,e={}){if(typeof n!="function")throw new TypeError('"hashCons" expected function, got type='+typeof n);e=lO({},e,"info");let t=(o,s)=>n(s).update(o).digest(),i=n(void 0);return t.outputLen=i.outputLen,t.blockLen=i.blockLen,t.canXOF=i.canXOF,t.create=o=>n(o),Object.assign(t,e),Object.freeze(t)}function Hv(n=32){ho(n,"bytesLength");let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(n>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${n}`);return e.getRandomValues(new Uint8Array(n))}var Nm,sO,zv,Vv,aO,Gv,gs=I(()=>{Nm=n=>n?`"${n}" `:"";sO=(n,e)=>{if(n===null||typeof n!="object"||Array.isArray(n))throw new TypeError((e==="object"?"":`"${e}" `)+"expected object, got type="+typeof n)},zv=(n,e)=>{sO(n,e);let t=Object.getPrototypeOf(n);if(t!==Object.prototype&&t!==null)throw new TypeError(`"${e}" expected plain object`);if(Object.hasOwn(n,"__proto__"))throw new TypeError(`"${e}.__proto__" is not allowed`)};Vv=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",aO=Array.from({length:256},(n,e)=>e.toString(16).padStart(2,"0"));Gv=n=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,n])})});function Yv(n,e,t){return n&e^~n&t}function Jv(n,e,t){return n&e^n&t^e&t}var Hp,Xv,Zv=I(()=>{$v();gs();Hp=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,i,o){this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=o,this.buffer=new Uint8Array(e),this.view=Wp(this.buffer)}update(e){hs(this),tr(e);let{view:t,buffer:i,blockLen:o}=this,s=e.length,r=!1;for(let a=0;a<s;){let c=Math.min(o-this.pos,s-a);if(c===o){let l=Wp(e);for(;o<=s-a;a+=o)this.process(l,a);r=!0;continue}i.set(a===0&&c===s?e:e.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===o&&(this.process(t,0),this.pos=0,r=!0)}return this.length+=e.length,r&&this.roundClean(),this}digestInto(e){hs(this),Kp(e,this),this.finished=!0;let{buffer:t,view:i,blockLen:o,isLE:s}=this,{pos:r}=this;t[r++]=128,t.fill(0,r),this.padOffset>o-r&&(this.process(i,0),t.fill(0)),Dv(i,o-8,this.length*8,s),this.process(i,0),this.roundClean();let a=e===t?i:Wp(e),c=this.outputLen,l=c/4,p=this.get();if(c%4||l>p.length)throw new Error("invalid outputLen");for(let d=0;d<l;d++)a.setUint32(4*d,p[d],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneIntoMeta(e){let{buffer:t,length:i,finished:o,destroyed:s,pos:r}=this;return e.destroyed=s,e.finished=o,e.length=i,e.pos=r,r&&e.buffer.set(t),e}clone(){return this._cloneInto()}},Xv=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225])});var cO,xr,Dm,$m,it,Cr=I(()=>{Zv();gs();cO=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),xr=new Uint32Array(64),Dm=class extends Hp{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(e,t){super(64,e,8,!1),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}get(){let{A:e,B:t,C:i,D:o,E:s,F:r,G:a,H:c}=this;return[e,t,i,o,s,r,a,c]}set(e,t,i,o,s,r,a,c){this.A=e|0,this.B=t|0,this.C=i|0,this.D=o|0,this.E=s|0,this.F=r|0,this.G=a|0,this.H=c|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let d=0;d<16;d++,t+=4)xr[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let u=xr[d-15],f=xr[d-2],h=oi(u,7)^oi(u,18)^u>>>3,m=oi(f,17)^oi(f,19)^f>>>10;xr[d]=m+xr[d-7]+h+xr[d-16]|0}let{A:i,B:o,C:s,D:r,E:a,F:c,G:l,H:p}=this;for(let d=0;d<64;d++){let u=oi(a,6)^oi(a,11)^oi(a,25),f=p+u+Yv(a,c,l)+cO[d]+xr[d]|0,m=(oi(i,2)^oi(i,13)^oi(i,22))+Jv(i,o,s)|0;p=l,l=c,c=a,a=r+f|0,r=s,s=o,o=i,i=f+m|0}i=i+this.A|0,o=o+this.B|0,s=s+this.C|0,r=r+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,p=p+this.H|0,this.set(i,o,s,r,a,c,l,p)}roundClean(){ms(xr)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),ms(this.buffer)}},$m=class extends Dm{constructor(){super(32,Xv)}},it=Wv(()=>new $m,Gv(1))});function ut(n){if(n==null)return null;if(typeof n!="object"||n instanceof yt)return n;if(Array.isArray(n))return n.map(ut);if(n instanceof Map){let t=new Map;for(let[i,o]of n)t.set(i,ut(o));return t}if(n instanceof Date)return n.toISOString();let e=new Map;for(let[t,i]of Object.entries(n))i!==void 0&&e.set(t,ut(i));return e}function xl(n){return ut(n)}function bs(n){if(n===null||typeof n=="boolean"||typeof n=="number"||typeof n=="string")return n;if(typeof n=="bigint")return n.toString();if(n instanceof yt)return n.value;if(n instanceof Uint8Array)return ri(n);if(Array.isArray(n))return n.map(bs);let e={};for(let[t,i]of n)e[String(t)]=bs(i);return e}function Ir(n,e){if(n===e)return!0;if(n instanceof yt&&e instanceof yt)return Object.is(n.value,e.value)||n.value===e.value;if(typeof n=="bigint"||typeof e=="bigint")return BigInt(n)===BigInt(e);if(Array.isArray(n)&&Array.isArray(e))return n.length===e.length&&n.every((t,i)=>Ir(t,e[i]));if(n instanceof Map&&e instanceof Map){if(n.size!==e.size)return!1;let t=[...n],i=[...e];return t.every(([o,s],r)=>i[r][0]===o&&Ir(s,i[r][1]))}return!1}function si(n){let e=typeof n=="string"?new TextEncoder().encode(n):n;return`sha256:${ri(it(e))}`}function pO(n){let e=new Uint8Array(n);return globalThis.crypto.getRandomValues(e),e}function Ln(n=Date.now()){let e=pO(16);n<=Gp?(n=Gp,mo=mo+1&4095,mo===0&&(n=++Gp)):(mo=(e[6]&15)<<8|e[7],mo&=2047),Gp=n;let t=BigInt(n);for(let i=0;i<6;i++)e[i]=Number(t>>BigInt(8*(5-i))&0xffn);return e[6]=112|mo>>8&15,e[7]=mo&255,e[8]=128|e[8]&63,yl(e)}function Yp(n,e){if(n===e)return[];let t=Array.from(n),i=Array.from(e),o=0;for(;o<t.length&&o<i.length&&t[o]===i[o];)o++;let s=0;for(;s<t.length-o&&s<i.length-o&&t[t.length-1-s]===i[i.length-1-s];)s++;return[[o,t.length-s,i.slice(o,i.length-s).join("")]]}var Gp,mo,Oi=I(()=>{"use strict";Cr();Je();ge();Gp=0,mo=0});function je(n,e=fO){if(typeof n!="string"||Ri.encode(n).length>e)throw fe("bounded text required");return n}function Yt(n,e){let t=B.dec(n);if(t>e)throw fe("integer exceeds bound");return t}function $t(n,e){if(!Array.isArray(n)||n.length>e)throw fe("bounded array required");return n}function Cl(n,e){let t=$t(n,e);if(t.length!==e)throw fe("wrong tuple length");return t}function ai(n,e){if(!(n instanceof Map))throw fe("exact struct required");let t=n;if(t.size!==e.length||e.some(i=>!t.has(i)))throw fe("exact struct required");return n}function Qv(n){let e=n instanceof yt?n.value:n;if(typeof e!="number"||!Number.isFinite(e)||!(n instanceof yt)&&Number.isInteger(e))throw fe("finite binary64 required");return e}function e_(n){return n.kind==="list"?n.values.every(e_):n.kind!=="map"&&n.kind!=="duration"&&n.kind!=="error"&&n.kind!=="unavailable"}function yo(n,e=1){if(!Number.isInteger(e)||e<1||e>32)throw fe("cell depth exceeds bound");let t=$t(n,5),i=B.dec(t[0]),o=s=>{if(t.length!==s)throw fe("wrong tagged cell length")};switch(i){case 0:return o(1),{kind:"null"};case 1:return o(2),{kind:"boolean",value:Oe.dec(t[1])};case 2:return o(2),{kind:"number",value:Qv(t[1])};case 3:return o(2),{kind:"text",value:je(t[1])};case 4:{o(5);let s=qn.dec(t[1]);if(!Number.isSafeInteger(s))throw fe("date millis exceeds JS-safe range");return{kind:"date",millis:s,display:je(t[2]),authoritativeZone:je(t[3]),dateOnly:Oe.dec(t[4])}}case 5:return o(3),{kind:"duration",components:Cl(t[1],8).map(Qv),display:je(t[2])};case 6:return o(2),{kind:"list",values:$t(t[1],ws).map(s=>yo(s,e+1))};case 7:{if(o(2),!(t[1]instanceof Map)||t[1].size>ws)throw fe("bounded cell data map required");let s=new Map,r=null;for(let[a,c]of t[1]){let l=je(a),p=Ri.encode(l);if(r&&hO(r,p)>=0)throw fe("cell data map keys must ascend");r=p,s.set(l,yo(c,e+1))}return{kind:"map",values:s}}case 8:return o(2),{kind:"error",message:je(t[1])};case 9:return o(3),{kind:"unavailable",code:je(t[1]),detail:je(t[2])};default:throw fe("unknown tagged cell",!0)}}function hO(n,e){for(let t=0;t<Math.min(n.length,e.length);t++)if(n[t]!==e[t])return n[t]-e[t];return n.length-e.length}function mO(n){let e=new Map,t=0,i=0,o=r=>{if(++t>4096||(i+=r)>1024*1024)throw fe("summary metadata exceeds bound")},s=(r,a)=>{if(a>32)throw fe("summary value depth exceeds bound");o(128);let c=$t(r,5),l=B.dec(c[0]);if(l===3||l===8)o(Ri.encode(je(c[1])).length);else if(l===4)o(Ri.encode(je(c[2])).length+Ri.encode(je(c[3])).length);else if(l===5)o(Ri.encode(je(c[2])).length);else if(l===6)for(let p of $t(c[1],ws))s(p,a+1);else if(l===7){if(!(c[1]instanceof Map)||c[1].size>ws)throw fe("bounded summary data map required");for(let[p,d]of c[1])o(Ri.encode(je(p)).length+64),s(d,a+1)}else if(l!==0&&l!==1&&l!==2)throw fe("summary must be a tagged value",!0)};for(let r of $t(n,64)){let a=Cl(r,2),c=je(a[0],1024);if(c.length===0||/[\u0000-\u001f\u007f-\u009f]/u.test(c)||e.has(c))throw fe("unique nonempty summary name required");o(Ri.encode(c).length+64),s(a[1],1),e.set(c,yo(a[1]))}return e}function zm(n){let e=Yt(n.offset,4294967295),t=Yt(n.limit,jn);if(t===0)throw fe("window limit must be positive");return{offset:e,limit:t}}function Jp(n){if(!(n.hints instanceof Map)||n.hints.size>ws)throw fe("bounded hints map required");let e=new Map,t=0;for(let[s,r]of n.hints){if(je(s),je(r),t+=Ri.encode(s).length+Ri.encode(r).length,t>65536)throw fe("hint bytes exceed bound");e.set(s,r)}let i=new Map([[0,T.enc(n.record)],[1,H.enc(n.sourceRevision)],[2,Yt(n.ordinal,4294967295)],[3,e],[4,je(n.captureTimezone,128)],[5,Bm]]);if(n.window!==void 0){let s=zm(n.window);i.set(6,new Map([[0,s.offset],[1,s.limit]]))}let o=ce(i);if(o.length>uO)throw fe("request bytes exceed bound");return o}function t_(n){let e=ai(n,[0,1,2,3,4,5,6]);return{record:T.dec(e.get(0)),path:je(e.get(1)),sourceRevision:H.dec(e.get(2)),ordinal:Yt(e.get(3),4294967295),name:e.get(4)===null?null:je(e.get(4)),viewType:je(e.get(5)),implementations:$t(e.get(6),ws).map(t=>{let i=ai(t,[0,1,2,3]);return{typeName:je(i.get(0)),version:je(i.get(1)),contractDigest:H.dec(i.get(2)),implementationDigest:H.dec(i.get(3))}})}}function Xp(n,e){if(!(n instanceof Uint8Array)||!n.length||n.length>dO)throw fe("response bytes exceed bound");let t=ue(n);if(!(t instanceof Map))throw fe("result struct required");let i=t;if(i.get(0)!==1)throw fe("unknown result version",!0);if(i.has(7)){let b=ai(i,[0,7]);return{kind:"refusal",problem:Mn.dec(b.get(7))}}let o=i.has(8),s=i.has(9),r=ai(i,[0,1,2,3,4,5,6,...o?[8]:[],...s?[9]:[]]);if(e!==void 0&&o!==(e!==null))throw fe("window response differs from request");let a=t_(r.get(1)),c=ai(r.get(2),[0,1]),l=$t(c.get(0),64).map(b=>je(b)),p=$t(c.get(1),64).map(b=>{let w=ai(b,[0,1,2]),g=Yt(w.get(0),63);if(g>=l.length)throw fe("unavailable column index out of bounds");return{index:g,code:je(w.get(1)),detail:je(w.get(2))}}),d=$t(r.get(3),jn).map(b=>{let w=Cl(b,4),g=$t(w[3],64);if(g.length!==l.length)throw fe("row cell count differs from columns");return{record:T.dec(w[0]),path:je(w[1]),sourceRevision:H.dec(w[2]),cells:g.map(y=>yo(y))}}),u=$t(r.get(4),jn).map(b=>{let w=Cl(b,2),g=yo(w[0]);if(!e_(g))throw fe("group key must be a qualified scalar or list");let y=$t(w[1],jn).map(v=>{let _=Yt(v,jn-1);if(_>=d.length)throw fe("group row index out of bounds");return _});return{key:g,rowIndices:y}}),f;if(o){let b=ai(r.get(8),[0,1,2,3]),w=zm({offset:Yt(b.get(0),4294967295),limit:Yt(b.get(1),jn)}),g=Yt(b.get(2),jn);if(d.length!==Math.min(w.limit,Math.max(g-w.offset,0)))throw fe("window row count differs from total/request");if(e!=null){let k=zm(e);if(w.offset!==k.offset||w.limit!==k.limit)throw fe("window echo differs from request")}let y=-1,v=$t(b.get(3),jn);if(v.length!==u.length||u.some(k=>k.rowIndices.length===0))throw fe("group placements must align represented groups");let _=v.map((k,S)=>{let x=Cl(k,3),P=Yt(x[0],jn-1),C=Yt(x[1],jn);if(P<=y||P>=g||C===0||C>g)throw fe("group placement bounds/order invalid");y=P;let R=-1,O=$t(x[2],jn).map(L=>{let z=Yt(L,jn-1);if(z<=R||z>=C)throw fe("group row ordinal bounds/order invalid");return R=z,z});if(O.length!==u[S].rowIndices.length)throw fe("group ordinal count differs from represented rows");return{globalGroupOrdinal:P,totalGroupRows:C,rowOrdinals:O}});f={...w,totalMatchedRows:g,groupPlacements:_}}let h=fo.dec(r.get(5));if(!Number.isSafeInteger(h.instant))throw fe("clock instant exceeds JS-safe range");let m=s?mO(r.get(9)):void 0;return{kind:"success",view:a,columns:l,unavailableColumns:p,rows:d,groups:u,clock:h,collectionRevision:H.dec(r.get(6)),...f===void 0?{}:{window:f},...m===void 0?{}:{summaries:m}}}function n_(n){if(n==null)return null;if(!(n instanceof Uint8Array)||n.length!==32)throw fe("native discovery handle must be 32 bytes");return new Uint8Array(n)}function Zp(n){let e=Yt(n.limit,128);if(!e)throw fe("discovery limit must be positive");return ce(new Map([[0,1],[1,je(n.captureTimezone,128)],[2,e],[3,n_(n.continuation)]]))}function Qp(n){return ce(new Map([[0,1],[1,T.enc(n.record)],[2,H.enc(n.sourceRevision)],[3,Yt(n.ordinal,4294967295)],[4,je(n.captureTimezone,128)]]))}function i_(n){if(!(n instanceof Uint8Array)||!n.length||n.length>1024*1024)throw fe("discovery response bytes exceed bound");let e=ue(n);if(!(e instanceof Map))throw fe("discovery result struct required");let t=e;if(t.get(0)!==1)throw fe("unknown discovery result version");return t}function r_(n){let e=t_(n);if(!e.implementations.length||e.implementations.length>16)throw fe("bounded native implementation provenance required");return e}function o_(n){let e=fo.dec(n);if(!Number.isSafeInteger(e.instant))throw fe("clock instant exceeds JS-safe range");return je(e.tz,128),je(e.localDate,128),e}function ed(n,e=128){let t=Yt(e,128);if(!t)throw fe("discovery limit must be positive");let i=i_(n);if(i.has(7)){let a=ai(i,[0,7]);return{kind:"refusal",problem:Mn.dec(a.get(7))}}let o=ai(i,[0,1,2,3,4]),s=$t(o.get(1),t).map(r_);for(let a=1;a<s.length;a++){let c=s[a-1],l=s[a];if(c.record>l.record||c.record===l.record&&c.ordinal>=l.ordinal)throw fe("discovery source/ordinal frontier must ascend");if(c.record===l.record&&(c.path!==l.path||c.sourceRevision!==l.sourceRevision))throw fe("one source identity cannot have two revisions/paths within a page")}let r=o.get(4);if(r!==null&&!(r instanceof Uint8Array))throw fe("native discovery handle required");return{kind:"success",views:s,clock:o_(o.get(2)),collectionRevision:H.dec(o.get(3)),continuation:n_(r)}}function td(n,e){let t=i_(n);if(t.has(7)){let r=ai(t,[0,7]);return{kind:"refusal",problem:Mn.dec(r.get(7))}}let i=ai(t,[0,1,2,3,4]),o=r_(i.get(1)),s=je(i.get(2),512*1024);if(si(s)!==o.sourceRevision)throw fe("exact native source SHA differs from bytes");if(e&&(o.record!==T.dec(T.enc(e.record))||o.sourceRevision!==H.dec(H.enc(e.sourceRevision))||o.ordinal!==e.ordinal))throw fe("exact source identity/revision/ordinal differs from request");return{kind:"success",view:o,source:s,clock:o_(i.get(3)),collectionRevision:H.dec(i.get(4))}}var Bm,dO,uO,fO,ws,jn,Ri,fe,Fm=I(()=>{"use strict";Je();ge();Oi();At();Bm="whole-view-synthetic-policy-reference-v1",dO=16*1024*1024,uO=128*1024,fO=4096,ws=4096,jn=65536,Ri=new TextEncoder,fe=(n,e=!1)=>new ne("app-bases-v1",n,e)});async function*a_(n,e,t={}){let i=s_(t.firstPageSize,200),o=s_(t.pageSize,1e3),s=e.window?.offset??0,r=0,a=0,c;for(;;){t.signal?.throwIfAborted();let l=await n({...e,window:{offset:s,limit:a===0?i:o}},t.signal);if(l.kind==="refusal"){yield l;return}let p=l.window?.totalMatchedRows;if(p===void 0)throw A("internal","native Bases page omitted its window");c??={revision:l.collectionRevision,total:p},r+=l.rows.length;let d=l.rows.length===0||s+l.rows.length>=p;if(yield{...l,page:a,offset:s,loaded:r,complete:d,changedSinceFirst:c.revision!==l.collectionRevision||c.total!==p},d)return;s+=l.rows.length,a+=1}}var s_,l_=I(()=>{"use strict";ie();s_=(n,e)=>{if(n===void 0)return e;if(!Number.isInteger(n)||n<1||n>65536)throw A("invalid_request","page size must be 1..65536");return n}});function c_(n){if(n==="request"||n==="single_record"||n==="cross_record")return n;throw new ne("validation-tier","unknown diagnostic tier",!0)}function u_(n){if(n===void 0)return{targets:void 0,expected:void 0};if(!Array.isArray(n)||n.length>1e3)throw A("invalid_request","At most 1000 validation selections are allowed.","validation_bounds");let e=[],t=[];for(let i of Array.from(n)){if(typeof i=="string"){let s=T.dec(T.enc(i));e.push(T.enc(s)),t.push({id:s});continue}if(!i||typeof i!="object")throw A("invalid_request","Validation needs UUID, path or record selections.","validation_selection");if("id"in i){let s=T.dec(T.enc(i.id)),r=H.dec(H.enc(i.revision));e.push(T.enc(s)),t.push({id:s,revision:r});continue}let o=i.path;if(typeof o!="string"||!o||o.length>4096||new TextEncoder().encode(o).byteLength>4096)throw A("invalid_request","Validation paths must be nonempty and at most 4096 UTF-8 bytes.","validation_selection");e.push(o),t.push({})}return{targets:e,expected:t}}function f_(n,e){if(e&&(n.length!==e.length||n.some((t,i)=>e[i]?.id!==void 0&&e[i].id!==t.id)))throw A("internal","Validation did not return the complete selected record identities.","invalid_validation_result");if(e&&n.some((t,i)=>e[i]?.revision!==void 0&&e[i].revision!==t.revision))throw A("unavailable","The validated document differs from the selected record revision.","record_validation_stale");return n}var yO,gO,bO,p_,Or,d_,h_=I(()=>{"use strict";ge();Je();At();ie();yO={name:"validation-tier",enc:c_,dec:c_},gO=N("validation-issue",[[0,"code",E],[1,"severity",Mp],[2,"message",E],[3,"details",at,"opt"],[4,"location",E,"opt"],[5,"typeName",E,"opt"],[6,"tier",yO]]),bO=N("record-validation",[[0,"id",T],[1,"issues",F(gO)],[2,"path",E],[3,"revision",H]]),p_=F(bO),Or=n=>new ne("record-validations",n),d_={name:"record-validations",enc:n=>p_.enc(n),dec:n=>{if(!Array.isArray(n)||n.length>1e3)throw Or("invalid inventory");let e=0,t=0,i=[[n,0]];for(;i.length;){let[s,r]=i.pop();if(++t>65536||r>32)throw Or("result exceeds tree bounds");if(Array.isArray(s)){if(s.length>65536)throw Or("oversized array");for(let a of s)i.push([a,r+1])}else if(s instanceof Map){if(s.size>32768)throw Or("oversized map");for(let[a,c]of s)i.push([a,r+1],[c,r+1])}}for(let s of n){let r=s instanceof Map?s.get(1):void 0;if(!Array.isArray(r))throw Or("missing diagnostics");if(e+=r.length,e>4096)throw Or("too many diagnostics")}if(ce(n).byteLength>1024*1024)throw Or("result exceeds byte bounds");let o=p_.dec(n);for(let s of o)if(!s.path||new TextEncoder().encode(s.path).byteLength>4096)throw Or("invalid current path");return o}}});function wO(n){if(n.length>Rr)throw A("too_large",`frame of ${n.length} bytes exceeds ${Rr}`);let e=new Uint8Array(4+n.length);return new DataView(e.buffer).setUint32(0,n.length),e.set(n,4),e}function Vm(n){return m_.has(n)}function nd(n){let e=new Il,t=!1,i=null,o=[],s={get onframe(){return i},set onframe(a){if(i=a,a&&o.length)for(let c of o.splice(0))a(c)},onclose:null,send(a){if(t)throw A("unavailable","connection closed");n.write(wO(ce(a)))},close(){t||(t=!0,n.close(),s.onclose?.())}};m_.add(s),n.ondata=a=>{try{for(let c of e.push(a)){let l=ue(c);if(i)i(l);else if(o.length<1024)o.push(l);else throw A("too_large","too many frames before the session started")}}catch(c){r(c instanceof pe?c:A("internal",`invalid frame from replica: ${String(c)}`))}},n.onclose=a=>r(a);function r(a){t||(t=!0,n.close(),s.onclose?.(a))}return s}function y_(){let n=()=>({onframe:null,onclose:null,closed:!1,send(i){if(this.closed)throw A("unavailable","connection closed");let o=this.peer;queueMicrotask(()=>{o.closed||o.onframe?.(i)})},close(){if(this.closed)return;this.closed=!0,this.onclose?.();let i=this.peer;i.closed||(i.closed=!0,queueMicrotask(()=>i.onclose?.()))}}),e=n(),t=n();return e.peer=t,t.peer=e,[e,t]}var Rr,Il,m_,Ol=I(()=>{"use strict";Je();ie();Rr=16*1024*1024,Il=class{chunks=[];head=0;buffered=0;push(e){e.length&&(this.chunks.push(e),this.buffered+=e.length);let t=[];for(;!(this.buffered<4);){let i=new DataView(this.peek(4).buffer).getUint32(0);if(i>Rr)throw A("too_large",`frame of ${i} bytes exceeds ${Rr}`);if(this.buffered<4+i)break;this.skip(4),t.push(this.take(i))}return t}peek(e){let t=new Uint8Array(e),i=0,o=this.head;for(let s of this.chunks){let r=Math.min(e-i,s.length-o);if(t.set(s.subarray(o,o+r),i),i+=r,o=0,i===e)break}return t}take(e){let t=this.peek(e);return this.skip(e),t}skip(e){for(this.buffered-=e;e>0;){let i=this.chunks[0].length-this.head;if(e<i){this.head+=e;return}e-=i,this.chunks.shift(),this.head=0}}};m_=new WeakSet});var id,g_=I(()=>{"use strict";ie();id=class{constructor(e){this.request=e}request;tail=Promise.resolve();occupied=0;read(e,t,i,o){if(o?.aborted)return Promise.reject(A("cancelled","Bases READ cancelled"));if(this.occupied>=33)return Promise.reject(A("unavailable","Bases read queue is full","bases_read_backpressure"));let s=t.slice();this.occupied++;let r,a,c=!1,l=new Promise((u,f)=>{r=u,a=f}),p=()=>{c||(c=!0,s.fill(0),a(A("cancelled","Bases READ cancelled")))};o?.addEventListener("abort",p,{once:!0});let d=async()=>{try{if(c)return;let u=await this.request(e,s);if(!(u instanceof Uint8Array)||!u.length||u.length>i)throw u instanceof Uint8Array&&u.fill(0),A("internal","native Bases response bytes exceed bound");if(c||o?.aborted){u.fill(0),p();return}c=!0,r(u)}catch(u){c||(c=!0,a(u))}finally{s.fill(0),o?.removeEventListener("abort",p),this.occupied--}};return this.tail=this.tail.then(d,d),l}}});function b_(n,e){rd.set(n,e)}function w_(n,e){let t=rd.get(n);t&&rd.set(e,t)}function v_(n){return rd.get(n)}var rd,Km=I(()=>{"use strict";rd=new WeakMap});function Nn(n,e){return oe(n)?n:n instanceof ne&&n.unknown?A("upgrade_required",`${e}: ${n.message}`,{reason:"unknown_variant"}):A("internal",`${e}: ${n instanceof Error?n.message:String(n)}`)}function vs(n,e,t){return new pe(Nn(n,e).toProblem(),{...t,cause:n})}var od,__,Wm,go,Rl=I(()=>{"use strict";ge();ie();Ol();g_();Km();At();od=[{major:1,minor:3},{major:1,minor:2},{major:1,minor:1},{major:1,minor:0}];__=new WeakSet,Wm=n=>n instanceof pe&&__.has(n),go=class n{constructor(e,t){this.port=e;this.hello=t;e.onframe=i=>this.onFrame(i),e.onclose=i=>this.onClosed(i)}port;hello;nextId=1;pending=new Map;pushHandlers=new Map;requestHandlers=new Map;closeError;closedFlag=!1;closeListeners=new Set;basesReads=new id((e,t)=>this.request(e,new Map([[0,t]])));device;static async open(e,t,i){let o=Qi.enc({kind:"request",id:0,method:"hello",params:am.enc(t)}),s;try{s=await e.open(o,i)}catch(c){throw oe(c)?c:A("unavailable",`cannot reach the replica (${e.description}): ${String(c)}`)}let r;try{let c=Qi.dec(s.helloResponse);if(c.kind!=="response"||c.id!==0)throw A("internal","replica answered hello with another frame");if(c.problem)throw new pe(c.problem);r=dm.dec(c.result??null)}catch(c){throw s.port.close(),Nn(c,"hello")}let a=new n(s.port,r);return w_(s.port,a),a.device=s.device,a}get closed(){return this.closedFlag}get error(){return this.closeError}onClose(e){return this.closedFlag?(queueMicrotask(()=>e(this.closeError)),()=>{}):(this.closeListeners.add(e),()=>this.closeListeners.delete(e))}async readAppBases(e,t){if(this.closedFlag)throw this.closeError??A("unavailable","session closed");if(t?.aborted)throw A("cancelled","Bases read cancelled");if(!(e instanceof Uint8Array)||!e.length||e.length>128*1024)throw A("invalid_request","Bases request bytes exceed bound");let i=this.port;if(typeof i.readAppBases!="function"&&!Vm(i))throw A("invalid_request","this transport does not support app Bases reads",{reason:"unsupported"});let o=typeof i.readAppBases=="function"?await i.readAppBases(e,t):await this.basesReads.read("app_bases_execute_v1",e,16*1024*1024,t);try{if(t?.aborted)throw A("cancelled","Bases read cancelled");if(this.closedFlag||this.port!==i)throw this.closeError??A("unavailable","original Bases session closed");if(!(o instanceof Uint8Array)||!o.length||o.length>16*1024*1024)throw A("internal","Bases response bytes exceed bound");return o}catch(s){throw o instanceof Uint8Array&&o.fill(0),s}}async readAppBasesDiscovery(e,t,i){if(this.closedFlag)throw this.closeError??A("unavailable","session closed");if(i?.aborted)throw A("cancelled","Bases discovery cancelled");if(e!=="list-views"&&e!=="read-view-source")throw A("invalid_request","unknown native Bases read");if(!(t instanceof Uint8Array)||!t.length||t.length>128*1024)throw A("invalid_request","Bases request bytes exceed bound");let o=this.port;if(typeof o.readAppBasesDiscovery!="function"&&!Vm(o))throw A("invalid_request","this transport does not support native Bases discovery",{reason:"unsupported"});let s=typeof o.readAppBasesDiscovery=="function"?await o.readAppBasesDiscovery(e,t,i):await this.basesReads.read(e==="list-views"?"app_bases_list_views_v1":"app_bases_read_view_source_v1",t,1024*1024,i);try{if(i?.aborted)throw A("cancelled","Bases discovery cancelled");if(this.closedFlag||this.port!==o)throw this.closeError??A("unavailable","original Bases session closed");if(!(s instanceof Uint8Array)||!s.length||s.length>1024*1024)throw A("internal","Bases discovery response bytes exceed bound");return s}catch(r){throw s instanceof Uint8Array&&s.fill(0),r}}async declaredSetup(e,t){if(!this.hello.features.includes("declared-collection-setup-v1"))throw A("upgrade_required","This computer needs an update to set up this app.","declared_setup_unsupported");if(!e.length||e.length>2*1024*1024)throw A("too_large","Setup request exceeds its fixed bound.");let i=await this.request("app_collection_setup_v1",new Map([[0,e]]),{signal:t});if(this.closed||t?.aborted)throw i instanceof Uint8Array&&i.fill(0),this.error??A("unavailable","Original setup session closed.");if(!(i instanceof Uint8Array)||!i.length||i.length>256*1024)throw i instanceof Uint8Array&&i.fill(0),A("internal","Invalid bounded Native setup reply.");return i}request(e,t,i={}){if(this.closedFlag)return Promise.reject(this.closeError??A("unavailable","session closed"));if(i.signal?.aborted)return Promise.reject(A("cancelled","request aborted before sending"));let o=this.nextId++;return new Promise((s,r)=>{let a=()=>{try{this.sendFrame({kind:"request",id:this.nextId++,method:"cancel",params:new Map([[0,o]])})}catch{}c.reject(A("cancelled",`${e} cancelled`))},c={resolve:l=>{c.cleanup();try{s(i.codec?i.codec.dec(l):l)}catch(p){r(Nn(p,`${e} result`))}},reject:l=>{c.cleanup(),r(l)},cleanup:()=>{this.pending.delete(o),i.signal?.removeEventListener("abort",a)}};this.pending.set(o,c),i.signal?.addEventListener("abort",a,{once:!0});try{this.sendFrame({kind:"request",id:o,method:e,params:t})}catch(l){c.reject(oe(l)?l:A("unavailable",String(l)))}})}onPush(e,t){let i=this.pushHandlers.get(e);return i||this.pushHandlers.set(e,i=new Set),i.add(t),()=>i.delete(t)}handle(e,t){this.requestHandlers.set(e,t)}close(){this.port.close(),this.onClosed()}closeWith(e){this.fail(e)}sendFrame(e){this.port.send(Qi.enc(e))}onFrame(e){let t;try{t=Qi.dec(e)}catch(i){if(i instanceof ne&&i.unknown)return;this.fail(A("internal",`malformed frame from replica: ${String(i)}`));return}switch(t.kind){case"response":{let i=this.pending.get(t.id);if(!i)return;if(t.problem){let o=new pe(t.problem);__.add(o),i.reject(o)}else i.resolve(t.result??null);return}case"push":{let i=this.pushHandlers.get(t.type);if(!i)return;for(let o of[...i])try{o(t.payload)}catch(s){queueMicrotask(()=>{throw s})}return}case"request":this.serve(t.id,t.method,t.params);return}}async serve(e,t,i){let o=this.requestHandlers.get(t),s,r;if(!o)r=A("invalid_request",`client does not serve ${t}`,{reason:"unknown_method"}).toProblem();else try{s=await o(i)}catch(a){r=(oe(a)?a:A("internal",String(a))).toProblem()}if(!this.closedFlag)try{this.port.send(Qi.enc(r?{kind:"response",id:e,problem:r}:{kind:"response",id:e,result:s??null}))}catch{}}fail(e){this.port.onclose=null,this.port.close(),this.onClosed(e)}onClosed(e){if(this.closedFlag)return;this.closedFlag=!0,this.closeError=e;let t=e??A("unavailable","connection to the replica closed");for(let i of[...this.pending.values()])i.reject(t);this.pending.clear();for(let i of[...this.closeListeners])i(e);this.closeListeners.clear()}}});function k_(n,e){return oe(n,"unavailable")&&n.reason==="hosted_chunk_busy"&&Date.now()<e}function S_(n,e,t){let i=Math.min(Math.max(n.retryAfterMs??1e3,250),5e3);return new Promise((o,s)=>{if(t?.aborted)return s(A("cancelled",`${e} aborted`));let a=setTimeout(()=>{t?.removeEventListener("abort",c),o()},i),c=()=>{clearTimeout(a),s(A("cancelled",`${e} aborted`))};t?.addEventListener("abort",c,{once:!0})})}function Gm(n){let{grant:e}=n;if(e.grant!==void 0&&n.version.major===1&&n.version.minor<2)return null;let t=new Set(e.capabilities),i=_O.filter(([,s])=>t.has(s)&&(s==="collection.read"||e.role!=="viewer")).map(([s])=>s),o=e.fileFolders===void 0?Object.freeze({kind:"collection"}):Object.freeze({kind:"selected_folders",folders:Object.freeze([...e.fileFolders])});return Object.freeze({actions:Object.freeze(i),scope:o})}function C_(n,e){El.set(n,e)}function P_(n){return typeof n=="string"?T.enc(n):"id"in n?T.enc(n.id):n.path}function Hm(n){if(typeof n=="string")return n;if("id"in n)return n.id;throw A("invalid_request","this operation needs a file ID; get() the file first")}function nr(n){let e=new Map;for(let[t,i]of n)i!==void 0&&e.set(t,i);return e}async function x_(n,e,t){return n instanceof Uint8Array?n.subarray(e,t):n instanceof ArrayBuffer?new Uint8Array(n,e,t-e):new Uint8Array(await n.slice(e,t).arrayBuffer())}function AO(n){return n instanceof Uint8Array||n instanceof ArrayBuffer?n.byteLength:n.size}var A_,sd,vO,_O,El,_s,ql=I(()=>{"use strict";Cr();ge();ie();Rl();Oi();At();A_=9e4;sd=64*1024*1024,vO=8*1024*1024,_O=[["list","collection.read"],["read","collection.read"],["add","records.create"],["replace","records.edit"],["move","records.edit"],["delete","records.delete"]];El=new WeakMap;_s=class{constructor(e){this.client=e;e.onSession(t=>this.wire(t))}client;uploading=Promise.resolve();progress=new Map;streams=new Map;wired=new WeakSet;opening=0;early=new Map;get grant(){let e=Gm(this.client.hello),t=El.get(this);return e&&t?Object.freeze({...e,actions:Object.freeze(e.actions.filter(i=>i==="list"||i==="read"||t.allows(i)))}):e}watch(e,t={}){let{version:i}=this.client.hello;if(i.major!==1||i.minor<2)throw A("upgrade_required","this replica's change feed does not name files","change_entity_unsupported");return this.client.watchChanges(t.cursor,o=>{let s=o.changes.filter(a=>a.entity==="file"||a.entity===void 0&&a.kind==="remove");o.changes.some(a=>a.entity===void 0&&a.kind==="put")?e({changes:[],cursor:o.cursor,reset:!0}):(s.length||o.reset)&&e({changes:s,cursor:o.cursor,reset:o.reset})})}wire(e){this.wired.has(e)||(this.wired.add(e),e.onPush("transfer_progress",t=>{try{let i=Dp.dec(t);this.progress.get(i.id)?.(i)}catch{}}),e.onPush("file_chunk",t=>{try{let i=Up.dec(t),o=this.streams.get(i.stream);if(o)o.onChunk(i);else if(this.opening>0){let s=this.early.get(i.stream)??[];s.reduce((a,c)=>a+c.bytes.length,0)+i.bytes.length<=vO&&this.early.size<16&&(s.push(i),this.early.set(i.stream,s))}}catch{}}),e.onClose(t=>{for(let i of this.streams.values())i.onEnd(t??A("unavailable","connection closed"));this.streams.clear()}))}async session(e,t=!1){let i=await(t?this.client.readyForRead(e):this.client.ready(e));return this.wire(i),i}listPage(e={}){return this.client.call("list_files",nr([[0,e.folder],[1,e.media?.map(t=>fs.enc(t))],[2,e.cursor],[3,e.limit]]),{codec:km,retry:!0,...e.signal?{signal:e.signal}:{}})}async*list(e={}){let t;for(;;){let i=await this.listPage({...e,...t?{cursor:t}:{},...e.pageSize?{limit:e.pageSize}:{}});if(yield*i.files,!i.cursor)return;t=i.cursor}}get(e,t){return this.client.call("get_file",nr([[0,P_(e)]]),{codec:kl,retry:!0,...t?{signal:t}:{}})}async upload(e,t,i={}){let o={...i},s=this.uploading.then(()=>this.uploadQueued(e,t,o));return this.uploading=s.then(()=>{},()=>{}),s}async uploadQueued(e,t,i){if(El.get(this)?.check(i.fileId?"replace":"add"),i.signal?.aborted)throw A("cancelled","upload aborted");let o=AO(t),s=it.create(),r=4*1024*1024;for(let d=0;d<o;d+=r)s.update(await x_(t,d,Math.min(o,d+r)));let a=tm(s.digest()),c=i.transferId??Ln(),l={transfer:c,path:e,size:o,digest:a,mutationId:i.mutationId??Ln()};i.fileId&&(l.fileId=i.fileId),i.ifRevision&&(l.ifRevision=i.ifRevision),i.onProgress&&this.progress.set(c,i.onProgress);let p=Date.now()+A_;for(;;){let d={committing:!1};try{return await this.uploadOnce(t,o,l,i,d)}catch(u){if(oe(u,"unavailable")&&this.client.link==="reconnecting")continue;if(k_(u,p)){await S_(u,"upload",i.signal);continue}throw this.progress.delete(c),d.committing||await this.abortUpload(c).catch(()=>{}),vs(u,"upload",{mutationId:l.mutationId})}}}async uploadOnce(e,t,i,o,s){let r=await this.session(o.signal),a=o.signal?{signal:o.signal}:{},c=await r.request("open_upload",Sm.enc(i),{codec:Pm,...a});if(c.fileId===void 0){let m=r.hello.version.minor>=1;throw A(m?"internal":"upgrade_required","the replica does not return upload file identity",{reason:m?"file_upload_identity_missing":"file_upload_identity_unsupported"})}if(c.transfer!==i.transfer||i.fileId!==void 0&&c.fileId!==i.fileId)throw A("internal","the replica returned an unrelated upload identity",{reason:"file_upload_identity_mismatch"});let l=new Set(c.received),p=Math.ceil(t/c.chunkSize),d=l.size*c.chunkSize,u=new Set;for(let m=0;m<p;m++){if(l.has(m))continue;let b=m*c.chunkSize,w=await x_(e,b,Math.min(t,b+c.chunkSize)),g=r.request("upload_chunk",xm.enc({transfer:i.transfer,index:m,bytes:w}),a).then(()=>{d+=w.length,o.onProgress?.({id:i.transfer,phase:"receiving",done:Math.min(d,t),total:t})});u.add(g),g.finally(()=>u.delete(g)).catch(()=>{}),u.size>=4&&await Promise.race(u)}await Promise.all(u),s.committing=!0;let f=await r.request("commit_upload",nr([[0,T.enc(i.transfer)]]),{codec:kt,...a}),h=Object.assign(this.client._track(f),{fileId:c.fileId});return o.onProgress?h.confirmed.finally(()=>this.progress.delete(i.transfer)).catch(()=>{}):this.progress.delete(i.transfer),h}abortUpload(e){return this.client.call("abort_upload",nr([[0,T.enc(e)]])).then(()=>{})}downloadStream(e,t={}){let i=null,o=null,s,r,a=new Promise((g,y)=>(s=g,r=y));a.catch(()=>{});let c=this,l=new AbortController,p=A("cancelled","file download cancelled"),d=!1,u=!1,f=!1,h=()=>{},m=()=>{i!==null&&(c.streams.delete(i),c.early.delete(i),f||(f=!0,o?.request("cancel_stream",nr([[0,i]])).catch(()=>{})))},b=()=>{u||(d=!0,h(),r(p),l.abort(),m())},w=new ReadableStream({async start(g){let y=()=>{u||d||(b(),g.error(p))};if(h=()=>t.signal?.removeEventListener("abort",y),t.signal?.addEventListener("abort",y,{once:!0}),t.signal?.aborted){y();return}try{if(o=await c.session(l.signal,!0),d)return;let v=nr([[0,P_(e)]]);t.range&&v.set(1,[t.range[0],t.range[1]]),t.revision&&v.set(2,H.enc(t.revision));let _=0,k=0;c.opening++;let S;try{let R=Date.now()+A_;for(;;)try{S=await o.request("read_file",v,{signal:l.signal});break}catch(O){if(!k_(O,R))throw O;await S_(O,"download",l.signal)}}finally{c.opening--}i=B.dec(S.get(0)??null);let x=c.early.get(i)??[];if(c.early.delete(i),c.opening===0&&c.early.clear(),d){m(),u=!0;return}let P=kl.dec(S.get(1)??null);s(P),_=t.range?t.range[1]:P.size;let C=R=>{d||u||(g.enqueue(R.bytes),k+=R.bytes.length,t.onProgress?.({id:i,phase:"streaming",done:k,total:_}),!(d||u)&&(o.request("ack_chunks",nr([[0,i],[1,R.offset+R.bytes.length]])).catch(()=>{}),R.last&&!d&&!u&&(u=!0,h(),c.streams.delete(i),g.close())))};c.streams.set(i,{onChunk:C,onEnd:R=>{u=!0,h(),g.error(R??A("unavailable","stream ended"))}});for(let R of x)C(R)}catch(v){u=!0,h(),c.opening===0&&c.early.clear(),m(),r(v),g.error(v)}},cancel:b});return Object.assign(w,{file:a})}async download(e,t={}){let i=typeof e=="object"&&"size"in e?e:await this.get(e,t.signal);if(i.size>sd)throw A("too_large",`file is ${i.size} bytes; use downloadStream`,{details:new Map([["limit",sd]])});let o=new Uint8Array(i.size),s=0,r=this.downloadStream(i,t).getReader();for(;;){let{done:a,value:c}=await r.read();if(a)break;o.set(c,s),s+=c.length}return o.subarray(0,s)}fetch(e,t){return this.client.call("fetch_file",nr([[0,T.enc(Hm(e))]]),{retry:!0,...t?{signal:t}:{}}).then(()=>{})}evict(e){return this.client.call("evict_file",nr([[0,T.enc(Hm(e))]])).then(()=>{})}getMaterialization(){return this.client.call("get_materialization",null,{codec:$p,retry:!0})}setMaterialization(e){return this.client.call("set_materialization",$p.enc(e)).then(()=>{})}async move(e,t,i={}){El.get(this)?.check("move");let o={kind:"file_move",id:e.id,from:e.path,to:t,updateRefs:i.updateRefs??!0},[s]=await this.client.submit([i.ifRevision?{...o,ifRevision:i.ifRevision}:o],i);return s}async delete(e,t={}){El.get(this)?.check("delete");let i={kind:"file_delete",id:Hm(e)};typeof e=="object"&&"digest"in e&&(i.base=e.digest),t.ifRevision&&(i.ifRevision=t.ifRevision);let[o]=await this.client.submit([i],t);return o}}});async function ad(n,e,t,i,o={}){i?.throwIfAborted();let s=o.concurrency??8;if(!Number.isSafeInteger(s)||s<1||s>Jm)throw A("invalid_request","readMany concurrency must be 1..16","read_many_bounds");if(!Array.isArray(e)||e.length>Ym)throw A("invalid_request","readMany accepts at most 1000 record selections","read_many_bounds");let r=Array.from(e,kO),a=t?Object.freeze({...t}):void 0,c=new Array(r.length),l=0,p=!1,d;async function u(){for(;!p&&l<r.length;)try{i?.throwIfAborted();let f=l++,h=r[f],m=await n.get(h,a,i);if(i?.throwIfAborted(),p)return;if(typeof h=="string"&&m.id!==h)throw A("invalid_request","readMany readback belongs to another UUID","read_many_identity_mismatch");c[f]=m}catch(f){p||(p=!0,d=f);return}}if(await Promise.all(Array.from({length:Math.min(s,r.length)},()=>u())),p)throw d;return i?.throwIfAborted(),c}function kO(n){if(typeof n=="string")return T.dec(T.enc(n));if(!n||typeof n!="object")throw A("invalid_request","readMany needs UUID, path or record selections","read_many_selection");if("id"in n)return T.dec(T.enc(n.id));if(typeof n.path!="string"||n.path.length===0||n.path.length>4096||new TextEncoder().encode(n.path).byteLength>4096)throw A("invalid_request","readMany path must be nonempty and at most 4096 UTF-8 bytes","read_many_bounds");return Object.freeze({path:n.path})}function ld(n,e,t,i,o={}){return n.pages(e,t,i,o)}async function I_(n,e,t={}){let i=t.signal,o=t.isCurrent?.bind(t),s=()=>A("unavailable","original record link binding changed","record_links_fenced");function r(){if(i?.throwIfAborted(),o){let k=!1;try{k=o()===!0}catch{}if(!k)throw s()}}r();let a=e?.path,c=e?.field,l=k=>typeof k=="string"&&k.length>0&&k.length<=4096&&new TextEncoder().encode(k).byteLength<=4096;if(!l(a)||!l(c))throw A("invalid_request","record link path/field must be nonempty and bounded","record_links_bounds");let p=JSON.stringify(c),d=`(${p} in raw ? raw[${p}] : null)`,u=k=>`${k}.asFile() == null ? null : ${k}.asFile().file.path`,f=`${d} == null ? [] : type(${d}) == "list" ? ${d}.map(l, ${u("l")}) : [${u(d)}]`;if(new TextEncoder().encode(f).byteLength>64*1024)throw A("invalid_request","record link expression exceeds native source bound","record_links_bounds");r();let h=await n.query({where:`file.path == ${JSON.stringify(a)}`,limit:2,select:[{name:"raw",expr:d},{name:"paths",expr:f}]},void 0,i);r();let m=()=>A("unavailable","invalid or incomplete native record link projection","record_links_response");if(h.complete!==!0||h.cursor!=null)throw m();if(h.columns===void 0)throw A("upgrade_required","native record link projection unsupported","record_links_unsupported");if(h.columns.length!==2||h.columns[0]!=="raw"||h.columns[1]!=="paths"||h.diagnostics?.some(k=>k.code==="expression_evaluation_error"))throw m();if(h.records.length===0)throw A("not_found","selected record not found","record_links_missing");if(h.records.length!==1||h.records[0].path!==a)throw m();let b=h.records[0].values;if(b===void 0)throw A("upgrade_required","native record link projection unsupported","record_links_unsupported");if(!(b instanceof Map)||b.size!==2||!b.has("raw")||!b.has("paths"))throw m();let w=b.get("raw"),g=b.get("paths"),y=w===null?[]:typeof w=="string"?[w]:w;if(!Array.isArray(y)||!Array.isArray(g)||y.length!==g.length||y.length>1e3)throw m();let v=0,_=[];for(let k=0;k<y.length;k++){let S=y[k],x=g[k];if(typeof S!="string"||S.length>(1<<20)-v||x!==null&&!l(x)||(v+=new TextEncoder().encode(S).byteLength+(x===null?0:new TextEncoder().encode(x).byteLength),v>1<<20))throw m();_.push(Object.freeze({raw:S,path:x}))}return r(),Object.freeze(_)}var Ym,Jm,Xm=I(()=>{"use strict";ge();ie();Ym=1e3,Jm=16});function As(n,e){if((n.document?.length??0)>Tl||(n.body?.length??0)>Tl)throw A("invalid_request","native record exceeds the record session source budget","record_session_budget");if(e!==void 0&&n.id!==e||typeof n.document!="string"||typeof n.body!="string"||si(n.document)!==n.revision)throw A("invalid_request","record session needs actual complete, revision-consistent source and identity","record_witness_required")}function bo(n){return n.state.hold!==void 0||n.state.unresolved!==void 0&&n.state.unresolved!==0}function wo(n){return n.state.state==="confirmed"&&!bo(n)}function Tt(n){return Tn.dec(ue(ce(Tn.enc(n))))}function Ll(n){return n instanceof pe?n.toProblem():n instanceof Error&&(n.name==="AbortError"||n.name==="TimeoutError")?A("cancelled",n.message).toProblem():A("internal",n instanceof Error?n.message:"record session failure").toProblem()}function cn(n,e,t){return new pe({code:n,message:e,reason:t,recovery:n==="conflict"?"resolve_conflict":n==="outcome_unknown"?"resolve_outcome":"retry"})}function Zm(n){return ce(Tn.enc(n)).byteLength*2}function Qm(n){if(n.length>Tl)throw A("invalid_request","record session draft exceeds retained budget","record_session_budget");return new TextEncoder().encode(n).byteLength*2}function jl(n){let e=n??3e4;if(!Number.isSafeInteger(e)||e<1||e>12e4)throw A("invalid_request","record session timeout must be 1..120000ms","invalid_timeout");return e}var Ml,Tl,ey=I(()=>{"use strict";Je();ie();Oi();At();Ml={body:!0,document:!0,effective:!0},Tl=8*1024*1024});function Nl(n){return wo(n)?"saved":"saved_on_device"}function O_(n,e){let t=ce(n),i=ce(e);return t.length===i.length&&t.every((o,s)=>o===i[s])}function SO(n){let e=new AbortController,t=setTimeout(()=>e.abort(new DOMException("record flush timed out","TimeoutError")),n);return{signal:e.signal,clear:()=>clearTimeout(t)}}function PO(n,e){return e?new Promise((t,i)=>{let o=()=>{s(),i(A("cancelled","record flush waiter cancelled"))},s=()=>e.removeEventListener("abort",o);if(e.aborted){o();return}e.addEventListener("abort",o,{once:!0}),n.then(r=>{s(),t(r)},r=>{s(),i(r)})}):n}var cd,R_=I(()=>{"use strict";Je();ie();Oi();At();ey();cd=class{constructor(e,t,i){this.client=e;this.reserve=i;As(t),this.base=Tt(t),this.body=t.body,this.state=bo(t)?"conflict":Nl(t),this.publish()}client;reserve;base;body;patch=new Map;remote=null;captured=null;lastReceipt=null;state;why=null;snapshot;listeners=new Set;life=new AbortController;running=null;writing=!1;refreshRunning=null;refreshAgain=!1;timer;active=!1;idle=!1;defaultTimeout=3e4;async restore(e,t){if(this.captured){if(t&&t.mutationId!==this.captured.recovery.mutationId)throw A("invalid_request","record already owns another recovery identity","record_recovery_mismatch");return}if(t){if(t.recordId!==this.id)throw A("invalid_request","recovery belongs to another native record","record_identity_mismatch");this.captured={bound:!1,body:this.body,patch:new Map,recovery:{...t,receipt:null,write:null}}}e?.throwIfAborted(),this.captured&&(this.state="recovery",this.why=cn("outcome_unknown","recover the original native mutation before another edit","record_recovery_required").toProblem(),this.publish())}get id(){return this.base.id}get dirty(){return this.body!==this.base.body||this.patch.size>0}get retained(){return this.dirty||this.captured!==null||!wo(this.base)}getSnapshot=()=>this.snapshot;subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));resume(e){this.active||(this.life=new AbortController,this.active=!0),this.defaultTimeout=jl(e.timeoutMs),this.idle=e.autosave?e.autosave.idleMs:!1,this.schedule()}suspend(){this.active=!1,this.clearTimer(),this.life.abort()}ensure(){if(!this.active)throw A("cancelled","record lease has been released")}setBody=e=>{if(this.ensure(),typeof e!="string")throw A("invalid_request","record body must be text");this.charge(e,this.patch),this.body=e,this.edited()};patchFrontmatter=e=>{this.ensure();let t=new Map(this.patch);for(let[i,o]of e instanceof Map?e:Object.entries(e)){let s=o===void 0?void 0:ue(ce(ut(o))),r=this.base.frontmatter.get(i);!this.captured?.patch.has(i)&&(s===void 0&&r===void 0||s!==void 0&&r!==void 0&&O_(s,r))?t.delete(i):t.set(i,s)}this.charge(this.body,t),this.patch=t,this.edited()};edited(){!this.captured&&this.state!=="conflict"&&this.state!=="deleted"&&(this.state=this.dirty?"unsaved":Nl(this.base),this.why=null),this.publish(),this.schedule()}charge(e=this.body,t=this.patch,i=this.base,o=this.remote,s=this.lastReceipt,r=this.captured){let a=Zm(i)+Qm(e)+ce(new Map([...t].map(([c,l])=>[c,l??null]))).byteLength*2;o&&(a+=Zm(o)),r&&(a+=Qm(r.body)+ce(new Map([...r.patch].map(([c,l])=>[c,l??null]))).byteLength*2),s&&(a+=ce(kt.enc(s)).byteLength*2),this.reserve(a)}publish(){this.charge();let e=new Map(this.base.frontmatter);for(let[t,i]of this.patch)i===void 0?e.delete(t):e.set(t,i);this.snapshot=Object.freeze({state:this.state,body:this.body,frontmatter:ue(ce(e)),record:Tt(this.base),remote:this.remote?Tt(this.remote):null,dirty:this.dirty,problem:this.why,lastReceipt:this.lastReceipt?kt.dec(ue(ce(kt.enc(this.lastReceipt)))):null,recovery:this.captured?Object.freeze({...this.captured.recovery}):null});for(let t of[...this.listeners])try{t()}catch{}}clearTimer(){this.timer!==void 0&&clearTimeout(this.timer),this.timer=void 0}schedule(){this.clearTimer(),this.active&&this.idle!==!1&&this.dirty&&this.state==="unsaved"&&!this.running&&(this.timer=setTimeout(()=>{this.timer=void 0,this.flush().catch(()=>{})},this.idle))}async read(e){let t=await this.client.get(this.id,Ml,e);return e.throwIfAborted(),As(t,this.id),t}refresh=()=>{if(!this.active)return Promise.resolve();if(this.refreshRunning)return this.refreshAgain=!0,this.refreshRunning;let e=this.life.signal;return this.refreshRunning=(async()=>{do{this.refreshAgain=!1;try{let t=await this.read(e);if(this.captured||this.running){this.captured&&!this.running&&this.start(!1,{}).catch(()=>{});continue}this.charge(this.body,this.patch,this.base,t),this.dirty?(t.revision!==this.base.revision||bo(t))&&(this.remote=Tt(t),this.state="conflict",this.why=cn("conflict","record changed while this draft was open","record_session_conflict").toProblem()):(this.base=Tt(t),this.body=t.body,this.remote=null,this.state=bo(t)?"conflict":Nl(t),this.why=null),this.publish()}catch(t){if(e.aborted)return;this.why=Ll(t),this.state=this.why.code==="not_found"?"deleted":this.captured?"recovery":"error",this.publish()}}while(this.refreshAgain&&!e.aborted)})().finally(()=>{this.refreshRunning=null}),this.refreshRunning};observerProblem(e){this.active&&(this.why=e,this.state=this.captured?"recovery":"error",this.publish())}flush=(e={})=>(this.ensure(),this.clearTimer(),this.start(!0,e));start(e,t){let i=jl(t.timeoutMs??this.defaultTimeout),o=SO(i),s=AbortSignal.any([...t.signal?[t.signal]:[],o.signal]),r=this.running;if(r&&(this.writing||!e))return PO(r,s).finally(o.clear);let a=AbortSignal.any([this.life.signal,s]),c={until:Date.now()+i,margin:Math.min(2e3,Math.floor(i/4))},l=()=>this.drive(a,c,e),p=(r?r.then(l,l):l()).finally(()=>{o.clear(),this.running===p&&(this.running=null,this.writing=!1,this.schedule())});return this.running=p,this.writing=e,p}async drive(e,t,i){try{for(;;){if(e.throwIfAborted(),this.captured){await this.settle(e,t);continue}if(!i)return wo(this.base)?{ok:!0,record:Tt(this.base)}:{ok:!0,record:Tt(this.base),saved:"on_device"};let o=await this.read(e);if(bo(o))throw this.charge(this.body,this.patch,this.base,o),this.remote=Tt(o),cn("conflict","native hold/unresolved edits require native resolution before saving","native_protection_resolution_required");if(this.state==="deleted")throw cn("conflict","the original record was deleted","record_deleted");if(!this.dirty)return this.charge(o.body,this.patch,o,null),this.base=Tt(o),this.body=o.body,this.remote=null,this.state=Nl(o),this.why=null,this.publish(),wo(o)?{ok:!0,record:Tt(o)}:{ok:!0,record:Tt(o),saved:"on_device"};if(o.revision!==this.base.revision||this.state==="conflict")throw this.charge(this.body,this.patch,this.base,o),this.remote=Tt(o),cn("conflict","explicitly resolve the current native revision before saving","record_session_conflict");As(this.base,this.id),this.base=Tt(o);let s=this.body,r=new Map(this.patch),a=Ln(),c={bound:!0,body:s,patch:r,recovery:{mutationId:a,recordId:this.id,baseRevision:this.base.revision,receipt:null,write:null}};this.charge(this.body,this.patch,this.base,this.remote,this.lastReceipt,c),this.captured=c,this.state="saving",this.why=null,this.publish();let l={ifRevision:this.base.revision};s!==this.base.body&&(l.body=s);let p=new Map,d=[];for(let[f,h]of r)h===void 0?d.push(f):p.set(f,h);p.size&&(l.patch=p),d.length&&(l.unset=d);let u=await this.client.update(Tt(this.base),l,{mutationId:a,include:Ml,conflictMode:"reject",signal:e});if(e.throwIfAborted(),u.mutationId!==a)throw cn("outcome_unknown","native write changed its original mutation identity","mutation_identity_mismatch");this.captured.recovery={...this.captured.recovery,write:u,receipt:u.receipt},this.publish()}}catch(o){return this.why=Ll(o),this.state=this.captured?"recovery":this.why.code==="conflict"?"conflict":this.why.code==="not_found"?"deleted":this.why.code==="outcome_unknown"?"recovery":"error",this.publish(),{ok:!1,problem:this.why}}}async settle(e,t){let i=this.captured,o=i.recovery,s=await this.client.awaitReceipt(o.mutationId,Math.max(1,t.until-Date.now()-t.margin),e);if(e.throwIfAborted(),s.mutation!==o.mutationId)throw cn("outcome_unknown","native receipt belongs to another mutation","mutation_identity_mismatch");let r=s.records?.some(p=>p.id===o.recordId)??!1;if(s.records?.length&&!r||!i.bound&&s.state==="confirmed"&&!r)throw cn("outcome_unknown","receipt does not bind the original native record identity","receipt_record_witness_required");if(r&&(i.bound=!0),this.charge(this.body,this.patch,this.base,this.remote,s),this.lastReceipt=s,i.recovery={...o,receipt:s},this.publish(),s.state==="unknown")throw cn("outcome_unknown","original native mutation is not settled; no resubmit","record_receipt_pending");if(s.state==="rejected"||s.status==="conflicted")throw this.captured=null,s.problem?new pe(s.problem):cn("conflict","original mutation conflicted","record_session_conflict");let a=await this.read(e);if(s.state==="pending"?bo(a):!wo(a))throw cn("outcome_unknown","confirmed receipt has pending/protected current readback","unqualified_readback");this.charge(this.body,this.patch,a,null);let l=this.body===i.body;for(let[p,d]of i.patch){let u=this.patch.get(p);this.patch.has(p)&&(d===void 0?u===void 0:u!==void 0&&O_(d,u))&&this.patch.delete(p)}this.base=Tt(a),l&&(this.body=a.body),this.captured=null,this.remote=null,this.state=this.dirty?"unsaved":Nl(a),this.why=null,this.publish()}resolve=e=>{if(this.ensure(),this.captured||this.running)throw cn("outcome_unknown","recover the original mutation before resolving or preparing another","record_recovery_required");let t=this.remote;if(!t||!wo(t))throw cn("conflict","a confirmed unprotected native record is required for resolution","native_protection_resolution_required");let i="body"in e?e.body:e.keep==="theirs"?t.body:this.body,o="keep"in e&&e.keep==="theirs"?new Map:this.patch;this.charge(i,o,t,null),this.base=Tt(t),this.body=i,this.patch=o,this.remote=null,this.state=this.dirty?"unsaved":"saved",this.why=null,this.publish(),this.schedule()}}});var pd,E_=I(()=>{"use strict";ie();ge();R_();ey();pd=class{constructor(e){this.client=e}client;slots=new Map;bytes=0;closed=!1;opening=Promise.resolve();watch=null;offWatch=null;offStatus=null;open(e,t={}){let i={...t,autosave:t.autosave?{...t.autosave}:t.autosave,...t.recovery?{recovery:{...t.recovery}}:{}};if(i.recovery&&(i.recovery={...i.recovery,mutationId:T.dec(T.enc(i.recovery.mutationId)),recordId:T.dec(T.enc(i.recovery.recordId))},i.recovery.baseRevision!==null&&H.enc(i.recovery.baseRevision)),jl(i.timeoutMs),i.autosave&&(!Number.isSafeInteger(i.autosave.idleMs)||i.autosave.idleMs<1||i.autosave.idleMs>12e4))throw A("invalid_request","record autosave idleMs must be 1..120000","invalid_autosave");let o=typeof e=="string"?e:"id"in e?e.id:{path:e.path},s=this.opening.catch(()=>{}).then(()=>this.acquire(o,i));return this.opening=s.then(()=>{},()=>{}),s}async acquire(e,t){if(this.closed)throw A("unavailable","record sessions client closed");t.signal?.throwIfAborted();let i=await this.client.get(e,Ml,t.signal);if(t.signal?.throwIfAborted(),this.closed)throw A("unavailable","record sessions client closed");As(i);let o=typeof e=="string"?e:"id"in e?e.id:void 0,s=o===void 0?void 0:T.dec(T.enc(o));if(s!==void 0&&s!==i.id)throw A("invalid_request","record open readback changed the requested UUID","record_identity_mismatch");let r=JSON.stringify([t.autosave?t.autosave.idleMs:!1,t.timeoutMs??3e4]),a=this.slots.get(i.id);if(a&&a.leases>0&&a.policy!==r)throw A("invalid_request","active record leases must use the same autosave policy","record_lease_policy");if(a)await a.session.restore(t.signal,t.recovery),t.signal?.throwIfAborted();else{if(this.slots.size>=64)throw A("invalid_request","retained record sessions exceed 64; settle drafts before opening more","record_session_budget");a={session:null,leases:0,bytes:0,policy:r};let h=a;try{a.session=new cd(this.client,i,m=>{let b=this.bytes-h.bytes+m;if(b>Tl)throw A("invalid_request","record session retained data exceeds 8MiB","record_session_budget");this.bytes=b,h.bytes=m}),await a.session.restore(t.signal,t.recovery),t.signal?.throwIfAborted()}catch(m){throw this.bytes-=h.bytes,m}this.slots.set(i.id,a)}a.leases++,a.policy=r,a.session.resume(t),this.startWatch();let c=a,l=!1,p=new Set,d=()=>{if(l)throw A("cancelled","record lease released")},u=Object.freeze({getSnapshot:c.session.getSnapshot,subscribe:h=>{d();let m=c.session.subscribe(h);return p.add(m),()=>{p.delete(m),m()}},setBody:h=>{d(),c.session.setBody(h)},patchFrontmatter:h=>{d(),c.session.patchFrontmatter(h)},resolve:h=>{d(),c.session.resolve(h)},flush:h=>(d(),c.session.flush(h))}),f=()=>{if(!l){l=!0,t.signal?.removeEventListener("abort",f);for(let h of p)h();p.clear(),--c.leases===0&&(c.session.suspend(),c.session.retained||(this.bytes-=c.bytes,this.slots.delete(i.id))),[...this.slots.values()].some(h=>h.leases>0)||this.stopWatch()}};return t.signal?.addEventListener("abort",f,{once:!0}),t.signal?.aborted&&(f(),t.signal.throwIfAborted()),c.session.refresh(),Object.freeze({session:u,release:f})}startWatch(){if(this.watch)return;let e=this.client.watchChanges(void 0,i=>{for(let[o,s]of this.slots)s.leases>0&&(i.reset||i.changes.some(r=>r.id===o))&&s.session.refresh()});this.watch=e;let t=-1;this.offStatus=this.client.onStatus(i=>{let o=i.pending<t;if(t=i.pending,o&&this.watch===e)for(let s of this.slots.values())s.leases>0&&s.session.refresh()}),this.offWatch=e.subscribe((i,o)=>{if(this.watch===e){if(i==="active")for(let s of this.slots.values())s.leases>0&&s.session.refresh();else if(o)for(let s of this.slots.values())s.leases>0&&s.session.observerProblem(o.toProblem())}}),e.ready.catch(i=>{if(this.watch===e)for(let o of this.slots.values())o.leases>0&&o.session.observerProblem(Ll(i))})}stopWatch(){this.offWatch?.(),this.offWatch=null,this.offStatus?.(),this.offStatus=null;let e=this.watch;this.watch=null,e?.()}dispose(){this.closed=!0,this.stopWatch();for(let e of this.slots.values())e.session.suspend()}}});function xO(n,e){let t=li(n.get("properties")),i=[],o=Array.isArray(e.get("select"))?e.get("select"):[];for(let s of o){let r=li(s),a=Jt(s),c=r?Jt(r.get("name")):a?.slice(a.lastIndexOf(".")+1);if(!c)continue;let l=li(t?.get(r||!a?c:a))??li(t?.get(c)),p={key:c},d=Jt(r?.get("label"))??Jt(l?.get("label")),u=Jt(r?.get("description"))??Jt(l?.get("description")),f=Jt(l?.get("format")),h=l?.get("hidden");d!==void 0&&(p.label=d),u!==void 0&&(p.description=u),f!==void 0&&(p.format=f),typeof h=="boolean"&&(p.hidden=h),i.push(p)}return i}async function L_(n,e,t){let i=[],o=[],s=e?e.replace(/\/?$/,"/"):"",r,a=!0;do{let c;try{c=await n.queryContract(Ul,{...r?{cursor:r}:{},...t?{signal:t}:{}})}catch(l){if(oe(l,"not_found")&&l.reason==="data_contract_not_found")return{sources:i,diagnostics:o,complete:!0};throw l}a&&=c.page.complete,c.records.forEach((l,p)=>{let d=c.page.records[p];if(!d.path.startsWith(s))return;let u=l.implementations[0],f=u?.issues.find(w=>w.severity==="error");if(!u||f){o.push(q_("invalid_view",f?.message??"View record does not implement mdbase.view.",d.path));return}let h=u.fields,m=[],b=new Set;for(let w of Array.isArray(h.get("views"))?h.get("views"):[]){let g=li(w),y=Jt(g?.get("id")),v=Jt(g?.get("name"));if(!g||!y||!v)continue;if(b.has(y)){o.push(q_("invalid_view","View record contains duplicate named-view IDs.",d.path));return}b.add(y);let _={id:y,name:v,properties:xO(h,g)};g.has("presentation")&&(_.presentation=g.get("presentation")),m.push(_)}i.push({record:d.id,id:Jt(h.get("id"))??d.path,name:Jt(h.get("name"))??d.path,source:{path:d.path,format:Ul.id,revision:d.revision,writable:!0},views:m})}),r=c.page.cursor}while(r);return i.sort((c,l)=>c.source.path<l.source.path?-1:c.source.path>l.source.path?1:0),{sources:i,diagnostics:o,complete:a}}async function j_(n,e,t,i={}){let o=i.signal,s=await n.getContract(e,Ul,o).catch(v=>T_(v,M_(e))),r=s.fields,a=s.path,c=Array.isArray(r.get("views"))?r.get("views").map(li):[],l=c.map(v=>Jt(v?.get("id")));if(new Set(l).size!==l.length)throw A("invalid_request","View record contains duplicate named-view IDs.","invalid_view");let p=c[l.indexOf(t)];if(!p)throw A("not_found",`named view '${t}' was not found`,"view_not_found");let d=li(r.get("query"))??new Map,u=new Map,f=p.get("types")??d.get("types");f!==void 0&&u.set("types",f);let h=[Jt(d.get("where")),Jt(p.get("where"))].filter(v=>!!v);h.length&&u.set("where",h.length===2?`(${h[0]}) && (${h[1]})`:h[0]);let m=new Map(li(d.get("projections")));for(let[v,_]of li(p.get("projections"))??[]){let k=m.get(v);if(k!==void 0&&dd(k)!==dd(_))throw A("invalid_request",`Projection '${v}' has conflicting definitions.`,"invalid_view");m.set(v,_)}m.size&&u.set("projections",m);for(let v of["select","order_by","group_by","summaries","limit","offset","include_body","frontmatter_mode"])p.has(v)&&u.set(v,p.get(v));r.has("summary_functions")&&u.set("summary_functions",r.get("summary_functions")),i.limit!==void 0&&u.set("limit",i.limit),i.offset!==void 0&&u.set("offset",i.offset),i.timezone!==void 0&&u.set("timezone",i.timezone);let b=li(li(p.get("context")??d.get("context"))?.get("this")),w=Jt(b?.get("on_missing"))??"view",g=i.context;if(g===void 0&&w==="error")throw A("invalid_request","This named view requires an invocation context.","context_required");if(g===void 0&&w==="view"&&(g={path:a}),g!==void 0){let v=Array.isArray(b?.get("types"))?b.get("types").filter(k=>typeof k=="string"):[],_=typeof g=="string"?void 0:g.path;if(v.length||_===void 0){let k=await n.get(g,void 0,o);if(_=k.path,v.length&&!k.types.some(S=>v.some(x=>x.toLowerCase()===S.toLowerCase())))throw A("invalid_request","The invocation context does not match an allowed context type.","context_type_mismatch")}u.set("context",new Map([["this",new Map([["path",_]])]]))}return{...await n.query(u,i.include,o),view:{path:a,view:t}}}async function N_(n,e,t){let i=await n.getContract(e,Ul,t).catch(s=>T_(s,M_(e))),o=await n.get(i.id,{document:!0},t);if(o.revision!==i.revision||typeof o.document!="string")throw A("unavailable","saved view source changed while it was read","view_source_changed");return{path:o.path,format:Ul.id,revision:o.revision,document:o.document,record:o.id}}function dd(n){return n instanceof Map?`{${[...n].map(([e,t])=>[JSON.stringify(String(e)),dd(t)]).sort((e,t)=>e[0]<t[0]?-1:1).map(([e,t])=>`${e}:${t}`).join(",")}}`:Array.isArray(n)?`[${n.map(dd).join(",")}]`:typeof n=="bigint"?`${n}n`:JSON.stringify(n instanceof Uint8Array?[...n]:n)}var Ul,li,Jt,q_,T_,M_,U_=I(()=>{"use strict";ie();Ul=Object.freeze({id:"mdbase.view",version:"1.0.0"}),li=n=>n instanceof Map?n:void 0,Jt=n=>typeof n=="string"?n:void 0,q_=(n,e,t)=>({code:n,severity:"warning",message:e,details:new Map([["path",t]])}),T_=(n,e)=>{throw oe(n,"not_found")?A("not_found",`saved view source '${e}' was not found`,"view_not_found"):n},M_=n=>typeof n=="string"?n:n.path});function ir(n){return A("invalid_request",n,"view_source_witness_required")}function ty(n){try{T.enc(n)}catch{throw ir("view source writes need their original record and mutation UUIDs")}}function D_(n){if(!n||typeof n.path!="string"||n.path.length===0||typeof n.document!="string")throw ir("view source update needs the complete RecordView read with document included");ty(n.id);try{H.enc(n.revision)}catch{throw ir("view source needs its original source revision")}if(si(n.document)!==n.revision)throw ir("view source document differs from its captured revision")}function $_(n){return ty(n?.mutationId),{...n,include:{...n.include,document:!0}}}async function ud(n,e,t={}){let i=typeof e=="string"?e:"id"in e?e.id:void 0,o=i===void 0?void 0:T.dec(T.enc(i)),s=await n.get(e,{...t.include,document:!0},t.signal);if(D_(s),o!==void 0&&s.id!==o)throw ir("view source readback belongs to another record");return s}function fd(n,e,t){if(ty(e?.id),typeof e.path!="string"||e.path.length===0||typeof e.document!="string")throw ir("view source create needs the exact path and complete source document");let i={id:e.id,path:e.path,document:e.document};return e.type!==void 0&&(i.type=e.type),n.create(i,$_(t))}function hd(n,e,t,i){D_(e);let o=e.state;if(!o||o.state!=="pending"&&o.state!=="confirmed"||!Number.isSafeInteger(o.confirmedSeq)||o.confirmedSeq<0)throw ir("view source update needs actual native record state, not inferred confirmation");if(o.hold!==void 0||o.unresolved!==void 0&&o.unresolved!==0)throw ir("resolve the original view source hold or unresolved mutation before replacing its document");if(typeof t!="string")throw ir("view source update needs complete source text");return n.replaceDocument(e,t,{...$_(i),ifRevision:e.revision})}var ny=I(()=>{"use strict";ge();ie();Oi()});var z_,B_,F_=I(()=>{"use strict";ge();At();z_=N("contract-record-v1",[[0,"version",B],[1,"id",T],[2,"path",E],[3,"revision",H],[4,"type",E],[5,"fields",_n],[6,"contractDigest",H],[7,"implementationDigest",H]]),B_=N("contract-write-plan-v1",[[0,"version",B],[1,"type",E],[2,"patch",_n],[3,"unset",F(E)],[4,"base",F(Np)],[5,"contractDigest",H],[6,"implementationDigest",H],[7,"id",T,"opt"],[8,"path",E,"opt"],[9,"revision",H,"opt"]])});var V_,K_=I(()=>{"use strict";ge();At();V_=N("contract-query-v1",[[0,"version",B],[1,"page",_l],[2,"records",F(N("contract-query-record",[[0,"id",T],[1,"implementations",F(N("contract-projection",[[0,"typeName",E],[1,"fields",_n],[2,"issues",F(Zi)]]))]]))],[3,"contractDigest",H]])});var md,W_=I(()=>{"use strict";md=class{byId=new Map;order=[];cached=[];complete=!1;asOf=0;stale=!0;metadata;get records(){return this.cached??=this.order.map(e=>this.byId.get(e)).filter(Boolean)}get(e){return this.byId.get(e)}markStale(){this.stale=!0,this.metadata=void 0}apply(e){switch(e.kind){case"reset":this.stale=!0;break;case"snapshot":{this.byId.clear(),this.order=[];for(let t of e.added??[])this.byId.has(t.id)||this.order.push(t.id),this.byId.set(t.id,t);e.order&&this.reorder(e.order),this.stale=!1;break}case"diff":{if(e.removed?.length){let t=new Set(e.removed);for(let i of t)this.byId.delete(i);this.order=this.order.filter(i=>!t.has(i))}for(let t of e.changed??[])this.byId.has(t.id)||this.order.push(t.id),this.byId.set(t.id,t);for(let t of e.added??[])this.byId.has(t.id)||this.order.push(t.id),this.byId.set(t.id,t);e.order&&this.reorder(e.order);break}}this.metadata=e.kind==="reset"||this.stale?void 0:e.metadata,this.complete=e.complete,this.asOf=e.asOf,this.cached=null}reorder(e){let t=new Set,i=[];for(let o of e)this.byId.has(o)&&!t.has(o)&&(t.add(o),i.push(o));for(let o of this.order)t.has(o)||i.push(o);this.order=i}}});var H_,CO,ks,iy=I(()=>{"use strict";ge();ie();Oi();At();H_=4096,CO=100,ks=class{constructor(e){this.client=e;e.onSession(async t=>{this.wire(t);for(let[i,o]of this.joined)await t.request("presence_join",this.params(i,o.state));for(let i of this.watchers.keys())await t.request("subscribe_presence",new Map([[0,T.enc(i)]]))})}client;joined=new Map;watchers=new Map;wired=new WeakSet;wire(e){this.wired.has(e)||(this.wired.add(e),e.onPush("presence",t=>{try{let i=zp.dec(t);for(let o of this.watchers.get(i.record)??[])o(i.peers)}catch{}}))}params(e,t){return new Map([[0,T.enc(e)],[1,t]])}check(e){if(JSON.stringify(e,(i,o)=>typeof o=="bigint"?o.toString():o instanceof Map?[...o]:o).length>H_)throw A("too_large","presence state over 4 KiB",{details:new Map([["limit",H_]])})}async join(e,t){let i=ut(t);this.check(i),this.joined.set(e,{state:i,last:Date.now(),timer:null});let o=await this.client.ready();this.wire(o),await o.request("presence_join",this.params(e,i))}update(e,t){let i=this.joined.get(e);if(!i)throw A("invalid_request","join the record's presence first");if(i.state=ut(t),this.check(i.state),i.timer)return;let o=Math.max(0,i.last+CO-Date.now());i.timer=setTimeout(()=>{i.timer=null,i.last=Date.now(),this.joined.get(e)===i&&this.client.call("presence_update",this.params(e,i.state)).catch(()=>{})},o)}async leave(e){let t=this.joined.get(e);t?.timer&&clearTimeout(t.timer),this.joined.delete(e),await this.client.call("presence_leave",new Map([[0,T.enc(e)]])).catch(()=>{})}subscribe(e,t){let i=this.watchers.get(e),o=!i;return i||this.watchers.set(e,i=new Set),i.add(t),o&&this.client.ready().then(s=>(this.wire(s),s.request("subscribe_presence",new Map([[0,T.enc(e)]])))).catch(()=>{}),()=>{i.delete(t),i.size===0&&this.watchers.delete(e)}}}});function G_(n){try{let e=ue(n);if(!(e instanceof Map))return null;let t=e.get(2),i=e.get(3);return!(t instanceof Uint8Array)||typeof i!="number"?null:{device:ri(t),seq:i}}catch{return null}}function OO(n){return n.replace(/-/g,"").toLowerCase()}function Y_(n,e,t){if(!t)return;let i=G_(e);if(!i||OO(t)!==i.device)return;let o=ry.get(n);o||ry.set(n,o=new Map);let s=o.get(i.device);if(!s){if(o.size>=IO)return;o.set(i.device,s=new Map)}let r="self",a=s.get(r);(!a||a[0]<i.seq)&&s.set(r,[i.seq,e])}function J_(n,e){let t=e?G_(e)?.device:void 0,i=[];for(let[o,s]of ry.get(n)??[])if(o!==t)for(let[,r]of s.values())i.push(r);return i}var IO,ry,X_=I(()=>{"use strict";Je();IO=64,ry=new Map});function yd(n){return Z_.add(n),n}function oy(n){return Z_.has(n)}var Z_,gd=I(()=>{"use strict";Z_=new WeakSet});function pn(n,e){return e===void 0?{}:{[n]:e}}function sy(n){let e=vo(n);return{id:Ke(e.id),version:Ke(e.version),digest:Ke(e.digest),installedBy:Ke(e.installed_by),resources:(Array.isArray(e.resources)?e.resources:[]).map(t=>{let i=vo(t);return{source:Ke(i.source),target:Ke(i.target),kind:Ke(i.kind),mode:Ke(i.mode),digest:Ke(i.digest),...pn("originDigest",Ke(i.origin_digest))}})}}function TO(n){let e=vo(n),t=e.upgrade_baseline===void 0?void 0:vo(e.upgrade_baseline),i=t&&(typeof t.version=="number"?t.version:typeof t.version=="string"?Number(t.version):void 0);return{source:Ke(e.source)??"",target:Ke(e.target),kind:Ke(e.kind),mode:Ke(e.mode),action:Ke(e.action),...pn("digest",Ke(e.digest)),...pn("currentDigest",Ke(e.current_digest)),...pn("installedDigest",Ke(e.installed_digest)),...pn("adoptedFromDigest",Ke(e.adopted_from_digest)),...pn("upgradeBaseline",t&&{digest:Ke(t.digest),...pn("version",i)}),...pn("reason",Ke(e.reason))}}function MO(n,e){return e?`${n.target} already exists with different content. Review it, then adopt it to let this pack manage it.`:n.reason?`${n.target} can't be changed: ${n.reason}.`:`${n.target} can't be changed by this pack.`}function eA(n,e,t){let i=vo(bs(n)),o=(Array.isArray(i.resources)?i.resources:[]).map(TO),s=Object.fromEntries(qO.map(f=>[f,o.filter(h=>h.action===f).map(h=>h.target)])),r={},a=o.filter(f=>f.action==="conflict").map(f=>{let h=f.mode==="managed"&&f.currentDigest!==void 0&&f.installedDigest===void 0;return h&&(r[f.target]=f.currentDigest),{target:f.target,kind:f.kind,...pn("reason",f.reason),message:MO(f,h),...pn("adoptable",h?{digest:f.currentDigest}:void 0)}}),c=Ke(i.status),l=Array.isArray(i.issues)?i.issues.map(vo):[],p=sy(i.desired),d;if(i.definitions_manage!==!0)d={code:"forbidden",message:"This app doesn't have permission to change the collection's types."};else if(c==="downgrade"){let f=i.current===void 0?"a newer version":`version ${sy(i.current).version}`;d={code:"type_pack_downgrade",message:`${p.id} ${f} is installed; ${p.version} is older.`}}else if(a.length){let f=a.length;d={code:"type_pack_conflict",message:Object.keys(r).length===f?`${f===1?"A type already exists":`${f} types already exist`} with different content. Review and adopt ${f===1?"it":"them"} to continue.`:a.map(h=>h.message).join(" ")}}else(l.length||i.applicable!==!0)&&(d={code:"invalid_type_pack",message:`This pack would leave the collection invalid: ${Ke(l[0]?.message)??"the staged types do not validate"}.`});let u=vo(i.lock);return Object.freeze({status:c,canApply:i.applicable===!0&&d===void 0,digest:Ke(i.assessment_digest),summary:s,conflicts:a,adoptable:r,resources:o,...pn("current",i.current===void 0?void 0:sy(i.current)),desired:p,lock:{target:Ke(u.target),action:Ke(u.action),digest:Ke(u.digest)},...pn("refusal",d),pack:e,options:t})}function Q_(n){return n&&Object.keys(n).length?ut(n):void 0}function LO(n){return n==null?!1:Array.isArray(n)?n.length>0:typeof n=="object"&&Object.keys(n).length>0}async function tA(n,e,t,i){if(LO(t.contractSetups))throw A("invalid_request","Contract setup during type pack install is not supported yet.","type_pack_contract_setups_unsupported");let o=new Map([["manifest",ut(e.manifest)],["resources",e.resources.map(c=>new Map([["source",c.source],["document",c.document]]))]]);e.provides!==void 0&&o.set("provides",ut(e.provides));let s=new Map([[0,1],[1,o],[2,t.installedBy]]),r=Q_(t.adopt);r!==void 0&&s.set(3,r),t.preserveSeedTargets?.length&&s.set(4,[...t.preserveSeedTargets]);let a=Q_(t.targetOverrides);a!==void 0&&s.set(5,a),t.allowDowngrade&&s.set(6,!0),i!==void 0&&s.set(7,H.enc(i));try{let c=await n.call("plan_type_pack_v1",s,{codec:EO,retry:!0,...t.signal?{signal:t.signal}:{}});if(c.version!==1)throw A("upgrade_required","unsupported type pack plan","type_packs_unsupported");return c}catch(c){throw oe(c,"invalid_request")&&c.reason==="unknown_method"?A("upgrade_required","This collection's replica can't install type packs yet.","type_packs_unsupported"):c}}async function nA(n,e,t){return eA((await tA(n,e,t)).assessment,e,t)}async function iA(n,e,t={}){if(e.refusal)throw A(jO[e.refusal.code],e.refusal.message,e.refusal.code);let i=t.signal?{...e.options,signal:t.signal}:e.options,o=await tA(n,e.pack,i,e.digest),s=eA(o.assessment,e.pack,e.options),r=o.writes??[];if(!r.length)return{outcome:"already_current",receipt:s.desired};let a=r.map(p=>p.doc===void 0?{kind:"resource_delete",path:p.path,...pn("baseRevision",p.baseRevision)}:{kind:"resource_put",path:p.path,doc:p.doc,...pn("baseRevision",p.baseRevision),...p.mustNotExist?{mustNotExist:!0}:{}}),c=(await n.submit(a,{...t,allowPartial:!1}))[0],l=c.receipt;if(l.state==="rejected"||l.state==="unknown")throw new pe(l.problem??(l.state==="unknown"?{code:"outcome_unknown",recovery:"resolve_outcome",message:"The type pack install outcome is unknown."}:{code:"internal",recovery:"contact_support",message:"The type pack install was rejected."}),{mutationId:l.mutation});if(t.dryRun)return{outcome:"preview",receipt:s.desired,write:c};if(l.status==="conflicted"||(l.conflicts?.length??0)>0)throw new pe({code:"conflict",recovery:"resolve_conflict",reason:"type_pack_conflict",message:"The type pack install has a conflict. Resolve it before continuing."},{mutationId:l.mutation});return{outcome:l.state==="confirmed"?"applied":"pending",receipt:s.desired,write:c}}var RO,EO,qO,vo,Ke,jO,rA=I(()=>{"use strict";ge();ie();Oi();RO=N("type-pack-write-v1",[[0,"path",E],[1,"doc",E,"opt"],[2,"baseRevision",H,"opt"],[3,"mustNotExist",Oe]]),EO=N("type-pack-plan-v1",[[0,"version",B],[1,"assessment",at],[2,"writes",F(RO),"opt"]]),qO=["create","update","delete","adopt","unchanged","preserve","conflict"],vo=n=>n&&typeof n=="object"&&!Array.isArray(n)?n:{},Ke=n=>typeof n=="string"?n:void 0;jO={forbidden:"forbidden",type_pack_conflict:"conflict",type_pack_downgrade:"conflict",invalid_type_pack:"invalid_request",type_pack_contract_setups_unsupported:"invalid_request"}});function uA(n){return/^\d{6}$/.test(n)?`${n.slice(0,3)} ${n.slice(3)}`:n}var ay,oA,NO,sA,lA,aA,cA,pA,dA,ly,UO,fA,cy=I(()=>{"use strict";ge();At();ay=["desktop","mobile","app_runtime","cli","hosted","escrow","recovery"],oA=Pe("device-kind",ay),NO={name:"device-kind",enc:n=>oA.enc(n),dec:n=>{try{return oA.dec(n)}catch{return"unknown"}}},sA=N("pending-device",[[0,"device",T],[1,"account",T],[2,"kind",NO],[3,"sas",E,"opt"],[4,"exchangeReady",Oe]]),lA={...sA,enc:n=>sA.enc({...n,sas:void 0})},aA=N("approval-readiness",[[0,"device",T],[1,"sas",E,"opt"],[2,"exchangeReady",Oe]]),cA={...aA,enc:n=>aA.enc({...n,sas:void 0})},pA=N("recovery-key-status",[[0,"configured",Oe],[1,"device",T,"opt"]]),dA=N("recovery-key-created",[[0,"phrase",E],[1,"device",T]]);ly=["idle","reading_ahead","pending_grant","keyed","refused"],UO=Pe("account-key-state",ly),fA=N("account-key-status",[[0,"state",UO],[1,"problem",Mn,"opt"]])});function wd(){let n=new Map;return{list:async()=>[...n.values()],put:async e=>{n.set(e.mutationId,e)},remove:async e=>{n.delete(e)}}}var py,Dl,bd,dy=I(()=>{"use strict";ie();py=n=>[...new Set(n.flatMap(e=>{let t=e,i=t.id??t.record;return typeof i=="string"?[i]:[]}))],Dl=(n,e,t,i,o=Date.now())=>i?{mutationId:n,records:e,createdAt:o,state:t,problem:i}:{mutationId:n,records:e,createdAt:o,state:t},bd=class{constructor(e,t){this.store=e;this.native=t}store;native;entries=new Map;listeners=new Set;snapshot=null;io=Promise.resolve();deferred=!1;restored=!1;checking=!1;getSnapshot=()=>{let e=[...this.entries.values()];return this.snapshot??={pending:e.filter(t=>t.state==="pending"),rejected:e.filter(t=>t.state==="rejected"),saveState:this.stateOf(),restored:this.restored}};subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});stateOf(e){let t=!1;for(let i of this.entries.values())if(!(e!==void 0&&!i.records.includes(e))){if(i.state==="rejected")return"rejected";t=!0}return t?this.deferred?"saved_on_device":"saving":"saved"}async acknowledge(e){this.entries.get(e)?.state==="rejected"&&await this.drop(e)}get pendingCount(){return this.getSnapshot().pending.length}setDeferred(e){e!==this.deferred&&(this.deferred=e,this.changed())}begin(e,t){return Promise.all(e.map((i,o)=>this.set(Dl(i,py(e.length===1?t:[t[o]]),"pending"))))}observe(e){let t=this.entries.get(e.mutation),i=t?.records??(e.records??[]).map(o=>o.id);e.state==="confirmed"?t&&this.drop(e.mutation):e.state==="pending"?t||this.set(Dl(e.mutation,i,"pending")):t?.state!=="rejected"&&this.set(Dl(e.mutation,i,"rejected",e.problem??(e.state==="unknown"?{code:"outcome_unknown",recovery:"resolve_outcome",message:"mutation unknown"}:{code:"internal",recovery:"contact_support",message:"mutation rejected"}),t?.createdAt))}async restore(){try{let[e,t]=await Promise.all([this.store.list().catch(()=>[]),this.native.pendingWrites().catch(()=>null)]);for(let o of t??[])this.entries.has(o.receipt.mutation)||this.entries.set(o.receipt.mutation,Dl(o.receipt.mutation,py(o.ops),"pending"));for(let o of e)(o.state==="rejected"||!this.entries.has(o.mutationId))&&this.entries.set(o.mutationId,o);this.changed();let i=new Set(t?.map(o=>o.receipt.mutation));t&&await Promise.all(e.filter(o=>o.state==="pending"&&!i.has(o.mutationId)).map(o=>this.settle(o.mutationId)))}finally{this.restored=!0,this.changed()}}async recheck(){if(!this.checking){this.checking=!0;try{for(let e of this.getSnapshot().pending)await this.settle(e.mutationId)}finally{this.checking=!1}}}async adopt(){let e=await this.native.pendingWrites().catch(()=>null),t=!1;for(let i of e??[])this.entries.has(i.receipt.mutation)||(this.entries.set(i.receipt.mutation,Dl(i.receipt.mutation,py(i.ops),"pending")),t=!0);t&&this.changed()}settleAll(e){return Promise.all(e.map(t=>this.settle(t)))}async settle(e){try{this.observe(await this.native.receipt(e))}catch(t){oe(t,"not_found")&&this.entries.get(e)?.state==="pending"&&await this.drop(e)}}set(e){return this.entries.set(e.mutationId,e),this.changed(),this.persist(()=>this.entries.get(e.mutationId)===e?this.store.put(e):void 0)}drop(e){return this.entries.delete(e),this.changed(),this.persist(()=>this.entries.has(e)?void 0:this.store.remove(e))}persist(e){return this.io=this.io.then(e).catch(()=>{})}changed(){this.snapshot=null;for(let e of[...this.listeners])try{e()}catch{}}}});var Pd={};ls(Pd,{LiveQuery:()=>Ss,MdbaseClient:()=>Ei,Write:()=>_o,connect:()=>hy});function Ad(n){return n instanceof yt?new yt(n.value):n instanceof Date?new Date(n):Array.isArray(n)?n.map(e=>Ad(e)):n instanceof Map?new Map([...n].map(([e,t])=>[e,Ad(t)])):n!==null&&typeof n=="object"?Object.fromEntries(Object.entries(n).map(([e,t])=>[e,Ad(t)])):n}function vd(n){return typeof n=="string"?T.enc(n):"id"in n&&typeof n.id=="string"?T.enc(n.id):n.path}function _d(n){if(typeof n=="string")return n;if("id"in n)return n.id;throw A("invalid_request","this operation needs a record ID, not a path; get() the record first")}function kd(n){return n?ds.enc(n):void 0}function hA(n){if(!(n instanceof Uint8Array)||n.length!==32)throw A("invalid_request","the account secret is 32 bytes","account_secret_length")}function Be(n){let e=new Map;for(let[t,i]of n)i!==void 0&&e.set(t,i);return e}function uy(n,e){let t=n.grant;return!e||t.grant===e.grant&&t.role===e.role&&Ir(t.capabilities,e.capabilities)&&Ir(t.fileFolders??null,e.fileFolders??null)?n:{...n,grant:e}}async function mA(n,e){if(typeof e!="string"||!e)throw A("invalid_request","intent must be a non-empty string");let t=new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(`mdbase-intent/1\0${n}\0${e}`))),i=o=>{let s=t.slice(o,o+16);return s[6]=128|s[6]&15,s[8]=128|s[8]&63,yl(s)};return[i(0),i(16)]}function fy(n){return n.state==="pending"||n.state==="confirmed"&&n.published==="publishing"}function Sd(n,e){let t=e.published;return t==="published"||t==="not_published"||n.published===void 0&&t!==void 0?{...n,published:t}:n}function hy(n){return Ei.connect(n)}var _o,Ss,DO,Ei,Ps=I(()=>{"use strict";Je();Fm();l_();ge();h_();ie();ql();Xm();E_();U_();ny();F_();K_();W_();iy();X_();Rl();gd();rA();Oi();cy();At();dy();At();_o=class{constructor(e){this.receipt=e;this.confirmed=new Promise((t,i)=>this.settle={resolve:t,reject:i}),this.published=new Promise((t,i)=>this.settlePublished={resolve:t,reject:i}),this.confirmed.catch(()=>{}),this.published.catch(()=>{}),this.update(e)}receipt;listeners=new Set;settle;settlePublished;confirmed;published;get mutationId(){return this.receipt.mutation}get records(){return this.receipt.records??[]}get state(){return this.receipt.state}onReceipt(e){return this.listeners.add(e),()=>this.listeners.delete(e)}update(e){let t=e.records||!this.receipt.records?e:{...e,records:this.receipt.records};t=Sd(t,this.receipt),this.receipt=t;for(let i of[...this.listeners])i(this.receipt);if(e.state==="rejected"||e.state==="unknown"){let i=new pe(e.problem??{code:e.state==="unknown"?"outcome_unknown":"internal",recovery:e.state==="unknown"?"resolve_outcome":"contact_support",message:`mutation ${e.state}`},{mutationId:e.mutation});this.settle.reject(i),this.settlePublished.reject(i)}else{let i=this.receipt.published;(i==="published"||i==="not_published"||e.state==="confirmed"&&i===void 0)&&this.settlePublished.resolve(this.receipt),e.state==="confirmed"&&this.settle.resolve(this.receipt)}}},Ss=class{constructor(e,t,i){this.client=e;this.query=t;this.include=i;this.ready=new Promise((o,s)=>(this.readyResolve=o,this.readyReject=s)),this.ready.catch(()=>{})}client;query;include;result=new md;listeners=new Set;subId=null;closedFlag=!1;ready;readyResolve;readyReject;error=null;get records(){return this.result.records}get complete(){return this.result.complete}get asOf(){return this.result.asOf}get stale(){return this.result.stale}get metadata(){return this.result.metadata}get closed(){return this.closedFlag}get(e){return this.result.get(e)}subscribe(e){return this.listeners.add(e),e(this,null),()=>this.listeners.delete(e)}async setQuery(e,t=this.include){this.query=e,this.include=t,this.result.markStale(),this.emit(null),await this.client._resubscribeLive(this)}close(){this.closedFlag||(this.closedFlag=!0,this.result.markStale(),this.client._closeLive(this),this.listeners.clear())}_params(){return Be([[0,ut(this.query)],[1,kd(this.include)]])}_setSub(e){this.subId=e}get _sub(){return this.subId}_apply(e){this.closedFlag||(this.result.apply(e),e.kind==="snapshot"&&(this.error=null,this.readyResolve()),this.emit(e))}_markStale(){this.result.markStale(),this.emit(null)}_fail(e,t){this.error=e,t&&this.readyReject(e),this.emit(null)}emit(e){for(let t of[...this.listeners])t(this,e)}},DO=new Set(["get","query","query_contract_v1","subscribe","changes","backlinks","list_resources","get_resource","describe","describe_typing","list_files","get_file","read_file","list_holds","list_conflicts","validate","new_type_file","get_contract_v1","map_contract_write_v1","plan_type_pack_v1"]),Ei=class n{constructor(e,t){this.opts=e;this.session=t,this.collectionId=t.hello.collection,this.lastStatus=t.hello.status,this.currentHello=uy(t.hello,t.hello.status.grant),this.fenceReads=oy(e.connector),this.readFloor=t.hello.status.confirmedThrough,this.files=new _s(this),this.presence=new ks(this),this.writeLedger=new bd(e.ledger??wd(),{receipt:i=>this.receipt(i),pendingWrites:()=>this.pendingWrites()}),this.attach(t),t.request("subscribe_status",null).catch(()=>{}),e.ledger&&this.startLedger()}opts;session;linkState="open";linkError=null;linkListeners=new Set;lastStatus;currentHello;statusListeners=new Set;lives=new Set;livesBySub=new Map;subscribing=0;early=new Map;writes=new Map;unclaimed=new Map;reconnectWaiters=[];restorers=[];fenceHandler=null;fenceReads;readFloor;readFencedAt=null;readFenceWaiters=[];closing=!1;collectionId;holdsWatch={listeners:new Set,last:null};conflictsWatch={listeners:new Set,last:null};files;presence;writeLedger;ledgerStarted=!1;transportDeferred=!1;get ledger(){return this.startLedger(),this.writeLedger}startLedger(){if(this.ledgerStarted)return;this.ledgerStarted=!0;let e=-1;this.onStatus(t=>{let i=e>t.pending;e=t.pending,this.updateDeferred(),i?this.writeLedger.recheck():t.pending>this.writeLedger.pendingCount&&this.writeLedger.adopt()}),this.onLink(()=>this.updateDeferred()),this.writeLedger.restore()}updateDeferred(){this.writeLedger.setDeferred(this.transportDeferred||this.linkState!=="open"||this.lastStatus.connection==="offline")}setTransportDeferred(e){this.transportDeferred=e,this.ledgerStarted&&this.updateDeferred()}static async connect(e){let t=oy(e.connector);t&&(e={...e});let i=e.reconnect&&e.reconnect.minDelayMs||1e3,o=e.signal,s,r,a,c=()=>e.signal?.aborted||!a?A("cancelled","connect aborted"):a;try{for(;;)try{let l=o,p=await new Promise((d,u)=>{let f=()=>u(c());if(l?.aborted){f();return}l?.addEventListener("abort",f,{once:!0}),go.open(e.connector,n.helloParams(e),l).then(h=>{if(l?.removeEventListener("abort",f),l?.aborted){try{h.close()}catch{}u(c())}else d(h)},h=>{l?.removeEventListener("abort",f),u(h)})});if(o?.aborted)throw p.close(),c();return new n(e,p)}catch(l){if(o?.aborted)throw c();let p=t&&oe(l,"unavailable")&&l.reason==="grant_inactive"&&l.details instanceof Map&&l.details.get("relayCloseCode")===4e3;if(!(p||e.waitForDevice&&oe(l,"unavailable")&&l.reason==="no_device_online"))throw l;p&&!s&&(s=new AbortController,a=A("unavailable","The approved grant did not become live within 30 seconds",{reason:"grant_activation_timeout",details:l.details}),o=e.signal?AbortSignal.any([e.signal,s.signal]):s.signal,r=setTimeout(()=>s.abort(),3e4)),e.onWaiting?.(l),await new Promise((d,u)=>{let f=()=>{clearTimeout(m),o?.removeEventListener("abort",h)},h=()=>{f(),u(c())},m=setTimeout(()=>{f(),d()},p?Math.min(1e3,i):i);o?.aborted?h():o?.addEventListener("abort",h,{once:!0})}),i=Math.min(15e3,i*2)}}finally{clearTimeout(r)}}static helloParams(e){let t=e.timezone??Intl.DateTimeFormat().resolvedOptions().timeZone;return{versions:od,clientName:e.app.name,clientVersion:e.app.version,features:[...new Set([...e.features??[],"declared-collection-setup-v1"])],...t?{timezone:t}:{}}}get hello(){return this.currentSession(),this.currentHello}get collection(){return this.collectionId}get link(){return this.linkState}get linkProblem(){return this.linkError}onLink(e){return this.linkListeners.add(e),()=>this.linkListeners.delete(e)}close(){this.closing=!0,this.recordSessions.dispose(),this.session?.close(),this.setLink("closed"),this.wakeReadFence()}get readFenced(){return this.readFencedAt!==null}async readFence(e){if(this.fenceReads){for(;this.readFencedAt!==null;){if(this.linkState==="closed")throw this.linkError??A("unavailable","client closed");if(e?.aborted)throw A("cancelled","aborted while the replica catches up");await new Promise(t=>{let i=()=>{e?.removeEventListener("abort",i);let o=this.readFenceWaiters.indexOf(i);o>=0&&this.readFenceWaiters.splice(o,1),t()};this.readFenceWaiters.push(i),e?.addEventListener("abort",i,{once:!0})})}if(this.linkState==="closed")throw this.linkError??A("unavailable","client closed");if(e?.aborted)throw A("cancelled","aborted while the replica catches up")}}async readyForRead(e,t=!1){if(!this.fenceReads)return t?this.currentSession():this.ready(e);for(;;){let i=t?this.currentSession():await this.ready(e);if(await this.readFence(e),i===this.session&&!i.closed&&this.readFencedAt===null)return i;t&&this.currentSession()}}wakeReadFence(){for(let e of this.readFenceWaiters.splice(0))e()}noteReplica(e){if(!this.fenceReads)return;let t=e.hello.status.confirmedThrough<this.readFloor;this.readFencedAt=t?this.readFloor:null,t||this.wakeReadFence()}noteReceipt(e){this.ledgerStarted&&this.writeLedger.observe(e),this.fenceReads&&this.readFencedAt===null&&e.state==="confirmed"&&e.seq!==void 0&&(this.readFloor=Math.max(this.readFloor,e.seq))}currentSession(){if(!this.session||this.session.closed)throw this.linkState==="closed"&&this.linkError?this.linkError:A("unavailable","not connected to the replica",{reason:"reconnecting"});return this.session}async ready(e){for(;;){if(this.linkState==="closed")throw this.linkError??A("unavailable","client closed");if(this.session&&!this.session.closed)return this.session;if(e?.aborted)throw A("cancelled","aborted while reconnecting");await new Promise(t=>{this.reconnectWaiters.push(t),e?.addEventListener("abort",()=>t(),{once:!0})})}}async call(e,t,i={}){let o=i.codec,s=this.fenceReads&&DO.has(e);for(;;){let r=s?await this.readyForRead(i.signal,!i.retry):i.retry?await this.ready(i.signal):this.currentSession();try{let a=await r.request(e,t,{...i.signal?{signal:i.signal}:{},...o?{codec:o}:{}});if(s&&(r!==this.session||r.closed||this.closing)){if(i.retry&&!this.closing)continue;throw A("unavailable","the session changed during the read",{reason:"reconnecting"})}return r===this.session&&!r.closed&&!this.closing&&o===kt&&(e==="receipt"||e==="await")&&this.noteReceipt(a),a}catch(a){let c=oe(a,"unavailable")&&r.closed;if(!(i.retry&&c&&this.opts.reconnect!==!1&&!this.closing))throw a}}}onSession(e){this.restorers.push(e)}relayWitnesses(e){let t=e.hello.headWitness;t&&Y_(this.collectionId,t,e.device);let i=J_(this.collectionId,t);i.length&&e.request("report_witnesses",Be([[0,i]])).catch(()=>{})}get authenticatedDevice(){return this.currentSession().device}get headWitness(){return this.session?.hello.headWitness}attach(e){this.relayWitnesses(e),e.onPush("query_update",t=>{if(this.fenceReads&&this.session!==e)return;let i;try{i=jp.dec(t)}catch{return}let o=this.livesBySub.get(i.sub);if(o)o._apply(i);else if(this.subscribing>0){let s=this.early.get(i.sub)??[];s.length<64&&this.early.size<64&&(s.push(i),this.early.set(i.sub,s))}}),e.onPush("receipt",t=>{try{let i=kt.dec(t);this.session===e&&this.noteReceipt(i);let o=this.writes.get(i.mutation);if(o)o.update(i),fy(o.receipt)||this.writes.delete(i.mutation);else{let s=this.unclaimed.get(i.mutation);this.unclaimed.set(i.mutation,s?Sd(i,s):i),this.unclaimed.size>256&&this.unclaimed.delete(this.unclaimed.keys().next().value)}}catch{}}),e.onPush("status",t=>{if(this.session===e)try{this.setStatus(er.dec(t))}catch{}}),e.onPush("holds",t=>{try{this.emitHolds(F(vl).dec(t))}catch{}}),e.onPush("conflicts",t=>{try{this.emitConflicts(F(Al).dec(t))}catch{}}),e.onPush("closed",t=>{let i;try{i=new pe(Mn.dec(t))}catch{i=A("unauthenticated","the replica closed the session")}e.closeWith(i)}),e.handle("fence_apply",async t=>{if(!this.fenceHandler)throw A("invalid_request","this client offers no fence",{reason:"unknown_method"});return Om.enc(await this.fenceHandler(Cm.dec(t)))}),e.onClose(t=>this.onSessionClosed(e,t))}onSessionClosed(e,t){if(this.session===e){for(let i of this.lives)i._setSub(null),i._markStale();if(this.livesBySub.clear(),this.early.clear(),this.closing||this.opts.reconnect===!1){this.setLink("closed",t??null);return}if(t&&(t.code==="unauthenticated"||t.code==="upgrade_required"||t.code==="forbidden")){this.setLink("closed",t);return}this.setLink("reconnecting",t??null),this.reconnectLoop()}}async reconnectLoop(){let e=this.opts.reconnect||{},t=e.minDelayMs??250,i=e.maxDelayMs??15e3,o=t;for(;!this.closing;)try{let s=await go.open(this.opts.connector,n.helloParams(this.opts));if(this.closing){s.close();return}if(s.hello.collection!==this.collectionId)throw s.close(),A("invalid_request","reconnected to a different collection");this.session=s,this.currentHello=uy(s.hello,s.hello.status.grant),this.attach(s),this.noteReplica(s),this.setStatus(s.hello.status),this.setLink("open");for(let r of this.reconnectWaiters.splice(0))r();await this.restore(s);return}catch(s){if(oe(s)&&["unauthenticated","forbidden","upgrade_required"].includes(s.code)){this.setLink("closed",s);return}oe(s)&&this.setLink("reconnecting",s);let r=oe(s)?s.retryAfterMs??0:0;await new Promise(a=>setTimeout(a,Math.max(r,o*(.5+Math.random()/2)))),o=Math.min(i,o*2)}}async restore(e){let t=[];t.push(e.request("subscribe_status",null).catch(()=>{})),this.holdsWatch.listeners.size&&t.push(this.refreshHolds(!0).catch(()=>{})),this.conflictsWatch.listeners.size&&t.push(this.refreshConflicts(!0).catch(()=>{}));for(let i of this.lives)t.push(this._resubscribeLive(i,!1,e).catch(()=>{}));for(let[i,o]of this.writes)t.push(this.awaitReceipt(i).then(s=>{o.update(s),fy(o.receipt)||this.writes.delete(i)}).catch(()=>{}));for(let i of this.restorers)t.push(Promise.resolve(i(e)).catch(()=>{}));await Promise.all(t)}setLink(e,t=null){if(this.linkState!=="closed"&&(e==="closed"&&this.fenceReads&&queueMicrotask(()=>this.wakeReadFence()),!(this.linkState===e&&this.linkError?.reason===t?.reason))){if(this.linkState=e,this.linkError=e==="open"?null:t,e==="closed")for(let i of this.reconnectWaiters.splice(0))i();for(let i of[...this.linkListeners])i(e,this.linkError)}}get status(){return this.lastStatus}async getStatus(){if(!this.fenceReads){let e=await this.call("get_status",null,{codec:er,retry:!0});return this.setStatus(e),e}for(;;){let e=await this.ready(),t;try{t=await e.request("get_status",null,{codec:er})}catch(i){if(oe(i,"unavailable")&&e.closed&&!this.closing&&this.opts.reconnect!==!1)continue;throw i}if(e!==this.session||e.closed){if(this.closing)throw A("unavailable","client closed");continue}return this.setStatus(t),t}}async appliedPrefix(e,t){let i=cm.enc({seq:e}),o=await this.call("applied_prefix",i,{codec:pm,retry:!1,...t?{signal:t}:{}});if(o.seq!==e||o.chain!==void 0&&(e===0||o.appliedThrough<e))throw A("invalid_request","applied_prefix: inconsistent historical proof","prefix_response");return o}onStatus(e){return this.statusListeners.add(e),e(this.lastStatus),()=>this.statusListeners.delete(e)}setStatus(e){this.fenceReads&&(this.readFencedAt!==null&&e.confirmedThrough>=this.readFencedAt&&(this.readFencedAt=null,this.wakeReadFence()),this.readFencedAt===null&&(this.readFloor=Math.max(this.readFloor,e.confirmedThrough))),this.lastStatus=e,this.currentHello=uy(this.currentHello,e.grant);for(let t of[...this.statusListeners])t(e)}async describe(e={}){let t=e instanceof AbortSignal?{signal:e}:e,i=await this.call("describe",t.definitions?Be([[0,!0]]):null,{codec:Tm,retry:!0,...t.signal?{signal:t.signal}:{}});if(t.definitions&&(i.types.some(o=>o.definition===void 0)||i.contracts.some(o=>o.schemas===void 0)))throw A("upgrade_required","this replica does not describe definitions","describe_definitions_unsupported");return i}async createType(e,t={}){let{name:i,path:o}=await this.call("new_type_file",Be([[0,e]]),{codec:qm,retry:!0,...t.signal?{signal:t.signal}:{}}),s=await this.resources.put(o,e,{...t,mustNotExist:!0});return{name:i,path:o,write:s}}describeTyping(e,t,i){let o=(s,r)=>Array.isArray(s)&&s.length<=r&&s.every(a=>typeof a=="string"&&a.length>0&&a.length<=1024);return!o(e,Sl)||!o(t,Pl)?Promise.reject(A("invalid_request","describe_typing: at most 64 types and 256 non-empty paths","typing_bounds")):this.call("describe_typing",Be([[0,[...e]],[1,[...t]]]),{codec:Lm,retry:!0,...i?{signal:i}:{}}).then(s=>{if(s.fields.length!==t.length||s.fields.some((r,a)=>r.path!==t[a]))throw A("internal","describe_typing answered for different paths","invalid_typing_response");return s})}get(e,t,i){return this.call("get",Be([[0,vd(e)],[1,kd(t)]]),{codec:Tn,retry:!0,...i?{signal:i}:{}})}async getContract(e,t,i){let o=await this.contractCall("get_contract_v1",Be([[0,1],[1,vd(e)],[2,t.id],[3,t.version],[4,t.type]]),z_,i);if(o.version!==1)throw A("upgrade_required","unsupported contract record","contract_records_unsupported");return{id:o.id,path:o.path,revision:o.revision,fields:o.fields,contract:{id:t.id,version:t.version,digest:o.contractDigest,type:o.type,implementationDigest:o.implementationDigest}}}async contractPlan(e,t,i,o,s,r=!1){let a=await this.contractCall("map_contract_write_v1",Be([[0,1],[1,e.id],[2,e.version],[3,e.type],[4,t===void 0?void 0:vd(t)],[5,i],[6,o?.length?o:void 0],[7,r?!0:void 0]]),B_,s);if(a.version!==1)throw A("upgrade_required","unsupported contract write plan","contract_records_unsupported");return a}contractCall(e,t,i,o){return this.call(e,t,{codec:i,retry:!0,...o?{signal:o}:{}}).catch(s=>{throw oe(s,"invalid_request")&&s.reason==="unknown_method"?A("upgrade_required","this replica does not serve contract-scoped records","contract_records_unsupported"):s})}readMany(e,t,i,o={}){return ad(this,e,t,i,o)}async find(e,t,i){try{return await this.get(e,t,i)}catch(o){if(oe(o,"not_found"))return null;throw o}}query(e,t,i,o={}){return this.call("query",Be([[0,ut(e)],[1,kd(t)],[2,o.contract]]),{codec:_l,retry:!0,...i?{signal:i}:{}})}async queryContract(e,t={}){let i=t.pageSize??128;if(!Number.isInteger(i)||i<1||!e.id||e.id.length>1024||!e.version||e.version.length>128||t.where!==void 0&&(!t.where||t.where.length>4096))throw A("invalid_request","invalid contract page selection");let o=Math.min(i,128),s=await this.call("query_contract_v1",Be([[0,1],[1,e.id],[2,e.version],[3,o],[4,t.cursor],[5,t.where]]),{codec:V_,retry:!0,...t.signal?{signal:t.signal}:{}});if(s.version!==1)throw A("upgrade_required","unsupported contract query result","contract_query_version");if(s.records.length!==s.page.records.length||s.records.some((r,a)=>r.id!==s.page.records[a]?.id))throw A("unavailable","invalid contract query record binding","contract_query_response");return s}backlinks(e,t={}){return this.call("backlinks",Be([[0,vd(e)],[1,kd(t.include)],[2,t.limit],[3,t.cursor]]),{codec:Em,retry:!0,...t.signal?{signal:t.signal}:{}})}resources={get:(e,t)=>this.call("get_resource",Be([[0,e]]),{codec:Bp,retry:!0,...t?{signal:t}:{}}),list:(e={})=>this.call("list_resources",Be([[0,e.folder],[1,e.text],[2,e.cursor],[3,e.limit]]),{codec:Rm,retry:!0,...e.signal?{signal:e.signal}:{}}),put:(e,t,i={})=>i.baseRevision&&i.mustNotExist?Promise.reject(A("invalid_request","baseRevision and mustNotExist are exclusive")):this.one({kind:"resource_put",path:e,doc:t,...i.baseRevision?{baseRevision:i.baseRevision}:{},...i.mustNotExist?{mustNotExist:!0}:{}},i),delete:(e,t={})=>this.one({kind:"resource_delete",path:e,...t.baseRevision?{baseRevision:t.baseRevision}:{}},t)};typePacks=Object.freeze({plan:(e,t)=>nA(this,e,t),apply:(e,t)=>iA(this,e,t)});recordSessions=new pd(this);records=Object.freeze({open:(e,t)=>this.recordSessions.open(e,t)});views={createSource:(e,t)=>fd(this,e,t),updateSource:(e,t,i)=>hd(this,e,t,i),getSourceRecord:(e,t={})=>ud(this,e,t),list:(e,t)=>L_(this,e,t),execute:(e,t,i={})=>j_(this,e,t,i),readSource:(e,t)=>N_(this,e,t)};async pendingWrites(e){let t=[],i;for(;;){let o=await this.call("list_pending",Be([[0,i?T.enc(i):void 0]]),{codec:Mm,retry:!0,...e?{signal:e}:{}});if(t.push(...o.pending),!o.next)return t;i=o.next}}async preflightRename(e,t,i={}){return this.preflight({kind:"rename",id:e.id,from:e.path,to:t,updateRefs:i.updateRefs??!0})}async preflightDelete(e){return this.preflight({kind:"delete",id:_d(e)})}async preflight(e){let[t]=await this.submit([e],{dryRun:!0}),i=t.receipt;if(i.state==="rejected")throw new pe(i.problem);return i.preflight??{rewrites:[],broken:[]}}async*pages(e,t,i,o={}){let s=Ad(e),r=t?{...t}:void 0,a=s.cursor,c=!1,l=0;for(delete s.cursor;;){i?.throwIfAborted();let p;try{p=await this.query(a!==void 0?{...s,cursor:a}:{...s},r,i)}catch(d){if(!o.onReset||c||!oe(d,"invalid_request")||d.recovery!=="fix_request"||d.reason!=="cursor_expired"&&d.reason!=="cursor_stale")throw d;i?.throwIfAborted(),await o.onReset({reason:d.reason,error:d,pagesYielded:l,...i?{signal:i}:{}}),i?.throwIfAborted(),c=!0,a=void 0,l=0;continue}if(i?.throwIfAborted(),yield p,l++,!p.cursor)return;a=p.cursor}}queryPages(e,t,i,o={}){return ld(this,e,t,i,o)}live(e,t){let i=new Ss(this,e,t);return this.lives.add(i),this._resubscribeLive(i,!0),i}async _resubscribeLive(e,t=!1,i){let o=e._sub;o!==null&&(this.livesBySub.delete(o),e._setSub(null),this.call("unsubscribe",Be([[0,o]])).catch(()=>{}));try{let s=await this.readyForRead();if(this.fenceReads&&(e.closed||i&&i!==s))return;this.subscribing++;let r;try{let c=await s.request("subscribe",e._params());r=B.dec(c.get(0)??null)}finally{this.subscribing--}let a=this.early.get(r)??[];if(this.early.delete(r),this.subscribing===0&&this.early.clear(),e.closed||this.fenceReads&&(s!==this.session||s.closed)){s.request("unsubscribe",Be([[0,r]])).catch(()=>{});return}e._setSub(r),this.livesBySub.set(r,e);for(let c of a)e._apply(c)}catch(s){let r=Nn(s,"subscribe");oe(r,"unavailable")&&this.linkState==="reconnecting"||e._fail(r,t)}}_closeLive(e){this.lives.delete(e);let t=e._sub;t!==null&&(this.livesBySub.delete(t),this.call("unsubscribe",Be([[0,t]])).catch(()=>{}))}changes(e,t,i){return this.call("changes",Be([[0,e??null],[1,t]]),{codec:us,retry:!0,...i?{signal:i}:{}})}watchChanges(e,t){let i=e,o=!1,s=0,r="starting",a=null,c=null,l=null,p=null,d=null,u=()=>{},f,h,m=new Promise((C,R)=>{f=C,h=R});m.catch(()=>{});let b=new Set,w=C=>{try{C(r,a)}catch{}},g=(C,R=null)=>{r=C,a=R;for(let O of[...b])w(O)},y=()=>{p?.(),p=null,d?.(),d=null;let C=l;l=null,u(),u=()=>{},C?.abort(),c=null},v=()=>{this.restorers=this.restorers.filter(C=>C!==S),x()},_=C=>{o||(o=!0,s++,y(),v(),h(C),g("failed",C),b.clear())},k=()=>{r!=="closed"&&(o=!0,s++,y(),v(),h(A("cancelled","change watch closed")),g("closed"),b.clear())},S=async C=>{if(o||C.closed||C!==this.session||c===C)return;s++,y(),c=C;let R=s,O=()=>!o&&R===s&&!C.closed&&C===this.session;l=new AbortController;let L=l.signal;try{await this.readFence(L)}catch(G){O()&&_(Nn(G,"changes watch"));return}if(!O())return;let z=!0,Q=[],V=0;u=()=>{Q.length=0,V=0};let te=G=>{if(O()){i=G.cursor;try{t(G)}catch{}}};if(d=C.onClose(G=>{if(o||R!==s)return;s++,y();let K=G??A("unavailable","change watch session closed");h(K),g("stale",K)}),p=C.onPush("changes",G=>{if(O())try{let K=us.dec(G);if(!z){te(K);return}let X=64+K.cursor.length*2+K.changes.reduce((Y,ee)=>Y+384+ee.path.length*2,0);if(Q.length>=16||V+X>1024*1024){_(A("unavailable","change watch startup buffer exceeded"));return}V+=X,Q.push(K)}catch(K){_(Nn(K,"changes push"))}}),g("starting"),!!O())try{let G=await C.request("changes",Be([[0,i??null],[2,!0]]),{codec:us,signal:L});if(!O())return;for(i=G.cursor,(G.changes.length||G.reset)&&te(G);Q.length&&O();)te(Q.shift());if(u(),z=!1,!O())return;g("active"),O()&&f()}catch(G){O()&&_(Nn(G,"changes watch"))}},x=this.onLink((C,R)=>{C==="closed"&&(R?_(R):k())});this.onSession(S),this.ready().then(S).catch(C=>_(Nn(C,"changes watch")));let P=Object.assign(k,{ready:m,subscribe:C=>(r!=="closed"&&r!=="failed"&&b.add(C),w(C),()=>{b.delete(C)})});return Object.defineProperties(P,{state:{get:()=>r},error:{get:()=>a}}),Object.freeze(P)}async validate(e,t){t?.throwIfAborted();let{targets:i,expected:o}=u_(e),s=await this.call("validate",Be([[0,i]]),{codec:d_,retry:!0,...t?{signal:t}:{}});return t?.throwIfAborted(),f_(s,o)}async executeAppBases(e,t){let i=e.window===void 0?null:{...e.window},o=Jp({...e,...i===null?{}:{window:i}}),s=await this.readyForRead(t),r=await s.readAppBases(o,t);if(s!==this.session||s.closed||this.readFencedAt!==null)throw A("unavailable","original Bases session is no longer current");try{return Xp(r,i)}catch(a){throw Nn(a,"app Bases result")}}executeAppBasesPages(e,t={}){return a_((i,o)=>this.executeAppBases(i,o),e,t)}async listAppBasesViews(e,t){let i=e.limit,o=Zp(e),s=await this.readyForRead(t),r=await s.readAppBasesDiscovery("list-views",o,t);try{if(s!==this.session||s.closed||this.readFencedAt!==null)throw A("unavailable","original Bases session is no longer current");return ed(r,i)}catch(a){throw Nn(a,"app Bases discovery")}finally{r.fill(0)}}async readAppBasesViewSource(e,t){let i={...e},o=Qp(i),s=await this.readyForRead(t),r=await s.readAppBasesDiscovery("read-view-source",o,t);try{if(s!==this.session||s.closed||this.readFencedAt!==null)throw A("unavailable","original Bases session is no longer current");return td(r,i)}catch(a){throw Nn(a,"app Bases exact source")}finally{r.fill(0)}}async submit(e,t={}){if(this.hello.version.minor>=3&&this.hello.grant.role==="viewer")throw A("forbidden","You have view access, so changes can't be saved.","read_only");t.intent!==void 0&&t.mutationId===void 0&&(t={...t,mutationId:(await mA(this.collectionId,t.intent))[0]});let i={ops:e,mutationId:t.mutationId??Ln()};t.allowPartial&&(i.allowPartial=!0,i.mutationIds=e.map((s,r)=>r===0?i.mutationId:Ln())),t.conflictMode&&(i.conflictMode=t.conflictMode),t.timezone&&(i.timezone=t.timezone),t.dryRun&&(i.dryRun=!0),t.include&&(i.include=t.include),t.wait&&(i.wait=t.wait),t.dryRun||(this.startLedger(),await this.writeLedger.begin(i.mutationIds??[i.mutationId],e));let o;try{o=await this.call("submit",vm.enc(i),{codec:Am,retry:!0,...t.signal?{signal:t.signal}:{}})}catch(s){throw t.dryRun?s:(this.writeLedger.settleAll(i.mutationIds??[i.mutationId]),vs(s,"submit",i.mutationIds?{mutationIds:i.mutationIds}:{mutationId:i.mutationId}))}return o.map(s=>t.dryRun?new _o(s):this._track(s))}async one(e,t){let[i]=await this.submit([e],t);return i}create(e,t={}){if(t.intent!==void 0&&t.mutationId===void 0)return mA(this.collectionId,t.intent).then(([o,s])=>this.create({...e,id:e.id??s},{...t,mutationId:o}));if(e.contract)return this.createThroughContract(e,e.contract,t);let i={kind:"create",id:e.id??Ln()};return e.path!==void 0&&(i.path=e.path),e.type!==void 0&&(i.type=e.type),e.frontmatter!==void 0&&(i.frontmatter=xl(e.frontmatter)),e.body!==void 0&&(i.body=e.body),e.document!==void 0&&(i.document=e.document),this.one(i,t).then(o=>Object.assign(o,{recordId:i.id}))}async createThroughContract(e,t,i){if(e.document!==void 0)throw A("invalid_request","a contract create takes frontmatter fields, not a document");if(e.type!==void 0&&t.type!==void 0&&e.type.toLowerCase()!==t.type.toLowerCase())throw A("invalid_request","the create type and contract type must name the same type");let o=t.type===void 0&&e.type!==void 0?{...t,type:e.type}:t,s=await this.contractPlan(o,void 0,xl(e.frontmatter??{}),void 0,i.signal),r={kind:"create",id:e.id??Ln(),type:s.type,frontmatter:s.patch};return e.path!==void 0&&(r.path=e.path),e.body!==void 0&&(r.body=e.body),Object.assign(await this.one(r,i),{recordId:r.id})}update(e,t,i={}){return t.contract?this.updateThroughContract(e,t,t.contract,i):this.one(this.updateOp(e,t),i)}async updateThroughContract(e,t,i,o){if(t.add||t.remove)throw A("invalid_request","a contract update takes only patch, unset, body and ifRevision");let s=await this.contractPlan(i,e,t.patch?xl(t.patch):void 0,t.unset,o.signal,t.promote),r=typeof e=="object"&&"frontmatter"in e?e:s.id,a=this.updateOp(r,{body:t.body,bodyEdits:t.bodyEdits,bodyBase:t.bodyBase}),c={kind:"update",id:s.id};return a.body!==void 0&&(c.body=a.body),a.bodyEdits&&(c.bodyEdits=a.bodyEdits),a.bodyBase!==void 0&&(c.bodyBase=a.bodyBase),s.patch.size&&(c.patch=s.patch),s.unset.length&&(c.unset=s.unset),s.base.length&&(c.base=s.base),t.updateRefs!==void 0&&(c.updateRefs=t.updateRefs),t.ifRevision&&(c.ifRevision=t.ifRevision),this.one(c,o)}updateOp(e,t){if(t.contract||t.promote)throw A("invalid_request","contract updates are mapped by the replica; use update()");let i={kind:"update",id:_d(e)},o=typeof e=="object"&&"frontmatter"in e?e:null;if(t.updateRefs!==void 0&&(i.updateRefs=t.updateRefs),t.patch&&(i.patch=xl(t.patch)),t.unset?.length&&(i.unset=t.unset),t.add&&(i.add=new Map(Object.entries(t.add).map(([s,r])=>[s,r.map(ut)]))),t.remove&&(i.remove=new Map(Object.entries(t.remove).map(([s,r])=>[s,r.map(ut)]))),t.ifRevision&&(i.ifRevision=t.ifRevision),t.bodyEdits?.length){i.bodyEdits=t.bodyEdits;let s=t.bodyBase??(o?.body!==void 0?si(o.body):void 0);if(!s)throw A("invalid_request","bodyEdits need bodyBase (or a RecordView read with its body)");i.bodyBase=s}else if(t.body!==void 0)if(o?.body!==void 0&&t.bodyBase===void 0){let s=Yp(o.body,t.body);s.length&&(i.bodyEdits=s,i.bodyBase=si(o.body))}else i.body=t.body,t.bodyBase&&(i.bodyBase=t.bodyBase);if(o){let s=[],r=[...i.patch?.keys()??[],...i.unset??[]];for(let a of new Set(r)){let c=o.frontmatter.get(a);s.push(c===void 0?{key:a}:{key:a,observed:c})}s.length&&(i.base=s)}if(o&&i.patch){for(let[s,r]of[...i.patch]){let a=o.frontmatter.get(s);a!==void 0&&Ir(a,r)&&(i.patch.delete(s),i.base=i.base?.filter(c=>c.key!==s))}i.patch.size===0&&delete i.patch,i.base?.length===0&&delete i.base}return i}replaceDocument(e,t,i={}){let o=typeof e=="object"&&"path"in e&&"revision"in e?e:null,s={kind:"document",id:_d(e),new:{path:o?.path??"",doc:t}};if(!o)throw A("invalid_request","replaceDocument needs the RecordView it was edited from");return o.document!==void 0&&(s.base={path:o.path,doc:o.document}),i.ifRevision&&(s.ifRevision=i.ifRevision),this.one(s,i)}delete(e,t={}){if(t.contract){let{contract:o,...s}=t;return this.contractPlan(o,e,void 0,void 0,t.signal).then(r=>{let a={kind:"delete",id:r.id,baseRevision:r.revision};return s.ifRevision&&(a.ifRevision=s.ifRevision),this.one(a,s)})}let i={kind:"delete",id:_d(e)};return typeof e=="object"&&"revision"in e&&(i.baseRevision=e.revision),t.ifRevision&&(i.ifRevision=t.ifRevision),this.one(i,t)}rename(e,t,i={}){if(i.contract){let{contract:s,...r}=i;return this.contractPlan(s,e.id,void 0,void 0,i.signal).then(a=>this.rename({...e,id:a.id,path:a.path},t,r))}let o={kind:"rename",id:e.id,from:e.path,to:t,updateRefs:i.updateRefs??!0};return i.ifRevision&&(o.ifRevision=i.ifRevision),this.one(o,i)}_track(e){this.noteReceipt(e);let t=e,i=this.unclaimed.get(e.mutation);i&&(this.unclaimed.delete(e.mutation),t=Sd(e,i),(e.state==="pending"||e.state==="confirmed"&&(i.state==="rejected"||i.state==="unknown"))&&(t=Sd({...e,...i},t)));let o=this.writes.get(e.mutation);return o?o.update(t):o=new _o(t),fy(o.receipt)?this.writes.set(e.mutation,o):this.writes.delete(e.mutation),o}async save(e,t={}){let i=await e,o=i.receipt;if(o.state==="pending")try{o=await this.awaitReceipt(i.mutationId,t.timeoutMs??3e3,t.signal),i.update(o)}catch(c){if(oe(c,"cancelled"))throw c;o=i.receipt}let s=o.state==="confirmed"?"confirmed":o.state==="pending"?"saved_on_device":"rejected",r=i.records,a=r[0];return t.readBack&&s!=="rejected"&&a&&(a=await this.find(a.id,void 0,t.signal).catch(()=>null)??a),Object.freeze({outcome:s,mutationId:i.mutationId,records:r,...a?{record:a}:{},...s==="rejected"&&o.problem?{problem:o.problem}:{}})}receipt(e,t){return this.call("receipt",Be([[0,T.enc(e)]]),{codec:kt,retry:!0,...t?{signal:t}:{}}).catch(i=>{throw vs(i,"receipt",{mutationId:e})})}awaitReceipt(e,t,i){return this.call("await",Be([[0,T.enc(e)],[1,t]]),{codec:kt,retry:!0,...i?{signal:i}:{}}).catch(o=>{throw vs(o,"await",{mutationId:e})})}listHolds(e){return this.call("list_holds",null,{codec:F(vl),retry:!0,...e?{signal:e}:{}})}onHolds(e){let t=this.holdsWatch;return t.listeners.add(e),t.last&&e(t.last),t.listeners.size===1&&this.refreshHolds(!0).catch(()=>{}),()=>t.listeners.delete(e)}async refreshHolds(e){e&&await this.call("subscribe_holds",null,{retry:!0}),this.emitHolds(await this.listHolds())}emitHolds(e){this.holdsWatch.last=e;for(let t of[...this.holdsWatch.listeners])t(e)}async resolveHold(e,t,i){let o=await this.call("resolve_hold",Be([[0,T.enc(e)],[1,hm.enc(t)],[2,i]]),{codec:kt});return this._track(o)}listConflicts(e,t){return this.call("list_conflicts",e?Be([[0,T.enc(e)]]):null,{codec:F(Al),retry:!0,...t?{signal:t}:{}})}onConflicts(e){let t=this.conflictsWatch;return t.listeners.add(e),t.last&&e(t.last),t.listeners.size===1&&this.refreshConflicts(!0).catch(()=>{}),()=>t.listeners.delete(e)}async refreshConflicts(e){e&&await this.call("subscribe_conflicts",null,{retry:!0}),this.emitConflicts(await this.listConflicts())}emitConflicts(e){this.conflictsWatch.last=e;for(let t of[...this.conflictsWatch.listeners])t(e)}dismissConflict(e,t={}){return this.one({kind:"conflict_dismiss",mutation:e.mutation,record:e.conflict.id},t)}async resolveConflict(e,t,i,o={}){let[s]=await this.submit([{kind:"update",id:e.conflict.id,patch:new Map([[t,ut(i)]])},{kind:"conflict_dismiss",mutation:e.mutation,record:e.conflict.id}],o);return s}pendingDevices(e){return this.call("pending_devices",null,{codec:F(lA),retry:!0,...e?{signal:e}:{}})}approveDevice(e,t){return/^\d{6}$/.test(t)?this.call("approve_device",Be([[0,T.enc(e)],[1,t]])).then(()=>{}):Promise.reject(A("invalid_request","the code is six digits","invalid_sas"))}rejectDevice(e){return this.call("reject_device",Be([[0,T.enc(e)]])).then(()=>{})}accountKey={setup:async e=>{hA(e);let t=await this.call("account_key_setup",Be([[0,e]]),{codec:kt});return this._track(t)},unlock:async e=>{hA(e),await this.call("account_key_unlock",Be([[0,e]]))},status:e=>this.call("account_key_status",null,{codec:fA,retry:!0,...e?{signal:e}:{}})};recoveryKey={status:()=>this.call("recovery_key_status",null,{codec:pA,retry:!0}),create:()=>this.call("recovery_key_create",null,{codec:dA}),import:e=>this.call("recovery_key_import",Be([[0,e.trim()]])).then(()=>{})};offerFence(e){this.fenceHandler=e}reportFence(e){return this.call("fence_report",Im.enc({open:e}),{retry:!0}).then(()=>{})}}});function my(n){return n instanceof Uint8Array||ArrayBuffer.isView(n)&&n.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in n&&n.BYTES_PER_ELEMENT===1}function Cd(n,e=""){if(typeof n!="boolean")throw new TypeError(xd(e)+"expected boolean, got type="+typeof n);return n}function Ao(n,e=""){if(typeof n!="number")throw new TypeError(xd(e)+"expected number, got "+typeof n);if(!Number.isSafeInteger(n)||n<0)throw new RangeError(xd(e)+"expected integer >= 0, got "+n);return n}function ft(n,e,t=""){if(my(n)&&(e===void 0||n.length===e))return n;e!==void 0&&Ao(e,"length");let i=my(n),o=e!==void 0?` of length ${e}`:"",s=i?`length=${n.length}`:`type=${typeof n}`,r=xd(t)+"expected Uint8Array"+o+", got "+s;throw i?new RangeError(r):new TypeError(r)}function yy(n,e=!0){if(n.destroyed)throw new Error("hash was destroyed");if(e&&n.finished)throw new Error("digest() was already called")}function gA(n,e){ft(n,void 0,"output");let t=e.outputLen;if(!(n.length>=t))throw new RangeError('"output" expected length >= '+t)}function qi(n){return new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4))}function ci(...n){for(let e=0;e<n.length;e++)n[e].fill(0)}function $O(n){return new DataView(n.buffer,n.byteOffset,n.byteLength)}function zO(n){return n<<24&4278190080|n<<8&16711680|n>>>8&65280|n>>>24&255}function BO(n){for(let e=0;e<n.length;e++)n[e]=zO(n[e]);return n}function FO(n,e){return!n.byteLength||!e.byteLength?!1:n.buffer===e.buffer&&n.byteOffset<e.byteOffset+e.byteLength&&e.byteOffset<n.byteOffset+n.byteLength}function bA(n,e){if(FO(n,e)&&n.byteOffset<e.byteOffset)throw new Error("complex overlap of input and output is not supported")}function wA(n,e){return yA(n,"defaults"),yA(e,"opts"),Object.assign(n,e)}function vA(n,e){if(n=ft(n),e=ft(e),n.length!==e.length)return!1;let t=0;for(let i=0;i<n.length;i++)t|=n[i]^e[i];return t===0}function _A(n,e,t){let i=e,o=t||(()=>[]),s=(a,c)=>i(c,...o(a)).update(a).digest(),r=i(new Uint8Array(n),...o(new Uint8Array(0)));return s.outputLen=r.outputLen,s.blockLen=r.blockLen,s.create=(a,...c)=>i(a,...c),s}function $l(n,e,t=!0){if(e===void 0)return new Uint8Array(n);if(ft(e,n,"output"),t&&!zl(e))throw new Error("invalid output, must be aligned");return e}function kA(n,e,t){Ao(n),Ao(e),Cd(t);let i=new Uint8Array(16),o=$O(i);return o.setBigUint64(0,BigInt(e),t),o.setBigUint64(8,BigInt(n),t),i}function zl(n){return n.byteOffset%4===0}function xs(n){return Uint8Array.from(ft(n))}var xd,yA,Er,rr,AA,Id=I(()=>{/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */xd=n=>n?`"${n}" `:"";yA=(n,e)=>{if(n===null||typeof n!="object"||Array.isArray(n))throw new TypeError(e==="object"?"expected valid options object":`"${e}" expected object, got type=${typeof n}`)};Er=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;rr=Er?n=>n:BO;AA=(n,e)=>{function t(i,...o){if(ft(i,void 0,"key"),n.nonceLength!==void 0){let d=o[0];ft(d,n.varSizeNonce?void 0:n.nonceLength,"nonce")}let s=n.tagLength,r=n.nonceLength!==void 0?1:0;if(!n.withAAD){for(let d=r;d<o.length;d++)if(my(o[d]))throw new Error("AAD not supported")}n.withAAD&&o[r]!==void 0&&ft(o[r],void 0,"AAD");let a=e(i,...o),c=(d,u)=>{if(u!==void 0){if(d!==2)throw new Error("cipher output not supported");ft(u,void 0,"output")}},l=!1;return{encrypt(d,u){if(l)throw new Error("cannot encrypt() twice with same key + nonce");return l=!0,ft(d,void 0,"data"),c(a.encrypt.length,u),a.encrypt(d,u)},decrypt(d,u){if(ft(d,void 0,"data"),s&&d.length<s)throw new Error('"ciphertext" expected length >= tagLength='+s);return c(a.decrypt.length,u),a.decrypt(d,u)}}}return Object.assign(t,n),t}});function Le(n,e){return n<<e|n>>>32-e}function HO(n,e,t,i,o,s,r,a){let c=o.length,l=new Uint8Array(Bl),p=qi(l),d=Er&&zl(o)&&zl(s),u=d?qi(o):SA,f=d?qi(s):SA;if(!Er){for(let h=0;h<c;r++){if(n(e,t,i,p,r,a),rr(p),r>=gy)throw new Error("arx: counter overflow");let m=Math.min(Bl,c-h);for(let b=0,w;b<m;b++)w=h+b,s[w]=o[w]^l[b];h+=m}return}for(let h=0;h<c;r++){if(n(e,t,i,p,r,a),r>=gy)throw new Error("arx: counter overflow");let m=Math.min(Bl,c-h);if(d&&m===Bl){let b=h/4;if(h%4!==0)throw new Error("arx: invalid block position");for(let w=0,g;w<WO;w++)g=b+w,f[g]=u[g]^p[w];h+=Bl;continue}for(let b=0,w;b<m;b++)w=h+b,s[w]=o[w]^l[b];h+=m}}function xA(n,e){let{allowShortKeys:t,extendNonceFn:i,counterLength:o,counterRight:s,rounds:r}=wA({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof n!="function")throw new Error("core must be a function");return Ao(o),Ao(r),Cd(s),Cd(t),(a,c,l,p,d=0)=>{ft(a,void 0,"key"),ft(c,void 0,"nonce"),ft(l,void 0,"data");let u=l.length,f=p!==void 0;if(p=$l(u,p,!1),f&&bA(l,p),Ao(d),d<0||d>=gy)throw new Error("arx: counter overflow");let h=[],m=a.length,b,w;if(m===32)h.push(b=xs(a)),w=KO;else if(m===16&&t)b=new Uint8Array(32),b.set(a),b.set(a,16),w=VO,h.push(b);else throw ft(a,32,"arx key"),new Error("invalid key size");(!Er||!zl(c))&&h.push(c=xs(c));let g=qi(b);if(i){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let _=c.subarray(0,16);if(Er)i(w,g,qi(_),g);else{let k=rr(Uint32Array.from(w));i(k,g,qi(_),g),ci(k),rr(g)}c=c.subarray(16)}else Er||rr(g);let y=16-o;if(y!==c.length)throw new Error(`arx: nonce must be ${y} or 16 bytes`);if(y!==12){let _=new Uint8Array(12);_.set(c,s?0:12-c.length),c=_,h.push(c)}let v=rr(qi(c));try{return HO(n,w,g,v,l,p,d,r),p}finally{ci(...h)}}}var PA,VO,KO,Bl,WO,gy,SA,CA=I(()=>{Id();PA=n=>Uint8Array.from(n.split(""),e=>e.charCodeAt(0)),VO=rr(qi(PA("expand 16-byte k"))),KO=rr(qi(PA("expand 32-byte k")));Bl=64,WO=16,gy=2**32-1,SA=Uint32Array.of()});function Mt(n,e){return n[e++]&255|(n[e++]&255)<<8}var by,IA,OA=I(()=>{Id();by=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(e){e=xs(ft(e,32,"key"));let t=Mt(e,0),i=Mt(e,2),o=Mt(e,4),s=Mt(e,6),r=Mt(e,8),a=Mt(e,10),c=Mt(e,12),l=Mt(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|i<<3)&8191,this.r[2]=(i>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|r<<12)&255,this.r[5]=r>>>1&8190,this.r[6]=(r>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|l<<8)&8191,this.r[9]=l>>>5&127;for(let p=0;p<8;p++)this.pad[p]=Mt(e,16+2*p)}process(e,t,i=!1){let o=i?0:2048,{h:s,r}=this,a=r[0],c=r[1],l=r[2],p=r[3],d=r[4],u=r[5],f=r[6],h=r[7],m=r[8],b=r[9],w=Mt(e,t+0),g=Mt(e,t+2),y=Mt(e,t+4),v=Mt(e,t+6),_=Mt(e,t+8),k=Mt(e,t+10),S=Mt(e,t+12),x=Mt(e,t+14),P=s[0]+(w&8191),C=s[1]+((w>>>13|g<<3)&8191),R=s[2]+((g>>>10|y<<6)&8191),O=s[3]+((y>>>7|v<<9)&8191),L=s[4]+((v>>>4|_<<12)&8191),z=s[5]+(_>>>1&8191),Q=s[6]+((_>>>14|k<<2)&8191),V=s[7]+((k>>>11|S<<5)&8191),te=s[8]+((S>>>8|x<<8)&8191),G=s[9]+(x>>>5|o),K=0,X=K+P*a+C*(5*b)+R*(5*m)+O*(5*h)+L*(5*f);K=X>>>13,X&=8191,X+=z*(5*u)+Q*(5*d)+V*(5*p)+te*(5*l)+G*(5*c),K+=X>>>13,X&=8191;let Y=K+P*c+C*a+R*(5*b)+O*(5*m)+L*(5*h);K=Y>>>13,Y&=8191,Y+=z*(5*f)+Q*(5*u)+V*(5*d)+te*(5*p)+G*(5*l),K+=Y>>>13,Y&=8191;let ee=K+P*l+C*c+R*a+O*(5*b)+L*(5*m);K=ee>>>13,ee&=8191,ee+=z*(5*h)+Q*(5*f)+V*(5*u)+te*(5*d)+G*(5*p),K+=ee>>>13,ee&=8191;let $e=K+P*p+C*l+R*c+O*a+L*(5*b);K=$e>>>13,$e&=8191,$e+=z*(5*m)+Q*(5*h)+V*(5*f)+te*(5*u)+G*(5*d),K+=$e>>>13,$e&=8191;let mt=K+P*d+C*p+R*l+O*c+L*a;K=mt>>>13,mt&=8191,mt+=z*(5*b)+Q*(5*m)+V*(5*h)+te*(5*f)+G*(5*u),K+=mt>>>13,mt&=8191;let j=K+P*u+C*d+R*p+O*l+L*c;K=j>>>13,j&=8191,j+=z*a+Q*(5*b)+V*(5*m)+te*(5*h)+G*(5*f),K+=j>>>13,j&=8191;let W=K+P*f+C*u+R*d+O*p+L*l;K=W>>>13,W&=8191,W+=z*c+Q*a+V*(5*b)+te*(5*m)+G*(5*h),K+=W>>>13,W&=8191;let $=K+P*h+C*f+R*u+O*d+L*p;K=$>>>13,$&=8191,$+=z*l+Q*c+V*a+te*(5*b)+G*(5*m),K+=$>>>13,$&=8191;let J=K+P*m+C*h+R*f+O*u+L*d;K=J>>>13,J&=8191,J+=z*p+Q*l+V*c+te*a+G*(5*b),K+=J>>>13,J&=8191;let be=K+P*b+C*m+R*h+O*f+L*u;K=be>>>13,be&=8191,be+=z*d+Q*p+V*l+te*c+G*a,K+=be>>>13,be&=8191,K=(K<<2)+K|0,K=K+X|0,X=K&8191,K=K>>>13,Y+=K,s[0]=X,s[1]=Y,s[2]=ee,s[3]=$e,s[4]=mt,s[5]=j,s[6]=W,s[7]=$,s[8]=J,s[9]=be}finalize(){let{h:e,pad:t}=this,i=new Uint16Array(10),o=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=o,o=e[a]>>>13,e[a]&=8191;e[0]+=o*5,o=e[0]>>>13,e[0]&=8191,e[1]+=o,o=e[1]>>>13,e[1]&=8191,e[2]+=o,i[0]=e[0]+5,o=i[0]>>>13,i[0]&=8191;for(let a=1;a<10;a++)i[a]=e[a]+o,o=i[a]>>>13,i[a]&=8191;i[9]-=8192;let s=(o^1)-1;for(let a=0;a<10;a++)i[a]&=s;s=~s;for(let a=0;a<10;a++)e[a]=e[a]&s|i[a];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let r=e[0]+t[0];e[0]=r&65535;for(let a=1;a<8;a++)r=(e[a]+t[a]|0)+(r>>>16)|0,e[a]=r&65535;ci(i)}update(e){yy(this),ft(e),e=xs(e);let{buffer:t,blockLen:i}=this,o=e.length;for(let s=0;s<o;){let r=Math.min(i-this.pos,o-s);if(r===i){for(;i<=o-s;s+=i)this.process(e,s);continue}t.set(e.subarray(s,s+r),this.pos),this.pos+=r,s+=r,this.pos===i&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,ci(this.h,this.r,this.buffer,this.pad)}digestInto(e){yy(this),gA(e,this),this.finished=!0;let{buffer:t,h:i}=this,{pos:o}=this;if(o){for(t[o++]=1;o<16;o++)t[o]=0;this.process(t,0,!0)}this.finalize();let s=0;for(let r=0;r<8;r++)e[s++]=i[r]>>>0,e[s++]=i[r]>>>8}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}},IA=_A(32,n=>new by(n))});function GO(n,e,t,i,o,s=20){let r=n[0],a=n[1],c=n[2],l=n[3],p=e[0],d=e[1],u=e[2],f=e[3],h=e[4],m=e[5],b=e[6],w=e[7],g=o,y=t[0],v=t[1],_=t[2],k=r,S=a,x=c,P=l,C=p,R=d,O=u,L=f,z=h,Q=m,V=b,te=w,G=g,K=y,X=v,Y=_;for(let $e=0;$e<s;$e+=2)k=k+C|0,G=Le(G^k,16),z=z+G|0,C=Le(C^z,12),k=k+C|0,G=Le(G^k,8),z=z+G|0,C=Le(C^z,7),S=S+R|0,K=Le(K^S,16),Q=Q+K|0,R=Le(R^Q,12),S=S+R|0,K=Le(K^S,8),Q=Q+K|0,R=Le(R^Q,7),x=x+O|0,X=Le(X^x,16),V=V+X|0,O=Le(O^V,12),x=x+O|0,X=Le(X^x,8),V=V+X|0,O=Le(O^V,7),P=P+L|0,Y=Le(Y^P,16),te=te+Y|0,L=Le(L^te,12),P=P+L|0,Y=Le(Y^P,8),te=te+Y|0,L=Le(L^te,7),k=k+R|0,Y=Le(Y^k,16),V=V+Y|0,R=Le(R^V,12),k=k+R|0,Y=Le(Y^k,8),V=V+Y|0,R=Le(R^V,7),S=S+O|0,G=Le(G^S,16),te=te+G|0,O=Le(O^te,12),S=S+O|0,G=Le(G^S,8),te=te+G|0,O=Le(O^te,7),x=x+L|0,K=Le(K^x,16),z=z+K|0,L=Le(L^z,12),x=x+L|0,K=Le(K^x,8),z=z+K|0,L=Le(L^z,7),P=P+C|0,X=Le(X^P,16),Q=Q+X|0,C=Le(C^Q,12),P=P+C|0,X=Le(X^P,8),Q=Q+X|0,C=Le(C^Q,7);let ee=0;i[ee++]=r+k|0,i[ee++]=a+S|0,i[ee++]=c+x|0,i[ee++]=l+P|0,i[ee++]=p+C|0,i[ee++]=d+R|0,i[ee++]=u+O|0,i[ee++]=f+L|0,i[ee++]=h+z|0,i[ee++]=m+Q|0,i[ee++]=b+V|0,i[ee++]=w+te|0,i[ee++]=g+G|0,i[ee++]=y+K|0,i[ee++]=v+X|0,i[ee++]=_+Y|0}function EA(n,e,t,i,o){o!==void 0&&ft(o,void 0,"AAD");let s=n(e,t,XO),r=kA(i.length,o?o.length:0,!0),a=IA.create(s);o&&RA(a,o),RA(a,i),a.update(r);let c=a.digest();return ci(s,r),c}var YO,JO,RA,XO,ZO,wy,qA=I(()=>{CA();OA();Id();YO=xA(GO,{counterRight:!1,counterLength:4,allowShortKeys:!1}),JO=new Uint8Array(16),RA=(n,e)=>{n.update(e);let t=e.length%16;t&&n.update(JO.subarray(t))},XO=new Uint8Array(32);ZO=n=>(e,t,i)=>({encrypt(s,r){let a=s.length;r=$l(a+16,r,!1),r.set(s);let c=r.subarray(0,-16);n(e,t,c,c,1);let l=EA(n,e,t,c,i);return r.set(l,a),ci(l),r},decrypt(s,r){r=$l(s.length-16,r,!1);let a=s.subarray(0,-16),c=s.subarray(-16),l=EA(n,e,t,a,i);if(!vA(c,l))throw ci(l),new Error("invalid tag");return r.set(s.subarray(0,-16)),n(e,t,r,r,1),ci(l),r}}),wy=AA({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},ZO(YO))});function Rd(n,e,t=()=>{}){if(!Array.isArray(n))throw new TypeError(`"${e}" expected array, got type=${typeof n}`);for(let i=0;i<n.length;i++)t(n[i],`${e}[${i}]`);return n}function qr(n,e="object"){if(n===null||typeof n!="object"||Array.isArray(n))throw new TypeError(e==="object"?"expected valid options object":`"${e}" expected object, got type=${typeof n}`);return n}function ko(n,e){if(typeof n!="function")throw new TypeError(`"${e}" is invalid: expected function, got ${typeof n}`);return n}function So(n,e=""){if(typeof n!="boolean")throw new TypeError(QO(e)+"expected boolean, got type="+typeof n);return n}function e1(n){if(typeof n=="bigint"){if(!Tr(n))throw new RangeError("positive bigint expected, got "+n)}else vy(n);return n}function Fl(n,e=""){if(typeof n!="number"){let t=e&&`"${e}" `;throw new TypeError(t+"expected number, got type="+typeof n)}if(!Number.isSafeInteger(n)){let t=e&&`"${e}" `;throw new RangeError(t+"expected safe integer, got "+n)}}function jA(n){if(typeof n!="string")throw new TypeError("hex string expected, got "+typeof n);return n===""?Od:BigInt("0x"+n)}function Td(n){return jA(ys(n))}function Po(n){return jA(ys(xo(tr(n)).reverse()))}function _y(n,e){if(ho(e),e===0)throw new Error("zero output length is invalid");n=e1(n);let t=e*2,i=n.toString(16);if(i.length>t)throw new RangeError("number is too large");return Um(i.padStart(t,"0"))}function Md(n,e){return _y(n,e).reverse()}function xo(n){return Uint8Array.from(or(n))}function Tr(n){return typeof n=="bigint"&&Od<=n}function Ay(n,e,t){return Tr(n)&&Tr(e)&&Tr(t)&&e<=n&&n<t}function Co(n,e,t,i){if(!Ay(e,t,i))throw new RangeError("expected valid "+n+": "+t+" <= n < "+i+", got "+e)}function ky(n){if(n<Od)throw new Error("expected non-negative bigint, got "+n);return n===Od?0:n.toString(2).length}function Io(n,e={},t={},i="object"){qr(n,i),qr(e,"fields"),qr(t,"optFields");function o(r,a,c){let l=i==="object"?`param "${String(r)}"`:`"${i}.${String(r)}"`,p=n[r];if(!Object.hasOwn(n,r)&&(c?p!==void 0:a!=="function"))throw new TypeError(`${l} is invalid: expected own property`);if(c&&p===void 0)return;let d=typeof p;if(d!==a||p===null)throw new TypeError(`${l} is invalid: expected ${a}, got ${d}`)}let s=(r,a)=>Object.entries(r).forEach(([c,l])=>o(c,l,a));s(e,!1),s(t,!0)}var or,vy,MA,LA,Ed,qd,Od,TA,QO,NA,Vl=I(()=>{gs();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */or=(n,e,t)=>tr(n,e,t),vy=ho;MA=ys,LA=n=>Um(n),Ed=Vp,qd=n=>Hv(n),Od=BigInt(0),TA=BigInt(1),QO=n=>n?`"${n}" `:"";NA=n=>(Fl(n,"n"),(TA<<BigInt(n))-TA)});function Ge(n,e){if(e<=It)throw new Error("mod: expected positive modulus, got "+e);let t=n%e;return t>=It?t:e+t}function o1(n,e,t){if(t<=Qe)throw new Error("pow: expected modulus > 1, got "+t);if(typeof e!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof e);if(e<It)throw new Error("invalid exponent, negatives unsupported");if(e===It)return Qe;if(e===Qe)return n;let i=n%t;if(i<It&&(i+=t),e<r1){let a=Qe;for(;e>It;)e&Qe&&(a=a*i%t),i=i*i%t,e>>=Qe;return a}let o=[];for(;e>It;)o.push(Number(e&i1)),e>>=Sy;let s=new Array(16);s[0]=Qe,s[1]=i;for(let a=2;a<16;a++)s[a]=s[a-1]*i%t;let r=s[o[o.length-1]];for(let a=o.length-2;a>=0;a--){r=r*r%t,r=r*r%t,r=r*r%t,r=r*r%t;let c=o[a];c!==0&&(r=r*s[c]%t)}return r}function Un(n,e,t){if(t<=Qe)throw new Error("pow2: expected modulus > 1, got "+t);if(e<It)throw new Error("pow2: expected non-negative exponent, got "+e);let i=n;for(;e-- >It;)i*=i,i%=t;return i}function UA(n,e){if(n===It)throw new Error("invert: expected non-zero number");if(e<=Qe)throw new Error("invert: expected modulus > 1, got "+e);let t=Ge(n,e),i=e,o=It,s=Qe;for(;t!==It;){let a=i/t,c=i-t*a,l=o-s*a;i=t,t=c,o=s,s=l}if(i!==Qe)throw new Error("invert: does not exist");return Ge(o,e)}function Py(n,e,t){let i=n;if(!i.eql(i.sqr(e),t))throw new Error("Cannot find square root")}function xy(n,e){if((n&Qe)===It)throw new Error(e+": expected odd modulus, got "+n)}function VA(n,e){let t=n,i=(t.ORDER+Qe)/Sy,o=t.pow(e,i);return Py(t,o,e),o}function s1(n,e){let t=n,i=(t.ORDER-zA)/BA,o=t.mul(e,Oo),s=t.pow(o,i),r=t.mul(e,s),a=t.mul(t.mul(r,Oo),s),c=t.mul(r,t.sub(a,t.ONE));return Py(t,c,e),c}function a1(n){let e=Nd(n),t=KA(n),i=t(e,e.neg(e.ONE)),o=t(e,i),s=t(e,e.neg(i)),r=(n+t1)/FA;return((a,c)=>{let l=a,p=l.pow(c,r),d=l.mul(p,i),u=l.mul(p,o),f=l.mul(p,s),h=l.eql(l.sqr(d),c),m=l.eql(l.sqr(u),c);p=l.cmov(p,d,h),d=l.cmov(f,u,m);let b=l.eql(l.sqr(d),c),w=l.cmov(p,d,b);return Py(l,w,c),w})}function KA(n){if(n<$A)throw new Error("sqrt is not defined for small field");xy(n,"tonelliShanks");let e=n-Qe,t=0;for(;e%Oo===It;)e/=Oo,t++;let i=Oo,o=Nd(n);for(;Kl(o,i)===1;)if(i++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return VA;let s=o.pow(i,e),r=(e+Qe)/Oo;return function(c,l){let p=c;if(p.is0(l))return l;if(Kl(p,l)!==1)throw new Error("Cannot find square root");let d=t,u=p.mul(p.ONE,s),f=p.pow(l,e),h=p.pow(l,r);for(;!p.eql(f,p.ONE);){if(p.is0(f))throw new Error("Cannot find square root: probably non-prime P");let m=1,b=p.sqr(f);for(;!p.eql(b,p.ONE);)if(m++,b=p.sqr(b),m===d)throw new Error("Cannot find square root");let w=Qe<<BigInt(d-m-1),g=p.pow(u,w);d=m,u=p.sqr(g),f=p.mul(f,u),h=p.mul(h,g)}return h}}function l1(n){return xy(n,"Fp.sqrt"),n%Sy===$A?VA:n%BA===zA?s1:n%FA===n1?a1(n):KA(n)}function Cs(n){if(qr(n,"field"),typeof n.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof n.ORDER);Fl(n.BYTES,"BYTES"),Fl(n.BITS,"BITS");for(let e of c1)ko(n[e],"field."+e);if(n.BYTES<1||n.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(n.ORDER<=Qe)throw new Error("invalid field: expected ORDER > 1, got "+n.ORDER);return n}function jd(n,e,t=!1){Cs(n),Rd(e,"nums"),So(t,"passZero");let i=n,o=new Array(e.length).fill(t?i.ZERO:void 0),s=e.reduce((a,c,l)=>i.is0(c)?a:(o[l]=a,i.mul(a,c)),i.ONE),r=i.inv(s);return e.reduceRight((a,c,l)=>i.is0(c)?a:(o[l]=i.mul(a,o[l]),i.mul(a,c)),r),o}function Kl(n,e){Cs(n);let t=n;xy(t.ORDER,"FpLegendre");let i=(t.ORDER-Qe)/Oo,o=t.pow(e,i),s=t.eql(o,t.ONE),r=t.eql(o,t.ZERO),a=t.eql(o,t.neg(t.ONE));if(!s&&!r&&!a)throw new Error("invalid Legendre symbol result");return s?1:r?0:-1}function p1(n,e){if(e!==void 0&&vy(e),n<=It)throw new Error("invalid n length: expected positive n, got "+n);if(e!==void 0&&e<1)throw new Error("invalid n length: expected positive bit length, got "+e);let t=ky(n);if(e!==void 0&&e<t)throw new Error(`invalid n length: expected nBitLength (${e}) >= bitLen(n) (${t})`);let i=e!==void 0?e:t,o=Math.ceil(i/8);return{nBitLength:i,nByteLength:o}}function Nd(n,e={}){return Object.freeze(Ld.prototype),new Ld(n,e)}var It,Qe,Oo,$A,Sy,zA,t1,BA,n1,i1,FA,r1,WA,c1,DA,Ld,Wl=I(()=>{Vl();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */It=BigInt(0),Qe=BigInt(1),Oo=BigInt(2),$A=BigInt(3),Sy=BigInt(4),zA=BigInt(5),t1=BigInt(7),BA=BigInt(8),n1=BigInt(9),i1=BigInt(15),FA=BigInt(16),r1=BigInt("0x10000000000000000");WA=(n,e)=>(Ge(n,e)&Qe)===Qe,c1=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];DA=new WeakMap,Ld=class{ORDER;BITS;BYTES;isLE;ZERO=It;ONE=Qe;_lengths;_mod;constructor(e,t={}){if(e<=Qe)throw new Error("invalid field: expected ORDER > 1, got "+e);let i;this.isLE=!1,t!=null&&typeof t=="object"&&(typeof t.BITS=="number"&&(i=t.BITS),typeof t.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:t.sqrt,enumerable:!0}),typeof t.isLE=="boolean"&&(this.isLE=t.isLE),t.allowedLengths&&(this._lengths=Object.freeze(t.allowedLengths.slice())),typeof t.modFromBytes=="boolean"&&(this._mod=t.modFromBytes));let{nBitLength:o,nByteLength:s}=p1(e,i);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(e){return Ge(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof e);return It<=e&&e<this.ORDER}is0(e){return e===It}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&Qe)===Qe}neg(e){return Ge(-e,this.ORDER)}eql(e,t){return e===t}sqr(e){return Ge(e*e,this.ORDER)}add(e,t){return Ge(e+t,this.ORDER)}sub(e,t){return Ge(e-t,this.ORDER)}mul(e,t){return Ge(e*t,this.ORDER)}pow(e,t){return o1(e,t,this.ORDER)}div(e,t){return Ge(e*UA(t,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,t){return e+t}subN(e,t){return e-t}mulN(e,t){return e*t}inv(e){return UA(e,this.ORDER)}sqrt(e){let t=DA.get(this);return t||DA.set(this,t=l1(this.ORDER)),t(this,e)}toBytes(e){return this.isLE?Md(e,this.BYTES):_y(e,this.BYTES)}fromBytes(e,t=!1){or(e);let{_lengths:i,BYTES:o,isLE:s,ORDER:r,_mod:a}=this;if(i){if(e.length<1||!i.includes(e.length)||e.length>o)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+e.length);let l=new Uint8Array(o);l.set(e,s?0:l.length-e.length),e=l}if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);let c=s?Po(e):Td(e);if(a&&(c=Ge(c,r)),!t&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return jd(this,e,!0)}cmov(e,t,i){return So(i,"condition"),i?t:e}}});function Dd(n){let e=n;if(typeof e!="function")throw new TypeError('"Point" expected constructor, got type='+typeof n);ko(e.fromAffine,"Point.fromAffine"),ko(e.fromBytes,"Point.fromBytes"),ko(e.fromHex,"Point.fromHex"),qr(e.BASE,"Point.BASE"),qr(e.ZERO,"Point.ZERO"),Cs(e.Fp),Cs(e.Fn)}function JA(n,e){Dd(n),XA(e,n);let t=jd(n.Fp,e.map(i=>i.Z));return e.map((i,o)=>n.fromAffine(i.toAffine(t[o])))}function f1(n,e,t=1){if(!Number.isSafeInteger(n)||n<t||n>e)throw new Error("invalid window size, expected ["+t+".."+e+"], got W="+n)}function h1(n,e){let t=n*(4*e+128);if(t>GA)throw new Error("invalid window size: table would need ~"+Math.ceil(t/2**20)+" MiB, max "+GA/2**20+" MiB")}function m1(n,e){if(n!==void 0){ko(n,"randomBytes");try{let t=n(e);if(!Ed(t)||t.length!==e)return}catch{return}return n}}function XA(n,e){Rd(n,"points"),n.forEach((t,i)=>{if(!(t instanceof e))throw new Error("invalid point at index "+i)})}function y1(n,e,t){if(!Array.isArray(n))throw new Error("array of scalars expected");n.forEach((i,o)=>{if(!(t===void 0?e.isValid(i):Tr(i)&&i<t))throw new Error("invalid scalar at index "+o)})}function Iy(n){return ZA.get(n)||1}function g1(n,e){let t=n.double(),i=[n];for(let o=1;o<e;o++)i.push(i[o-1].add(t));return i}function b1(n,e){let t=2**e,i=t/2,o=BigInt(t-1),s=[];for(;n>Oy;){let r=0;n&Hl&&(r=Number(n&o),r>=i&&(r-=t),n-=BigInt(r)),s.push(r),n>>=Hl}return s}function w1(n,e,t){let i=2**e,o=i/2,s=BigInt(i-1),r=BigInt(e),a=[];for(let c=0;c<t;c++){let l=Number(n&s);n>>=r,l>o&&(l-=i,n+=Hl),a.push(l)}if(n!==Oy)throw new Error("invalid wnaf");return a}function v1(n,e,t){let i=0;for(let s of t)i=Math.max(i,s.length);let o=n;for(let s=i-1;s>=0;s--){s!==i-1&&(o=o.double());for(let r=0;r<t.length;r++){let a=t[r][s];if(a){let c=e[r][Math.abs(a)-1>>1];o=o.add(a<0?c.negate():c)}}}return o}function _1(n,e,t,i=!1){if(Dd(n),XA(e,n),So(i,"allowOversized"),y1(t,n.Fn,i?n.Fn.ORDER**d1:void 0),e.length!==t.length)throw new Error("arrays of points and scalars must have equal length");let o=e.map(r=>g1(r,4)),s=t.map(r=>b1(r,4));return v1(n.ZERO,o,s)}function YA(n,e,t){if(e){if(e.ORDER!==n)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Cs(e),e}else return Nd(n,{isLE:t})}function QA(n,e,t={},i){if(n!=="weierstrass"&&n!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(i===void 0&&(i=n==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${n} CURVE object`);Io(t);for(let c of["p","n","h"]){let l=e[c];if(!(Tr(l)&&l!==Oy))throw new Error(`CURVE.${c} must be positive bigint`)}let o=YA(e.p,t.Fp,i),s=YA(e.n,t.Fn,i),a=["Gx","Gy","a",n==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:o,Fn:s}}function Ry(n,e){return function(i){let o=n(i);return{secretKey:o,publicKey:e(o)}}}var Oy,Hl,d1,Cy,HA,u1,GA,ZA,Ud,Ey=I(()=>{Vl();Wl();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */Oy=BigInt(0),Hl=BigInt(1),d1=BigInt(4),Cy=16,HA=128,u1=5,GA=2**31;ZA=new WeakMap;Ud=class{Point;BASE;ZERO;randomBytes;wnafPrecomputes=new WeakMap;baseCanBeBlinded;bits;constructor(e,t){Dd(e),this.randomBytes=m1(t,Cy),this.Point=e,this.BASE=e.BASE,this.ZERO=e.ZERO,this.bits=e.Fn.BITS}buildWnafTable(e,t,i){let o=Math.ceil(i/t)+1,s=2**(t-1),r=[],a=e;for(let c=0;c<o;c++){let l=a;for(let p=0;p<s;p++)r.push(l),l=l.add(a);a=r[r.length-1].double()}return{W:t,bits:i,windows:o,comp:r}}wnafCachedCT(e,t){let{W:i,windows:o,comp:s}=e,r=2**(i-1),a=w1(t,i,o),c=this.ZERO,l=this.BASE;for(let p=0;p<o;p++){let d=a[p],u=p*r,f=Math.abs(d)-1,h=s[u];for(let b=1;b<r;b++)h=b===f?s[u+b]:h;let m=h.negate();d===0?l=l.add(s[u]):c=c.add(d<0?m:h)}return{p:c,f:l}}getWnafPrecomputes(e,t,i,o){let s=this.wnafPrecomputes.get(t),r=s?.find(a=>a.W===e&&a.bits===i);return r||(r=this.buildWnafTable(t,e,i),typeof o=="function"&&(r={...r,comp:o(r.comp)}),s||(s=[],this.wnafPrecomputes.set(t,s)),s.push(r)),r}assertPoint(e){if(!(e instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof e)}validateMulInput(e,t){if(this.assertPoint(e),!Ay(t,Hl,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(e,t,i,o){let s=Iy(e);return s===1?this.fixedWindowCT(e,t,i):this.wnafCachedCT(this.getWnafPrecomputes(s,e,i,o),t)}mulCT(e,t,i){return this.validateMulInput(e,t),this.runCT(e,t,this.bits,i)}mulCTBlinded(e,t,i){if(this.validateMulInput(e,t),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let o=this.Point.Fn.BITS+HA,s=this.randomBytes(Cy);if(!Ed(s)||s.length!==Cy)throw new Error("randomBytes returned invalid byte array");s[0]=s[0]&63|128;let r=t+Td(s)*this.Point.Fn.ORDER;return this.runCT(e,r,o,i)}fixedWindowCT(e,t,i){let o=u1,s=1<<o,r=NA(o),a=new Array(s);a[0]=this.ZERO;for(let p=1;p<s;p++)a[p]=a[p-1].add(e);let c=Math.ceil(i/o),l=this.ZERO;for(let p=c-1;p>=0;p--){if(p!==c-1)for(let f=0;f<o;f++)l=l.double();let d=Number(t>>BigInt(p*o)&r),u=a[0];for(let f=1;f<s;f++)u=f===d?a[f]:u;l=l.add(u)}return{p:l,f:l}}shouldBlind(e,t){return this.randomBytes===void 0?!1:t===Hl?!0:e!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(e,t,i,o){return this.shouldBlind(e,i)?this.mulCTBlinded(e,t,o):this.mulCT(e,t,o)}mulUnsafe(e,t,i){if(this.assertPoint(e),!Tr(t))throw new Error("invalid scalar");let o=Iy(e);if(o===1||t>=this.Point.Fn.ORDER)return _1(this.Point,[e],[t],!0);let s=this.getWnafPrecomputes(o,e,this.bits,i);return this.wnafCachedCT(s,t).p}setWindowSize(e,t){this.assertPoint(e),f1(t,this.bits);let i=Math.ceil((this.bits+HA)/t)+1;h1(i*2**(t-1),this.Point.Fp.BYTES),ZA.set(e,t),this.wnafPrecomputes.delete(e)}hasWindowSize(e){return Iy(e)!==1}}});function k1(n,e,t,i){let o=n.sqr(t),s=n.sqr(i),r=n.add(n.mul(e.a,o),s),a=n.add(n.ONE,n.mul(e.d,n.mul(o,s)));return n.eql(r,a)}function t0(n,e={}){Io(e,{},{},"extraOpts");let t=e,i=QA("edwards",n,t,t.FpFnLE),{Fp:o,Fn:s}=i,r=i.CURVE,{h:a}=r;if(Kl(o,r.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(Kl(o,r.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");Io(t,{},{uvRatio:"function",randomBytes:"function"});let c=t.randomBytes===void 0?qd:t.randomBytes,l=Bd<<BigInt(o.BYTES*8)-zd;function p(g){if(!o.isOdd)throw new Error("Field does not have .isOdd()");return o.isOdd(g)}let d=t.uvRatio===void 0?(g,y)=>{try{return{isValid:!0,value:o.sqrt(o.div(g,y))}}catch{return{isValid:!1,value:$d}}}:t.uvRatio;if(!k1(o,r,r.Gx,r.Gy))throw new Error("bad curve params: generator point");let u=o.eql(r.a,o.neg(o.ONE))?g=>o.neg(g):o.eql(r.a,o.ONE)?g=>g:g=>o.mul(r.a,g);function f(g,y,v=!1){let _=v?zd:$d;return Co("coordinate "+g,y,_,l),y}function h(g){if(!(g instanceof m))throw new Error("EdwardsPoint expected")}class m{static BASE=new m(r.Gx,r.Gy,o.ONE,o.mul(r.Gx,r.Gy));static ZERO=new m(o.ZERO,o.ONE,o.ONE,o.ZERO);static Fp=o;static Fn=s;X;Y;Z;T;constructor(y,v,_,k){this.X=f("x",y),this.Y=f("y",v),this.Z=f("z",_,!0),this.T=f("t",k),Object.freeze(this)}static CURVE(){return r}static fromAffine(y){if(y instanceof m)throw new Error("extended point not allowed");let{x:v,y:_}=y||{};return f("x",v),f("y",_),new m(v,_,o.ONE,o.mul(v,_))}static fromBytes(y,v=!1){let _=o.BYTES,{a:k,d:S}=r;y=xo(or(y,_,"point")),So(v,"zip215");let x=xo(y),P=y[_-1];x[_-1]=P&-129;let C=Po(x),R=v?l:o.ORDER;Co("point.y",C,$d,R);let O=o.sqr(C),L=o.sub(O,o.ONE),z=o.sub(o.mulN(S,O),k),{isValid:Q,value:V}=d(L,z);if(!Q)throw new Error("bad point: invalid y coordinate");let te=p(V),G=(P&128)!==0;if(!v&&o.is0(V)&&G)throw new Error("bad point: x=0 and x_0=1");return G!==te&&(V=o.neg(V)),m.fromAffine({x:V,y:C})}static fromHex(y,v=!1){return m.fromBytes(LA(y),v)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=6,v=!0){return w.setWindowSize(this,y),v||this.multiply(Bd),this}assertValidity(){let y=this,{a:v,d:_}=r;if(y.is0())throw new Error("bad point: ZERO");let{X:k,Y:S,Z:x,T:P}=y,C=o.sqr(k),R=o.sqr(S),O=o.sqr(x),L=o.sqr(O),z=o.mul(C,v),Q=o.mul(o.add(z,R),O),V=o.add(L,o.mul(_,o.mul(C,R)));if(!o.eql(Q,V))throw new Error("bad point: equation left != right (1)");let te=o.mul(k,S),G=o.mul(x,P);if(!o.eql(te,G))throw new Error("bad point: equation left != right (2)")}equals(y){h(y);let{X:v,Y:_,Z:k}=this,{X:S,Y:x,Z:P}=y,C=o.mul(v,P),R=o.mul(S,k),O=o.mul(_,P),L=o.mul(x,k);return o.eql(C,R)&&o.eql(O,L)}is0(){return this.equals(m.ZERO)}negate(){return new m(o.neg(this.X),this.Y,this.Z,o.neg(this.T))}double(){let{X:y,Y:v,Z:_}=this,k=o.sqr(y),S=o.sqr(v),x=o.mul(o.sqr(_),Bd),P=u(k),C=o.addN(y,v),R=o.sub(o.subN(o.sqr(C),k),S),O=o.addN(P,S),L=o.subN(O,x),z=o.subN(P,S),Q=o.mul(R,L),V=o.mul(O,z),te=o.mul(R,z),G=o.mul(L,O);return new m(Q,V,G,te)}add(y){h(y);let{d:v}=r,{X:_,Y:k,Z:S,T:x}=this,{X:P,Y:C,Z:R,T:O}=y,L=o.mul(_,P),z=o.mul(k,C),Q=o.mul(o.mulN(x,v),O),V=o.mul(S,R),te=o.sub(o.subN(o.mulN(o.addN(_,k),o.addN(P,C)),L),z),G=o.subN(V,Q),K=o.addN(V,Q),X=o.sub(z,u(L)),Y=o.mul(te,G),ee=o.mul(K,X),$e=o.mul(te,X),mt=o.mul(G,K);return new m(Y,ee,mt,$e)}subtract(y){return h(y),this.add(y.negate())}multiply(y){if(!s.isValidNot0(y))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:v,f:_}=w.mulSecret(this,y,a,b);return b([v,_])[0]}multiplyUnsafe(y){if(!s.isValid(y))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return y===$d?m.ZERO:this.is0()||y===zd?this:w.mulUnsafe(this,y,b)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return w.mulUnsafe(this,r.n).is0()}toAffine(y){let v=this,_=y;if(_!=null&&typeof _!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof _);let{X:k,Y:S,Z:x}=v,P=v.is0();_==null&&(_=P?o.create(e0):o.inv(x));let C=o.mul(k,_),R=o.mul(S,_),O=o.mul(x,_);if(P)return{x:o.ZERO,y:o.ONE};if(!o.eql(O,o.ONE))throw new Error("invZ was invalid");return{x:C,y:R}}clearCofactor(){return a===zd?this:a===Bd?this.double():a===A1?this.double().double():a===e0?this.double().double().double():this.multiplyUnsafe(a)}toBytes(){let{x:y,y:v}=this.toAffine(),_=o.toBytes(v);return _[_.length-1]|=p(y)?128:0,_}toHex(){return MA(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let b=g=>JA(m,g),w=new Ud(m,c);return w.bits>=6&&m.BASE.precompute(6),Object.freeze(m.prototype),Object.freeze(m),m}var $d,zd,Bd,A1,e0,n0=I(()=>{Vl();Ey();Wl();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */$d=BigInt(0),zd=BigInt(1),Bd=BigInt(2),A1=BigInt(4),e0=BigInt(8)});function i0(n,e){return n+e-(e>>Dn<<Dn)}function S1(n){let e=BigInt(6)*n;return(t,i,o)=>{let s=i+o,a=((e+o-i)*t+i)%n;return{x_2:a,x_3:s-a}}}function P1(n){return Io(n,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function",scalarMultBase:"function"}),Object.freeze({...n})}function r0(n){let e=P1(n),{P:t,type:i,adjustScalarBytes:o,powPminus2:s,randomBytes:r}=e,a=e.scalarMultBase,c=i==="x25519";if(!c&&i!=="x448")throw new Error("invalid type");let l=r===void 0?qd:r,p=c?255:448,d=S1(t),u=c?32:56,f=BigInt(c?9:5),h=BigInt(c?121665:39081),m=c?Fd**BigInt(254):Fd**BigInt(447),b=c?BigInt(8)*(Fd**BigInt(251)-Dn):BigInt(4)*(Fd**BigInt(445)-Dn),w=m+b+Dn,g=V=>Ge(V,t),y=v(f);function v(V){return Md(g(V),u)}function _(V){let te=xo(or(V,u,"uCoordinate"));return c&&(te[31]&=127),g(Po(te))}function k(V){return Po(o(xo(or(V,u,"scalar"))))}let S=new Set(c?[Ro,Dn,t-Dn,BigInt("325606250916557431795983626356110631294008115727848805560023387167927233504"),BigInt("39382357235489614581723060781553021112529911719440698176882885853963445705823")]:[Ro,Dn,t-Dn]);function x(V,te){let G=_(te);if(S.has(G))throw new Error("invalid private or public key received");let K=O(G,k(V));if(K===Ro)throw new Error("invalid private or public key received");return v(K)}function P(V){if(a===void 0)return x(V,y);let te=k(V);Co("scalar",te,m,w);let G=g(a(te));if(G===Ro)throw new Error("invalid private or public key received");return v(G)}let C=P,R=x;function O(V,te){Co("u",V,Ro,t),Co("scalar",te,m,w);let G=te,K=V,X=Dn,Y=Ro,ee=V,$e=Dn,mt=G^G>>Dn;for(let $=BigInt(p-1);$>=Ro;$--){let J=i0(t,mt>>$);({x_2:X,x_3:ee}=d(J,X,ee)),{x_2:Y,x_3:$e}=d(J,Y,$e);let be=X+Y,ye=g(be*be),we=X-Y,et=g(we*we),qe=ye-et,Dt=ee+$e,tt=ee-$e,Ve=g(tt*be),In=g(Dt*we),Ar=Ve+In,Pi=Ve-In;ee=g(Ar*Ar),$e=g(K*g(Pi*Pi)),X=g(ye*et),Y=g(qe*(ye+g(h*qe)))}let j=i0(t,G);({x_2:X,x_3:ee}=d(j,X,ee)),{x_2:Y,x_3:$e}=d(j,Y,$e);let W=s(Y);return g(X*W)}let L={secretKey:u,publicKey:u,seed:u},z=V=>(V=V===void 0?l(u):V,or(V,L.seed,"seed"),V),Q={randomSecretKey:z};return Object.freeze(L),Object.freeze(Q),Object.freeze({keygen:Ry(z,C),getSharedSecret:R,getPublicKey:C,scalarMult:x,scalarMultBase:P,utils:Q,GuBytes:y.slice(),lengths:L})}var Ro,Dn,Fd,o0=I(()=>{Vl();Ey();Wl();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */Ro=BigInt(0),Dn=BigInt(1),Fd=BigInt(2)});function p0(n){let e=BigInt(10),t=BigInt(20),i=BigInt(40),o=BigInt(80),s=Vd,a=n*n%s*n%s,c=Un(a,a0,s)*a%s,l=Un(c,x1,s)*n%s,p=Un(l,I1,s)*l%s,d=Un(p,e,s)*p%s,u=Un(d,t,s)*d%s,f=Un(u,i,s)*u%s,h=Un(f,o,s)*f%s,m=Un(h,o,s)*f%s,b=Un(m,e,s)*p%s;return{pow_p_5_8:Un(b,a0,s)*n%s,b2:a}}function E1(n){return n[0]&=248,n[31]&=127,n[31]|=64,n}function q1(n,e){let t=Vd,i=Ge(e*e*e,t),o=Ge(i*i*e,t),s=p0(n*o).pow_p_5_8,r=Ge(n*i*s,t),a=Ge(e*r*r,t),c=r,l=Ge(r*l0,t),p=a===n,d=a===Ge(-n,t),u=a===Ge(-n*l0,t);return p&&(r=c),(d||u)&&(r=l),WA(r,t)&&(r=Ge(-r,t)),{isValid:p||d,value:r}}var s0,x1,a0,C1,I1,O1,Vd,R1,l0,c0,sr,qy=I(()=>{n0();Wl();o0();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */s0=BigInt(0),x1=BigInt(1),a0=BigInt(2),C1=BigInt(3),I1=BigInt(5),O1=BigInt(8),Vd=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),R1={p:Vd,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:O1,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};l0=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");c0=t0(R1,{uvRatio:q1}),sr=(()=>{let n=Vd,e=t=>{let{pow_p_5_8:i,b2:o}=p0(t);return Ge(Un(i,C1,n)*o,n)};return r0({P:n,type:"x25519",powPminus2:e,adjustScalarBytes:E1,scalarMultBase:t=>{let i=Ge(t,c0.Fn.ORDER);if(i===s0)return s0;let o=c0.BASE.multiply(i);return Ge((o.Z+o.Y)*e(Ge(o.Z-o.Y,n)),n)}})})()});var Kd,Wd,d0=I(()=>{gs();Kd=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(e,t){if(Fv(e),tr(t,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("expected Hash instance");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(t.length>i?e.create().update(t).digest():t);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),ms(o)}update(e){return hs(this),this.iHash.update(e),this}digestInto(e){hs(this),Kp(e,this),this.finished=!0;let t=e.subarray(0,this.outputLen);this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:i,finished:o,destroyed:s,blockLen:r,outputLen:a,canXOF:c}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=r,e.outputLen=a,e.canXOF=c,e.oHash=t._cloneInto(e.oHash),e.iHash=i._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Wd=(()=>{let n=((e,t,i)=>new Kd(e,t).update(i).digest());return n.create=(e,t)=>new Kd(e,t),n})()});function Gd(n){return"dh"in n?n:{publicKey:n.publicKey,dh:e=>Eo(n.secretKey,e)}}async function f0(n,e){let t;try{t=await n.dh(e)}catch(i){throw i instanceof rt?i:new rt("invalid public key")}return w0(t)}function Es(){let n=sr.utils.randomSecretKey();return{secretKey:n,publicKey:sr.getPublicKey(n)}}function b0(n){return{secretKey:n,publicKey:sr.getPublicKey(n)}}function Gl(...n){let e=0;for(let o of n)e+=o.length;let t=new Uint8Array(e),i=0;for(let o of n)t.set(o,i),i+=o.length;return t}function w0(n){let e=0;for(let t of n)e|=t;if(e===0)throw new rt("invalid public key (all-zero shared secret)");return n}function Eo(n,e){let t;try{t=sr.getSharedSecret(n,e)}catch{throw new rt("invalid public key")}return w0(t)}function h0(n,e){let t=Wd(it,n,e),i=Wd(it,t,Uint8Array.of(1)),o=Wd(it,t,Gl(i,Uint8Array.of(2)));return[i,o]}function m0(n){let e=new Uint8Array(12),t=new DataView(e.buffer);return t.setUint32(4,n>>>0,!0),t.setUint32(8,Math.floor(n/2**32),!0),e}function Ti(n,e,t){for(let[i,o]of[["collection",n],["target device",t]])if(o.length!==16)throw new rt(`${i} ID must be 16 bytes`);if(e&&e.length!==16)throw new rt("grant ID must be 16 bytes");return Gl(T1,n,e??M1,t)}var y0,$n,u0,g0,Is,Ty,Hd,rt,Os,Yd,Rs,Jd,T1,M1,qo=I(()=>{"use strict";qA();qy();d0();Cr();y0="Noise_IK_25519_ChaChaPoly_SHA256",$n=32,u0=32,g0=65535,Is=16,Ty=g0-Is,Hd=2**30;rt=class extends Error{constructor(e){super(e),this.name="NoiseError"}},Os=class{constructor(e=null){this.k=e}k;n=0;hasKey(){return this.k!==null}get count(){return this.n}encrypt(e,t){if(!this.k)return t;if(this.n>=Hd)throw new rt("session message limit reached");let i=wy(this.k,m0(this.n),e).encrypt(t);return this.n++,i}decrypt(e,t){if(!this.k)return t;if(this.n>=Hd)throw new rt("session message limit reached");let i;try{i=wy(this.k,m0(this.n),e).decrypt(t)}catch{throw new rt("decryption failed")}return this.n++,i}},Yd=class{ck;h;cs=new Os;constructor(e){let t=new TextEncoder().encode(e);t.length<=u0?(this.h=new Uint8Array(u0),this.h.set(t)):this.h=it(t),this.ck=this.h}mixKey(e){let[t,i]=h0(this.ck,e);this.ck=t,this.cs=new Os(i)}mixHash(e){this.h=it(Gl(this.h,e))}encryptAndHash(e){let t=this.cs.encrypt(this.h,e);return this.mixHash(t),t}decryptAndHash(e){let t=this.cs.decrypt(this.h,e);return this.mixHash(e),t}split(){let[e,t]=h0(this.ck,new Uint8Array(0));return[new Os(e),new Os(t)]}},Rs=class{constructor(e){this.opts=e;if(e.remoteStatic.length!==$n)throw new rt("remote static key must be 32 bytes");this.e=e.ephemeral??Es(),this.ss.mixHash(e.prologue),this.ss.mixHash(e.remoteStatic)}opts;ss=new Yd(y0);e;state="start";async writeMessage1(e){if(this.state!=="start")throw new rt("handshake out of order");this.state="sent";let t=Gd(this.opts.staticKey),i=this.ss;i.mixHash(this.e.publicKey),i.mixKey(Eo(this.e.secretKey,this.opts.remoteStatic));let o=i.encryptAndHash(t.publicKey);i.mixKey(await f0(t,this.opts.remoteStatic));let s=i.encryptAndHash(e),r=Gl(this.e.publicKey,o,s);if(r.length>g0)throw new rt("handshake message too large");return r}async readMessage2(e){if(this.state!=="sent")throw new rt("handshake out of order");if(e.length<$n+Is)throw new rt("handshake message too short");this.state="done";let t=this.ss,i=e.subarray(0,$n);t.mixHash(i),t.mixKey(Eo(this.e.secretKey,i)),t.mixKey(await f0(Gd(this.opts.staticKey),i));let o=t.decryptAndHash(e.subarray($n)),[s,r]=t.split();return{payload:o,transport:{send:s,recv:r,handshakeHash:t.h,remoteStatic:this.opts.remoteStatic}}}},Jd=class{constructor(e){this.opts=e;this.e=e.ephemeral??Es(),this.ss.mixHash(e.prologue),this.ss.mixHash(e.staticKey.publicKey)}opts;ss=new Yd(y0);e;rs=null;re=null;state="start";readMessage1(e){if(this.state!=="start")throw new rt("handshake out of order");if(this.state="done",e.length<$n+$n+Is+Is)throw new rt("handshake message too short");let t=this.ss,i=e.subarray(0,$n).slice();t.mixHash(i),t.mixKey(Eo(this.opts.staticKey.secretKey,i));let o=t.decryptAndHash(e.subarray($n,$n+$n+Is));t.mixKey(Eo(this.opts.staticKey.secretKey,o));let s=t.decryptAndHash(e.subarray($n+$n+Is));return this.re=i,this.rs=o,this.state="read",{remoteStatic:o,payload:s}}writeMessage2(e){if(this.state!=="read"||!this.re||!this.rs)throw new rt("handshake out of order");this.state="done";let t=this.ss;t.mixHash(this.e.publicKey),t.mixKey(Eo(this.e.secretKey,this.re)),t.mixKey(Eo(this.e.secretKey,this.rs));let i=t.encryptAndHash(e),[o,s]=t.split();return{message:Gl(this.e.publicKey,i),transport:{send:s,recv:o,handshakeHash:t.h,remoteStatic:this.rs}}}},T1=new TextEncoder().encode("mdbase/v1/client"),M1=new Uint8Array(16)});function L1(n,e,t){return new Promise((i,o)=>{let s=()=>o(A("cancelled","connect aborted"));t?.addEventListener("abort",s,{once:!0}),n.onmessage=r=>{t?.removeEventListener("abort",s),n.onmessage=a=>{e.push(a)},i(r)},n.onclose=r=>{t?.removeEventListener("abort",s),o(r??A("unavailable","connection closed during the handshake"))}})}function Ly(n,e,t=My,i=[]){let o=new Uint8Array(0),s=!1,r=setTimeout(()=>l(),t);r.unref?.();let a={ondata:null,onclose:null,write(p){if(s)throw A("unavailable","connection closed");for(let d=0;d<p.length;d+=Ty){if(e.send.count>=Hd-1)throw l(),A("unavailable","session message limit reached; reconnecting");n.send(e.send.encrypt(o,p.subarray(d,d+Ty)))}},close(){s||(s=!0,clearTimeout(r),n.close())}},c=p=>{if(s)return;let d;try{d=e.recv.decrypt(o,p)}catch{l(A("unavailable","transport message failed authentication","noise"));return}a.ondata?.(d)};if(n.onmessage=c,n.onclose=p=>l(p),i.length){let p=i.splice(0);queueMicrotask(()=>p.forEach(c))}function l(p){s||(s=!0,clearTimeout(r),n.close(),a.onclose?.(p))}return a}function Mi(n){return{description:n.description,async open(e,t){let i=()=>A("cancelled","connect aborted");if(t?.aborted)throw i();let o=await n.target(t);if(t?.aborted)throw i();let s=await o.openCarrier(t);if(t?.aborted)throw s.close(),i();try{let r=new Rs({prologue:o.prologue,staticKey:n.staticKey,remoteStatic:o.remoteStatic}),a=[],c=L1(s,a,t);c.catch(()=>{}),o.preamble&&s.send(o.preamble);let l=await r.writeMessage1(n.firstPayload?n.firstPayload(e):ce(e));if(t?.aborted)throw i();s.send(l);let{payload:p,transport:d}=await r.readMessage2(await c),u=ue(p);return{port:nd(Ly(s,d,n.lifetimeMs,a)),helloResponse:u,...o.device?{device:o.device}:{}}}catch(r){throw s.close(),oe(r)?r:r instanceof rt?A("unauthenticated",`handshake failed: ${r.message}`,"noise"):A("unavailable",`handshake failed: ${String(r)}`)}}}}function qs(n,e=j1,t){return new Promise((i,o)=>{let s;try{s=e(n)}catch(l){o(oe(l)?l:A("unavailable",`cannot open ${n}: ${String(l)}`));return}s.binaryType="arraybuffer";let r=!1,a={onmessage:null,onclose:null,send(l){s.send(l)},close(){try{s.close(1e3)}catch{}}},c=()=>{s.close(),o(A("cancelled","connect aborted"))};t?.addEventListener("abort",c,{once:!0}),s.onopen=()=>{r=!0,t?.removeEventListener("abort",c),i(a)},s.onmessage=l=>{let p=l.data;p instanceof ArrayBuffer?a.onmessage?.(new Uint8Array(p)):ArrayBuffer.isView(p)&&a.onmessage?.(new Uint8Array(p.buffer,p.byteOffset,p.byteLength))},s.onerror=()=>{},s.onclose=l=>{let p=N1(l.code,l.reason);r?a.onclose?.(p):(t?.removeEventListener("abort",c),o(p??A("unavailable",`cannot connect to ${n}`)))}})}function N1(n,e){switch(n){case 4404:return A("unavailable",e||"no device of this collection is online","no_device_online");case 4401:return A("unauthenticated",e||"relay refused the session");case 4403:return A("forbidden",e||"relay refused the session");case 4429:return A("rate_limited",e||"rate limited");default:return}}function v0(n){let e=new Uint8Array(0),t={onmessage:null,onclose:null,send(i){if(i.length>65535)throw A("too_large","Noise message over 65535 bytes");let o=new Uint8Array(2+i.length);o[0]=i.length>>8,o[1]=i.length&255,o.set(i,2),n.write(o)},close(){n.close()}};return n.ondata=i=>{let o=new Uint8Array(e.length+i.length);o.set(e),o.set(i,e.length);let s=0;for(;o.length-s>=2;){let r=o[s]<<8|o[s+1];if(o.length-s-2<r)break;t.onmessage?.(o.slice(s+2,s+2+r)),s+=2+r}e=o.slice(s)},n.onclose=i=>t.onclose?.(i?A("unavailable",i.message):void 0),t}var My,j1,Ts=I(()=>{"use strict";Je();ie();qo();Ol();My=1440*60*1e3;j1=n=>{let e=globalThis.WebSocket;if(!e)throw A("unavailable","no WebSocket implementation; pass webSocket");return new e(n)}});function Mr(n){return!1}function ot(n){try{let e=new URL(n);return e.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(e.hostname)}catch{return!1}}function jy(n){return!1}var Xd=I(()=>{"use strict"});function Ny(n){let e=typeof n=="number"&&Number.isInteger(n)&&n>=1e3&&n<=4999?n:null;return Object.freeze({closeCode:e,closeClass:e===null?"unknown":U1[e]??"other"})}function _0(n){try{if(n instanceof Map&&n.has("relayCloseCode"))return Ny(n.get("relayCloseCode"))}catch{}}var U1,Uy=I(()=>{"use strict";U1={1e3:"normal",1001:"going_away",1002:"protocol_error",1003:"unsupported_data",1005:"no_status",1006:"abnormal",1007:"invalid_payload",1008:"policy_violation",1009:"message_too_big",1010:"extension_required",1011:"internal_error",1012:"service_restart",1013:"try_again_later",1014:"bad_gateway",1015:"tls_failure",4e3:"pipe_closed",4401:"unauthenticated",4403:"grant_inactive",4404:"connector_offline",4429:"connector_busy"}});function To(n,e){let t=typeof e=="string"&&$1.has(e)?e:void 0,i=Ny(n),o=new Map([["relayCloseCode",i.closeCode],["relayCloseClass",i.closeClass]]),s=(r,a,c,l)=>A(r,a,{reason:c,details:o,...l===void 0?{}:{retryAfterMs:l}});switch(i.closeCode){case 4401:return s("unauthenticated",t??"relay: unauthenticated","relay_unauthenticated");case 4403:return s("forbidden",t??"relay: grant inactive",t??"grant_inactive");case 4404:return t&&o.set("relay",t),s("unavailable","no device of this collection is online","no_device_online");case 4429:return s("rate_limited",t??"relay: busy",t??"connector_busy",5e3);case 4e3:return t==="device_key_mismatch"?s("unauthenticated","relay: the routed key is not the device's",t):s("unavailable",`relay closed the pipe: ${t??"unknown"}`,t??"pipe_closed");default:return s("unavailable",`relay connection closed${i.closeCode===null?"":` (${i.closeCode})`}`,"relay_closed")}}function z1(n){let e=globalThis.WebSocket;if(!e)throw A("unavailable","no WebSocket implementation; pass webSocket");return new e(n)}function Ms(n,e,t=z1,i){let o="";try{o=new URL(n).protocol}catch{return Promise.reject(A("invalid_request",`invalid relay URL ${n}`,"relay_url"))}return o!=="wss:"&&!!1?Promise.reject(A("invalid_request","relay pipes require wss:","relay_insecure")):e.grant?new Promise((s,r)=>{let a;try{a=t(n)}catch(h){r(A("unavailable",`cannot open ${n}: ${String(h)}`));return}a.binaryType="arraybuffer";let c=!1,l=!1,p=new Uint8Array(0),d={onmessage:null,onclose:null,send(h){if(h.length>65535)throw A("too_large","Noise message over 65535 bytes");let m=new Uint8Array(4+h.length);new DataView(m.buffer).setUint32(0,h.length),m.set(h,4),a.send(m)},close(){try{a.close(1e3)}catch{}}},u=h=>{l?d.onclose?.(h):(l=!0,i?.removeEventListener("abort",f),r(h))},f=()=>{a.close(),u(A("cancelled","connect aborted"))};i?.addEventListener("abort",f,{once:!0}),a.onopen=()=>{a.send(JSON.stringify({type:"pipe_auth",access_token:e.accessToken,collection:e.collection,grant:e.grant,device:e.device,device_noise_pk:ri(e.devicePublicKey)}))},a.onmessage=h=>{let m=h.data;if(typeof m=="string"){let y;try{y=JSON.parse(m)}catch{return}y.type==="pipe_opened"&&!c?(c=!0,l=!0,i?.removeEventListener("abort",f),s(d)):y.type==="pipe_close"&&(a.close(),u(To(4e3,y.reason)));return}if(!c)return;let b=m instanceof ArrayBuffer?new Uint8Array(m):ArrayBuffer.isView(m)?new Uint8Array(m.buffer,m.byteOffset,m.byteLength):null;if(!b)return;if(b.length>D1){a.close(),u(A("too_large","relay frame over the limit"));return}let w=new Uint8Array(p.length+b.length);w.set(p),w.set(b,p.length);let g=0;for(;w.length-g>=4;){let y=new DataView(w.buffer,w.byteOffset+g,4).getUint32(0);if(y>65535){a.close(),u(A("internal","relay sent an oversized Noise message"));return}if(w.length-g-4<y)break;d.onmessage?.(w.slice(g+4,g+4+y)),g+=4+y}p=w.slice(g)},a.onerror=()=>{},a.onclose=h=>u(To(h.code,h.reason))}):Promise.reject(A("invalid_request","relay pipes require a grant","grant_required"))}var D1,$1,Yl=I(()=>{"use strict";Xd();ie();Uy();Je();D1=65539,$1=new Set("unauthenticated grant_inactive connector_offline connector_busy device_mismatch device_key_mismatch closed client_closed handshake_timeout idle lifetime frame_too_large invalid_frame not_served relay_closing authorization_unavailable grant_revoked".split(" "))});function Ls(n){return typeof n=="string"&&B1.has(n)}function zn(n){if(n==null)return null;if(typeof n!="object"||Array.isArray(n))return Object.freeze({state:"unavailable",reason:"device_offline"});let e=n;return e.state==="available"?Object.freeze({state:"available"}):e.state==="unavailable"&&Ls(e.reason)?Object.freeze({state:"unavailable",reason:e.reason}):Object.freeze({state:"unavailable",reason:"device_offline"})}function un(n){let e=new Map([["availability",n]]);return n==="collection_deleted"?new pe({code:"forbidden",message:"this collection was deleted",reason:n,recovery:"none",details:e}):n==="access_removed"?A("forbidden","this account no longer has access to this collection",{reason:n,details:e}):n==="sync_required"?A("forbidden","this collection must be set up again for this app",{reason:n,details:e}):A("unavailable",`this collection can't be opened now (${n})`,{reason:n,details:e})}var Dy,B1,Lr=I(()=>{"use strict";ie();Dy=["device_offline","desktop_update_required","old_connector_running","approval_required","sync_required","no_device_registered","access_removed","collection_migrating","collection_not_yet_migrated","collection_deleted"],B1=new Set(Dy)});function zy(n){let e=new Uint8Array(0),t=!1,i,o=null,s=null,r=[],a=0,c={get onmessage(){return o},set onmessage(d){for(o=d;d&&!t&&r.length&&o===d;){let u=r.shift();a-=u.length,d(u)}},get onclose(){return s},set onclose(d){s=d,d&&t&&i&&d(i)},send(d){if(t)throw A("unavailable","relay pipe closed");if(d.length>$y)throw A("too_large","Noise message over 65535 bytes");let u=new Uint8Array(4+d.length);new DataView(u.buffer).setUint32(0,d.length),u.set(d,4),n.send(u)},close(){t||(t=!0,r.length=0,a=0,n.close())}},l=(d,u)=>{t||(t=!0,e=new Uint8Array(0),r.length=0,a=0,i=To(d,u),n.close(),s?.(i))},p=d=>{if(!t){if(o)return o(d);if(r.length>=F1||a+d.length>V1)return l(4e3,"invalid_frame");r.push(d),a+=d.length}};return n.onmessage=d=>{if(t)return;if(d.length>k0)return l(4e3,"invalid_frame");let u=new Uint8Array(e.length+d.length);u.set(e),u.set(d,e.length);let f=0;for(;u.length-f>=4;){let h=new DataView(u.buffer,u.byteOffset+f,4).getUint32(0);if(h>$y)return l(4e3,"invalid_frame");if(u.length-f-4<h)break;let m=u.slice(f+4,f+4+h);if(f+=4+h,p(m),t)return}e=u.slice(f),e.length>k0&&l(4e3,"invalid_frame")},n.onclose=d=>l(d?.code,d?.reason),c}async function S0(n){try{return await n()}catch(e){if(oe(e))throw e;if(e?.code==="not_authorized")throw A("unauthenticated","Connect authorization is missing","not_authorized");let i=e?.cause;throw typeof i?.code=="number"?To(i.code,typeof i.reason=="string"?i.reason:void 0):A("unavailable","the relay pipe could not be opened","relay_unavailable")}}function js(n,e){let t=n.targets.filter(o=>Zd.test(o.device)&&/^[0-9a-f]{64}$/.test(o.noise_pk)&&!!o.relay_collection&&Zd.test(o.relay_collection)),i=t.filter(o=>o.device===e);return i.length?i:[...t.filter(o=>o.online===!0),...t.filter(o=>o.online!==!0)]}function P0(n){let e=n.collection,t=n.next,i=n.staticKey;if(!Zd.test(e))throw A("invalid_request","collection must be a UUID");let o=t.route.bind(t),s=t.openPipe.bind(t),r=null,a=Mi({description:`next-relay:${e}`,staticKey:i,target:async c=>{let l=await S0(()=>o(e,c?{signal:c}:{}));if(l.collection.toLowerCase()!==e.toLowerCase()||!Zd.test(l.grant))throw A("unauthenticated","the route does not match this collection's grant","route_mismatch");let p=zn(l.availability);if(p?.state==="unavailable")throw un(p.reason);let d=js(l,r)[0];if(!d)throw A("unavailable",l.reason==="no_device_registered"?"this collection has no device set up to serve it":"no device of this collection is online",l.reason??"no_device_online");let u=Object.freeze({...d}),f=u.noise_pk,h=new Uint8Array(32);for(let m=0;m<32;m++)h[m]=parseInt(f.slice(2*m,2*m+2),16);return{prologue:Ti(U(u.relay_collection),U(l.grant),U(u.device)),remoteStatic:h,device:u.device,openCarrier:async m=>{let b=await S0(()=>s(e,u,m?{signal:m}:{}));return zy(b)}}}});return yd({description:a.description,open:async(c,l)=>{let p=await a.open(c,l);return r=p.device??null,p},get target(){return r}})}var $y,k0,F1,V1,Zd,By=I(()=>{"use strict";ge();Lr();ie();qo();Ts();Yl();gd();$y=65535,k0=4+$y,F1=16,V1=1<<20,Zd=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i});function eu(n){if(!n||typeof n!="object"||Array.isArray(n))throw Bn();return n}function j0(n){if(typeof n!="string")return!1;try{let e=new URL(n);return["http:","https:"].includes(e.protocol)&&!e.username&&!e.password}catch{return!1}}function L0(n){let e=eu(n);if(!j0(e.issuer)||typeof e.subject!="string"||!e.subject.trim()||typeof e.name!="string"||!e.name.trim())throw Bn();let t=e.account_id;if(t!==void 0){if(typeof t!="string")throw Bn();try{if(U(t).every(i=>i===0))throw Bn()}catch{throw Bn()}}return{issuer:e.issuer,subject:e.subject,name:e.name,...t===void 0?{}:{accountId:t}}}function tu(n,e){return n.issuer===e.issuer&&n.subject===e.subject}function Y1(n){return Array.isArray(n)?n.flatMap(e=>{if(!(e instanceof Map))return[];let t=e.get("issuer"),i=e.get("subject");return typeof t!="string"||typeof i!="string"?[]:[{issuer:t,subject:i}]}):[]}function J1(n){let e=n.fields;if(!(e instanceof Map))throw Bn();let t=e.get("name"),i=e.get("identities"),o=Y1(i),s=n.issues.find(r=>r.severity==="error");return s?{reason:s.message,claims:o}:typeof t!="string"||!t.trim()?{reason:"It needs a non-blank name.",claims:o}:i!==void 0&&(!Array.isArray(i)||o.length!==i.length||o.some(r=>!r.subject.trim()))?{reason:"Each account identity needs an exact issuer and subject.",claims:o}:{name:t,identities:o,claims:o}}var Hy,Bn,jr,nu=I(()=>{"use strict";ge();ie();Hy=Object.freeze({id:"mdbase.person",version:"2.0.0"}),Bn=()=>A("unavailable","invalid people response","people_response");jr=class{constructor(e,t){this.client=e;this.authority=t}client;authority;check(e){if(e?.throwIfAborted(),!this.authority.isCurrent())throw A("unauthenticated","people scope changed","people_fenced")}checkReadSession(e){if(e!==this.client.currentSession()||e.closed)throw A("unavailable","people read session changed","people_fenced");let t=U(this.authority.collection),i=U(e.hello.collection);if(t.every(o=>o===0)||!t.every((o,s)=>o===i[s]))throw A("unauthenticated","people collection binding changed","people_binding")}async current(e={}){this.check(e.signal);let t=await this.authority.request("identity",e);this.check(e.signal);let i=L0(t),o=eu(t).person_settings_url;if(o===void 0)return i;if(!j0(o))throw Bn();return{...i,personSettingsUrl:o}}async members(e={}){this.check(e.signal);let t=eu(await this.authority.request("members",e));if(this.check(e.signal),!Array.isArray(t.members)||t.members.length>1e3)throw Bn();return t.members.map(i=>{let o=L0(i),s=eu(i).role;if(s!=="owner"&&s!=="editor"&&s!=="viewer")throw Bn();return{...o,role:s}})}async directory(e={}){let{members:t="if-approved",...i}=e;if(!["require","if-approved","omit"].includes(t))throw A("invalid_request","invalid members mode");this.check(i.signal);let o=async()=>{let u=await this.current(i);this.check(i.signal);let f=t==="omit"?void 0:await this.members(i).catch(h=>{if(!(t==="if-approved"&&oe(h,"forbidden")&&h.reason==="people_permission_declined"))throw h});return this.check(i.signal),{account:u,members:f}},[{account:s,members:r},a]=await Promise.all([o(),this.records(i)]);this.check(i.signal),this.checkReadSession(a.session);let c=a.invalid.filter(u=>u.claims.some(f=>tu(f,s))),l=a.people.filter(u=>u.identities.some(f=>tu(f,s))),p=l[0],d=c.length?{status:"invalid",paths:c.map(u=>u.path)}:l.length>1?{status:"ambiguous",paths:l.map(u=>u.path)}:p?{status:"linked",person:p}:{status:"unlinked"};return{account:s,me:d,people:a.people,invalid:a.invalid.map(({claims:u,...f})=>f),...r===void 0?{}:{members:r}}}async records(e){let t=await this.client.readyForRead(e.signal);this.check(e.signal),this.checkReadSession(t);let i,o,s,r=new Set,a=new Set,c=[],l=[];for(;;){this.check(e.signal);let d=await this.client.queryContract(Hy,{pageSize:128,...i?{cursor:i}:{},...e.signal?{signal:e.signal}:{}}).catch(f=>{if(!i&&!r.size&&oe(f,"not_found")&&f.reason==="data_contract_not_found")return null;throw f});if(this.check(e.signal),this.checkReadSession(t),!d)return{people:c,invalid:l,session:t};let{page:u}=d;if(!u.complete)throw A("unavailable","person inventory is incomplete","people_incomplete");if(o!==void 0&&o!==u.asOf||s!==void 0&&s!==d.contractDigest)throw Bn();o=u.asOf,s=d.contractDigest;for(let[f,h]of d.records.entries()){let m=u.records[f];if(h.id!==m?.id||r.has(h.id)||!h.implementations.length)throw Bn();if(r.add(h.id),r.size>1e4)throw A("too_large","person directory exceeds its record budget","people_budget");let b=h.implementations.map(J1),w=b[0],g=b.find(v=>"reason"in v),y=b.flatMap(v=>v.claims);g&&"reason"in g?l.push({id:h.id,path:m.path,reason:g.reason,claims:y}):b.some(v=>JSON.stringify(v)!==JSON.stringify(w))?l.push({id:h.id,path:m.path,reason:"Its Person implementations project different values.",claims:y}):"name"in w&&c.push({id:h.id,path:m.path,name:w.name,identities:w.identities,typeNames:[...new Set(h.implementations.map(v=>v.typeName))].sort()})}if(!u.cursor){if(u.hasMore===!0||u.totalCount!==void 0&&u.totalCount!==r.size)throw A("unavailable","person inventory is incomplete","people_incomplete");break}if(a.has(u.cursor))throw Bn();a.add(u.cursor),i=u.cursor}let p=(d,u)=>d.path<u.path?-1:d.path>u.path?1:0;return{people:c.sort(p),invalid:l.sort(p),session:t}}}});function Jl(n){return typeof n=="string"&&Q1.test(n)&&Number.isFinite(Date.parse(n))}function Xl(n){if(typeof n!="string"||!X1.test(n))throw pi()}function D0(n){if(typeof n!="string"||!iu.test(n))throw pi()}function Gy(n){if(typeof n!="string"||!n.length||n.length>100)throw pi()}function Yy(n){if(!n||Object.keys(n).some(e=>e!=="id"&&e!=="fireAt")||(D0(n.id),!Jl(n.fireAt)))throw pi();return{id:n.id,fire_at:new Date(n.fireAt).toISOString()}}function ar(n){if(!n||typeof n!="object"||Array.isArray(n))throw Xt();return n}function $0(n){let e=ar(n);if(typeof e.id!="string"||!iu.test(e.id)||typeof e.criterion_id!="string"||!e.criterion_id.length||e.criterion_id.length>100||!Jl(e.fire_at)||!Number.isSafeInteger(e.generation)||e.generation<1||!["scheduled","firing","fired","cancelled"].includes(e.status)||!Jl(e.created_at)||!Jl(e.updated_at)||e.fired_at!==null&&!Jl(e.fired_at))throw Xt();return{id:e.id,criterionId:e.criterion_id,fireAt:e.fire_at,generation:e.generation,status:e.status,createdAt:e.created_at,updatedAt:e.updated_at,firedAt:e.fired_at}}function Jy(n,e){let t=ar(n);if(t.namespace!==e||!Array.isArray(t.timers)||t.timers.length>Zl)throw Xt();let i=t.timers.map($0);if(new Set(i.map(o=>o.id)).size!==i.length||t.intent_revision!==void 0&&(!Number.isSafeInteger(t.intent_revision)||t.intent_revision<0))throw Xt();return{namespace:e,timers:i,...t.intent_revision===void 0?{}:{intentRevision:t.intent_revision}}}function N0(n){let{namespace:e,operationId:t,expectedRevision:i}=n;if(Xl(e),typeof t!="string"||!Z1.test(t)||!Number.isSafeInteger(i)||i<0||i===Number.MAX_SAFE_INTEGER)throw pi();return{namespace:e,operationId:t,expectedRevision:i}}function eR(n,e){let t=ar(n),i=Jy(t,e);if(!Array.isArray(t.cancelled_ids)||t.cancelled_ids.length>Zl||t.cancelled_ids.some(o=>typeof o!="string"||!iu.test(o))||new Set(t.cancelled_ids).size!==t.cancelled_ids.length)throw Xt();return{...i,cancelledIds:[...t.cancelled_ids]}}function U0(n,e){let t=ar(n);if(t.protocol_version!==1||t.namespace!==e.namespace||t.operation_id!==e.operationId||t.expected_revision!==e.expectedRevision||t.committed_revision!==e.expectedRevision+1||Object.keys(t).some(r=>!["protocol_version","namespace","operation_id","expected_revision","committed_revision","result"].includes(r)))throw Xt();let i=ar(t.result);if(Object.keys(i).some(r=>!["namespace","timers","cancelled_ids"].includes(r)))throw Xt();let o=eR(i,e.namespace),s=["id","criterion_id","fire_at","generation","status","created_at","updated_at","fired_at"];for(let r of i.timers)if(Object.keys(ar(r)).some(a=>!s.includes(a)))throw Xt();if(o.cancelledIds.some(r=>o.timers.some(a=>a.id===r)))throw Xt();return{protocolVersion:1,...e,committedRevision:t.committed_revision,result:o}}async function tR(n){let e=globalThis.navigator?.serviceWorker;if(!e)throw A("invalid_request","Web Push needs a service worker.","timer_push_platform");return await new Promise((t,i)=>{let o=()=>i(A("cancelled","Timer request cancelled before dispatch."));if(n?.aborted)return o();n?.addEventListener("abort",o,{once:!0}),e.ready.then(t,i).finally(()=>n?.removeEventListener("abort",o))})}var X1,iu,Z1,Q1,Zl,pi,Xt,Ns,Xy=I(()=>{"use strict";ie();X1=/^[A-Za-z0-9._-]{1,64}$/,iu=/^[A-Za-z0-9._:-]{1,128}$/,Z1=/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,Q1=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:\d{2})$/i,Zl=1e4,pi=()=>A("invalid_request","Invalid opaque timer request."),Xt=()=>A("internal","Invalid control-plane timer response.","invalid_timer_response");Ns=class{constructor(e,t={}){this.port=e;this.criteria=t.criteria?.length?[...t.criteria]:void 0}port;lifetime=new AbortController;criteria;close(){this.lifetime.signal.aborted||(this.lifetime.abort(),this.port.close?.())}async run(e,t,i){let o=e.signal?AbortSignal.any([this.lifetime.signal,e.signal]):this.lifetime.signal;if(o.aborted)throw A("cancelled","Timer request cancelled before dispatch.");let s;try{s=await i({signal:o})}catch(r){let a=r&&typeof r=="object"?r.problem?.operation_outcome:void 0;throw t&&a==="unknown"?A("outcome_unknown","Timer or channel write outcome is unknown."):t&&oe(r,"internal")&&r.reason==="invalid_timer_response"?A("outcome_unknown","Timer write returned an invalid response."):r}if(o.aborted)throw A(t?"outcome_unknown":"cancelled","Timer request ended before its response was observed.");return s}list(e,t={}){return Xl(e),this.run(t,!1,async i=>Jy(await this.port.list(e,i),e))}put(e,t={}){Xl(e.namespace),Gy(e.criterionId);let i=Yy(e.timer),o=e.namespace,s=e.criterionId;return this.run(t,!0,async r=>{let a=$0(await this.port.put(o,i.id,{criterion_id:s,fire_at:i.fire_at},r));if(a.id!==i.id||a.criterionId!==s||Date.parse(a.fireAt)!==Date.parse(i.fire_at))throw Xt();return a})}cancel(e,t={}){if(Xl(e.namespace),D0(e.id),e.generation!==void 0&&(!Number.isSafeInteger(e.generation)||e.generation<1))throw pi();let{namespace:i,id:o,generation:s}=e;return this.run(t,!0,async r=>{let a=ar(await this.port.cancel(i,o,s,r));if(a.namespace!==i||a.id!==o||typeof a.cancelled!="boolean")throw Xt();return{namespace:i,id:o,cancelled:a.cancelled}})}reconcile(e,t={}){if(Xl(e.namespace),Gy(e.criterionId),!Array.isArray(e.timers)||e.timers.length>Zl)throw pi();let i=e.timers.map(Yy),o=new Map(i.map(a=>[a.id,a.fire_at]));if(o.size!==i.length)throw pi();let s=e.namespace,r=e.criterionId;return this.run(t,!0,async a=>{let c=ar(await this.port.reconcile(s,{criterion_id:r,timers:i},a)),l=Jy(c,s);if(l.timers.length!==i.length||l.timers.some(p=>!o.has(p.id)||p.criterionId!==r||Date.parse(p.fireAt)!==Date.parse(o.get(p.id)))||!Array.isArray(c.cancelled_ids)||c.cancelled_ids.length>Zl||c.cancelled_ids.some(p=>typeof p!="string"||!iu.test(p)||o.has(p))||new Set(c.cancelled_ids).size!==c.cancelled_ids.length)throw Xt();return{...l,cancelledIds:c.cancelled_ids}})}reconcileWithReceipt(e,t={}){let i=N0(e),o=e.criterionId;if(Gy(o),!Array.isArray(e.timers)||e.timers.length>Zl)throw pi();let s=e.timers.map(Yy),r=new Map(s.map(l=>[l.id,l.fire_at]));if(r.size!==s.length)throw pi();let a=this.port.reconcileWithReceipt;if(!a)throw A("upgrade_required","Timer port does not support original-operation recovery.","timer_operation_recovery_unavailable");let c={protocol_version:1,operation_id:i.operationId,expected_revision:i.expectedRevision};return this.run(t,!0,async l=>{let p=U0(await a.call(this.port,i.namespace,{criterion_id:o,timers:s,recovery:c},l),i);if(p.result.timers.length!==s.length||p.result.timers.some(d=>d.criterionId!==o||!r.has(d.id)||Date.parse(d.fireAt)!==Date.parse(r.get(d.id))))throw Xt();return p})}lookupOperation(e,t={}){let i=N0(e),o=this.port.lookupOperation;if(!o)throw A("upgrade_required","Timer port does not support original-operation recovery.","timer_operation_recovery_unavailable");return this.run(t,!0,async s=>{let r=ar(await o.call(this.port,i.namespace,i.operationId,s));if(r.outcome==="committed"&&Object.keys(r).length===2)return{outcome:"committed",receipt:U0(r.receipt,i)};if(r.outcome==="unknown"&&r.namespace===i.namespace&&r.operation_id===i.operationId&&Object.keys(r).length===3)return{outcome:"unknown",namespace:i.namespace,operationId:i.operationId};throw Xt()}).catch(()=>{throw A("outcome_unknown","Original timer operation could not be recovered.")})}registerWebPush(e={}){let t=e.criteria??this.criteria;return this.run(e,!0,async i=>{let o=e.serviceWorker??await tR(i.signal);return this.port.registerWebPush({...e,...t?{criteria:[...t]}:{},serviceWorker:o,...i})})}unregisterWebPush(e,t={}){return this.run(t,!0,i=>this.port.unregisterWebPush(e,i))}registerFcm(e){let t=e.criteria??this.criteria;return this.run(e,!0,i=>this.port.registerFcm({...e,...t?{criteria:[...t]}:{},...i}))}unregisterFcm(e={}){return this.run(e,!0,t=>this.port.unregisterFcm(t))}}});function Ds(n,e={}){return{description:"in-process",open(t,i){return new Promise((o,s)=>{let r;try{r=n.connect(e)}catch(c){s(A("unavailable",`runtime refused to connect: ${String(c)}`));return}let a=()=>{r.close(),s(A("cancelled","connect aborted"))};i?.addEventListener("abort",a,{once:!0}),r.onframe=c=>{i?.removeEventListener("abort",a),r.onframe=null,r.onclose=null,o({port:r,helloResponse:c})},r.onclose=c=>{i?.removeEventListener("abort",a),s(c??A("unavailable","runtime closed the session"))},r.send(t)})}}}var ou=I(()=>{"use strict";ie()});function Mo(n){try{n instanceof Map&&(n={code:n.get("code"),paths:n.get("paths")});let e=au(n),t=au(e?.error)??e,i=t?.code;if(typeof i!="string"||!cR.test(i))return null;let o=au(t.details)?.issues,s=Array.isArray(t.paths)?t.paths:Array.isArray(o)?o.slice(0,64).map(a=>au(a)?.path):[],r=[];for(let a of s.slice(0,64))if(typeof a=="string"&&pR.test(a)&&!r.includes(a)&&r.push(a),r.length===5)break;return Object.freeze({code:i,paths:Object.freeze(r)})}catch{return null}}function Z0(n){return n?`This app's registration was rejected (${n.code==="invalid_application_manifest"?"invalid manifest":n.code.replaceAll("_"," ")}${n.paths.length?`: ${n.paths.join(", ")}`:""}).`:"This app's registration was rejected by mdbase."}var cR,pR,au,lu=I(()=>{"use strict";cR=/^[a-z][a-z0-9_]{0,63}$/,pR=/^(?:\/[A-Za-z0-9_-]{1,64}){1,6}$/,au=n=>n!==null&&typeof n=="object"&&!Array.isArray(n)?n:null});function An(n){return typeof n=="object"&&n!==null&&rg.has(n)}function hR(n,e){let t=n?.retry_after_ms,i=n?.retry_after_seconds;if(typeof t=="number"&&Number.isFinite(t)&&t>=0)return cu(t);if(typeof i=="number"&&Number.isFinite(i)&&i>=0)return cu(i*1e3);let o=e?.get("retry-after")?.trim();return o&&/^[0-9]{1,6}$/.test(o)?cu(Number(o)*1e3):null}function pu(n,e=null){if(typeof n!="string"||n.length>2048||/[\u0000-\u0020\u007f]/.test(n))return null;try{let t=new URL(n);if(t.protocol!=="https:"||t.username||t.password||t.port)return null;let i=t.hostname;return i==="mdbase.dev"||i.endsWith(".mdbase.dev")||e!==null&&t.origin===e?t.href:null}catch{return null}}function Ur(n,e=null){try{if(An(n))return n;if(typeof n!="object"||n===null||Array.isArray(n)||Object.getPrototypeOf(n)!==Object.prototype||Object.keys(n).sort().join(",")!==mR)return null;let t=n,i=t.status,o=t.retryAfterMs;if(typeof i!="number"||!Number.isSafeInteger(i)||i<0||i>999||t.code!==null&&zs(t.code)===null||t.reason!==null&&zs(t.reason)===null||o!==null&&(typeof o!="number"||!Number.isFinite(o)||o<0)||t.updateUrl!==null&&typeof t.updateUrl!="string")return null;let s=Object.freeze({status:i,code:zs(t.code),reason:zs(t.reason),retryAfterMs:o===null?null:cu(o),updateUrl:pu(t.updateUrl,e)});return rg.add(s),s}catch{return null}}function Li(n,e,t=null,i=null){let o=e&&typeof e=="object"&&!Array.isArray(e)?e.error:void 0,s=o&&typeof o=="object"&&!Array.isArray(o)?o:null,r=s?.details&&typeof s.details=="object"&&!Array.isArray(s.details)?s.details:null,a=Object.freeze({status:Number.isSafeInteger(n)?n:0,code:zs(s?.code),reason:zs(r?.reason),retryAfterMs:hR(r,t),updateUrl:pu(r?.update_url,i)});return rg.add(a),a}function St(n){if(!n)return null;let e=[n.reason,n.code];return n.status===429&&n.code==="account_collection_quota_exceeded"?"account_collection_quota_exceeded":e.includes("collection_not_yet_migrated")?"collection_not_yet_migrated":e.includes("collection_migrating")?"collection_migrating":e.includes("account_suspended")?"account_suspended":e.some(t=>t==="moved_to_next_runtime"||t==="collection_moved"||t==="client_update_required")||n.status===426?"update_required":null}function Vs(n){try{return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(n))}catch{return}}var dR,rg,Bs,Fs,uR,fR,Q0,zs,cu,mR,Fn=I(()=>{"use strict";dR=/^[a-z][a-z0-9_]{0,63}$/,rg=new WeakSet;Bs=5e3,Fs=6e5,uR=Bs,fR=Fs,Q0="https://mdbase.dev/downloads/",zs=n=>typeof n=="string"&&dR.test(n)?n:null,cu=n=>Math.min(fR,Math.max(uR,Math.round(n)));mR="code,reason,retryAfterMs,status,updateUrl"});function og(n){if(typeof n!="string")return null;if(nk(n))return n;if(Object.hasOwn(du,n))return du[n];for(let e of["readiness_","application_"]){if(!n.startsWith(e))continue;let t=n.slice(e.length);if(e==="readiness_"&&Object.hasOwn(tk,t))return tk[t];if(nk(t))return t;if(Object.hasOwn(du,t))return du[t]}return null}function PR(n){let e=n.details;if(e instanceof Map&&Ls(e.get("availability")))return e.get("availability");let t=Vn(n.availability)??(n.state==="unavailable"?n:null);return t&&t.state==="unavailable"&&Ls(t.reason)?t.reason:null}function sg(n,e){let t=lr(n);if(t)return{codes:[t],retryAfterMs:null,updateUrl:null};let i=Vn(n);if(!i)return null;try{if(typeof i.kind=="string"&&"problem"in i&&Vn(i.problem)&&typeof Vn(i.problem).code=="string")return sg(Vn(i.problem).code,e);let o=Vn(i.problemDetail),s=Ur(i.server??o?.server,e),r=[s?.reason??null,s?.code??null].filter(p=>p!==null),a={retryAfterMs:s?.retryAfterMs??SR(i.retryAfterMs),updateUrl:pu(s?.updateUrl,e)};if("problem"in i||"readiness"in i||"assessment"in i){let p=lr(i.problem)??lr(Vn(i.problem)?.code);if(p)return{codes:[...r,p],...a,refusal:Mo(o?.registration)};let d=Vn(i.readiness)??i,u=Vn(d.assessment),f=lr(Vn(d.problem)?.code)??lr(Vn(u?.problem)?.code);if(f)return{codes:[f],...a};let h=lr(u?.status)??lr(i.status);return h==="incompatible"||h==="setup_required"?{codes:[h],...a}:null}let c=PR(i);if(c)return{codes:[c==="approval_required"?"device_approval_required":c],...a};if("state"in i&&(i.state==="available"||i.state==="opening"))return null;let l=[...r,lr(i.reason),lr(i.code)].filter(p=>p!==null);return l.length?{codes:l,...a,refusal:Mo(i.details??o?.registration)}:null}catch{return null}}function ak(n){let e=n.codes[n.codes.length-1];try{for(let t of n.codes){if(sk.has(t))return{key:null,original:e};let i=og(t);if(i)return{key:i,original:e}}}catch{}return{key:"unknown",original:e}}function Lo(n,e={}){let t=typeof e.cpOrigin=="string"?e.cpOrigin:null,i=sg(n,t);if(!i)return null;let{key:o,original:s}=ak(i);if(o===null)return null;let[r,a,c,l,p=!1,d]=o==="unknown"?rk:ok[o],u;try{let w=e.messages;u=w&&Object.hasOwn(w,o)?Vn(w[o]):void 0}catch{u=void 0}let f=(w,g)=>typeof w=="string"&&w.trim()?w:g,h=typeof e.recoveryAccountLabel=="string"&&e.recoveryAccountLabel.trim().length>0&&e.recoveryAccountLabel.length<=320&&!Array.from(e.recoveryAccountLabel).some(w=>w.charCodeAt(0)<32||w.charCodeAt(0)===127)?e.recoveryAccountLabel:null,m=o==="recovery_account_mismatch"&&h?`This collection belongs to ${h}. Sign in as ${h} to continue.`:a,b=o==="recovery_account_mismatch"&&h?`Sign in as ${h}`:d??yR[c];return Object.freeze({key:o,title:f(u?.title,r),message:f(u?.message,m),action:c,actionLabel:b===null?null:f(u?.actionLabel,b),severity:l,transient:p,code:s,developerMessage:lk(o,s,i.refusal??null),retryAfterMs:i.retryAfterMs,updateUrl:c==="update_app"?i.updateUrl??Q0:null})}function lk(n,e,t){return n==="application_registration_refused"?Z0(t):Object.hasOwn(uu,n)?uu[n]:n==="unknown"?`Problem code ${e} has no user-facing copy; it is shown as a generic error.`:null}function fu(n,e={}){let t=sg(n,typeof e.cpOrigin=="string"?e.cpOrigin:null);if(!t)return null;for(let s of t.codes)if(Object.hasOwn(uu,s)&&sk.has(s))return uu[s];let{key:i,original:o}=ak(t);return i===null?null:lk(i,o,t.refusal??null)}var yR,ik,rk,gR,bR,wR,vR,ek,_R,ok,du,tk,AR,sk,uu,kR,lr,Vn,SR,nk,nc=I(()=>{"use strict";lu();Lr();Fn();yR={retry:"Try again",wait:null,reload:"Reload",sign_in:"Sign in",approve:"Approve",choose_collection:"Choose a collection",set_up:"Set up",update_app:"Update the app",free_space:"Manage storage",check_connection:"Try again",resolve_outcome:"Check and try again",contact_support:"Contact support",none:null},ik=["device_offline","desktop_update_required","old_connector_running","sync_required","no_device_registered","access_removed","read_only","capability_missing","collection_deleted","collection_unavailable","moved_to_next_runtime","device_approval_required","collection_migrating","collection_not_yet_migrated","account_suspended","update_required","account_collection_quota_exceeded","invalid_request","invalid_record","not_found","conflict","unauthenticated","forbidden","collection_invalid","unavailable","rate_limited","quota_exceeded","too_large","outcome_unknown","internal","refused","expired","approval_window_closed","account_confirmation_required","recovery_required","open_failed","busy","open_in_another_tab","not_authorized","sign_out_pending_writes","sign_out_failed","application_popup_blocked","sign_in_window","application_not_yet_available","application_failed","application_worker_unavailable","browser_unsupported","application_storage_unavailable","storage_may_be_evicted","application_registration_unsupported","application_registration_refused","application_selection_not_approved","application_selection_invalid","installation_scope_removed","recovery_account_mismatch","assets","setup_required","incompatible","approval_required","contract_mismatch","contract_missing","implementation_missing","catalog_invalid","catalog_response","type_invalid","readiness_budget","readiness_unsupported","notifications_consent_required","timer_channel_reapproval_required","notifications_unsupported","people_unsupported","people_permission_declined","people_access","configuration_conflict","configuration_unavailable","configuration_unsupported","configuration_busy_timeout","readiness_busy_timeout","setup_forbidden","setup_conflict","setup_unresolved","collection_setup_conflict","setup_records_forbidden","setup_changed","installed_newer","type_pack_conflict","invalid_type_pack","access_required","access_declined","access_undeclared","files_access_missing","files_scope_missing","file_read_failed","file_read_idle","collection_delete_name_mismatch","collection_delete_not_owner","collection_delete_not_found","collection_delete_frozen","collection_delete_busy","collection_delete_not_approved","collection_delete_sign_in","collection_delete_invalid","collection_delete_outcome_unknown","collection_delete_failed","wrong_secret","locked","weak_password","already_set_up","no_account_key"],rk=["Something went wrong","An unexpected problem occurred. Reload the app, and contact support if it keeps happening.","reload","error"],gR=["Another step hasn't finished","The app couldn't finish this step yet. Try again, or reload if it keeps happening.","retry","warning",!0],bR=["Can't connect right now","mdbase couldn't be reached. Check your connection and try again.","check_connection","warning"],wR=["Update required","Update mdbase on this computer, then reload the app to try again.","update_app","warning",!1,"Update mdbase"],vR=["Choose a collection","Pick the collection you want this app to use.","choose_collection","info"],ek=["Approval needed","This app needs your approval for extra access to your collection.","approve","info"],_R=["Set up this collection","This collection needs a one-time setup before the app can use it.","set_up","info"],ok={device_offline:["Your computer isn't online","This collection is kept on your computer. Open the mdbase desktop app on a computer that has it, and this app connects as soon as it's online.","wait","info",!0],desktop_update_required:["Update mdbase on your computer","The mdbase desktop app on the computer that has this collection is out of date. Update it there, then try again.","update_app","warning",!1,"Get the update"],old_connector_running:["Quit the old mdbase Connect app","The old mdbase Connect app is still running on the computer that has this collection. Quit it there (including its menu-bar or tray icon), then open the mdbase desktop app.","retry","warning"],sync_required:["Give this app access again","Access to this collection changed since you approved this app. Approve it again to keep using the collection.","approve","warning",!1,"Approve again"],no_device_registered:["Turn on sync for this collection","No computer is offering this collection to apps. Open the mdbase desktop app on the computer that has it and turn on sync. Web apps can reach a collection once sync is on.","retry","info"],installation_scope_removed:["Access was removed","This app's previous installation cannot regain access to this collection. Request access again to approve a new installation for this collection. Your other collections keep their access.","approve","warning",!1,"Request access again"],access_removed:["You no longer have access","You were removed from this collection, so this app can't open it. Ask its owner to add you again, or choose another collection.","choose_collection","warning"],collection_deleted:["Collection deleted","This collection was deleted, so it can't be opened any more. Choose another collection.","choose_collection","info"],collection_unavailable:["Collection not available","This collection can't be opened from this app right now. It may no longer be shared with this app, or the computer that offered it stopped. Choose another collection, or try again later.","choose_collection","warning"],moved_to_next_runtime:["mdbase was upgraded","This collection now uses the new version of mdbase. Update the app to keep using it; for a web app, reloading the page is enough. If the collection still doesn't appear, open the mdbase desktop app and turn on sync for it so web apps can reach it.","update_app","warning"],device_approval_required:["Waiting for your computer","Keep a computer with this collection running mdbase and signed in. This app connects when it is ready.","wait","info",!0],collection_not_yet_migrated:["Your collection needs an upgrade","Your data is safe. Open the latest mdbase desktop app on the computer that keeps this collection to finish upgrading it, then try again.","retry","info"],collection_migrating:["Your collection is being upgraded","Your data is safe. This usually takes a few minutes, and the app reconnects by itself when it's done.","wait","info",!0],account_suspended:["Your account is suspended","Your mdbase account has been suspended, so this app can't open your collections. Contact mdbase support for help.","contact_support","error"],update_required:wR,invalid_request:["Couldn't do that","Some of the information isn't valid. Check it and try again.","none","warning"],invalid_record:["Couldn't save that","Some fields aren't valid. Check them and try again.","none","warning"],not_found:["Not found","This item no longer exists. It may have been deleted on another device.","none","info"],conflict:["Changed somewhere else","This item was changed on another device. Review the latest version and try again.","retry","warning"],unauthenticated:["Sign in again","Your session has ended. Sign in again to continue.","sign_in","warning"],read_only:["View access only","You have view access, so changes can't be saved. Ask the collection's owner for edit access.","none","warning"],forbidden:["Access needed","This app doesn't have permission to do that. Approve access to continue.","approve","warning"],collection_invalid:["Your collection needs repair","Something in this collection isn't valid. Contact support if this keeps happening.","contact_support","error"],unavailable:bR,rate_limited:["Too many requests","Wait a moment, then try again.","retry","warning",!0],quota_exceeded:["Out of storage","Your collection has reached its storage limit. Free up space to keep saving.","free_space","error"],account_collection_quota_exceeded:["Synced collection limit reached","Your account has reached its synced collection limit. Delete a synced collection before creating another.","free_space","error",!1,"Manage collections"],too_large:["That's too large","This item is larger than mdbase allows.","none","warning"],outcome_unknown:["Not sure that worked","The connection dropped before mdbase confirmed it. Check whether it went through before trying again.","resolve_outcome","warning"],internal:rk,refused:["Sign-in didn't go through","mdbase didn't accept this sign-in. Try signing in again.","sign_in","warning"],expired:["Sign-in timed out","The sign-in request expired. Start again to get a new one.","sign_in","warning"],approval_window_closed:["Sign-in wasn't finished","The mdbase window was closed before access was approved. Sign in again to continue.","sign_in","info"],account_confirmation_required:["Confirm your account","Confirm which mdbase account to use, then continue.","sign_in","info"],recovery_account_mismatch:["Use a different account","Sign in with the account you originally used for this collection to continue.","approve","info",!1,"Use a different account"],recovery_required:["Reload required","The app stopped to keep your data safe. Reload to continue.","reload","error"],open_failed:["Couldn't open your collection","Something went wrong while opening it. Reload the app to try again.","reload","error"],busy:gR,file_read_failed:["Couldn't load the file","mdbase couldn't finish downloading this file. Check your connection and try opening the collection again.","retry","warning"],file_read_idle:["File download timed out","The file download stopped making progress. Try opening the collection again.","retry","warning"],configuration_busy_timeout:["Collection setup is taking too long","The app is waiting for another setup or metadata request to finish. Try again; if it keeps happening, close other tabs of this app and reload.","retry","warning"],readiness_busy_timeout:["Collection checks are taking too long","The app couldn't get a stable view of the collection yet. Try again when the other step has finished.","retry","warning"],open_in_another_tab:["Open in another tab","This app is already open in another tab. Close that tab, or keep using it there; this tab continues by itself when it's free.","none","info",!0],not_authorized:["This app can't open this collection","This app isn't allowed to open this collection. Approve it again, or choose another collection.","approve","warning",!1,"Approve again"],sign_out_pending_writes:["Changes are still saving","Some changes haven't reached mdbase yet. Wait for them to finish, or sign out anyway and lose them on this device.","wait","warning",!1,"Wait"],sign_out_failed:["Couldn't finish signing out","This device couldn't remove all of its sign-in data. Reload the app and sign out again.","reload","error"],application_popup_blocked:["Allow pop-ups to sign in","Your browser blocked the sign-in window. Allow pop-ups for this site, then try again.","retry","warning"],sign_in_window:["Sign-in window problem","The sign-in window couldn't be opened. Try again.","retry","warning"],application_not_yet_available:["Not available yet","This app isn't available on this version of mdbase yet.","none","info"],application_failed:["The app stopped","Something inside the app stopped working. Your data is safe. Reload to continue.","reload","error"],application_worker_unavailable:["This browser can't run the app","Open the app in a current version of Chrome, Edge, Firefox or Safari.","none","error"],browser_unsupported:["This browser can't run mdbase","Update Safari to 17.4 or newer, Firefox to 130 or newer, or Chrome or Edge to 133 or newer, then open the app again.","none","error"],application_storage_unavailable:["This browser can't keep mdbase data on this device","Private browsing may be on. Open the app in a regular window so your changes can be kept safely on this device.","none","error"],storage_may_be_evicted:["Not synced yet","Some changes are only on this device. Stay online so they can sync.","check_connection","warning"],application_registration_unsupported:["This app can't connect","This version of the app isn't supported by mdbase. Update the app.","update_app","error"],application_registration_refused:["This app can't connect","This app can't connect right now. Contact the app's developer.","contact_support","error"],application_selection_not_approved:["Collection not approved","This app hasn't been given access to that collection. Approve it to continue.","approve","info"],application_selection_invalid:vR,assets:["The app couldn't load","Some of the app's files couldn't be loaded. Check your connection and reload.","reload","error"],setup_required:_R,incompatible:["This collection isn't compatible","This collection uses a format this version of the app doesn't support. Update the app.","update_app","error"],approval_required:ek,capability_missing:ek,contract_mismatch:["Your collection's format differs","This collection's record types don't match what this app expects. Set it up again or update the app.","set_up","warning"],contract_missing:["Set up this collection","This collection is missing record types this app needs. Set it up to continue.","set_up","info"],implementation_missing:["Set up this collection","A record type in this collection doesn't provide the fields this app needs. Set it up to continue.","set_up","info"],catalog_invalid:["A definition has a problem","A definition in this collection has an error, so the app can't open the collection safely. Fix the definition in your collection, and the app picks up the change.","none","warning"],catalog_response:["Couldn't read this collection's definitions","The app couldn't read how this collection is defined, so it didn't open it. Nothing was changed. Try again.","retry","warning"],type_invalid:["A record type isn't available","This record type has an error in its definition, so the app can't use it right now. Everything else still works. Fix the type in your collection to use it again.","none","warning"],readiness_budget:["This collection is too large to check","This collection has more definitions than the app can check at once. Contact the app's developer.","contact_support","warning"],readiness_unsupported:["Update the app","This collection uses features this version of the app can't check. Update the app to open it.","update_app","warning"],notifications_consent_required:["Allow reminders","Approve notifications so reminders can reach this device.","approve","info"],timer_channel_reapproval_required:["Allow reminders again","Approve notifications again so reminders keep reaching this device.","approve","info"],notifications_unsupported:["Reminders aren't available here","This browser or device can't receive notifications.","none","info"],people_unsupported:["Sharing isn't available here","People and sharing aren't supported for this collection yet.","none","info"],people_permission_declined:["People aren't shown","This app wasn't allowed to see who else is in this collection. Approve it again and allow people to show them here.","approve","info",!1,"Approve again"],people_access:["People can't be shown","This app can't see the people in this collection right now. Everything else still works.","none","info"],configuration_conflict:["Settings changed elsewhere","These settings were changed on another device. Review them and try again.","retry","warning"],configuration_unavailable:["Couldn't check this collection's setup","The app couldn't read how this collection is set up, so it didn't open it. Nothing in the collection was changed. Try again, and contact support if it keeps happening.","retry","warning"],configuration_unsupported:["This app can't set up this collection","This app's setup isn't supported by this version of mdbase. Contact the app's developer.","contact_support","warning"],setup_forbidden:["You can't set up this collection","Your access to this collection doesn't allow setting it up. Ask its owner to open it in this app first.","choose_collection","warning"],setup_conflict:["Setup needs your decision","Some things in this collection differ from what this app needs. Review them to continue.","set_up","warning",!1,"Review setup"],setup_unresolved:["Setup can't finish","This collection is missing something this app needs, and setup can't add it. A note type this app set up may have been changed or removed. Restore it, then try again.","retry","warning"],collection_setup_conflict:["Collection setup conflicts","This collection's definitions conflict with what this app requires. Ask its owner to review them, or choose a different collection. Setup cannot continue while these conflicts remain.","choose_collection","warning"],setup_records_forbidden:["You can't add notes to this collection","Your access to this collection doesn't allow creating notes, which this app's setup needs. Ask its owner for more access.","choose_collection","warning"],setup_changed:["This collection changed","The collection changed while you were reviewing its setup. Review the setup again; nothing was changed yet.","set_up","info",!1,"Review again"],installed_newer:["Update the app","A newer version of this app set up this collection with changes this version can't use. Update the app to keep using the collection.","update_app","warning"],type_pack_conflict:["Setup needs your decision","Some record types already exist with different content. Review them to continue.","set_up","warning",!1,"Review setup"],invalid_type_pack:["This app's setup has a problem","Setting up this collection would leave it invalid, so nothing was changed. Contact the app's developer.","contact_support","warning"],access_required:["Allow this app to change files?","This app needs your permission before it can add or change files in this collection.","approve","info",!1,"Allow"],access_declined:["Not allowed","You chose not to allow this. Everything else in the app works as before, and you can allow it the next time you try.","none","info"],access_undeclared:["This app can't do that","This app isn't set up to change files this way. Contact the app's developer if you need it.","none","warning"],files_access_missing:["This app can't use this collection","Your access to this collection doesn't include the file changes this app needs. Ask the collection's owner for more access.","none","warning"],files_scope_missing:["This app can't use this collection","This app needs access to all files in this collection, but your access covers only some folders. Ask the collection's owner for more access.","none","warning"],collection_delete_name_mismatch:["The name doesn't match","Type the collection's current name exactly to delete it.","none","warning"],collection_delete_not_owner:["Only the owner can delete this","Ask the collection's owner to delete it.","none","info"],collection_delete_not_found:["Collection not found","This collection no longer exists, or this app can't reach it. It may already have been deleted.","none","info"],collection_delete_frozen:["Can't delete right now","Your account is being upgraded, so collections can't be deleted until that finishes. Try again later.","retry","warning"],collection_delete_busy:["mdbase is busy","Wait a moment, then try deleting again.","retry","warning",!0],collection_delete_not_approved:["This app can't delete this collection","This app doesn't have access to this collection anymore. Approve it again, then try again.","approve","warning"],collection_delete_sign_in:["Sign in again","This device's sign-in is no longer current. Sign in again, then try deleting again.","sign_in","warning"],collection_delete_invalid:["Couldn't delete the collection","Check the name you typed and try again.","none","warning"],collection_delete_outcome_unknown:["Not sure the collection was deleted","The connection dropped before mdbase confirmed. Reload your collections to check before trying again.","resolve_outcome","warning"],collection_delete_failed:["Couldn't delete the collection","Something went wrong. Try again, and contact support if it keeps happening.","retry","error"],wrong_secret:["That isn't right","The password or recovery key doesn't match. Check it and try again.","none","warning"],locked:["Too many attempts","Wait a few minutes before trying again.","wait","warning",!0],weak_password:["Choose a stronger password","That password is too easy to guess. Use a longer one, or a few unrelated words.","none","warning"],already_set_up:["Already set up","Your account key is already set up on this account.","none","info"],no_account_key:["Set up your account key","This account doesn't have an account key yet. Set one up to use Private collections.","none","info"]},du=Object.assign(Object.create(null),{no_device_online:"device_offline",collection_moved:"moved_to_next_runtime",client_update_required:"update_required",upgrade_required:"update_required",declared_setup_unsupported:"update_required",resource_setup_unsupported:"update_required",type_packs_unsupported:"update_required",describe_definitions_unsupported:"update_required",contract_records_unsupported:"update_required",record_links_unsupported:"update_required",change_entity_unsupported:"update_required",timer_operation_recovery_unavailable:"update_required",contract_query_version:"update_required",unsupported_push_version:"update_required",fenced:"busy",reconnecting:"busy",application_busy:"busy",application_fenced:"busy",application_entry_fenced:"busy",application_asset_fenced:"busy",application_connection_busy:"busy",application_connection_fenced:"busy",application_readiness_busy:"busy",application_readiness_fenced:"busy",application_registration_fenced:"busy",application_selection_busy:"busy",application_selection_fenced:"busy",application_worker_busy:"busy",application_worker_fenced:"busy",application_popup_fenced:"busy",readiness_fenced:"busy",readiness_busy:"busy",readiness_changed:"busy",configuration_busy:"busy",configuration_fenced:"busy",files_fenced:"busy",people_fenced:"busy",people_readiness_busy:"busy",people_readiness_fenced:"busy",notification_readiness_busy:"busy",notification_readiness_fenced:"busy",record_links_fenced:"busy",binding:"application_failed",response:"application_failed",application_declaration:"application_failed",application_connection_binding:"application_failed",application_popup_binding:"application_failed",application_registration_response:"application_failed",application_selection_binding:"application_failed",application_worker_binding:"application_failed",application_worker_module_binding:"application_failed",application_entry_unavailable:"application_failed",application_readiness_unavailable:"application_failed",configuration_binding:"application_failed",configuration_response:"application_failed",files_unavailable:"application_failed",application_stop_failed:"recovery_required",application_worker_stop_failed:"recovery_required",application_popup_stop_failed:"recovery_required",configuration_recovery_required:"recovery_required",application_popup_unavailable:"sign_in_window",application_registration_unavailable:"unavailable",application_registration_unknown:"unavailable",application_connection_unavailable:"unavailable",readiness_unavailable:"unavailable",grant_activation_timeout:"unavailable",application_connection_people_unavailable:"people_access",people_unavailable:"people_access",people_response:"people_access",people_binding:"people_access",people_budget:"people_access",people_incomplete:"people_access",application_selection_empty:"application_selection_invalid",application_selection_duplicate:"application_selection_invalid",application_selection_metadata:"application_selection_invalid",application_lab_trust_unavailable:"assets",application_production_trust_unavailable:"assets",application_release_trust_unavailable:"assets",application_packaged_assets_unavailable:"assets",application_asset_fetch:"assets",grant_required:"approval_required",readiness_capability_version:"readiness_unsupported",readiness_type_invalid:"type_invalid",configuration_not_authorized:"setup_forbidden",configuration_unsupported_source_provision:"configuration_unsupported",setup_downgrade:"installed_newer",type_pack_downgrade:"installed_newer",installed_newer_major:"installed_newer",timer_push_platform:"notifications_unsupported",push_registration_missing:"notifications_consent_required"}),tk=Object.assign(Object.create(null),{budget:"readiness_budget",unsupported:"readiness_unsupported"}),AR=["application_registration_id_superseded","application_closing","cancelled","aborted"],sk=new Set(AR),uu=Object.assign(Object.create(null),{device_offline:"Collection availability device_offline: no device serving this Private collection is connected to the relay.",desktop_update_required:"Collection availability desktop_update_required: the serving device's last relay connection was refused as incompatible.",old_connector_running:"Collection availability old_connector_running: the serving device reports a legacy connector still holding its collections.",device_approval_required:"Collection availability approval_required: no device has signed an approval for this app's grant yet.",sync_required:"Collection availability sync_required: the grant no longer matches the collection's membership; run authorize() again.",no_device_registered:"Collection availability no_device_registered: Connect has no device that can serve this collection (none registered with sync on, or its device was revoked).",installation_scope_removed:"The original installation lost this collection scope. Only explicit approval of a fresh scoped installation can regain access.",access_removed:"Collection availability access_removed: the grant's account is no longer a member of the collection.",collection_deleted:"Collection availability collection_deleted: the owner deleted the collection.",collection_unavailable:"Connect problem collection_unavailable without a known reason: the collection is not offered to this app or client.",moved_to_next_runtime:"Connect problem collection_unavailable, reason moved_to_next_runtime: a legacy route was used for a collection that completed its move to mdbase-next.",people_permission_declined:"People members request refused (people_permission_declined): the person did not grant the people permission for this app.",people_access:"People request refused (people_access).",access_required:"access_required: an optional file action the person has not allowed. Call requestAccess from the user's action, then retry.",access_undeclared:"access_undeclared: the file action is not in the manifest's requirements.files.",installed_newer:"installed_newer: an installed type pack has a different major version than the one this app ships; same-major newer packs open read/write.",application_registration_id_superseded:"The declared application ID is an earlier registration ID: mdbase registers each exact manifest under its own ID, so it changes with the manifest. The SDK uses the registered ID and keeps the declared storage names. Declare the manifest's logical `id` (stable across manifest changes and origins) with pinned storage names to remove this note.",application_worker_unavailable:"application_worker_unavailable: this page cannot construct the SDK's module Worker (no Worker/MessageChannel, or a non-web origin).",browser_unsupported:"browser_unsupported: the SDK's upfront capability probe found a required browser feature missing (Web Crypto/X25519, AbortSignal.any, Web Locks, BroadcastChannel, IndexedDB, Worker/MessageChannel or crypto.randomUUID); see the MdbaseError details for the missing tokens.",application_storage_unavailable:"application_storage_unavailable: navigator.storage.getDirectory() (OPFS) is absent or rejected, as in private browsing; the local replica cannot be kept on this device.",storage_may_be_evicted:"storage_may_be_evicted: replica edits are pending for at least 30 seconds or while disconnected on nonpersistent storage (snapshot.saveWarning); only a log-confirmed receipt counts as saved.",sign_out_pending_writes:"sign_out_pending_writes: unconfirmed writes are still queued on this device; signOut({discard: true}) discards them."}),kR=/^[a-z][a-z0-9_-]{0,127}$/,lr=n=>typeof n=="string"&&kR.test(n)?n:null,Vn=n=>n!==null&&typeof n=="object"&&!Array.isArray(n)?n:null,SR=n=>typeof n=="number"&&Number.isFinite(n)&&n>=0?Math.min(Fs,Math.max(Bs,Math.round(n))):null,nk=n=>Object.hasOwn(ok,n)});function Ks(n){if(typeof n!="string"||n.length>256)return null;let e=xR.exec(n.trim());if(!e)return null;let t=[e[1],e[2],e[3]].map(Number);if(t.some(o=>!Number.isSafeInteger(o)))return null;let i=e[4]?e[4].split(".").map(o=>/^\d+$/.test(o)?Number(o):o):[];return i.some(o=>typeof o=="number"&&!Number.isSafeInteger(o))?null:Object.freeze({major:t[0],minor:t[1],patch:t[2],prerelease:Object.freeze(i)})}function ag(n,e){let t=typeof n=="string"?Ks(n):n,i=typeof e=="string"?Ks(e):e;if(!t||!i)return null;for(let o of["major","minor","patch"])if(t[o]!==i[o])return t[o]<i[o]?-1:1;if(!t.prerelease.length&&!i.prerelease.length)return 0;if(!t.prerelease.length)return 1;if(!i.prerelease.length)return-1;for(let o=0;o<Math.max(t.prerelease.length,i.prerelease.length);o++){let s=t.prerelease[o],r=i.prerelease[o];if(s===void 0)return-1;if(r===void 0)return 1;if(s!==r)return typeof s=="number"&&typeof r=="number"?s<r?-1:1:typeof s=="number"?-1:typeof r=="number"?1:s<r?-1:1}return 0}function jo(n,e){let t=Ks(n),i=Ks(e),o=t&&i?ag(t,i):null;return o===null?"unknown":o===0?"same":o<0?"installed_older":t.major===i.major?"installed_newer":"installed_newer_major"}var hu,ck,xR,mu=I(()=>{"use strict";hu="0|[1-9]\\d*",ck=`(?:${hu}|\\d*[a-zA-Z-][0-9a-zA-Z-]*)`,xR=new RegExp(`^v?(${hu})\\.(${hu})\\.(${hu})(?:-(${ck}(?:\\.${ck})*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`)});function bu(n){return n.storage.applicationNamespace===n.id?null:n.storage.applicationNamespace}function lg(n){return Array.from(it(new TextEncoder().encode(n)),e=>e.toString(16).padStart(2,"0")).join("")}function uk(n,e){return e===null?`bundle:${n}`:`bundle-storage:${lg(JSON.stringify([n,e]))}`}var wu=I(()=>{"use strict";Cr()});function Ne(n){if(n&&typeof n=="object")switch(n[Zt]){case di:case cr:return!0}return!1}function Re(n){if(n&&typeof n=="object")switch(n[Zt]){case vu:case di:case kn:case cr:return!0}return!1}var vu,_u,di,cg,kn,cr,Zt,ui,ji,Sn,xe,ve,fi,Au,Te=I(()=>{vu=Symbol.for("yaml.alias"),_u=Symbol.for("yaml.document"),di=Symbol.for("yaml.map"),cg=Symbol.for("yaml.pair"),kn=Symbol.for("yaml.scalar"),cr=Symbol.for("yaml.seq"),Zt=Symbol.for("yaml.node.type"),ui=n=>!!n&&typeof n=="object"&&n[Zt]===vu,ji=n=>!!n&&typeof n=="object"&&n[Zt]===_u,Sn=n=>!!n&&typeof n=="object"&&n[Zt]===di,xe=n=>!!n&&typeof n=="object"&&n[Zt]===cg,ve=n=>!!n&&typeof n=="object"&&n[Zt]===kn,fi=n=>!!n&&typeof n=="object"&&n[Zt]===cr;Au=n=>(ve(n)||Ne(n))&&!!n.anchor});function Ui(n,e){let t=hk(e);ji(n)?Hs(null,n.contents,t,Object.freeze([n]))===Ni&&(n.contents=null):Hs(null,n,t,Object.freeze([]))}function Hs(n,e,t,i){let o=mk(n,e,t,i);if(Re(o)||xe(o))return yk(n,i,o),Hs(n,o,t,i);if(typeof o!="symbol"){if(Ne(e)){i=Object.freeze(i.concat(e));for(let s=0;s<e.items.length;++s){let r=Hs(s,e.items[s],t,i);if(typeof r=="number")s=r-1;else{if(r===fn)return fn;r===Ni&&(e.items.splice(s,1),s-=1)}}}else if(xe(e)){i=Object.freeze(i.concat(e));let s=Hs("key",e.key,t,i);if(s===fn)return fn;s===Ni&&(e.key=null);let r=Hs("value",e.value,t,i);if(r===fn)return fn;r===Ni&&(e.value=null)}}return o}async function ku(n,e){let t=hk(e);ji(n)?await Gs(null,n.contents,t,Object.freeze([n]))===Ni&&(n.contents=null):await Gs(null,n,t,Object.freeze([]))}async function Gs(n,e,t,i){let o=await mk(n,e,t,i);if(Re(o)||xe(o))return yk(n,i,o),Gs(n,o,t,i);if(typeof o!="symbol"){if(Ne(e)){i=Object.freeze(i.concat(e));for(let s=0;s<e.items.length;++s){let r=await Gs(s,e.items[s],t,i);if(typeof r=="number")s=r-1;else{if(r===fn)return fn;r===Ni&&(e.items.splice(s,1),s-=1)}}}else if(xe(e)){i=Object.freeze(i.concat(e));let s=await Gs("key",e.key,t,i);if(s===fn)return fn;s===Ni&&(e.key=null);let r=await Gs("value",e.value,t,i);if(r===fn)return fn;r===Ni&&(e.value=null)}}return o}function hk(n){return typeof n=="object"&&(n.Collection||n.Node||n.Value)?Object.assign({Alias:n.Node,Map:n.Node,Scalar:n.Node,Seq:n.Node},n.Value&&{Map:n.Value,Scalar:n.Value,Seq:n.Value},n.Collection&&{Map:n.Collection,Seq:n.Collection},n):n}function mk(n,e,t,i){if(typeof t=="function")return t(n,e,i);if(Sn(e))return t.Map?.(n,e,i);if(fi(e))return t.Seq?.(n,e,i);if(xe(e))return t.Pair?.(n,e,i);if(ve(e))return t.Scalar?.(n,e,i);if(ui(e))return t.Alias?.(n,e,i)}function yk(n,e,t){let i=e[e.length-1];if(Ne(i))i.items[n]=t;else if(xe(i))n==="key"?i.key=t:i.value=t;else if(ji(i))i.contents=t;else{let o=ui(i)?"alias":"scalar";throw new Error(`Cannot replace node with ${o} parent`)}}var fn,fk,Ni,rc=I(()=>{Te();fn=Symbol("break visit"),fk=Symbol("skip children"),Ni=Symbol("remove node");Ui.BREAK=fn;Ui.SKIP=fk;Ui.REMOVE=Ni;ku.BREAK=fn;ku.SKIP=fk;ku.REMOVE=Ni});var OR,RR,Di,pg=I(()=>{Te();rc();OR={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},RR=n=>n.replace(/[!,[\]{}]/g,e=>OR[e]),Di=class n{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},n.defaultYaml,e),this.tags=Object.assign({},n.defaultTags,t)}clone(){let e=new n(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new n(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=!1);let i=e.trim().split(/[ \t]+/),o=i.shift();switch(o){case"%TAG":{if(i.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),i.length<2))return!1;let[s,r]=i;return this.tags[s]=r,!0}case"%YAML":{if(this.yaml.explicit=!0,i.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[s]=i;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{let r=/^\d+\.\d+$/.test(s);return t(6,`Unsupported YAML version ${s}`,r),!1}}default:return t(0,`Unknown directive ${o}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let r=e.slice(2,-1);return r==="!"||r==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),r)}let[,i,o]=e.match(/^(.*!)([^!]*)$/s);o||t(`The ${e} tag has no suffix`);let s=this.tags[i];if(s)try{return s+decodeURIComponent(o)}catch(r){return t(String(r)),null}return i==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,i]of Object.entries(this.tags))if(e.startsWith(i))return t+RR(e.substring(i.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],i=Object.entries(this.tags),o;if(e&&i.length>0&&Re(e.contents)){let s={};Ui(e.contents,(r,a)=>{Re(a)&&a.tag&&(s[a.tag]=!0)}),o=Object.keys(s)}else o=[];for(let[s,r]of i)s==="!!"&&r==="tag:yaml.org,2002:"||(!e||o.some(a=>a.startsWith(r)))&&t.push(`%TAG ${s} ${r}`);return t.join(`
|
|
2
|
+
`)}};Di.defaultYaml={explicit:!1,version:"1.2"};Di.defaultTags={"!!":"tag:yaml.org,2002:"}});function Su(n){if(/[\x00-\x19\s,[\]{}]/.test(n)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(t)}return!0}function dg(n){let e=new Set;return Ui(n,{Value(t,i){i.anchor&&e.add(i.anchor)}}),e}function ug(n,e){for(let t=1;;++t){let i=`${n}${t}`;if(!e.has(i))return i}}function gk(n,e){let t=[],i=new Map,o=null;return{onAnchor:s=>{t.push(s),o??(o=dg(n));let r=ug(e,o);return o.add(r),r},setAnchors:()=>{for(let s of t){let r=i.get(s);if(typeof r=="object"&&r.anchor&&(ve(r.node)||Ne(r.node)))r.node.anchor=r.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:i}}var Pu=I(()=>{Te();rc()});function Dr(n,e,t,i){if(i&&typeof i=="object")if(Array.isArray(i))for(let o=0,s=i.length;o<s;++o){let r=i[o],a=Dr(n,i,String(o),r);a===void 0?delete i[o]:a!==r&&(i[o]=a)}else if(i instanceof Map)for(let o of Array.from(i.keys())){let s=i.get(o),r=Dr(n,i,o,s);r===void 0?i.delete(o):r!==s&&i.set(o,r)}else if(i instanceof Set)for(let o of Array.from(i)){let s=Dr(n,i,o,o);s===void 0?i.delete(o):s!==o&&(i.delete(o),i.add(s))}else for(let[o,s]of Object.entries(i)){let r=Dr(n,i,o,s);r===void 0?delete i[o]:r!==s&&(i[o]=r)}return n.call(e,t,i)}var fg=I(()=>{});function Pt(n,e,t){if(Array.isArray(n))return n.map((i,o)=>Pt(i,String(o),t));if(n&&typeof n.toJSON=="function"){if(!t||!Au(n))return n.toJSON(e,t);let i={aliasCount:0,count:1,res:void 0};t.anchors.set(n,i),t.onCreate=s=>{i.res=s,delete t.onCreate};let o=n.toJSON(e,t);return t.onCreate&&t.onCreate(o),o}return typeof n=="bigint"&&!t?.keep?Number(n):n}var $r=I(()=>{Te()});var zr,xu=I(()=>{fg();Te();$r();zr=class{constructor(e){Object.defineProperty(this,Zt,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:i,onAnchor:o,reviver:s}={}){if(!ji(e))throw new TypeError("A document argument is required");let r={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},a=Pt(this,"",r);if(typeof o=="function")for(let{count:c,res:l}of r.anchors.values())o(l,c);return typeof s=="function"?Dr(s,{"":a},"",a):a}}});function Cu(n,e,t){if(ui(e)){let i=e.resolve(n),o=t&&i&&t.get(i);return o?o.count*o.aliasCount:0}else if(Ne(e)){let i=0;for(let o of e.items){let s=Cu(n,o,t);s>i&&(i=s)}return i}else if(xe(e)){let i=Cu(n,e.key,t),o=Cu(n,e.value,t);return Math.max(i,o)}return 1}var pr,oc=I(()=>{Pu();rc();Te();xu();$r();pr=class extends zr{constructor(e){super(vu),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){if(t?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let i;t?.aliasResolveCache?i=t.aliasResolveCache:(i=[],Ui(e,{Node:(s,r)=>{(ui(r)||Au(r))&&i.push(r)}}),t&&(t.aliasResolveCache=i));let o;for(let s of i){if(s===this)break;s.anchor===this.source&&(o=s)}if(o&&t){let{anchors:s,doc:r,maxAliasCount:a}=t,c=s.get(o);if(c||(Pt(o,null,t),c=s.get(o)),c?.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(a>=0&&(c.count+=1,c.aliasCount===0&&(c.aliasCount=Cu(r,o,s)),c.count*c.aliasCount>a)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}}return o}toJSON(e,t){if(!t)return{source:this.source};let i=this.resolve(t.doc,t);if(!i){let o=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(o)}return t.anchors.get(i).res}toString(e,t,i){let o=`*${this.source}`;if(e){if(Su(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(e.implicitKey)return`${o} `}return o}}});var Iu,re,gt=I(()=>{Te();xu();$r();Iu=n=>!n||typeof n!="function"&&typeof n!="object",re=class extends zr{constructor(e){super(kn),this.value=e}toJSON(e,t){return t?.keep?this.value:Pt(this.value,e,t)}toString(){return String(this.value)}};re.BLOCK_FOLDED="BLOCK_FOLDED";re.BLOCK_LITERAL="BLOCK_LITERAL";re.PLAIN="PLAIN";re.QUOTE_DOUBLE="QUOTE_DOUBLE";re.QUOTE_SINGLE="QUOTE_SINGLE"});function qR(n,e,t){if(e){let i=t.filter(s=>s.tag===e),o=i.find(s=>!s.format)??i[0];if(!o)throw new Error(`Tag ${e} not found`);return o}return t.find(i=>i.identify?.(n)&&!i.format)}function dr(n,e,t){if(ji(n)&&(n=n.contents),Re(n))return n;if(xe(n)){let d=t.schema[di].createNode?.(t.schema,null,t);return d.items.push(n),d}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt<"u"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:i,onAnchor:o,onTagObj:s,schema:r,sourceObjects:a}=t,c;if(i&&n&&typeof n=="object"){if(c=a.get(n),c)return c.anchor??(c.anchor=o(n)),new pr(c.anchor);c={anchor:null,node:null},a.set(n,c)}e?.startsWith("!!")&&(e=ER+e.slice(2));let l=qR(n,e,r.tags);if(!l){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let d=new re(n);return c&&(c.node=d),d}l=n instanceof Map?r[di]:Symbol.iterator in Object(n)?r[cr]:r[di]}s&&(s(l),delete t.onTagObj);let p=l?.createNode?l.createNode(t.schema,n,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,n,t):new re(n);return e?p.tag=e:l.default||(p.tag=l.tag),c&&(c.node=p),p}var ER,sc=I(()=>{oc();Te();gt();ER="tag:yaml.org,2002:"});function ac(n,e,t){let i=t;for(let o=e.length-1;o>=0;--o){let s=e[o];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){let r=[];r[s]=i,i=r}else i=new Map([[s,i]])}return dr(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var Js,Ys,Ou=I(()=>{sc();Te();xu();Js=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Ys=class extends zr{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(i=>Re(i)||xe(i)?i.clone(e):i),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Js(e))this.add(t);else{let[i,...o]=e,s=this.get(i,!0);if(Ne(s))s.addIn(o,t);else if(s===void 0&&this.schema)this.set(i,ac(this.schema,o,t));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${o}`)}}deleteIn(e){let[t,...i]=e;if(i.length===0)return this.delete(t);let o=this.get(t,!0);if(Ne(o))return o.deleteIn(i);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${i}`)}getIn(e,t){let[i,...o]=e,s=this.get(i,!0);return o.length===0?!t&&ve(s)?s.value:s:Ne(s)?s.getIn(o,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!xe(t))return!1;let i=t.value;return i==null||e&&ve(i)&&i.value==null&&!i.commentBefore&&!i.comment&&!i.tag})}hasIn(e){let[t,...i]=e;if(i.length===0)return this.has(t);let o=this.get(t,!0);return Ne(o)?o.hasIn(i):!1}setIn(e,t){let[i,...o]=e;if(o.length===0)this.set(i,t);else{let s=this.get(i,!0);if(Ne(s))s.setIn(o,t);else if(s===void 0&&this.schema)this.set(i,ac(this.schema,o,t));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${o}`)}}}});function Kn(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var bk,$i,lc=I(()=>{bk=n=>n.replace(/^(?!$)(?: $)?/gm,"#");$i=(n,e,t)=>n.endsWith(`
|
|
3
|
+
`)?Kn(t,e):t.includes(`
|
|
4
|
+
`)?`
|
|
5
|
+
`+Kn(t,e):(n.endsWith(" ")?"":" ")+t});function pc(n,e,t="flow",{indentAtStart:i,lineWidth:o=80,minContentWidth:s=20,onFold:r,onOverflow:a}={}){if(!o||o<0)return n;o<s&&(s=0);let c=Math.max(1+s,1+o-e.length);if(n.length<=c)return n;let l=[],p={},d=o-e.length;typeof i=="number"&&(i>o-Math.max(2,s)?l.push(0):d=o-i);let u,f,h=!1,m=-1,b=-1,w=-1;t===Ru&&(m=wk(n,m,e.length),m!==-1&&(d=m+c));for(let y;y=n[m+=1];){if(t===cc&&y==="\\"){switch(b=m,n[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}w=m}if(y===`
|
|
6
|
+
`)t===Ru&&(m=wk(n,m,e.length)),d=m+e.length+c,u=void 0;else{if(y===" "&&f&&f!==" "&&f!==`
|
|
7
|
+
`&&f!==" "){let v=n[m+1];v&&v!==" "&&v!==`
|
|
8
|
+
`&&v!==" "&&(u=m)}if(m>=d)if(u)l.push(u),d=u+c,u=void 0;else if(t===cc){for(;f===" "||f===" ";)f=y,y=n[m+=1],h=!0;let v=m>w+1?m-2:b-1;if(p[v])return n;l.push(v),p[v]=!0,d=v+c,u=void 0}else h=!0}f=y}if(h&&a&&a(),l.length===0)return n;r&&r();let g=n.slice(0,l[0]);for(let y=0;y<l.length;++y){let v=l[y],_=l[y+1]||n.length;v===0?g=`
|
|
9
|
+
${e}${n.slice(0,_)}`:(t===cc&&p[v]&&(g+=`${n[v]}\\`),g+=`
|
|
10
|
+
${e}${n.slice(v+1,_)}`)}return g}function wk(n,e,t){let i=e,o=e+1,s=n[o];for(;s===" "||s===" ";)if(e<o+t)s=n[++e];else{do s=n[++e];while(s&&s!==`
|
|
11
|
+
`);i=e,o=e+1,s=n[o]}return i}var hg,Ru,cc,vk=I(()=>{hg="flow",Ru="block",cc="quoted"});function TR(n,e,t){if(!e||e<0)return!1;let i=e-t,o=n.length;if(o<=i)return!1;for(let s=0,r=0;s<o;++s)if(n[s]===`
|
|
12
|
+
`){if(s-r>i)return!0;if(r=s+1,o-r<=i)return!1}return!0}function dc(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:i}=e,o=e.options.doubleQuotedMinMultiLineLength,s=e.indent||(Tu(n)?" ":""),r="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(r+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{r+=t.slice(a,c);let p=t.substr(c+2,4);switch(p){case"0000":r+="\\0";break;case"0007":r+="\\a";break;case"000b":r+="\\v";break;case"001b":r+="\\e";break;case"0085":r+="\\N";break;case"00a0":r+="\\_";break;case"2028":r+="\\L";break;case"2029":r+="\\P";break;default:p.substr(0,2)==="00"?r+="\\x"+p.substr(2):r+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(i||t[c+2]==='"'||t.length<o)c+=1;else{for(r+=t.slice(a,c)+`
|
|
13
|
+
|
|
14
|
+
`;t[c+2]==="\\"&&t[c+3]==="n"&&t[c+4]!=='"';)r+=`
|
|
15
|
+
`,c+=2;r+=s,t[c+2]===" "&&(r+="\\"),c+=1,a=c+1}break;default:c+=1}return r=a?r+t.slice(a):t,i?r:pc(r,s,cc,qu(e,!1))}function mg(n,e){if(e.options.singleQuote===!1||e.implicitKey&&n.includes(`
|
|
16
|
+
`)||/[ \t]\n|\n[ \t]/.test(n))return dc(n,e);let t=e.indent||(Tu(n)?" ":""),i="'"+n.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
17
|
+
${t}`)+"'";return e.implicitKey?i:pc(i,t,hg,qu(e,!1))}function Xs(n,e){let{singleQuote:t}=e.options,i;if(t===!1)i=dc;else{let o=n.includes('"'),s=n.includes("'");o&&!s?i=mg:s&&!o?i=dc:i=t?mg:dc}return i(n,e)}function Eu({comment:n,type:e,value:t},i,o,s){let{blockQuote:r,commentString:a,lineWidth:c}=i.options;if(!r||/\n[\t ]+$/.test(t))return Xs(t,i);let l=i.indent||(i.forceBlockIndent||Tu(t)?" ":""),p=r==="literal"?!0:r==="folded"||e===re.BLOCK_FOLDED?!1:e===re.BLOCK_LITERAL?!0:!TR(t,c,l.length);if(!t)return p?`|
|
|
18
|
+
`:`>
|
|
19
|
+
`;let d,u;for(u=t.length;u>0;--u){let _=t[u-1];if(_!==`
|
|
20
|
+
`&&_!==" "&&_!==" ")break}let f=t.substring(u),h=f.indexOf(`
|
|
21
|
+
`);h===-1?d="-":t===f||h!==f.length-1?(d="+",s&&s()):d="",f&&(t=t.slice(0,-f.length),f[f.length-1]===`
|
|
22
|
+
`&&(f=f.slice(0,-1)),f=f.replace(yg,`$&${l}`));let m=!1,b,w=-1;for(b=0;b<t.length;++b){let _=t[b];if(_===" ")m=!0;else if(_===`
|
|
23
|
+
`)w=b;else break}let g=t.substring(0,w<b?w+1:b);g&&(t=t.substring(g.length),g=g.replace(/\n+/g,`$&${l}`));let v=(m?l?"2":"1":"")+d;if(n&&(v+=" "+a(n.replace(/ ?[\r\n]+/g," ")),o&&o()),!p){let _=t.replace(/\n+/g,`
|
|
24
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),k=!1,S=qu(i,!0);r!=="folded"&&e!==re.BLOCK_FOLDED&&(S.onOverflow=()=>{k=!0});let x=pc(`${g}${_}${f}`,l,Ru,S);if(!k)return`>${v}
|
|
25
|
+
${l}${x}`}return t=t.replace(/\n+/g,`$&${l}`),`|${v}
|
|
26
|
+
${l}${g}${t}${f}`}function MR(n,e,t,i){let{type:o,value:s}=n,{actualString:r,implicitKey:a,indent:c,indentStep:l,inFlow:p}=e;if(a&&s.includes(`
|
|
27
|
+
`)||p&&/[[\]{},]/.test(s))return Xs(s,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||p||!s.includes(`
|
|
28
|
+
`)?Xs(s,e):Eu(n,e,t,i);if(!a&&!p&&o!==re.PLAIN&&s.includes(`
|
|
29
|
+
`))return Eu(n,e,t,i);if(Tu(s)){if(c==="")return e.forceBlockIndent=!0,Eu(n,e,t,i);if(a&&c===l)return Xs(s,e)}let d=s.replace(/\n+/g,`$&
|
|
30
|
+
${c}`);if(r){let u=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(d),{compat:f,tags:h}=e.doc.schema;if(h.some(u)||f?.some(u))return Xs(s,e)}return a?d:pc(d,c,hg,qu(e,!1))}function No(n,e,t,i){let{implicitKey:o,inFlow:s}=e,r=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==re.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(r.value)&&(a=re.QUOTE_DOUBLE);let c=p=>{switch(p){case re.BLOCK_FOLDED:case re.BLOCK_LITERAL:return o||s?Xs(r.value,e):Eu(r,e,t,i);case re.QUOTE_DOUBLE:return dc(r.value,e);case re.QUOTE_SINGLE:return mg(r.value,e);case re.PLAIN:return MR(r,e,t,i);default:return null}},l=c(a);if(l===null){let{defaultKeyType:p,defaultStringType:d}=e.options,u=o&&p||d;if(l=c(u),l===null)throw new Error(`Unsupported default string type ${u}`)}return l}var qu,Tu,yg,uc=I(()=>{gt();vk();qu=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),Tu=n=>/^(%|---|\.\.\.)/m.test(n);try{yg=new RegExp(`(^|(?<!
|
|
31
|
+
))
|
|
32
|
+
+(?!
|
|
33
|
+
|$)`,"g")}catch{yg=/\n+(?!\n|$)/g}});function Mu(n,e){let t=Object.assign({blockQuote:!0,commentString:bk,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},n.schema.toStringOptions,e),i;switch(t.collectionStyle){case"block":i=!1;break;case"flow":i=!0;break;default:i=null}return{anchors:new Set,doc:n,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:i,options:t}}function LR(n,e){if(e.tag){let o=n.filter(s=>s.tag===e.tag);if(o.length>0)return o.find(s=>s.format===e.format)??o[0]}let t,i;if(ve(e)){i=e.value;let o=n.filter(s=>s.identify?.(i));if(o.length>1){let s=o.filter(r=>r.test);s.length>0&&(o=s)}t=o.find(s=>s.format===e.format)??o.find(s=>!s.format)}else i=e,t=n.find(o=>o.nodeClass&&i instanceof o.nodeClass);if(!t){let o=i?.constructor?.name??(i===null?"null":typeof i);throw new Error(`Tag not resolved for ${o} value`)}return t}function jR(n,e,{anchors:t,doc:i}){if(!i.directives)return"";let o=[],s=(ve(n)||Ne(n))&&n.anchor;s&&Su(s)&&(t.add(s),o.push(`&${s}`));let r=n.tag??(e.default?null:e.tag);return r&&o.push(i.directives.tagString(r)),o.join(" ")}function ur(n,e,t,i){if(xe(n))return n.toString(e,t,i);if(ui(n)){if(e.doc.directives)return n.toString(e);if(e.resolvedAliases?.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(n):e.resolvedAliases=new Set([n]),n=n.resolve(e.doc)}let o,s=Re(n)?n:e.doc.createNode(n,{onTagObj:c=>o=c});o??(o=LR(e.doc.schema.tags,s));let r=jR(s,o,e);r.length>0&&(e.indentAtStart=(e.indentAtStart??0)+r.length+1);let a=typeof o.stringify=="function"?o.stringify(s,e,t,i):ve(s)?No(s,e,t,i):s.toString(e,t,i);return r?ve(s)||a[0]==="{"||a[0]==="["?`${r} ${a}`:`${r}
|
|
34
|
+
${e.indent}${a}`:a}var fc=I(()=>{Pu();Te();lc();uc()});function _k({key:n,value:e},t,i,o){let{allNullValues:s,doc:r,indent:a,indentStep:c,options:{commentString:l,indentSeq:p,simpleKeys:d}}=t,u=Re(n)&&n.comment||null;if(d){if(u)throw new Error("With simple keys, key nodes cannot have comments");if(Ne(n)||!Re(n)&&typeof n=="object"){let S="With simple keys, collection cannot be used as a key value";throw new Error(S)}}let f=!d&&(!n||u&&e==null&&!t.inFlow||Ne(n)||(ve(n)?n.type===re.BLOCK_FOLDED||n.type===re.BLOCK_LITERAL:typeof n=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!f&&(d||!s),indent:a+c});let h=!1,m=!1,b=ur(n,t,()=>h=!0,()=>m=!0);if(!f&&!t.inFlow&&b.length>1024){if(d)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");f=!0}if(t.inFlow){if(s||e==null)return h&&i&&i(),b===""?"?":f?`? ${b}`:b}else if(s&&!d||e==null&&f)return b=`? ${b}`,u&&!h?b+=$i(b,t.indent,l(u)):m&&o&&o(),b;h&&(u=null),f?(u&&(b+=$i(b,t.indent,l(u))),b=`? ${b}
|
|
35
|
+
${a}:`):(b=`${b}:`,u&&(b+=$i(b,t.indent,l(u))));let w,g,y;Re(e)?(w=!!e.spaceBefore,g=e.commentBefore,y=e.comment):(w=!1,g=null,y=null,e&&typeof e=="object"&&(e=r.createNode(e))),t.implicitKey=!1,!f&&!u&&ve(e)&&(t.indentAtStart=b.length+1),m=!1,!p&&c.length>=2&&!t.inFlow&&!f&&fi(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let v=!1,_=ur(e,t,()=>v=!0,()=>m=!0),k=" ";if(u||w||g){if(k=w?`
|
|
36
|
+
`:"",g){let S=l(g);k+=`
|
|
37
|
+
${Kn(S,t.indent)}`}_===""&&!t.inFlow?k===`
|
|
38
|
+
`&&y&&(k=`
|
|
39
|
+
|
|
40
|
+
`):k+=`
|
|
41
|
+
${t.indent}`}else if(!f&&Ne(e)){let S=_[0],x=_.indexOf(`
|
|
42
|
+
`),P=x!==-1,C=t.inFlow??e.flow??e.items.length===0;if(P||!C){let R=!1;if(P&&(S==="&"||S==="!")){let O=_.indexOf(" ");S==="&"&&O!==-1&&O<x&&_[O+1]==="!"&&(O=_.indexOf(" ",O+1)),(O===-1||x<O)&&(R=!0)}R||(k=`
|
|
43
|
+
${t.indent}`)}}else(_===""||_[0]===`
|
|
44
|
+
`)&&(k="");return b+=k+_,t.inFlow?v&&i&&i():y&&!v?b+=$i(b,t.indent,l(y)):m&&o&&o(),b}var Ak=I(()=>{Te();gt();fc();lc()});function gg(n,e){(n==="debug"||n==="warn")&&console.warn(e)}var bg=I(()=>{});function vg(n,e,t){let i=Sk(n,t);if(fi(i))for(let o of i.items)wg(n,e,o);else if(Array.isArray(i))for(let o of i)wg(n,e,o);else wg(n,e,i)}function wg(n,e,t){let i=Sk(n,t);if(!Sn(i))throw new Error("Merge sources must be maps or map aliases");let o=i.toJSON(null,n,Map);for(let[s,r]of o)e instanceof Map?e.has(s)||e.set(s,r):e instanceof Set?e.add(s):Object.prototype.hasOwnProperty.call(e,s)||Object.defineProperty(e,s,{value:r,writable:!0,enumerable:!0,configurable:!0});return e}function Sk(n,e){return n&&ui(e)?e.resolve(n.doc,n):e}var Lu,hi,kk,ju=I(()=>{Te();gt();Lu="<<",hi={identify:n=>n===Lu||typeof n=="symbol"&&n.description===Lu,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new re(Symbol(Lu)),{addToJSMap:vg}),stringify:()=>Lu},kk=(n,e)=>(hi.identify(e)||ve(e)&&(!e.type||e.type===re.PLAIN)&&hi.identify(e.value))&&n?.doc.schema.tags.some(t=>t.tag===hi.tag&&t.default)});function Nu(n,e,{key:t,value:i}){if(Re(t)&&t.addToJSMap)t.addToJSMap(n,e,i);else if(kk(n,t))vg(n,e,i);else{let o=Pt(t,"",n);if(e instanceof Map)e.set(o,Pt(i,o,n));else if(e instanceof Set)e.add(o);else{let s=NR(t,o,n),r=Pt(i,s,n);s in e?Object.defineProperty(e,s,{value:r,writable:!0,enumerable:!0,configurable:!0}):e[s]=r}}return e}function NR(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Re(n)&&t?.doc){let i=Mu(t.doc,{});i.anchors=new Set;for(let s of t.anchors.keys())i.anchors.add(s.anchor);i.inFlow=!0,i.inStringifyKey=!0;let o=n.toString(i);if(!t.mapKeyWarned){let s=JSON.stringify(o);s.length>40&&(s=s.substring(0,36)+'..."'),gg(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return o}return JSON.stringify(e)}var _g=I(()=>{bg();ju();fc();Te();$r()});function Zs(n,e,t){let i=dr(n,void 0,t),o=dr(e,void 0,t);return new lt(i,o)}var lt,Br=I(()=>{sc();Ak();_g();Te();lt=class n{constructor(e,t=null){Object.defineProperty(this,Zt,{value:cg}),this.key=e,this.value=t}clone(e){let{key:t,value:i}=this;return Re(t)&&(t=t.clone(e)),Re(i)&&(i=i.clone(e)),new n(t,i)}toJSON(e,t){let i=t?.mapAsMap?new Map:{};return Nu(t,i,this)}toString(e,t,i){return e?.doc?_k(this,e,t,i):JSON.stringify(this)}}});function Du(n,e,t){return(e.inFlow??n.flow?DR:UR)(n,e,t)}function UR({comment:n,items:e},t,{blockItemPrefix:i,flowChars:o,itemIndent:s,onChompKeep:r,onComment:a}){let{indent:c,options:{commentString:l}}=t,p=Object.assign({},t,{indent:s,type:null}),d=!1,u=[];for(let h=0;h<e.length;++h){let m=e[h],b=null;if(Re(m))!d&&m.spaceBefore&&u.push(""),Uu(t,u,m.commentBefore,d),m.comment&&(b=m.comment);else if(xe(m)){let g=Re(m.key)?m.key:null;g&&(!d&&g.spaceBefore&&u.push(""),Uu(t,u,g.commentBefore,d))}d=!1;let w=ur(m,p,()=>b=null,()=>d=!0);b&&(w+=$i(w,s,l(b))),d&&b&&(d=!1),u.push(i+w)}let f;if(u.length===0)f=o.start+o.end;else{f=u[0];for(let h=1;h<u.length;++h){let m=u[h];f+=m?`
|
|
45
|
+
${c}${m}`:`
|
|
46
|
+
`}}return n?(f+=`
|
|
47
|
+
`+Kn(l(n),c),a&&a()):d&&r&&r(),f}function DR({items:n},e,{flowChars:t,itemIndent:i}){let{indent:o,indentStep:s,flowCollectionPadding:r,options:{commentString:a}}=e;i+=s;let c=Object.assign({},e,{indent:i,inFlow:!0,type:null}),l=!1,p=0,d=[];for(let h=0;h<n.length;++h){let m=n[h],b=null;if(Re(m))m.spaceBefore&&d.push(""),Uu(e,d,m.commentBefore,!1),m.comment&&(b=m.comment);else if(xe(m)){let g=Re(m.key)?m.key:null;g&&(g.spaceBefore&&d.push(""),Uu(e,d,g.commentBefore,!1),g.comment&&(l=!0));let y=Re(m.value)?m.value:null;y?(y.comment&&(b=y.comment),y.commentBefore&&(l=!0)):m.value==null&&g?.comment&&(b=g.comment)}b&&(l=!0);let w=ur(m,c,()=>b=null);l||(l=d.length>p||w.includes(`
|
|
48
|
+
`)),h<n.length-1?w+=",":e.options.trailingComma&&(e.options.lineWidth>0&&(l||(l=d.reduce((g,y)=>g+y.length+2,2)+(w.length+2)>e.options.lineWidth)),l&&(w+=",")),b&&(w+=$i(w,i,a(b))),d.push(w),p=d.length}let{start:u,end:f}=t;if(d.length===0)return u+f;if(!l){let h=d.reduce((m,b)=>m+b.length+2,2);l=e.options.lineWidth>0&&h>e.options.lineWidth}if(l){let h=u;for(let m of d)h+=m?`
|
|
49
|
+
${s}${o}${m}`:`
|
|
50
|
+
`;return`${h}
|
|
51
|
+
${o}${f}`}else return`${u}${r}${d.join(" ")}${r}${f}`}function Uu({indent:n,options:{commentString:e}},t,i,o){if(i&&o&&(i=i.replace(/^\n+/,"")),i){let s=Kn(e(i),n);t.push(s.trimStart())}}var Ag=I(()=>{Te();fc();lc()});function Fr(n,e){let t=ve(e)?e.value:e;for(let i of n)if(xe(i)&&(i.key===e||i.key===t||ve(i.key)&&i.key.value===t))return i}var ht,Vr=I(()=>{Ag();_g();Ou();Te();Br();gt();ht=class extends Ys{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(di,e),this.items=[]}static from(e,t,i){let{keepUndefined:o,replacer:s}=i,r=new this(e),a=(c,l)=>{if(typeof s=="function")l=s.call(t,c,l);else if(Array.isArray(s)&&!s.includes(c))return;(l!==void 0||o)&&r.items.push(Zs(c,l,i))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&r.items.sort(e.sortMapEntries),r}add(e,t){let i;xe(e)?i=e:!e||typeof e!="object"||!("key"in e)?i=new lt(e,e?.value):i=new lt(e.key,e.value);let o=Fr(this.items,i.key),s=this.schema?.sortMapEntries;if(o){if(!t)throw new Error(`Key ${i.key} already set`);ve(o.value)&&Iu(i.value)?o.value.value=i.value:o.value=i.value}else if(s){let r=this.items.findIndex(a=>s(i,a)<0);r===-1?this.items.push(i):this.items.splice(r,0,i)}else this.items.push(i)}delete(e){let t=Fr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let o=Fr(this.items,e)?.value;return(!t&&ve(o)?o.value:o)??void 0}has(e){return!!Fr(this.items,e)}set(e,t){this.add(new lt(e,t),!0)}toJSON(e,t,i){let o=i?new i:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(o);for(let s of this.items)Nu(t,o,s);return o}toString(e,t,i){if(!e)return JSON.stringify(this);for(let o of this.items)if(!xe(o))throw new Error(`Map items must all be pairs; found ${JSON.stringify(o)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Du(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:i,onComment:t})}}});var mi,Qs=I(()=>{Te();Vr();mi={collection:"map",default:!0,nodeClass:ht,tag:"tag:yaml.org,2002:map",resolve(n,e){return Sn(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>ht.from(n,e,t)}});function $u(n){let e=ve(n)?n.value:n;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}var zt,Kr=I(()=>{sc();Ag();Ou();Te();gt();$r();zt=class extends Ys{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(cr,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=$u(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let i=$u(e);if(typeof i!="number")return;let o=this.items[i];return!t&&ve(o)?o.value:o}has(e){let t=$u(e);return typeof t=="number"&&t<this.items.length}set(e,t){let i=$u(e);if(typeof i!="number")throw new Error(`Expected a valid index, not ${e}.`);let o=this.items[i];ve(o)&&Iu(t)?o.value=t:this.items[i]=t}toJSON(e,t){let i=[];t?.onCreate&&t.onCreate(i);let o=0;for(let s of this.items)i.push(Pt(s,String(o++),t));return i}toString(e,t,i){return e?Du(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:i,onComment:t}):JSON.stringify(this)}static from(e,t,i){let{replacer:o}=i,s=new this(e);if(t&&Symbol.iterator in Object(t)){let r=0;for(let a of t){if(typeof o=="function"){let c=t instanceof Set?a:String(r++);a=o.call(t,c,a)}s.items.push(dr(a,void 0,i))}}return s}}});var yi,ea=I(()=>{Te();Kr();yi={collection:"seq",default:!0,nodeClass:zt,tag:"tag:yaml.org,2002:seq",resolve(n,e){return fi(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>zt.from(n,e,t)}});var Wr,hc=I(()=>{uc();Wr={identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,e,t,i){return e=Object.assign({actualString:!0},e),No(n,e,t,i)}}});var Uo,zu=I(()=>{gt();Uo={identify:n=>n==null,createNode:()=>new re(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new re(null),stringify:({source:n},e)=>typeof n=="string"&&Uo.test.test(n)?n:e.options.nullStr}});var mc,kg=I(()=>{gt();mc={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new re(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&mc.test.test(n)){let i=n[0]==="t"||n[0]==="T";if(e===i)return n}return e?t.options.trueStr:t.options.falseStr}}});function Bt({format:n,minFractionDigits:e,tag:t,value:i}){if(typeof i=="bigint")return String(i);let o=typeof i=="number"?i:Number(i);if(!isFinite(o))return isNaN(o)?".nan":o<0?"-.inf":".inf";let s=Object.is(i,-0)?"-0":JSON.stringify(i);if(!n&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^-?\d/.test(s)&&!s.includes("e")){let r=s.indexOf(".");r<0&&(r=s.length,s+=".");let a=e-(s.length-r-1);for(;a-- >0;)s+="0"}return s}var ta=I(()=>{});var Bu,Fu,Vu,Sg=I(()=>{gt();ta();Bu={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Bt},Fu={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Bt(n)}},Vu={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(n){let e=new re(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:Bt}});function Pk(n,e,t){let{value:i}=n;return Ku(i)&&i>=0?t+i.toString(e):Bt(n)}var Ku,Pg,Wu,Hu,Gu,xg=I(()=>{ta();Ku=n=>typeof n=="bigint"||Number.isInteger(n),Pg=(n,e,t,{intAsBigInt:i})=>i?BigInt(n):parseInt(n.substring(e),t);Wu={identify:n=>Ku(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>Pg(n,2,8,t),stringify:n=>Pk(n,8,"0o")},Hu={identify:Ku,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>Pg(n,0,10,t),stringify:Bt},Gu={identify:n=>Ku(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>Pg(n,2,16,t),stringify:n=>Pk(n,16,"0x")}});var xk,Ck=I(()=>{Qs();zu();ea();hc();kg();Sg();xg();xk=[mi,yi,Wr,Uo,mc,Wu,Hu,Gu,Bu,Fu,Vu]});function Ik(n){return typeof n=="bigint"||Number.isInteger(n)}var Yu,$R,zR,Ok,Rk=I(()=>{gt();Qs();ea();Yu=({value:n})=>JSON.stringify(n),$R=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:Yu},{identify:n=>n==null,createNode:()=>new re(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Yu},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:n=>n==="true",stringify:Yu},{identify:Ik,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,e,{intAsBigInt:t})=>t?BigInt(n):parseInt(n,10),stringify:({value:n})=>Ik(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:Yu}],zR={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},Ok=[mi,yi].concat($R,zR)});var yc,Cg=I(()=>{gt();uc();yc={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof atob=="function"){let t=atob(n.replace(/[\n\r]/g,"")),i=new Uint8Array(t.length);for(let o=0;o<t.length;++o)i[o]=t.charCodeAt(o);return i}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),n},stringify({comment:n,type:e,value:t},i,o,s){if(!t)return"";let r=t,a;if(typeof btoa=="function"){let c="";for(let l=0;l<r.length;++l)c+=String.fromCharCode(r[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=re.BLOCK_LITERAL),e!==re.QUOTE_DOUBLE){let c=Math.max(i.options.lineWidth-i.indent.length,i.options.minContentWidth),l=Math.ceil(a.length/c),p=new Array(l);for(let d=0,u=0;d<l;++d,u+=c)p[d]=a.substr(u,c);a=p.join(e===re.BLOCK_LITERAL?`
|
|
52
|
+
`:" ")}return No({comment:n,type:e,value:a},i,o,s)}}});function Ig(n,e){if(fi(n))for(let t=0;t<n.items.length;++t){let i=n.items[t];if(!xe(i)){if(Sn(i)){i.items.length>1&&e("Each pair must have its own sequence indicator");let o=i.items[0]||new lt(new re(null));if(i.commentBefore&&(o.key.commentBefore=o.key.commentBefore?`${i.commentBefore}
|
|
53
|
+
${o.key.commentBefore}`:i.commentBefore),i.comment){let s=o.value??o.key;s.comment=s.comment?`${i.comment}
|
|
54
|
+
${s.comment}`:i.comment}i=o}n.items[t]=xe(i)?i:new lt(i)}}else e("Expected a sequence for this tag");return n}function Og(n,e,t){let{replacer:i}=t,o=new zt(n);o.tag="tag:yaml.org,2002:pairs";let s=0;if(e&&Symbol.iterator in Object(e))for(let r of e){typeof i=="function"&&(r=i.call(e,String(s++),r));let a,c;if(Array.isArray(r))if(r.length===2)a=r[0],c=r[1];else throw new TypeError(`Expected [key, value] tuple: ${r}`);else if(r&&r instanceof Object){let l=Object.keys(r);if(l.length===1)a=l[0],c=r[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=r;o.items.push(Zs(a,c,t))}return o}var gc,Ju=I(()=>{Te();Br();gt();Kr();gc={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Ig,createNode:Og}});var na,bc,Rg=I(()=>{Te();$r();Vr();Kr();Ju();na=class n extends zt{constructor(){super(),this.add=ht.prototype.add.bind(this),this.delete=ht.prototype.delete.bind(this),this.get=ht.prototype.get.bind(this),this.has=ht.prototype.has.bind(this),this.set=ht.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let i=new Map;t?.onCreate&&t.onCreate(i);for(let o of this.items){let s,r;if(xe(o)?(s=Pt(o.key,"",t),r=Pt(o.value,s,t)):s=Pt(o,"",t),i.has(s))throw new Error("Ordered maps must not include duplicate keys");i.set(s,r)}return i}static from(e,t,i){let o=Og(e,t,i),s=new this;return s.items=o.items,s}};na.tag="tag:yaml.org,2002:omap";bc={collection:"seq",identify:n=>n instanceof Map,nodeClass:na,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Ig(n,e),i=[];for(let{key:o}of t.items)ve(o)&&(i.includes(o.value)?e(`Ordered maps must not include duplicate keys: ${o.value}`):i.push(o.value));return Object.assign(new na,t)},createNode:(n,e,t)=>na.from(n,e,t)}});function Ek({value:n,source:e},t){return e&&(n?Eg:qg).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Eg,qg,qk=I(()=>{gt();Eg={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new re(!0),stringify:Ek},qg={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new re(!1),stringify:Ek}});var Tk,Mk,Lk,jk=I(()=>{gt();ta();Tk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Bt},Mk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Bt(n)}},Lk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let e=new re(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let i=n.substring(t+1).replace(/_/g,"");i[i.length-1]==="0"&&(e.minFractionDigits=i.length)}return e},stringify:Bt}});function Xu(n,e,t,{intAsBigInt:i}){let o=n[0];if((o==="-"||o==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),i){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let r=BigInt(n);return o==="-"?BigInt(-1)*r:r}let s=parseInt(n,t);return o==="-"?-1*s:s}function Tg(n,e,t){let{value:i}=n;if(wc(i)){let o=i.toString(e);return i<0?"-"+t+o.substr(1):t+o}return Bt(n)}var wc,Nk,Uk,Dk,$k,zk=I(()=>{ta();wc=n=>typeof n=="bigint"||Number.isInteger(n);Nk={identify:wc,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>Xu(n,2,2,t),stringify:n=>Tg(n,2,"0b")},Uk={identify:wc,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>Xu(n,1,8,t),stringify:n=>Tg(n,8,"0")},Dk={identify:wc,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>Xu(n,0,10,t),stringify:Bt},$k={identify:wc,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>Xu(n,2,16,t),stringify:n=>Tg(n,16,"0x")}});var ia,vc,Mg=I(()=>{Te();Br();Vr();ia=class n extends ht{constructor(e){super(e),this.tag=n.tag}add(e){let t;xe(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new lt(e.key,null):t=new lt(e,null),Fr(this.items,t.key)||this.items.push(t)}get(e,t){let i=Fr(this.items,e);return!t&&xe(i)?ve(i.key)?i.key.value:i.key:i}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let i=Fr(this.items,e);i&&!t?this.items.splice(this.items.indexOf(i),1):!i&&t&&this.items.push(new lt(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,i){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,i);throw new Error("Set items must all have null values")}static from(e,t,i){let{replacer:o}=i,s=new this(e);if(t&&Symbol.iterator in Object(t))for(let r of t)typeof o=="function"&&(r=o.call(t,r,r)),s.items.push(Zs(r,null,i));return s}};ia.tag="tag:yaml.org,2002:set";vc={collection:"map",identify:n=>n instanceof Set,nodeClass:ia,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>ia.from(n,e,t),resolve(n,e){if(Sn(n)){if(n.hasAllNullValues(!0))return Object.assign(new ia,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}}});function Lg(n,e){let t=n[0],i=t==="-"||t==="+"?n.substring(1):n,o=r=>e?BigInt(r):Number(r),s=i.replace(/_/g,"").split(":").reduce((r,a)=>r*o(60)+o(a),o(0));return t==="-"?o(-1)*s:s}function Bk(n){let{value:e}=n,t=r=>r;if(typeof e=="bigint")t=r=>BigInt(r);else if(isNaN(e)||!isFinite(e))return Bt(n);let i="";e<0&&(i="-",e*=t(-1));let o=t(60),s=[e%o];return e<60?s.unshift(0):(e=(e-s[0])/o,s.unshift(e%o),e>=60&&(e=(e-s[0])/o,s.unshift(e))),i+s.map(r=>String(r).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Zu,Qu,ra,jg=I(()=>{ta();Zu={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Lg(n,t),stringify:Bk},Qu={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>Lg(n,!1),stringify:Bk},ra={identify:n=>n instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(n){let e=n.match(ra.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,i,o,s,r,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,i-1,o,s||0,r||0,a||0,c),p=e[8];if(p&&p!=="Z"){let d=Lg(p,!1);Math.abs(d)<30&&(d*=60),l-=6e4*d}return new Date(l)},stringify:({value:n})=>n?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""}});var Ng,Fk=I(()=>{Qs();zu();ea();hc();Cg();qk();jk();zk();ju();Rg();Ju();Mg();jg();Ng=[mi,yi,Wr,Uo,Eg,qg,Nk,Uk,Dk,$k,Tk,Mk,Lk,yc,hi,bc,gc,vc,Zu,Qu,ra]});function ef(n,e,t){let i=Vk.get(e);if(i&&!n)return t&&!i.includes(hi)?i.concat(hi):i.slice();let o=i;if(!o)if(Array.isArray(n))o=[];else{let s=Array.from(Vk.keys()).filter(r=>r!=="yaml11").map(r=>JSON.stringify(r)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${s} or define customTags array`)}if(Array.isArray(n))for(let s of n)o=o.concat(s);else typeof n=="function"&&(o=n(o.slice()));return t&&(o=o.concat(hi)),o.reduce((s,r)=>{let a=typeof r=="string"?Kk[r]:r;if(!a){let c=JSON.stringify(r),l=Object.keys(Kk).map(p=>JSON.stringify(p)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return s.includes(a)||s.push(a),s},[])}var Vk,Kk,Wk,Hk=I(()=>{Qs();zu();ea();hc();kg();Sg();xg();Ck();Rk();Cg();ju();Rg();Ju();Fk();Mg();jg();Vk=new Map([["core",xk],["failsafe",[mi,yi,Wr]],["json",Ok],["yaml11",Ng],["yaml-1.1",Ng]]),Kk={binary:yc,bool:mc,float:Vu,floatExp:Fu,floatNaN:Bu,floatTime:Qu,int:Hu,intHex:Gu,intOct:Wu,intTime:Zu,map:mi,merge:hi,null:Uo,omap:bc,pairs:gc,seq:yi,set:vc,timestamp:ra},Wk={"tag:yaml.org,2002:binary":yc,"tag:yaml.org,2002:merge":hi,"tag:yaml.org,2002:omap":bc,"tag:yaml.org,2002:pairs":gc,"tag:yaml.org,2002:set":vc,"tag:yaml.org,2002:timestamp":ra}});var BR,_c,Ug=I(()=>{Te();Qs();ea();hc();Hk();BR=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,_c=class n{constructor({compat:e,customTags:t,merge:i,resolveKnownTags:o,schema:s,sortMapEntries:r,toStringDefaults:a}){this.compat=Array.isArray(e)?ef(e,"compat"):e?ef(null,e):null,this.name=typeof s=="string"&&s||"core",this.knownTags=o?Wk:{},this.tags=ef(t,this.name,i),this.toStringOptions=a??null,Object.defineProperty(this,di,{value:mi}),Object.defineProperty(this,kn,{value:Wr}),Object.defineProperty(this,cr,{value:yi}),this.sortMapEntries=typeof r=="function"?r:r===!0?BR:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}}});function Gk(n,e){let t=[],i=e.directives===!0;if(e.directives!==!1&&n.directives){let c=n.directives.toString(n);c?(t.push(c),i=!0):n.directives.docStart&&(i=!0)}i&&t.push("---");let o=Mu(n,e),{commentString:s}=o.options;if(n.commentBefore){t.length!==1&&t.unshift("");let c=s(n.commentBefore);t.unshift(Kn(c,""))}let r=!1,a=null;if(n.contents){if(Re(n.contents)){if(n.contents.spaceBefore&&i&&t.push(""),n.contents.commentBefore){let p=s(n.contents.commentBefore);t.push(Kn(p,""))}o.forceBlockIndent=!!n.comment,a=n.contents.comment}let c=a?void 0:()=>r=!0,l=ur(n.contents,o,()=>a=null,c);a&&(l+=$i(l,"",s(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(ur(n.contents,o));if(n.directives?.docEnd)if(n.comment){let c=s(n.comment);c.includes(`
|
|
55
|
+
`)?(t.push("..."),t.push(Kn(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=n.comment;c&&r&&(c=c.replace(/^\n+/,"")),c&&((!r||a)&&t[t.length-1]!==""&&t.push(""),t.push(Kn(s(c),"")))}return t.join(`
|
|
56
|
+
`)+`
|
|
57
|
+
`}var Yk=I(()=>{Te();fc();lc()});function oa(n){if(Ne(n))return!0;throw new Error("Expected a YAML collection as document contents")}var Hr,Ac=I(()=>{oc();Ou();Te();Br();$r();Ug();Yk();Pu();fg();sc();pg();Hr=class n{constructor(e,t,i){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Zt,{value:_u});let o=null;typeof t=="function"||Array.isArray(t)?o=t:i===void 0&&t&&(i=t,t=void 0);let s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},i);this.options=s;let{version:r}=s;i?._directives?(this.directives=i._directives.atDocument(),this.directives.yaml.explicit&&(r=this.directives.yaml.version)):this.directives=new Di({version:r}),this.setSchema(r,i),this.contents=e===void 0?null:this.createNode(e,o,i)}clone(){let e=Object.create(n.prototype,{[Zt]:{value:_u}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=Re(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){oa(this.contents)&&this.contents.add(e)}addIn(e,t){oa(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let i=dg(this);e.anchor=!t||i.has(t)?ug(t||"a",i):t}return new pr(e.anchor)}createNode(e,t,i){let o;if(typeof t=="function")e=t.call({"":e},"",e),o=t;else if(Array.isArray(t)){let b=g=>typeof g=="number"||g instanceof String||g instanceof Number,w=t.filter(b).map(String);w.length>0&&(t=t.concat(w)),o=t}else i===void 0&&t&&(i=t,t=void 0);let{aliasDuplicateObjects:s,anchorPrefix:r,flow:a,keepUndefined:c,onTagObj:l,tag:p}=i??{},{onAnchor:d,setAnchors:u,sourceObjects:f}=gk(this,r||"a"),h={aliasDuplicateObjects:s??!0,keepUndefined:c??!1,onAnchor:d,onTagObj:l,replacer:o,schema:this.schema,sourceObjects:f},m=dr(e,p,h);return a&&Ne(m)&&(m.flow=!0),u(),m}createPair(e,t,i={}){let o=this.createNode(e,null,i),s=this.createNode(t,null,i);return new lt(o,s)}delete(e){return oa(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Js(e)?this.contents==null?!1:(this.contents=null,!0):oa(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return Ne(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Js(e)?!t&&ve(this.contents)?this.contents.value:this.contents:Ne(this.contents)?this.contents.getIn(e,t):void 0}has(e){return Ne(this.contents)?this.contents.has(e):!1}hasIn(e){return Js(e)?this.contents!==void 0:Ne(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=ac(this.schema,[e],t):oa(this.contents)&&this.contents.set(e,t)}setIn(e,t){Js(e)?this.contents=t:this.contents==null?this.contents=ac(this.schema,Array.from(e),t):oa(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let i;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Di({version:"1.1"}),i={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Di({version:e}),i={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,i=null;break;default:{let o=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${o}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(i)this.schema=new _c(Object.assign(i,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:i,maxAliasCount:o,onAnchor:s,reviver:r}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof o=="number"?o:100},c=Pt(this.contents,t??"",a);if(typeof s=="function")for(let{count:l,res:p}of a.anchors.values())s(p,l);return typeof r=="function"?Dr(r,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Gk(this,e)}}});var kc,gi,Sc,Dg,Pc=I(()=>{kc=class extends Error{constructor(e,t,i,o){super(),this.name=e,this.code=i,this.message=o,this.pos=t}},gi=class extends kc{constructor(e,t,i){super("YAMLParseError",e,t,i)}},Sc=class extends kc{constructor(e,t,i){super("YAMLWarning",e,t,i)}},Dg=(n,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:i,col:o}=t.linePos[0];t.message+=` at line ${i}, column ${o}`;let s=o-1,r=n.substring(e.lineStarts[i-1],e.lineStarts[i]).replace(/[\n\r]+$/,"");if(s>=60&&r.length>80){let a=Math.min(s-39,r.length-79);r="\u2026"+r.substring(a),s-=a-1}if(r.length>80&&(r=r.substring(0,79)+"\u2026"),i>1&&/^ *$/.test(r.substring(0,s))){let a=n.substring(e.lineStarts[i-2],e.lineStarts[i-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
|
|
58
|
+
`),r=a+r}if(/[^ ]/.test(r)){let a=1,c=t.linePos[1];c?.line===i&&c.col>o&&(a=Math.max(1,Math.min(c.col-o,80-s)));let l=" ".repeat(s)+"^".repeat(a);t.message+=`:
|
|
59
|
+
|
|
60
|
+
${r}
|
|
61
|
+
${l}
|
|
62
|
+
`}}});function zi(n,{flow:e,indicator:t,next:i,offset:o,onError:s,parentIndent:r,startOnNewline:a}){let c=!1,l=a,p=a,d="",u="",f=!1,h=!1,m=null,b=null,w=null,g=null,y=null,v=null,_=null;for(let x of n)switch(h&&(x.type!=="space"&&x.type!=="newline"&&x.type!=="comma"&&s(x.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h=!1),m&&(l&&x.type!=="comment"&&x.type!=="newline"&&s(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),x.type){case"space":!e&&(t!=="doc-start"||i?.type!=="flow-collection")&&x.source.includes(" ")&&(m=x),p=!0;break;case"comment":{p||s(x,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let P=x.source.substring(1)||" ";d?d+=u+P:d=P,u="",l=!1;break}case"newline":l?d?d+=x.source:(!v||t!=="seq-item-ind")&&(c=!0):u+=x.source,l=!0,f=!0,(b||w)&&(g=x),p=!0;break;case"anchor":b&&s(x,"MULTIPLE_ANCHORS","A node can have at most one anchor"),x.source.endsWith(":")&&s(x.offset+x.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),b=x,_??(_=x.offset),l=!1,p=!1,h=!0;break;case"tag":{w&&s(x,"MULTIPLE_TAGS","A node can have at most one tag"),w=x,_??(_=x.offset),l=!1,p=!1,h=!0;break}case t:(b||w)&&s(x,"BAD_PROP_ORDER",`Anchors and tags must be after the ${x.source} indicator`),v&&s(x,"UNEXPECTED_TOKEN",`Unexpected ${x.source} in ${e??"collection"}`),v=x,l=t==="seq-item-ind"||t==="explicit-key-ind",p=!1;break;case"comma":if(e){y&&s(x,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),y=x,l=!1,p=!1;break}default:s(x,"UNEXPECTED_TOKEN",`Unexpected ${x.type} token`),l=!1,p=!1}let k=n[n.length-1],S=k?k.offset+k.source.length:o;return h&&i&&i.type!=="space"&&i.type!=="newline"&&i.type!=="comma"&&(i.type!=="scalar"||i.source!=="")&&s(i.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=r||i?.type==="block-map"||i?.type==="block-seq")&&s(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:y,found:v,spaceBefore:c,comment:d,hasNewline:f,anchor:b,tag:w,newlineAfterProp:g,end:S,start:_??S}}var xc=I(()=>{});function Gr(n){if(!n)return null;switch(n.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(n.source.includes(`
|
|
63
|
+
`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Gr(e.key)||Gr(e.value))return!0}return!1;default:return!0}}var tf=I(()=>{});function Cc(n,e,t){if(e?.type==="flow-collection"){let i=e.end[0];i.indent===n&&(i.source==="]"||i.source==="}")&&Gr(e)&&t(i,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}var $g=I(()=>{tf()});function nf(n,e,t){let{uniqueKeys:i}=n.options;if(i===!1)return!1;let o=typeof i=="function"?i:(s,r)=>s===r||ve(s)&&ve(r)&&s.value===r.value;return e.some(s=>o(s.key,t))}var zg=I(()=>{Te()});function Xk({composeNode:n,composeEmptyNode:e},t,i,o,s){let r=s?.nodeClass??ht,a=new r(t.schema);t.atRoot&&(t.atRoot=!1);let c=i.offset,l=null;for(let p of i.items){let{start:d,key:u,sep:f,value:h}=p,m=zi(d,{indicator:"explicit-key-ind",next:u??f?.[0],offset:c,onError:o,parentIndent:i.indent,startOnNewline:!0}),b=!m.found;if(b){if(u&&(u.type==="block-seq"?o(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in u&&u.indent!==i.indent&&o(c,"BAD_INDENT",Jk)),!m.anchor&&!m.tag&&!f){l=m.end,m.comment&&(a.comment?a.comment+=`
|
|
64
|
+
`+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||Gr(u))&&o(u??d[d.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==i.indent&&o(c,"BAD_INDENT",Jk);t.atKey=!0;let w=m.end,g=u?n(t,u,m,o):e(t,w,d,null,m,o);t.schema.compat&&Cc(i.indent,u,o),t.atKey=!1,nf(t,a.items,g)&&o(w,"DUPLICATE_KEY","Map keys must be unique");let y=zi(f??[],{indicator:"map-value-ind",next:h,offset:g.range[2],onError:o,parentIndent:i.indent,startOnNewline:!u||u.type==="block-scalar"});if(c=y.end,y.found){b&&(h?.type==="block-map"&&!y.hasNewline&&o(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<y.found.offset-1024&&o(g.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let v=h?n(t,h,y,o):e(t,c,f,null,y,o);t.schema.compat&&Cc(i.indent,h,o),c=v.range[2];let _=new lt(g,v);t.options.keepSourceTokens&&(_.srcToken=p),a.items.push(_)}else{b&&o(g.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),y.comment&&(g.comment?g.comment+=`
|
|
65
|
+
`+y.comment:g.comment=y.comment);let v=new lt(g);t.options.keepSourceTokens&&(v.srcToken=p),a.items.push(v)}}return l&&l<c&&o(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[i.offset,c,l??c],a}var Jk,Zk=I(()=>{Br();Vr();xc();tf();$g();zg();Jk="All mapping items must start at the same column"});function Qk({composeNode:n,composeEmptyNode:e},t,i,o,s){let r=s?.nodeClass??zt,a=new r(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=i.offset,l=null;for(let{start:p,value:d}of i.items){let u=zi(p,{indicator:"seq-item-ind",next:d,offset:c,onError:o,parentIndent:i.indent,startOnNewline:!0});if(!u.found)if(u.anchor||u.tag||d)d?.type==="block-seq"?o(u.end,"BAD_INDENT","All sequence items must start at the same column"):o(c,"MISSING_CHAR","Sequence item without - indicator");else{l=u.end,u.comment&&(a.comment=u.comment);continue}let f=d?n(t,d,u,o):e(t,u.end,p,null,u,o);t.schema.compat&&Cc(i.indent,d,o),c=f.range[2],a.items.push(f)}return a.range=[i.offset,c,l??c],a}var eS=I(()=>{Kr();xc();$g()});function Bi(n,e,t,i){let o="";if(n){let s=!1,r="";for(let a of n){let{source:c,type:l}=a;switch(l){case"space":s=!0;break;case"comment":{t&&!s&&i(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let p=c.substring(1)||" ";o?o+=r+p:o=p,r="";break}case"newline":o&&(r+=c),s=!0;break;default:i(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:o,offset:e}}var sa=I(()=>{});function tS({composeNode:n,composeEmptyNode:e},t,i,o,s){let r=i.start.source==="{",a=r?"flow map":"flow sequence",c=s?.nodeClass??(r?ht:zt),l=new c(t.schema);l.flow=!0;let p=t.atRoot;p&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let d=i.offset+i.start.source.length;for(let b=0;b<i.items.length;++b){let w=i.items[b],{start:g,key:y,sep:v,value:_}=w,k=zi(g,{flow:a,indicator:"explicit-key-ind",next:y??v?.[0],offset:d,onError:o,parentIndent:i.indent,startOnNewline:!1});if(!k.found){if(!k.anchor&&!k.tag&&!v&&!_){b===0&&k.comma?o(k.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):b<i.items.length-1&&o(k.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),k.comment&&(l.comment?l.comment+=`
|
|
66
|
+
`+k.comment:l.comment=k.comment),d=k.end;continue}!r&&t.options.strict&&Gr(y)&&o(y,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(b===0)k.comma&&o(k.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(k.comma||o(k.start,"MISSING_CHAR",`Missing , between ${a} items`),k.comment){let S="";e:for(let x of g)switch(x.type){case"comma":case"space":break;case"comment":S=x.source.substring(1);break e;default:break e}if(S){let x=l.items[l.items.length-1];xe(x)&&(x=x.value??x.key),x.comment?x.comment+=`
|
|
67
|
+
`+S:x.comment=S,k.comment=k.comment.substring(S.length+1)}}if(!r&&!v&&!k.found){let S=_?n(t,_,k,o):e(t,k.end,v,null,k,o);l.items.push(S),d=S.range[2],Fg(_)&&o(S.range,"BLOCK_IN_FLOW",Bg)}else{t.atKey=!0;let S=k.end,x=y?n(t,y,k,o):e(t,S,g,null,k,o);Fg(y)&&o(x.range,"BLOCK_IN_FLOW",Bg),t.atKey=!1;let P=zi(v??[],{flow:a,indicator:"map-value-ind",next:_,offset:x.range[2],onError:o,parentIndent:i.indent,startOnNewline:!1});if(P.found){if(!r&&!k.found&&t.options.strict){if(v)for(let O of v){if(O===P.found)break;if(O.type==="newline"){o(O,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}k.start<P.found.offset-1024&&o(P.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else _&&("source"in _&&_.source?.[0]===":"?o(_,"MISSING_CHAR",`Missing space after : in ${a}`):o(P.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let C=_?n(t,_,P,o):P.found?e(t,P.end,v,null,P,o):null;C?Fg(_)&&o(C.range,"BLOCK_IN_FLOW",Bg):P.comment&&(x.comment?x.comment+=`
|
|
68
|
+
`+P.comment:x.comment=P.comment);let R=new lt(x,C);if(t.options.keepSourceTokens&&(R.srcToken=w),r){let O=l;nf(t,O.items,x)&&o(S,"DUPLICATE_KEY","Map keys must be unique"),O.items.push(R)}else{let O=new ht(t.schema);O.flow=!0,O.items.push(R);let L=(C??x).range;O.range=[x.range[0],L[1],L[2]],l.items.push(O)}d=C?C.range[2]:P.end}}let u=r?"}":"]",[f,...h]=i.end,m=d;if(f?.source===u)m=f.offset+f.source.length;else{let b=a[0].toUpperCase()+a.substring(1),w=p?`${b} must end with a ${u}`:`${b} in block collection must be sufficiently indented and end with a ${u}`;o(d,p?"MISSING_CHAR":"BAD_INDENT",w),f&&f.source.length!==1&&h.unshift(f)}if(h.length>0){let b=Bi(h,m,t.options.strict,o);b.comment&&(l.comment?l.comment+=`
|
|
69
|
+
`+b.comment:l.comment=b.comment),l.range=[i.offset,m,b.offset]}else l.range=[i.offset,m,m];return l}var Bg,Fg,nS=I(()=>{Te();Br();Vr();Kr();sa();xc();tf();zg();Bg="Block collections are not allowed within flow collections",Fg=n=>n&&(n.type==="block-map"||n.type==="block-seq")});function Vg(n,e,t,i,o,s){let r=t.type==="block-map"?Xk(n,e,t,i,s):t.type==="block-seq"?Qk(n,e,t,i,s):tS(n,e,t,i,s),a=r.constructor;return o==="!"||o===a.tagName?(r.tag=a.tagName,r):(o&&(r.tag=o),r)}function iS(n,e,t,i,o){let s=i.tag,r=s?e.directives.tagName(s.source,u=>o(s,"TAG_RESOLVE_FAILED",u)):null;if(t.type==="block-seq"){let{anchor:u,newlineAfterProp:f}=i,h=u&&s?u.offset>s.offset?u:s:u??s;h&&(!f||f.offset<h.offset)&&o(h,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!s||!r||r==="!"||r===ht.tagName&&a==="map"||r===zt.tagName&&a==="seq")return Vg(n,e,t,o,r);let c=e.schema.tags.find(u=>u.tag===r&&u.collection===a);if(!c){let u=e.schema.knownTags[r];if(u?.collection===a)e.schema.tags.push(Object.assign({},u,{default:!1})),c=u;else return u?o(s,"BAD_COLLECTION_TYPE",`${u.tag} used for ${a} collection, but expects ${u.collection??"scalar"}`,!0):o(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,!0),Vg(n,e,t,o,r)}let l=Vg(n,e,t,o,r,c),p=c.resolve?.(l,u=>o(s,"TAG_RESOLVE_FAILED",u),e.options)??l,d=Re(p)?p:new re(p);return d.range=l.range,d.tag=r,c?.format&&(d.format=c.format),d}var rS=I(()=>{Te();gt();Vr();Kr();Zk();eS();nS()});function Kg(n,e,t){let i=e.offset,o=FR(e,n.options.strict,t);if(!o)return{value:"",type:null,comment:"",range:[i,i,i]};let s=o.mode===">"?re.BLOCK_FOLDED:re.BLOCK_LITERAL,r=e.source?VR(e.source):[],a=r.length;for(let m=r.length-1;m>=0;--m){let b=r[m][1];if(b===""||b==="\r")a=m;else break}if(a===0){let m=o.chomp==="+"&&r.length>0?`
|
|
70
|
+
`.repeat(Math.max(1,r.length-1)):"",b=i+o.length;return e.source&&(b+=e.source.length),{value:m,type:s,comment:o.comment,range:[i,b,b]}}let c=e.indent+o.indent,l=e.offset+o.length,p=0;for(let m=0;m<a;++m){let[b,w]=r[m];if(w===""||w==="\r")o.indent===0&&b.length>c&&(c=b.length);else{b.length<c&&t(l+b.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),o.indent===0&&(c=b.length),p=m,c===0&&!n.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=b.length+w.length+1}for(let m=r.length-1;m>=a;--m)r[m][0].length>c&&(a=m+1);let d="",u="",f=!1;for(let m=0;m<p;++m)d+=r[m][0].slice(c)+`
|
|
71
|
+
`;for(let m=p;m<a;++m){let[b,w]=r[m];l+=b.length+w.length+1;let g=w[w.length-1]==="\r";if(g&&(w=w.slice(0,-1)),w&&b.length<c){let v=`Block scalar lines must not be less indented than their ${o.indent?"explicit indentation indicator":"first line"}`;t(l-w.length-(g?2:1),"BAD_INDENT",v),b=""}s===re.BLOCK_LITERAL?(d+=u+b.slice(c)+w,u=`
|
|
72
|
+
`):b.length>c||w[0]===" "?(u===" "?u=`
|
|
73
|
+
`:!f&&u===`
|
|
74
|
+
`&&(u=`
|
|
75
|
+
|
|
76
|
+
`),d+=u+b.slice(c)+w,u=`
|
|
77
|
+
`,f=!0):w===""?u===`
|
|
78
|
+
`?d+=`
|
|
79
|
+
`:u=`
|
|
80
|
+
`:(d+=u+w,u=" ",f=!1)}switch(o.chomp){case"-":break;case"+":for(let m=a;m<r.length;++m)d+=`
|
|
81
|
+
`+r[m][0].slice(c);d[d.length-1]!==`
|
|
82
|
+
`&&(d+=`
|
|
83
|
+
`);break;default:d+=`
|
|
84
|
+
`}let h=i+o.length+e.source.length;return{value:d,type:s,comment:o.comment,range:[i,h,h]}}function FR({offset:n,props:e},t,i){if(e[0].type!=="block-scalar-header")return i(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:o}=e[0],s=o[0],r=0,a="",c=-1;for(let u=1;u<o.length;++u){let f=o[u];if(!a&&(f==="-"||f==="+"))a=f;else{let h=Number(f);!r&&h?r=h:c===-1&&(c=n+u)}}c!==-1&&i(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${o}`);let l=!1,p="",d=o.length;for(let u=1;u<e.length;++u){let f=e[u];switch(f.type){case"space":l=!0;case"newline":d+=f.source.length;break;case"comment":t&&!l&&i(f,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),d+=f.source.length,p=f.source.substring(1);break;case"error":i(f,"UNEXPECTED_TOKEN",f.message),d+=f.source.length;break;default:{let h=`Unexpected token in block scalar header: ${f.type}`;i(f,"UNEXPECTED_TOKEN",h);let m=f.source;m&&typeof m=="string"&&(d+=m.length)}}}return{mode:s,indent:r,chomp:a,comment:p,length:d}}function VR(n){let e=n.split(/\n( *)/),t=e[0],i=t.match(/^( *)/),s=[i?.[1]?[i[1],t.slice(i[1].length)]:["",t]];for(let r=1;r<e.length;r+=2)s.push([e[r],e[r+1]]);return s}var Wg=I(()=>{gt()});function Hg(n,e,t){let{offset:i,type:o,source:s,end:r}=n,a,c,l=(u,f,h)=>t(i+u,f,h);switch(o){case"scalar":a=re.PLAIN,c=KR(s,l);break;case"single-quoted-scalar":a=re.QUOTE_SINGLE,c=WR(s,l);break;case"double-quoted-scalar":a=re.QUOTE_DOUBLE,c=HR(s,l);break;default:return t(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${o}`),{value:"",type:null,comment:"",range:[i,i+s.length,i+s.length]}}let p=i+s.length,d=Bi(r,p,e,t);return{value:c,type:a,comment:d.comment,range:[i,p,d.offset]}}function KR(n,e){let t="";switch(n[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${n[0]}`;break}case"@":case"`":{t=`reserved character ${n[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),oS(n)}function WR(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),oS(n.slice(1,-1)).replace(/''/g,"'")}function oS(n){let e=/(.*?)\r?\n/sy,t=e.exec(n);if(!t)return n;let i,o;try{i=new RegExp("(?<![ ])[ ]+$"),o=new RegExp("^[ ]+|(?<![ ])[ ]+$","g")}catch{i=/[ \t]+$/,o=/^[ \t]+|[ \t]+$/g}let s=t[1].replace(i,""),r=" ",a=e.lastIndex;for(;t=e.exec(n);){let l=t[1].replace(o,"");l===""?r===`
|
|
85
|
+
`?s+=r:r=`
|
|
86
|
+
`:(s+=r+l,r=" "),a=e.lastIndex}let c=/[ \t]*(.*)/sy;return c.lastIndex=a,t=c.exec(n),s+r+(t?.[1]??"")}function HR(n,e){let t="";for(let i=1;i<n.length-1;++i){let o=n[i];if(!(o==="\r"&&n[i+1]===`
|
|
87
|
+
`))if(o===`
|
|
88
|
+
`){let{fold:s,offset:r}=GR(n,i);t+=s,i=r}else if(o==="\\"){let s=n[++i],r=YR[s];if(r)t+=r;else if(s===`
|
|
89
|
+
`)for(s=n[i+1];s===" "||s===" ";)s=n[++i+1];else if(s==="\r"&&n[i+1]===`
|
|
90
|
+
`)for(s=n[++i+1];s===" "||s===" ";)s=n[++i+1];else if(s==="x"||s==="u"||s==="U"){let a=s==="x"?2:s==="u"?4:8;t+=JR(n,i+1,a,e),i+=a}else{let a=n.substr(i-1,2);e(i-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(o===" "||o===" "){let s=i,r=n[i+1];for(;r===" "||r===" ";)r=n[++i+1];r!==`
|
|
91
|
+
`&&!(r==="\r"&&n[i+2]===`
|
|
92
|
+
`)&&(t+=i>s?n.slice(s,i+1):o)}else t+=o}return(n[n.length-1]!=='"'||n.length===1)&&e(n.length,"MISSING_CHAR",'Missing closing "quote'),t}function GR(n,e){let t="",i=n[e+1];for(;(i===" "||i===" "||i===`
|
|
93
|
+
`||i==="\r")&&!(i==="\r"&&n[e+2]!==`
|
|
94
|
+
`);)i===`
|
|
95
|
+
`&&(t+=`
|
|
96
|
+
`),e+=1,i=n[e+1];return t||(t=" "),{fold:t,offset:e}}function JR(n,e,t,i){let o=n.substr(e,t),r=o.length===t&&/^[0-9a-fA-F]+$/.test(o)?parseInt(o,16):NaN;try{return String.fromCodePoint(r)}catch{let a=n.substr(e-2,t+2);return i(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}var YR,Gg=I(()=>{gt();sa();YR={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
97
|
+
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "}});function Yg(n,e,t,i){let{value:o,type:s,comment:r,range:a}=e.type==="block-scalar"?Kg(n,e,i):Hg(e,n.options.strict,i),c=t?n.directives.tagName(t.source,d=>i(t,"TAG_RESOLVE_FAILED",d)):null,l;n.options.stringKeys&&n.atKey?l=n.schema[kn]:c?l=XR(n.schema,o,c,t,i):e.type==="scalar"?l=ZR(n,o,e,i):l=n.schema[kn];let p;try{let d=l.resolve(o,u=>i(t??e,"TAG_RESOLVE_FAILED",u),n.options);p=ve(d)?d:new re(d)}catch(d){let u=d instanceof Error?d.message:String(d);i(t??e,"TAG_RESOLVE_FAILED",u),p=new re(o)}return p.range=a,p.source=o,s&&(p.type=s),c&&(p.tag=c),l.format&&(p.format=l.format),r&&(p.comment=r),p}function XR(n,e,t,i,o){if(t==="!")return n[kn];let s=[];for(let a of n.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)s.push(a);else return a;for(let a of s)if(a.test?.test(e))return a;let r=n.knownTags[t];return r&&!r.collection?(n.tags.push(Object.assign({},r,{default:!1,test:void 0})),r):(o(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),n[kn])}function ZR({atKey:n,directives:e,schema:t},i,o,s){let r=t.tags.find(a=>(a.default===!0||n&&a.default==="key")&&a.test?.test(i))||t[kn];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(i))??t[kn];if(r.tag!==a.tag){let c=e.tagString(r.tag),l=e.tagString(a.tag),p=`Value may be parsed as either ${c} or ${l}`;s(o,"TAG_RESOLVE_FAILED",p,!0)}}return r}var sS=I(()=>{Te();gt();Wg();Gg()});function aS(n,e,t){if(e){t??(t=e.length);for(let i=t-1;i>=0;--i){let o=e[i];switch(o.type){case"space":case"comment":case"newline":n-=o.source.length;continue}for(o=e[++i];o?.type==="space";)n+=o.source.length,o=e[++i];break}}return n}var lS=I(()=>{});function Jg(n,e,t,i){let o=n.atKey,{spaceBefore:s,comment:r,anchor:a,tag:c}=t,l,p=!0;switch(e.type){case"alias":l=eE(n,e,i),(a||c)&&i(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=Yg(n,e,c,i),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{l=iS(QR,n,e,t,i),a&&(l.anchor=a.source.substring(1))}catch(d){let u=d instanceof Error?d.message:String(d);i(e,"RESOURCE_EXHAUSTION",u)}break;default:{let d=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;i(e,"UNEXPECTED_TOKEN",d),p=!1}}return l??(l=rf(n,e.offset,void 0,null,t,i)),a&&l.anchor===""&&i(a,"BAD_ALIAS","Anchor cannot be an empty string"),o&&n.options.stringKeys&&(!ve(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&i(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(l.spaceBefore=!0),r&&(e.type==="scalar"&&e.source===""?l.comment=r:l.commentBefore=r),n.options.keepSourceTokens&&p&&(l.srcToken=e),l}function rf(n,e,t,i,{spaceBefore:o,comment:s,anchor:r,tag:a,end:c},l){let p={type:"scalar",offset:aS(e,t,i),indent:-1,source:""},d=Yg(n,p,a,l);return r&&(d.anchor=r.source.substring(1),d.anchor===""&&l(r,"BAD_ALIAS","Anchor cannot be an empty string")),o&&(d.spaceBefore=!0),s&&(d.comment=s,d.range[2]=c),d}function eE({options:n},{offset:e,source:t,end:i},o){let s=new pr(t.substring(1));s.source===""&&o(e,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&o(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let r=e+t.length,a=Bi(i,r,n.strict,o);return s.range=[e,r,a.offset],a.comment&&(s.comment=a.comment),s}var QR,cS=I(()=>{oc();Te();rS();sS();sa();lS();QR={composeNode:Jg,composeEmptyNode:rf}});function pS(n,e,{offset:t,start:i,value:o,end:s},r){let a=Object.assign({_directives:e},n),c=new Hr(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},p=zi(i,{indicator:"doc-start",next:o??s?.[0],offset:t,onError:r,parentIndent:0,startOnNewline:!0});p.found&&(c.directives.docStart=!0,o&&(o.type==="block-map"||o.type==="block-seq")&&!p.hasNewline&&r(p.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=o?Jg(l,o,p,r):rf(l,p.end,i,null,p,r);let d=c.contents.range[2],u=Bi(s,d,!1,r);return u.comment&&(c.comment=u.comment),c.range=[t,d,u.offset],c}var dS=I(()=>{Ac();cS();sa();xc()});function Ic(n){if(typeof n=="number")return[n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:e,source:t}=n;return[e,e+(typeof t=="string"?t.length:1)]}function uS(n){let e="",t=!1,i=!1;for(let o=0;o<n.length;++o){let s=n[o];switch(s[0]){case"#":e+=(e===""?"":i?`
|
|
98
|
+
|
|
99
|
+
`:`
|
|
100
|
+
`)+(s.substring(1)||" "),t=!0,i=!1;break;case"%":n[o+1]?.[0]!=="#"&&(o+=1),t=!1;break;default:t||(i=!0),t=!1}}return{comment:e,afterEmptyLine:i}}var Oc,Xg=I(()=>{pg();Ac();Pc();Te();dS();sa();Oc=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,i,o,s)=>{let r=Ic(t);s?this.warnings.push(new Sc(r,i,o)):this.errors.push(new gi(r,i,o))},this.directives=new Di({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:i,afterEmptyLine:o}=uS(this.prelude);if(i){let s=e.contents;if(t)e.comment=e.comment?`${e.comment}
|
|
101
|
+
${i}`:i;else if(o||e.directives.docStart||!s)e.commentBefore=i;else if(Ne(s)&&!s.flow&&s.items.length>0){let r=s.items[0];xe(r)&&(r=r.key);let a=r.commentBefore;r.commentBefore=a?`${i}
|
|
102
|
+
${a}`:i}else{let r=s.commentBefore;s.commentBefore=r?`${i}
|
|
103
|
+
${r}`:i}}if(t){for(let s=0;s<this.errors.length;++s)e.errors.push(this.errors[s]);for(let s=0;s<this.warnings.length;++s)e.warnings.push(this.warnings[s])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:uS(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,i=-1){for(let o of e)yield*this.next(o);yield*this.end(t,i)}*next(e){switch(e.type){case"directive":this.directives.add(e.source,(t,i,o)=>{let s=Ic(e);s[0]+=t,this.onError(s,"BAD_DIRECTIVE",i,o)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=pS(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,i=new gi(Ic(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(i):this.doc.errors.push(i);break}case"doc-end":{if(!this.doc){let i="Unexpected doc-end without preceding document";this.errors.push(new gi(Ic(e),"UNEXPECTED_TOKEN",i));break}this.doc.directives.docEnd=!0;let t=Bi(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let i=this.doc.comment;this.doc.comment=i?`${i}
|
|
104
|
+
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new gi(Ic(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let i=Object.assign({_directives:this.directives},this.options),o=new Hr(void 0,i);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),o.range=[0,t,t],this.decorate(o,!1),yield o}}}});var fS=I(()=>{Wg();Gg();Pc();uc()});var hS=I(()=>{});function Do(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),yS(Object.freeze([]),n,e)}function yS(n,e,t){let i=t(e,n);if(typeof i=="symbol")return i;for(let o of["key","value"]){let s=e[o];if(s&&"items"in s){for(let r=0;r<s.items.length;++r){let a=yS(Object.freeze(n.concat([[o,r]])),s.items[r],t);if(typeof a=="number")r=a-1;else{if(a===Zg)return Zg;a===mS&&(s.items.splice(r,1),r-=1)}}typeof i=="function"&&o==="key"&&(i=i(e,n))}}return typeof i=="function"?i(e,n):i}var Zg,tE,mS,gS=I(()=>{Zg=Symbol("break visit"),tE=Symbol("skip children"),mS=Symbol("remove item");Do.BREAK=Zg;Do.SKIP=tE;Do.REMOVE=mS;Do.itemAtPath=(n,e)=>{let t=n;for(let[i,o]of e){let s=t?.[i];if(s&&"items"in s)t=s.items[o];else return}return t};Do.parentCollection=(n,e)=>{let t=Do.itemAtPath(n,e.slice(0,-1)),i=e[e.length-1][0],o=t?.[i];if(o&&"items"in o)return o;throw new Error("Parent collection not found")}});function bS(n){switch(n){case Qg:return"byte-order-mark";case eb:return"doc-mode";case tb:return"flow-error-end";case of:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
105
|
+
`:case`\r
|
|
106
|
+
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(n[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}var Qg,eb,tb,of,sf=I(()=>{fS();hS();gS();Qg="\uFEFF",eb="",tb="",of=""});function bi(n){switch(n){case void 0:case" ":case`
|
|
107
|
+
`:case"\r":case" ":return!0;default:return!1}}var wS,iE,af,rE,nb,Rc,ib=I(()=>{sf();wS=new Set("0123456789ABCDEFabcdef"),iE=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),af=new Set(",[]{}"),rE=new Set(` ,[]{}
|
|
108
|
+
\r `),nb=n=>!n||rE.has(n),Rc=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let i=this.next??"stream";for(;i&&(t||this.hasChars(1));)i=yield*this.parseNext(i)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
|
|
109
|
+
`?!0:t==="\r"?this.buffer[e+1]===`
|
|
110
|
+
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let i=0;for(;t===" ";)t=this.buffer[++i+e];if(t==="\r"){let o=this.buffer[i+e+1];if(o===`
|
|
111
|
+
`||!o&&!this.atEnd)return e+i+1}return t===`
|
|
112
|
+
`||i>=this.indentNext||!t&&!this.atEnd?e+i:-1}if(t==="-"||t==="."){let i=this.buffer.substr(e,3);if((i==="---"||i==="...")&&bi(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
|
113
|
+
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===Qg&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,i=e.indexOf("#");for(;i!==-1;){let s=e[i-1];if(s===" "||s===" "){t=i-1;break}else i=e.indexOf("#",i+1)}for(;;){let s=e[t-1];if(s===" "||s===" ")t-=1;else break}let o=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-o),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield eb,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&bi(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!bi(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&bi(t)){let i=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=i,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(nb),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,i=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=i=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let o=this.getLine();if(o===null)return this.setNext("flow");if((i!==-1&&i<this.indentNext&&o[0]!=="#"||i===0&&(o.startsWith("---")||o.startsWith("..."))&&bi(o[3]))&&!(i===this.indentNext-1&&this.flowLevel===1&&(o[0]==="]"||o[0]==="}")))return this.flowLevel=0,yield tb,yield*this.parseLineStart();let s=0;for(;o[s]===",";)s+=yield*this.pushCount(1),s+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(s+=yield*this.pushIndicators(),o[s]){case void 0:return"flow";case"#":return yield*this.pushCount(o.length-s),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(nb),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let r=this.charAt(1);if(this.flowKey||bi(r)||r===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let s=0;for(;this.buffer[t-1-s]==="\\";)s+=1;if(s%2===0)break;t=this.buffer.indexOf('"',t+1)}let i=this.buffer.substring(0,t),o=i.indexOf(`
|
|
114
|
+
`,this.pos);if(o!==-1){for(;o!==-1;){let s=this.continueScalar(o+1);if(s===-1)break;o=i.indexOf(`
|
|
115
|
+
`,s)}o!==-1&&(t=o-(i[o-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>bi(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,i;e:for(let s=this.pos;i=this.buffer[s];++s)switch(i){case" ":t+=1;break;case`
|
|
116
|
+
`:e=s,t=0;break;case"\r":{let r=this.buffer[s+1];if(!r&&!this.atEnd)return this.setNext("block-scalar");if(r===`
|
|
117
|
+
`)break}default:break e}if(!i&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let s=this.continueScalar(e+1);if(s===-1)break;e=this.buffer.indexOf(`
|
|
118
|
+
`,s)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let o=e+1;for(i=this.buffer[o];i===" ";)i=this.buffer[++o];if(i===" "){for(;i===" "||i===" "||i==="\r"||i===`
|
|
119
|
+
`;)i=this.buffer[++o];e=o-1}else if(!this.blockScalarKeep)do{let s=e-1,r=this.buffer[s];r==="\r"&&(r=this.buffer[--s]);let a=s;for(;r===" ";)r=this.buffer[--s];if(r===`
|
|
120
|
+
`&&s>=this.pos&&s+1+t>a)e=s;else break}while(!0);return yield of,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,i=this.pos-1,o;for(;o=this.buffer[++i];)if(o===":"){let s=this.buffer[i+1];if(bi(s)||e&&af.has(s))break;t=i}else if(bi(o)){let s=this.buffer[i+1];if(o==="\r"&&(s===`
|
|
121
|
+
`?(i+=1,o=`
|
|
122
|
+
`,s=this.buffer[i+1]):t=i),s==="#"||e&&af.has(s))break;if(o===`
|
|
123
|
+
`){let r=this.continueScalar(i+1);if(r===-1)break;i=Math.max(i,r-2)}}else{if(e&&af.has(o))break;t=i}return!o&&!this.atEnd?this.setNext("plain-scalar"):(yield of,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let i=this.buffer.slice(this.pos,e);return i?(yield i,this.pos+=i.length,i.length):(t&&(yield""),0)}*pushIndicators(){let e=0;e:for(;;){switch(this.charAt(0)){case"!":e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue e;case"&":e+=yield*this.pushUntil(nb),e+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{let t=this.flowLevel>0,i=this.charAt(1);if(bi(i)||t&&af.has(i)){t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue e}}}break e}return e}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!bi(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(iE.has(t))t=this.buffer[++e];else if(t==="%"&&wS.has(this.buffer[e+1])&&wS.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
|
124
|
+
`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
|
|
125
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,i;do i=this.buffer[++t];while(i===" "||e&&i===" ");let o=t-this.pos;return o>0&&(yield this.buffer.substr(this.pos,o),this.pos=t),o}*pushUntil(e){let t=this.pos,i=this.buffer[t];for(;!e(i);)i=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}});var Ec,rb=I(()=>{Ec=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,i=this.lineStarts.length;for(;t<i;){let s=t+i>>1;this.lineStarts[s]<e?t=s+1:i=s}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let o=this.lineStarts[t-1];return{line:t,col:e-o+1}}}}});function Yr(n,e){for(let t=0;t<n.length;++t)if(n[t].type===e)return!0;return!1}function vS(n){for(let e=0;e<n.length;++e)switch(n[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function AS(n){switch(n?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function lf(n){switch(n.type){case"document":return n.start;case"block-map":{let e=n.items[n.items.length-1];return e.sep??e.start}case"block-seq":return n.items[n.items.length-1].start;default:return[]}}function aa(n){if(n.length===0)return[];let e=n.length;e:for(;--e>=0;)switch(n[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;n[++e]?.type==="space";);return n.splice(e,n.length)}function cf(n,e){if(e.length<1e5)Array.prototype.push.apply(n,e);else for(let t=0;t<e.length;++t)n.push(e[t])}function _S(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!Yr(e.start,"explicit-key-ind")&&!Yr(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,AS(e.value)?e.value.end?cf(e.value.end,e.sep):e.value.end=e.sep:cf(e.start,e.sep),delete e.sep)}var qc,ob=I(()=>{sf();ib();qc=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Rc,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let i of this.lexer.lex(e,t))yield*this.next(i);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=bS(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let i=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:i,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let i=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in i?i.indent:0:t.type==="flow-collection"&&i.type==="document"&&(t.indent=0),t.type==="flow-collection"&&_S(t),i.type){case"document":i.value=t;break;case"block-scalar":i.props.push(t);break;case"block-map":{let o=i.items[i.items.length-1];if(o.value){i.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(o.sep)o.value=t;else{Object.assign(o,{key:t,sep:[]}),this.onKeyLine=!o.explicitKey;return}break}case"block-seq":{let o=i.items[i.items.length-1];o.value?i.items.push({start:[],value:t}):o.value=t;break}case"flow-collection":{let o=i.items[i.items.length-1];!o||o.value?i.items.push({start:[],key:t,sep:[]}):o.sep?o.value=t:Object.assign(o,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((i.type==="document"||i.type==="block-map"||i.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let o=t.items[t.items.length-1];o&&!o.sep&&!o.value&&o.start.length>0&&vS(o.start)===-1&&(t.indent===0||o.start.every(s=>s.type!=="comment"||s.indent<t.indent))&&(i.type==="document"?i.end=o.start:i.items.push({start:o.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{vS(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=lf(this.peek(2)),i=aa(t),o;e.end?(o=e.end,o.push(this.sourceToken),delete e.end):o=[this.sourceToken];let s={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=s}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
|
|
126
|
+
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
127
|
+
`,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let i="end"in t.value?t.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let o=e.items[e.items.length-2]?.value?.end;if(Array.isArray(o)){cf(o,t.start),o.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let i=!this.onKeyLine&&this.indent===e.indent,o=i&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",s=[];if(o&&t.sep&&!t.value){let r=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":r.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(r.length=0);break;default:r.length=0}}r.length>=2&&(s=t.sep.splice(r[1]))}switch(this.type){case"anchor":case"tag":o||t.value?(s.push(this.sourceToken),e.items.push({start:s}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):o||t.value?(s.push(this.sourceToken),e.items.push({start:s,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Yr(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]});else if(AS(t.key)&&!Yr(t.sep,"newline")){let r=aa(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:a,sep:c}]})}else s.length>0?t.sep=t.sep.concat(s,this.sourceToken):t.sep.push(this.sourceToken);else if(Yr(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let r=aa(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||o?e.items.push({start:s,key:null,sep:[this.sourceToken]}):Yr(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let r=this.flowScalar(this.type);o||t.value?(e.items.push({start:s,key:r,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(r):(Object.assign(t,{key:r,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Yr(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&e.items.push({start:s});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let i="end"in t.value?t.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let o=e.items[e.items.length-2]?.value?.end;if(Array.isArray(o)){cf(o,t.start),o.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Yr(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let i=this.startBlockValue(e);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let i;do yield*this.pop(),i=this.peek(1);while(i?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:o,sep:[]}):t.sep?this.stack.push(o):Object.assign(t,{key:o,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let i=this.startBlockValue(e);i?this.stack.push(i):(yield*this.pop(),yield*this.step())}else{let i=this.peek(2);if(i.type==="block-map"&&(this.type==="map-value-ind"&&i.indent===e.indent||this.type==="newline"&&!i.items[i.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&i.type!=="flow-collection"){let o=lf(i),s=aa(o);_S(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
|
|
128
|
+
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
129
|
+
`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=lf(e),i=aa(t);return i.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=lf(e),i=aa(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(i=>i.type==="newline"||i.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}});function oE(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new Ec||null,prettyErrors:e}}function sb(n,e={}){let{lineCounter:t,prettyErrors:i}=oE(e),o=new qc(t?.addNewLine),s=new Oc(e),r=null;for(let a of s.compose(o.parse(n),!0,n.length))if(!r)r=a;else if(r.options.logLevel!=="silent"){r.errors.push(new gi(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return i&&t&&(r.errors.forEach(Dg(n,t)),r.warnings.forEach(Dg(n,t))),r}var kS=I(()=>{Xg();Ac();Pc();bg();Te();rb();ob()});var ab=I(()=>{Xg();Ac();Ug();Pc();oc();Te();Br();gt();Vr();Kr();sf();ib();rb();ob();kS();rc()});var SS=I(()=>{ab();ab()});function Wn(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=Wn.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){for(let l in n)if(!(l==="app-runtime"||l==="mobile")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n["app-runtime"]!==void 0){let l=n["app-runtime"];if(Array.isArray(l)){if(l.length>16){let f={instancePath:e+"/app-runtime",schemaPath:"#/$defs/installationOrigins/maxItems",keyword:"maxItems",params:{limit:16},message:"must NOT have more than 16 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++){let h=l[f];if(typeof h=="string"){if(D(h)>255){let m={instancePath:e+"/app-runtime/"+f,schemaPath:"#/$defs/installationOrigins/items/maxLength",keyword:"maxLength",params:{limit:255},message:"must NOT have more than 255 characters"};r===null?r=[m]:r.push(m),a++}if(D(h)<1){let m={instancePath:e+"/app-runtime/"+f,schemaPath:"#/$defs/installationOrigins/items/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[m]:r.push(m),a++}if(!hn(h)){let m={instancePath:e+"/app-runtime/"+f,schemaPath:"#/$defs/installationOrigins/items/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[m]:r.push(m),a++}}else{let m={instancePath:e+"/app-runtime/"+f,schemaPath:"#/$defs/installationOrigins/items/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[m]:r.push(m),a++}}let d=l.length,u;if(d>1){let f={};for(;d--;){let h=l[d];if(typeof h=="string"){if(typeof f[h]=="number"){u=f[h];let m={instancePath:e+"/app-runtime",schemaPath:"#/$defs/installationOrigins/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[m]:r.push(m),a++;break}f[h]=d}}}}else{let p={instancePath:e+"/app-runtime",schemaPath:"#/$defs/installationOrigins/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}if(n.mobile!==void 0){let l=n.mobile;if(Array.isArray(l)){if(l.length>16){let f={instancePath:e+"/mobile",schemaPath:"#/$defs/installationOrigins/maxItems",keyword:"maxItems",params:{limit:16},message:"must NOT have more than 16 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++){let h=l[f];if(typeof h=="string"){if(D(h)>255){let m={instancePath:e+"/mobile/"+f,schemaPath:"#/$defs/installationOrigins/items/maxLength",keyword:"maxLength",params:{limit:255},message:"must NOT have more than 255 characters"};r===null?r=[m]:r.push(m),a++}if(D(h)<1){let m={instancePath:e+"/mobile/"+f,schemaPath:"#/$defs/installationOrigins/items/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[m]:r.push(m),a++}if(!hn(h)){let m={instancePath:e+"/mobile/"+f,schemaPath:"#/$defs/installationOrigins/items/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[m]:r.push(m),a++}}else{let m={instancePath:e+"/mobile/"+f,schemaPath:"#/$defs/installationOrigins/items/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[m]:r.push(m),a++}}let d=l.length,u;if(d>1){let f={};for(;d--;){let h=l[d];if(typeof h=="string"){if(typeof f[h]=="number"){u=f[h];let m={instancePath:e+"/mobile",schemaPath:"#/$defs/installationOrigins/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[m]:r.push(m),a++;break}f[h]=d}}}}else{let p={instancePath:e+"/mobile",schemaPath:"#/$defs/installationOrigins/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return Wn.errors=r,a===0}function la(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=la.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.contract_version===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"contract_version"},message:"must have required property 'contract_version'"};r===null?r=[l]:r.push(l),a++}if(n.required===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"required"},message:"must have required property 'required'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="contract_version"||l==="required"||l==="optional")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.contract_version!==void 0&&n.contract_version!==2){let l={instancePath:e+"/contract_version",schemaPath:"#/properties/contract_version/const",keyword:"const",params:{allowedValue:2},message:"must be equal to constant"};r===null?r=[l]:r.push(l),a++}if(n.required!==void 0){let l=n.required;if(Array.isArray(l)){if(l.length>32){let f={instancePath:e+"/required",schemaPath:"#/properties/required/maxItems",keyword:"maxItems",params:{limit:32},message:"must NOT have more than 32 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++){let h=l[f];if(!(h==="collection.read"||h==="records.create"||h==="records.edit"||h==="records.delete"||h==="views.manage"||h==="definitions.manage"||h==="background.schedule"||h==="offline.replica")){let m={instancePath:e+"/required/"+f,schemaPath:"#/$defs/applicationCapability/enum",keyword:"enum",params:{allowedValues:CS.enum},message:"must be equal to one of the allowed values"};r===null?r=[m]:r.push(m),a++}}let d=l.length,u;if(d>1){e:for(;d--;)for(u=d;u--;)if(Pn(l[d],l[u])){let f={instancePath:e+"/required",schemaPath:"#/properties/required/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[f]:r.push(f),a++;break e}}}else{let p={instancePath:e+"/required",schemaPath:"#/properties/required/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}if(n.optional!==void 0){let l=n.optional;if(Array.isArray(l)){if(l.length>32){let f={instancePath:e+"/optional",schemaPath:"#/properties/optional/maxItems",keyword:"maxItems",params:{limit:32},message:"must NOT have more than 32 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++){let h=l[f];if(!(h==="collection.read"||h==="records.create"||h==="records.edit"||h==="records.delete"||h==="views.manage"||h==="definitions.manage"||h==="background.schedule"||h==="offline.replica")){let m={instancePath:e+"/optional/"+f,schemaPath:"#/$defs/applicationCapability/enum",keyword:"enum",params:{allowedValues:CS.enum},message:"must be equal to one of the allowed values"};r===null?r=[m]:r.push(m),a++}}let d=l.length,u;if(d>1){e:for(;d--;)for(u=d;u--;)if(Pn(l[d],l[u])){let f={instancePath:e+"/optional",schemaPath:"#/properties/optional/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[f]:r.push(f),a++;break e}}}else{let p={instancePath:e+"/optional",schemaPath:"#/properties/optional/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return la.errors=r,a===0}function ca(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=ca.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.required===void 0){let d={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"required"},message:"must have required property 'required'"};r===null?r=[d]:r.push(d),a++}if(n.scope===void 0){let d={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"scope"},message:"must have required property 'scope'"};r===null?r=[d]:r.push(d),a++}for(let d in n)if(!(d==="required"||d==="optional"||d==="scope")){let u={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:d},message:"must NOT have additional properties"};r===null?r=[u]:r.push(u),a++}if(n.required!==void 0){let d=n.required;if(Array.isArray(d)){if(d.length>6){let m={instancePath:e+"/required",schemaPath:"#/$defs/fileActions/maxItems",keyword:"maxItems",params:{limit:6},message:"must NOT have more than 6 items"};r===null?r=[m]:r.push(m),a++}if(d.length<1){let m={instancePath:e+"/required",schemaPath:"#/$defs/fileActions/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[m]:r.push(m),a++}let u=d.length;for(let m=0;m<u;m++){let b=d[m];if(!(b==="list"||b==="read"||b==="add"||b==="replace"||b==="move"||b==="delete")){let w={instancePath:e+"/required/"+m,schemaPath:"#/$defs/fileActions/items/enum",keyword:"enum",params:{allowedValues:IS.items.enum},message:"must be equal to one of the allowed values"};r===null?r=[w]:r.push(w),a++}}let f=d.length,h;if(f>1){e:for(;f--;)for(h=f;h--;)if(Pn(d[f],d[h])){let m={instancePath:e+"/required",schemaPath:"#/$defs/fileActions/uniqueItems",keyword:"uniqueItems",params:{i:f,j:h},message:"must NOT have duplicate items (items ## "+h+" and "+f+" are identical)"};r===null?r=[m]:r.push(m),a++;break e}}}else{let u={instancePath:e+"/required",schemaPath:"#/$defs/fileActions/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[u]:r.push(u),a++}}if(n.optional!==void 0){let d=n.optional;if(Array.isArray(d)){if(d.length>6){let m={instancePath:e+"/optional",schemaPath:"#/$defs/fileActions/maxItems",keyword:"maxItems",params:{limit:6},message:"must NOT have more than 6 items"};r===null?r=[m]:r.push(m),a++}if(d.length<1){let m={instancePath:e+"/optional",schemaPath:"#/$defs/fileActions/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[m]:r.push(m),a++}let u=d.length;for(let m=0;m<u;m++){let b=d[m];if(!(b==="list"||b==="read"||b==="add"||b==="replace"||b==="move"||b==="delete")){let w={instancePath:e+"/optional/"+m,schemaPath:"#/$defs/fileActions/items/enum",keyword:"enum",params:{allowedValues:IS.items.enum},message:"must be equal to one of the allowed values"};r===null?r=[w]:r.push(w),a++}}let f=d.length,h;if(f>1){e:for(;f--;)for(h=f;h--;)if(Pn(d[f],d[h])){let m={instancePath:e+"/optional",schemaPath:"#/$defs/fileActions/uniqueItems",keyword:"uniqueItems",params:{i:f,j:h},message:"must NOT have duplicate items (items ## "+h+" and "+f+" are identical)"};r===null?r=[m]:r.push(m),a++;break e}}}else{let u={instancePath:e+"/optional",schemaPath:"#/$defs/fileActions/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[u]:r.push(u),a++}}if(n.scope!==void 0){let d=n.scope,u=a,f=!1,h=null,m=a;if(d&&typeof d=="object"&&!Array.isArray(d)){if(d.kind===void 0){let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/0/required",keyword:"required",params:{missingProperty:"kind"},message:"must have required property 'kind'"};r===null?r=[w]:r.push(w),a++}if(d.folders===void 0){let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/0/required",keyword:"required",params:{missingProperty:"folders"},message:"must have required property 'folders'"};r===null?r=[w]:r.push(w),a++}for(let w in d)if(!(w==="kind"||w==="folders")){let g={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:w},message:"must NOT have additional properties"};r===null?r=[g]:r.push(g),a++}if(d.kind!==void 0&&d.kind!=="selected_folders"){let w={instancePath:e+"/scope/kind",schemaPath:"#/$defs/fileScope/oneOf/0/properties/kind/const",keyword:"const",params:{allowedValue:"selected_folders"},message:"must be equal to constant"};r===null?r=[w]:r.push(w),a++}if(d.folders!==void 0){let w=d.folders;if(Array.isArray(w)){if(w.length>100){let _={instancePath:e+"/scope/folders",schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/maxItems",keyword:"maxItems",params:{limit:100},message:"must NOT have more than 100 items"};r===null?r=[_]:r.push(_),a++}if(w.length<1){let _={instancePath:e+"/scope/folders",schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[_]:r.push(_),a++}let g=w.length;for(let _=0;_<g;_++){let k=w[_];if(typeof k=="string"){if(D(k)>1024){let S={instancePath:e+"/scope/folders/"+_,schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/items/maxLength",keyword:"maxLength",params:{limit:1024},message:"must NOT have more than 1024 characters"};r===null?r=[S]:r.push(S),a++}if(D(k)<1){let S={instancePath:e+"/scope/folders/"+_,schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/items/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[S]:r.push(S),a++}if(!NS.test(k)){let S={instancePath:e+"/scope/folders/"+_,schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/items/pattern",keyword:"pattern",params:{pattern:"^(?!/)(?!\\.)(?!.*//)(?!.*\\\\)(?!.*/\\.)(?!(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*\\/(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*/$).+$"},message:'must match pattern "^(?!/)(?!\\.)(?!.*//)(?!.*\\\\)(?!.*/\\.)(?!(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*\\/(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*/$).+$"'};r===null?r=[S]:r.push(S),a++}}else{let S={instancePath:e+"/scope/folders/"+_,schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/items/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[S]:r.push(S),a++}}let y=w.length,v;if(y>1){let _={};for(;y--;){let k=w[y];if(typeof k=="string"){if(typeof _[k]=="number"){v=_[k];let S={instancePath:e+"/scope/folders",schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/uniqueItems",keyword:"uniqueItems",params:{i:y,j:v},message:"must NOT have duplicate items (items ## "+v+" and "+y+" are identical)"};r===null?r=[S]:r.push(S),a++;break}_[k]=y}}}}else{let g={instancePath:e+"/scope/folders",schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[g]:r.push(g),a++}}}else{let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[w]:r.push(w),a++}var p=m===a;if(p){f=!0,h=0;var l=!0}let b=a;if(d&&typeof d=="object"&&!Array.isArray(d)){if(d.kind===void 0){let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/1/required",keyword:"required",params:{missingProperty:"kind"},message:"must have required property 'kind'"};r===null?r=[w]:r.push(w),a++}for(let w in d)if(w!=="kind"){let g={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:w},message:"must NOT have additional properties"};r===null?r=[g]:r.push(g),a++}if(d.kind!==void 0&&d.kind!=="collection"){let w={instancePath:e+"/scope/kind",schemaPath:"#/$defs/fileScope/oneOf/1/properties/kind/const",keyword:"const",params:{allowedValue:"collection"},message:"must be equal to constant"};r===null?r=[w]:r.push(w),a++}}else{let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[w]:r.push(w),a++}var p=b===a;if(p&&f?(f=!1,h=[h,1]):p&&(f=!0,h=1,l!==!0&&(l=!0)),f)a=u,r!==null&&(u?r.length=u:r=null);else{let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf",keyword:"oneOf",params:{passingSchemas:h},message:"must match exactly one schema in oneOf"};r===null?r=[w]:r.push(w),a++}}}else{let d={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[d]:r.push(d),a++}return ca.errors=r,a===0}function pa(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=pa.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.id===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[p]:r.push(p),a++}if(n.path===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"path"},message:"must have required property 'path'"};r===null?r=[p]:r.push(p),a++}if(n.predicate===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"predicate"},message:"must have required property 'predicate'"};r===null?r=[p]:r.push(p),a++}if(n.value===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"value"},message:"must have required property 'value'"};r===null?r=[p]:r.push(p),a++}for(let p in n)if(!(p==="id"||p==="path"||p==="predicate"||p==="value")){let d={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(n.id!==void 0){let p=n.id;if(typeof p=="string"){if(D(p)>100){let d={instancePath:e+"/id",schemaPath:"#/properties/id/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/id",schemaPath:"#/properties/id/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}if(!ff.test(p)){let d={instancePath:e+"/id",schemaPath:"#/properties/id/pattern",keyword:"pattern",params:{pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},message:'must match pattern "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"'};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/id",schemaPath:"#/properties/id/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.path!==void 0){let p=n.path;if(typeof p=="string"){if(D(p)>1024){let d={instancePath:e+"/path",schemaPath:"#/properties/path/maxLength",keyword:"maxLength",params:{limit:1024},message:"must NOT have more than 1024 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/path",schemaPath:"#/properties/path/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/path",schemaPath:"#/properties/path/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.predicate!==void 0&&n.predicate!=="contains"){let p={instancePath:e+"/predicate",schemaPath:"#/properties/predicate/const",keyword:"const",params:{allowedValue:"contains"},message:"must be equal to constant"};r===null?r=[p]:r.push(p),a++}if(n.value!==void 0){let p=n.value,d=a,u=!1,f=a;if(typeof p!="string"){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[w]:r.push(w),a++}var l=f===a;u=u||l;let h=a;if(!(typeof p=="number"&&isFinite(p))){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/1/type",keyword:"type",params:{type:"number"},message:"must be number"};r===null?r=[w]:r.push(w),a++}var l=h===a;u=u||l;let m=a;if(typeof p!="boolean"){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};r===null?r=[w]:r.push(w),a++}var l=m===a;u=u||l;let b=a;if(p!==null){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/3/type",keyword:"type",params:{type:"null"},message:"must be null"};r===null?r=[w]:r.push(w),a++}var l=b===a;if(u=u||l,u)a=d,r!==null&&(d?r.length=d:r=null);else{let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};r===null?r=[w]:r.push(w),a++}}}else{let p={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}return pa.errors=r,a===0}function Gn(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=Gn.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.id===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[l]:r.push(l),a++}if(n.version===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"version"},message:"must have required property 'version'"};r===null?r=[l]:r.push(l),a++}if(n.digest===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"digest"},message:"must have required property 'digest'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="id"||l==="version"||l==="digest")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.id!==void 0){let l=n.id;if(typeof l=="string"){if(D(l)>100){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[p]:r.push(p),a++}if(D(l)<1){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[p]:r.push(p),a++}if(!xa.test(l)){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/pattern",keyword:"pattern",params:{pattern:"^[a-z0-9]+(?:[._-][a-z0-9]+)*$"},message:'must match pattern "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.version!==void 0){let l=n.version;if(typeof l=="string"){if(!hf.test(l)){let p={instancePath:e+"/version",schemaPath:"#/properties/version/pattern",keyword:"pattern",params:{pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"},message:'must match pattern "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/version",schemaPath:"#/properties/version/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.digest!==void 0){let l=n.digest;if(typeof l=="string"){if(!da.test(l)){let p={instancePath:e+"/digest",schemaPath:"#/properties/digest/pattern",keyword:"pattern",params:{pattern:"^sha256:[0-9a-f]{64}$"},message:'must match pattern "^sha256:[0-9a-f]{64}$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/digest",schemaPath:"#/properties/digest/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return Gn.errors=r,a===0}function ua(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=ua.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.access===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"access"},message:"must have required property 'access'"};r===null?r=[p]:r.push(p),a++}if(n.contracts===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"contracts"},message:"must have required property 'contracts'"};r===null?r=[p]:r.push(p),a++}for(let p in n)if(!(p==="capabilities"||p==="access"||p==="collection_kind"||p==="people"||p==="files"||p==="configuration"||p==="contracts")){let d={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(n.capabilities!==void 0&&(la(n.capabilities,{instancePath:e+"/capabilities",parentData:n,parentDataProperty:"capabilities",rootData:o,dynamicAnchors:s})||(r=r===null?la.errors:r.concat(la.errors),a=r.length)),n.access!==void 0&&n.access!=="full_collection"){let p={instancePath:e+"/access",schemaPath:"#/properties/access/const",keyword:"const",params:{allowedValue:"full_collection"},message:"must be equal to constant"};r===null?r=[p]:r.push(p),a++}if(n.collection_kind!==void 0&&n.collection_kind!=="hosted"){let p={instancePath:e+"/collection_kind",schemaPath:"#/properties/collection_kind/const",keyword:"const",params:{allowedValue:"hosted"},message:"must be equal to constant"};r===null?r=[p]:r.push(p),a++}if(n.people!==void 0){let p=n.people,d=a,u=!1,f=a;if(p&&typeof p=="object"&&!Array.isArray(p)&&p.required===void 0){let m={instancePath:e+"/people",schemaPath:"#/properties/people/anyOf/0/required",keyword:"required",params:{missingProperty:"required"},message:"must have required property 'required'"};r===null?r=[m]:r.push(m),a++}var l=f===a;u=u||l;let h=a;if(p&&typeof p=="object"&&!Array.isArray(p)&&p.optional===void 0){let m={instancePath:e+"/people",schemaPath:"#/properties/people/anyOf/1/required",keyword:"required",params:{missingProperty:"optional"},message:"must have required property 'optional'"};r===null?r=[m]:r.push(m),a++}var l=h===a;if(u=u||l,u)a=d,r!==null&&(d?r.length=d:r=null);else{let m={instancePath:e+"/people",schemaPath:"#/properties/people/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};r===null?r=[m]:r.push(m),a++}if(p&&typeof p=="object"&&!Array.isArray(p)){if(p.version===void 0){let m={instancePath:e+"/people",schemaPath:"#/properties/people/required",keyword:"required",params:{missingProperty:"version"},message:"must have required property 'version'"};r===null?r=[m]:r.push(m),a++}for(let m in p)if(!(m==="version"||m==="required"||m==="optional")){let b={instancePath:e+"/people",schemaPath:"#/properties/people/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:m},message:"must NOT have additional properties"};r===null?r=[b]:r.push(b),a++}if(p.version!==void 0&&p.version!==1){let m={instancePath:e+"/people/version",schemaPath:"#/properties/people/properties/version/const",keyword:"const",params:{allowedValue:1},message:"must be equal to constant"};r===null?r=[m]:r.push(m),a++}if(p.required!==void 0){let m=p.required;if(Array.isArray(m)){if(m.length<1){let y={instancePath:e+"/people/required",schemaPath:"#/$defs/peoplePermissions/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[y]:r.push(y),a++}let b=m.length;for(let y=0;y<b;y++){let v=m[y];if(!(v==="identity"||v==="members")){let _={instancePath:e+"/people/required/"+y,schemaPath:"#/$defs/peoplePermissions/items/enum",keyword:"enum",params:{allowedValues:xS.items.enum},message:"must be equal to one of the allowed values"};r===null?r=[_]:r.push(_),a++}}let w=m.length,g;if(w>1){e:for(;w--;)for(g=w;g--;)if(Pn(m[w],m[g])){let y={instancePath:e+"/people/required",schemaPath:"#/$defs/peoplePermissions/uniqueItems",keyword:"uniqueItems",params:{i:w,j:g},message:"must NOT have duplicate items (items ## "+g+" and "+w+" are identical)"};r===null?r=[y]:r.push(y),a++;break e}}}else{let b={instancePath:e+"/people/required",schemaPath:"#/$defs/peoplePermissions/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[b]:r.push(b),a++}}if(p.optional!==void 0){let m=p.optional;if(Array.isArray(m)){if(m.length<1){let y={instancePath:e+"/people/optional",schemaPath:"#/$defs/peoplePermissions/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[y]:r.push(y),a++}let b=m.length;for(let y=0;y<b;y++){let v=m[y];if(!(v==="identity"||v==="members")){let _={instancePath:e+"/people/optional/"+y,schemaPath:"#/$defs/peoplePermissions/items/enum",keyword:"enum",params:{allowedValues:xS.items.enum},message:"must be equal to one of the allowed values"};r===null?r=[_]:r.push(_),a++}}let w=m.length,g;if(w>1){e:for(;w--;)for(g=w;g--;)if(Pn(m[w],m[g])){let y={instancePath:e+"/people/optional",schemaPath:"#/$defs/peoplePermissions/uniqueItems",keyword:"uniqueItems",params:{i:w,j:g},message:"must NOT have duplicate items (items ## "+g+" and "+w+" are identical)"};r===null?r=[y]:r.push(y),a++;break e}}}else{let b={instancePath:e+"/people/optional",schemaPath:"#/$defs/peoplePermissions/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[b]:r.push(b),a++}}}else{let m={instancePath:e+"/people",schemaPath:"#/properties/people/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[m]:r.push(m),a++}}if(n.files!==void 0&&(ca(n.files,{instancePath:e+"/files",parentData:n,parentDataProperty:"files",rootData:o,dynamicAnchors:s})||(r=r===null?ca.errors:r.concat(ca.errors),a=r.length)),n.configuration!==void 0){let p=n.configuration;if(Array.isArray(p)){if(p.length>50){let u={instancePath:e+"/configuration",schemaPath:"#/properties/configuration/maxItems",keyword:"maxItems",params:{limit:50},message:"must NOT have more than 50 items"};r===null?r=[u]:r.push(u),a++}let d=p.length;for(let u=0;u<d;u++)pa(p[u],{instancePath:e+"/configuration/"+u,parentData:p,parentDataProperty:u,rootData:o,dynamicAnchors:s})||(r=r===null?pa.errors:r.concat(pa.errors),a=r.length)}else{let d={instancePath:e+"/configuration",schemaPath:"#/properties/configuration/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[d]:r.push(d),a++}}if(n.contracts!==void 0){let p=n.contracts;if(Array.isArray(p)){if(p.length>20){let h={instancePath:e+"/contracts",schemaPath:"#/properties/contracts/maxItems",keyword:"maxItems",params:{limit:20},message:"must NOT have more than 20 items"};r===null?r=[h]:r.push(h),a++}let d=p.length;for(let h=0;h<d;h++)Gn(p[h],{instancePath:e+"/contracts/"+h,parentData:p,parentDataProperty:h,rootData:o,dynamicAnchors:s})||(r=r===null?Gn.errors:r.concat(Gn.errors),a=r.length);let u=p.length,f;if(u>1){e:for(;u--;)for(f=u;f--;)if(Pn(p[u],p[f])){let h={instancePath:e+"/contracts",schemaPath:"#/properties/contracts/uniqueItems",keyword:"uniqueItems",params:{i:u,j:f},message:"must NOT have duplicate items (items ## "+f+" and "+u+" are identical)"};r===null?r=[h]:r.push(h),a++;break e}}}else{let d={instancePath:e+"/contracts",schemaPath:"#/properties/contracts/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[d]:r.push(d),a++}}}else{let p={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}return ua.errors=r,a===0}function fa(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=fa.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.requirement===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"requirement"},message:"must have required property 'requirement'"};r===null?r=[p]:r.push(p),a++}if(n.operation===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"operation"},message:"must have required property 'operation'"};r===null?r=[p]:r.push(p),a++}if(n.path===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"path"},message:"must have required property 'path'"};r===null?r=[p]:r.push(p),a++}if(n.value===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"value"},message:"must have required property 'value'"};r===null?r=[p]:r.push(p),a++}for(let p in n)if(!(p==="requirement"||p==="operation"||p==="path"||p==="value")){let d={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(n.requirement!==void 0){let p=n.requirement;if(typeof p=="string"){if(D(p)>100){let d={instancePath:e+"/requirement",schemaPath:"#/properties/requirement/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/requirement",schemaPath:"#/properties/requirement/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}if(!ff.test(p)){let d={instancePath:e+"/requirement",schemaPath:"#/properties/requirement/pattern",keyword:"pattern",params:{pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},message:'must match pattern "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"'};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/requirement",schemaPath:"#/properties/requirement/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.operation!==void 0&&n.operation!=="set_add"){let p={instancePath:e+"/operation",schemaPath:"#/properties/operation/const",keyword:"const",params:{allowedValue:"set_add"},message:"must be equal to constant"};r===null?r=[p]:r.push(p),a++}if(n.path!==void 0){let p=n.path;if(typeof p=="string"){if(D(p)>1024){let d={instancePath:e+"/path",schemaPath:"#/properties/path/maxLength",keyword:"maxLength",params:{limit:1024},message:"must NOT have more than 1024 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/path",schemaPath:"#/properties/path/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/path",schemaPath:"#/properties/path/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.value!==void 0){let p=n.value,d=a,u=!1,f=a;if(typeof p!="string"){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[w]:r.push(w),a++}var l=f===a;u=u||l;let h=a;if(!(typeof p=="number"&&isFinite(p))){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/1/type",keyword:"type",params:{type:"number"},message:"must be number"};r===null?r=[w]:r.push(w),a++}var l=h===a;u=u||l;let m=a;if(typeof p!="boolean"){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};r===null?r=[w]:r.push(w),a++}var l=m===a;u=u||l;let b=a;if(p!==null){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/3/type",keyword:"type",params:{type:"null"},message:"must be null"};r===null?r=[w]:r.push(w),a++}var l=b===a;if(u=u||l,u)a=d,r!==null&&(d?r.length=d:r=null);else{let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};r===null?r=[w]:r.push(w),a++}}}else{let p={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}return fa.errors=r,a===0}function ha(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=ha.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.kind===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"kind"},message:"must have required property 'kind'"};r===null?r=[p]:r.push(p),a++}if(n.mode===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"mode"},message:"must have required property 'mode'"};r===null?r=[p]:r.push(p),a++}if(n.source===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"source"},message:"must have required property 'source'"};r===null?r=[p]:r.push(p),a++}if(n.target===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"target"},message:"must have required property 'target'"};r===null?r=[p]:r.push(p),a++}if(n.digest===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"digest"},message:"must have required property 'digest'"};r===null?r=[p]:r.push(p),a++}for(let p in n)if(!(p==="kind"||p==="mode"||p==="upgrade_from"||p==="source"||p==="target"||p==="digest")){let d={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(n.kind!==void 0){let p=n.kind;if(!(p==="contract"||p==="type"||p==="schema")){let d={instancePath:e+"/kind",schemaPath:"#/properties/kind/enum",keyword:"enum",params:{allowedValues:OS.properties.kind.enum},message:"must be equal to one of the allowed values"};r===null?r=[d]:r.push(d),a++}}if(n.mode!==void 0){let p=n.mode;if(!(p==="managed"||p==="seed")){let d={instancePath:e+"/mode",schemaPath:"#/properties/mode/enum",keyword:"enum",params:{allowedValues:OS.properties.mode.enum},message:"must be equal to one of the allowed values"};r===null?r=[d]:r.push(d),a++}}if(n.upgrade_from!==void 0){let p=n.upgrade_from,d=a,u=!1,f=null,h=a;if(p&&typeof p=="object"&&!Array.isArray(p)){if(p.digest===void 0){let b={instancePath:e+"/upgrade_from",schemaPath:"#/$defs/typePackUpgradeBaseline/required",keyword:"required",params:{missingProperty:"digest"},message:"must have required property 'digest'"};r===null?r=[b]:r.push(b),a++}if(p.document===void 0){let b={instancePath:e+"/upgrade_from",schemaPath:"#/$defs/typePackUpgradeBaseline/required",keyword:"required",params:{missingProperty:"document"},message:"must have required property 'document'"};r===null?r=[b]:r.push(b),a++}for(let b in p)if(!(b==="digest"||b==="document"||b==="version")){let w={instancePath:e+"/upgrade_from",schemaPath:"#/$defs/typePackUpgradeBaseline/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:b},message:"must NOT have additional properties"};r===null?r=[w]:r.push(w),a++}if(p.digest!==void 0){let b=p.digest;if(typeof b=="string"){if(!da.test(b)){let w={instancePath:e+"/upgrade_from/digest",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/digest/pattern",keyword:"pattern",params:{pattern:"^sha256:[0-9a-f]{64}$"},message:'must match pattern "^sha256:[0-9a-f]{64}$"'};r===null?r=[w]:r.push(w),a++}}else{let w={instancePath:e+"/upgrade_from/digest",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/digest/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[w]:r.push(w),a++}}if(p.document!==void 0){let b=p.document;if(typeof b=="string"){if(D(b)>262144){let w={instancePath:e+"/upgrade_from/document",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/document/maxLength",keyword:"maxLength",params:{limit:262144},message:"must NOT have more than 262144 characters"};r===null?r=[w]:r.push(w),a++}}else{let w={instancePath:e+"/upgrade_from/document",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/document/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[w]:r.push(w),a++}}if(p.version!==void 0){let b=p.version;if(!(typeof b=="number"&&!(b%1)&&!isNaN(b)&&isFinite(b))){let w={instancePath:e+"/upgrade_from/version",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/version/type",keyword:"type",params:{type:"integer"},message:"must be integer"};r===null?r=[w]:r.push(w),a++}if(typeof b=="number"&&isFinite(b)&&(b<1||isNaN(b))){let w={instancePath:e+"/upgrade_from/version",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/version/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};r===null?r=[w]:r.push(w),a++}}}else{let b={instancePath:e+"/upgrade_from",schemaPath:"#/$defs/typePackUpgradeBaseline/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[b]:r.push(b),a++}var l=h===a;l&&(u=!0,f=0);let m=a;if(Array.isArray(p)){if(p.length<1){let w={instancePath:e+"/upgrade_from",schemaPath:"#/properties/upgrade_from/oneOf/1/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[w]:r.push(w),a++}let b=p.length;for(let w=0;w<b;w++){let g=p[w];if(g&&typeof g=="object"&&!Array.isArray(g)){if(g.digest===void 0){let y={instancePath:e+"/upgrade_from/"+w,schemaPath:"#/$defs/typePackUpgradeBaseline/required",keyword:"required",params:{missingProperty:"digest"},message:"must have required property 'digest'"};r===null?r=[y]:r.push(y),a++}if(g.document===void 0){let y={instancePath:e+"/upgrade_from/"+w,schemaPath:"#/$defs/typePackUpgradeBaseline/required",keyword:"required",params:{missingProperty:"document"},message:"must have required property 'document'"};r===null?r=[y]:r.push(y),a++}for(let y in g)if(!(y==="digest"||y==="document"||y==="version")){let v={instancePath:e+"/upgrade_from/"+w,schemaPath:"#/$defs/typePackUpgradeBaseline/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:y},message:"must NOT have additional properties"};r===null?r=[v]:r.push(v),a++}if(g.digest!==void 0){let y=g.digest;if(typeof y=="string"){if(!da.test(y)){let v={instancePath:e+"/upgrade_from/"+w+"/digest",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/digest/pattern",keyword:"pattern",params:{pattern:"^sha256:[0-9a-f]{64}$"},message:'must match pattern "^sha256:[0-9a-f]{64}$"'};r===null?r=[v]:r.push(v),a++}}else{let v={instancePath:e+"/upgrade_from/"+w+"/digest",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/digest/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[v]:r.push(v),a++}}if(g.document!==void 0){let y=g.document;if(typeof y=="string"){if(D(y)>262144){let v={instancePath:e+"/upgrade_from/"+w+"/document",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/document/maxLength",keyword:"maxLength",params:{limit:262144},message:"must NOT have more than 262144 characters"};r===null?r=[v]:r.push(v),a++}}else{let v={instancePath:e+"/upgrade_from/"+w+"/document",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/document/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[v]:r.push(v),a++}}if(g.version!==void 0){let y=g.version;if(!(typeof y=="number"&&!(y%1)&&!isNaN(y)&&isFinite(y))){let v={instancePath:e+"/upgrade_from/"+w+"/version",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/version/type",keyword:"type",params:{type:"integer"},message:"must be integer"};r===null?r=[v]:r.push(v),a++}if(typeof y=="number"&&isFinite(y)&&(y<1||isNaN(y))){let v={instancePath:e+"/upgrade_from/"+w+"/version",schemaPath:"#/$defs/typePackUpgradeBaseline/properties/version/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};r===null?r=[v]:r.push(v),a++}}}else{let y={instancePath:e+"/upgrade_from/"+w,schemaPath:"#/$defs/typePackUpgradeBaseline/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[y]:r.push(y),a++}}}else{let b={instancePath:e+"/upgrade_from",schemaPath:"#/properties/upgrade_from/oneOf/1/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[b]:r.push(b),a++}var l=m===a;if(l&&u?(u=!1,f=[f,1]):l&&(u=!0,f=1),u)a=d,r!==null&&(d?r.length=d:r=null);else{let b={instancePath:e+"/upgrade_from",schemaPath:"#/properties/upgrade_from/oneOf",keyword:"oneOf",params:{passingSchemas:f},message:"must match exactly one schema in oneOf"};r===null?r=[b]:r.push(b),a++}}if(n.source!==void 0){let p=n.source;if(typeof p=="string"){if(D(p)>240){let d={instancePath:e+"/source",schemaPath:"#/properties/source/maxLength",keyword:"maxLength",params:{limit:240},message:"must NOT have more than 240 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/source",schemaPath:"#/properties/source/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/source",schemaPath:"#/properties/source/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.target!==void 0){let p=n.target;if(typeof p=="string"){if(D(p)>240){let d={instancePath:e+"/target",schemaPath:"#/properties/target/maxLength",keyword:"maxLength",params:{limit:240},message:"must NOT have more than 240 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/target",schemaPath:"#/properties/target/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/target",schemaPath:"#/properties/target/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.digest!==void 0){let p=n.digest;if(typeof p=="string"){if(!da.test(p)){let d={instancePath:e+"/digest",schemaPath:"#/properties/digest/pattern",keyword:"pattern",params:{pattern:"^sha256:[0-9a-f]{64}$"},message:'must match pattern "^sha256:[0-9a-f]{64}$"'};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/digest",schemaPath:"#/properties/digest/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}}else{let p={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}return ha.errors=r,a===0}function ma(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=ma.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.kind===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"kind"},message:"must have required property 'kind'"};r===null?r=[l]:r.push(l),a++}if(n.id===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[l]:r.push(l),a++}if(n.version===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"version"},message:"must have required property 'version'"};r===null?r=[l]:r.push(l),a++}if(n.resources===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"resources"},message:"must have required property 'resources'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="kind"||l==="id"||l==="version"||l==="name"||l==="description"||l==="resources"||US.test(l))){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.kind!==void 0&&n.kind!=="mdbase.type-pack"){let l={instancePath:e+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue:"mdbase.type-pack"},message:"must be equal to constant"};r===null?r=[l]:r.push(l),a++}if(n.id!==void 0){let l=n.id;if(typeof l=="string"){if(D(l)>100){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[p]:r.push(p),a++}if(D(l)<1){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[p]:r.push(p),a++}if(!xa.test(l)){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/pattern",keyword:"pattern",params:{pattern:"^[a-z0-9]+(?:[._-][a-z0-9]+)*$"},message:'must match pattern "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.version!==void 0){let l=n.version;if(typeof l=="string"){if(!hf.test(l)){let p={instancePath:e+"/version",schemaPath:"#/$defs/contract/properties/version/pattern",keyword:"pattern",params:{pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"},message:'must match pattern "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/version",schemaPath:"#/$defs/contract/properties/version/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.name!==void 0){let l=n.name;if(typeof l=="string"){if(D(l)>100){let p={instancePath:e+"/name",schemaPath:"#/properties/name/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[p]:r.push(p),a++}if(D(l)<1){let p={instancePath:e+"/name",schemaPath:"#/properties/name/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.description!==void 0){let l=n.description;if(typeof l=="string"){if(D(l)>500){let p={instancePath:e+"/description",schemaPath:"#/properties/description/maxLength",keyword:"maxLength",params:{limit:500},message:"must NOT have more than 500 characters"};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/description",schemaPath:"#/properties/description/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.resources!==void 0){let l=n.resources;if(Array.isArray(l)){if(l.length>100){let d={instancePath:e+"/resources",schemaPath:"#/properties/resources/maxItems",keyword:"maxItems",params:{limit:100},message:"must NOT have more than 100 items"};r===null?r=[d]:r.push(d),a++}if(l.length<1){let d={instancePath:e+"/resources",schemaPath:"#/properties/resources/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[d]:r.push(d),a++}let p=l.length;for(let d=0;d<p;d++)ha(l[d],{instancePath:e+"/resources/"+d,parentData:l,parentDataProperty:d,rootData:o,dynamicAnchors:s})||(r=r===null?ha.errors:r.concat(ha.errors),a=r.length)}else{let p={instancePath:e+"/resources",schemaPath:"#/properties/resources/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return ma.errors=r,a===0}function ya(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=ya.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.manifest===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"manifest"},message:"must have required property 'manifest'"};r===null?r=[l]:r.push(l),a++}if(n.resources===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"resources"},message:"must have required property 'resources'"};r===null?r=[l]:r.push(l),a++}if(n.provides===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"provides"},message:"must have required property 'provides'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="manifest"||l==="resources"||l==="provides")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.manifest!==void 0&&(ma(n.manifest,{instancePath:e+"/manifest",parentData:n,parentDataProperty:"manifest",rootData:o,dynamicAnchors:s})||(r=r===null?ma.errors:r.concat(ma.errors),a=r.length)),n.resources!==void 0){let l=n.resources;if(Array.isArray(l)){if(l.length>100){let d={instancePath:e+"/resources",schemaPath:"#/properties/resources/maxItems",keyword:"maxItems",params:{limit:100},message:"must NOT have more than 100 items"};r===null?r=[d]:r.push(d),a++}if(l.length<1){let d={instancePath:e+"/resources",schemaPath:"#/properties/resources/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[d]:r.push(d),a++}let p=l.length;for(let d=0;d<p;d++){let u=l[d];if(u&&typeof u=="object"&&!Array.isArray(u)){if(u.source===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackSourceResource/required",keyword:"required",params:{missingProperty:"source"},message:"must have required property 'source'"};r===null?r=[f]:r.push(f),a++}if(u.document===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackSourceResource/required",keyword:"required",params:{missingProperty:"document"},message:"must have required property 'document'"};r===null?r=[f]:r.push(f),a++}for(let f in u)if(!(f==="source"||f==="document")){let h={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackSourceResource/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:f},message:"must NOT have additional properties"};r===null?r=[h]:r.push(h),a++}if(u.source!==void 0){let f=u.source;if(typeof f=="string"){if(D(f)>240){let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackSourceResource/properties/source/maxLength",keyword:"maxLength",params:{limit:240},message:"must NOT have more than 240 characters"};r===null?r=[h]:r.push(h),a++}if(D(f)<1){let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackSourceResource/properties/source/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[h]:r.push(h),a++}}else{let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackSourceResource/properties/source/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[h]:r.push(h),a++}}if(u.document!==void 0){let f=u.document;if(typeof f=="string"){if(D(f)>262144){let h={instancePath:e+"/resources/"+d+"/document",schemaPath:"#/$defs/typePackSourceResource/properties/document/maxLength",keyword:"maxLength",params:{limit:262144},message:"must NOT have more than 262144 characters"};r===null?r=[h]:r.push(h),a++}}else{let h={instancePath:e+"/resources/"+d+"/document",schemaPath:"#/$defs/typePackSourceResource/properties/document/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[h]:r.push(h),a++}}}else{let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackSourceResource/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[f]:r.push(f),a++}}}else{let p={instancePath:e+"/resources",schemaPath:"#/properties/resources/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}if(n.provides!==void 0){let l=n.provides;if(Array.isArray(l)){if(l.length>20){let f={instancePath:e+"/provides",schemaPath:"#/properties/provides/maxItems",keyword:"maxItems",params:{limit:20},message:"must NOT have more than 20 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++)Gn(l[f],{instancePath:e+"/provides/"+f,parentData:l,parentDataProperty:f,rootData:o,dynamicAnchors:s})||(r=r===null?Gn.errors:r.concat(Gn.errors),a=r.length);let d=l.length,u;if(d>1){e:for(;d--;)for(u=d;u--;)if(Pn(l[d],l[u])){let f={instancePath:e+"/provides",schemaPath:"#/properties/provides/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[f]:r.push(f),a++;break e}}}else{let p={instancePath:e+"/provides",schemaPath:"#/properties/provides/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return ya.errors=r,a===0}function ga(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=ga.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.id===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[l]:r.push(l),a++}if(n.event===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"event"},message:"must have required property 'event'"};r===null?r=[l]:r.push(l),a++}if(n.presentation===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"presentation"},message:"must have required property 'presentation'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="id"||l==="event"||l==="if"||l==="debounce"||l==="minimum_interval"||l==="presentation")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.id!==void 0){let l=n.id;if(typeof l=="string"){if(D(l)>100){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[p]:r.push(p),a++}if(D(l)<1){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[p]:r.push(p),a++}if(!xa.test(l)){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/pattern",keyword:"pattern",params:{pattern:"^[a-z0-9]+(?:[._-][a-z0-9]+)*$"},message:'must match pattern "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.event!==void 0&&(Gn(n.event,{instancePath:e+"/event",parentData:n,parentDataProperty:"event",rootData:o,dynamicAnchors:s})||(r=r===null?Gn.errors:r.concat(Gn.errors),a=r.length)),n.if!==void 0){let l=n.if;if(l&&typeof l=="object"&&!Array.isArray(l)){if(l.$expr===void 0){let p={instancePath:e+"/if",schemaPath:"#/properties/if/required",keyword:"required",params:{missingProperty:"$expr"},message:"must have required property '$expr'"};r===null?r=[p]:r.push(p),a++}for(let p in l)if(p!=="$expr"){let d={instancePath:e+"/if",schemaPath:"#/properties/if/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(l.$expr!==void 0){let p=l.$expr;if(typeof p=="string"){if(D(p)>4096){let d={instancePath:e+"/if/$expr",schemaPath:"#/properties/if/properties/%24expr/maxLength",keyword:"maxLength",params:{limit:4096},message:"must NOT have more than 4096 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/if/$expr",schemaPath:"#/properties/if/properties/%24expr/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/if/$expr",schemaPath:"#/properties/if/properties/%24expr/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}}else{let p={instancePath:e+"/if",schemaPath:"#/properties/if/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}}if(n.debounce!==void 0){let l=n.debounce;if(typeof l=="string"){if(!pf.test(l)){let p={instancePath:e+"/debounce",schemaPath:"#/$defs/duration/pattern",keyword:"pattern",params:{pattern:"^[0-9]+(ms|s|m|h|d)$"},message:'must match pattern "^[0-9]+(ms|s|m|h|d)$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/debounce",schemaPath:"#/$defs/duration/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.minimum_interval!==void 0){let l=n.minimum_interval;if(typeof l=="string"){if(!pf.test(l)){let p={instancePath:e+"/minimum_interval",schemaPath:"#/$defs/duration/pattern",keyword:"pattern",params:{pattern:"^[0-9]+(ms|s|m|h|d)$"},message:'must match pattern "^[0-9]+(ms|s|m|h|d)$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/minimum_interval",schemaPath:"#/$defs/duration/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.presentation!==void 0){let l=n.presentation;if(l&&typeof l=="object"&&!Array.isArray(l)){if(l.title===void 0){let p={instancePath:e+"/presentation",schemaPath:"#/properties/presentation/required",keyword:"required",params:{missingProperty:"title"},message:"must have required property 'title'"};r===null?r=[p]:r.push(p),a++}for(let p in l)if(!(p==="title"||p==="body"||p==="tag")){let d={instancePath:e+"/presentation",schemaPath:"#/properties/presentation/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(l.title!==void 0){let p=l.title;if(typeof p=="string"){if(D(p)>80){let d={instancePath:e+"/presentation/title",schemaPath:"#/properties/presentation/properties/title/maxLength",keyword:"maxLength",params:{limit:80},message:"must NOT have more than 80 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/presentation/title",schemaPath:"#/properties/presentation/properties/title/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/presentation/title",schemaPath:"#/properties/presentation/properties/title/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(l.body!==void 0){let p=l.body;if(typeof p=="string"){if(D(p)>160){let d={instancePath:e+"/presentation/body",schemaPath:"#/properties/presentation/properties/body/maxLength",keyword:"maxLength",params:{limit:160},message:"must NOT have more than 160 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/presentation/body",schemaPath:"#/properties/presentation/properties/body/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(l.tag!==void 0){let p=l.tag;if(typeof p=="string"){if(D(p)>80){let d={instancePath:e+"/presentation/tag",schemaPath:"#/properties/presentation/properties/tag/maxLength",keyword:"maxLength",params:{limit:80},message:"must NOT have more than 80 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/presentation/tag",schemaPath:"#/properties/presentation/properties/tag/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/presentation/tag",schemaPath:"#/properties/presentation/properties/tag/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}}else{let p={instancePath:e+"/presentation",schemaPath:"#/properties/presentation/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return ga.errors=r,a===0}function df(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=df.evaluated;c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0);let l=a,p=!1,d=null,u=a;if(n&&typeof n=="object"&&!Array.isArray(n)){if(n.homepage===void 0){let g={instancePath:e,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:"homepage"},message:"must have required property 'homepage'"};r===null?r=[g]:r.push(g),a++}if(n.redirect_uris===void 0){let g={instancePath:e,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:"redirect_uris"},message:"must have required property 'redirect_uris'"};r===null?r=[g]:r.push(g),a++}if(n.distribution!==void 0&&n.distribution!=="web"){let g={instancePath:e+"/distribution",schemaPath:"#/oneOf/0/properties/distribution/const",keyword:"const",params:{allowedValue:"web"},message:"must be equal to constant"};r===null?r=[g]:r.push(g),a++}if(n.project_url!==void 0){let g={instancePath:e+"/project_url",schemaPath:"#/oneOf/0/properties/project_url/false schema",keyword:"false schema",params:{},message:"boolean schema is false"};r===null?r=[g]:r.push(g),a++}}var m=u===a;if(m){p=!0,d=0;var f={};f.distribution=!0,f.homepage=!0,f.redirect_uris=!0,f.project_url=!0}let h=a;if(n&&typeof n=="object"&&!Array.isArray(n)){if(n.distribution===void 0){let g={instancePath:e,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty:"distribution"},message:"must have required property 'distribution'"};r===null?r=[g]:r.push(g),a++}if(n.distribution!==void 0&&n.distribution!=="portable"){let g={instancePath:e+"/distribution",schemaPath:"#/oneOf/1/properties/distribution/const",keyword:"const",params:{allowedValue:"portable"},message:"must be equal to constant"};r===null?r=[g]:r.push(g),a++}if(n.platform!==void 0){let g={instancePath:e+"/platform",schemaPath:"#/oneOf/1/properties/platform/false schema",keyword:"false schema",params:{},message:"boolean schema is false"};r===null?r=[g]:r.push(g),a++}if(n.homepage!==void 0){let g={instancePath:e+"/homepage",schemaPath:"#/oneOf/1/properties/homepage/false schema",keyword:"false schema",params:{},message:"boolean schema is false"};r===null?r=[g]:r.push(g),a++}if(n.redirect_uris!==void 0){let g={instancePath:e+"/redirect_uris",schemaPath:"#/oneOf/1/properties/redirect_uris/false schema",keyword:"false schema",params:{},message:"boolean schema is false"};r===null?r=[g]:r.push(g),a++}}var m=h===a;if(m&&p?(p=!1,d=[d,1]):m&&(p=!0,d=1,f!==!0&&(f=f||{},f.distribution=!0,f.platform=!0,f.homepage=!0,f.redirect_uris=!0)),p)a=l,r!==null&&(l?r.length=l:r=null);else{let g={instancePath:e,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas:d},message:"must match exactly one schema in oneOf"};r===null?r=[g]:r.push(g),a++}if(n&&typeof n=="object"&&!Array.isArray(n)){if(n.manifest_version===void 0){let g={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"manifest_version"},message:"must have required property 'manifest_version'"};r===null?r=[g]:r.push(g),a++}if(n.id===void 0){let g={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[g]:r.push(g),a++}if(n.name===void 0){let g={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"name"},message:"must have required property 'name'"};r===null?r=[g]:r.push(g),a++}for(let g in n)if(!MS.call(PS.properties,g)){let y={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:g},message:"must NOT have additional properties"};r===null?r=[y]:r.push(y),a++}if(n.manifest_version!==void 0&&n.manifest_version!==1){let g={instancePath:e+"/manifest_version",schemaPath:"#/properties/manifest_version/const",keyword:"const",params:{allowedValue:1},message:"must be equal to constant"};r===null?r=[g]:r.push(g),a++}if(n.distribution!==void 0){let g=n.distribution;if(!(g==="web"||g==="portable")){let y={instancePath:e+"/distribution",schemaPath:"#/properties/distribution/enum",keyword:"enum",params:{allowedValues:PS.properties.distribution.enum},message:"must be equal to one of the allowed values"};r===null?r=[y]:r.push(y),a++}}if(n.id!==void 0){let g=n.id;if(typeof g=="string"){if(D(g)>150){let y={instancePath:e+"/id",schemaPath:"#/properties/id/maxLength",keyword:"maxLength",params:{limit:150},message:"must NOT have more than 150 characters"};r===null?r=[y]:r.push(y),a++}if(D(g)<5){let y={instancePath:e+"/id",schemaPath:"#/properties/id/minLength",keyword:"minLength",params:{limit:5},message:"must NOT have fewer than 5 characters"};r===null?r=[y]:r.push(y),a++}if(!LS.test(g)){let y={instancePath:e+"/id",schemaPath:"#/properties/id/pattern",keyword:"pattern",params:{pattern:"^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*){2,}$"},message:'must match pattern "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*){2,}$"'};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/id",schemaPath:"#/properties/id/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.name!==void 0){let g=n.name;if(typeof g=="string"){if(D(g)>100){let y={instancePath:e+"/name",schemaPath:"#/properties/name/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[y]:r.push(y),a++}if(D(g)<1){let y={instancePath:e+"/name",schemaPath:"#/properties/name/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.platform!==void 0&&n.platform!=="native"){let g={instancePath:e+"/platform",schemaPath:"#/properties/platform/const",keyword:"const",params:{allowedValue:"native"},message:"must be equal to constant"};r===null?r=[g]:r.push(g),a++}if(n.homepage!==void 0){let g=n.homepage;if(typeof g=="string"){if(!Jr.test(g)){let y={instancePath:e+"/homepage",schemaPath:"#/properties/homepage/pattern",keyword:"pattern",params:{pattern:"^https://"},message:'must match pattern "^https://"'};r===null?r=[y]:r.push(y),a++}if(!hn(g)){let y={instancePath:e+"/homepage",schemaPath:"#/properties/homepage/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/homepage",schemaPath:"#/properties/homepage/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.project_url!==void 0){let g=n.project_url;if(typeof g=="string"){if(!Jr.test(g)){let y={instancePath:e+"/project_url",schemaPath:"#/properties/project_url/pattern",keyword:"pattern",params:{pattern:"^https://"},message:'must match pattern "^https://"'};r===null?r=[y]:r.push(y),a++}if(!hn(g)){let y={instancePath:e+"/project_url",schemaPath:"#/properties/project_url/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/project_url",schemaPath:"#/properties/project_url/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.icon!==void 0){let g=n.icon;if(typeof g=="string"){if(!Jr.test(g)){let y={instancePath:e+"/icon",schemaPath:"#/properties/icon/pattern",keyword:"pattern",params:{pattern:"^https://"},message:'must match pattern "^https://"'};r===null?r=[y]:r.push(y),a++}if(!hn(g)){let y={instancePath:e+"/icon",schemaPath:"#/properties/icon/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/icon",schemaPath:"#/properties/icon/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.redirect_uris!==void 0){let g=n.redirect_uris;if(Array.isArray(g)){if(g.length>10){let k={instancePath:e+"/redirect_uris",schemaPath:"#/properties/redirect_uris/maxItems",keyword:"maxItems",params:{limit:10},message:"must NOT have more than 10 items"};r===null?r=[k]:r.push(k),a++}if(g.length<1){let k={instancePath:e+"/redirect_uris",schemaPath:"#/properties/redirect_uris/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[k]:r.push(k),a++}let y=g.length;for(let k=0;k<y;k++){let S=g[k];if(typeof S=="string"){if(!hn(S)){let x={instancePath:e+"/redirect_uris/"+k,schemaPath:"#/properties/redirect_uris/items/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[x]:r.push(x),a++}}else{let x={instancePath:e+"/redirect_uris/"+k,schemaPath:"#/properties/redirect_uris/items/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[x]:r.push(x),a++}}let v=g.length,_;if(v>1){let k={};for(;v--;){let S=g[v];if(typeof S=="string"){if(typeof k[S]=="number"){_=k[S];let x={instancePath:e+"/redirect_uris",schemaPath:"#/properties/redirect_uris/uniqueItems",keyword:"uniqueItems",params:{i:v,j:_},message:"must NOT have duplicate items (items ## "+_+" and "+v+" are identical)"};r===null?r=[x]:r.push(x),a++;break}k[S]=v}}}}else{let y={instancePath:e+"/redirect_uris",schemaPath:"#/properties/redirect_uris/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[y]:r.push(y),a++}}if(n.installation_origins!==void 0){let g=n.installation_origins;if(g&&typeof g=="object"&&!Array.isArray(g)){for(let y in g)if(!(y==="lab"||y==="staging"||y==="production")){let v={instancePath:e+"/installation_origins",schemaPath:"#/properties/installation_origins/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:y},message:"must NOT have additional properties"};r===null?r=[v]:r.push(v),a++}g.lab!==void 0&&(Wn(g.lab,{instancePath:e+"/installation_origins/lab",parentData:g,parentDataProperty:"lab",rootData:o,dynamicAnchors:s})||(r=r===null?Wn.errors:r.concat(Wn.errors),a=r.length)),g.staging!==void 0&&(Wn(g.staging,{instancePath:e+"/installation_origins/staging",parentData:g,parentDataProperty:"staging",rootData:o,dynamicAnchors:s})||(r=r===null?Wn.errors:r.concat(Wn.errors),a=r.length)),g.production!==void 0&&(Wn(g.production,{instancePath:e+"/installation_origins/production",parentData:g,parentDataProperty:"production",rootData:o,dynamicAnchors:s})||(r=r===null?Wn.errors:r.concat(Wn.errors),a=r.length))}else{let y={instancePath:e+"/installation_origins",schemaPath:"#/properties/installation_origins/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[y]:r.push(y),a++}}if(n.requirements!==void 0&&(ua(n.requirements,{instancePath:e+"/requirements",parentData:n,parentDataProperty:"requirements",rootData:o,dynamicAnchors:s})||(r=r===null?ua.errors:r.concat(ua.errors),a=r.length)),n.provisions!==void 0){let g=n.provisions;if(g&&typeof g=="object"&&!Array.isArray(g)){if(g.type_packs===void 0){let y={instancePath:e+"/provisions",schemaPath:"#/properties/provisions/required",keyword:"required",params:{missingProperty:"type_packs"},message:"must have required property 'type_packs'"};r===null?r=[y]:r.push(y),a++}for(let y in g)if(!(y==="configuration"||y==="type_packs")){let v={instancePath:e+"/provisions",schemaPath:"#/properties/provisions/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:y},message:"must NOT have additional properties"};r===null?r=[v]:r.push(v),a++}if(g.configuration!==void 0){let y=g.configuration;if(Array.isArray(y)){if(y.length>50){let _={instancePath:e+"/provisions/configuration",schemaPath:"#/properties/provisions/properties/configuration/maxItems",keyword:"maxItems",params:{limit:50},message:"must NOT have more than 50 items"};r===null?r=[_]:r.push(_),a++}let v=y.length;for(let _=0;_<v;_++)fa(y[_],{instancePath:e+"/provisions/configuration/"+_,parentData:y,parentDataProperty:_,rootData:o,dynamicAnchors:s})||(r=r===null?fa.errors:r.concat(fa.errors),a=r.length)}else{let v={instancePath:e+"/provisions/configuration",schemaPath:"#/properties/provisions/properties/configuration/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[v]:r.push(v),a++}}if(g.type_packs!==void 0){let y=g.type_packs;if(Array.isArray(y)){if(y.length>20){let _={instancePath:e+"/provisions/type_packs",schemaPath:"#/properties/provisions/properties/type_packs/maxItems",keyword:"maxItems",params:{limit:20},message:"must NOT have more than 20 items"};r===null?r=[_]:r.push(_),a++}let v=y.length;for(let _=0;_<v;_++)ya(y[_],{instancePath:e+"/provisions/type_packs/"+_,parentData:y,parentDataProperty:_,rootData:o,dynamicAnchors:s})||(r=r===null?ya.errors:r.concat(ya.errors),a=r.length)}else{let v={instancePath:e+"/provisions/type_packs",schemaPath:"#/properties/provisions/properties/type_packs/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[v]:r.push(v),a++}}}else{let y={instancePath:e+"/provisions",schemaPath:"#/properties/provisions/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[y]:r.push(y),a++}}if(n.notifications!==void 0){let g=n.notifications;if(g&&typeof g=="object"&&!Array.isArray(g)){if(g.criteria===void 0){let y={instancePath:e+"/notifications",schemaPath:"#/properties/notifications/required",keyword:"required",params:{missingProperty:"criteria"},message:"must have required property 'criteria'"};r===null?r=[y]:r.push(y),a++}for(let y in g)if(!(y==="criteria"||y==="native_delivery")){let v={instancePath:e+"/notifications",schemaPath:"#/properties/notifications/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:y},message:"must NOT have additional properties"};r===null?r=[v]:r.push(v),a++}if(g.criteria!==void 0){let y=g.criteria;if(Array.isArray(y)){if(y.length>50){let _={instancePath:e+"/notifications/criteria",schemaPath:"#/properties/notifications/properties/criteria/maxItems",keyword:"maxItems",params:{limit:50},message:"must NOT have more than 50 items"};r===null?r=[_]:r.push(_),a++}let v=y.length;for(let _=0;_<v;_++)ga(y[_],{instancePath:e+"/notifications/criteria/"+_,parentData:y,parentDataProperty:_,rootData:o,dynamicAnchors:s})||(r=r===null?ga.errors:r.concat(ga.errors),a=r.length)}else{let v={instancePath:e+"/notifications/criteria",schemaPath:"#/properties/notifications/properties/criteria/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[v]:r.push(v),a++}}if(g.native_delivery!==void 0){let y=g.native_delivery,v=a,_=!1,k=null,S=a;if(y&&typeof y=="object"&&!Array.isArray(y)){if(y.mode===void 0){let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/required",keyword:"required",params:{missingProperty:"mode"},message:"must have required property 'mode'"};r===null?r=[P]:r.push(P),a++}if(y.firebase_project_id===void 0){let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/required",keyword:"required",params:{missingProperty:"firebase_project_id"},message:"must have required property 'firebase_project_id'"};r===null?r=[P]:r.push(P),a++}for(let P in y)if(!(P==="mode"||P==="firebase_project_id")){let C={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:P},message:"must NOT have additional properties"};r===null?r=[C]:r.push(C),a++}if(y.mode!==void 0&&y.mode!=="managed_fcm"){let P={instancePath:e+"/notifications/native_delivery/mode",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/mode/const",keyword:"const",params:{allowedValue:"managed_fcm"},message:"must be equal to constant"};r===null?r=[P]:r.push(P),a++}if(y.firebase_project_id!==void 0){let P=y.firebase_project_id;if(typeof P=="string"){if(D(P)>63){let C={instancePath:e+"/notifications/native_delivery/firebase_project_id",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/firebase_project_id/maxLength",keyword:"maxLength",params:{limit:63},message:"must NOT have more than 63 characters"};r===null?r=[C]:r.push(C),a++}if(D(P)<6){let C={instancePath:e+"/notifications/native_delivery/firebase_project_id",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/firebase_project_id/minLength",keyword:"minLength",params:{limit:6},message:"must NOT have fewer than 6 characters"};r===null?r=[C]:r.push(C),a++}if(!jS.test(P)){let C={instancePath:e+"/notifications/native_delivery/firebase_project_id",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/firebase_project_id/pattern",keyword:"pattern",params:{pattern:"^[a-z][a-z0-9-]*[a-z0-9]$"},message:'must match pattern "^[a-z][a-z0-9-]*[a-z0-9]$"'};r===null?r=[C]:r.push(C),a++}}else{let C={instancePath:e+"/notifications/native_delivery/firebase_project_id",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/firebase_project_id/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[C]:r.push(C),a++}}}else{let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[P]:r.push(P),a++}var w=S===a;if(w){_=!0,k=0;var b=!0}let x=a;if(y&&typeof y=="object"&&!Array.isArray(y)){if(y.mode===void 0){let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/required",keyword:"required",params:{missingProperty:"mode"},message:"must have required property 'mode'"};r===null?r=[P]:r.push(P),a++}if(y.url===void 0){let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/required",keyword:"required",params:{missingProperty:"url"},message:"must have required property 'url'"};r===null?r=[P]:r.push(P),a++}for(let P in y)if(!(P==="mode"||P==="url")){let C={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:P},message:"must NOT have additional properties"};r===null?r=[C]:r.push(C),a++}if(y.mode!==void 0&&y.mode!=="webhook"){let P={instancePath:e+"/notifications/native_delivery/mode",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/properties/mode/const",keyword:"const",params:{allowedValue:"webhook"},message:"must be equal to constant"};r===null?r=[P]:r.push(P),a++}if(y.url!==void 0){let P=y.url;if(typeof P=="string"){if(!Jr.test(P)){let C={instancePath:e+"/notifications/native_delivery/url",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/properties/url/pattern",keyword:"pattern",params:{pattern:"^https://"},message:'must match pattern "^https://"'};r===null?r=[C]:r.push(C),a++}if(!hn(P)){let C={instancePath:e+"/notifications/native_delivery/url",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/properties/url/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[C]:r.push(C),a++}}else{let C={instancePath:e+"/notifications/native_delivery/url",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/properties/url/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[C]:r.push(C),a++}}}else{let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[P]:r.push(P),a++}var w=x===a;if(w&&_?(_=!1,k=[k,1]):w&&(_=!0,k=1,b!==!0&&(b=!0)),_)a=v,r!==null&&(v?r.length=v:r=null);else{let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf",keyword:"oneOf",params:{passingSchemas:k},message:"must match exactly one schema in oneOf"};r===null?r=[P]:r.push(P),a++}}}else{let y={instancePath:e+"/notifications",schemaPath:"#/properties/notifications/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[y]:r.push(y),a++}}}else{let g={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[g]:r.push(g),a++}return df.errors=r,a===0}function Hn(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=Hn.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){for(let l in n)if(!(l==="app-runtime"||l==="mobile")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n["app-runtime"]!==void 0){let l=n["app-runtime"];if(Array.isArray(l)){if(l.length>16){let f={instancePath:e+"/app-runtime",schemaPath:"#/$defs/installationOrigins/maxItems",keyword:"maxItems",params:{limit:16},message:"must NOT have more than 16 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++){let h=l[f];if(typeof h=="string"){if(D(h)>255){let m={instancePath:e+"/app-runtime/"+f,schemaPath:"#/$defs/installationOrigins/items/maxLength",keyword:"maxLength",params:{limit:255},message:"must NOT have more than 255 characters"};r===null?r=[m]:r.push(m),a++}if(D(h)<1){let m={instancePath:e+"/app-runtime/"+f,schemaPath:"#/$defs/installationOrigins/items/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[m]:r.push(m),a++}if(!hn(h)){let m={instancePath:e+"/app-runtime/"+f,schemaPath:"#/$defs/installationOrigins/items/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[m]:r.push(m),a++}}else{let m={instancePath:e+"/app-runtime/"+f,schemaPath:"#/$defs/installationOrigins/items/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[m]:r.push(m),a++}}let d=l.length,u;if(d>1){let f={};for(;d--;){let h=l[d];if(typeof h=="string"){if(typeof f[h]=="number"){u=f[h];let m={instancePath:e+"/app-runtime",schemaPath:"#/$defs/installationOrigins/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[m]:r.push(m),a++;break}f[h]=d}}}}else{let p={instancePath:e+"/app-runtime",schemaPath:"#/$defs/installationOrigins/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}if(n.mobile!==void 0){let l=n.mobile;if(Array.isArray(l)){if(l.length>16){let f={instancePath:e+"/mobile",schemaPath:"#/$defs/installationOrigins/maxItems",keyword:"maxItems",params:{limit:16},message:"must NOT have more than 16 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++){let h=l[f];if(typeof h=="string"){if(D(h)>255){let m={instancePath:e+"/mobile/"+f,schemaPath:"#/$defs/installationOrigins/items/maxLength",keyword:"maxLength",params:{limit:255},message:"must NOT have more than 255 characters"};r===null?r=[m]:r.push(m),a++}if(D(h)<1){let m={instancePath:e+"/mobile/"+f,schemaPath:"#/$defs/installationOrigins/items/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[m]:r.push(m),a++}if(!hn(h)){let m={instancePath:e+"/mobile/"+f,schemaPath:"#/$defs/installationOrigins/items/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[m]:r.push(m),a++}}else{let m={instancePath:e+"/mobile/"+f,schemaPath:"#/$defs/installationOrigins/items/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[m]:r.push(m),a++}}let d=l.length,u;if(d>1){let f={};for(;d--;){let h=l[d];if(typeof h=="string"){if(typeof f[h]=="number"){u=f[h];let m={instancePath:e+"/mobile",schemaPath:"#/$defs/installationOrigins/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[m]:r.push(m),a++;break}f[h]=d}}}}else{let p={instancePath:e+"/mobile",schemaPath:"#/$defs/installationOrigins/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return Hn.errors=r,a===0}function ba(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=ba.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.contract_version===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"contract_version"},message:"must have required property 'contract_version'"};r===null?r=[l]:r.push(l),a++}if(n.required===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"required"},message:"must have required property 'required'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="contract_version"||l==="required"||l==="optional")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.contract_version!==void 0&&n.contract_version!==1){let l={instancePath:e+"/contract_version",schemaPath:"#/properties/contract_version/const",keyword:"const",params:{allowedValue:1},message:"must be equal to constant"};r===null?r=[l]:r.push(l),a++}if(n.required!==void 0){let l=n.required;if(Array.isArray(l)){if(l.length>32){let f={instancePath:e+"/required",schemaPath:"#/properties/required/maxItems",keyword:"maxItems",params:{limit:32},message:"must NOT have more than 32 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++){let h=l[f];if(!(h==="collection.inspect"||h==="records.watch"||h==="records.read"||h==="records.query"||h==="records.validate"||h==="records.create"||h==="records.update"||h==="records.delete"||h==="records.rename"||h==="views.list"||h==="views.execute"||h==="views.source.read"||h==="views.source.create"||h==="views.source.update"||h==="views.source.delete"||h==="definitions.contracts.current"||h==="definitions.read"||h==="definitions.create"||h==="definitions.update"||h==="definitions.type-pack.inspect"||h==="definitions.type-pack.apply"||h==="collection.setup.apply"||h==="timers.list"||h==="timers.put"||h==="timers.cancel"||h==="timers.reconcile"||h==="sync.offline-replica"||h==="notifications.background-delivery"||h==="files.list"||h==="files.read"||h==="files.add"||h==="files.replace"||h==="files.move"||h==="files.delete")){let m={instancePath:e+"/required/"+f,schemaPath:"#/$defs/applicationCapability/enum",keyword:"enum",params:{allowedValues:ES.enum},message:"must be equal to one of the allowed values"};r===null?r=[m]:r.push(m),a++}}let d=l.length,u;if(d>1){e:for(;d--;)for(u=d;u--;)if(Pn(l[d],l[u])){let f={instancePath:e+"/required",schemaPath:"#/properties/required/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[f]:r.push(f),a++;break e}}}else{let p={instancePath:e+"/required",schemaPath:"#/properties/required/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}if(n.optional!==void 0){let l=n.optional;if(Array.isArray(l)){if(l.length>32){let f={instancePath:e+"/optional",schemaPath:"#/properties/optional/maxItems",keyword:"maxItems",params:{limit:32},message:"must NOT have more than 32 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++){let h=l[f];if(!(h==="collection.inspect"||h==="records.watch"||h==="records.read"||h==="records.query"||h==="records.validate"||h==="records.create"||h==="records.update"||h==="records.delete"||h==="records.rename"||h==="views.list"||h==="views.execute"||h==="views.source.read"||h==="views.source.create"||h==="views.source.update"||h==="views.source.delete"||h==="definitions.contracts.current"||h==="definitions.read"||h==="definitions.create"||h==="definitions.update"||h==="definitions.type-pack.inspect"||h==="definitions.type-pack.apply"||h==="collection.setup.apply"||h==="timers.list"||h==="timers.put"||h==="timers.cancel"||h==="timers.reconcile"||h==="sync.offline-replica"||h==="notifications.background-delivery"||h==="files.list"||h==="files.read"||h==="files.add"||h==="files.replace"||h==="files.move"||h==="files.delete")){let m={instancePath:e+"/optional/"+f,schemaPath:"#/$defs/applicationCapability/enum",keyword:"enum",params:{allowedValues:ES.enum},message:"must be equal to one of the allowed values"};r===null?r=[m]:r.push(m),a++}}let d=l.length,u;if(d>1){e:for(;d--;)for(u=d;u--;)if(Pn(l[d],l[u])){let f={instancePath:e+"/optional",schemaPath:"#/properties/optional/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[f]:r.push(f),a++;break e}}}else{let p={instancePath:e+"/optional",schemaPath:"#/properties/optional/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return ba.errors=r,a===0}function wa(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=wa.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.actions===void 0){let d={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"actions"},message:"must have required property 'actions'"};r===null?r=[d]:r.push(d),a++}if(n.scope===void 0){let d={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"scope"},message:"must have required property 'scope'"};r===null?r=[d]:r.push(d),a++}for(let d in n)if(!(d==="actions"||d==="scope")){let u={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:d},message:"must NOT have additional properties"};r===null?r=[u]:r.push(u),a++}if(n.actions!==void 0){let d=n.actions;if(Array.isArray(d)){if(d.length>6){let m={instancePath:e+"/actions",schemaPath:"#/properties/actions/maxItems",keyword:"maxItems",params:{limit:6},message:"must NOT have more than 6 items"};r===null?r=[m]:r.push(m),a++}if(d.length<1){let m={instancePath:e+"/actions",schemaPath:"#/properties/actions/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[m]:r.push(m),a++}let u=d.length;for(let m=0;m<u;m++){let b=d[m];if(!(b==="list"||b==="read"||b==="add"||b==="replace"||b==="move"||b==="delete")){let w={instancePath:e+"/actions/"+m,schemaPath:"#/properties/actions/items/enum",keyword:"enum",params:{allowedValues:aE.properties.actions.items.enum},message:"must be equal to one of the allowed values"};r===null?r=[w]:r.push(w),a++}}let f=d.length,h;if(f>1){e:for(;f--;)for(h=f;h--;)if(Pn(d[f],d[h])){let m={instancePath:e+"/actions",schemaPath:"#/properties/actions/uniqueItems",keyword:"uniqueItems",params:{i:f,j:h},message:"must NOT have duplicate items (items ## "+h+" and "+f+" are identical)"};r===null?r=[m]:r.push(m),a++;break e}}}else{let u={instancePath:e+"/actions",schemaPath:"#/properties/actions/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[u]:r.push(u),a++}}if(n.scope!==void 0){let d=n.scope,u=a,f=!1,h=null,m=a;if(d&&typeof d=="object"&&!Array.isArray(d)){if(d.kind===void 0){let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/0/required",keyword:"required",params:{missingProperty:"kind"},message:"must have required property 'kind'"};r===null?r=[w]:r.push(w),a++}if(d.folders===void 0){let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/0/required",keyword:"required",params:{missingProperty:"folders"},message:"must have required property 'folders'"};r===null?r=[w]:r.push(w),a++}for(let w in d)if(!(w==="kind"||w==="folders")){let g={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:w},message:"must NOT have additional properties"};r===null?r=[g]:r.push(g),a++}if(d.kind!==void 0&&d.kind!=="selected_folders"){let w={instancePath:e+"/scope/kind",schemaPath:"#/$defs/fileScope/oneOf/0/properties/kind/const",keyword:"const",params:{allowedValue:"selected_folders"},message:"must be equal to constant"};r===null?r=[w]:r.push(w),a++}if(d.folders!==void 0){let w=d.folders;if(Array.isArray(w)){if(w.length>100){let _={instancePath:e+"/scope/folders",schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/maxItems",keyword:"maxItems",params:{limit:100},message:"must NOT have more than 100 items"};r===null?r=[_]:r.push(_),a++}if(w.length<1){let _={instancePath:e+"/scope/folders",schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[_]:r.push(_),a++}let g=w.length;for(let _=0;_<g;_++){let k=w[_];if(typeof k=="string"){if(D(k)>1024){let S={instancePath:e+"/scope/folders/"+_,schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/items/maxLength",keyword:"maxLength",params:{limit:1024},message:"must NOT have more than 1024 characters"};r===null?r=[S]:r.push(S),a++}if(D(k)<1){let S={instancePath:e+"/scope/folders/"+_,schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/items/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[S]:r.push(S),a++}if(!NS.test(k)){let S={instancePath:e+"/scope/folders/"+_,schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/items/pattern",keyword:"pattern",params:{pattern:"^(?!/)(?!\\.)(?!.*//)(?!.*\\\\)(?!.*/\\.)(?!(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*\\/(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*/$).+$"},message:'must match pattern "^(?!/)(?!\\.)(?!.*//)(?!.*\\\\)(?!.*/\\.)(?!(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*\\/(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*/$).+$"'};r===null?r=[S]:r.push(S),a++}}else{let S={instancePath:e+"/scope/folders/"+_,schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/items/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[S]:r.push(S),a++}}let y=w.length,v;if(y>1){let _={};for(;y--;){let k=w[y];if(typeof k=="string"){if(typeof _[k]=="number"){v=_[k];let S={instancePath:e+"/scope/folders",schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/uniqueItems",keyword:"uniqueItems",params:{i:y,j:v},message:"must NOT have duplicate items (items ## "+v+" and "+y+" are identical)"};r===null?r=[S]:r.push(S),a++;break}_[k]=y}}}}else{let g={instancePath:e+"/scope/folders",schemaPath:"#/$defs/fileScope/oneOf/0/properties/folders/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[g]:r.push(g),a++}}}else{let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[w]:r.push(w),a++}var p=m===a;if(p){f=!0,h=0;var l=!0}let b=a;if(d&&typeof d=="object"&&!Array.isArray(d)){if(d.kind===void 0){let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/1/required",keyword:"required",params:{missingProperty:"kind"},message:"must have required property 'kind'"};r===null?r=[w]:r.push(w),a++}for(let w in d)if(w!=="kind"){let g={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:w},message:"must NOT have additional properties"};r===null?r=[g]:r.push(g),a++}if(d.kind!==void 0&&d.kind!=="collection"){let w={instancePath:e+"/scope/kind",schemaPath:"#/$defs/fileScope/oneOf/1/properties/kind/const",keyword:"const",params:{allowedValue:"collection"},message:"must be equal to constant"};r===null?r=[w]:r.push(w),a++}}else{let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[w]:r.push(w),a++}var p=b===a;if(p&&f?(f=!1,h=[h,1]):p&&(f=!0,h=1,l!==!0&&(l=!0)),f)a=u,r!==null&&(u?r.length=u:r=null);else{let w={instancePath:e+"/scope",schemaPath:"#/$defs/fileScope/oneOf",keyword:"oneOf",params:{passingSchemas:h},message:"must match exactly one schema in oneOf"};r===null?r=[w]:r.push(w),a++}}}else{let d={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[d]:r.push(d),a++}return wa.errors=r,a===0}function va(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=va.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.id===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[p]:r.push(p),a++}if(n.path===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"path"},message:"must have required property 'path'"};r===null?r=[p]:r.push(p),a++}if(n.predicate===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"predicate"},message:"must have required property 'predicate'"};r===null?r=[p]:r.push(p),a++}if(n.value===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"value"},message:"must have required property 'value'"};r===null?r=[p]:r.push(p),a++}for(let p in n)if(!(p==="id"||p==="path"||p==="predicate"||p==="value")){let d={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(n.id!==void 0){let p=n.id;if(typeof p=="string"){if(D(p)>100){let d={instancePath:e+"/id",schemaPath:"#/properties/id/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/id",schemaPath:"#/properties/id/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}if(!ff.test(p)){let d={instancePath:e+"/id",schemaPath:"#/properties/id/pattern",keyword:"pattern",params:{pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},message:'must match pattern "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"'};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/id",schemaPath:"#/properties/id/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.path!==void 0){let p=n.path;if(typeof p=="string"){if(D(p)>1024){let d={instancePath:e+"/path",schemaPath:"#/properties/path/maxLength",keyword:"maxLength",params:{limit:1024},message:"must NOT have more than 1024 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/path",schemaPath:"#/properties/path/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/path",schemaPath:"#/properties/path/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.predicate!==void 0&&n.predicate!=="contains"){let p={instancePath:e+"/predicate",schemaPath:"#/properties/predicate/const",keyword:"const",params:{allowedValue:"contains"},message:"must be equal to constant"};r===null?r=[p]:r.push(p),a++}if(n.value!==void 0){let p=n.value,d=a,u=!1,f=a;if(typeof p!="string"){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[w]:r.push(w),a++}var l=f===a;u=u||l;let h=a;if(!(typeof p=="number"&&isFinite(p))){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/1/type",keyword:"type",params:{type:"number"},message:"must be number"};r===null?r=[w]:r.push(w),a++}var l=h===a;u=u||l;let m=a;if(typeof p!="boolean"){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};r===null?r=[w]:r.push(w),a++}var l=m===a;u=u||l;let b=a;if(p!==null){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/3/type",keyword:"type",params:{type:"null"},message:"must be null"};r===null?r=[w]:r.push(w),a++}var l=b===a;if(u=u||l,u)a=d,r!==null&&(d?r.length=d:r=null);else{let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};r===null?r=[w]:r.push(w),a++}}}else{let p={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}return va.errors=r,a===0}function Yn(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=Yn.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.id===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[l]:r.push(l),a++}if(n.version===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"version"},message:"must have required property 'version'"};r===null?r=[l]:r.push(l),a++}if(n.digest===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"digest"},message:"must have required property 'digest'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="id"||l==="version"||l==="digest")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.id!==void 0){let l=n.id;if(typeof l=="string"){if(D(l)>100){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[p]:r.push(p),a++}if(D(l)<1){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[p]:r.push(p),a++}if(!xa.test(l)){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/pattern",keyword:"pattern",params:{pattern:"^[a-z0-9]+(?:[._-][a-z0-9]+)*$"},message:'must match pattern "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.version!==void 0){let l=n.version;if(typeof l=="string"){if(!hf.test(l)){let p={instancePath:e+"/version",schemaPath:"#/properties/version/pattern",keyword:"pattern",params:{pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"},message:'must match pattern "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/version",schemaPath:"#/properties/version/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.digest!==void 0){let l=n.digest;if(typeof l=="string"){if(!da.test(l)){let p={instancePath:e+"/digest",schemaPath:"#/properties/digest/pattern",keyword:"pattern",params:{pattern:"^sha256:[0-9a-f]{64}$"},message:'must match pattern "^sha256:[0-9a-f]{64}$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/digest",schemaPath:"#/properties/digest/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return Yn.errors=r,a===0}function _a(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=_a.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.access===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"access"},message:"must have required property 'access'"};r===null?r=[l]:r.push(l),a++}if(n.contracts===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"contracts"},message:"must have required property 'contracts'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="capabilities"||l==="access"||l==="collection_kind"||l==="files"||l==="configuration"||l==="contracts")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.capabilities!==void 0&&(ba(n.capabilities,{instancePath:e+"/capabilities",parentData:n,parentDataProperty:"capabilities",rootData:o,dynamicAnchors:s})||(r=r===null?ba.errors:r.concat(ba.errors),a=r.length)),n.access!==void 0&&n.access!=="full_collection"){let l={instancePath:e+"/access",schemaPath:"#/properties/access/const",keyword:"const",params:{allowedValue:"full_collection"},message:"must be equal to constant"};r===null?r=[l]:r.push(l),a++}if(n.collection_kind!==void 0&&n.collection_kind!=="hosted"){let l={instancePath:e+"/collection_kind",schemaPath:"#/properties/collection_kind/const",keyword:"const",params:{allowedValue:"hosted"},message:"must be equal to constant"};r===null?r=[l]:r.push(l),a++}if(n.files!==void 0&&(wa(n.files,{instancePath:e+"/files",parentData:n,parentDataProperty:"files",rootData:o,dynamicAnchors:s})||(r=r===null?wa.errors:r.concat(wa.errors),a=r.length)),n.configuration!==void 0){let l=n.configuration;if(Array.isArray(l)){if(l.length>50){let d={instancePath:e+"/configuration",schemaPath:"#/properties/configuration/maxItems",keyword:"maxItems",params:{limit:50},message:"must NOT have more than 50 items"};r===null?r=[d]:r.push(d),a++}let p=l.length;for(let d=0;d<p;d++)va(l[d],{instancePath:e+"/configuration/"+d,parentData:l,parentDataProperty:d,rootData:o,dynamicAnchors:s})||(r=r===null?va.errors:r.concat(va.errors),a=r.length)}else{let p={instancePath:e+"/configuration",schemaPath:"#/properties/configuration/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}if(n.contracts!==void 0){let l=n.contracts;if(Array.isArray(l)){if(l.length>20){let f={instancePath:e+"/contracts",schemaPath:"#/properties/contracts/maxItems",keyword:"maxItems",params:{limit:20},message:"must NOT have more than 20 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++)Yn(l[f],{instancePath:e+"/contracts/"+f,parentData:l,parentDataProperty:f,rootData:o,dynamicAnchors:s})||(r=r===null?Yn.errors:r.concat(Yn.errors),a=r.length);let d=l.length,u;if(d>1){e:for(;d--;)for(u=d;u--;)if(Pn(l[d],l[u])){let f={instancePath:e+"/contracts",schemaPath:"#/properties/contracts/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[f]:r.push(f),a++;break e}}}else{let p={instancePath:e+"/contracts",schemaPath:"#/properties/contracts/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return _a.errors=r,a===0}function Aa(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=Aa.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.requirement===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"requirement"},message:"must have required property 'requirement'"};r===null?r=[p]:r.push(p),a++}if(n.operation===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"operation"},message:"must have required property 'operation'"};r===null?r=[p]:r.push(p),a++}if(n.path===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"path"},message:"must have required property 'path'"};r===null?r=[p]:r.push(p),a++}if(n.value===void 0){let p={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"value"},message:"must have required property 'value'"};r===null?r=[p]:r.push(p),a++}for(let p in n)if(!(p==="requirement"||p==="operation"||p==="path"||p==="value")){let d={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(n.requirement!==void 0){let p=n.requirement;if(typeof p=="string"){if(D(p)>100){let d={instancePath:e+"/requirement",schemaPath:"#/properties/requirement/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/requirement",schemaPath:"#/properties/requirement/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}if(!ff.test(p)){let d={instancePath:e+"/requirement",schemaPath:"#/properties/requirement/pattern",keyword:"pattern",params:{pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},message:'must match pattern "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"'};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/requirement",schemaPath:"#/properties/requirement/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.operation!==void 0&&n.operation!=="set_add"){let p={instancePath:e+"/operation",schemaPath:"#/properties/operation/const",keyword:"const",params:{allowedValue:"set_add"},message:"must be equal to constant"};r===null?r=[p]:r.push(p),a++}if(n.path!==void 0){let p=n.path;if(typeof p=="string"){if(D(p)>1024){let d={instancePath:e+"/path",schemaPath:"#/properties/path/maxLength",keyword:"maxLength",params:{limit:1024},message:"must NOT have more than 1024 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/path",schemaPath:"#/properties/path/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/path",schemaPath:"#/properties/path/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(n.value!==void 0){let p=n.value,d=a,u=!1,f=a;if(typeof p!="string"){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[w]:r.push(w),a++}var l=f===a;u=u||l;let h=a;if(!(typeof p=="number"&&isFinite(p))){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/1/type",keyword:"type",params:{type:"number"},message:"must be number"};r===null?r=[w]:r.push(w),a++}var l=h===a;u=u||l;let m=a;if(typeof p!="boolean"){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};r===null?r=[w]:r.push(w),a++}var l=m===a;u=u||l;let b=a;if(p!==null){let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf/3/type",keyword:"type",params:{type:"null"},message:"must be null"};r===null?r=[w]:r.push(w),a++}var l=b===a;if(u=u||l,u)a=d,r!==null&&(d?r.length=d:r=null);else{let w={instancePath:e+"/value",schemaPath:"#/$defs/configurationValue/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};r===null?r=[w]:r.push(w),a++}}}else{let p={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}return Aa.errors=r,a===0}function ka(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=ka.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.kind===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"kind"},message:"must have required property 'kind'"};r===null?r=[l]:r.push(l),a++}if(n.id===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[l]:r.push(l),a++}if(n.version===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"version"},message:"must have required property 'version'"};r===null?r=[l]:r.push(l),a++}if(n.resources===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"resources"},message:"must have required property 'resources'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="kind"||l==="id"||l==="version"||l==="name"||l==="description"||l==="resources"||US.test(l))){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.kind!==void 0&&n.kind!=="mdbase.type-pack"){let l={instancePath:e+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue:"mdbase.type-pack"},message:"must be equal to constant"};r===null?r=[l]:r.push(l),a++}if(n.id!==void 0){let l=n.id;if(typeof l=="string"){if(D(l)>100){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[p]:r.push(p),a++}if(D(l)<1){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[p]:r.push(p),a++}if(!xa.test(l)){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/pattern",keyword:"pattern",params:{pattern:"^[a-z0-9]+(?:[._-][a-z0-9]+)*$"},message:'must match pattern "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.version!==void 0){let l=n.version;if(typeof l=="string"){if(!hf.test(l)){let p={instancePath:e+"/version",schemaPath:"#/$defs/contract/properties/version/pattern",keyword:"pattern",params:{pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"},message:'must match pattern "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/version",schemaPath:"#/$defs/contract/properties/version/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.name!==void 0){let l=n.name;if(typeof l=="string"){if(D(l)>100){let p={instancePath:e+"/name",schemaPath:"#/properties/name/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[p]:r.push(p),a++}if(D(l)<1){let p={instancePath:e+"/name",schemaPath:"#/properties/name/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.description!==void 0){let l=n.description;if(typeof l=="string"){if(D(l)>500){let p={instancePath:e+"/description",schemaPath:"#/properties/description/maxLength",keyword:"maxLength",params:{limit:500},message:"must NOT have more than 500 characters"};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/description",schemaPath:"#/properties/description/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.resources!==void 0){let l=n.resources;if(Array.isArray(l)){if(l.length>100){let d={instancePath:e+"/resources",schemaPath:"#/properties/resources/maxItems",keyword:"maxItems",params:{limit:100},message:"must NOT have more than 100 items"};r===null?r=[d]:r.push(d),a++}if(l.length<1){let d={instancePath:e+"/resources",schemaPath:"#/properties/resources/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[d]:r.push(d),a++}let p=l.length;for(let d=0;d<p;d++){let u=l[d];if(u&&typeof u=="object"&&!Array.isArray(u)){if(u.kind===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackManifestResource/required",keyword:"required",params:{missingProperty:"kind"},message:"must have required property 'kind'"};r===null?r=[f]:r.push(f),a++}if(u.mode===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackManifestResource/required",keyword:"required",params:{missingProperty:"mode"},message:"must have required property 'mode'"};r===null?r=[f]:r.push(f),a++}if(u.source===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackManifestResource/required",keyword:"required",params:{missingProperty:"source"},message:"must have required property 'source'"};r===null?r=[f]:r.push(f),a++}if(u.target===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackManifestResource/required",keyword:"required",params:{missingProperty:"target"},message:"must have required property 'target'"};r===null?r=[f]:r.push(f),a++}if(u.digest===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackManifestResource/required",keyword:"required",params:{missingProperty:"digest"},message:"must have required property 'digest'"};r===null?r=[f]:r.push(f),a++}for(let f in u)if(!(f==="kind"||f==="mode"||f==="source"||f==="target"||f==="digest")){let h={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackManifestResource/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:f},message:"must NOT have additional properties"};r===null?r=[h]:r.push(h),a++}if(u.kind!==void 0){let f=u.kind;if(!(f==="contract"||f==="type"||f==="schema")){let h={instancePath:e+"/resources/"+d+"/kind",schemaPath:"#/$defs/typePackManifestResource/properties/kind/enum",keyword:"enum",params:{allowedValues:qS.properties.kind.enum},message:"must be equal to one of the allowed values"};r===null?r=[h]:r.push(h),a++}}if(u.mode!==void 0){let f=u.mode;if(!(f==="managed"||f==="seed")){let h={instancePath:e+"/resources/"+d+"/mode",schemaPath:"#/$defs/typePackManifestResource/properties/mode/enum",keyword:"enum",params:{allowedValues:qS.properties.mode.enum},message:"must be equal to one of the allowed values"};r===null?r=[h]:r.push(h),a++}}if(u.source!==void 0){let f=u.source;if(typeof f=="string"){if(D(f)>240){let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackManifestResource/properties/source/maxLength",keyword:"maxLength",params:{limit:240},message:"must NOT have more than 240 characters"};r===null?r=[h]:r.push(h),a++}if(D(f)<1){let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackManifestResource/properties/source/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[h]:r.push(h),a++}}else{let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackManifestResource/properties/source/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[h]:r.push(h),a++}}if(u.target!==void 0){let f=u.target;if(typeof f=="string"){if(D(f)>240){let h={instancePath:e+"/resources/"+d+"/target",schemaPath:"#/$defs/typePackManifestResource/properties/target/maxLength",keyword:"maxLength",params:{limit:240},message:"must NOT have more than 240 characters"};r===null?r=[h]:r.push(h),a++}if(D(f)<1){let h={instancePath:e+"/resources/"+d+"/target",schemaPath:"#/$defs/typePackManifestResource/properties/target/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[h]:r.push(h),a++}}else{let h={instancePath:e+"/resources/"+d+"/target",schemaPath:"#/$defs/typePackManifestResource/properties/target/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[h]:r.push(h),a++}}if(u.digest!==void 0){let f=u.digest;if(typeof f=="string"){if(!da.test(f)){let h={instancePath:e+"/resources/"+d+"/digest",schemaPath:"#/$defs/typePackManifestResource/properties/digest/pattern",keyword:"pattern",params:{pattern:"^sha256:[0-9a-f]{64}$"},message:'must match pattern "^sha256:[0-9a-f]{64}$"'};r===null?r=[h]:r.push(h),a++}}else{let h={instancePath:e+"/resources/"+d+"/digest",schemaPath:"#/$defs/typePackManifestResource/properties/digest/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[h]:r.push(h),a++}}}else{let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackManifestResource/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[f]:r.push(f),a++}}}else{let p={instancePath:e+"/resources",schemaPath:"#/properties/resources/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return ka.errors=r,a===0}function Sa(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=Sa.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.manifest===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"manifest"},message:"must have required property 'manifest'"};r===null?r=[l]:r.push(l),a++}if(n.resources===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"resources"},message:"must have required property 'resources'"};r===null?r=[l]:r.push(l),a++}if(n.provides===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"provides"},message:"must have required property 'provides'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="manifest"||l==="resources"||l==="provides")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.manifest!==void 0&&(ka(n.manifest,{instancePath:e+"/manifest",parentData:n,parentDataProperty:"manifest",rootData:o,dynamicAnchors:s})||(r=r===null?ka.errors:r.concat(ka.errors),a=r.length)),n.resources!==void 0){let l=n.resources;if(Array.isArray(l)){if(l.length>100){let d={instancePath:e+"/resources",schemaPath:"#/properties/resources/maxItems",keyword:"maxItems",params:{limit:100},message:"must NOT have more than 100 items"};r===null?r=[d]:r.push(d),a++}if(l.length<1){let d={instancePath:e+"/resources",schemaPath:"#/properties/resources/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[d]:r.push(d),a++}let p=l.length;for(let d=0;d<p;d++){let u=l[d];if(u&&typeof u=="object"&&!Array.isArray(u)){if(u.source===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackSourceResource/required",keyword:"required",params:{missingProperty:"source"},message:"must have required property 'source'"};r===null?r=[f]:r.push(f),a++}if(u.document===void 0){let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackSourceResource/required",keyword:"required",params:{missingProperty:"document"},message:"must have required property 'document'"};r===null?r=[f]:r.push(f),a++}for(let f in u)if(!(f==="source"||f==="document")){let h={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackSourceResource/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:f},message:"must NOT have additional properties"};r===null?r=[h]:r.push(h),a++}if(u.source!==void 0){let f=u.source;if(typeof f=="string"){if(D(f)>240){let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackSourceResource/properties/source/maxLength",keyword:"maxLength",params:{limit:240},message:"must NOT have more than 240 characters"};r===null?r=[h]:r.push(h),a++}if(D(f)<1){let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackSourceResource/properties/source/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[h]:r.push(h),a++}}else{let h={instancePath:e+"/resources/"+d+"/source",schemaPath:"#/$defs/typePackSourceResource/properties/source/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[h]:r.push(h),a++}}if(u.document!==void 0){let f=u.document;if(typeof f=="string"){if(D(f)>262144){let h={instancePath:e+"/resources/"+d+"/document",schemaPath:"#/$defs/typePackSourceResource/properties/document/maxLength",keyword:"maxLength",params:{limit:262144},message:"must NOT have more than 262144 characters"};r===null?r=[h]:r.push(h),a++}}else{let h={instancePath:e+"/resources/"+d+"/document",schemaPath:"#/$defs/typePackSourceResource/properties/document/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[h]:r.push(h),a++}}}else{let f={instancePath:e+"/resources/"+d,schemaPath:"#/$defs/typePackSourceResource/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[f]:r.push(f),a++}}}else{let p={instancePath:e+"/resources",schemaPath:"#/properties/resources/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}if(n.provides!==void 0){let l=n.provides;if(Array.isArray(l)){if(l.length>20){let f={instancePath:e+"/provides",schemaPath:"#/properties/provides/maxItems",keyword:"maxItems",params:{limit:20},message:"must NOT have more than 20 items"};r===null?r=[f]:r.push(f),a++}let p=l.length;for(let f=0;f<p;f++)Yn(l[f],{instancePath:e+"/provides/"+f,parentData:l,parentDataProperty:f,rootData:o,dynamicAnchors:s})||(r=r===null?Yn.errors:r.concat(Yn.errors),a=r.length);let d=l.length,u;if(d>1){e:for(;d--;)for(u=d;u--;)if(Pn(l[d],l[u])){let f={instancePath:e+"/provides",schemaPath:"#/properties/provides/uniqueItems",keyword:"uniqueItems",params:{i:d,j:u},message:"must NOT have duplicate items (items ## "+u+" and "+d+" are identical)"};r===null?r=[f]:r.push(f),a++;break e}}}else{let p={instancePath:e+"/provides",schemaPath:"#/properties/provides/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return Sa.errors=r,a===0}function Pa(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=Pa.evaluated;if(c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0),n&&typeof n=="object"&&!Array.isArray(n)){if(n.id===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[l]:r.push(l),a++}if(n.event===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"event"},message:"must have required property 'event'"};r===null?r=[l]:r.push(l),a++}if(n.presentation===void 0){let l={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"presentation"},message:"must have required property 'presentation'"};r===null?r=[l]:r.push(l),a++}for(let l in n)if(!(l==="id"||l==="event"||l==="if"||l==="debounce"||l==="minimum_interval"||l==="presentation")){let p={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:l},message:"must NOT have additional properties"};r===null?r=[p]:r.push(p),a++}if(n.id!==void 0){let l=n.id;if(typeof l=="string"){if(D(l)>100){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[p]:r.push(p),a++}if(D(l)<1){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[p]:r.push(p),a++}if(!xa.test(l)){let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/pattern",keyword:"pattern",params:{pattern:"^[a-z0-9]+(?:[._-][a-z0-9]+)*$"},message:'must match pattern "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/id",schemaPath:"#/$defs/identifier/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.event!==void 0&&(Yn(n.event,{instancePath:e+"/event",parentData:n,parentDataProperty:"event",rootData:o,dynamicAnchors:s})||(r=r===null?Yn.errors:r.concat(Yn.errors),a=r.length)),n.if!==void 0){let l=n.if;if(l&&typeof l=="object"&&!Array.isArray(l)){if(l.$expr===void 0){let p={instancePath:e+"/if",schemaPath:"#/properties/if/required",keyword:"required",params:{missingProperty:"$expr"},message:"must have required property '$expr'"};r===null?r=[p]:r.push(p),a++}for(let p in l)if(p!=="$expr"){let d={instancePath:e+"/if",schemaPath:"#/properties/if/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(l.$expr!==void 0){let p=l.$expr;if(typeof p=="string"){if(D(p)>4096){let d={instancePath:e+"/if/$expr",schemaPath:"#/properties/if/properties/%24expr/maxLength",keyword:"maxLength",params:{limit:4096},message:"must NOT have more than 4096 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/if/$expr",schemaPath:"#/properties/if/properties/%24expr/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/if/$expr",schemaPath:"#/properties/if/properties/%24expr/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}}else{let p={instancePath:e+"/if",schemaPath:"#/properties/if/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}}if(n.debounce!==void 0){let l=n.debounce;if(typeof l=="string"){if(!pf.test(l)){let p={instancePath:e+"/debounce",schemaPath:"#/$defs/duration/pattern",keyword:"pattern",params:{pattern:"^[0-9]+(ms|s|m|h|d)$"},message:'must match pattern "^[0-9]+(ms|s|m|h|d)$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/debounce",schemaPath:"#/$defs/duration/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.minimum_interval!==void 0){let l=n.minimum_interval;if(typeof l=="string"){if(!pf.test(l)){let p={instancePath:e+"/minimum_interval",schemaPath:"#/$defs/duration/pattern",keyword:"pattern",params:{pattern:"^[0-9]+(ms|s|m|h|d)$"},message:'must match pattern "^[0-9]+(ms|s|m|h|d)$"'};r===null?r=[p]:r.push(p),a++}}else{let p={instancePath:e+"/minimum_interval",schemaPath:"#/$defs/duration/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[p]:r.push(p),a++}}if(n.presentation!==void 0){let l=n.presentation;if(l&&typeof l=="object"&&!Array.isArray(l)){if(l.title===void 0){let p={instancePath:e+"/presentation",schemaPath:"#/properties/presentation/required",keyword:"required",params:{missingProperty:"title"},message:"must have required property 'title'"};r===null?r=[p]:r.push(p),a++}for(let p in l)if(!(p==="title"||p==="body"||p==="tag")){let d={instancePath:e+"/presentation",schemaPath:"#/properties/presentation/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:p},message:"must NOT have additional properties"};r===null?r=[d]:r.push(d),a++}if(l.title!==void 0){let p=l.title;if(typeof p=="string"){if(D(p)>80){let d={instancePath:e+"/presentation/title",schemaPath:"#/properties/presentation/properties/title/maxLength",keyword:"maxLength",params:{limit:80},message:"must NOT have more than 80 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/presentation/title",schemaPath:"#/properties/presentation/properties/title/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/presentation/title",schemaPath:"#/properties/presentation/properties/title/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(l.body!==void 0){let p=l.body;if(typeof p=="string"){if(D(p)>160){let d={instancePath:e+"/presentation/body",schemaPath:"#/properties/presentation/properties/body/maxLength",keyword:"maxLength",params:{limit:160},message:"must NOT have more than 160 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/presentation/body",schemaPath:"#/properties/presentation/properties/body/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}if(l.tag!==void 0){let p=l.tag;if(typeof p=="string"){if(D(p)>80){let d={instancePath:e+"/presentation/tag",schemaPath:"#/properties/presentation/properties/tag/maxLength",keyword:"maxLength",params:{limit:80},message:"must NOT have more than 80 characters"};r===null?r=[d]:r.push(d),a++}if(D(p)<1){let d={instancePath:e+"/presentation/tag",schemaPath:"#/properties/presentation/properties/tag/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[d]:r.push(d),a++}}else{let d={instancePath:e+"/presentation/tag",schemaPath:"#/properties/presentation/properties/tag/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[d]:r.push(d),a++}}}else{let p={instancePath:e+"/presentation",schemaPath:"#/properties/presentation/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[p]:r.push(p),a++}}}else{let l={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[l]:r.push(l),a++}return Pa.errors=r,a===0}function uf(n,{instancePath:e="",parentData:t,parentDataProperty:i,rootData:o=n,dynamicAnchors:s={}}={}){let r=null,a=0,c=uf.evaluated;c.dynamicProps&&(c.props=void 0),c.dynamicItems&&(c.items=void 0);let l=a,p=!1,d=null,u=a;if(n&&typeof n=="object"&&!Array.isArray(n)){if(n.homepage===void 0){let g={instancePath:e,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:"homepage"},message:"must have required property 'homepage'"};r===null?r=[g]:r.push(g),a++}if(n.redirect_uris===void 0){let g={instancePath:e,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:"redirect_uris"},message:"must have required property 'redirect_uris'"};r===null?r=[g]:r.push(g),a++}if(n.distribution!==void 0&&n.distribution!=="web"){let g={instancePath:e+"/distribution",schemaPath:"#/oneOf/0/properties/distribution/const",keyword:"const",params:{allowedValue:"web"},message:"must be equal to constant"};r===null?r=[g]:r.push(g),a++}if(n.project_url!==void 0){let g={instancePath:e+"/project_url",schemaPath:"#/oneOf/0/properties/project_url/false schema",keyword:"false schema",params:{},message:"boolean schema is false"};r===null?r=[g]:r.push(g),a++}}var m=u===a;if(m){p=!0,d=0;var f={};f.distribution=!0,f.homepage=!0,f.redirect_uris=!0,f.project_url=!0}let h=a;if(n&&typeof n=="object"&&!Array.isArray(n)){if(n.distribution===void 0){let g={instancePath:e,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty:"distribution"},message:"must have required property 'distribution'"};r===null?r=[g]:r.push(g),a++}if(n.distribution!==void 0&&n.distribution!=="portable"){let g={instancePath:e+"/distribution",schemaPath:"#/oneOf/1/properties/distribution/const",keyword:"const",params:{allowedValue:"portable"},message:"must be equal to constant"};r===null?r=[g]:r.push(g),a++}if(n.platform!==void 0){let g={instancePath:e+"/platform",schemaPath:"#/oneOf/1/properties/platform/false schema",keyword:"false schema",params:{},message:"boolean schema is false"};r===null?r=[g]:r.push(g),a++}if(n.homepage!==void 0){let g={instancePath:e+"/homepage",schemaPath:"#/oneOf/1/properties/homepage/false schema",keyword:"false schema",params:{},message:"boolean schema is false"};r===null?r=[g]:r.push(g),a++}if(n.redirect_uris!==void 0){let g={instancePath:e+"/redirect_uris",schemaPath:"#/oneOf/1/properties/redirect_uris/false schema",keyword:"false schema",params:{},message:"boolean schema is false"};r===null?r=[g]:r.push(g),a++}}var m=h===a;if(m&&p?(p=!1,d=[d,1]):m&&(p=!0,d=1,f!==!0&&(f=f||{},f.distribution=!0,f.platform=!0,f.homepage=!0,f.redirect_uris=!0)),p)a=l,r!==null&&(l?r.length=l:r=null);else{let g={instancePath:e,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas:d},message:"must match exactly one schema in oneOf"};r===null?r=[g]:r.push(g),a++}if(n&&typeof n=="object"&&!Array.isArray(n)){if(n.manifest_version===void 0){let g={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"manifest_version"},message:"must have required property 'manifest_version'"};r===null?r=[g]:r.push(g),a++}if(n.id===void 0){let g={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"id"},message:"must have required property 'id'"};r===null?r=[g]:r.push(g),a++}if(n.name===void 0){let g={instancePath:e,schemaPath:"#/required",keyword:"required",params:{missingProperty:"name"},message:"must have required property 'name'"};r===null?r=[g]:r.push(g),a++}for(let g in n)if(!MS.call(RS.properties,g)){let y={instancePath:e,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:g},message:"must NOT have additional properties"};r===null?r=[y]:r.push(y),a++}if(n.manifest_version!==void 0&&n.manifest_version!==1){let g={instancePath:e+"/manifest_version",schemaPath:"#/properties/manifest_version/const",keyword:"const",params:{allowedValue:1},message:"must be equal to constant"};r===null?r=[g]:r.push(g),a++}if(n.distribution!==void 0){let g=n.distribution;if(!(g==="web"||g==="portable")){let y={instancePath:e+"/distribution",schemaPath:"#/properties/distribution/enum",keyword:"enum",params:{allowedValues:RS.properties.distribution.enum},message:"must be equal to one of the allowed values"};r===null?r=[y]:r.push(y),a++}}if(n.id!==void 0){let g=n.id;if(typeof g=="string"){if(D(g)>150){let y={instancePath:e+"/id",schemaPath:"#/properties/id/maxLength",keyword:"maxLength",params:{limit:150},message:"must NOT have more than 150 characters"};r===null?r=[y]:r.push(y),a++}if(D(g)<5){let y={instancePath:e+"/id",schemaPath:"#/properties/id/minLength",keyword:"minLength",params:{limit:5},message:"must NOT have fewer than 5 characters"};r===null?r=[y]:r.push(y),a++}if(!LS.test(g)){let y={instancePath:e+"/id",schemaPath:"#/properties/id/pattern",keyword:"pattern",params:{pattern:"^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*){2,}$"},message:'must match pattern "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*){2,}$"'};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/id",schemaPath:"#/properties/id/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.name!==void 0){let g=n.name;if(typeof g=="string"){if(D(g)>100){let y={instancePath:e+"/name",schemaPath:"#/properties/name/maxLength",keyword:"maxLength",params:{limit:100},message:"must NOT have more than 100 characters"};r===null?r=[y]:r.push(y),a++}if(D(g)<1){let y={instancePath:e+"/name",schemaPath:"#/properties/name/minLength",keyword:"minLength",params:{limit:1},message:"must NOT have fewer than 1 characters"};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.platform!==void 0&&n.platform!=="native"){let g={instancePath:e+"/platform",schemaPath:"#/properties/platform/const",keyword:"const",params:{allowedValue:"native"},message:"must be equal to constant"};r===null?r=[g]:r.push(g),a++}if(n.homepage!==void 0){let g=n.homepage;if(typeof g=="string"){if(!Jr.test(g)){let y={instancePath:e+"/homepage",schemaPath:"#/properties/homepage/pattern",keyword:"pattern",params:{pattern:"^https://"},message:'must match pattern "^https://"'};r===null?r=[y]:r.push(y),a++}if(!hn(g)){let y={instancePath:e+"/homepage",schemaPath:"#/properties/homepage/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/homepage",schemaPath:"#/properties/homepage/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.project_url!==void 0){let g=n.project_url;if(typeof g=="string"){if(!Jr.test(g)){let y={instancePath:e+"/project_url",schemaPath:"#/properties/project_url/pattern",keyword:"pattern",params:{pattern:"^https://"},message:'must match pattern "^https://"'};r===null?r=[y]:r.push(y),a++}if(!hn(g)){let y={instancePath:e+"/project_url",schemaPath:"#/properties/project_url/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/project_url",schemaPath:"#/properties/project_url/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.icon!==void 0){let g=n.icon;if(typeof g=="string"){if(!Jr.test(g)){let y={instancePath:e+"/icon",schemaPath:"#/properties/icon/pattern",keyword:"pattern",params:{pattern:"^https://"},message:'must match pattern "^https://"'};r===null?r=[y]:r.push(y),a++}if(!hn(g)){let y={instancePath:e+"/icon",schemaPath:"#/properties/icon/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[y]:r.push(y),a++}}else{let y={instancePath:e+"/icon",schemaPath:"#/properties/icon/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[y]:r.push(y),a++}}if(n.redirect_uris!==void 0){let g=n.redirect_uris;if(Array.isArray(g)){if(g.length>10){let k={instancePath:e+"/redirect_uris",schemaPath:"#/properties/redirect_uris/maxItems",keyword:"maxItems",params:{limit:10},message:"must NOT have more than 10 items"};r===null?r=[k]:r.push(k),a++}if(g.length<1){let k={instancePath:e+"/redirect_uris",schemaPath:"#/properties/redirect_uris/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};r===null?r=[k]:r.push(k),a++}let y=g.length;for(let k=0;k<y;k++){let S=g[k];if(typeof S=="string"){if(!hn(S)){let x={instancePath:e+"/redirect_uris/"+k,schemaPath:"#/properties/redirect_uris/items/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[x]:r.push(x),a++}}else{let x={instancePath:e+"/redirect_uris/"+k,schemaPath:"#/properties/redirect_uris/items/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[x]:r.push(x),a++}}let v=g.length,_;if(v>1){let k={};for(;v--;){let S=g[v];if(typeof S=="string"){if(typeof k[S]=="number"){_=k[S];let x={instancePath:e+"/redirect_uris",schemaPath:"#/properties/redirect_uris/uniqueItems",keyword:"uniqueItems",params:{i:v,j:_},message:"must NOT have duplicate items (items ## "+_+" and "+v+" are identical)"};r===null?r=[x]:r.push(x),a++;break}k[S]=v}}}}else{let y={instancePath:e+"/redirect_uris",schemaPath:"#/properties/redirect_uris/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[y]:r.push(y),a++}}if(n.installation_origins!==void 0){let g=n.installation_origins;if(g&&typeof g=="object"&&!Array.isArray(g)){for(let y in g)if(!(y==="lab"||y==="staging"||y==="production")){let v={instancePath:e+"/installation_origins",schemaPath:"#/properties/installation_origins/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:y},message:"must NOT have additional properties"};r===null?r=[v]:r.push(v),a++}g.lab!==void 0&&(Hn(g.lab,{instancePath:e+"/installation_origins/lab",parentData:g,parentDataProperty:"lab",rootData:o,dynamicAnchors:s})||(r=r===null?Hn.errors:r.concat(Hn.errors),a=r.length)),g.staging!==void 0&&(Hn(g.staging,{instancePath:e+"/installation_origins/staging",parentData:g,parentDataProperty:"staging",rootData:o,dynamicAnchors:s})||(r=r===null?Hn.errors:r.concat(Hn.errors),a=r.length)),g.production!==void 0&&(Hn(g.production,{instancePath:e+"/installation_origins/production",parentData:g,parentDataProperty:"production",rootData:o,dynamicAnchors:s})||(r=r===null?Hn.errors:r.concat(Hn.errors),a=r.length))}else{let y={instancePath:e+"/installation_origins",schemaPath:"#/properties/installation_origins/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[y]:r.push(y),a++}}if(n.requirements!==void 0&&(_a(n.requirements,{instancePath:e+"/requirements",parentData:n,parentDataProperty:"requirements",rootData:o,dynamicAnchors:s})||(r=r===null?_a.errors:r.concat(_a.errors),a=r.length)),n.provisions!==void 0){let g=n.provisions;if(g&&typeof g=="object"&&!Array.isArray(g)){if(g.type_packs===void 0){let y={instancePath:e+"/provisions",schemaPath:"#/properties/provisions/required",keyword:"required",params:{missingProperty:"type_packs"},message:"must have required property 'type_packs'"};r===null?r=[y]:r.push(y),a++}for(let y in g)if(!(y==="configuration"||y==="type_packs")){let v={instancePath:e+"/provisions",schemaPath:"#/properties/provisions/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:y},message:"must NOT have additional properties"};r===null?r=[v]:r.push(v),a++}if(g.configuration!==void 0){let y=g.configuration;if(Array.isArray(y)){if(y.length>50){let _={instancePath:e+"/provisions/configuration",schemaPath:"#/properties/provisions/properties/configuration/maxItems",keyword:"maxItems",params:{limit:50},message:"must NOT have more than 50 items"};r===null?r=[_]:r.push(_),a++}let v=y.length;for(let _=0;_<v;_++)Aa(y[_],{instancePath:e+"/provisions/configuration/"+_,parentData:y,parentDataProperty:_,rootData:o,dynamicAnchors:s})||(r=r===null?Aa.errors:r.concat(Aa.errors),a=r.length)}else{let v={instancePath:e+"/provisions/configuration",schemaPath:"#/properties/provisions/properties/configuration/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[v]:r.push(v),a++}}if(g.type_packs!==void 0){let y=g.type_packs;if(Array.isArray(y)){if(y.length>20){let _={instancePath:e+"/provisions/type_packs",schemaPath:"#/properties/provisions/properties/type_packs/maxItems",keyword:"maxItems",params:{limit:20},message:"must NOT have more than 20 items"};r===null?r=[_]:r.push(_),a++}let v=y.length;for(let _=0;_<v;_++)Sa(y[_],{instancePath:e+"/provisions/type_packs/"+_,parentData:y,parentDataProperty:_,rootData:o,dynamicAnchors:s})||(r=r===null?Sa.errors:r.concat(Sa.errors),a=r.length)}else{let v={instancePath:e+"/provisions/type_packs",schemaPath:"#/properties/provisions/properties/type_packs/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[v]:r.push(v),a++}}}else{let y={instancePath:e+"/provisions",schemaPath:"#/properties/provisions/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[y]:r.push(y),a++}}if(n.notifications!==void 0){let g=n.notifications;if(g&&typeof g=="object"&&!Array.isArray(g)){if(g.criteria===void 0){let y={instancePath:e+"/notifications",schemaPath:"#/properties/notifications/required",keyword:"required",params:{missingProperty:"criteria"},message:"must have required property 'criteria'"};r===null?r=[y]:r.push(y),a++}for(let y in g)if(!(y==="criteria"||y==="native_delivery")){let v={instancePath:e+"/notifications",schemaPath:"#/properties/notifications/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:y},message:"must NOT have additional properties"};r===null?r=[v]:r.push(v),a++}if(g.criteria!==void 0){let y=g.criteria;if(Array.isArray(y)){if(y.length>50){let _={instancePath:e+"/notifications/criteria",schemaPath:"#/properties/notifications/properties/criteria/maxItems",keyword:"maxItems",params:{limit:50},message:"must NOT have more than 50 items"};r===null?r=[_]:r.push(_),a++}let v=y.length;for(let _=0;_<v;_++)Pa(y[_],{instancePath:e+"/notifications/criteria/"+_,parentData:y,parentDataProperty:_,rootData:o,dynamicAnchors:s})||(r=r===null?Pa.errors:r.concat(Pa.errors),a=r.length)}else{let v={instancePath:e+"/notifications/criteria",schemaPath:"#/properties/notifications/properties/criteria/type",keyword:"type",params:{type:"array"},message:"must be array"};r===null?r=[v]:r.push(v),a++}}if(g.native_delivery!==void 0){let y=g.native_delivery,v=a,_=!1,k=null,S=a;if(y&&typeof y=="object"&&!Array.isArray(y)){if(y.mode===void 0){let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/required",keyword:"required",params:{missingProperty:"mode"},message:"must have required property 'mode'"};r===null?r=[P]:r.push(P),a++}if(y.firebase_project_id===void 0){let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/required",keyword:"required",params:{missingProperty:"firebase_project_id"},message:"must have required property 'firebase_project_id'"};r===null?r=[P]:r.push(P),a++}for(let P in y)if(!(P==="mode"||P==="firebase_project_id")){let C={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:P},message:"must NOT have additional properties"};r===null?r=[C]:r.push(C),a++}if(y.mode!==void 0&&y.mode!=="managed_fcm"){let P={instancePath:e+"/notifications/native_delivery/mode",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/mode/const",keyword:"const",params:{allowedValue:"managed_fcm"},message:"must be equal to constant"};r===null?r=[P]:r.push(P),a++}if(y.firebase_project_id!==void 0){let P=y.firebase_project_id;if(typeof P=="string"){if(D(P)>63){let C={instancePath:e+"/notifications/native_delivery/firebase_project_id",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/firebase_project_id/maxLength",keyword:"maxLength",params:{limit:63},message:"must NOT have more than 63 characters"};r===null?r=[C]:r.push(C),a++}if(D(P)<6){let C={instancePath:e+"/notifications/native_delivery/firebase_project_id",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/firebase_project_id/minLength",keyword:"minLength",params:{limit:6},message:"must NOT have fewer than 6 characters"};r===null?r=[C]:r.push(C),a++}if(!jS.test(P)){let C={instancePath:e+"/notifications/native_delivery/firebase_project_id",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/firebase_project_id/pattern",keyword:"pattern",params:{pattern:"^[a-z][a-z0-9-]*[a-z0-9]$"},message:'must match pattern "^[a-z][a-z0-9-]*[a-z0-9]$"'};r===null?r=[C]:r.push(C),a++}}else{let C={instancePath:e+"/notifications/native_delivery/firebase_project_id",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/properties/firebase_project_id/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[C]:r.push(C),a++}}}else{let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[P]:r.push(P),a++}var w=S===a;if(w){_=!0,k=0;var b=!0}let x=a;if(y&&typeof y=="object"&&!Array.isArray(y)){if(y.mode===void 0){let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/required",keyword:"required",params:{missingProperty:"mode"},message:"must have required property 'mode'"};r===null?r=[P]:r.push(P),a++}if(y.url===void 0){let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/required",keyword:"required",params:{missingProperty:"url"},message:"must have required property 'url'"};r===null?r=[P]:r.push(P),a++}for(let P in y)if(!(P==="mode"||P==="url")){let C={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:P},message:"must NOT have additional properties"};r===null?r=[C]:r.push(C),a++}if(y.mode!==void 0&&y.mode!=="webhook"){let P={instancePath:e+"/notifications/native_delivery/mode",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/properties/mode/const",keyword:"const",params:{allowedValue:"webhook"},message:"must be equal to constant"};r===null?r=[P]:r.push(P),a++}if(y.url!==void 0){let P=y.url;if(typeof P=="string"){if(!Jr.test(P)){let C={instancePath:e+"/notifications/native_delivery/url",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/properties/url/pattern",keyword:"pattern",params:{pattern:"^https://"},message:'must match pattern "^https://"'};r===null?r=[C]:r.push(C),a++}if(!hn(P)){let C={instancePath:e+"/notifications/native_delivery/url",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/properties/url/format",keyword:"format",params:{format:"uri"},message:'must match format "uri"'};r===null?r=[C]:r.push(C),a++}}else{let C={instancePath:e+"/notifications/native_delivery/url",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/properties/url/type",keyword:"type",params:{type:"string"},message:"must be string"};r===null?r=[C]:r.push(C),a++}}}else{let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[P]:r.push(P),a++}var w=x===a;if(w&&_?(_=!1,k=[k,1]):w&&(_=!0,k=1,b!==!0&&(b=!0)),_)a=v,r!==null&&(v?r.length=v:r=null);else{let P={instancePath:e+"/notifications/native_delivery",schemaPath:"#/$defs/nativeNotificationDelivery/oneOf",keyword:"oneOf",params:{passingSchemas:k},message:"must match exactly one schema in oneOf"};r===null?r=[P]:r.push(P),a++}}}else{let y={instancePath:e+"/notifications",schemaPath:"#/properties/notifications/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[y]:r.push(y),a++}}}else{let g={instancePath:e,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};r===null?r=[g]:r.push(g),a++}return uf.errors=r,a===0}var TS,PS,MS,D,LS,Jr,jS,hn,xS,CS,Pn,IS,NS,ff,xa,hf,da,US,OS,pf,DS,RS,ES,aE,qS,$S=I(()=>{"use strict";TS=df,PS={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://mdbase.dev/connect/schemas/mdbase-app.v1.json",title:"mdbase connect bundled application manifest v1",type:"object",additionalProperties:!1,required:["manifest_version","id","name"],properties:{manifest_version:{const:1},distribution:{enum:["web","portable"],description:"Portable declarations use device authorization and do not claim a browser origin."},id:{type:"string",minLength:5,maxLength:150,pattern:"^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*){2,}$",description:"Stable reverse-domain application identifier. This is presentation metadata, not publisher authentication."},name:{type:"string",minLength:1,maxLength:100},platform:{const:"native",description:"Unverified native app; permits literal IPv4 loopback HTTP on any port."},homepage:{type:"string",format:"uri",pattern:"^https://"},project_url:{type:"string",format:"uri",pattern:"^https://"},icon:{type:"string",format:"uri",pattern:"^https://"},redirect_uris:{type:"array",minItems:1,maxItems:10,uniqueItems:!0,items:{type:"string",format:"uri",description:"An HTTPS URI on the homepage origin or a private-use scheme derived from the application ID."}},installation_origins:{type:"object",additionalProperties:!1,properties:{lab:{$ref:"#/$defs/installationOriginPolicy"},staging:{$ref:"#/$defs/installationOriginPolicy"},production:{$ref:"#/$defs/installationOriginPolicy"}}},requirements:{$ref:"#/$defs/requirements"},provisions:{type:"object",additionalProperties:!1,required:["type_packs"],properties:{configuration:{type:"array",maxItems:50,items:{$ref:"#/$defs/configurationProvision"}},type_packs:{type:"array",maxItems:20,items:{$ref:"#/$defs/typePackProvision"}}}},notifications:{type:"object",additionalProperties:!1,required:["criteria"],properties:{criteria:{type:"array",maxItems:50,items:{$ref:"#/$defs/notificationCriterion"}},native_delivery:{$ref:"#/$defs/nativeNotificationDelivery"}}}},oneOf:[{required:["homepage","redirect_uris"],properties:{distribution:{const:"web"},homepage:!0,redirect_uris:!0,project_url:!1}},{required:["distribution"],properties:{distribution:{const:"portable"},platform:!1,homepage:!1,redirect_uris:!1}}],$defs:{installationOriginPolicy:{type:"object",additionalProperties:!1,properties:{"app-runtime":{$ref:"#/$defs/installationOrigins"},mobile:{$ref:"#/$defs/installationOrigins"}}},installationOrigins:{type:"array",maxItems:16,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:255,format:"uri"}},identifier:{type:"string",minLength:1,maxLength:100,pattern:"^[a-z0-9]+(?:[._-][a-z0-9]+)*$"},duration:{type:"string",pattern:"^[0-9]+(ms|s|m|h|d)$"},contract:{type:"object",additionalProperties:!1,required:["id","version","digest"],properties:{id:{$ref:"#/$defs/identifier"},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"},digest:{type:"string",pattern:"^sha256:[0-9a-f]{64}$"}}},requirements:{type:"object",additionalProperties:!1,required:["access","contracts"],properties:{capabilities:{$ref:"#/$defs/capabilityRequirements"},access:{const:"full_collection",description:"Compatibility declaration for collection-level application authorization."},collection_kind:{const:"hosted",description:"Require a durable provider-backed collection with direct sync support."},people:{type:"object",additionalProperties:!1,required:["version"],anyOf:[{required:["required"]},{required:["optional"]}],properties:{version:{const:1},required:{$ref:"#/$defs/peoplePermissions"},optional:{$ref:"#/$defs/peoplePermissions"}}},files:{$ref:"#/$defs/fileRequirement"},configuration:{type:"array",maxItems:50,items:{$ref:"#/$defs/configurationRequirement"}},contracts:{type:"array",maxItems:20,uniqueItems:!0,items:{$ref:"#/$defs/contract"}}}},capabilityRequirements:{type:"object",additionalProperties:!1,required:["contract_version","required"],properties:{contract_version:{const:2},required:{type:"array",maxItems:32,uniqueItems:!0,items:{$ref:"#/$defs/applicationCapability"}},optional:{type:"array",maxItems:32,uniqueItems:!0,items:{$ref:"#/$defs/applicationCapability"}}}},configurationValue:{anyOf:[{type:"string"},{type:"number"},{type:"boolean"},{type:"null"}]},configurationRequirement:{type:"object",additionalProperties:!1,required:["id","path","predicate","value"],properties:{id:{type:"string",minLength:1,maxLength:100,pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},path:{type:"string",minLength:1,maxLength:1024},predicate:{const:"contains"},value:{$ref:"#/$defs/configurationValue"}}},configurationProvision:{type:"object",additionalProperties:!1,required:["requirement","operation","path","value"],properties:{requirement:{type:"string",minLength:1,maxLength:100,pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},operation:{const:"set_add"},path:{type:"string",minLength:1,maxLength:1024},value:{$ref:"#/$defs/configurationValue"}}},applicationCapability:{enum:["collection.read","records.create","records.edit","records.delete","views.manage","definitions.manage","background.schedule","offline.replica"]},peoplePermissions:{type:"array",minItems:1,uniqueItems:!0,items:{enum:["identity","members"]}},fileRequirement:{type:"object",additionalProperties:!1,required:["required","scope"],properties:{required:{$ref:"#/$defs/fileActions"},optional:{$ref:"#/$defs/fileActions"},scope:{$ref:"#/$defs/fileScope"}}},fileActions:{type:"array",minItems:1,maxItems:6,uniqueItems:!0,items:{enum:["list","read","add","replace","move","delete"]}},fileScope:{oneOf:[{type:"object",additionalProperties:!1,required:["kind","folders"],properties:{kind:{const:"selected_folders"},folders:{type:"array",minItems:1,maxItems:100,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:1024,pattern:"^(?!/)(?!\\.)(?!.*//)(?!.*\\\\)(?!.*/\\.)(?!(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*\\/(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*/$).+$"}}}},{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"collection"}}}]},typePackProvision:{type:"object",additionalProperties:!1,required:["manifest","resources","provides"],properties:{manifest:{$ref:"#/$defs/typePackManifest"},resources:{type:"array",minItems:1,maxItems:100,items:{$ref:"#/$defs/typePackSourceResource"}},provides:{type:"array",maxItems:20,uniqueItems:!0,items:{$ref:"#/$defs/contract"}}}},typePackManifest:{type:"object",required:["kind","id","version","resources"],properties:{kind:{const:"mdbase.type-pack"},id:{$ref:"#/$defs/identifier"},version:{$ref:"#/$defs/contract/properties/version"},name:{type:"string",minLength:1,maxLength:100},description:{type:"string",maxLength:500},resources:{type:"array",minItems:1,maxItems:100,items:{$ref:"#/$defs/typePackManifestResource"}}},patternProperties:{"^x-[A-Za-z][A-Za-z0-9._:-]{0,127}$":!0},additionalProperties:!1},typePackManifestResource:{type:"object",additionalProperties:!1,required:["kind","mode","source","target","digest"],properties:{kind:{enum:["contract","type","schema"]},mode:{enum:["managed","seed"]},upgrade_from:{oneOf:[{$ref:"#/$defs/typePackUpgradeBaseline"},{type:"array",minItems:1,items:{$ref:"#/$defs/typePackUpgradeBaseline"}}]},source:{type:"string",minLength:1,maxLength:240},target:{type:"string",minLength:1,maxLength:240},digest:{type:"string",pattern:"^sha256:[0-9a-f]{64}$"}}},typePackUpgradeBaseline:{type:"object",additionalProperties:!1,required:["digest","document"],properties:{digest:{type:"string",pattern:"^sha256:[0-9a-f]{64}$"},document:{type:"string",maxLength:262144},version:{type:"integer",minimum:1}}},typePackSourceResource:{type:"object",additionalProperties:!1,required:["source","document"],properties:{source:{type:"string",minLength:1,maxLength:240},document:{type:"string",maxLength:262144}}},notificationCriterion:{type:"object",additionalProperties:!1,required:["id","event","presentation"],properties:{id:{$ref:"#/$defs/identifier"},event:{$ref:"#/$defs/contract"},if:{type:"object",additionalProperties:!1,required:["$expr"],properties:{$expr:{type:"string",minLength:1,maxLength:4096}}},debounce:{$ref:"#/$defs/duration"},minimum_interval:{$ref:"#/$defs/duration"},presentation:{type:"object",additionalProperties:!1,required:["title"],properties:{title:{type:"string",minLength:1,maxLength:80},body:{type:"string",maxLength:160},tag:{type:"string",minLength:1,maxLength:80}}}}},nativeNotificationDelivery:{oneOf:[{type:"object",additionalProperties:!1,required:["mode","firebase_project_id"],properties:{mode:{const:"managed_fcm"},firebase_project_id:{type:"string",minLength:6,maxLength:63,pattern:"^[a-z][a-z0-9-]*[a-z0-9]$"}}},{type:"object",additionalProperties:!1,required:["mode","url"],properties:{mode:{const:"webhook"},url:{type:"string",format:"uri",pattern:"^https://"}}}]}}},MS=Object.prototype.hasOwnProperty,D=(function(e){let t=e.length,i=0,o=0,s;for(;o<t;)i++,s=e.charCodeAt(o++),s>=55296&&s<=56319&&o<t&&(s=e.charCodeAt(o),(s&64512)===56320&&o++);return i}),LS=new RegExp("^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*){2,}$","u"),Jr=new RegExp("^https://","u"),jS=new RegExp("^[a-z][a-z0-9-]*[a-z0-9]$","u"),hn=(()=>{let n=/\/|:/,e=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;return function(i){return n.test(i)&&e.test(i)}})();Wn.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};xS={type:"array",minItems:1,uniqueItems:!0,items:{enum:["identity","members"]}},CS={enum:["collection.read","records.create","records.edit","records.delete","views.manage","definitions.manage","background.schedule","offline.replica"]},Pn=(function n(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var i,o,s;if(Array.isArray(e)){if(i=e.length,i!=t.length)return!1;for(o=i;o--!==0;)if(!n(e[o],t[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(s=Object.keys(e),i=s.length,i!==Object.keys(t).length)return!1;for(o=i;o--!==0;)if(!Object.prototype.hasOwnProperty.call(t,s[o]))return!1;for(o=i;o--!==0;){var r=s[o];if(!n(e[r],t[r]))return!1}return!0}return e!==e&&t!==t});la.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};IS={type:"array",minItems:1,maxItems:6,uniqueItems:!0,items:{enum:["list","read","add","replace","move","delete"]}},NS=new RegExp("^(?!/)(?!\\.)(?!.*//)(?!.*\\\\)(?!.*/\\.)(?!(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*\\/(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*/$).+$","u");ca.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};ff=new RegExp("^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$","u");pa.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};xa=new RegExp("^[a-z0-9]+(?:[._-][a-z0-9]+)*$","u"),hf=new RegExp("^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$","u"),da=new RegExp("^sha256:[0-9a-f]{64}$","u");Gn.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};ua.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};fa.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};US=new RegExp("^x-[A-Za-z][A-Za-z0-9._:-]{0,127}$","u"),OS={type:"object",additionalProperties:!1,required:["kind","mode","source","target","digest"],properties:{kind:{enum:["contract","type","schema"]},mode:{enum:["managed","seed"]},upgrade_from:{oneOf:[{$ref:"#/$defs/typePackUpgradeBaseline"},{type:"array",minItems:1,items:{$ref:"#/$defs/typePackUpgradeBaseline"}}]},source:{type:"string",minLength:1,maxLength:240},target:{type:"string",minLength:1,maxLength:240},digest:{type:"string",pattern:"^sha256:[0-9a-f]{64}$"}}};ha.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};ma.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};ya.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};pf=new RegExp("^[0-9]+(ms|s|m|h|d)$","u");ga.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};df.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};DS=uf,RS={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://mdbase.dev/connect/schemas/mdbase-app.legacy-v1.json",title:"mdbase connect bundled application manifest v1",type:"object",additionalProperties:!1,required:["manifest_version","id","name"],properties:{manifest_version:{const:1},distribution:{enum:["web","portable"],description:"Portable declarations use device authorization and do not claim a browser origin."},id:{type:"string",minLength:5,maxLength:150,pattern:"^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*){2,}$",description:"Stable reverse-domain application identifier. This is presentation metadata, not publisher authentication."},name:{type:"string",minLength:1,maxLength:100},platform:{const:"native",description:"Unverified native app; permits literal IPv4 loopback HTTP on any port."},homepage:{type:"string",format:"uri",pattern:"^https://"},project_url:{type:"string",format:"uri",pattern:"^https://"},icon:{type:"string",format:"uri",pattern:"^https://"},redirect_uris:{type:"array",minItems:1,maxItems:10,uniqueItems:!0,items:{type:"string",format:"uri",description:"An HTTPS URI on the homepage origin or a private-use scheme derived from the application ID."}},installation_origins:{type:"object",additionalProperties:!1,properties:{lab:{$ref:"#/$defs/installationOriginPolicy"},staging:{$ref:"#/$defs/installationOriginPolicy"},production:{$ref:"#/$defs/installationOriginPolicy"}}},requirements:{$ref:"#/$defs/requirements"},provisions:{type:"object",additionalProperties:!1,required:["type_packs"],properties:{configuration:{type:"array",maxItems:50,items:{$ref:"#/$defs/configurationProvision"}},type_packs:{type:"array",maxItems:20,items:{$ref:"#/$defs/typePackProvision"}}}},notifications:{type:"object",additionalProperties:!1,required:["criteria"],properties:{criteria:{type:"array",maxItems:50,items:{$ref:"#/$defs/notificationCriterion"}},native_delivery:{$ref:"#/$defs/nativeNotificationDelivery"}}}},oneOf:[{required:["homepage","redirect_uris"],properties:{distribution:{const:"web"},homepage:!0,redirect_uris:!0,project_url:!1}},{required:["distribution"],properties:{distribution:{const:"portable"},platform:!1,homepage:!1,redirect_uris:!1}}],$defs:{installationOriginPolicy:{type:"object",additionalProperties:!1,properties:{"app-runtime":{$ref:"#/$defs/installationOrigins"},mobile:{$ref:"#/$defs/installationOrigins"}}},installationOrigins:{type:"array",maxItems:16,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:255,format:"uri"}},identifier:{type:"string",minLength:1,maxLength:100,pattern:"^[a-z0-9]+(?:[._-][a-z0-9]+)*$"},duration:{type:"string",pattern:"^[0-9]+(ms|s|m|h|d)$"},contract:{type:"object",additionalProperties:!1,required:["id","version","digest"],properties:{id:{$ref:"#/$defs/identifier"},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"},digest:{type:"string",pattern:"^sha256:[0-9a-f]{64}$"}}},requirements:{type:"object",additionalProperties:!1,required:["access","contracts"],properties:{capabilities:{$ref:"#/$defs/capabilityRequirements"},access:{const:"full_collection",description:"Compatibility declaration for collection-level application authorization."},collection_kind:{const:"hosted",description:"Require a durable provider-backed collection with direct sync support."},files:{$ref:"#/$defs/fileRequirement"},configuration:{type:"array",maxItems:50,items:{$ref:"#/$defs/configurationRequirement"}},contracts:{type:"array",maxItems:20,uniqueItems:!0,items:{$ref:"#/$defs/contract"}}}},capabilityRequirements:{type:"object",additionalProperties:!1,required:["contract_version","required"],properties:{contract_version:{const:1},required:{type:"array",maxItems:32,uniqueItems:!0,items:{$ref:"#/$defs/applicationCapability"}},optional:{type:"array",maxItems:32,uniqueItems:!0,items:{$ref:"#/$defs/applicationCapability"}}}},configurationValue:{anyOf:[{type:"string"},{type:"number"},{type:"boolean"},{type:"null"}]},configurationRequirement:{type:"object",additionalProperties:!1,required:["id","path","predicate","value"],properties:{id:{type:"string",minLength:1,maxLength:100,pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},path:{type:"string",minLength:1,maxLength:1024},predicate:{const:"contains"},value:{$ref:"#/$defs/configurationValue"}}},configurationProvision:{type:"object",additionalProperties:!1,required:["requirement","operation","path","value"],properties:{requirement:{type:"string",minLength:1,maxLength:100,pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},operation:{const:"set_add"},path:{type:"string",minLength:1,maxLength:1024},value:{$ref:"#/$defs/configurationValue"}}},applicationCapability:{enum:["collection.inspect","records.watch","records.read","records.query","records.validate","records.create","records.update","records.delete","records.rename","views.list","views.execute","views.source.read","views.source.create","views.source.update","views.source.delete","definitions.contracts.current","definitions.read","definitions.create","definitions.update","definitions.type-pack.inspect","definitions.type-pack.apply","collection.setup.apply","timers.list","timers.put","timers.cancel","timers.reconcile","sync.offline-replica","notifications.background-delivery","files.list","files.read","files.add","files.replace","files.move","files.delete"]},fileRequirement:{type:"object",additionalProperties:!1,required:["actions","scope"],properties:{actions:{type:"array",minItems:1,maxItems:6,uniqueItems:!0,items:{enum:["list","read","add","replace","move","delete"]}},scope:{$ref:"#/$defs/fileScope"}}},fileScope:{oneOf:[{type:"object",additionalProperties:!1,required:["kind","folders"],properties:{kind:{const:"selected_folders"},folders:{type:"array",minItems:1,maxItems:100,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:1024,pattern:"^(?!/)(?!\\.)(?!.*//)(?!.*\\\\)(?!.*/\\.)(?!(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*\\/(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*/$).+$"}}}},{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"collection"}}}]},typePackProvision:{type:"object",additionalProperties:!1,required:["manifest","resources","provides"],properties:{manifest:{$ref:"#/$defs/typePackManifest"},resources:{type:"array",minItems:1,maxItems:100,items:{$ref:"#/$defs/typePackSourceResource"}},provides:{type:"array",maxItems:20,uniqueItems:!0,items:{$ref:"#/$defs/contract"}}}},typePackManifest:{type:"object",required:["kind","id","version","resources"],properties:{kind:{const:"mdbase.type-pack"},id:{$ref:"#/$defs/identifier"},version:{$ref:"#/$defs/contract/properties/version"},name:{type:"string",minLength:1,maxLength:100},description:{type:"string",maxLength:500},resources:{type:"array",minItems:1,maxItems:100,items:{$ref:"#/$defs/typePackManifestResource"}}},patternProperties:{"^x-[A-Za-z][A-Za-z0-9._:-]{0,127}$":!0},additionalProperties:!1},typePackManifestResource:{type:"object",additionalProperties:!1,required:["kind","mode","source","target","digest"],properties:{kind:{enum:["contract","type","schema"]},mode:{enum:["managed","seed"]},source:{type:"string",minLength:1,maxLength:240},target:{type:"string",minLength:1,maxLength:240},digest:{type:"string",pattern:"^sha256:[0-9a-f]{64}$"}}},typePackSourceResource:{type:"object",additionalProperties:!1,required:["source","document"],properties:{source:{type:"string",minLength:1,maxLength:240},document:{type:"string",maxLength:262144}}},notificationCriterion:{type:"object",additionalProperties:!1,required:["id","event","presentation"],properties:{id:{$ref:"#/$defs/identifier"},event:{$ref:"#/$defs/contract"},if:{type:"object",additionalProperties:!1,required:["$expr"],properties:{$expr:{type:"string",minLength:1,maxLength:4096}}},debounce:{$ref:"#/$defs/duration"},minimum_interval:{$ref:"#/$defs/duration"},presentation:{type:"object",additionalProperties:!1,required:["title"],properties:{title:{type:"string",minLength:1,maxLength:80},body:{type:"string",maxLength:160},tag:{type:"string",minLength:1,maxLength:80}}}}},nativeNotificationDelivery:{oneOf:[{type:"object",additionalProperties:!1,required:["mode","firebase_project_id"],properties:{mode:{const:"managed_fcm"},firebase_project_id:{type:"string",minLength:6,maxLength:63,pattern:"^[a-z][a-z0-9-]*[a-z0-9]$"}}},{type:"object",additionalProperties:!1,required:["mode","url"],properties:{mode:{const:"webhook"},url:{type:"string",format:"uri",pattern:"^https://"}}}]}}};Hn.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};ES={enum:["collection.inspect","records.watch","records.read","records.query","records.validate","records.create","records.update","records.delete","records.rename","views.list","views.execute","views.source.read","views.source.create","views.source.update","views.source.delete","definitions.contracts.current","definitions.read","definitions.create","definitions.update","definitions.type-pack.inspect","definitions.type-pack.apply","collection.setup.apply","timers.list","timers.put","timers.cancel","timers.reconcile","sync.offline-replica","notifications.background-delivery","files.list","files.read","files.add","files.replace","files.move","files.delete"]};ba.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};aE={type:"object",additionalProperties:!1,required:["actions","scope"],properties:{actions:{type:"array",minItems:1,maxItems:6,uniqueItems:!0,items:{enum:["list","read","add","replace","move","delete"]}},scope:{$ref:"#/$defs/fileScope"}}};wa.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};va.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};Yn.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};_a.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};Aa.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};qS={type:"object",additionalProperties:!1,required:["kind","mode","source","target","digest"],properties:{kind:{enum:["contract","type","schema"]},mode:{enum:["managed","seed"]},source:{type:"string",minLength:1,maxLength:240},target:{type:"string",minLength:1,maxLength:240},digest:{type:"string",pattern:"^sha256:[0-9a-f]{64}$"}}};ka.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};Sa.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};Pa.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1};uf.evaluated={props:!0,dynamicProps:!1,dynamicItems:!1}});var zS,BS,mf=I(()=>{zS="/settings/record_extensions",BS="yaml-document-records-v1"});function lb(n,e){let t=n===1?cE:n===2?lE:void 0;if(!(!t||!Object.hasOwn(t,e)))return[...t[e]]}var lE,FS,cE,g3,cb,yf=I(()=>{lE={"collection.read":["describe","changes","read","query","list_views","execute_view","read_view_source","validate","read_type"],"records.create":["create"],"records.edit":["update","rename"],"records.delete":["delete"],"views.manage":["create_view_source","update_view_source","delete_view_source"],"definitions.manage":["create_type","update_type","assess_type_pack","apply_type_pack"],"background.schedule":["list_timers","put_timer","cancel_timer","reconcile_timers"],"offline.replica":["sync"]},FS=["assess_collection_setup","apply_collection_setup"],cE=Object.freeze({"collection.inspect":Object.freeze(["describe"]),"records.watch":Object.freeze(["changes"]),"records.read":Object.freeze(["read"]),"records.query":Object.freeze(["query"]),"records.validate":Object.freeze(["validate"]),"records.create":Object.freeze(["create"]),"records.update":Object.freeze(["update"]),"records.delete":Object.freeze(["delete"]),"records.rename":Object.freeze(["rename"]),"views.list":Object.freeze(["list_views"]),"views.execute":Object.freeze(["execute_view"]),"views.source.read":Object.freeze(["read_view_source"]),"views.source.create":Object.freeze(["create_view_source"]),"views.source.update":Object.freeze(["update_view_source"]),"views.source.delete":Object.freeze(["delete_view_source"]),"definitions.contracts.current":Object.freeze([]),"definitions.read":Object.freeze(["read_type"]),"definitions.create":Object.freeze(["create_type"]),"definitions.update":Object.freeze(["update_type"]),"definitions.type-pack.inspect":Object.freeze(["assess_type_pack"]),"definitions.type-pack.apply":Object.freeze(["assess_type_pack","apply_type_pack"]),"collection.setup.apply":Object.freeze(["assess_collection_setup","apply_collection_setup"]),"timers.list":Object.freeze(["list_timers"]),"timers.put":Object.freeze(["put_timer"]),"timers.cancel":Object.freeze(["cancel_timer"]),"timers.reconcile":Object.freeze(["reconcile_timers"]),"sync.offline-replica":Object.freeze(["sync"]),"notifications.background-delivery":Object.freeze([]),"files.list":Object.freeze([]),"files.read":Object.freeze([]),"files.add":Object.freeze([]),"files.replace":Object.freeze([]),"files.move":Object.freeze([]),"files.delete":Object.freeze([])});g3=Object.freeze([1,2]),cb=Object.freeze(["application-authorization-v2-issuance"])});var VS=I(()=>{});var KS,pb=I(()=>{KS={access_denied:{category:"authorization",recovery:"reauthorize"},access_paused:{category:"availability",recovery:"resume_connector_access"},application_authorization_issuance_disabled:{category:"authorization",recovery:"reauthorize"},application_declaration_mismatch:{category:"authorization",recovery:"reauthorize"},application_identity_unavailable:{category:"compatibility",recovery:"upgrade_application"},application_reauthorization_required:{category:"authorization",recovery:"reauthorize"},application_semantic_version_mismatch:{category:"authorization",recovery:"reauthorize"},approval_window_blocked:{category:"authorization",recovery:"reauthorize"},authority_authorization_changed:{category:"authorization",recovery:"reauthorize"},authorization_binding_incompatible:{category:"compatibility",recovery:"upgrade_application"},authorization_cancelled:{category:"cancellation",recovery:"none"},authorization_expired:{category:"authorization",recovery:"reauthorize"},authorization_replayed:{category:"integrity",recovery:"reauthorize"},browser_required:{category:"compatibility",recovery:"none"},callback_url_required:{category:"validation",recovery:"fix_request"},capability_contract_incompatible:{category:"compatibility",recovery:"upgrade_application"},change_cursor_reset:{category:"conflict",recovery:"refresh"},collection_access_denied:{category:"authorization",recovery:"reauthorize"},collection_claimed_by_newer_runtime:{category:"compatibility",recovery:"upgrade_connector"},collection_configuration_invalid:{category:"validation",recovery:"repair_collection"},collection_contracts_missing:{category:"compatibility",recovery:"choose_collection"},collection_incompatible:{category:"compatibility",recovery:"choose_collection"},collection_invalid:{category:"validation",recovery:"repair_collection"},collection_kind_unsupported:{category:"compatibility",recovery:"choose_collection"},collection_mismatch:{category:"selection",recovery:"choose_collection"},collection_not_found:{category:"selection",recovery:"choose_collection"},collection_not_ready:{category:"selection",recovery:"choose_collection"},collection_not_selected:{category:"selection",recovery:"choose_collection"},collection_type_registry_invalid:{category:"validation",recovery:"repair_collection"},collection_unavailable:{category:"availability",recovery:"choose_collection"},collection_version_unsupported:{category:"compatibility",recovery:"upgrade_collection"},concurrent_modification:{category:"conflict",recovery:"refresh"},connector_busy:{category:"availability",recovery:"retry"},connector_identity_changed:{category:"integrity",recovery:"reauthorize"},connector_offline:{category:"availability",recovery:"retry"},connector_upgrade_required:{category:"compatibility",recovery:"upgrade_connector"},cursor_capacity_exhausted:{category:"availability",recovery:"retry"},device_authorization_failed:{category:"authorization",recovery:"reauthorize"},direct_operation_rejected:{category:"authorization",recovery:"reauthorize"},discovery_failed:{category:"availability",recovery:"retry"},durable_mutation_unsupported:{category:"compatibility",recovery:"upgrade_connector"},encrypted_relay_rejected:{category:"authorization",recovery:"reauthorize"},encryption_required:{category:"authorization",recovery:"reauthorize"},expired_token:{category:"authorization",recovery:"reauthorize"},file_changed_during_move:{category:"conflict",recovery:"refresh"},file_changed_during_read:{category:"conflict",recovery:"refresh"},file_index_warming:{category:"availability",recovery:"retry"},file_list_changed:{category:"conflict",recovery:"refresh"},file_move_failed:{category:"internal",recovery:"contact_support"},file_mutation_conflict:{category:"conflict",recovery:"resolve_conflict"},file_not_found:{category:"conflict",recovery:"refresh"},file_source_mismatch:{category:"conflict",recovery:"refresh"},file_upload_incomplete:{category:"conflict",recovery:"retry"},fresh_request_required:{category:"availability",recovery:"retry"},generation_expired:{category:"conflict",recovery:"refresh"},hosted_provider_unavailable:{category:"availability",recovery:"retry"},insufficient_access:{category:"authorization",recovery:"reauthorize"},invalid_application_authorization:{category:"validation",recovery:"fix_request"},invalid_application_manifest:{category:"validation",recovery:"fix_request"},invalid_callback:{category:"validation",recovery:"fix_request"},invalid_device_authorization_response:{category:"integrity",recovery:"contact_support"},invalid_encrypted_response:{category:"integrity",recovery:"contact_support"},invalid_loopback_url:{category:"validation",recovery:"fix_request"},invalid_mutation_id:{category:"validation",recovery:"fix_request"},invalid_operation_response:{category:"integrity",recovery:"contact_support"},invalid_path:{category:"validation",recovery:"fix_request"},invalid_preflight:{category:"conflict",recovery:"refresh"},invalid_push_payload:{category:"validation",recovery:"fix_request"},invalid_push_subscription:{category:"validation",recovery:"fix_request"},invalid_read_cursor:{category:"validation",recovery:"fix_request"},invalid_replica:{category:"authorization",recovery:"reauthorize"},invalid_request:{category:"validation",recovery:"fix_request"},invalid_token_response:{category:"integrity",recovery:"contact_support"},legacy_scope_reauthorization_required:{category:"authorization",recovery:"reauthorize"},managed_fcm_not_declared:{category:"compatibility",recovery:"fix_request"},manifest_load_failed:{category:"availability",recovery:"retry"},manifest_required:{category:"validation",recovery:"fix_request"},missing_grant_key:{category:"authorization",recovery:"reauthorize"},mutation_recovery_expired:{category:"compatibility",recovery:"none"},mutation_request_conflict:{category:"conflict",recovery:"resolve_conflict"},no_pending_mutation:{category:"conflict",recovery:"refresh"},not_authorized:{category:"authorization",recovery:"reauthorize"},not_remote_authority:{category:"compatibility",recovery:"choose_collection"},notification_criterion_not_declared:{category:"validation",recovery:"fix_request"},notification_grant_reauthorization_required:{category:"authorization",recovery:"reauthorize"},notification_reauthorization_required:{category:"authorization",recovery:"reauthorize"},notification_registration_failed:{category:"availability",recovery:"retry"},notification_unregistration_failed:{category:"availability",recovery:"retry"},notifications_not_declared:{category:"compatibility",recovery:"fix_request"},notifications_unavailable:{category:"availability",recovery:"retry"},operation_cancelled:{category:"cancellation",recovery:"none"},operation_failed:{category:"internal",recovery:"contact_support"},operation_invalid:{category:"validation",recovery:"fix_request"},operation_outcome_unknown:{category:"conflict",recovery:"resolve_outcome"},origin_denied:{category:"authorization",recovery:"reauthorize"},path_occupied:{category:"conflict",recovery:"resolve_conflict"},pending_mutation_unresolved:{category:"conflict",recovery:"resolve_outcome"},query_snapshot_changed:{category:"conflict",recovery:"refresh"},rate_limited:{category:"availability",recovery:"retry"},reconnect_required:{category:"authorization",recovery:"reauthorize"},redirect_uri_required:{category:"validation",recovery:"fix_request"},reference_updates_unsupported:{category:"compatibility",recovery:"fix_request"},registry_backup_invalid:{category:"integrity",recovery:"contact_support"},registry_busy:{category:"availability",recovery:"retry"},registry_corrupt:{category:"integrity",recovery:"repair_collection"},registry_migration_failed:{category:"internal",recovery:"contact_support"},registry_schema_incompatible:{category:"compatibility",recovery:"upgrade_connector"},relay_authorization_expired:{category:"authorization",recovery:"reauthorize"},relay_unavailable:{category:"availability",recovery:"retry"},replica_scope_denied:{category:"authorization",recovery:"reauthorize"},sandbox_unsupported:{category:"compatibility",recovery:"fix_request"},scope_changed:{category:"authorization",recovery:"reauthorize"},scope_denied:{category:"authorization",recovery:"reauthorize"},scope_epoch_stale:{category:"authorization",recovery:"reauthorize"},session_destroyed:{category:"cancellation",recovery:"none"},session_not_started:{category:"validation",recovery:"fix_request"},session_starting:{category:"availability",recovery:"retry"},stale_file_revision:{category:"conflict",recovery:"refresh"},storage_required:{category:"compatibility",recovery:"none"},sync_failed:{category:"availability",recovery:"retry"},temporarily_unavailable:{category:"availability",recovery:"retry"},timeout:{category:"availability",recovery:"retry"},timer_grant_unavailable:{category:"authorization",recovery:"reauthorize"},token_exchange_failed:{category:"availability",recovery:"retry"},transport_protocol_incompatible:{category:"compatibility",recovery:"upgrade_connector"},type_pack_provision_failed:{category:"validation",recovery:"repair_collection"},unknown_collection:{category:"selection",recovery:"choose_collection"},unsafe_file_path:{category:"validation",recovery:"fix_request"},unsupported_encryption:{category:"compatibility",recovery:"upgrade_application"},unsupported_operation:{category:"compatibility",recovery:"fix_request"}}});function dE(n,e,...[t={}]){let i=KS[n];return{problem_version:1,code:n,category:i.category,recovery:i.recovery,message:e,...t.details===void 0?{}:{details:t.details},...t.operationOutcome===void 0?{}:{operation_outcome:t.operationOutcome},...t.traceId===void 0?{}:{trace_id:t.traceId}}}function WS(n,e,...t){let i=t[0];return new db(dE(n,e,...t),{status:i?.status,cause:i?.cause})}var db,HS=I(()=>{pb();db=class extends Error{problem;code;status;constructor(e,t={}){super(e.message,t.cause===void 0?void 0:{cause:t.cause}),this.problem=e,this.name="MdbaseConnectError",this.code=e.code,this.status=t.status}get retryable(){return this.problem.recovery==="retry"&&this.problem.operation_outcome!=="unknown"}get requiresAuthorization(){return this.problem.category==="authorization"}get outcomeUnknown(){return this.problem.operation_outcome==="unknown"}get recovery(){return this.problem.recovery}get details(){return this.problem.details}}});function GS(n,e={}){return{actions:[...new Set([...n.required,...e.includeOptional===!1?[]:n.optional??[]])],scope:structuredClone(n.scope)}}var k3,S3,ub=I(()=>{k3=new Uint8Array([77,68,66,70]),S3=new Uint8Array([77,68,66,82])});function fr(n){let e=n.capabilities===void 0?1:n.capabilities?.contract_version;return e!==1&&e!==2&&Ca("Unsupported declared capability contract version."),e}function Ca(n){throw WS("invalid_application_manifest",n,{details:{issues:[{path:"/requirements/capabilities",keyword:"authorizationSelection",message:n,params:{}}]}})}function JS(n,e){if(e.operations!==void 0&&e.capabilities!==void 0&&Ca("Specify operations or capabilities, not both."),e.operations!==void 0&&fr(n)!==1&&Ca("Exact operations authorization is only supported for legacy v1 declarations."),e.capabilities!==void 0){let t=new Set([...n.capabilities?.required??[],...n.capabilities?.optional??[]]);e.capabilities.some(i=>!t.has(i)||lb(fr(n),i)===void 0)&&Ca("Authorization can only include capabilities declared by the application.")}}function fb(n,e){let{requirements:t}=n;if(JS(t,e),fr(t)===1){if(e.operations!==void 0)return[...new Set(e.operations)];if(e.capabilities===void 0)return[...YS]}let i=t.capabilities,s=[...i?.required??[],...e.capabilities??i?.optional??[]].flatMap(a=>lb(fr(t),a)??[]),r=(n.provisions?.type_packs.length??0)>0||(n.provisions?.configuration?.length??0)>0;return[...new Set([...s,...fr(t)===2&&r?FS:[]])]}function hb(n){let e=n.files;if(e)return fr(n)===1?((!("actions"in e)||"required"in e||"optional"in e)&&Ca("Legacy file declarations must use exact files.actions."),{actions:[...e.actions],scope:structuredClone(e.scope)}):("actions"in e&&Ca("V2 file declarations must use required/optional file actions."),GS(e))}var YS,XS=I(()=>{yf();ub();HS();YS=["describe","changes","read","query"]});function gE(n,e){let t=bE(e)?e:{};if(t.dry_run===!0&&yE.has(n))return null;if(n==="file_control"){let o=typeof t.type=="string"?t.type:"";return mE.has(o)?`file_control:${o}`:null}let i=hE[n];return i==="always"?n:i==="sync_action"&&t.action==="mutate"?"sync:mutate":null}function gf(n,e){return gE(n,e)!==null}function bE(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}var uE,fE,hE,mE,yE,R3,E3,bf=I(()=>{uE=["describe","changes","read","query","list_views","execute_view","read_view_source","create_view_source","update_view_source","delete_view_source","validate","create","update","delete","rename","read_type","create_type","update_type","assess_type_pack","apply_type_pack","assess_collection_setup","apply_collection_setup","list_timers","put_timer","cancel_timer","reconcile_timers","sync"],fE=["list_files","stat_file","open_file_upload","open_file_download","move_file","delete_file","get_file_transfer_status","commit_file_upload","abort_file_transfer"],hE={describe:"never",changes:"never",read:"never",query:"never",list_views:"never",execute_view:"never",read_view_source:"never",create_view_source:"always",update_view_source:"always",delete_view_source:"always",validate:"never",create:"always",update:"always",delete:"always",rename:"always",read_type:"never",create_type:"always",update_type:"always",assess_type_pack:"never",apply_type_pack:"always",assess_collection_setup:"never",apply_collection_setup:"always",list_timers:"never",put_timer:"always",cancel_timer:"always",reconcile_timers:"always",sync:"sync_action"},mE=new Set(["open_file_upload","move_file","delete_file","commit_file_upload","abort_file_transfer"]),yE=new Set(["delete","rename"]),R3=new Set(uE),E3=new Set(fE)});var ZS=I(()=>{});var M3,QS=I(()=>{M3=new TextEncoder});function nP(n,e,t=[],i=2){let o={operation_transport:Tc,authorization_binding:hr,semantic_capabilities:i},s=[...new Set(t)].filter(r=>r!==Tc).sort((r,a)=>a-r);return s.length>0&&(o.operation_transport_recovery=s),(n.some(r=>gf(r,{action:"mutate"}))||e?.actions.some(r=>r!=="list"&&r!=="read")===!0)&&(o.durable_mutation=1),o}function yb(n){return eP.includes(n)}function iP(n){return tP.includes(n)}var Tc,vE,eP,hr,mb,tP,_E,AE,N3,wf=I(()=>{bf();Tc=3,vE=2,eP=[Tc,vE],hr=5,mb=4,tP=[hr,mb],_E=2,AE=1,N3={operation_transport:[...eP],authorization_binding:[...tP],semantic_capabilities:[_E,1],durable_mutation:[AE]}});async function oP(n){let e=vf(n),i=new Uint8Array(await crypto.subtle.digest("SHA-256",$o([kE,Ot(e)]))).slice(0,16);return i[6]=i[6]&15|128,i[8]=i[8]&63|128,[Mc(i.slice(0,4)),Mc(i.slice(4,6)),Mc(i.slice(6,8)),Mc(i.slice(8,10)),Mc(i.slice(10,16))].join("-")}function sP(n){let e=[vf(n.installation_signing_public_key),vf(n.grant_agreement_public_key),vf(n.grant_signing_public_key)];if(e.some((c,l)=>e.slice(l+1).some(p=>EE(c,p))))throw new Error("Application authorization keys must be distinct.");let t=gb(n.authorization_nonce),i=gb(n.code_challenge),o=n.contracts,s=o.operation_transport_recovery??[],r=n.requested_operations.some(c=>gf(c,{action:"mutate"}))||n.requested_files?.actions.some(c=>!["list","read"].includes(c))===!0;if(!iP(n.protocol_version)||t.byteLength!==32||!/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)+$/u.test(n.application_declaration_id)||!/^[0-9a-f]{64}$/u.test(n.application_manifest_digest)||!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?Z$/u.test(n.issued_at)||!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?Z$/u.test(n.expires_at)||i.byteLength!==32||![o.operation_transport,o.authorization_binding,o.semantic_capabilities,o.durable_mutation??1].every(c=>Number.isInteger(c)&&c>0)||o.authorization_binding!==n.protocol_version||!yb(o.operation_transport)||n.protocol_version===hr&&o.operation_transport!==Tc||s.some(c=>!yb(c)||c===o.operation_transport)||new Set(s).size!==s.length||n.protocol_version===mb&&s.length>0||s.length>0&&!r||(r?o.durable_mutation!==1:o.durable_mutation!==void 0)||n.requested_operations.length===0&&n.requested_files===void 0||new Set(n.requested_operations).size!==n.requested_operations.length||n.requested_operations.some(c=>!c||c.includes("\0"))||(n.flow==="authorization_code"?n.redirect_uri===void 0||n.state===void 0:n.flow!=="device_code"||n.redirect_uri!==void 0||n.state!==void 0))throw new Error("Application authorization binding is invalid.");CE(n.requested_files);let a=n.requested_operations.map(c=>Ot(new TextEncoder().encode(c)));return $o([n.protocol_version===hr?PE:SE,wi(n.protocol_version),Ot(_f(n.application_id)),Ot(_f(n.authorization_id)),Ot(new TextEncoder().encode(n.application_declaration_id)),Ot(aP(n.application_manifest_digest)),Ot(_f(n.application_installation_id)),...e.map(Ot),Ot(new TextEncoder().encode(n.flow)),Ot(t),Ot(new TextEncoder().encode(n.issued_at)),Ot(new TextEncoder().encode(n.expires_at)),rP(n.redirect_uri),rP(n.state),Ot(new TextEncoder().encode(n.code_challenge)),wi(o.operation_transport),...n.protocol_version===hr?[wi(s.length),...s.map(wi)]:[],wi(o.authorization_binding),wi(o.semantic_capabilities),xE(o.durable_mutation),wi(a.length),...a,IE(n.requested_files),OE(n.collection_id)])}function xE(n){return n===void 0?new Uint8Array(1):$o([new Uint8Array([1]),wi(n)])}function CE(n){if(n!==void 0&&(n.actions.length===0||new Set(n.actions).size!==n.actions.length||n.scope.kind==="selected_folders"&&(n.scope.folders.length===0||new Set(n.scope.folders).size!==n.scope.folders.length||n.scope.folders.some(e=>!e||e.includes("\0")))))throw new Error("Application authorization file request is invalid.")}function IE(n){if(n===void 0)return new Uint8Array(1);let e=n.actions.map(t=>Ot(new TextEncoder().encode(t)));return $o([new Uint8Array([1]),wi(e.length),...e,Ot(new TextEncoder().encode(n.scope.kind)),...n.scope.kind==="selected_folders"?[wi(n.scope.folders.length),...n.scope.folders.map(t=>Ot(new TextEncoder().encode(t)))]:[]])}function rP(n){return n===void 0?new Uint8Array(1):$o([new Uint8Array([1]),Ot(new TextEncoder().encode(n))])}function OE(n){return n===void 0?new Uint8Array(1):$o([new Uint8Array([1]),Ot(_f(n))])}function vf(n){let e=gb(n);if(e.byteLength!==65||e[0]!==4)throw new Error("Application authorization public key is invalid.");return e}function gb(n){if(!/^[A-Za-z0-9_-]+$/u.test(n))throw new Error("Invalid base64url value.");let e=n.replaceAll("-","+").replaceAll("_","/"),t=e.padEnd(Math.ceil(e.length/4)*4,"="),i=Uint8Array.from(atob(t),o=>o.charCodeAt(0));if(RE(i)!==n)throw new Error("Non-canonical base64url value.");return i}function _f(n){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu.test(n))throw new Error("Invalid UUID value.");let e=n.replaceAll("-","");return aP(e)}function aP(n){if(!/^[0-9a-f]+$/u.test(n)||n.length%2!==0)throw new Error("Invalid hexadecimal value.");return Uint8Array.from({length:n.length/2},(e,t)=>Number.parseInt(n.slice(t*2,t*2+2),16))}function Ot(n){return $o([wi(n.byteLength),n])}function wi(n){let e=new Uint8Array(4);return new DataView(e.buffer).setUint32(0,n,!1),e}function $o(n){let e=new Uint8Array(n.reduce((i,o)=>i+o.byteLength,0)),t=0;for(let i of n)e.set(i,t),t+=i.byteLength;return e}function RE(n){return btoa(String.fromCharCode(...n)).replaceAll("+","-").replaceAll("/","_").replace(/=+$/u,"")}function EE(n,e){return n.byteLength===e.byteLength&&n.every((t,i)=>t===e[i])}function Mc(n){return[...n].map(e=>e.toString(16).padStart(2,"0")).join("")}var kE,SE,PE,lP=I(()=>{bf();wf();kE=new TextEncoder().encode("mdbase-connect application installation id v2\0"),SE=new TextEncoder().encode("mdbase-connect application authorization proof v4\0"),PE=new TextEncoder().encode("mdbase-connect application authorization proof v5\0")});var Af,cP=I(()=>{Af={id:"mdbase.runtime.timer.fired",version:"1.0.0",digest:"sha256:41105be7a7abf33b31ced47e1e1965242236e40ccaea286b959b0a8c591f5642"}});function dP(n,e){let t=n.protocol.slice(0,-1),i=e?.toLowerCase().split(".").reverse().join(".");return t.includes(".")&&/^[a-z][a-z0-9+.-]*$/.test(t)&&!["http","https","file","javascript","data"].includes(t)&&(!i||t===i||t.startsWith(`${i}.`))&&n.username===""&&n.password===""&&n.hostname.length>0&&n.hash===""}var qE,TE,ME,LE,jE,NE,UE,H3,DE,G3,bb,pP,Lc,jc=I(()=>{yf();VS();mf();pb();XS();ub();bf();ZS();QS();wf();yf();lP();cP();mf();wf();qE="contract-setup-v1",TE="file-relay-v1",ME="protocol-usage-report-v1",LE="policy-freshness-lease-v1",jE=["application-authorization-v4","authorization-activation","encrypted-relay","policy-ack"],NE=["durable-mutation-journal-v1","durable-file-lifecycle-v1","contract-metadata-read-v1"],UE="candidate-b-activation-v1",H3=[...cb,...NE,"mutation-replay-after-credential-retirement-v1",UE],DE="application-declaration-evidence-v1",G3=[...cb,DE,...jE,LE,"application-authorization-v5",qE,TE,ME,BS],bb=1,pP="mdbase-authority-request-proof-v1",Lc={version:"x-mdbase-proof-version",timestamp:"x-mdbase-proof-timestamp",nonce:"x-mdbase-proof-nonce",signature:"x-mdbase-proof-signature"}});function BE(n,e={}){return FE(n,e,!0)}function yP(n){let e=Ee(Ee(n).requirements);return e.capabilities===void 0?1:Ee(e.capabilities).contract_version}function FE(n,e,t){let i=HE(n,e.maxBytes??Pf);if(i)return Sf([i]);let o=t?yP(n):2;if(o!==1&&o!==2)return Sf([ae("/requirements/capabilities/contract_version","contractVersion","must declare supported contract version 1 or 2")]);let s=Ee(n).platform==="native",r=e.allowLocal||s?iq(n,!e.allowLocal):n,a=KE(o===1?zE:$E,r);if(!a.valid)return a;let c=[...GE(n,e.allowLocal===!0),...o===1?nq(n):tq(n),...JE(n),...QE(n)];return c.length===0?{valid:!0,issues:[]}:Sf(c)}function Nc(n,e={}){let t=BE(n,e);if(!t.valid)throw new vb(t.issues);return yP(n)===1?{contractVersion:1,manifest:uP(n)}:{contractVersion:2,manifest:uP(n)}}function uP(n){let e=structuredClone(n);return{...e,requirements:{configuration:[],...e.requirements},provisions:{type_packs:[],configuration:[],...e.provisions},notifications:e.notifications??{criteria:[]}}}function VE(n){return n.map(e=>`${e.path||"/"} ${e.message}`).join("; ")}function KE(n,e){if(n(e))return{valid:!0,issues:[]};let t=(n.errors??[]).map(WE),i=t.filter(o=>o.keyword!=="oneOf");return Sf(i.length>0?i:t)}function WE(n){let e=n.params;return n.keyword==="required"&&typeof e.missingProperty=="string"?{path:_b(n.instancePath,e.missingProperty),keyword:n.keyword,message:"is required",params:e}:n.keyword==="additionalProperties"&&typeof e.additionalProperty=="string"?{path:_b(n.instancePath,e.additionalProperty),keyword:n.keyword,message:"is not allowed",params:e}:{path:n.instancePath,keyword:n.keyword,message:n.message??"is invalid",params:e}}function _b(n,e){let t=e.replaceAll("~","~0").replaceAll("/","~1");return`${n}/${t}`}function HE(n,e){let t=gP(n,"",new WeakSet);if(t)return t;try{let i=JSON.stringify(n),o=new TextEncoder().encode(i).byteLength;return o<=e?void 0:ae("/","maxBytes",`must not exceed ${e} UTF-8 bytes`,{maxBytes:e,actualBytes:o})}catch{return ae("/","json","must be serializable as JSON")}}function gP(n,e,t){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;if(typeof n!="object")return ae(e||"/","json","must be a JSON value");if(t.has(n))return ae(e||"/","json","must not contain circular references");let i=Object.getPrototypeOf(n);if(!Array.isArray(n)&&i!==Object.prototype&&i!==null)return ae(e||"/","json","must be a plain JSON object");t.add(n);let o=Array.isArray(n)?n.map((s,r)=>[String(r),s]):Object.entries(n);for(let[s,r]of o){let a=gP(r,_b(e,s),t);if(a)return a}t.delete(n)}function GE(n,e){let t=Ee(n),i=t.platform==="native";for(let[o,s]of Object.entries(Ee(t.installation_origins)))for(let[r,a]of Object.entries(Ee(s)))for(let[c,l]of a.entries()){let p=`/installation_origins/${o}/${r}/${c}`;try{if(i&&(r!=="app-runtime"||!mr(l)))return[ae(p,"origin","native applications require canonical IPv4 loopback HTTP app-runtime origins")];let d=new URL(l),u=(wb(d,o==="lab")||i&&mr(l))&&d.origin===l,f=r==="mobile"&&d.protocol==="capacitor:"&&/^[a-z0-9.-]+$/u.test(d.hostname)&&`${d.protocol}//${d.host}`===l,h=r==="app-runtime"&&/^chrome-extension:\/\/[a-p]{32}$/u.test(l);if(!u&&!f&&!h||l.includes("*")||d.username||d.password||d.search||d.hash)return[ae(p,"origin","must be an exact HTTPS, loopback HTTP, mobile capacitor or Chrome extension origin without wildcards")]}catch{return[ae(p,"origin","must be an exact installation origin")]}}if(t.distribution==="portable"){if(t.project_url===void 0)return t.icon===void 0?[]:[ae("/icon","origin","requires a project_url on the same origin")];try{let o=new URL(String(t.project_url));return o.protocol!=="https:"?[ae("/project_url","protocol","must use HTTPS")]:t.icon!==void 0&&new URL(String(t.icon)).origin!==o.origin?[ae("/icon","origin","must use the project_url origin")]:[]}catch{return[ae("/","url","contains an invalid URL")]}}try{let o=new URL(String(t.homepage));if(i?!kf(String(t.homepage)):!wb(o,e))return[ae("/homepage","protocol",i?"native applications require canonical IPv4 loopback HTTP":"must use HTTPS (or loopback HTTP in local mode)")];for(let[s,r]of t.redirect_uris.entries()){if(String(r).includes("*"))return[ae(`/redirect_uris/${s}`,"url","must be an exact URI without wildcards")];let a=new URL(String(r));if(i&&["http:","https:"].includes(a.protocol)&&!kf(String(r)))return[ae(`/redirect_uris/${s}`,"origin","native HTTP(S) redirects require canonical IPv4 loopback HTTP")];if(a.origin===o.origin&&!wb(a,e)&&!(i&&kf(String(r))))return[ae(`/redirect_uris/${s}`,"protocol","must use HTTPS (or loopback HTTP in local mode)")];let c=YE(a,String(t.id));if(a.origin!==o.origin&&!c)return[ae(`/redirect_uris/${s}`,"origin","must use the homepage origin or a private-use scheme matching the application ID")]}return t.icon!==void 0&&new URL(String(t.icon)).origin!==o.origin?[ae("/icon","origin","must use the homepage origin")]:[]}catch{return[ae("/","url","contains an invalid URL")]}}function YE(n,e){let t=n.protocol.slice(0,-1);return dP(n)&&(t===e||t.startsWith(`${e}.`))}function JE(n){let e=Ee(n),t=Ee(e.requirements),i=Array.isArray(t.contracts)?t.contracts:[],o=new Set(i.map(c=>{let l=Ee(c);return`${l.id}@${l.version}`})),s=Ee(e.provisions),r=Array.isArray(s.type_packs)?s.type_packs:[],a=[];for(let[c,l]of r.entries()){let p=Ee(l),d=Array.isArray(p.provides)?p.provides:[];for(let u of d){let f=Ee(u);o.has(`${f.id}@${f.version}`)||a.push(ae(`/provisions/type_packs/${c}/provides`,"contractRequirement","may only contain contracts required by the application"))}a.push(...XE(p,`/provisions/type_packs/${c}`))}return a}function XE(n,e=""){let t=Ee(n),i=Ee(t.manifest),o=Array.isArray(i.resources)?i.resources.map(Ee):[],s=Array.isArray(t.resources)?t.resources.map(Ee):[],r=new Map(s.map(c=>[String(c.source),c.document]));if(r.size!==s.length||new Set(o.map(c=>String(c.source))).size!==o.length||o.length!==s.length)return[ae(`${e}/resources`,"resourceSet","must match manifest source paths exactly")];let a=[];for(let[c,l]of o.entries()){let p=`${e}/manifest/resources/${c}`,d=String(l.source),u=r.get(d);if(typeof u!="string"){a.push(ae(`${e}/resources`,"resourceSet",`is missing manifest source ${d}`));continue}bP(u)!==l.digest&&a.push(ae(`${p}/digest`,"digest","does not match the embedded document")),l.upgrade_from!==void 0&&a.push(...ZE(l,u,`${p}/upgrade_from`))}return a}function ZE(n,e,t){if(n.kind!=="type"||n.mode!=="seed")return[ae(t,"seedUpgrade","is only allowed for seed types")];let i=fP(e),o=Array.isArray(n.upgrade_from),s=(o?n.upgrade_from:[n.upgrade_from]).map(Ee),r=new Set,a=[];for(let[c,l]of s.entries()){let p=o?`${t}/${c}`:t,d=String(l.document);l.digest!==bP(d)?a.push(ae(`${p}/digest`,"digest","does not match the baseline document")):r.has(l.digest)?a.push(ae(`${p}/digest`,"uniqueBaseline","duplicates another upgrade baseline")):l.digest===n.digest&&a.push(ae(`${p}/digest`,"seedUpgrade","must not be the resource's own document")),r.add(l.digest);let u=fP(d);!i||!u||u.kind!==i.kind||u.name!==i.name?a.push(ae(`${p}/document`,"seedUpgrade","must be a type document with the same kind and name as the resource")):l.version!==void 0&&u.version!==l.version&&a.push(ae(`${p}/version`,"seedUpgrade","must equal the version the baseline document declares"))}return a}function fP(n){let e=/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/u.exec(n)?.[1];if(e===void 0)return;let t=sb(e,{uniqueKeys:!0});if(!(t.errors.length>0||!Sn(t.contents)))return{kind:t.get("kind"),name:t.get("name"),version:t.get("version")}}function bP(n){return`sha256:${ys(it(Kv(n)))}`}function QE(n){let e=Ee(n),t=Ee(e.requirements),i=Ee(e.provisions),o=Array.isArray(t.configuration)?t.configuration:[],s=Array.isArray(i.configuration)?i.configuration:[],r=[],a=new Map;for(let[p,d]of o.entries()){let u=Ee(d),f=String(u.id),h=String(u.path),m=hP(h,u.value);m&&r.push(ae(`/requirements/configuration/${p}/path`,"configurationPointer",m)),a.has(f)?r.push(ae(`/requirements/configuration/${p}/id`,"uniqueRequirement",`duplicates configuration requirement ${f}`)):a.set(f,{path:h,value:u.value,index:p})}let c=new Set,l=new Set;for(let[p,d]of s.entries()){let u=Ee(d),f=String(u.requirement),h=String(u.path),m=hP(h,u.value);m&&r.push(ae(`/provisions/configuration/${p}/path`,"configurationPointer",m));let b=a.get(f);if(!b){r.push(ae(`/provisions/configuration/${p}/requirement`,"configurationRequirement",`references unknown configuration requirement ${f}`));continue}c.has(f)&&r.push(ae(`/provisions/configuration/${p}/requirement`,"uniqueProvision",`configuration requirement ${f} may have exactly one provision`)),c.add(f),h!==b.path&&r.push(ae(`/provisions/configuration/${p}/path`,"configurationRequirement",`must equal /requirements/configuration/${b.index}/path`)),JSON.stringify(u.value)!==JSON.stringify(b.value)&&r.push(ae(`/provisions/configuration/${p}/value`,"configurationRequirement",`must equal /requirements/configuration/${b.index}/value`));let w=`${h}\0${JSON.stringify(u.value)}`;l.has(w)&&r.push(ae(`/provisions/configuration/${p}`,"uniqueContribution","duplicates another configuration path and value contribution")),l.add(w)}for(let[p,d]of a)c.has(p)||r.push(ae(`/requirements/configuration/${d.index}`,"configurationProvision",`requires one provision linked by id ${p}`));return r}function hP(n,e){if(n===zS)return eq.includes(e)?void 0:"accepts only the record extensions md and base";if(!n.startsWith("/")||new TextEncoder().encode(n).byteLength>1024)return"must be a bounded RFC 6901 JSON pointer";let t=n.slice(1).split("/");if(t.length<2||t.length>16)return"must address a value below an x-* extension namespace";let i=[];for(let o of t){if(/~(?:[^01]|$)/u.test(o))return"contains an invalid RFC 6901 escape";let s=o.replaceAll("~1","/").replaceAll("~0","~");if(s.length===0||s==="-"||/^\d+$/u.test(s)||[...s].some(r=>/\p{Cc}/u.test(r)))return"contains a disallowed object-key segment";i.push(s)}return/^x-[a-z0-9][a-z0-9-]*$/u.test(i[0])?void 0:"must be inside a top-level x-* extension namespace"}function tq(n){let e=Ee(n),t=Ee(e.requirements),i=Ee(t.capabilities),o=[];t.access!=="full_collection"&&o.push(ae("/requirements/access","collectionAccess","must explicitly request full_collection; legacy or omitted access is not widened"));let s=Array.isArray(i.required)?i.required.map(String):[],a=(Array.isArray(i.optional)?i.optional.map(String):[]).find(b=>s.includes(b));a&&o.push(ae("/requirements/capabilities/optional","disjoint",`must not repeat required capability ${a}`));let c=Ee(t.files),l=Array.isArray(c.required)?c.required.map(String):[],d=(Array.isArray(c.optional)?c.optional.map(String):[]).find(b=>l.includes(b));d&&o.push(ae("/requirements/files/optional","disjoint",`must not repeat required file action ${d}`));let u=Ee(t.people),f=Array.isArray(u.required)?u.required.map(String):[],m=(Array.isArray(u.optional)?u.optional.map(String):[]).find(b=>f.includes(b));return m&&o.push(ae("/requirements/people/optional","disjoint",`must not repeat required people permission ${m}`)),o}function nq(n){let e=Ee(n),t=Ee(e.requirements),i=Ee(t.capabilities),o=[];if(t.access!=="full_collection"&&o.push(ae("/requirements/access","collectionAccess","must explicitly request full_collection; legacy or omitted access is not widened")),Object.keys(i).length===0)return o;let s=Array.isArray(i.required)?i.required.map(String):[],r=Array.isArray(i.optional)?i.optional.map(String):[],a=r.find(h=>s.includes(h));a&&o.push(ae("/requirements/capabilities/optional","disjoint",`must not repeat required capability ${a}`));let c=new Set([...s,...r]),l=Ee(e.provisions);c.has("definitions.type-pack.apply")&&t.access!=="full_collection"&&o.push(ae("/requirements/access","typePackAccess","must be full_collection for definitions.type-pack.apply")),Array.isArray(l.type_packs)&&l.type_packs.length>0&&!s.includes("collection.setup.apply")&&o.push(ae("/requirements/capabilities/required","collectionSetupCapability","must require collection.setup.apply when bundled type packs are declared"));let p=Array.isArray(l.configuration)&&l.configuration.length>0,d=p||Array.isArray(l.type_packs)&&l.type_packs.length>0;p&&!s.includes("collection.setup.apply")&&o.push(ae("/requirements/capabilities/required","collectionSetupCapability","must require collection.setup.apply when configuration provisions are declared")),c.has("collection.setup.apply")&&(t.access!=="full_collection"&&o.push(ae("/requirements/access","collectionSetupAccess","must be full_collection for collection.setup.apply")),d||o.push(ae("/provisions","collectionSetupProvision","must declare a configuration provision or type pack for collection.setup.apply"))),c.has("notifications.background-delivery")&&!Array.isArray(Ee(e.notifications).criteria)&&o.push(ae("/notifications/criteria","notificationCapability","must be declared for notifications.background-delivery"));let u=Ee(t.files),f=Array.isArray(u.actions)?new Set(u.actions.map(String)):new Set;for(let h of["list","read","add","replace","move","delete"]){let m=`files.${h}`;c.has(m)!==f.has(h)&&o.push(ae("/requirements/capabilities","fileCapability",`${m} and requirements.files.actions.${h} must be declared together`))}return o}function iq(n,e=!1){let t=Ee(n);if(t.distribution==="portable")return n;let i={...t};for(let o of["homepage","icon"])typeof i[o]=="string"&&(i[o]=mP(i[o],e));return Array.isArray(i.redirect_uris)&&(i.redirect_uris=i.redirect_uris.map(o=>typeof o=="string"?mP(o,e):o)),i}function mP(n,e){try{let t=new URL(n);return t.protocol==="http:"&&(e?kf(n):wP(t.hostname))&&(t.protocol="https:"),t.href}catch{return n}}function mr(n){if(typeof n!="string"||!/^http:\/\/127\.0\.0\.1(?::[1-9][0-9]{0,4})?$/.test(n))return!1;try{return new URL(n).origin===n}catch{return!1}}function kf(n){let e=/^http:\/\/[^/?#]+/.exec(n)?.[0];return mr(e)}function wb(n,e){return n.protocol==="https:"||e&&n.protocol==="http:"&&wP(n.hostname)}function wP(n){return n==="localhost"||n==="127.0.0.1"||n==="[::1]"||n==="::1"}function Sf(n){return{valid:!1,issues:n}}function ae(n,e,t,i={}){return{path:n,keyword:e,message:t,params:i}}function Ee(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)?n:{}}var Pf,vb,$E,zE,eq,Ia=I(()=>{Cr();gs();SS();$S();mf();jc();Pf=524288,vb=class extends Error{issues;constructor(e){super(`Invalid application manifest: ${VE(e)}`),this.issues=e,this.name="AppManifestValidationError"}},$E=TS,zE=DS;eq=["md","base"]});function Xr(n){return!1}function Oa(n){return n==="lab"||n==="staging"||n==="production"}function Qt(n){return n==="lab"}function Ra(n){try{let e=new URL(n);return e.protocol==="http:"&&e.hostname==="127.0.0.1"&&Number(e.port)>0&&e.origin===n&&!e.username&&!e.password}catch{return!1}}var bt=I(()=>{"use strict";Xd()});function xn(n){return n.protocol==="https:"||n.protocol==="http:"?n.origin:`${n.protocol}//${n.host}`}function Ab(n,e=!1,t){if(typeof n!="string"||n.length>512)return null;let i;try{i=new URL(n)}catch{return null}if(i.username||i.password||i.search||i.hash||!["","/"].includes(i.pathname)||xn(i)!==n)return null;switch(i.protocol){case"https:":return"web";case"http:":return t==="native"&&mr(n)?"native":e&&ot(n)?"web":null;case"capacitor:":return!i.port&&/^[a-z0-9.-]{1,253}$/.test(i.hostname)?"mobile":null;case"chrome-extension:":return/^[a-p]{32}$/.test(i.host)?"extension":null;case"moz-extension:":return rq.test(i.host)?"extension":null;default:return null}}function Rt(){let n=globalThis.location;if(!n)return null;if(typeof n.origin=="string"&&n.origin!=="null")return n.origin;try{return xn(new URL(n.href))}catch{return null}}var rq,Lt,Jn=I(()=>{"use strict";Ia();bt();rq=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;Lt=(n,e=!1,t)=>Ab(n,e,t)!==null});function _P(n,e){let t=vP.get(n);return(!t||!/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(e.id)||e.id==="00000000-0000-0000-0000-000000000000")&&jt(),e.supersededDeclaredId!==void 0&&e.supersededDeclaredId!==n.id&&jt(),yr({...n,id:e.id,name:e.name,storage:e.supersededDeclaredId===void 0?t:{...n.storage}})}function jt(){throw A("invalid_request","invalid application declaration","application_declaration")}function kb(n,e=new Set,t=0,i={nodes:0,chars:0}){if((++i.nodes>524288||t>64)&&jt(),typeof n=="string")return i.chars+=n.length,i.chars>524288&&jt(),n;if(n===null||typeof n=="boolean")return n;if(typeof n=="number")return Number.isFinite(n)||jt(),n;(typeof n!="object"||e.has(n)||Object.getOwnPropertySymbols(n).length)&&jt(),e.add(n);try{if(Array.isArray(n))return(n.length>524288||Object.keys(n).length!==n.length)&&jt(),Object.freeze(Array.from({length:n.length},(s,r)=>{let a=Object.getOwnPropertyDescriptor(n,String(r));return(!a||!("value"in a))&&jt(),kb(a.value,e,t+1,i)}));Object.getPrototypeOf(n)!==Object.prototype&&Object.getPrototypeOf(n)!==null&&jt();let o=Object.create(null);for(let s of Object.keys(n)){i.chars+=s.length;let r=Object.getOwnPropertyDescriptor(n,s);(i.chars>524288||!r||!("value"in r))&&jt(),o[s]=kb(r.value,e,t+1,i)}return Object.freeze(o)}finally{e.delete(n)}}function xf(n){return JSON.parse(JSON.stringify(n.manifest))}function yr(n){let e=kb(n);(!e||Array.isArray(e)||Object.keys(e).some(m=>!["id","name","origin","environment","manifest","storage","installationKind"].includes(m)))&&jt();let{id:t,name:i,origin:o,environment:s,manifest:r}=e;(typeof t!="string"||!t||t.length>256||!/^[a-z0-9][a-z0-9._-]*$/.test(t)||t==="00000000-0000-0000-0000-000000000000"||typeof i!="string"||!i.trim()||new TextEncoder().encode(i).length>100||/[\u0000-\u001f\u007f]/.test(i)||typeof o!="string"||typeof s!="string"||!Oa(s)||!r||Array.isArray(r)||typeof r!="object")&&jt(),Xr(s)&&!Ra(o)&&jt();let a=Ab(o,Qt(s),r.platform==="native"?"native":void 0),c=e.installationKind??(a==="mobile"?"mobile":"app-runtime");(a===null||c!=="app-runtime"&&c!=="mobile"||a==="mobile"&&c!=="mobile"||(a==="extension"||a==="native")&&c!=="app-runtime")&&jt();let l=e.storage;l!==void 0&&(!l||Array.isArray(l)||typeof l!="object"||Object.keys(l).some(m=>!["joinDatabaseName","setupDatabaseName","applicationNamespace"].includes(m)))&&jt();let p=l,d=p?.applicationNamespace??t,u=typeof d=="string"&&d!==t?`namespace.${lg(JSON.stringify([t,d]))}`:t,f={joinDatabaseName:p?.joinDatabaseName??`mdbase.${u}.native-collection-join.v1`,setupDatabaseName:p?.setupDatabaseName??`mdbase.${u}.native-model-setup.v1`,applicationNamespace:d};for(let m of Object.values(f))(typeof m!="string"||!m||m.length>256||/[\u0000-\u001f\u007f]/.test(m))&&jt();f.joinDatabaseName===f.setupDatabaseName&&jt();let h=Object.freeze({id:t,name:i,origin:o,environment:s,installationKind:c,manifest:r,storage:Object.freeze(f)});return vP.set(h,Object.freeze({...p})),h}var vP,Ea=I(()=>{"use strict";wu();Jn();ie();bt();vP=new WeakMap});function Uc(n){if(n!==null&&typeof n=="object"){for(let e of Object.values(n))Uc(e);Object.freeze(n)}return n}function Zr(n){let e=Nc(xf(n),{allowLocal:Qt(n.environment)}),t=Uc(e.manifest),i=t.requirements,o=fr(i),s=Uc(fb(t,{})),r=hb(i),a=Uc(nP(s,r,void 0,o)),c=i.capabilities,l=c?.contract_version===2?Object.freeze({capabilityContractVersion:2,requiredNativeCapabilities:Object.freeze([...c.required])}):null;return Object.freeze({contractVersion:e.contractVersion,manifest:t,semanticVersion:o,operations:s,...r?{files:Uc(r)}:{},contracts:a,nativeCapabilities:l})}var Cf=I(()=>{"use strict";jc();Ia();Ea();bt()});function kP(n,e){if(typeof n!="string"||!n.length)throw Dc();let t=new URL(n),i=e&&ot(n);if(t.origin!==n||t.username||t.password||t.protocol!=="https:"&&!i)throw Dc();return n}function Xn(n){let{environment:e,release:t}=n;if(!Oa(e)||!t||t.schema!=="mdbn-app-trust/release/1"||t.environment!==e||!/^[0-9a-f]{64}$/.test(t.assetSha256)||!t.source||t.source.repository!=="mdbase-dev/mdbase-connect"||!/^[0-9a-f]{40}$/.test(t.source.commit)||!/^[A-Za-z0-9.+-]{1,64}$/.test(t.source.version)||!Array.isArray(t.trustedRoots)||!t.trustedRoots.length||t.trustedRoots.length>64||t.trustedRoots.some(c=>!(c instanceof Uint8Array)||c.length!==32||c.every(l=>l===0))||!(t.policyPins instanceof Uint8Array)||!t.policyPins.length||t.policyPins.length>65536)throw Dc();let i=Xr(e),o=kP(t.cpOrigin,i),s=kP(t.logOrigin,i),r=n.appOrigin;if(i&&![o,s,r].every(Ra)||!Lt(r,Qt(e),n.platform))throw Dc();let a=Object.freeze({environment:e,appOrigin:r,cpOrigin:o,logOrigin:s,assetSha256:t.assetSha256,allowLoopbackHttp:Qt(e)&&new URL(r).protocol==="http:",allowNativeLoopbackHttp:n.platform==="native"&&Lt(r,!1,"native")&&new URL(r).protocol==="http:"});return SP.add(a),a}function PP(n){return!!n&&typeof n=="object"&&SP.has(n)}var SP,Dc,Qr=I(()=>{"use strict";Jn();bt();SP=new WeakSet,Dc=()=>new Error("app environment: explicit authenticated build context required")});function zo(){return Object.freeze({...Sb,trustedRoots:Object.freeze(sq.map(xP)),policyPins:xP(aq)})}var Sb,sq,aq,xP,If=I(()=>{Sb={schema:"mdbn-app-trust/release/1",environment:"production",cpOrigin:"https://connect.mdbase.dev",logOrigin:"https://log.mdbase.dev",assetSha256:"7912e40838213e60b65848350d319a48019021317b112e3326429b250f0133d7",source:{commit:"36abd4b065be9495a7f5ae0808865a1f2279af04",repository:"mdbase-dev/mdbase-connect",version:"0.1.0-beta.141"}};Object.freeze(Sb.source);Object.freeze(Sb);sq=Object.freeze(["d9f6e481aa47ae9e0373c8994fe6edb3131d8ac3cf3cbc1be58672a8543c932d"]),aq="8281825070a2bd532b5544dfb77617d4040ca6a25820d9f6e481aa47ae9e0373c8994fe6edb3131d8ac3cf3cbc1be58672a8543c932d818350c580fb092af10eb030605bd6e478e6f158206b587b1b32ba84b3d630868fe8e5396339f0c0ed2c59324a67824c1a2028040c5070a2bd532b5544dfb77617d4040ca6a2",xP=n=>{let e=new Uint8Array(n.length/2);for(let t=0;t<e.length;t++)e[t]=parseInt(n.slice(t*2,t*2+2),16);return e}});function xb(n){if(!n||typeof n!="object"||Array.isArray(n))throw gr();return n}function Cb(n){return n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"?JSON.stringify(n):Array.isArray(n)?`[${n.map(Cb).join(",")}]`:`{${Object.entries(n).filter(([,t])=>t!==void 0).sort(([t],[i])=>t<i?-1:t>i?1:0).map(([t,i])=>`${JSON.stringify(t)}:${Cb(i)}`).join(",")}}`}async function Rf(n){let e=new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(Cb(n))));return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function cq(n,e){let t=[[n,e]],i=0;for(;t.length;){if(++i>524288)return!1;let[o,s]=t.pop();if(o===s)continue;if(!o||!s||typeof o!="object"||typeof s!="object"||Array.isArray(o)!==Array.isArray(s))return!1;let r=Object.keys(o);if(r.length!==Object.keys(s).length)return!1;for(let a of r){if(!Object.hasOwn(s,a))return!1;t.push([o[a],s[a]])}}return!0}async function Ef(n){let e=n.declaration,t=n.signal,i=n.isCurrent,o=n.fetch??globalThis.fetch,s=e.manifest,r=yr(e);function a(){try{if(!t.aborted&&n.signal===t&&n.declaration===e&&n.isCurrent===i&&e.id===r.id&&e.name===r.name&&e.origin===r.origin&&e.environment===r.environment&&e.manifest===s&&i.call(n)===!0&&!t.aborted)return}catch{}throw A("cancelled","Application registration fenced","application_registration_fenced")}a();let c,l;try{c=Xn({environment:r.environment,appOrigin:r.origin,platform:r.manifest.platform==="native"?"native":void 0,release:zo()})}catch{throw a(),A("unavailable","SDK registration environment unavailable","application_registration_unavailable")}try{l=Nc(xf(r),{allowLocal:Qt(r.environment)}).manifest}catch{throw $c()}let p=r.environment==="local"?[]:l.installation_origins?.[r.environment]?.[r.installationKind]??[];if(l.name!==r.name||l.distribution==="portable"||new URL(l.homepage).origin!==r.origin&&!p.includes(r.origin)&&!("platform"in l&&l.platform==="native"&&r.installationKind==="app-runtime"&&mr(r.origin)))throw $c();let d=JSON.stringify({manifest:l}),u=`${c.cpOrigin}/v1/apps/register`,f=`mdbase.app.registration.v1.${encodeURIComponent(c.cpOrigin)}.${encodeURIComponent(l.id)}`,h=()=>{try{return globalThis.localStorage??null}catch{return null}},m=h()?await Rf(l).catch(()=>null):null;a();let b=x=>{if(m)try{h()?.setItem(f,JSON.stringify({v:1,digest:m,declaredId:r.id,...x}))}catch{}};{let x=null;try{let P=h()?.getItem(f);x=P?xb(JSON.parse(P)):null}catch{x=null}if(x&&m&&x.v===1&&x.digest===m&&x.declaredId===r.id&&typeof x.id=="string"&&Pb.test(x.id)&&x.id!==IP&&x.name===l.name&&typeof x.manifestDigest=="string"&&/^[0-9a-f]{64}$/.test(x.manifestDigest)&&(x.supersededDeclaredId===void 0||x.supersededDeclaredId===r.id))return Object.freeze({id:x.id,name:l.name,manifestDigest:x.manifestDigest,...x.supersededDeclaredId!==void 0?{supersededDeclaredId:r.id}:{}})}if(new TextEncoder().encode(d).length>Pf+32||typeof o!="function")throw $c();let w=new AbortController,g=()=>w.abort(),y=setTimeout(g,15e3);y.unref?.(),t.addEventListener("abort",g,{once:!0});function v(){if(a(),w.signal.aborted)throw Of()}async function _(x){let P=x.headers.get("content-length");if(!x.body||P!==null&&(!/^(0|[1-9][0-9]*)$/.test(P)||Number(P)>8192))return x.body?.cancel().catch(()=>{}),null;let C=x.body.getReader(),R=new Uint8Array(8192),O=0;try{for(;;){let L=await C.read();if(v(),L.done)break;if(O+L.value.length>R.length)return null;R.set(L.value,O),O+=L.value.length}return Mo(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(R.subarray(0,O))))}catch(L){if(L instanceof pe)throw L;return null}finally{C.cancel().catch(()=>{})}}async function k(x){let P=new Uint8Array(2*Pf+8192),C=0,R=x.headers.get("content-length");if(R!==null&&/^(0|[1-9][0-9]*)$/.test(R)&&Number(R)>P.length)throw x.body?.cancel().catch(()=>{}),gr();if(!x.body)throw gr();let O=x.body.getReader();try{for(;;){let L=await O.read();try{if(v(),L.done)break;if(C+L.value.length>P.length)throw gr();P.set(L.value,C),C+=L.value.length}finally{L.value?.fill(0)}}try{return xb(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(P.subarray(0,C))))}catch{throw gr()}}finally{P.fill(0),O.cancel().catch(()=>{}),O.releaseLock()}}async function S(x){let P=xb(x.application),C=P.id,R=P.manifest_digest;if(typeof C!="string"||!Pb.test(C)||C===IP)throw gr();let O=Pb.test(r.id)&&C!==r.id,L=O?$c:gr;if(O&&R!==await Rf(l).catch(()=>null))throw $c();if(v(),typeof R!="string"||!/^[0-9a-f]{64}$/.test(R)||P.name!==l.name||P.canonical_identity!==`bundle:${l.id}:sha256:${R}`||P.family_identity!==`bundle:${l.id}`||P.distribution!=="web")throw L();if(!P.application_declaration)throw A("upgrade_required","Canonical registration evidence unavailable","application_registration_unsupported");let z;try{z=Nc(P.application_declaration,{allowLocal:Qt(r.environment)}).manifest}catch{throw gr()}if(!cq(l,z))throw L();return v(),Object.freeze({id:C,name:l.name,manifestDigest:R,...O?{supersededDeclaredId:r.id}:{}})}try{for(let x=0;x<3;x++){v();let P;try{if(P=await o(u,{method:"POST",headers:{"content-type":"application/json"},body:d,signal:w.signal,credentials:"omit",redirect:"error",cache:"default",referrerPolicy:"no-referrer"}),v(),P.redirected||P.url&&P.url!==u)throw gr();if(!P.ok){if(lq.has(P.status))throw await P.body?.cancel().catch(()=>{}),Of();let R=await _(P);throw A("forbidden","Application registration refused",R?{reason:"application_registration_refused",details:new Map([["code",R.code],["paths",[...R.paths]]])}:"application_registration_refused")}let C=await S(await k(P));return b(C),C}catch(C){if(P?.body?.cancel().catch(()=>{}),v(),C instanceof pe&&C.reason!=="application_registration_unknown")throw C;if(x===2)throw Of();await new Promise((R,O)=>{let L=()=>{clearTimeout(z),w.signal.removeEventListener("abort",L);try{v(),R()}catch(Q){O(Q)}},z=setTimeout(L,x===0?250:1e3);z.unref?.(),w.signal.addEventListener("abort",L,{once:!0}),w.signal.aborted&&L()})}}throw Of()}finally{clearTimeout(y),t.removeEventListener("abort",g),w.abort()}}var Pb,IP,lq,$c,gr,Of,qf=I(()=>{"use strict";Ia();Ia();Qr();ie();Ea();If();bt();lu();Pb=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,IP="00000000-0000-0000-0000-000000000000",lq=new Set([408,429,500,502,503,504]),$c=()=>A("invalid_request","Application registration binding mismatch","application_registration_binding"),gr=()=>A("unavailable","Application registration evidence invalid","application_registration_response"),Of=()=>A("outcome_unknown","Original application registration outcome unknown","application_registration_unknown")});function MP(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)?n:null}function LP(n,e,t){if(!/^[A-Za-z0-9_-]+$/.test(n))return!1;try{let i=atob(n.replaceAll("-","+").replaceAll("_","/"));return i.length===e&&(t===void 0||i.charCodeAt(0)===t)&&btoa(i).replaceAll("+","-").replaceAll("/","_").replace(/=+$/u,"")===n}catch{return!1}}function jf(n,e){let t=MP(n),i=MP(t?.native_completion);if(!i||!Object.hasOwn(i,"version")||i.version!==1||Object.keys(i).length!==TP.length+1||TP.some(r=>!Object.hasOwn(i,r)||typeof i[r]!="string"))throw Ta();let o=i;for(let r of["account_id","authorization_request_id","application_id","application_installation_id","collection_id","grant_id"])if(!mq.test(o[r]))throw Ta();if(!o.application_declaration_id||!/^[0-9a-f]{64}$/.test(o.application_manifest_digest)||!LP(o.grant_signing_public_key,65,4)||!LP(o.client_noise_public_key,32))throw Ta();try{if(new URL(o.application_origin).origin!==o.application_origin)throw Ta()}catch{throw Ta()}let s={account_id:e.accountId,authorization_request_id:e.authorizationRequestId,application_id:e.applicationId,application_declaration_id:e.declarationId,application_manifest_digest:e.manifestDigest,application_installation_id:e.applicationInstallationId,application_origin:e.applicationOrigin,collection_id:e.collectionId,grant_signing_public_key:e.grantSigningPublicKey,client_noise_public_key:e.clientNoisePublicKey};if(Object.entries(s).some(([r,a])=>o[r]!==a)||e.grantId!==void 0&&o.grant_id!==e.grantId||t.collection_id!==o.collection_id||t.grant_id!==o.grant_id||t.application_origin!==o.application_origin)throw Ta();return Object.freeze({...o})}var TP,mq,Ta,Ib=I(()=>{"use strict";ie();TP=["account_id","authorization_request_id","application_id","application_declaration_id","application_manifest_digest","application_installation_id","application_origin","collection_id","grant_id","grant_signing_public_key","client_noise_public_key"],mq=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,Ta=()=>A("unauthenticated","native completion does not match the original approved preparation")});function Ob(n,e,t,i,o,s){return jf({native_completion:n,collection_id:e.collectionId,grant_id:n?.grant_id,application_origin:o},{accountId:t,authorizationRequestId:e.authorizationRequestId,applicationId:i,applicationOrigin:o,collectionId:e.collectionId,manifestDigest:s,declarationId:n?.application_declaration_id,applicationInstallationId:n?.application_installation_id,grantSigningPublicKey:n?.grant_signing_public_key,clientNoisePublicKey:n?.client_noise_public_key})}var jP=I(()=>{"use strict";Ib()});function br(n){let e=()=>new TypeError("invalid collection display name");if(typeof n!="string"||/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/.test(n))throw e();for(let i=0;i<n.length;i++){let o=n.charCodeAt(i);if(o>=55296&&o<=56319){let s=n.charCodeAt(++i);if(!(s>=56320&&s<=57343))throw e()}else if(o>=56320&&o<=57343)throw e()}let t=n.trim();if(!t.length||t.length>200)throw e();return t}var Fc=I(()=>{"use strict"});function Nf(n){let e=[n.account,n.installation,n.collection];if(e.some(t=>typeof t!="string"||!NP.test(t)))throw new We("invalid_scope");return`mdbase-app-${e.map(t=>t.toLowerCase()).join("-")}`}function Rb(n){let e=[n.account,n.installation];if(e.some(t=>typeof t!="string"||!NP.test(t)))throw new We("invalid_scope");return`mdbase-app-installation-${e.map(t=>t.toLowerCase()).join("-")}`}function Kc(n,e,t){return Vc(n,Nf(e),t)}function Wc(n,e,t){return Vc(n,Rb(e),t)}function Hc(n){return typeof n=="string"&&n.length>0&&n.length<=64&&!/[^A-Za-z0-9_-]/.test(n)}function Fo(n){return typeof n=="string"&&n.length>0&&n.length<=256&&!/[\u0000-\u001f\u007f]/.test(n)}function UP(n){let e=DP({cpOrigin:n.cpOrigin,appId:n.appId});if(n.storageNamespace===void 0)return e;if(!Fo(n.storageNamespace))throw new We("invalid_scope");return`mdbase-app-sign-in-namespace-v1-${JSON.stringify([n.cpOrigin,n.appId,n.storageNamespace])}`}function DP(n){let e=new URL(n.cpOrigin);if(e.origin!==n.cpOrigin||e.username||e.password||!["https:","http:"].includes(e.protocol)||!Hc(n.appId))throw new We("invalid_scope");if(n.owner===void 0)return`mdbase-app-sign-in-v1-${n.appId}-${n.cpOrigin}`;if(!Fo(n.owner))throw new We("invalid_scope");return`mdbase-app-sign-in-v2-${JSON.stringify([n.cpOrigin,n.owner,n.appId])}`}function $P(n,e,t){if(e.storageNamespace!==void 0&&(!Fo(e.owner)||e.owner.startsWith("bundle:")))throw new We("invalid_scope");let i=DP(e),o=UP(e);return e.owner===void 0?Vc(n,o,t):(async()=>{let s=await Vc(n,o,t);try{let r=await Vc(n,i,t);return{release:async()=>{await r.release(),await s.release()}}}catch(r){throw await s.release(),r}})()}function zP(n,e,t){try{return n.request(UP(e),{mode:"shared",signal:t},async()=>{})}catch(i){return Promise.reject(i)}}function Vc(n,e,t){if(!n)return Promise.reject(new We("unavailable"));if(t?.aborted)return Promise.reject(new We("aborted"));let i,o=new Promise(d=>{i=d}),s,r,a=new Promise((d,u)=>{s=d,r=u}),c=!1,l=()=>{c=!0,r(new We("aborted"))};t?.addEventListener("abort",l,{once:!0});let p=Promise.resolve().then(()=>n.request(e,{mode:"exclusive",ifAvailable:!0},async d=>{if(t?.removeEventListener("abort",l),c||t?.aborted){r(new We("aborted"));return}if(!d){r(new We("busy"));return}s({release:()=>(i(),p)}),await o}));return p.catch(()=>{t?.removeEventListener("abort",l),r(new We("unavailable"))}),a}async function BP(n){let e=n.closeTimeoutMs??5e3;if(!Number.isSafeInteger(e)||e<1||e>3e4)throw new RangeError("invalid Worker close timeout");let t=n.signal,i=Object.freeze({account:n.scope.account,installation:n.scope.installation,collection:n.scope.collection});Nf(i);let o=await Wc(n.locks,i,t),s;try{s=await Kc(n.locks,i,t)}catch(h){throw await o.release(),h}let r={release:async()=>{await s.release(),await o.release()}},a;try{if(t?.aborted)throw new We("aborted");a=n.create(i)}catch{throw await r.release(),new We(t?.aborted?"aborted":"initialization_failed")}let c,l=Object.freeze({scope:Object.freeze({account:i.account,installation:i.installation}),isCurrent:()=>!c&&!t?.aborted}),p,d=new Promise((h,m)=>{p=()=>m(new We("aborted"))}),u=()=>c??=(async()=>{t?.removeEventListener("abort",f);let h;try{await Promise.race([Promise.resolve().then(()=>a.stop()),new Promise(m=>{h=setTimeout(m,e)})])}catch{}finally{h&&clearTimeout(h)}try{a.terminate()}catch{throw new We("shutdown_failed")}await r.release()})(),f=()=>{p(),u().catch(()=>{})};t?.addEventListener("abort",f,{once:!0});try{if(t?.aborted)throw new We("aborted");if(await Promise.race([Promise.resolve().then(()=>n.initialize(a,t,i,l)),d]),t?.aborted||c)throw new We("aborted");return{worker:a,scope:i,close:u}}catch{throw await u(),new We(t?.aborted?"aborted":"initialization_failed")}}var We,NP,eo=I(()=>{"use strict";We=class extends Error{constructor(t){super(`app replica owner: ${t}`);this.reason=t;this.name="AppReplicaOwnerError"}reason},NP=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i});function KP(n){if(typeof CryptoKey!="function"||!(n instanceof CryptoKey)||n.type!=="secret"||n.extractable||n.algorithm.name!=="AES-GCM"||n.algorithm.length!==256||n.usages.length!==2||!n.usages.includes("encrypt")||!n.usages.includes("decrypt"))throw Ye();return n}function FP(n){if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).sort().join()!=="encrypted,key,revision,version")throw Ye();let e=n;if(e.version!==1||!Number.isSafeInteger(e.revision)||e.revision<0||!(e.encrypted instanceof Uint8Array)||e.encrypted.length<29||e.encrypted.length>VP+28)throw Ye();return{version:1,revision:e.revision,key:KP(e.key),encrypted:new Uint8Array(e.encrypted)}}var Ma,Uf,VP,Gc,Ye,yq,Df,WP=I(()=>{"use strict";bt();Jn();eo();Ma="installation-sign-in",Uf="original",VP=128*1024,Gc=class extends Error{constructor(t){super(`app installation storage ${t}; preserve storage and reopen`);this.reason=t}reason},Ye=(n="unavailable")=>new Gc(n),yq=(n,e)=>n.length===e.length&&n.every((t,i)=>t===e[i]);Df=class n{constructor(e,t){this.options=e;this.lease=t;this.namespace=JSON.stringify(e.owner===void 0?["mdbase.app-installation.v1",e.origin,e.cpOrigin,e.appId]:["mdbase.app-installation.v2",e.origin,e.cpOrigin,e.owner,e.appId])}options;lease;db=null;record=null;closing=!1;closeResult=null;namespace;static async open(e,t){let i=Object.freeze({origin:e.origin,cpOrigin:e.cpOrigin,appId:e.appId,...e.owner===void 0?{}:{owner:e.owner},...e.storageNamespace===void 0?{}:{storageNamespace:e.storageNamespace},mode:e.mode,signal:e.signal,locks:e.locks,allowLoopbackHttp:e.allowLoopbackHttp===!0,allowNativeLoopbackHttp:e.allowNativeLoopbackHttp===!0}),o=null,s=null,r=null;try{if(!Lt(i.origin,i.allowLoopbackHttp===!0,i.allowNativeLoopbackHttp?"native":void 0))throw Ye();{let l=i.cpOrigin,p=new URL(l),d=i.allowLoopbackHttp&&ot(l);if(p.origin!==l||p.username||p.password||p.protocol!=="https:"&&!d)throw Ye()}if(i.owner!==void 0&&!Fo(i.owner)||!["fresh","existing","open"].includes(i.mode)||!Hc(i.appId)||i.signal.aborted||Rt()!==i.origin||!globalThis.indexedDB||!globalThis.crypto?.subtle||typeof CryptoKey!="function")throw Ye();let a=await $P(i.locks,i,i.signal);if(o=new n(i,a),o.check(),i.mode!=="existing"){s=t(),o.check(),o.bound(s);let l=KP(await crypto.subtle.generateKey({name:"AES-GCM",length:256},!1,["encrypt","decrypt"]));o.check(),r={version:1,revision:0,key:l,encrypted:await o.encrypt(l,0,s)},s.fill(0),s=null}o.db=await o.openDatabase(r),o.check(),o.db.onversionchange=()=>{o.close()},o.record=await o.readRecord(),o.check(),s=await o.decrypt(o.record),o.check(),o.bound(s);let c={store:o,plaintext:s};return s=null,c}catch(a){throw await o?.close(),Ye(a instanceof We&&a.reason==="busy"?"busy":"unavailable")}finally{s?.fill(0),r?.encrypted.fill(0)}}isCurrent(){try{return this.check(),!0}catch{return!1}}check(){if(this.closing||this.options.signal.aborted||Rt()!==this.options.origin)throw Ye()}bound(e){if(!(e instanceof Uint8Array)||!e.length||e.length>VP)throw Ye()}aad(e){return new TextEncoder().encode(`${this.namespace}:${e}`)}async encrypt(e,t,i){this.check(),this.bound(i);let o=crypto.getRandomValues(new Uint8Array(12)),s=this.aad(t),r=new Uint8Array(i),a=null;try{a=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:o,additionalData:s},e,r)),this.check();let c=new Uint8Array(12+a.length);return c.set(o),c.set(a,12),c}finally{r.fill(0),a?.fill(0),o.fill(0),s.fill(0)}}async decrypt(e){this.check();let t=this.aad(e.revision),i=new Uint8Array(e.encrypted.subarray(0,12)),o=new Uint8Array(e.encrypted.subarray(12));try{let s=new Uint8Array(await crypto.subtle.decrypt({name:"AES-GCM",iv:i,additionalData:t},e.key,o));try{return this.check(),this.bound(s),s}catch{throw s.fill(0),Ye()}}finally{i.fill(0),o.fill(0),t.fill(0)}}openDatabase(e){return new Promise((t,i)=>{this.check();let o=this.options,s=o.owner===void 0?`mdbase.app.installation.v1.${encodeURIComponent(o.cpOrigin)}.${o.appId}`:`mdbase.app.installation.v2.${encodeURIComponent(o.cpOrigin)}.${encodeURIComponent(o.owner)}.${o.appId}`,r=indexedDB.open(s,1),a=!1,c=!1,l=()=>{a=!0;try{r.transaction?.abort()}catch{}i(Ye())},p=()=>this.options.signal.removeEventListener("abort",l);this.options.signal.addEventListener("abort",l,{once:!0}),r.onblocked=l,r.onupgradeneeded=()=>{try{if(this.check(),a||!e||r.result.objectStoreNames.length)throw Ye();r.result.createObjectStore(Ma).add(e,Uf),c=!0}catch{r.transaction?.abort()}},r.onerror=()=>{p(),i(Ye())},r.onsuccess=()=>{p();try{if(this.check(),a||this.options.mode==="fresh"&&!c||r.result.objectStoreNames.length!==1||!r.result.objectStoreNames.contains(Ma))throw Ye();t(r.result)}catch{r.result.close(),i(Ye())}}})}readRecord(){return new Promise((e,t)=>{if(this.check(),!this.db)throw Ye();let i=this.db.transaction(Ma,"readonly",{durability:"strict"}),o=null,s=()=>{try{i.abort()}catch{}},r=()=>this.options.signal.removeEventListener("abort",s);this.options.signal.addEventListener("abort",s,{once:!0}),i.onerror=i.onabort=()=>{r(),o?.encrypted.fill(0),t(Ye())},i.oncomplete=()=>{r();try{if(this.check(),!o)throw Ye();e(o)}catch{o?.encrypted.fill(0),t(Ye())}};let a=i.objectStore(Ma).get(Uf);a.onsuccess=()=>{try{this.check(),o=FP(a.result)}catch{s()}}})}async commit(e){let t=null;try{if(this.check(),!this.record||this.record.revision>=Number.MAX_SAFE_INTEGER)throw Ye();let i=this.record;t={version:1,revision:i.revision+1,key:i.key,encrypted:await this.encrypt(i.key,i.revision+1,e)},this.check(),await new Promise((o,s)=>{if(this.check(),!this.db)throw Ye();let r=this.db.transaction(Ma,"readwrite",{durability:"strict"}),a=()=>{try{r.abort()}catch{}},c=()=>this.options.signal.removeEventListener("abort",a);this.options.signal.addEventListener("abort",a,{once:!0}),r.onerror=r.onabort=()=>{c(),s(Ye())},r.oncomplete=()=>{c();try{this.check(),o()}catch{s(Ye())}};let l=r.objectStore(Ma),p=l.get(Uf);p.onsuccess=()=>{let d=null;try{if(this.check(),d=FP(p.result),d.revision!==i.revision||!yq(d.encrypted,i.encrypted))throw Ye();l.put(t,Uf)}catch{a()}finally{d?.encrypted.fill(0)}}}),this.check(),i.encrypted.fill(0),this.record=t,t=null}catch{throw await this.close(),Ye()}finally{t?.encrypted.fill(0)}}close(){return this.closeResult??=(async()=>{this.closing=!0,this.db?.close(),this.db=null,this.record?.encrypted.fill(0),this.record=null,await this.lease.release()})()}}});function _e(n){if(typeof n!="string"||!gq.test(n)||U(n).every(e=>e===0))throw q("response");return n}function Kt(n,e){if(typeof n!="string"||!e.test(n))throw q("response");return n}function Ce(n,e){if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).sort().join()!==e.split(",").sort().join())throw q("response");return n}function bq(n){if(typeof n!="string"||n.length>320||!/^[^\s@\u0000-\u001f\u007f]+@[^\s@\u0000-\u001f\u007f]+$/.test(n))throw q("response");return n}function La(n,e=!1){let[t,i,o,s]=e?["accountEmail","portalConfirmed","accountProvider","accountLogin"]:["account_email","account_selection_confirmed","account_provider","account_login"];return[t,i,o,s].some(r=>Object.hasOwn(n,r))?`,${t},${i}${Object.hasOwn(n,o)||Object.hasOwn(n,s)?`,${o},${s}`:""}`:""}function $f(n,e=!1){let t=La(n,e);if(!t)return{};let i=e?n.accountEmail:n.account_email,o=e?n.portalConfirmed:n.account_selection_confirmed,s=e?n.accountProvider:n.account_provider,r=e?n.accountLogin:n.account_login;if(o!==!0)throw q("response");if(t.includes(e?"accountProvider":"account_provider")){if(i!==null||s!=="github"||typeof r!="string"||!r.length||new TextEncoder().encode(r).byteLength>100||/[\s\u0000-\u001f\u007f]/.test(r))throw q("response");return{accountEmail:null,portalConfirmed:!0,accountProvider:"github",accountLogin:r}}return{accountEmail:bq(i),portalConfirmed:!0}}function HP(n,e){if(n.portalConfirmed&&(e.portalConfirmed!==!0||n.accountEmail!==e.accountEmail||n.accountProvider!==e.accountProvider||n.accountLogin!==e.accountLogin))throw q("binding")}function Lb(n){return Object.hasOwn(n,"timer_consent")||Object.hasOwn(n,"timer_grants")?",timer_consent,timer_grants":""}function qb(n,e,t,i,o){if(!Lb(n))return;if(![!0,!1,null].includes(n.timer_consent)||!Array.isArray(n.timer_grants)||n.timer_grants.length>1e3)throw q("response");let s=n.timer_grants.map(r=>{let a=Ce(r,"grant_id,collection_id,declaration_digest"),c=_e(a.collection_id);if(!t.includes(c))throw q("response");return Object.freeze({grantId:_e(a.grant_id),collectionId:c,declarationDigest:Kt(a.declaration_digest,/^[0-9a-f]{64}$/)})});if(new Set(s.map(r=>r.grantId)).size!==s.length||new Set(s.map(r=>r.collectionId)).size!==s.length||(n.timer_consent===!0?!i||!o||!s.some(r=>r.collectionId===o):s.length!==0)||new Set(s.map(r=>r.declarationDigest)).size>1)throw q("response");return n.timer_consent===null?void 0:Object.freeze({requestId:e,approved:n.timer_consent===!0,grants:Object.freeze(s.filter(r=>r.collectionId===o))})}function Tb(n){let e=Ce(n,"grantId,kind,targetDigest,channelId,pending");if(!["web_push","fcm"].includes(e.kind)||![null,"register","delete"].includes(e.pending)||e.channelId===null&&e.pending!=="register")throw q("response");return Object.freeze({grantId:_e(e.grantId),kind:e.kind,targetDigest:Kt(e.targetDigest,/^[0-9a-f]{64}$/),channelId:e.channelId===null?null:_e(e.channelId),pending:e.pending})}function Mb(n){if(!Array.isArray(n)||n.length>1e3)throw q("response");let e=new Set;return Object.freeze(n.map(t=>{let i=c=>t&&typeof t=="object"&&c in t?`,${c}`:"",o=Ce(t,`collection_id,display_name,role${i("availability")}${i("file_actions")}`),s=_e(o.collection_id);if(e.has(s)||typeof o.display_name!="string"||!o.display_name.length||o.display_name.length>1024||o.role!=="owner"&&o.role!=="editor"&&o.role!=="viewer")throw q("response");let r=zn(o.availability),a="file_actions"in o?jb(o.file_actions):null;return e.add(s),Object.freeze({collectionId:s,displayName:o.display_name,role:o.role,...r?{availability:r}:{},...a?{fileActions:a}:{}})}))}function jb(n,e=zf,t=!0){if(!Array.isArray(n)||n.length>zf.length||!t&&!n.length||new Set(n).size!==n.length||n.some(i=>!e.includes(i)))throw q("response");return Object.freeze(zf.filter(i=>n.includes(i)))}function GP(n){let e=n.collectionHint??null;if(e!==null&&(typeof e!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(e)||e==="00000000-0000-0000-0000-000000000000"))throw q("binding");return e}function YP(n,e,t){return n===e||t!==null&&n===`${e}?collection_hint=${t}`?n:null}var Xe,q,Eb,Cn,gq,zf,ja,Yc=I(()=>{"use strict";jP();Lr();ge();bt();Fc();Qr();WP();eo();Fn();Xe=class extends Error{constructor(t,i){super(`app installation sign-in: ${t}`);this.reason=t;this.server=i;this.name="AppInstallationSignInError"}reason;server},q=n=>new Xe(n),Eb=new WeakSet,Cn=n=>Array.from(n,e=>e.toString(16).padStart(2,"0")).join(""),gq=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;zf=["list","read","add","replace","move","delete"];ja=class n{constructor(e,t,i){this.store=e;this.state=t;this.options=i;this.request=i.fetch??((o,s)=>globalThis.fetch(o,s)),this.parent=i.signal,this.parent.addEventListener("abort",this.onAbort,{once:!0}),this.check()}store;state;options;closed=!1;busy=!1;nativeAcknowledged=!1;expiredRequestId=null;wrongAccountRequestId=null;lifetime=new AbortController;request;parent;onAbort=()=>{this.close()};static async open(e){let t=Object.freeze({...e,...e.recoveryFor?{recoveryFor:Object.freeze({...e.recoveryFor})}:{}}),i=null;try{if(!["lab","staging","production"].includes(t.environment)||!Hc(t.appId)||typeof t.appName!="string"||!t.appName.length||t.appName.length>100||t.appName.trim()!==t.appName||t.installationKind!==void 0&&t.installationKind!=="app-runtime"&&t.installationKind!=="mobile")throw q("binding");let o=t.environmentSelection;if(t.requestedCreateCollections!==void 0&&typeof t.requestedCreateCollections!="boolean"||t.freshRequestedCreateCollections!==void 0&&typeof t.freshRequestedCreateCollections!="boolean")throw q("binding");if(t.recoveryFor!==void 0){let r=Ce(t.recoveryFor,"accountId,collectionId");if(_e(r.accountId),_e(r.collectionId),!t.owner||t.requestedCreateCollections===!0||t.freshRequestedCreateCollections===!0)throw q("binding")}if(o!==void 0&&(!PP(o)||o.environment!==t.environment||o.appOrigin!==t.origin||o.cpOrigin!==t.cpOrigin||t.allowLoopbackHttp===!0&&!o.allowLoopbackHttp||t.allowNativeLoopbackHttp===!0&&!o.allowNativeLoopbackHttp))throw q("binding");i=await Df.open({...t,allowLoopbackHttp:o?.allowLoopbackHttp??t.allowLoopbackHttp,allowNativeLoopbackHttp:o?.allowNativeLoopbackHttp??t.allowNativeLoopbackHttp},()=>{let r=crypto.getRandomValues(new Uint8Array(32));try{let a=`pair_${btoa(String.fromCharCode(...r)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`;return new TextEncoder().encode(JSON.stringify({version:3,renewal:null,requestedCreateCollections:t.requestedCreateCollections??t.freshRequestedCreateCollections??!1,collectionIds:[],createCollections:!1,consentRequest:null,requestId:crypto.randomUUID(),installationId:crypto.randomUUID(),deviceId:crypto.randomUUID(),secret:a,appId:t.appId,...t.owner===void 0?{}:{owner:t.owner},kind:t.installationKind??"app-runtime",origin:t.origin,cpOrigin:t.cpOrigin,environment:t.environment,selection:null,confirmed:!1,nativeStarted:!1,proof:null,token:null,...t.recoveryFor?{recoveryFor:t.recoveryFor}:{}}))}finally{r.fill(0)}});let s=this.decode(i.plaintext,t);return new n(i.store,s,t)}catch(o){throw await i?.store.close(),o instanceof Xe?o:o instanceof Gc&&o.reason==="busy"?q("open_in_another_tab"):q("recovery_required")}finally{i?.plaintext.fill(0)}}static decode(e,t){let i=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(e)),o="version,requestId,installationId,deviceId,secret,appId,kind,origin,cpOrigin,environment,selection,confirmed,nativeStarted,proof,token",s=i?.version===1,r=`${o},requestedCreateCollections,collectionIds,createCollections,consentRequest`,a=s?{...Ce(i,o),version:3,renewal:null,requestedCreateCollections:!1,collectionIds:[],createCollections:!1,consentRequest:null}:i?.version===2?{...Ce(i,r),version:3,renewal:null}:Ce(i,`${r},renewal${Object.hasOwn(i,"collectionSelection")?",collectionSelection":""}${Object.hasOwn(i,"timerConsent")?",timerConsent":""}${Object.hasOwn(i,"timerChannel")?",timerChannel":""}${Object.hasOwn(i,"owner")?",owner":""}${Object.hasOwn(i,"collectionListing")?",collectionListing":""}${Object.hasOwn(i,"collectionRecoveries")?",collectionRecoveries":""}${Object.hasOwn(i,"recoveryFor")?",recoveryFor":""}${Object.hasOwn(i,"nativeAuthorization")?",nativeAuthorization":""}${Object.hasOwn(i,"nativeSelection")?",nativeSelection":""}${Object.hasOwn(i,"nativeGrants")?",nativeGrants":""}`);if(a.version!==3||a.appId!==t.appId||a.owner!==t.owner||a.kind!==(t.installationKind??"app-runtime")||a.origin!==t.origin||a.cpOrigin!==t.cpOrigin||a.environment!==t.environment||typeof a.confirmed!="boolean"||typeof a.nativeStarted!="boolean")throw q("recovery_required");let c=a;if(typeof c.requestedCreateCollections!="boolean"||typeof c.createCollections!="boolean"||t.requestedCreateCollections!==void 0&&t.requestedCreateCollections!==c.requestedCreateCollections)throw q("binding");if(c.collectionIds=this.collectionIds(c.collectionIds),c.recoveryFor!==void 0){let l=Ce(c.recoveryFor,"accountId,collectionId");_e(l.accountId),_e(l.collectionId)}if(c.recoveryFor===void 0!=(t.recoveryFor===void 0)||c.recoveryFor?.accountId!==t.recoveryFor?.accountId||c.recoveryFor?.collectionId!==t.recoveryFor?.collectionId||c.recoveryFor&&(c.requestedCreateCollections||c.createCollections||c.selection&&c.selection.accountId!==c.recoveryFor.accountId||c.token&&(c.nativeSelection?c.collectionIds.length!==0||c.nativeSelection.collectionId!==c.recoveryFor.collectionId:c.collectionIds.length!==1||c.collectionIds[0]!==c.recoveryFor.collectionId||c.collectionSelection?.selectedCollectionId!==c.recoveryFor.collectionId)))throw q("recovery_required");if(c.consentRequest!==null){let l=Ce(c.consentRequest,`requestId,secret,requestedCreateCollections,challenge,completed,addedCollectionIds,approvedCreateCollections${La(c.consentRequest,!0)}`);if($f(l,!0),_e(l.requestId),Kt(l.secret,/^pair_[A-Za-z0-9_-]{43}$/),l.requestId===c.requestId||l.secret===c.secret||typeof l.requestedCreateCollections!="boolean"||typeof l.completed!="boolean"||typeof l.approvedCreateCollections!="boolean"||l.approvedCreateCollections&&!l.requestedCreateCollections||(l.challenge!==null&&Kt(l.challenge,/^[0-9a-f]{64}$/),this.collectionIds(l.addedCollectionIds),!c.token||!c.selection||l.completed&&l.challenge===null))throw q("recovery_required")}if(c.createCollections&&!c.token||c.collectionIds.length&&!c.token)throw q("recovery_required");if(c.collectionSelection!==void 0){let l=Ce(c.collectionSelection,"requestId,selectedCollectionId,createdCollectionIds");if(_e(l.requestId),!c.token||!c.collectionIds.includes(_e(l.selectedCollectionId))||this.collectionIds(l.createdCollectionIds).some(p=>!c.collectionIds.includes(p)))throw q("recovery_required")}if(_e(c.requestId),_e(c.installationId),_e(c.deviceId),Kt(c.secret,/^pair_[A-Za-z0-9_-]{43}$/),c.renewal!==null){let l=Ce(c.renewal,"requestId,secret");if(_e(l.requestId),Kt(l.secret,/^pair_[A-Za-z0-9_-]{43}$/),l.requestId===c.requestId||l.secret===c.secret)throw q("recovery_required")}if(c.timerChannel!==void 0){if(!c.token||!c.selection)throw q("recovery_required");try{c.timerChannel=Tb(c.timerChannel)}catch{throw q("recovery_required")}}if(c.timerConsent!==void 0){let l=Ce(c.timerConsent,"requestId,approved,grants");if(_e(l.requestId),!c.token||!c.selection||typeof l.approved!="boolean"||!Array.isArray(l.grants)||l.grants.length>1)throw q("recovery_required");let p=l.grants.map(u=>{let f=Ce(u,"grantId,collectionId,declarationDigest");return{grant_id:f.grantId,collection_id:f.collectionId,declaration_digest:f.declarationDigest}}),d=c.selection.portalConfirmed===!0||c.consentRequest?.portalConfirmed===!0;c.timerConsent=qb({timer_consent:l.approved,timer_grants:p},_e(l.requestId),c.collectionIds,d,p[0]?.collection_id)}if(c.selection!==null){let l=Ce(c.selection,`accountId,connectorId,challenge,approvalMode${La(c.selection,!0)}`);if(_e(l.accountId),_e(l.connectorId),Kt(l.challenge,/^[0-9a-f]{64}$/),l.approvalMode!=="password-ak1")throw q("response");$f(l,!0)}if(c.proof!==null&&this.proof(c.proof),c.token!==null&&Kt(c.token,/^idev_[A-Za-z0-9_-]{43}$/),c.confirmed&&!c.selection||c.nativeStarted&&!c.confirmed||c.proof&&!c.nativeStarted||c.token&&!c.proof||c.collectionListing!==void 0&&(!c.token||!c.confirmed||!c.selection||!c.proof||Mb(c.collectionListing).some(l=>!c.collectionIds.includes(l.collectionId))))throw q("recovery_required");if(c.collectionRecoveries!==void 0){if(!c.token||!c.confirmed||!c.selection||!c.proof||!c.collectionRecoveries||typeof c.collectionRecoveries!="object"||Array.isArray(c.collectionRecoveries))throw q("recovery_required");let l=Object.entries(c.collectionRecoveries);if(l.length>1e3||l.some(([p,d])=>!(c.collectionIds.includes(_e(p))||c.nativeGrants?.some(u=>u.collection_id===p))||d!==null&&!_e(d)))throw q("recovery_required")}if(c.nativeAuthorization){let l=Ce(c.nativeAuthorization,"requestId,authorizationId,applicationId,manifestDigest");if(_e(l.requestId),_e(l.authorizationId),l.applicationId!==c.appId||!c.proof||!c.confirmed)throw q("recovery_required");Kt(l.manifestDigest,/^[0-9a-f]{64}$/)}if(c.nativeSelection){let l=Ce(c.nativeSelection,"requestId,authorizationRequestId,collectionId");if(_e(l.requestId),_e(l.authorizationRequestId),_e(l.collectionId),!c.token||!c.nativeAuthorization||l.requestId!==c.nativeAuthorization.requestId||l.authorizationRequestId!==c.nativeAuthorization.authorizationId)throw q("recovery_required")}if(c.nativeGrants&&(!c.token||!c.selection||!Array.isArray(c.nativeGrants)||c.nativeGrants.length>1e3||(c.nativeGrants=c.nativeGrants.map(l=>Ob(l,{requestId:c.requestId,authorizationRequestId:l.authorization_request_id,collectionId:l.collection_id},c.selection.accountId,c.appId,c.origin,l.application_manifest_digest)),new Set(c.nativeGrants.map(l=>l.collection_id)).size!==c.nativeGrants.length)))throw q("recovery_required");return c}static collectionIds(e){if(!Array.isArray(e)||e.length>1e3)throw q("response");let t=e.map(_e);if(new Set(t).size!==t.length)throw q("response");return t}static proof(e){let t=Ce(e,"sign_pk,kem_pk,noise_pk,sig");return{sign_pk:Kt(t.sign_pk,/^[0-9a-f]{64}$/),kem_pk:Kt(t.kem_pk,/^[0-9a-f]{64}$/),noise_pk:Kt(t.noise_pk,/^[0-9a-f]{64}$/),sig:Kt(t.sig,/^[0-9a-f]{128}$/)}}isCurrent(){return!this.closed&&!this.parent.aborted&&!this.lifetime.signal.aborted&&this.store.isCurrent()}check(){if(!this.isCurrent())throw q("fenced")}view(){this.check();let e=this.state,t=e.consentRequest?.portalConfirmed?e.consentRequest:e.selection;return Object.freeze({requestId:e.requestId,installationId:e.installationId,deviceId:e.deviceId,appId:e.appId,kind:e.kind,verificationUri:`${e.cpOrigin}/pair/${e.requestId}`,state:e.token?"paired":e.proof?"awaiting_approval":e.confirmed?"account_confirmed":e.selection?"account_selected":"pending",accountId:e.selection?.accountId??null,accountEmail:t?.accountEmail??null,...t?.accountProvider?{accountProvider:t.accountProvider,accountLogin:t.accountLogin}:{},collectionSelection:e.collectionSelection?Object.freeze({...e.collectionSelection,createdCollectionIds:Object.freeze([...e.collectionSelection.createdCollectionIds])}):null,nativeSelection:e.nativeSelection&&e.nativeGrants?.some(i=>i.authorization_request_id===e.nativeSelection.authorizationRequestId&&i.collection_id===e.nativeSelection.collectionId)?Object.freeze({...e.nativeSelection}):null,nativeGrants:Object.freeze([...e.nativeGrants??[]]),...e.timerConsent?{timerConsent:e.timerConsent}:{},collectionIds:Object.freeze([...e.collectionIds]),createCollections:e.createCollections,requestedCreateCollections:e.requestedCreateCollections})}async save(e){this.check();let t=new TextEncoder().encode(JSON.stringify(e));try{await this.store.commit(t),this.check(),this.state=e}catch{throw await this.close(),q("recovery_required")}finally{t.fill(0)}}async exclusive(e){if(this.check(),this.busy)throw q("busy");this.busy=!0;try{return await e()}finally{this.busy=!1}}async json(e,t,i,o){this.check(),this.wrongAccountRequestId=null;let s=new AbortController,r=()=>s.abort(),a=setTimeout(r,15e3);this.lifetime.signal.addEventListener("abort",r,{once:!0});let c=null,l=null,p=!1,d=!1,u=new Uint8Array(o?.get||e.endsWith("/exchange")?1024*1024:64*1024),f=0;try{if(c=await this.request(`${this.state.cpOrigin}${e}`,{method:o?.get?"GET":o?.patch?"PATCH":o?.delete?"DELETE":"POST",headers:{...o?{authorization:`Bearer ${o.bearer}`}:t?{authorization:`Bearer ${this.state.secret}`}:{},...i===void 0?{}:{"content-type":"application/json"}},body:i===void 0?void 0:JSON.stringify(i),credentials:"omit",redirect:"error",cache:"default",referrerPolicy:"no-referrer",signal:s.signal}),this.check(),s.signal.aborted)throw q("outcome_unknown");let h=c.headers.get("content-length");if(h!==null&&/^(0|[1-9][0-9]*)$/.test(h)&&Number(h)>u.length)throw s.abort(),q("response");if(!c.body)throw q("response");for(l=c.body.getReader();;){let{done:b,value:w}=await l.read();try{if(this.check(),s.signal.aborted)throw q("outcome_unknown");if(b){p=!0;break}if(f+w.length>u.length)throw s.abort(),q("response");u.set(w,f),f+=w.length}finally{w?.fill(0)}}d=!0;let m=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(u.subarray(0,f)));if(!m||typeof m!="object"||Array.isArray(m))throw q("response");if(!c.ok){let b=m.error;if(!o&&c.status===404&&(e==="/v1/pairing-requests"||e===`/v1/pairing-requests/${this.state.requestId}/exchange`||e===`/v1/pairing-requests/${this.state.requestId}/attest`)&&b&&typeof b=="object"&&!Array.isArray(b)&&(b.code==="installation_pairing_expired"||b.code==="installation_pairing_denied"))throw this.expiredRequestId=this.state.requestId,q(b.code==="installation_pairing_expired"?"expired":"refused");let w=Li(c.status,m,c.headers);throw new Xe(St(w)??"refused",w)}return{status:c.status,value:m}}catch(h){this.check();let m=h instanceof Xe?h:q(o?.get&&!s.signal.aborted&&!(h instanceof DOMException&&h.name==="AbortError")?d?"response":!c||c.ok?"unavailable":"refused":"outcome_unknown");throw c&&!c.ok&&Eb.add(m),m}finally{u.fill(0),p||(l?.cancel()??c?.body?.cancel())?.catch(()=>{}),l?.releaseLock(),clearTimeout(a),this.lifetime.signal.removeEventListener("abort",r)}}start(e={}){let t;try{t=GP(e)}catch(i){return Promise.reject(i)}return this.exclusive(()=>this.startRequest(t))}renewExpiredPairing(){return this.exclusive(async()=>{let e=this.state;if(e.token||this.expiredRequestId!==e.requestId)throw q("recovery_required");let t=crypto.getRandomValues(new Uint8Array(32));try{let i=crypto.randomUUID(),o=`pair_${btoa(String.fromCharCode(...t)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`;if(i===e.requestId||i===e.renewal?.requestId||o===e.secret)throw q("binding");return await this.save({...e,requestId:i,secret:o,renewal:{requestId:e.requestId,secret:e.secret}}),this.expiredRequestId=null,await this.startRequest()}finally{t.fill(0)}})}async startRequest(e=null){if(this.state.token)return this.view();let t=this.state;if(t.recoveryFor&&e!==null&&e!==t.recoveryFor.collectionId)throw q("binding");let{status:i,value:o}=await this.json("/v1/pairing-requests",!1,{installation:{app_id:t.appId,request_id:t.requestId,pairing_secret:t.secret,installation_id:t.installationId,device_id:t.deviceId,kind:t.kind,requested_create_collections:t.requestedCreateCollections,...t.recoveryFor?{recovery_collection_id:t.recoveryFor.collectionId}:{},...t.renewal?{renewal:{request_id:t.renewal.requestId,pairing_secret:t.renewal.secret}}:{}},...e?{collection_hint:e}:{}});if(i!==200&&i!==201)throw q("response");Ce(o,`pairing_id,pairing_secret,verification_uri,expires_in,installation_device,app_id,app_origin,app_name${this.recoveryTargetKeys()}`),this.assertRecoveryTarget(o);let s=YP(o.verification_uri,`${t.cpOrigin}/pair/${t.requestId}`,e);if(o.pairing_id!==t.requestId||o.pairing_secret!==t.secret||s===null||o.installation_device!==!0||o.app_id!==t.appId||o.app_origin!==t.origin||o.app_name!==this.options.appName||!Number.isSafeInteger(o.expires_in)||o.expires_in<0||o.expires_in>600)throw q("response");return this.expiredRequestId=null,Object.freeze({...this.view(),verificationUri:s})}recoveryTargetKeys(){return this.state.recoveryFor?",recovery_collection_id":""}assertRecoveryTarget(e){if(this.state.recoveryFor&&_e(e.recovery_collection_id)!==this.state.recoveryFor.collectionId)throw q("binding")}selected(e){let t=this.state;if(this.assertRecoveryTarget(e),e.request_id!==t.requestId||e.installation_id!==t.installationId||e.device_id!==t.deviceId||e.kind!==t.kind||e.app_id!==t.appId||e.app_origin!==t.origin||e.approval_mode!=="password-ak1"||!Number.isSafeInteger(e.expires_at)||e.expires_at<0)throw q("response");let i={accountId:_e(e.account_id),connectorId:_e(e.connector_id),challenge:Kt(e.challenge,/^[0-9a-f]{64}$/),approvalMode:"password-ak1"};if(t.selection&&(i.accountId!==t.selection.accountId||i.connectorId!==t.selection.connectorId||i.challenge!==t.selection.challenge||i.approvalMode!==t.selection.approvalMode))throw q("binding");if(Object.assign(i,$f(e)),t.selection&&HP(t.selection,i),t.recoveryFor&&i.accountId!==t.recoveryFor.accountId)throw e.status==="account_selected"&&!t.selection&&!t.confirmed&&!t.nativeStarted&&!t.proof&&!t.token?(this.wrongAccountRequestId=t.requestId,q("recovery_account_mismatch")):q("binding");return this.wrongAccountRequestId=null,i}canAbandonWrongAccount(){let e=this.state;return this.isCurrent()&&e.recoveryFor!==void 0&&this.wrongAccountRequestId===e.requestId&&!e.selection&&!e.confirmed&&!e.nativeStarted&&!e.proof&&!e.token&&!e.consentRequest}exchange(){return this.exclusive(async()=>{if(this.state.token)return this.view();let{status:e,value:t}=await this.json(`/v1/pairing-requests/${this.state.requestId}/exchange`,!0);if(t.status==="pending"){if(Ce(t,"status"),e!==202||this.state.selection)throw q("response");return this.view()}let i=`status,request_id,account_id,connector_id,device_id,installation_id,kind,challenge,approval_mode,app_id,app_origin,expires_at${La(t)}${this.recoveryTargetKeys()}`;if(t.status==="account_selected"||t.status==="awaiting_approval"){if(Ce(t,i),e!==202||t.status==="awaiting_approval"&&!this.state.proof)throw q("response");let b=this.selected(t);return JSON.stringify(b)!==JSON.stringify(this.state.selection)&&await this.save({...this.state,selection:b}),this.view()}let o=Object.hasOwn(t,"collection_ids")||Object.hasOwn(t,"create_collections"),s=Object.hasOwn(t,"selected_collection_id")||Object.hasOwn(t,"created_collection_ids"),r=Object.hasOwn(t,"native_selection");if(Ce(t,`${i},connector,token,registration${o?",collection_ids,create_collections":""}${s?",selected_collection_id,created_collection_ids":""}${r?",native_selection":""}${Lb(t)}`),e!==200||t.status!=="paired"||!this.state.confirmed||!this.state.proof)throw q("response");let a=this.selected(t),c=Ce(t.connector,"id,name"),l=Ce(t.registration,"device_id,sign_pk,kem_pk,noise_pk");if(c.id!==a.connectorId||c.name!==this.options.appName||l.device_id!==this.state.deviceId||l.sign_pk!==this.state.proof.sign_pk||l.kem_pk!==this.state.proof.kem_pk||l.noise_pk!==this.state.proof.noise_pk)throw q("binding");let p=o?n.collectionIds(t.collection_ids):[],d=o?t.create_collections:!1;if(typeof d!="boolean"||d&&!this.state.requestedCreateCollections)throw q("response");let u=s?this.collectionSelection(t,p,this.state.requestId):void 0,f=r?this.parseNativeSelection(t.native_selection,this.state.requestId):void 0;if(r&&(!o||s||d||p.length!==0||t.timer_consent===!0))throw q("response");if(this.state.recoveryFor&&f&&f.collectionId!==this.state.recoveryFor.collectionId||this.state.recoveryFor&&!f&&(d||p.length!==1||p[0]!==this.state.recoveryFor.collectionId||u?.selectedCollectionId!==this.state.recoveryFor.collectionId||u.createdCollectionIds.length!==0))throw q("binding");if(t.timer_consent===!0&&!u)throw q("response");let h=qb(t,this.state.requestId,p,a.portalConfirmed===!0,u?.selectedCollectionId),m=Kt(t.token,/^idev_[A-Za-z0-9_-]{43}$/);return await this.save({...this.state,selection:a,token:m,collectionIds:p,createCollections:d,nativeSelection:f,...f?{collectionSelection:void 0}:u?{collectionSelection:u}:{},...h?{timerConsent:h}:{}}),this.view()})}parseNativeSelection(e,t){let i=Ce(e,"authorization_request_id,collection_id"),o=this.state.nativeAuthorization;if(!o||o.requestId!==t||_e(i.authorization_request_id)!==o.authorizationId)throw q("binding");return Object.freeze({requestId:t,authorizationRequestId:o.authorizationId,collectionId:_e(i.collection_id)})}pendingNativeSelection(){return this.check(),this.state.nativeSelection??null}nativeAuthorizationContext(e){this.check(),this.owned(e);let t=this.state,i=t.consentRequest&&!t.consentRequest.completed?t.consentRequest:null,o=i?.challenge??t.selection?.challenge,s=i?i.portalConfirmed:t.selection?.portalConfirmed;if(!t.proof||!t.confirmed||!s||!o||t.token&&!i)return null;let r=i?.requestId??t.requestId,a=t.nativeAuthorization;return Object.freeze({requestId:r,accountId:t.selection.accountId,appId:t.appId,challenge:o,...a?.requestId===r?{authorizationId:a.authorizationId}:{}})}attachNativeAuthorization(e,t,i){let o=Object.freeze({...t}),s=Object.freeze({...i}),r=e.isCurrent;return this.exclusive(async()=>{this.owned(e);let a=this.nativeAuthorizationContext(e);if(!a||e.isCurrent!==r||a.requestId!==o.requestId||a.challenge!==o.challenge||a.accountId!==o.accountId||s.applicationId!==a.appId||!/^[0-9a-f]{64}$/.test(s.manifestDigest)||(_e(s.authorizationId),a.authorizationId&&a.authorizationId!==s.authorizationId))throw q("binding");await this.save({...this.state,nativeAuthorization:{...s,requestId:a.requestId}});let c=a.requestId===this.state.requestId?this.state.secret:this.state.consentRequest.secret,{status:l,value:p}=await this.json(`/v1/pairing-requests/${a.requestId}/native-authorization`,!1,{authorization_request_id:s.authorizationId},{bearer:c});if(this.owned(e),e.isCurrent!==r)throw q("fenced");if(Ce(p,"request_id,authorization_request_id,account_id"),l!==200||p.request_id!==a.requestId||p.authorization_request_id!==s.authorizationId||p.account_id!==a.accountId)throw q("binding")})}completeNativeAuthorization(e,t){let i=this.consentGuard(e);return this.exclusive(async()=>{i();let o=this.state,s=o.nativeSelection,r=o.nativeAuthorization;if(!this.nativeAcknowledged||!s||!r)throw q("binding");let a=Ob(t,s,o.selection.accountId,o.appId,o.origin,r.manifestDigest);await this.save({...o,nativeGrants:[...(o.nativeGrants??[]).filter(c=>c.collection_id!==s.collectionId),a]}),i()})}collectionSelection(e,t,i){let o=_e(e.selected_collection_id),s=n.collectionIds(e.created_collection_ids);if(!t.includes(o)||s.some(r=>!t.includes(r)))throw q("response");return Object.freeze({requestId:i,selectedCollectionId:o,createdCollectionIds:Object.freeze(s)})}collectionConsentView(){this.check();let e=this.state.consentRequest;return e?Object.freeze({requestId:e.requestId,verificationUri:`${this.state.cpOrigin}/pair/${e.requestId}`,state:e.completed?"scope_updated":"pending",requestedCreateCollections:e.requestedCreateCollections,addedCollectionIds:Object.freeze([...e.addedCollectionIds]),approvedCreateCollections:e.approvedCreateCollections,accountEmail:e.accountEmail??null,...e.accountProvider?{accountProvider:e.accountProvider,accountLogin:e.accountLogin}:{},accountSelectionConfirmed:e.portalConfirmed===!0}):null}consentGuard(e){let t=e.isCurrent;return()=>{if(this.check(),this.owned(e),this.receipt(),e.isCurrent!==t)throw q("fenced")}}async consentWindow(e,t){try{return await t()}catch(i){let o=i instanceof Xe?i.server?.code:null;if((o==="installation_pairing_denied"||o==="installation_pairing_expired")&&i instanceof Xe&&i.server?.status===404){let s=this.state.consentRequest;throw s&&!s.completed&&s.requestId===e&&await this.save({...this.state,consentRequest:null}),q(o==="installation_pairing_expired"?"expired":"refused")}throw i}}startCollectionConsent(e,t=!1,i={}){let o=this.consentGuard(e),s;try{s=GP(i)}catch(a){return Promise.reject(a)}let r=async()=>{if(o(),this.state.recoveryFor||typeof t!="boolean")throw q("binding");let a=this.state.consentRequest;if(!a||a.completed){let h=crypto.getRandomValues(new Uint8Array(32));try{let m=`pair_${btoa(String.fromCharCode(...h)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`;a={requestId:crypto.randomUUID(),secret:m,requestedCreateCollections:t,challenge:null,completed:!1,addedCollectionIds:[],approvedCreateCollections:!1},await this.save({...this.state,consentRequest:a}),o()}finally{h.fill(0)}}else if(a.requestedCreateCollections!==t)throw q("binding");let c=this.state,l=c.token,p=a,{status:d,value:u}=await this.consentWindow(p.requestId,()=>this.json("/v1/pairing-requests",!1,{installation:{app_id:c.appId,request_id:p.requestId,pairing_secret:p.secret,installation_id:c.installationId,device_id:c.deviceId,kind:c.kind,requested_create_collections:p.requestedCreateCollections,reconsent:!0},...s?{collection_hint:s}:{}},{bearer:l}));o(),Ce(u,"pairing_id,pairing_secret,verification_uri,expires_in,installation_device,app_id,app_origin,app_name");let f=null;if(d!==200&&d!==201||u.pairing_id!==a.requestId||u.pairing_secret!==a.secret||(f=YP(u.verification_uri,`${c.cpOrigin}/pair/${a.requestId}`,s))===null||u.installation_device!==!0||u.app_id!==c.appId||u.app_origin!==c.origin||u.app_name!==this.options.appName||!Number.isSafeInteger(u.expires_in)||u.expires_in<0||u.expires_in>600||l!==this.state.token)throw q("response");return Object.freeze({...this.collectionConsentView(),verificationUri:f})};return this.exclusive(async()=>{let a=this.state.consentRequest,c=a!==null&&!a.completed;try{return await r()}catch(l){if(c&&this.state.consentRequest===null&&l instanceof Xe&&(l.reason==="refused"||l.reason==="expired"))return await r();throw l}})}exchangeCollectionConsent(e){let t=this.consentGuard(e);return this.exclusive(async()=>{t();let i=this.state.consentRequest,o=this.state;if(!i)throw q("binding");if(i.completed)return this.collectionConsentView();let{status:s,value:r}=await this.consentWindow(i.requestId,()=>this.json(`/v1/pairing-requests/${i.requestId}/exchange`,!1,void 0,{bearer:i.secret}));t();let a=La(r),c=`status,request_id,account_id,connector_id,device_id,installation_id,kind,challenge,approval_mode,app_id,app_origin,expires_at${a}`,l=r.status==="scope_updated",p=l&&(Object.hasOwn(r,"selected_collection_id")||Object.hasOwn(r,"created_collection_ids")),d=l&&Object.hasOwn(r,"native_selection");if(Ce(r,`${c}${l?",added_collection_ids,approved_create_collections":""}${p?",selected_collection_id,created_collection_ids":""}${d?",native_selection":""}${l?Lb(r):""}`),!l&&(s!==202||r.status!=="awaiting_approval")||l&&s!==200||r.request_id!==i.requestId||r.account_id!==o.selection.accountId||r.connector_id!==o.selection.connectorId||r.device_id!==o.deviceId||r.installation_id!==o.installationId||r.kind!==o.kind||r.app_id!==o.appId||r.app_origin!==o.origin||r.approval_mode!==o.selection.approvalMode||!Number.isSafeInteger(r.expires_at)||r.expires_at<0)throw q("binding");let u=$f(r);if(i.portalConfirmed&&!a)throw q("response");HP(i,u);let f=Kt(r.challenge,/^[0-9a-f]{64}$/);if(i.challenge!==null&&i.challenge!==f)throw q("binding");if(!l)return(i.challenge===null||a&&!i.portalConfirmed)&&await this.save({...o,consentRequest:{...i,...u,challenge:f}}),t(),this.collectionConsentView();let h=n.collectionIds(r.added_collection_ids);if(typeof r.approved_create_collections!="boolean"||r.approved_create_collections&&!i.requestedCreateCollections)throw q("response");let m=n.collectionIds([...new Set([...o.collectionIds,...h])]),b=p?this.collectionSelection(r,m,i.requestId):void 0,w=d?this.parseNativeSelection(r.native_selection,i.requestId):void 0;if(d&&(p||h.length!==0||r.approved_create_collections!==!1||r.timer_consent===!0)||r.timer_consent===!0&&!b)throw q("response");let g=qb(r,i.requestId,h,u.portalConfirmed===!0,b?.selectedCollectionId);return await this.save({...o,collectionIds:m,nativeSelection:w,...w?{collectionSelection:void 0}:b?{collectionSelection:b}:{},...g?{timerConsent:g}:{},createCollections:o.createCollections||r.approved_create_collections,consentRequest:{...i,...u,challenge:f,completed:!0,addedCollectionIds:h,approvedCreateCollections:r.approved_create_collections}}),t(),this.collectionConsentView()})}listApprovedCollections(e){let t=this.consentGuard(e);return this.exclusive(async()=>{t();let i;try{i=await this.json("/v1/next/collections?include=file_actions",!1,void 0,{bearer:this.state.token,get:!0})}catch(p){if(t(),p instanceof Xe&&p.reason==="unavailable"&&!p.server&&!Eb.has(p)&&this.state.collectionListing!==void 0)return Object.freeze(Mb(this.state.collectionListing).filter(d=>this.state.collectionIds.includes(d.collectionId)).map(d=>Object.freeze({...d,fileActions:Object.freeze([])})));if(p instanceof Xe&&(p.server||Eb.has(p))&&this.state.collectionListing!==void 0){let d={...this.state};delete d.collectionListing,await this.save(d),t()}throw p}t();let{status:o,value:s}=i;if(Ce(s,"collections"),o!==200)throw q("response");let r=Mb(s.collections),a=s.collections.filter(p=>this.state.collectionIds.includes(p.collection_id)).map(p=>{let d={...p};return delete d.file_actions,d}),c={...this.state};delete c.collectionListing;let l={...c,collectionListing:a};return await this.save(new TextEncoder().encode(JSON.stringify(l)).length<=128*1024?l:c),t(),r})}collectionRecoveries(){return this.check(),Object.freeze({...this.state.collectionRecoveries})}retireCollectionScope(e,t,i=null){let o=this.consentGuard(e);return this.exclusive(async()=>{if(o(),_e(t),!(this.state.collectionIds.includes(t)||this.state.nativeGrants?.some(s=>s.collection_id===t)))throw q("binding");if(i!==null){if(_e(i),this.state.collectionRecoveries?.[t]!==i)throw q("fenced")}else if(Object.hasOwn(this.state.collectionRecoveries??{},t))return;await this.saveRecovery(t,null),o()})}freshCollectionInstallation(e,t){let i=this.consentGuard(e);return this.exclusive(async()=>{if(i(),_e(t),!Object.hasOwn(this.state.collectionRecoveries??{},t))throw q("binding");let o=this.state.collectionRecoveries[t];if(o!==null)return o;let s=crypto.randomUUID();return await this.saveRecovery(t,s),i(),s})}async saveRecovery(e,t){let i={...this.state,collectionRecoveries:{...this.state.collectionRecoveries,[e]:t}};new TextEncoder().encode(JSON.stringify(i)).length>128*1024&&delete i.collectionListing,await this.save(i)}startFileAccess(e,t,i,o){let s=this.consentGuard(e),r;try{if(_e(t),r=jb([...i],zf,!1),r.length!==i.length)throw q("binding")}catch{return Promise.reject(q("binding"))}return this.exclusive(async()=>{s();let a=crypto.getRandomValues(new Uint8Array(32));try{let c=crypto.randomUUID(),l=`pair_${btoa(String.fromCharCode(...a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`,p=this.state,d=p.token,{status:u,value:f}=await this.json("/v1/pairing-requests",!1,{installation:{app_id:p.appId,request_id:c,pairing_secret:l,installation_id:p.installationId,device_id:p.deviceId,kind:p.kind,requested_create_collections:!1,reconsent:!0,file_access:{collection_id:t,actions:[...r],reason:o}}},{bearer:d});s(),Ce(f,"pairing_id,pairing_secret,verification_uri,expires_in,installation_device,app_id,app_origin,app_name");let h=`${p.cpOrigin}/pair/${c}`;if(u!==200&&u!==201||f.pairing_id!==c||f.pairing_secret!==l||f.verification_uri!==h||f.installation_device!==!0||f.app_id!==p.appId||f.app_origin!==p.origin||f.app_name!==this.options.appName||!Number.isSafeInteger(f.expires_in)||f.expires_in<0||f.expires_in>600||d!==this.state.token)throw q("response");return Object.freeze({requestId:c,secret:l,collectionId:t,actions:r,verificationUri:h,expiresAt:Date.now()+f.expires_in*1e3})}finally{a.fill(0)}})}exchangeFileAccess(e,t){let i=this.consentGuard(e);return this.exclusive(async()=>{i();let o=this.state,{status:s,value:r}=await this.json(`/v1/pairing-requests/${t.requestId}/exchange`,!1,void 0,{bearer:t.secret});if(i(),r.status==="pending"){if(Ce(r,"status"),s!==202)throw q("response");return Object.freeze({state:"pending"})}if(r.status==="account_selected"||r.status==="awaiting_approval"){if(Ce(r,`status,request_id,account_id,connector_id,device_id,installation_id,kind,challenge,approval_mode,app_id,app_origin,expires_at${La(r)}`),s!==202||r.request_id!==t.requestId||r.account_id!==o.selection?.accountId||r.installation_id!==o.installationId||r.device_id!==o.deviceId||r.app_id!==o.appId)throw q("binding");return Object.freeze({state:"pending"})}if(r.status==="declined"){if(Ce(r,"status,request_id"),s!==200||r.request_id!==t.requestId)throw q("response");return Object.freeze({state:"declined"})}if(Ce(r,"status,request_id,collection_id,file_actions"),s!==200||r.status!=="file_access_updated"||r.request_id!==t.requestId||r.collection_id!==t.collectionId)throw q("response");return Object.freeze({state:"granted",actions:jb(r.file_actions,t.actions,!1)})})}renameApprovedCollection(e,t,i){let o;try{_e(t),o=br(i)}catch{return Promise.reject(q("binding"))}let s=this.consentGuard(e);return this.exclusive(async()=>{if(s(),!this.state.collectionIds.includes(t))throw q("refused");let{status:r,value:a}=await this.json(`/v1/next/collections/${t}/name`,!1,{display_name:o},{bearer:this.state.token,patch:!0});s();let c=Ce(a,"collection_id,display_name");if(r!==200||c.collection_id!==t||c.display_name!==o)throw q("response");return Object.freeze({collectionId:t,displayName:o})})}deleteApprovedCollection(e,t,i){let o;try{_e(t),o=br(i)}catch{return Promise.reject(q("binding"))}let s=this.consentGuard(e);return this.exclusive(async()=>{if(s(),!this.state.collectionIds.includes(t))throw q("refused");let{status:r,value:a}=await this.json(`/v1/next/collections/${t}`,!1,{confirm_name:o},{bearer:this.state.token,delete:!0});s();let c=Ce(a,"collection_id,deleted");if(r!==200||c.collection_id!==t||c.deleted!==!0)throw q("response");return Object.freeze({collectionId:t,deleted:!0})})}signOutInstallation(){return this.exclusive(async()=>{let e=this.state.token;if(!e)throw q("binding");try{let{status:t,value:i}=await this.json("/v1/next/installation",!1,void 0,{bearer:e,delete:!0});if(t!==200||i.ok!==!0||i.revoked!==!0||!Number.isSafeInteger(i.collections)||i.collections<0||i.fence!=="closed"&&i.fence!=="committed_with_degraded_fence")throw q("response");return"revoked"}catch(t){if(t instanceof Xe&&t.server?.status===401&&t.server.code==="invalid_connector")return"already_signed_out";throw t}})}hasWebPushChannel(){return this.check(),this.state.timerChannel?.kind==="web_push"}confirmPortalSelectedAccount(){return this.exclusive(async()=>{let e=this.state.selection;if(!e?.portalConfirmed)throw q("account_confirmation_required");if(this.state.confirmed||await this.save({...this.state,confirmed:!0}),this.check(),this.state.selection!==e)throw q("binding");return this.view()})}confirmSelectedAccount(e){return this.exclusive(async()=>{if(!this.state.selection||e!==this.state.selection.accountId)throw q("binding");return this.state.confirmed||await this.save({...this.state,confirmed:!0}),this.view()})}confirmedSelection(){if(this.check(),!this.state.confirmed||!this.state.selection)throw q("account_confirmation_required");let e=this.state,t=e.selection;return Object.freeze({accountId:t.accountId,connectorId:t.connectorId,installationId:e.installationId,deviceId:e.deviceId,kind:e.kind,cpOrigin:e.cpOrigin,approvalMode:t.approvalMode,isCurrent:()=>this.isCurrent()})}owned(e){let t=this.confirmedSelection();if(e.isCurrent()!==!0||e.scope.account!==t.accountId||e.scope.installation!==t.installationId)throw q("fenced")}prepareOriginalDevice(e){let t=e.isCurrent,i=()=>{try{return this.check(),this.owned(e),e.isCurrent===t}catch{return!1}};return this.exclusive(async()=>{if(!i())throw q("fenced");let o=this.state.nativeStarted?"existing":"fresh";if(this.state.nativeStarted||await this.save({...this.state,nativeStarted:!0}),!i())throw q("fenced");return Object.freeze({mode:o,pin:Object.freeze({...this.confirmedSelection(),isCurrent:i,installationOwned:i})})})}attest(e){let{runtime:t,custody:i,persistence:o,installation:s}=e,r=s.isCurrent,a=()=>{if(this.check(),this.owned(s),s.isCurrent!==r||!t.deviceCustodyCurrent(this.confirmedSelection(),i))throw q("fenced")};return this.exclusive(async()=>{if(a(),!this.state.nativeStarted)throw q("recovery_required");if(this.state.token)return this.view();if(!this.state.proof){await o.pending(new Uint8Array(i.envelope),{signal:this.lifetime.signal}),a();let d=Uint8Array.from(this.state.selection.challenge.match(/../g),f=>parseInt(f,16)),u=null;try{let f=t.signCpEnrol(d);u=f.signature,a(),await this.save({...this.state,proof:n.proof({sign_pk:Cn(f.signPublicKey),kem_pk:Cn(f.kemPublicKey),noise_pk:Cn(f.noisePublicKey),sig:Cn(u)})}),a()}finally{d.fill(0),u?.fill(0)}}let c=this.state.proof;if(c.sign_pk!==Cn(i.signPublicKey)||c.kem_pk!==Cn(i.kemPublicKey)||c.noise_pk!==Cn(i.noisePublicKey))throw q("binding");let{status:l,value:p}=await this.json(`/v1/pairing-requests/${this.state.requestId}/attest`,!0,c);if(a(),Ce(p,"ok"),l!==200||p.ok!==!0)throw q("response");return this.view()})}receipt(){let e=this.state,t=e.proof;if(this.check(),!e.token||!t||!e.selection)throw q("binding");let i=o=>Uint8Array.from(o.match(/../g),s=>parseInt(s,16));return Object.freeze({connectorId:e.selection.connectorId,deviceId:e.deviceId,installationId:e.installationId,signPublicKey:i(t.sign_pk),kemPublicKey:i(t.kem_pk),noisePublicKey:i(t.noise_pk)})}acknowledge(e){let{runtime:t,custody:i,persistence:o,installation:s}=e,r=s.isCurrent,a=()=>{if(this.check(),this.owned(s),s.isCurrent!==r||!t.deviceCustodyCurrent(this.confirmedSelection(),i))throw q("fenced")};return this.exclusive(async()=>{a();let c=this.receipt();if(Cn(c.signPublicKey)!==Cn(i.signPublicKey)||Cn(c.kemPublicKey)!==Cn(i.kemPublicKey)||Cn(c.noisePublicKey)!==Cn(i.noisePublicKey))throw q("binding");return await o.registered(c,{signal:this.lifetime.signal}),a(),t.acknowledgeDeviceRegistration(c),a(),this.nativeAcknowledged=!0,c})}originalTimerChannel(e){if(this.check(),this.receipt(),!this.state.timerConsent?.approved||!this.state.timerConsent.grants.some(i=>i.grantId===e))throw q("fenced");let t=this.state.timerChannel;return t?.grantId===e?t:null}retainTimerChannel(e,t){return this.exclusive(async()=>{if(this.originalTimerChannel(e),t!==null&&Tb(t).grantId!==e)throw q("binding");await this.save({...this.state,timerChannel:t===null?void 0:Tb(t)}),this.originalTimerChannel(e)})}session(e){return this.receipt(),this.confirmedHostSession(e,this.state.environment)}confirmedHostSession(e,t){let i=this.confirmedSelection();if(t!==this.state.environment)throw q("binding");let o=new URL(e);if(o.origin!==e||o.protocol!=="https:"&&!!1||o.username||o.password)throw q("binding");return Object.freeze({...i,logOrigin:e,timerConsent:()=>(this.check(),this.state.timerConsent??null),connectorBearer:async({signal:s})=>{if(this.check(),s.aborted||!this.state.token)throw q("fenced");return this.state.token}})}async close(){this.closed||(this.closed=!0,this.lifetime.abort(),this.parent.removeEventListener("abort",this.onAbort),this.state.secret="",this.state.token=null,this.state.consentRequest&&(this.state.consentRequest.secret=""),this.state.renewal&&(this.state.renewal.secret=""),this.state.renewal=null),await this.store.close()}}});function Na(n){if((typeof n!="number"||!Number.isSafeInteger(n))&&typeof n!="bigint")throw se("shape");let e=BigInt(n);if(e<0n||e>(1n<<64n)-1n)throw se("shape");return e}function Ff(n,e){let t=Na(n);if(t>BigInt(e))throw se("shape");return Number(t)}function Vo(n){if(!(n instanceof Map))throw se("shape");return n}function Vf(n){let e=[];for(let[t,i]of n){if(typeof t!="number"||!Number.isSafeInteger(t)||t<0)throw se("shape");e.push([t,i])}return new Map(e.sort(([t],[i])=>t-i))}function Ko(n,e){if(!(n instanceof Uint8Array)||e!==void 0&&n.length!==e)throw se("shape");return n}function Kf(n,e){return n.length===e.length&&n.every((t,i)=>t===e[i])}function JP(n){return[...n].map(e=>e.toString(16).padStart(2,"0")).join("")}function XP(n){return btoa(String.fromCharCode(...n))}function Ub(n,e){let t;try{t=new URL(n)}catch{throw se("binding")}if(t.username||t.password||t.pathname!=="/"||t.search||t.hash||t.protocol!=="https:"&&!(e&&ot(n)))throw se("binding");return t.origin}function ZP(n,e){let t=n.headers.get("content-length");return t!==null&&/^(0|[1-9][0-9]*)$/.test(t)&&Number(t)>e}function _q(n,e,t,i,o,s,r){let a=Bf.encode("mdbase/v1/ls-http"),c=Bf.encode(t),l=Bf.encode("/v1/rpc"),p=Bf.encode(o),d=it(p),u=it(s);p.fill(0);let f=new Uint8Array(1+a.length+c.length+1+l.length+1+16+96),h=0;for(let b of[Uint8Array.of(a.length),a,c,Uint8Array.of(0),l,Uint8Array.of(0),U(i),d,u,r])f.set(b,h),h+=b.length;let m=it(f);return f.fill(0),Object.freeze({endpoint:n,originalCallId:e,frame:s.slice(),token:o,method:t,path:"/v1/rpc",collection:i,nonce:r.slice(),bodyHash:u,tokenHash:d,digest:m})}function QP(n){return/^[0-9a-f]{64}$/.test(n)?Uint8Array.from(n.match(/../g).map(e=>parseInt(e,16))):null}function Pq(n){try{let e=ue(n).get(3);if(!(e instanceof Map))return!1;let t=e;return t.get(0)==="unauthenticated"&&(t.get(1)==="nonce"||t.get(1)==="replay")}catch{return!1}}var Nb,Jc,wq,vq,Bf,mn,se,Aq,kq,Sq,Ua,Xc=I(()=>{"use strict";bt();Cr();Je();ge();Fn();Nb=16*1024*1024,Jc=9*1024*1024,wq=new Set(["append","read","head","subscribe","unsubscribe","put_object","get_object","has_objects","put_snapshot","get_snapshot","endorse_snapshot","stream_join","stream_leave","stream_send"]),vq=new Set(["host","content-length","transfer-encoding","connection","keep-alive","upgrade","te","trailer","expect","range","cookie","authorization","proxy-authorization","origin","referer","accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","date","dnt","permissions-policy","set-cookie","via"]),Bf=new TextEncoder,mn=class extends Error{constructor(t,i){super(`app log transport: ${t}`);this.reason=t;this.server=i;this.name="AppHttpLogError"}reason;server},se=n=>new mn(n);Aq=4e4,kq=6,Sq="x-mdbase-next-nonce";Ua=class{constructor(e,t={}){this.authority=e;try{if(this.endpointId=Na(e.endpoint),this.endpoint=this.endpointId,this.collection=e.collection,this.collectionBytes=U(this.collection),this.loopback=t.allowLoopbackHttp===!0,this.base=Ub(e.origin,this.loopback),!Array.isArray(e.directOrigins)||e.directOrigins.length>32)throw se("binding");this.approved=new Set([this.base,...e.directOrigins.map(i=>Ub(i,this.loopback))]),this.fetchImpl=t.fetch??globalThis.fetch,this.now=t.now??Date.now}catch{throw se("binding")}}authority;endpoint;collection;endpointId;collectionBytes;base;approved;fetchImpl;now;loopback;commitId=(1n<<64n)-1n;spares=[];responseId=0;receiving=new Map;responseProgress(){return[...this.receiving].map(([e,t])=>({id:e,bytes:t}))}isCurrent(){try{return this.authority.isCurrent()===!0&&Na(this.authority.endpoint)===this.endpointId&&this.authority.collection===this.collection&&Ub(this.authority.origin,this.loopback)===this.base}catch{return!1}}check(e){if(e.aborted||!this.isCurrent())throw se("fenced")}request(e){if(e.length>Nb)throw se("shape");let t=Vo(ue(e));if(t.get(0)!==0||typeof t.get(2)!="string")throw se("shape");let i=t.get(2),o=Vo(t.get(3));if(!wq.has(i)||!Kf(Ko(o.get(0),16),this.collectionBytes))throw se("shape");return{id:Na(t.get(1)),method:i,params:o}}response(e,t){let i=Vo(ue(e));if(i.get(0)!==1||Na(i.get(1))!==t||i.has(2)===i.has(3))throw se("shape");return i}async fetch(e,t,i,o){this.check(i);let s=new AbortController,r=()=>s.abort();i.addEventListener("abort",r,{once:!0});let a=setTimeout(r,o);a.unref?.();try{let c=this.fetchImpl,l=(t.method??"GET")==="GET"?"no-store":"default",p=await c(e,{...t,signal:s.signal,redirect:"error",credentials:"omit",cache:l,referrerPolicy:"no-referrer"});if(!this.isCurrent()||i.aborted)throw p.body?.cancel().catch(()=>{}),se("fenced");return this.withCleanup(p,()=>{clearTimeout(a),i.removeEventListener("abort",r)})}catch{throw clearTimeout(a),i.removeEventListener("abort",r),se(i.aborted||!this.isCurrent()?"fenced":"unavailable")}}cleanups=new WeakMap;withCleanup(e,t){return this.cleanups.set(e,t),e}release(e){this.cleanups.get(e)?.(),this.cleanups.delete(e)}async read(e,t,i,o){let s=new Uint8Array(Math.min(1024,t)),r=0,a=null;try{if(this.check(i),ZP(e,t))throw se("integrity");if(!e.body)return s.subarray(0,0);for(a=e.body.getReader();;){let{done:c,value:l}=await a.read();try{if(this.check(i),c)break;if(r+l.length>t)throw se("integrity");if(r+l.length>s.length){let p=new Uint8Array(Math.min(t,Math.max(s.length*2,r+l.length)));p.set(s.subarray(0,r)),s.fill(0),s=p}s.set(l,r),r+=l.length,o(l.length)}finally{l?.fill(0)}}return s.subarray(0,r)}catch(c){throw s.fill(0),(a?.cancel()??e.body?.cancel())?.catch(()=>{}),c}finally{a?.releaseLock(),this.release(e)}}async refusal(e,t,i){let o;try{let r=await this.read(e,8192,t,i);try{o=Vs(r)}finally{r.fill(0)}}catch(r){if(r instanceof mn&&r.reason==="fenced")return r;o=void 0}let s=Li(e.status,o,e.headers);return new mn(St(s)??"unavailable",s)}takeSpare(){for(let e=this.spares.pop();e;e=this.spares.pop()){let t=this.now()-e.at;if(t>=0&&t<Aq)return e.nonce;e.nonce.fill(0)}return null}keepSpare(e){let t=QP(e.headers.get(Sq)??"");if(t)for(this.spares.push({nonce:t,at:this.now()});this.spares.length>kq;)this.spares.shift().nonce.fill(0)}async freshNonce(e,t){let i=await this.fetch(`${this.base}/v1/nonce`,{},e,15e3);if(!i.ok)throw await this.refusal(i,e,t);let o=await this.read(i,128,e,t);try{this.check(e);let s=QP(new TextDecoder("utf-8",{fatal:!0}).decode(o).trim());if(!s)throw se("shape");return s}finally{o.fill(0)}}async rpc(e,t,i,o,s,r=i,a=!0){this.check(o);let c=await this.authority.accessToken({signal:o});if(this.check(o),typeof c!="string"||!c||c.length>16*1024||/[\r\n]/.test(c))throw se("shape");let l=a?this.takeSpare():null,p=l??await this.freshNonce(o,s);this.check(o);let d=_q(this.endpoint,r,t,this.collection,c,e,p);p.fill(0);let u=null;try{if(u=await this.authority.signLogProof(d,{signal:o}),this.check(o),!(u instanceof Uint8Array)||u.length!==64)throw se("shape");let f=await this.fetch(`${this.base}/v1/rpc`,{method:"POST",headers:{authorization:`Bearer ${c}`,"content-type":"application/cbor","x-mdbase-nonce":JP(d.nonce),"x-mdbase-sig":JP(u)},body:e},o,15e3);if(this.keepSpare(f),f.status===401&&this.authority.invalidateToken?.(c),!f.ok)throw await this.refusal(f,o,s);let h=await this.read(f,t==="append"?64*1024:Nb,o,s);try{this.check(o),this.response(h,i)}catch(m){throw h.fill(0),m}return l&&Pq(h)?(h.fill(0),await this.rpc(e,t,i,o,s,r,!1)):h}finally{u?.fill(0),d.frame.fill(0),d.nonce.fill(0),d.bodyHash.fill(0),d.tokenHash.fill(0),d.digest.fill(0)}}direct(e,t){let i=Vo(e),o=i.get(0),s=Vo(i.get(1)),r=i.get(2);if(typeof o!="string"||o.length>16*1024||typeof r!="number"||!Number.isSafeInteger(r))throw se("shape");let a;try{a=new URL(o)}catch{throw se("shape")}if(a.username||a.password||a.hash||!this.approved.has(a.origin))throw se("binding");let c=new Headers,l=new Set;if(s.size>32)throw se("shape");for(let[p,d]of s){if(typeof p!="string"||typeof d!="string")throw se("shape");let u=p.toLowerCase();if(!/^[a-z0-9!#$%&'*+.^_`|~-]+$/.test(u)||vq.has(u)||u.startsWith("proxy-")||u.startsWith("sec-")||u.startsWith("x-mdbase-")||u.startsWith("x-http-method")||l.has(u)||d.length>8*1024||/[\r\n]/.test(d))throw se("shape");if(u==="x-amz-checksum-sha256"&&d!==XP(t))throw se("integrity");l.add(u),c.set(u,d)}if(r-this.now()<=5e3)throw se("unavailable");return{url:a.href,headers:c,expires:r}}timeout(e,t){let i=e.expires-this.now();if(i<=5e3)throw se("unavailable");return Math.min(i,3e4+Math.ceil(t/(128*1024))*1e3)}async upload(e,t,i){this.check(i);let o;try{o=await this.fetch(e.url,{method:"PUT",headers:e.headers,body:t},i,this.timeout(e,t.length))}catch(s){if(this.check(i),s instanceof mn&&s.reason==="unavailable")return;throw s}try{if(this.check(i),o.ok||o.status===408||o.status===425||o.status===429||o.status>=500)return;throw se("unavailable")}finally{o.body?.cancel().catch(()=>{}),this.release(o)}}async download(e,t,i,o,s){let r=new Uint8Array(t),a=0,c=0;try{for(let l=0;l<32&&c<5;l++){this.check(o);let p=a,d=new Headers(e.headers);p>0&&d.set("range",`bytes=${p}-${t-1}`);let u;try{u=await this.fetch(e.url,{headers:d},o,this.timeout(e,t-p))}catch{this.check(o),c++;continue}let f=null;try{if(this.check(o),[401,403,404,410].includes(u.status))throw se("unavailable");if([408,425,429].includes(u.status)||u.status>=500){c++;continue}if(u.status!==(p===0?200:206)||ZP(u,t-p)||(p>0?u.headers.get("content-range")!==`bytes ${p}-${t-1}/${t}`:u.headers.has("content-range"))||u.headers.has("content-encoding")&&u.headers.get("content-encoding")!=="identity")throw se("integrity");let h=u.headers.get("x-amz-checksum-sha256");if(h!==null&&h!==XP(i)||!u.body)throw se("integrity");for(f=u.body.getReader();;){let m;try{m=await f.read()}catch{this.check(o);break}try{if(this.check(o),m.done)break;if(m.value.length>t-a)throw se("integrity");r.set(m.value,a),a+=m.value.length,s(m.value.length)}finally{m.value?.fill(0)}}}finally{(f?.cancel()??u.body?.cancel())?.catch(()=>{}),f?.releaseLock(),this.release(u)}if(a===t){if(!Kf(it(r),i))throw se("integrity");return r}c=a>p?0:c+1}throw se("unavailable")}catch(l){throw r.fill(0),l}}async send(e,t){let i=null,o=null,s=null,r=null,a=null,c=++this.responseId,l=0;this.receiving.set(c,l);let p=d=>{l+=d,this.receiving.set(c,l)};try{if(this.check(t.signal),Na(e.endpoint)!==this.endpointId||!(e.frame instanceof Uint8Array)||e.frame.length>Nb||e.sidecar!==void 0&&(!(e.sidecar instanceof Uint8Array)||e.sidecar.length>Jc))throw se("shape");i=e.frame.slice(),o=e.sidecar?.slice()??null;let d=this.request(i);if(o&&d.method!=="put_object")throw se("shape");if(d.method==="put_object"){let h=Ff(d.params.get(3),Jc),m=Ko(d.params.get(4),32),b=d.params.get(5);if(h===0||o!==null&&(b!==void 0||o.length<=1024*1024)||o===null&&h>1024*1024)throw se("shape");let w=o??Ko(b);if(w.length!==h||!Kf(it(w),m))throw se("integrity")}s=await this.rpc(i,d.method,d.id,t.signal,p),this.check(t.signal);let u=this.response(s,d.id);if(u.has(3)){let h=s;return s=null,h}if(d.method==="put_object"){let h=Vo(u.get(2)),m=h.get(0);if(m===0||m===2){if(h.has(1))throw se("shape");let _=s;return s=null,_}if(m!==1||!o)throw se("shape");let b=Ko(d.params.get(4),32),w=Ko(d.params.get(1),32);if(await this.upload(this.direct(h.get(1),b),o,t.signal),this.check(t.signal),this.commitId===d.id||this.commitId===0n)throw se("unavailable");let g=this.commitId--;a=ce(new Map([[0,0],[1,g],[2,"commit_object"],[3,new Map([[0,this.collectionBytes],[1,w]])]]));let y=await this.rpc(a,"commit_object",g,t.signal,p,d.id);try{this.check(t.signal);let _=this.response(y,g),k=_.get(2);if(_.has(3)||!(k instanceof Map)||k.size!==1||k.get(0)!==!0)throw se("unavailable")}finally{y.fill(0)}let v=new Map(h);return v.delete(1),v.set(0,0),u.set(2,Vf(v)),ce(Vf(u))}if(d.method==="get_object"){let h=Vo(u.get(2)),m=Ff(h.get(2),Jc),b=Ko(h.get(3),32);if(m===0||h.has(0)===h.has(1))throw se("shape");let w=d.params.get(2),g=0,y=m;if(w!==void 0&&(!Array.isArray(w)||w.length!==2||(g=Ff(w[0],Jc),y=Ff(w[1],Jc),g>m||y>m-g)))throw se("shape");if(h.has(0)){let _=Ko(h.get(0));if(_.length!==y||y===m&&!Kf(it(_),b))throw se("integrity");let k=s;return s=null,k}r=await this.download(this.direct(h.get(1),b),m,b,t.signal,p),this.check(t.signal);let v=new Map(h);return v.delete(1),v.set(0,r.subarray(g,g+y)),u.set(2,Vf(v)),ce(Vf(u))}let f=s;return s=null,f}catch(d){if(d instanceof mn)throw d;if(t.signal.aborted||!this.isCurrent())throw se("fenced");let u=null;try{u=d.server}catch{}let f=An(u)?St(u):null;throw f&&An(u)?new mn(f,u):se("unavailable")}finally{this.receiving.delete(c),i?.fill(0),o?.fill(0),s?.fill(0),r?.fill(0),a?.fill(0)}}}});function ex(n,e){let t;try{t=new URL(n)}catch{throw st("binding")}if(t.username||t.password||t.pathname!=="/"||t.search||t.hash||t.protocol!=="https:"&&!(e&&ot(n)))throw st("binding");return t.origin}function tx(n){if(typeof n=="number"&&!Number.isSafeInteger(n))throw st("binding");let e=BigInt(n);if(e<0n||e>(1n<<64n)-1n)throw st("binding");return e}function xq(n){return[...n].map(e=>e.toString(16).padStart(2,"0")).join("")}function Cq(n){if(!n||typeof n!="object"||Array.isArray(n))throw st("response");return n}var Zn,st,Db,Da,Zc=I(()=>{"use strict";bt();ge();Xc();Fn();Zn=class extends Error{constructor(t,i){super(`app CP authority: ${t}`);this.reason=t;this.server=i;this.name="AppCpAuthorityError"}reason;server},st=n=>new Zn(n),Db=n=>new Zn(St(n)??"unavailable",n);Da=class{constructor(e,t,i={}){this.runtime=e;this.session=t;this.tokenCache=i.tokenCache??null;try{this.endpoint=tx(t.endpoint),this.collection=t.collection,this.connectorId=t.connectorId,this.deviceId=t.deviceId;for(let o of[this.collection,this.connectorId,this.deviceId])if(U(o).every(r=>r===0))throw st("binding");if(this.rawCpOrigin=t.cpOrigin,this.rawLogOrigin=t.logOrigin,this.cpOrigin=ex(this.rawCpOrigin,i.allowLoopbackHttp===!0),this.origin=ex(this.rawLogOrigin,i.allowLoopbackHttp===!0),this.directOrigins=Object.freeze([...t.directOrigins]),this.now=i.now??Date.now,this.fetchImpl=i.fetch??globalThis.fetch,this.transport=new Ua(this,i),!this.scopeCurrent())throw st("binding");e.bindCpConnector(t)}catch{throw st("binding")}}runtime;session;endpoint;collection;origin;directOrigins;cpOrigin;connectorId;deviceId;rawCpOrigin;rawLogOrigin;now;fetchImpl;lifetime=new AbortController;authenticated=!1;token=null;tokenCache;cacheTried=!1;transport;scopeCurrent(){try{return!this.lifetime.signal.aborted&&this.session.isCurrent()===!0&&tx(this.session.endpoint)===this.endpoint&&this.session.collection===this.collection&&this.session.connectorId===this.connectorId&&this.session.deviceId===this.deviceId&&this.session.cpOrigin===this.rawCpOrigin&&this.session.logOrigin===this.rawLogOrigin}catch{return!1}}isCurrent(){return this.authenticated&&this.scopeCurrent()}check(e){if(!this.scopeCurrent())throw this.close(),st("fenced");if(e.aborted)throw st("fenced")}logTransport(){if(!this.isCurrent())throw st("fenced");return this.transport}async signLogProof(e,t){if(this.check(t.signal),!this.authenticated)throw st("fenced");return this.runtime.signLogHttp(e)}async json(e,t,i,o){this.check(o);let s=new AbortController,r=()=>s.abort();o.addEventListener("abort",r,{once:!0}),this.lifetime.signal.addEventListener("abort",r,{once:!0});let a=setTimeout(r,15e3);a.unref?.();let c=null,l=null,p=new Uint8Array(32*1024),d=0;try{let u=this.fetchImpl;if(c=await u(`${this.cpOrigin}${e}`,{method:"POST",headers:{authorization:`Bearer ${t}`,...i===void 0?{}:{"content-type":"application/json"}},body:i,signal:s.signal,redirect:"error",credentials:"omit",cache:"default",referrerPolicy:"no-referrer"}),this.check(o),s.signal.aborted)throw st("unavailable");let f=c.headers.get("content-length");if(f!==null&&/^(0|[1-9][0-9]*)$/.test(f)&&Number(f)>p.length)throw s.abort(),c.ok?st("unavailable"):Db(Li(c.status,void 0,c.headers));if(!c.body)throw c.ok?st("response"):Db(Li(c.status,void 0,c.headers));for(l=c.body.getReader();;){let{done:h,value:m}=await l.read();try{if(this.check(o),s.signal.aborted)throw st("unavailable");if(h)break;if(d+m.length>p.length)throw s.abort(),st("response");p.set(m,d),d+=m.length}finally{m?.fill(0)}}if(!c.ok)throw Db(Li(c.status,Vs(p.subarray(0,d)),c.headers));return Cq(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(p.subarray(0,d))))}catch(u){throw this.check(o),u instanceof Zn?u:st("unavailable")}finally{p.fill(0),(l?.cancel()??c?.body?.cancel())?.catch(()=>{}),l?.releaseLock(),clearTimeout(a),o.removeEventListener("abort",r),this.lifetime.signal.removeEventListener("abort",r)}}async accessToken(e){let t=null,i=null;try{if(this.check(e.signal),this.token&&this.token.expires-this.now()>5e3)return this.token.value;if(!this.token&&this.tokenCache&&!this.cacheTried){this.cacheTried=!0;let c=await this.tokenCache.read(this.cacheKey(),this.now());if(this.check(e.signal),c)return this.token={value:c.value,expires:c.expires},this.authenticated=!0,c.value}let o=await this.session.connectorBearer(e);if(this.check(e.signal),typeof o!="string"||!o||o.length>16*1024||/[^\x21-\x7e]/.test(o))throw st("binding");let s=await this.json("/v1/next/devices/challenge",o,void 0,e.signal);if(this.check(e.signal),typeof s.challenge!="string"||!/^[0-9a-f]{64}$/.test(s.challenge)||typeof s.expires_at!="number"||!Number.isSafeInteger(s.expires_at)||s.expires_at-this.now()<=5e3||(t=Uint8Array.from(s.challenge.match(/../g).map(c=>parseInt(c,16))),i=this.runtime.signCpLogToken(t),this.check(e.signal),!(i instanceof Uint8Array)||i.length!==64))throw st("response");let r=JSON.stringify({device_id:this.deviceId,challenge:s.challenge,sig:xq(i),capabilities:["collection_mode_switch_v1"]}),a=await this.json(`/v1/next/collections/${this.collection}/log-token`,o,r,e.signal);if(this.check(e.signal),typeof a.token!="string"||!a.token||a.token.length>16*1024||/[^\x21-\x7e]/.test(a.token)||typeof a.expires_at!="number"||!Number.isSafeInteger(a.expires_at)||a.expires_at-this.now()<=5e3||a.expires_at-this.now()>16*6e4)throw st("response");return this.token={value:a.token,expires:a.expires_at},this.authenticated=!0,this.tokenCache?.write(this.cacheKey(),this.token).catch(()=>{}),a.token}catch(o){throw o instanceof Zn?o:st(this.scopeCurrent()?"unavailable":"fenced")}finally{t?.fill(0),i?.fill(0)}}cacheKey(){return[this.rawCpOrigin,this.rawLogOrigin,this.connectorId,this.deviceId,this.collection].join(" ")}invalidateToken(e){this.token?.value===e&&(this.token=null,this.tokenCache?.drop(this.cacheKey()).catch(()=>{}))}close(){this.lifetime.signal.aborted||(this.lifetime.abort(),this.token=null,this.authenticated=!1,this.runtime.retireLog())}}});function $b(n,e){if(typeof n!="string"||!n.length||n.length%2||n.length>e*2||!/^[0-9a-f]+$/.test(n))throw ke("response");return Uint8Array.from(n.match(/../g),t=>parseInt(t,16))}function zb(n){if(!n||typeof n!="object"||Array.isArray(n))throw ke("response");return n}var en,ke,Iq,Wf,nx,$a,Qc=I(()=>{"use strict";ge();bt();Fc();Fn();en=class extends Error{constructor(t,i=!1,o){super(`app cloud copy bootstrap: ${t}`);this.reason=t;this.retryable=i;this.server=o;this.name="AppCloudCopyBootstrapError"}reason;retryable;server},ke=(n,e=!1)=>new en(n,e),Iq=new Set([408,429,500,502,503,504]),Wf=(n,e)=>n.length===e.length&&n.every((t,i)=>t===e[i]),nx=n=>Array.from(n,e=>e.toString(16).padStart(2,"0")).join("");$a=class{constructor(e,t,i,o,s={}){this.runtime=e;this.session=t;this.trust=i;this.persistence=o;try{if(this.storageCallbacks=Object.freeze({restore:o.restore,pending:o.pending,completed:o.completed}),this.scope=Object.freeze({accountId:t.accountId,connectorId:t.connectorId,deviceId:t.deviceId,installationId:t.installationId,collection:t.collection,purpose:t.purpose,cpOrigin:t.cpOrigin,logOrigin:t.logOrigin}),this.callbacks=Object.freeze({current:t.isCurrent,owned:t.installationOwned,bearer:t.connectorBearer}),this.local=Xr(i.environment),!1)throw ke("binding");this.loopback=s.allowLoopbackHttp===!0||this.local;for(let c of[this.scope.accountId,this.scope.connectorId,this.scope.deviceId,this.scope.installationId,this.scope.collection])if(U(c).every(l=>l===0))throw ke("binding");if(this.origin(this.scope.cpOrigin),this.origin(this.scope.logOrigin),i.schema!=="mdbn-app-trust/release/1"||!(["lab","staging","production"].includes(i.environment)||this.loopback&&i.environment==="test"||this.local)||i.cpOrigin!==this.scope.cpOrigin||i.logOrigin!==this.scope.logOrigin||!/^[0-9a-f]{64}$/.test(i.assetSha256)||i.source.repository!=="mdbase-dev/mdbase-connect"||!/^[0-9a-f]{40}$/.test(i.source.commit)||!i.source.version||i.source.version.length>64||!Array.isArray(i.trustedRoots)||i.trustedRoots.length<1||i.trustedRoots.length>64||!(i.policyPins instanceof Uint8Array)||!i.policyPins.length||i.policyPins.length>65536)throw ke("binding");this.trustFields=Object.freeze({schema:i.schema,environment:i.environment,assetSha256:i.assetSha256,...i.source}),this.roots=Object.freeze(i.trustedRoots.map(c=>{if(!(c instanceof Uint8Array)||c.length!==32||c.every(l=>l===0))throw ke("binding");return new Uint8Array(c)})),this.pins=new Uint8Array(i.policyPins);let r=s.displayName,a=r===void 0?void 0:br(r);if(a!==void 0&&this.scope.purpose!=="create"||(this.operation=Object.freeze({...e.registeredDeviceReceipt(),...a===void 0?{}:{displayName:a},accountId:this.scope.accountId,collection:this.scope.collection,purpose:this.scope.purpose,assetSha256:i.assetSha256,cpOrigin:this.scope.cpOrigin,logOrigin:this.scope.logOrigin}),this.request=s.fetch??globalThis.fetch,this.now=s.now??Date.now,!this.current()))throw ke("binding")}catch{throw e.retireLog(),ke("binding")}}runtime;session;trust;persistence;attempted=!1;adopted=!1;originalSignal=null;completion=null;lifetime=new AbortController;scope;callbacks;trustFields;roots;pins;operation;storageCallbacks;request;now;loopback;local;origin(e){if(this.local&&!Ra(e))throw ke("binding");let t=new URL(e);if(t.origin!==e||t.username||t.password||t.protocol!=="https:"&&!(this.loopback&&ot(e)))throw ke("binding");return t.origin}current(){try{let e=this.session,t=this.trust,i=this.trustFields;return!this.lifetime.signal.aborted&&!this.originalSignal?.aborted&&(this.adopted||this.runtime.cloudCopyCollectionCurrent(e))&&this.persistence.restore===this.storageCallbacks.restore&&this.persistence.pending===this.storageCallbacks.pending&&this.persistence.completed===this.storageCallbacks.completed&&e.isCurrent===this.callbacks.current&&e.installationOwned===this.callbacks.owned&&e.connectorBearer===this.callbacks.bearer&&this.callbacks.current.call(e)===!0&&this.callbacks.owned.call(e)===!0&&Object.entries(this.scope).every(([o,s])=>e[o]===s)&&t.cpOrigin===this.scope.cpOrigin&&t.logOrigin===this.scope.logOrigin&&t.schema===i.schema&&t.environment===i.environment&&t.assetSha256===i.assetSha256&&t.source.repository===i.repository&&t.source.commit===i.commit&&t.source.version===i.version&&t.trustedRoots.length===this.roots.length&&t.trustedRoots.every((o,s)=>Wf(o,this.roots[s]))&&Wf(t.policyPins,this.pins)}catch{return!1}}check(e){if(e.aborted||!this.current())throw this.close(),ke("fenced")}operationCopy(e){for(let t of["accountId","connectorId","deviceId","installationId","collection","purpose","cpOrigin","logOrigin","assetSha256","displayName"])if(e[t]!==this.operation[t])throw ke("response");for(let t of["signPublicKey","kemPublicKey","noisePublicKey"])if(!(e[t]instanceof Uint8Array)||!Wf(e[t],this.operation[t]))throw ke("response");return Object.freeze({...this.operation,signPublicKey:new Uint8Array(this.operation.signPublicKey),kemPublicKey:new Uint8Array(this.operation.kemPublicKey),noisePublicKey:new Uint8Array(this.operation.noisePublicKey)})}copy(e){if(!(e.genesisItem instanceof Uint8Array)||!e.genesisItem.length||e.genesisItem.length>256*1024||!/^sha256:[0-9a-f]{64}$/.test(e.expectedGenesis))throw ke("response");return Object.freeze({operation:this.operationCopy(e.operation),genesisItem:new Uint8Array(e.genesisItem),expectedGenesis:e.expectedGenesis})}async hash(e,t){let i=new TextEncoder().encode("mdbase/v1/chain"),o=new Uint8Array(1+i.length+e.length);o[0]=i.length,o.set(i,1),o.set(e,1+i.length);let s=new Uint8Array(await crypto.subtle.digest("SHA-256",o));return this.check(t),`sha256:${nx(s)}`}async json(e,t,i,o){this.check(o);let s=new AbortController,r=()=>s.abort(),a=setTimeout(r,15e3);a.unref?.(),o.addEventListener("abort",r,{once:!0}),this.lifetime.signal.addEventListener("abort",r,{once:!0});let c=new Uint8Array(1024*1024),l=0,p=null,d=null;try{let u=this.request;if(p=await u(`${this.scope.cpOrigin}${e}`,{method:"POST",headers:{authorization:`Bearer ${t}`,...i===void 0?{}:{"content-type":"application/json"}},body:i,signal:s.signal,redirect:"error",credentials:"omit",cache:"no-store",referrerPolicy:"no-referrer"}),this.check(o),s.signal.aborted)throw ke("unavailable",!0);if(!p.ok){let h=await this.problem(p,o),m=St(h),b=!m&&Iq.has(p.status);throw new en(m??(b?"unavailable":"refused"),b,h)}let f=p.headers.get("content-length");if(f!==null&&/^(0|[1-9][0-9]*)$/.test(f)&&Number(f)>c.length)throw s.abort(),ke("response");if(!p.body)throw ke("response");for(d=p.body.getReader();;){let{done:h,value:m}=await d.read();try{if(this.check(o),s.signal.aborted)throw ke("unavailable",!0);if(h)break;if(l+m.length>c.length)throw s.abort(),ke("response");c.set(m,l),l+=m.length}finally{m?.fill(0)}}try{return zb(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(c.subarray(0,l))))}catch{throw ke("response")}}catch(u){throw this.check(o),u instanceof en?u:ke("unavailable",!0)}finally{c.fill(0),(d?.cancel()??p?.body?.cancel())?.catch(()=>{}),d?.releaseLock(),clearTimeout(a),o.removeEventListener("abort",r),this.lifetime.signal.removeEventListener("abort",r)}}async problem(e,t){let i=new Uint8Array(8192),o=0,s=e.body?.getReader();try{for(;s;){let{done:r,value:a}=await s.read();try{if(this.check(t),r)break;if(o+a.length>i.length){o=0;break}i.set(a,o),o+=a.length}finally{a?.fill(0)}}}catch{this.check(t),o=0}finally{s?.cancel().catch(()=>{}),s?.releaseLock()}try{return Li(e.status,o?Vs(i.subarray(0,o)):void 0,e.headers)}finally{i.fill(0)}}async challenge(e,t){for(let i=0;i<3;i++)try{return await this.json("/v1/next/devices/challenge",e,void 0,t)}catch(o){if(!(o instanceof en)||o.reason!=="unavailable"||!o.retryable||i===2)throw o;this.check(t),await new Promise((s,r)=>{let a=()=>{clearTimeout(l),t.removeEventListener("abort",c),this.lifetime.signal.removeEventListener("abort",c);try{this.check(t),s()}catch(p){r(p)}},c=()=>a(),l=setTimeout(a,i===0?250:1e3);l.unref?.(),t.addEventListener("abort",c,{once:!0}),this.lifetime.signal.addEventListener("abort",c,{once:!0}),(t.aborted||this.lifetime.signal.aborted)&&a()})}throw ke("unavailable",!0)}async bootstrap(e){let{signal:t,reconcile:i}=e,o=Object.freeze({signal:t}),s=null,r=null;try{if(this.originalSignal??=t,t!==this.originalSignal||(this.check(t),this.attempted))throw ke("fenced");this.attempted=!0;let a=await this.storageCallbacks.restore.call(this.persistence,o);if(this.check(t),a.state==="completed"){let b=this.copy(a.metadata);if(await this.hash(b.genesisItem,t)!==b.expectedGenesis)throw ke("response");return this.completion=this.copy(b),b}if(a.state==="pending"){if(this.operationCopy(a.operation),i!=="explicit-unknown-outcome")throw ke("outcome_unknown")}else if(a.state!=="none")throw ke("response");await this.storageCallbacks.pending.call(this.persistence,this.operationCopy(this.operation),o),this.check(t);let c=await this.callbacks.bearer.call(this.session,o);if(this.check(t),typeof c!="string"||!c||c.length>16384||/[^\x21-\x7e]/.test(c))throw ke("binding");let l=await this.challenge(c,t);if(s=$b(l.challenge,32),s.length!==32||typeof l.expires_at!="number"||!Number.isSafeInteger(l.expires_at)||l.expires_at-this.now()<=5e3||l.expires_at-this.now()>16*6e4)throw ke("response");let p=this.scope.purpose==="create";if(r=p?this.runtime.signCloudCopyCreate(s):this.runtime.signCloudCopyJoin(s),this.check(t),r.length!==64)throw ke("response");let d;try{d=await this.json(p?"/v1/next/collections/cloud-copy":`/v1/next/collections/${this.scope.collection}/devices`,c,JSON.stringify({device_id:this.scope.deviceId,capabilities:["collection_mode_switch_v1"],challenge:l.challenge,sig:nx(r),...p?{collection_id:this.scope.collection,...this.operation.displayName===void 0?{}:{display_name:this.operation.displayName}}:{}}),t)}catch(b){throw b instanceof en&&b.reason==="unavailable"?ke("outcome_unknown"):b}if(d.collection_id!==this.scope.collection||d.log_url!==this.scope.logOrigin)throw ke("response");if(p){let b=$b(d.root_public_key,32);if(d.state!=="cloud-copy"||d.owner_account!==this.scope.accountId||!this.roots.some(w=>Wf(w,b)))throw ke("response")}else if(typeof d.enrolled_at!="number"||!Number.isSafeInteger(d.enrolled_at)||d.enrolled_at<1)throw ke("response");let u=zb(d.device);if(u.device_id!==this.scope.deviceId||typeof u.token!="string"||!u.token||u.token.length>16384||/[^\x21-\x7e]/.test(u.token)||typeof u.expires_at!="number"||!Number.isSafeInteger(u.expires_at)||u.expires_at-this.now()<=5e3||u.expires_at-this.now()>16*6e4)throw ke("response");let f=zb(d.genesis);if(f.seq!==1)throw ke("response");let h=$b(f.item,256*1024),m=this.copy({operation:this.operation,genesisItem:h,expectedGenesis:await this.hash(h,t)});return await this.storageCallbacks.completed.call(this.persistence,this.copy(m),o),this.check(t),this.completion=this.copy(m),m}catch(a){throw this.close(),a instanceof en?a:ke("unavailable")}finally{s?.fill(0),r?.fill(0)}}adoptCollection(e,t){let{signal:i,replicaId:o,endpoint:s,opened:r,sqliteVersion:a,cloudCopyOptIn:c}=e;try{if(this.check(i),this.adopted||!this.completion||i!==this.originalSignal||c!==!0)throw ke("binding");let l={replicaId:o,endpoint:s,opened:r,sqliteVersion:a,collection:this.scope.collection,deviceId:this.scope.deviceId,state:"cloud_copy",cloudCopyOptIn:!0,trustedRoots:this.roots.map(p=>new Uint8Array(p)),policyPins:new Uint8Array(this.pins),trustedSigners:[],expectedGenesis:this.completion.expectedGenesis};this.runtime.adoptDevice(l,t),this.adopted=!0,this.check(i)}catch(l){throw this.close(),l instanceof en?l:ke("unavailable")}}close(){this.completion=null,this.lifetime.abort(),this.runtime.retireLog()}}});function rx(n){try{if(n instanceof vi)return n;if(n instanceof Xe){if(n.reason==="outcome_unknown")return new vi("collection_delete_outcome_unknown");if(n.reason==="binding")return new vi("collection_delete_invalid");let e=Ur(n.server)?.code;if(e&&Object.hasOwn(ix,e))return new vi(ix[e]);if(n.reason==="refused"&&!n.server)return new vi("collection_delete_not_approved")}}catch{}return new vi("collection_delete_failed")}var vi,ix,ox=I(()=>{"use strict";Yc();Fn();vi=class extends Error{constructor(t){super(`collection delete: ${t}`);this.code=t;this.name="AppCollectionDeleteError"}code},ix=Object.assign(Object.create(null),{collection_name_mismatch:"collection_delete_name_mismatch",not_owner:"collection_delete_not_owner",not_found:"collection_delete_not_found",migration_frozen:"collection_delete_frozen",busy:"collection_delete_busy",not_member:"collection_delete_not_approved",device_not_enrolled:"collection_delete_not_approved",installation_collection_not_approved:"collection_delete_not_approved",installation_not_current:"collection_delete_sign_in",identity_not_current:"collection_delete_sign_in",device_revoked:"collection_delete_sign_in",invalid_request:"collection_delete_invalid"})});function sx(n){return typeof n=="string"&&/^[a-zA-Z0-9_-]{16,128}$/.test(n)}function Bb(n,e){let t=()=>{throw new Se("application_worker_binding")};if(!Array.isArray(n)||n.length!==5||n[0]!==Qn||n[1]!==e||!Number.isInteger(n[2])||n[2]<0||n[2]>Hf||n[2]===0&&n[3]!=="foreground"&&n[3]!=="approvalClosed"||n[2]!==0&&n[3]==="approvalClosed")return t();let i=n[3],o=n[4];["start","authorize","renewExpiredPairing","select","clearSelection","forget","refreshCollections","signOut","deleteCollection","requestFileAccess","pollFileAccess","foreground","approvalClosed","close"].includes(i)||t();let s=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;if(i==="requestFileAccess")return(!Array.isArray(o)||o.length!==3||typeof o[0]!="string"||!s.test(o[0])||!Array.isArray(o[1])||!o[1].length||o[1].length>6||o[1].some(r=>typeof r!="string"||!["list","read","add","replace","move","delete"].includes(r))||typeof o[2]!="string"||!o[2]||o[2].length>140)&&t(),Object.freeze([n[0],n[1],n[2],i,Object.freeze([o[0],Object.freeze([...o[1]]),o[2]])]);if(i==="pollFileAccess")(typeof o!="string"||!s.test(o))&&t();else if(i==="select"||i==="forget")(typeof o!="string"||!o||o.length>256||/[\u0000-\u001f\u007f]/.test(o))&&t();else{if(i==="deleteCollection")return(!Array.isArray(o)||o.length!==2||typeof o[0]!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(o[0])||typeof o[1]!="string"||!o[1]||o[1].length>1024)&&t(),Object.freeze([n[0],n[1],n[2],i,Object.freeze([o[0],o[1]])]);i==="authorize"?o!==null&&(typeof o!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(o)||o==="00000000-0000-0000-0000-000000000000")&&t():i==="foreground"?typeof o!="boolean"&&t():i==="approvalClosed"?o!==!0&&t():o!==null&&t()}return Object.freeze([...n])}var Qn,Hf,Se,Gf=I(()=>{"use strict";Qn="mdbn-application-worker/1",Hf=4294967295,Se=class extends Error{constructor(t){super("SDK application Worker unavailable");this.code=t;this.name="ApplicationWorkerError"}code}});function Yf(n){let e=n.cpOrigin,t=n.signal,i=n.isCurrent,o=n.open,s=()=>{let f=!1;try{f=!t.aborted&&i()===!0}catch{}if(!f)throw new Nt("application_popup_fenced")};s();let r;try{r=new URL(e)}catch{throw new Nt("application_popup_binding")}let a=n.allowLoopbackHttp===!0&&ot(e);if(r.origin!==e||r.username||r.password||r.search||r.hash||r.pathname!=="/"||r.protocol!=="https:"&&!a)throw new Nt("application_popup_binding");let c;try{c=o()}catch{throw new Nt("application_popup_unavailable")}if(c===null)throw new Nt("application_popup_blocked");if(ax.has(c))throw new Nt("application_popup_binding");ax.add(c);let l=!1,p=null,d=()=>{if(l){if(p)throw p;return}l=!0,t.removeEventListener("abort",u);try{c.close()}catch{throw p=new Nt("application_popup_stop_failed"),p}},u=()=>{try{d()}catch{}};t.addEventListener("abort",u,{once:!0});try{s()}catch(f){throw d(),f}return Object.freeze({close:d,get closed(){try{return l||c.closed?.()===!0}catch{return!1}},focus(){if(s(),!l){try{c.focus?.()}catch{throw new Nt("application_popup_unavailable")}s()}},navigate(f){if(s(),l)throw new Nt("application_popup_fenced");let h;try{h=new URL(f)}catch{throw new Nt("application_popup_binding")}if(h.origin!==e||h.username||h.password)throw new Nt("application_popup_binding");try{c.navigate(h.href)}catch(m){throw m instanceof Nt?m:new Nt("application_popup_unavailable")}if(s(),l)throw new Nt("application_popup_fenced")}})}function Oq(){let n=0,e=0;try{let t=globalThis.window;n=Math.max(0,Math.round(t.screenX+(t.outerWidth-cx)/2)),e=Math.max(0,Math.round(t.screenY+(t.outerHeight-px)/2))}catch{}return`popup,width=${cx},height=${px},left=${Number.isFinite(n)?n:0},top=${Number.isFinite(e)?e:0}`}function Jf(n,e,t,i=!1){return{cpOrigin:n,signal:e,isCurrent:t,allowLoopbackHttp:i,open(){let o=globalThis.window.open("about:blank","_blank",Oq());if(!o)return null;let s=lx.get(o);if(s)return s;let r={navigate(a){if(o.closed)throw new Nt("application_popup_fenced");o.location.href=a},close(){let a=!o.closed;if(o.close(),a)try{globalThis.window.focus()}catch{}},focus(){try{o.focus()}catch{}},closed:()=>o.closed};return lx.set(o,r),r}}}function dx(n,e,t,i,o=!1){return{cpOrigin:n,signal:e,isCurrent:t,allowLoopbackHttp:o,open(){let s=!1;return{navigate(r){let a=new URL(r);i.returnUrl!==void 0&&a.searchParams.set("return_url",i.returnUrl),s=!0,Promise.resolve().then(()=>i.open(a.href)).catch(()=>{})},close(){s&&i.close&&Promise.resolve().then(()=>i.close()).catch(()=>{})}}}}}var Nt,ax,lx,cx,px,Fb=I(()=>{"use strict";bt();Nt=class extends Error{constructor(t){super("application authorization popup unavailable");this.reason=t;this.name="ApplicationPortalError"}reason},ax=new WeakSet;lx=new WeakMap,cx=620,px=760});function Zf(n){let e=n.manifest.requirements.files;return e?Object.freeze({required:Object.freeze([...n.files?.actions??[]]),optional:Object.freeze([...e.optional??[]])}):null}function Qf(n,e){return n.collections.find(t=>t.collectionId===e)?.fileActions??[]}function fx(n,e){let t=i=>n.required.includes(i)||n.optional.includes(i)&&e().includes(i);return Object.freeze({allows:t,check(i){if(!t(i))throw ux(i,n.optional.includes(i))}})}function hx(n,e,t,i){let o=e?.files,s=t?.reason;if(!Array.isArray(o)||!o.length||o.some(a=>!Rq.includes(a))||new Set(o).size!==o.length)throw A("invalid_request","Invalid file actions","access_invalid");if(typeof s!="string"||!s.trim()||s.length>140||/[\u0000-\u001f\u007f\u2028\u2029]/.test(s))throw A("invalid_request","Reason must be one line, 1-140 characters","access_invalid");let r=[];for(let a of o)if(!n?.required.includes(a)){if(!n?.optional.includes(a))throw ux(a,!1);i.includes(a)||r.push(a)}return Object.freeze(r)}function mx(n,e,t){let i=n.grant?.actions??[...new Set([...e?.required??[],...t])];return Object.freeze({status:"granted",actions:Object.freeze([...i])})}function qq(n,e){return new Promise(t=>{let i=0,o=a=>{clearInterval(r),n.removeEventListener("abort",s),t(a)},s=()=>o(!1),r=setInterval(()=>{e.closed?o(!0):++i>=3&&o(!1)},500);n.addEventListener("abort",s,{once:!0})})}async function yx(n,e,t){let i=r=>{try{e.close()}catch{}return r},o;try{o=await n.start()}catch(r){if(t.aborted)return i(Xf);throw r}let s=o.fileAccess?.requestId;for(let r=!1;;){let a=n.native().fileAccess;if(!s||a?.requestId!==s)return i(Xf);if(a.state==="granted")return i(n.granted());if(a.state==="declined")return i(Eq);if(a.state==="expired"||r||t.aborted||(r=await qq(t,e),t.aborted))return i(Xf);await n.poll(s).catch(()=>{})}}var Rq,ux,Xf,Eq,eh=I(()=>{"use strict";ie();Rq=["list","read","add","replace","move","delete"];ux=(n,e)=>e?A("forbidden",`File action ${n} needs requestAccess first`,"access_required"):A("forbidden",`File action ${n} is not declared`,"access_undeclared");Xf=Object.freeze({status:"cancelled"}),Eq=Object.freeze({status:"declined"})});function Uq(n){let e=n==="contract"?"shared format for this app's notes":n==="type"?"note type for this app":n==="schema"?"set of checks for this app's note properties":"setup item this app needs";return{the:`the ${e}`,bare:e}}function oh(n){if(n===void 0)return Object.freeze([]);if(!Array.isArray(n)||n.length>Lq)throw new TypeError("setup records: at most 32 { path, document } entries");let e=new Set,t=new TextEncoder,i=0;return Object.freeze(n.map(o=>{let s=o?.path,r=o?.document;if(typeof s!="string"||!/\.md$/i.test(s)||s.length>1024||s.startsWith("/")||s.split("/").some(a=>!a||a==="."||a==="..")||e.has(s.toLowerCase())||typeof r!="string"||!r.length||(i+=t.encode(r).length+t.encode(s).length)>jq)throw new TypeError("setup records: each needs a unique relative .md path and a document (256 KiB in total)");return e.add(s.toLowerCase()),Object.freeze({path:s,document:r})}))}function Ax(n,e){return n.status!=="current"||n.refusal||e.facets.contracts.assessment?.status!=="setup_required"?n:Object.freeze({...n,status:"conflict",summary:_x,refusal:Object.freeze({code:"setup_unresolved",message:_x})})}function tp(n,e){let t=n.review,i=n.status==="current"?"current":n.status==="conflict"?"conflict":"setup",o=[],s=[],r={},a=new Set(t.staged.map(u=>u.path));for(let u of t.packs)for(let f of u.resources){let h=Uq(f.kind),m=`T${h.the.slice(1)}`,b=f.kind==="contract"?", so other apps can work with them":"";switch(f.action){case"create":o.push({kind:"create",target:f.target,message:`Add ${h.the}${b}.`});break;case"update":o.push({kind:"update",target:f.target,message:`Update ${h.the}.`});break;case"delete":o.push({kind:"delete",target:f.target,message:`Remove ${h.the}, which this app no longer uses.`});break;case"adopt":o.push({kind:"adopt",target:f.target,message:a.has(f.target)?`Replace ${h.the} with this app's version. Yours isn't kept.`:`Use your existing ${h.bare}, which already matches this app's.`});break;case"preserve":case"conflict":{if(f.action==="preserve"&&f.reason===void 0)break;let w=f.mode==="seed",g=f.currentDigest!==void 0&&(w||!f.installed);g&&(r[f.target]=f.currentDigest),s.push({target:f.target,...g?{adoptable:{digest:f.currentDigest}}:{},message:g&&w?`Your ${h.bare} has changes that can't be combined with the version this app needs. You can replace it with this app's version.`:g?`This collection already has a ${h.bare} that differs from the one this app needs. You can replace it with this app's version.`:f.installed?`${m} was changed after this app set it up, so it can't be updated automatically.`:`${m} can't be set up automatically.`});break}default:break}}for(let u of t.configuration){let f=$q(u.path);u.action==="add"?o.push({kind:"setting",target:f,message:f==="include"?"Include this app's files when reading the collection.":f==="record extensions"&&typeof u.value=="string"?`Read .${u.value.replace(/^\./,"")} files as notes in this collection.`:"Adjust a collection setting this app needs."}):s.push({target:f,message:"A collection setting differs from what this app needs, so it can't be changed automatically."})}let c=i==="current"?[]:e.records.map(u=>Object.freeze({path:u.path,action:u.free?"create":"skip"}));for(let u of c)u.action==="create"&&o.push({kind:"record",target:u.path,message:`Create the starter note "${Nq(u.path)}".`});i==="current"&&s.length&&(i="conflict");let l=(e.newer?.major.length??0)>0||t.packs.some(u=>u.installedVersion&&jo(u.installedVersion,u.version)==="installed_newer_major"),p;i!=="current"&&!e.canManage?p={code:"setup_forbidden",message:"This app doesn't have permission to set up this collection."}:l?p={code:"installed_newer",message:"A newer version of this app set up this collection. Update the app to continue."}:s.length?p={code:"setup_conflict",message:s.length===Object.keys(r).length?`${s.length===1?"One item differs":`${s.length} items differ`} from what this app needs. Choose whether to use this app's version to continue.`:"Some items can't be set up automatically. Resolve them, then try again."}:c.some(u=>u.action==="create")&&!e.canCreateRecords&&(p={code:"setup_records_forbidden",message:"This app doesn't have permission to create notes in this collection."});let d=i==="current"?"Everything this app needs is already set up.":p?p.message:`This app will make ${Dq(o.length,"change")} to this collection.${o.every(u=>u.kind==="create"||u.kind==="record"||u.kind==="adopt"&&!a.has(u.target))?" Nothing already in it is changed.":""}`;return Object.freeze({status:i,canApply:i==="setup"&&p===void 0,digest:n.assessmentDigest,summary:d,changes:Object.freeze(o.map(u=>Object.freeze(u))),conflicts:Object.freeze(s.map(u=>Object.freeze(u))),adoptable:Object.freeze(r),packs:Object.freeze([...t.packs.map(u=>Object.freeze({id:u.id,version:u.version,status:u.status,...u.installedVersion?{installedVersion:u.installedVersion,relation:jo(u.installedVersion,u.version)}:{}})),...(e.newer?.kept??[]).map(u=>Object.freeze({id:u.id,version:u.version,status:"current",installedVersion:u.installedVersion,relation:"installed_newer"}))]),staged:t.staged,records:Object.freeze(c),...p?{refusal:Object.freeze(p)}:{}})}var Lq,jq,Nq,Dq,$q,_x,sh=I(()=>{"use strict";mu();Lq=32,jq=256*1024,Nq=n=>(n.split("/").pop()??n).replace(/\.(md|ya?ml|json)$/i,"");Dq=(n,e,t=`${e}s`)=>`${n} ${n===1?e:t}`,$q=n=>(n.split("/").filter(Boolean).pop()??n).replace(/[_-]+/g," ");_x="This collection is missing something this app needs, and setup can't add it. A note type this app set up may have been changed or removed. Restore it, then try again."});function Ix(){throw A("unavailable","SDK release trust unavailable: package authenticated LAB or production inputs","application_release_trust_unavailable")}var Ox=I(()=>{"use strict";ie()});function Rx(n,e){let t=()=>A("unauthenticated","people scope changed","people_fenced"),i={collection:n,isCurrent:()=>e.holds(n),async request(o,s={}){if(o!=="identity"&&o!=="members")throw A("invalid_request","invalid people resource");for(let r=0;;r++){if(s.signal?.throwIfAborted(),!i.isCurrent())throw t();let a=await e.accessToken(n,r>0),{status:c,body:l}=await Kq(e,`/v1/authorities/${n}/${o}`,a,s.signal);if(!i.isCurrent())throw t();if(!(c===401&&r===0)){if(c===401)throw A("unauthenticated","people credential is no longer current","people_fenced");if(c===403){let p=l?.error?.code;throw p==="approval_required"?un("approval_required"):A("forbidden","people access was refused",o==="members"&&p==="insufficient_access"?"people_permission_declined":"people_access")}if(c===404)throw A("upgrade_required","people metadata is unsupported","people_unsupported");if(c!==200||!l)throw Gb();return l}}}};return i}async function Kq(n,e,t,i){let o=new AbortController,s=()=>o.abort();i?.addEventListener("abort",s,{once:!0});let r=setTimeout(s,Vq);r.unref?.();try{let a=await n.fetch(`${n.cpOrigin}${e}`,{method:"GET",headers:{authorization:`Bearer ${t}`},signal:o.signal,redirect:"error",credentials:"omit",cache:"no-store",referrerPolicy:"no-referrer"}),c=await a.text();if(c.length>Fq)throw Gb();let l=null;try{let p=JSON.parse(c);p&&typeof p=="object"&&!Array.isArray(p)&&(l=p)}catch{l=null}return{status:a.status,body:l}}catch(a){throw i?.aborted?A("cancelled","request cancelled"):a instanceof pe?a:Gb()}finally{clearTimeout(r),i?.removeEventListener("abort",s)}}var Fq,Vq,Gb,Ex=I(()=>{"use strict";Lr();ie();Fq=1024*1024,Vq=15e3,Gb=()=>A("unavailable","people metadata is unavailable","people_response")});var wr,Yb=I(()=>{"use strict";wr=Object.freeze({plaintextBytes:524288,operations:64,readbacks:128,pathCodeUnits:1024})});function Z(n){throw new nn(n)}function tn(n,e){return Object.keys(n).sort().join()===e}function Jb(n){return(!n||!tn(n,"account,collection,installation")||Object.values(n).some(e=>typeof e!="string"||!Xb.test(e)||e==="00000000-0000-0000-0000-000000000000"))&&Z("binding"),Object.freeze({account:n.account,installation:n.installation,collection:n.collection})}function qx(n){for(let e of n){let t=e.charCodeAt(0);if(t<32||t===127)return!0}return n.includes("\\")}function Wq(n){(!Array.isArray(n)||n.length!==2)&&Z("binding");let e=n.map(t=>((!t||typeof t!="object"||!tn(t,"doc,kind,mustNotExist,path")||t.kind!=="resource_put"||t.mustNotExist!==!0||typeof t.path!="string"||typeof t.doc!="string"||!t.doc.length||t.path.length>1024||!t.path.endsWith(".md")||t.path.startsWith("/")||qx(t.path)||t.path.split("/").some(i=>!i||i==="."||i===".."))&&Z("binding"),Object.freeze({kind:"resource_put",path:t.path,doc:t.doc,mustNotExist:!0})));return(e[0].path===e[1].path||Ki.encode(JSON.stringify(e)).byteLength>_i)&&Z("binding"),Object.freeze(e)}function ip(n){return typeof n=="string"&&n.length>0&&n.length<=wr.pathCodeUnits&&!n.startsWith("/")&&!qx(n)&&!n.split("/").some(e=>!e||e==="."||e==="..")}function Ho(n){let e=n;(!e||typeof e!="object"||!tn(e,"assessmentDigest,ops,pack,readback")||!e.pack||typeof e.pack!="object"||!tn(e.pack,"digest,id,version")||typeof e.pack.id!="string"||!e.pack.id.length||typeof e.pack.version!="string"||!e.pack.version.length||typeof e.pack.digest!="string"||!Wo.test(e.pack.digest)||typeof e.assessmentDigest!="string"||!Wo.test(e.assessmentDigest)||!Array.isArray(e.ops)||!e.ops.length||e.ops.length>wr.operations||!Array.isArray(e.readback)||!e.readback.length||e.readback.length>wr.readbacks)&&Z("binding");let t=e.ops.map(r=>{(!r||typeof r!="object"||!ip(r.path)||"baseRevision"in r&&(typeof r.baseRevision!="string"||!Wo.test(r.baseRevision)))&&Z("binding");let a="baseRevision"in r?{baseRevision:r.baseRevision}:{};return r.kind==="resource_put"?((!tn(r,"baseRevision"in r?"baseRevision,doc,kind,mustNotExist,path":"doc,kind,mustNotExist,path")||typeof r.doc!="string"||typeof r.mustNotExist!="boolean")&&Z("binding"),Object.freeze({kind:r.kind,path:r.path,doc:r.doc,...a,mustNotExist:r.mustNotExist})):((r.kind!=="resource_delete"||!tn(r,"baseRevision"in r?"baseRevision,kind,path":"kind,path"))&&Z("binding"),Object.freeze({kind:r.kind,path:r.path,...a}))}),i=new Set,o=e.readback.map(r=>((!r||typeof r!="object"||!tn(r,"doc,path")||!ip(r.path)||r.doc!==null&&typeof r.doc!="string"||i.has(r.path))&&Z("binding"),i.add(r.path),Object.freeze({path:r.path,doc:r.doc})));for(let r of t){let a=o.find(c=>c.path===r.path);(!a||a.doc!==(r.kind==="resource_put"?r.doc:null))&&Z("binding")}let s=Object.freeze({pack:Object.freeze({id:e.pack.id,version:e.pack.version,digest:e.pack.digest}),assessmentDigest:e.assessmentDigest,ops:Object.freeze(t),readback:Object.freeze(o)});return Ki.encode(JSON.stringify(s)).byteLength>_i&&Z("binding"),s}function xt(n){let e=n;(!e||typeof e!="object"||!tn(e,Object.hasOwn(e,"planKind")?"assessmentDigest,packs,planKind,provisionDigest,resourceOps,resourceReadback,sources":Object.hasOwn(e,"sourcePolicy")?"assessmentDigest,packs,provisionDigest,resourceOps,resourceReadback,sourcePolicy,sources":"assessmentDigest,packs,provisionDigest,resourceOps,resourceReadback,sources")||Object.hasOwn(e,"sourcePolicy")&&(e.sourcePolicy!=="current-only"||e.sources?.length!==0)||typeof e.assessmentDigest!="string"||!Wo.test(e.assessmentDigest)||typeof e.provisionDigest!="string"||!Wo.test(e.provisionDigest)||!Array.isArray(e.packs)||!e.packs.length&&e.planKind!=="configuration-only"||e.packs.length>16||!Array.isArray(e.resourceOps)||!Array.isArray(e.sources)||!e.resourceOps.length&&!e.sources.length||e.resourceOps.length+e.sources.length>wr.operations||!Array.isArray(e.resourceReadback)||!e.resourceReadback.length||e.resourceReadback.length+e.sources.length>wr.readbacks)&&Z("binding"),Object.hasOwn(e,"planKind")&&(e.planKind!=="configuration-only"||e.packs.length!==0||!e.resourceOps.length||e.resourceOps.some(p=>!p||p.kind!=="resource_put"||!["mdbase.yaml","mdbase.provisions.yaml"].includes(p.path)))&&Z("binding");let t=new Set,i=e.packs.map(p=>((!p||typeof p!="object"||!tn(p,"digest,id,version")||typeof p.id!="string"||!p.id.length||p.id.length>150||t.has(p.id)||typeof p.version!="string"||!p.version.length||p.version.length>256||typeof p.digest!="string"||!Wo.test(p.digest))&&Z("binding"),t.add(p.id),Object.freeze({...p}))),o=new Set,s=e.resourceReadback.map(p=>((!p||typeof p!="object"||!tn(p,"doc,path")||!ip(p.path)||o.has(p.path)||p.doc!==null&&typeof p.doc!="string")&&Z("binding"),o.add(p.path),Object.freeze({...p}))),r=e.resourceOps.map(p=>{(!p||typeof p!="object"||!ip(p.path))&&Z("binding");let d=Object.hasOwn(p,"baseRevision");d&&(typeof p.baseRevision!="string"||!Wo.test(p.baseRevision))&&Z("binding"),p.kind==="resource_put"?(!tn(p,d?"baseRevision,doc,kind,mustNotExist,path":"doc,kind,mustNotExist,path")||typeof p.doc!="string"||typeof p.mustNotExist!="boolean"||(p.mustNotExist?d:!d))&&Z("binding"):(p.kind!=="resource_delete"||!d||!tn(p,"baseRevision,kind,path"))&&Z("binding");let u=s.find(f=>f.path===p.path);return(!u||u.doc!==(p.kind==="resource_put"?p.doc:null))&&Z("binding"),Object.freeze({...p})}),a=new Set,c=e.sources.map(p=>((!p||typeof p!="object"||!tn(p,"document,id,path")||!ip(p.path)||o.has(p.path)||typeof p.id!="string"||!Xb.test(p.id)||p.id==="00000000-0000-0000-0000-000000000000"||a.has(p.id)||typeof p.document!="string"||!p.document.length)&&Z("binding"),o.add(p.path),a.add(p.id),Object.freeze({...p}))),l=Object.freeze({...e.planKind==="configuration-only"?{planKind:e.planKind}:{},...e.sourcePolicy==="current-only"?{sourcePolicy:e.sourcePolicy}:{},assessmentDigest:e.assessmentDigest,provisionDigest:e.provisionDigest,packs:Object.freeze(i),resourceOps:Object.freeze(r),resourceReadback:Object.freeze(s),sources:Object.freeze(c)});return Ki.encode(JSON.stringify(l)).byteLength>_i&&Z("binding"),l}function Et(n,e,t=0){t>8&&Z("binding");let i=n;(!i||typeof i!="object"||i.version!==1&&i.version!==2&&i.version!==3&&i.version!==4||!tn(i,i.version===1?"mutationId,ops,phase,scope,version":i.version===4?"mutationId,phase,plan,previous,scope,version":"mutationId,phase,plan,scope,version")||typeof i.mutationId!="string"||!Xb.test(i.mutationId)||i.mutationId==="00000000-0000-0000-0000-000000000000"||!(np.includes(i.phase)||i.phase==="rejected"&&(i.version===3||i.version===4)))&&Z("recovery_required");let o=Jb(i.scope);if(JSON.stringify(o)!==JSON.stringify(e)&&Z("binding"),i.version===1)return Object.freeze({version:1,scope:o,mutationId:i.mutationId,ops:Wq(i.ops),phase:i.phase});if(i.version===4){let r=Et(i.previous,e,t+1);r.phase!=="verified"&&Z("recovery_required");for(let l=r;l.mutationId===i.mutationId&&Z("binding"),l.version===4;)l=l.previous;let a=xt(i.plan);a.resourceOps.some(l=>l.kind!=="resource_put"||!l.mustNotExist&&!["mdbase.yaml","mdbase.lock.yaml","mdbase.provisions.yaml"].includes(l.path))&&Z("binding");let c=Object.freeze({version:4,scope:o,mutationId:i.mutationId,plan:a,phase:i.phase,previous:r});return Ki.encode(JSON.stringify({...c,phase:"confirmed"})).byteLength>_i&&Z("binding"),c}if(i.version===3){xt(i.plan).sourcePolicy!==void 0&&Z("binding");let r=Object.freeze({version:3,scope:o,mutationId:i.mutationId,plan:xt(i.plan),phase:i.phase});return Ki.encode(JSON.stringify({...r,phase:"confirmed"})).byteLength>_i&&Z("binding"),r}let s=Object.freeze({version:2,scope:o,mutationId:i.mutationId,plan:Ho(i.plan),phase:i.phase});return Ki.encode(JSON.stringify({...s,phase:"confirmed"})).byteLength>_i&&Z("binding"),s}function ah(n){return n.version!==2&&Z("recovery_required"),n}function Hq(n,e,t){return t(),globalThis.indexedDB||Z("recovery_required"),new Promise((i,o)=>{let s=indexedDB.open(n,1),r=!1,a=()=>{r=!0,e.removeEventListener("abort",a);try{s.transaction?.abort()}catch{}o(new nn("recovery_required"))};e.addEventListener("abort",a,{once:!0}),s.onupgradeneeded=()=>{try{t(),(r||s.result.objectStoreNames.length)&&Z("recovery_required"),s.result.createObjectStore(za)}catch{a()}},s.onerror=s.onblocked=a,s.onsuccess=()=>{e.removeEventListener("abort",a);try{t(),(r||s.result.objectStoreNames.length!==1||!s.result.objectStoreNames.contains(za))&&Z("recovery_required"),i(s.result)}catch{s.result.close(),o(new nn("recovery_required"))}}})}var za,np,Xb,_i,Wo,Ki,nn,Ba,Go=I(()=>{"use strict";bt();Yb();za="original-model-operation",np=["prepared","attempted","confirmed","verified"],Xb=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,_i=wr.plaintextBytes,Wo=/^sha256:[0-9a-f]{64}$/,Ki=new TextEncoder,nn=class extends Error{constructor(t){super("Preserve the original collection setup operation.");this.reason=t}reason};Ba=class{constructor(e){this.owner=e;this.scope=Jb(e.scope),(typeof e.isCurrent!="function"||[e.databaseName,e.applicationNamespace].some(o=>typeof o!="string"||!o.length||o.length>256||/[\u0000-\u001f\u007f]/.test(o)))&&Z("binding"),this.current=e.isCurrent,this.pins=JSON.stringify([e.databaseName,e.applicationNamespace,e.appOrigin,e.cpOrigin]);let t=new URL(e.appOrigin),i=new URL(e.cpOrigin);(t.origin!==e.appOrigin||i.origin!==e.cpOrigin||i.protocol!=="https:"&&!!1)&&Z("binding"),this.namespace=JSON.stringify([e.appOrigin,e.cpOrigin,e.applicationNamespace,this.scope.account,this.scope.installation,this.scope.collection]),this.binding=JSON.stringify(this.scope)}owner;scope;namespace;binding;stopped=!1;turn=Promise.resolve();pins;current;close(){this.stopped=!0}check(e){e.throwIfAborted();let t=!1;try{t=!this.stopped&&this.owner.isCurrent===this.current&&this.current.call(this.owner)===!0&&JSON.stringify([this.owner.databaseName,this.owner.applicationNamespace,this.owner.appOrigin,this.owner.cpOrigin])===this.pins&&JSON.stringify(Jb(this.owner.scope))===this.binding}catch{}t||(this.stopped=!0,Z("fenced"))}async exclusive(e,t){this.check(e);let i=this.turn,o,s=new Promise(a=>{o=a});this.turn=i.then(()=>s);let r;try{await new Promise((c,l)=>{let p=()=>l(e.reason);e.addEventListener("abort",p,{once:!0}),i.then(()=>{e.removeEventListener("abort",p),c()})}),this.check(e),r=await Hq(this.owner.databaseName,e,()=>this.check(e)),this.check(e);let a=await t(r);return this.check(e),a}finally{r?.close(),o()}}read(e,t){return this.check(t),new Promise((i,o)=>{let s=e.transaction(za,"readonly"),r=s.objectStore(za).get(this.namespace),a=()=>s.abort();t.addEventListener("abort",a,{once:!0}),s.onabort=s.onerror=()=>{t.removeEventListener("abort",a),o(new nn("recovery_required"))},s.oncomplete=()=>{t.removeEventListener("abort",a),i(r.result)}})}aad(e){return Ki.encode(JSON.stringify([this.namespace,1,e]))}async unwrap(e,t){if(this.check(t),e===void 0)return null;(!e||!tn(e,"ciphertext,iv,key,revision,version")||e.version!==1||!Number.isSafeInteger(e.revision)||e.revision<1||!(e.key instanceof CryptoKey)||e.key.extractable||e.key.type!=="secret"||e.key.algorithm.name!=="AES-GCM"||!e.key.usages.includes("encrypt")||!e.key.usages.includes("decrypt")||!(e.iv instanceof Uint8Array)||e.iv.byteLength!==12||!(e.ciphertext instanceof ArrayBuffer)||e.ciphertext.byteLength>_i+2048)&&Z("recovery_required");let i;try{i=new Uint8Array(await crypto.subtle.decrypt({name:"AES-GCM",iv:e.iv,additionalData:this.aad(e.revision)},e.key,e.ciphertext)),this.check(t);let o=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(i));return(o?.version===2||o?.version===3||o?.version===4)&&i.byteLength>_i&&Z("recovery_required"),Et(o,this.scope)}catch(o){throw o instanceof nn||t.aborted?o:new nn("recovery_required")}finally{i?.fill(0)}}async commit(e,t,i,o){this.check(o);let s=(t?.revision??0)+1;Number.isSafeInteger(s)||Z("fenced");let r=t?.key??await crypto.subtle.generateKey({name:"AES-GCM",length:256},!1,["encrypt","decrypt"]),a=crypto.getRandomValues(new Uint8Array(12)),c=Ki.encode(JSON.stringify(i));c.byteLength>_i&&(c.fill(0),Z("binding"));let l;try{l=await crypto.subtle.encrypt({name:"AES-GCM",iv:a,additionalData:this.aad(s)},r,c)}finally{c.fill(0)}this.check(o);try{await new Promise((p,d)=>{let u=e.transaction(za,"readwrite",{durability:"strict"}),f=()=>u.abort();o.addEventListener("abort",f,{once:!0}),u.onerror=u.onabort=()=>{o.removeEventListener("abort",f),d(new nn("outcome_unknown"))},u.oncomplete=()=>{o.removeEventListener("abort",f),p()};let h=u.objectStore(za),m=h.get(this.namespace);m.onsuccess=()=>{try{this.check(o);let b=m.result;if(b===void 0!=(t===void 0)||b&&b.revision!==t?.revision){u.abort();return}h.put({version:1,revision:s,key:r,iv:a,ciphertext:l},this.namespace)}catch{u.abort()}}})}catch(p){throw this.stopped=!0,p}return this.check(o),i}load(e){return this.exclusive(e,async t=>this.unwrap(await this.read(t,e),e))}prepare(e,t){let i=Ho(e);return Ki.encode(JSON.stringify({version:2,scope:this.scope,mutationId:this.scope.collection,plan:i,phase:"confirmed"})).byteLength>_i&&Z("binding"),this.exclusive(t,async o=>{let s=await this.read(o,t),r=await this.unwrap(s,t);if(r){let c=ah(r);return JSON.stringify(c.plan)!==JSON.stringify(i)&&Z("binding"),c}let a=ah(Et({version:2,scope:this.scope,mutationId:crypto.randomUUID(),plan:i,phase:"prepared"},this.scope));return this.commit(o,s,a,t)})}prepareResources(e,t){let i=xt(e);return i.sourcePolicy!==void 0&&Z("binding"),Ki.encode(JSON.stringify({version:3,scope:this.scope,mutationId:this.scope.collection,plan:i,phase:"confirmed"})).byteLength>_i&&Z("binding"),this.exclusive(t,async o=>{let s=await this.read(o,t),r=await this.unwrap(s,t);if(r&&!(r.version===3&&r.phase==="rejected"))return r.version!==3&&Z("recovery_required"),JSON.stringify(r.plan)!==JSON.stringify(i)&&Z("binding"),r;let a=Et({version:3,scope:this.scope,mutationId:crypto.randomUUID(),plan:i,phase:"prepared"},this.scope);return a.version!==3&&Z("binding"),this.commit(o,s,a,t)})}prepareResourceRound(e,t,i){let o=xt(e);return this.exclusive(i,async s=>{let r=await this.read(s,i),a=await this.unwrap(r,i);a?.version===4&&a.phase==="rejected"&&(a=a.previous),(!a||a.mutationId!==t)&&Z("binding"),a.phase!=="verified"&&Z("recovery_required");let c=Et({version:4,scope:this.scope,mutationId:crypto.randomUUID(),plan:o,phase:"prepared",previous:a},this.scope);return c.version!==4&&Z("binding"),this.commit(s,r,c,i)})}advanceResource(e,t,i){return this.exclusive(i,async o=>{let s=await this.read(o,i),r=await this.unwrap(s,i);(!r||r.version!==3&&r.version!==4)&&Z("recovery_required"),r.mutationId!==e&&Z("binding"),r.phase==="rejected"&&Z("recovery_required");let a=np.indexOf(r.phase),c=np.indexOf(t);if((c<a||c>a+1)&&Z("recovery_required"),c===a)return r;let l=Et({...r,phase:t},this.scope);return l.version!==3&&l.version!==4&&Z("binding"),this.commit(o,s,l,i)})}recordResourceAttempt(e,t){return this.advanceResource(e,"attempted",t)}recordResourceConfirmed(e,t){return this.advanceResource(e,"confirmed",t)}recordResourceVerified(e,t){return this.advanceResource(e,"verified",t)}recordResourceRejected(e,t){return this.exclusive(t,async i=>{let o=await this.read(i,t),s=await this.unwrap(o,t);if((!s||s.version!==3&&s.version!==4)&&Z("recovery_required"),s.mutationId!==e&&Z("binding"),s.phase==="rejected")return s;s.phase!=="attempted"&&Z("recovery_required");let r=Et({...s,phase:"rejected"},this.scope);return r.version!==3&&r.version!==4&&Z("binding"),this.commit(i,o,r,t)})}advance(e,t,i){return this.exclusive(i,async o=>{let s=await this.read(o,i),r=await this.unwrap(s,i);r||Z("recovery_required");let a=ah(r);a.mutationId!==e&&Z("binding"),a.phase==="rejected"&&Z("recovery_required");let c=np.indexOf(a.phase),l=np.indexOf(t);return(l<c||l>c+1)&&Z("recovery_required"),l===c?a:this.commit(o,s,ah(Et({...a,phase:t},this.scope)),i)})}recordAttempt(e,t){return this.advance(e,"attempted",t)}recordConfirmed(e,t){return this.advance(e,"confirmed",t)}recordVerified(e,t){return this.advance(e,"verified",t)}}});function Tx(n){if(!n||typeof n!="object")return null;let e=n;if(typeof e.mutationId!="string"||!Gq.test(e.mutationId)||!Array.isArray(e.records)||!e.records.every(i=>typeof i=="string")||typeof e.createdAt!="number"||e.state!=="pending"&&e.state!=="rejected")return null;let t=e.problem;return t!==void 0&&(!t||typeof t.code!="string"||typeof t.message!="string"||typeof t.recovery!="string")?null:{mutationId:e.mutationId,records:[...e.records],createdAt:e.createdAt,state:e.state,...t?{problem:{code:t.code,recovery:t.recovery,message:t.message,...t.reason?{reason:t.reason}:{}}}:{}}}var Gq,Mx=I(()=>{"use strict";Gq=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/});function lh(n){if(!n||typeof n!="object"||Array.isArray(n))throw yn();let e=Object.getPrototypeOf(n);if(e!==Object.prototype&&e!==null)throw yn();let t=Object.create(null);for(let i of Reflect.ownKeys(n)){if(typeof i!="string")throw yn();let o=Object.getOwnPropertyDescriptor(n,i);if(!o||!("value"in o))throw yn();o.enumerable&&(t[i]=o.value)}return t}function Zb(n){if(typeof n!="string"||!n.trim()||Yq.encode(n).byteLength>4096)throw yn();return n}function jx(n){let e=Zb(n),t=new URL(e);if(!["http:","https:"].includes(t.protocol)||t.username||t.password)throw yn();return e}function Lx(n){let e=lh(n),t={issuer:jx(e.issuer),subject:Zb(e.subject),name:Zb(e.name)};if(e.account_id!==void 0){if(typeof e.account_id!="string"||!Jq.test(e.account_id)||e.account_id==="00000000-0000-0000-0000-000000000000")throw yn();t.account_id=e.account_id}return t}function Xq(n){if(!Array.isArray(n)||Object.getPrototypeOf(n)!==Array.prototype||n.length>1e3)throw yn();for(let t of Reflect.ownKeys(n)){let i=Object.getOwnPropertyDescriptor(n,t);if(typeof t!="string"||!i||!("value"in i))throw yn()}let e=[];for(let t=0;t<n.length;t++){let i=Object.getOwnPropertyDescriptor(n,String(t));if(!i||!("value"in i))throw yn();e.push(i.value)}return e}function Fa(n,e){try{let t=lh(e);if(n==="identity"){let o=Lx(t);return t.person_settings_url!==void 0&&(o.person_settings_url=jx(t.person_settings_url)),o}if(n!=="members")throw yn();return{members:Xq(t.members).map(o=>{let s=lh(o),r=Lx(s),a=s.role;if(a!=="owner"&&a!=="editor"&&a!=="viewer")throw yn();return{...r,role:a}})}}catch{throw yn()}}function Nx(n,e){try{if(e instanceof pe)switch(e.code){case"forbidden":return{code:"forbidden",reason:n==="members"&&e.reason==="people_permission_declined"?"people_permission_declined":"people_access"};case"unauthenticated":case"cancelled":return{code:"unauthenticated",reason:"people_fenced"};case"upgrade_required":return{code:"upgrade_required",reason:"people_unsupported"}}}catch{}return{code:"unavailable",reason:"people_response"}}function Ux(n){let e=lh(n);if(!(e.code==="forbidden"&&["people_permission_declined","people_access"].includes(e.reason)||e.code==="unauthenticated"&&e.reason==="people_fenced"||e.code==="upgrade_required"&&e.reason==="people_unsupported"||e.code==="unavailable"&&["people_response","people_busy"].includes(e.reason))||Object.keys(e).length!==2)throw yn();return A(e.code,"people metadata request failed",e.reason)}function ch(n,e){if(!e.peopleAuthority)throw A("upgrade_required","people metadata is unsupported","people_unsupported");return new jr(n,e.peopleAuthority)}var yn,Yq,Jq,rp=I(()=>{"use strict";ie();nu();yn=()=>A("unavailable","invalid people response","people_response"),Yq=new TextEncoder,Jq=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/});function ei(n){if(!Yo(n)||Object.keys(n).some(i=>i!=="adopt"))throw le("binding");if(n.adopt===void 0)return Object.freeze({});let e=n.adopt;if(!Yo(e)||Object.keys(e).length>256)throw le("binding");let t={};for(let[i,o]of Object.entries(e)){if(!Wi(i)||typeof o!="string"||!sp.test(o))throw le("binding");t[i]=o}return Object.freeze({adopt:Object.freeze(t)})}function Zq(n){if(!Yo(n)||!op(n,"configuration,packs,staged")||!Array.isArray(n.packs)||n.packs.length>16||!Array.isArray(n.configuration)||n.configuration.length>64||!Array.isArray(n.staged)||n.staged.length>1024)throw le("binding");let e=n.packs.map(o=>{if(!Yo(o)||!op(o,"id,installedVersion,resources,status,version")||!Wi(o.id,150)||!Wi(o.version,128)||!["current","install","upgrade","downgrade","reconfigure","conflict"].includes(o.status)||!(o.installedVersion===null||Wi(o.installedVersion,128))||!Array.isArray(o.resources)||o.resources.length>1024)throw le("binding");let s=o.resources.map(r=>{if(!Yo(r)||!op(r,"action,installed,kind,mode,target",["currentDigest","reason"])||!Wi(r.target)||!Wi(r.kind,64)||r.mode!=="managed"&&r.mode!=="seed"||typeof r.installed!="boolean"||!["create","update","delete","adopt","preserve","conflict"].includes(r.action)||r.currentDigest!==void 0&&(typeof r.currentDigest!="string"||!sp.test(r.currentDigest))||r.reason!==void 0&&!Wi(r.reason,8192))throw le("binding");return Object.freeze({...r})});return Object.freeze({id:o.id,version:o.version,status:o.status,installedVersion:o.installedVersion,resources:Object.freeze(s)})}),t=n.configuration.map(o=>{if(!Yo(o)||!op(o,"action,path,requirement",["value"])||!Wi(o.requirement,256)||!Wi(o.path,1024)||o.action!=="add"&&o.action!=="conflict"||!(o.value===void 0||o.value===null||["string","number","boolean"].includes(typeof o.value)))throw le("binding");return Object.freeze({...o})}),i=n.staged.map(o=>{if(!Yo(o)||!op(o,"document,path")||!Wi(o.path)||typeof o.document!="string"||o.document.length>512*1024)throw le("binding");return Object.freeze({path:o.path,document:o.document})});return Object.freeze({packs:Object.freeze(e),configuration:Object.freeze(t),staged:Object.freeze(i)})}function Jo(n,e=!1){let t=n;if(!t||typeof t!="object"||Object.keys(t).sort().join(",")!==(e?"assessmentDigest,review,status":"assessmentDigest,status")||!["current","provision","conflict"].includes(t.status)||typeof t.assessmentDigest!="string"||!sp.test(t.assessmentDigest))throw le("binding");return Object.freeze({status:t.status,assessmentDigest:t.assessmentDigest,...e?{review:Zq(t.review)}:{}})}function Dx(n){let e=Object.freeze({account:n.scope.account,installation:n.scope.installation,collection:n.scope.collection});if(Object.values(e).some(t=>!Va.test(t)||/^0{8}-0{4}-0{4}-0{4}-0{12}$/.test(t))||!Va.test(n.generation))throw le("binding");return{scope:e,generation:n.generation,binding:JSON.stringify([e.account,e.installation,e.collection])}}function Ka(n){try{return new TextEncoder().encode(JSON.stringify(n)).byteLength<=Qq}catch{return!1}}function $x(n,e,t){t=Object.freeze({...t});let i=Dx(e),o=!1,s=null,r=null,a=0,c={},l=t.setupTurn,p=()=>{l?.owner===c&&(l.owner=null)},d=()=>{if(o||t.signal.aborted||t.isCurrent()!==!0)throw le()},u=(m,b,w)=>{d();let g=[1,i.binding,i.generation,m,b,w];if(!Ka(g))throw le("binding");n.postMessage(g)},f=()=>{if(!o){o=!0,p(),n.onmessage=n.onmessageerror=null;try{n.postMessage([1,i.binding,i.generation,0,"closed",null])}catch{}n.close()}},h=()=>{try{f()}finally{t.onProtocolFailure()}};return n.onmessageerror=h,n.onmessage=m=>{let b=m.data;try{if(d(),Array.isArray(b)&&b.length===6&&b[0]===1&&b[1]===i.binding&&b[2]===i.generation&&b[3]===0&&b[4]==="detach"&&b[5]===null){h();return}if(!Array.isArray(b)||b.length!==6||b[0]!==1||b[1]!==i.binding||b[2]!==i.generation||!Number.isInteger(b[3])||b[3]<1||b[3]>4294967295||!i2.includes(b[4])||!Ka(b))throw le("binding");let w=b[3],g=b[4],y=b[5];if(w<=a)throw le("binding");if(a=w,e2(g)){let k=null;try{let S=t.ledger?.()??null;if(!S)throw le("recovery_required");if(g==="ledgerList"){if(y!==null)throw le("binding");k=S.list(n2)}else if(g==="ledgerRemove"){if(typeof y!="string"||!Va.test(y))throw le("binding");S.remove(y)}else{if(!Array.isArray(y)||y.length!==2||typeof y[0]!="string"||!Va.test(y[0])||typeof y[1]!="string"||y[1].length>t2)throw le("binding");S.put(y[0],y[1])}}catch(S){u(w,"error",S instanceof ti?S.reason:"recovery_required");return}u(w,"result",k);return}if(s){u(w,"error","busy");return}if(l&&r2(g)&&l.owner!==null&&l.owner!==c){u(w,"error","busy");return}let v=async()=>{d();let k=null;switch(g){case"resourcesAssess":case"resourcesApply":{let S=t.resourceSetup;if(!S)throw le("recovery_required");if(g==="resourcesAssess"){let x=Array.isArray(y);if(x&&y.length!==2)throw le("binding");k=x?Jo(await S.assess(y[0],t.signal,ei(y[1])),!0):Jo(await S.assess(y,t.signal))}else{if(!Array.isArray(y)||y.length!==2&&y.length!==3||typeof y[1]!="string"||!sp.test(y[1]))throw le("binding");k=xt(y.length===3?await S.apply(y[0],y[1],t.signal,ei(y[2])):await S.apply(y[0],y[1],t.signal))}d();break}case"peopleIdentity":case"peopleMembers":{if(y!==null)throw le("binding");let S=t.peopleAuthority;if(!S)throw A("upgrade_required","people metadata is unsupported","people_unsupported");let x=()=>{if(d(),S.collection!==i.scope.collection||S.isCurrent()!==!0)throw A("unauthenticated","people scope changed","people_fenced")};x();let P=ph(g),C=await S.request(P,{signal:t.signal});if(x(),k=Fa(P,C),x(),!Ka([1,i.binding,i.generation,w,"result",k]))throw A("unavailable","invalid people response","people_response");break}case"load":if(y!==null)throw le("binding");p(),k=await t.journal.load(t.signal);break;case"prepare":k=await t.journal.prepare(Ho(y),t.signal),d(),l&&(l.owner=c);break;case"prepareResources":k=await t.journal.prepareResources(xt(y),t.signal),d(),l&&(l.owner=c);break;case"prepareResourceRound":if(!Array.isArray(y)||y.length!==2||typeof y[1]!="string")throw le("binding");k=await t.journal.prepareResourceRound(xt(y[0]),y[1],t.signal),d(),l&&(l.owner=c);break;case"assess":if(y!=="ready"&&y!=="setup_required")throw le("binding");t.assess(y);break;case"foreground":if(typeof y!="boolean")throw le("binding");t.foreground(y);break;case"recordResourceRejected":{if(typeof y!="string"||!Va.test(y))throw le("binding");let S=t.resourceSetup?.rejected;if(!S||await S(y,t.signal)!==!0)throw le("recovery_required");d(),k=await t.journal.recordResourceRejected(y,t.signal),p();break}default:if(typeof y!="string"||!Va.test(y))throw le("binding");k=await t.journal[g](y,t.signal),(g==="recordVerified"||g==="recordResourceVerified")&&p()}d(),u(w,"result",k)},_=s=Promise.resolve().then(v).catch(k=>{if(!(o||t.signal.aborted))try{let S=ph(g);u(w,"error",S?Nx(S,k):k instanceof nn||k instanceof ti?k.reason:"recovery_required")}catch{h()}});_.finally(()=>{s===_&&(s=null)}).catch(()=>{})}catch{h()}},n.start(),{close(){return r||(r=Promise.resolve().then(async()=>{f(),await s}),r)}}}function dh(n,e,t){t=Object.freeze({...t});let i=Dx(e),o=!1,s=1,r=null,a=new Map,c=()=>{if(o||t.signal.aborted||t.isCurrent()!==!0)throw le()},l=()=>{if(o)return;o=!0,t.signal.removeEventListener("abort",l),n.onmessage=n.onmessageerror=null;let v=r;r=null,v?.finish(void 0,le(Qb(v.action)?"fenced":"outcome_unknown"));for(let _ of a.values())_(void 0,le("fenced"));a.clear();try{n.postMessage([1,i.binding,i.generation,0,"detach",null])}catch{}try{n.close()}finally{t.onClose()}};t.signal.addEventListener("abort",l,{once:!0}),n.onmessageerror=l,n.onmessage=v=>{try{c();let _=v.data;if(!Array.isArray(_)||_.length!==6||_[0]!==1||_[1]!==i.binding||_[2]!==i.generation||!Ka(_))throw le();if(_[3]===0&&_[4]==="closed"&&_[5]===null){l();return}let k=a.get(_[3]);if(k&&["result","error"].includes(_[4])){a.delete(_[3]),k(_[4]==="result"?_[5]:void 0,_[4]==="error"?le(_[5]==="binding"?"binding":"recovery_required"):void 0);return}if(!r||_[3]!==r.id||!["result","error"].includes(_[4]))throw le();let S=r,x=_[4]==="error"?ph(S.action)&&_[5]!=="busy"?Ux(_[5]):_[5]==="busy"?le("busy"):le(["binding","fenced","recovery_required","outcome_unknown"].includes(_[5])?_[5]:"recovery_required"):void 0;r=null,S.finish(_[4]==="result"?_[5]:void 0,x)}catch{l()}},n.start();let p=(v,_,k)=>{try{if(c(),k.aborted)throw le();if(r)throw le("busy");if(s>4294967295)throw l(),le()}catch(x){return Promise.reject(x)}let S=s++;return new Promise((x,P)=>{let C=!1,R=()=>O(void 0,le(Qb(v)?"fenced":"outcome_unknown")),O=(L,z)=>{C||(C=!0,k.removeEventListener("abort",R),z?P(z):x(L))};r={id:S,action:v,finish:O},k.addEventListener("abort",R,{once:!0});try{let L=[1,i.binding,i.generation,S,v,_];if(!Ka(L))throw le("binding");n.postMessage(L)}catch(L){r=null,O(void 0,L),l()}})},d=(v,_)=>{try{if(c(),s>4294967295)throw l(),le()}catch(S){return Promise.reject(S)}let k=s++;return new Promise((S,x)=>{a.set(k,(P,C)=>C?x(C):S(P));try{let P=[1,i.binding,i.generation,k,v,_];if(!Ka(P))throw le("binding");n.postMessage(P)}catch(P){a.delete(k),x(P)}})},u=Object.freeze({async list(){let v=await d("ledgerList",null);if(!Array.isArray(v))throw le("recovery_required");return v.flatMap(_=>{try{let k=Tx(JSON.parse(String(_)));return k?[k]:[]}catch{return[]}})},async put(v){await d("ledgerPut",[v.mutationId,JSON.stringify(v)])},async remove(v){await d("ledgerRemove",v)}}),f=(v,_)=>{let k=Qb(v)?"fenced":"outcome_unknown";try{if(c(),_.aborted)throw le()}catch{throw le(k)}},h=async(v,_,k)=>{let S=await p(v,_,k);f(v,k);let x=Et(S,i.scope);return f(v,k),x},m=async(v,_,k)=>{let S=await h(v,_,k);if(f(v,k),S.version!==2)throw le("recovery_required");return S},b=async(v,_,k)=>{let S=await h(v,_,k);if(f(v,k),S.version!==3&&S.version!==4)throw le("recovery_required");return S},w=Object.freeze({scope:i.scope,async load(v){let _=await p("load",null,v);f("load",v);let k=_===null?null:Et(_,i.scope);return f("load",v),k},prepare:(v,_)=>m("prepare",Ho(v),_),recordAttempt:(v,_)=>m("recordAttempt",v,_),recordConfirmed:(v,_)=>m("recordConfirmed",v,_),recordVerified:(v,_)=>m("recordVerified",v,_),async prepareResources(v,_){let k=await b("prepareResources",xt(v),_);if(f("prepareResources",_),k.version!==3)throw le("recovery_required");return k},async prepareResourceRound(v,_,k){let S=await b("prepareResourceRound",[xt(v),_],k);if(f("prepareResourceRound",k),S.version!==4)throw le("recovery_required");return S},recordResourceAttempt:(v,_)=>b("recordResourceAttempt",v,_),recordResourceConfirmed:(v,_)=>b("recordResourceConfirmed",v,_),recordResourceVerified:(v,_)=>b("recordResourceVerified",v,_),recordResourceRejected:(v,_)=>b("recordResourceRejected",v,_)}),g=t.people===!0?Object.freeze({collection:i.scope.collection,isCurrent(){try{return c(),!0}catch{return!1}},async request(v,_={}){if(v!=="identity"&&v!=="members")throw A("invalid_request","invalid people resource");let k=v==="identity"?"peopleIdentity":"peopleMembers",S=_.signal??t.signal;try{let x=await p(k,null,S);f(k,S);let P=Fa(v,x);return f(k,S),P}catch(x){try{f(k,S)}catch{throw A("unauthenticated","people scope changed","people_fenced")}throw x instanceof ti?A(x.reason==="busy"?"unavailable":"unauthenticated","people metadata request failed",x.reason==="busy"?"people_busy":"people_fenced"):x}}}):void 0,y=Object.freeze({async assess(v,_,k){let S=k!==void 0,x=await p("resourcesAssess",S?[v,ei(k)]:v,_);f("resourcesAssess",_);let P=Jo(x,S);return f("resourcesAssess",_),P},async apply(v,_,k,S){if(!sp.test(_))throw le("binding");let x=await p("resourcesApply",S===void 0?[v,_]:[v,_,ei(S)],k);f("resourcesApply",k);let P=xt(x);return f("resourcesApply",k),P}});return Object.freeze({journal:w,close:l,resourceSetup:y,ledger:u,...g?{peopleAuthority:g}:{},async assess(v,_){await p("assess",v,_),f("assess",_)},async setForeground(v,_){await p("foreground",v,_),f("foreground",_)}})}var sp,Yo,Wi,op,Qq,Va,ti,le,e2,t2,n2,i2,ph,Qb,r2,no=I(()=>{"use strict";Go();ie();Mx();rp();sp=/^sha256:[0-9a-f]{64}$/,Yo=n=>!!n&&typeof n=="object"&&!Array.isArray(n)&&Object.getPrototypeOf(n)===Object.prototype,Wi=(n,e=4096)=>typeof n=="string"&&n.length>0&&n.length<=e;op=(n,e,t=[])=>{let i=e.split(",");return i.every(o=>Object.hasOwn(n,o))&&Object.keys(n).every(o=>i.includes(o)||t.includes(o))};Qq=512*1024+8192,Va=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,ti=class extends Error{constructor(t){super(`app collection control: ${t}`);this.reason=t;this.name="AppCollectionControlError"}reason},le=(n="fenced")=>new ti(n);e2=n=>n==="ledgerList"||n==="ledgerPut"||n==="ledgerRemove",t2=16*1024,n2=448*1024,i2=["load","prepare","prepareResources","prepareResourceRound","recordAttempt","recordConfirmed","recordVerified","recordResourceAttempt","recordResourceConfirmed","recordResourceVerified","recordResourceRejected","assess","foreground","peopleIdentity","peopleMembers","resourcesAssess","resourcesApply","ledgerList","ledgerPut","ledgerRemove"],ph=n=>n==="peopleIdentity"?"identity":n==="peopleMembers"?"members":null,Qb=n=>n==="load"||n==="assess"||n==="foreground"||n==="resourcesAssess"||n==="resourcesApply"||ph(n)!==null,r2=n=>n==="load"||n==="prepare"||n==="prepareResources"||n==="prepareResourceRound"||n.startsWith("record")});function nw(n){if(!/^sha256:[a-f0-9]{64}$/.test(n))throw Hi();return Uint8Array.from(n.slice(7).match(/../g),e=>parseInt(e,16))}function ew(n){if(!(n instanceof Map)||[...n.keys()].some(e=>typeof e!="number"))throw Hi();return n}function uh(n,e){if(!(n instanceof Uint8Array)||n.length!==e)throw Hi();return n.slice()}function tw(n){if(n instanceof yt)return n.value;if(n instanceof Map){if([...n.keys()].some(e=>typeof e!="string"))throw Hi();return Object.fromEntries([...n].map(([e,t])=>[e,tw(t)]))}if(Array.isArray(n))return n.map(tw);if(n===null||["string","boolean","number"].includes(typeof n))return n;throw Hi()}async function ap(n,e,t,i){let o=ce(new Map([[0,1],[1,e],...t].sort(([r],[a])=>Number(r)-Number(a)))),s;try{s=await n.declaredSetup(o,i);let r=ew(ue(s));if(r.get(0)!==1)throw Hi();let a=r.get(1),c=a==="review"?[0,1,2,3,4,5,6,7,8,9,10]:a==="pending"?[0,1,2]:a==="receipt"?[0,1,3]:a==="cancelled"?[0,1]:[];if(r.size!==c.length||c.some(f=>!r.has(f)))throw Hi();if(a==="cancelled")return{kind:a};if(a==="receipt")return{kind:a,receipt:kt.dec(r.get(3))};let l=uh(r.get(2),16);if(a==="pending")return{kind:a,ticket:l};if(a!=="review"||!["ready","setup_required","incompatible"].includes(r.get(3))||typeof r.get(8)!="string")throw Hi();let p=ew(r.get(9)),d=r.get(10);if(!(p instanceof Map)||p.size!==2||![p.get(0),p.get(1)].every(f=>Number.isSafeInteger(f)&&Number(f)>=0&&Number(f)<=256)||!Array.isArray(d)||d.length>32)throw Hi();let u=d.map(f=>{let h=ew(f);if(h.size!==2||typeof h.get(0)!="string"||!["create","skip"].includes(h.get(1)))throw Hi();return Object.freeze({path:h.get(0),action:h.get(1)})});return{kind:a,ticket:l,revision:uh(r.get(4),32),declaration:zx(uh(r.get(7),32)),application:r.get(8),promoted:p.get(0),retained:p.get(1),records:Object.freeze(u),assessment:Jo({status:r.get(3)==="ready"?"current":r.get(3)==="incompatible"?"conflict":"provision",assessmentDigest:"sha256:"+zx(uh(r.get(5),32)),review:tw(r.get(6))},!0)}}finally{o.fill(0),s?.fill(0)}}var Hi,zx,Bx=I(()=>{"use strict";Je();ie();no();At();Hi=()=>A("internal","Invalid Native setup reply.","declared_setup_codec"),zx=n=>Array.from(n,e=>e.toString(16).padStart(2,"0")).join("")});function o2(n){return new Promise((e,t)=>{if(n?.aborted)return t(A("cancelled","Setup cancelled."));let i=()=>{clearTimeout(o),t(A("cancelled","Setup cancelled."))},o=setTimeout(()=>{n?.removeEventListener("abort",i),e()},100);n?.addEventListener("abort",i,{once:!0})})}function Fx(n){let{client:e,journal:t}=n,i=n.operations.includes("assess_collection_setup")&&n.operations.includes("apply_collection_setup"),o=new WeakMap,s=new WeakSet,r=!1;async function a(f){if(r)throw A("rate_limited","A setup operation is already running.");r=!0;try{return await f()}finally{r=!1}}async function c(f,h){if(f||await e.readyForRead(h),await n.assertCurrent(),h?.aborted)throw A("cancelled","Setup cancelled.");if(f&&(f.closed||e.currentSession()!==f))throw io()}async function l(f,h){try{await ap(f,"cancel",[[2,h]],AbortSignal.timeout(1e3))}catch{}}async function p(f={}){await c(void 0,f.signal);let h=await e.readyForRead(f.signal);await c(h,f.signal);let m=await Rf(n.manifest);await c(h,f.signal);let b=ei(f.adopt===void 0?{}:{adopt:f.adopt}),w=oh(f.records),g=[];b.adopt&&Object.keys(b.adopt).length&&g.push([3,new Map(Object.entries(b.adopt).map(([v,_])=>[v,nw(_)]))]),w.length&&g.push([4,w.map(v=>new Map([[0,v.path],[1,v.document]]))]);let y;try{let v=await ap(h,"assess",g,f.signal);await c(h,f.signal);for(let _=0;v.kind==="pending";_++){if(y=v.ticket,_>=512)throw lp();await o2(f.signal),await c(h,f.signal),v=await ap(h,"poll",[[2,y]],f.signal),await c(h,f.signal)}if(v.kind!=="review")throw lp();if(y=v.ticket,v.declaration!==m||v.application!==n.manifest?.id)throw io();if(v.records.length!==w.length||v.records.some((_,k)=>_.path!==w[k].path))throw lp();return{s:h,review:v,options:{records:w,...b.adopt?{adopt:Object.freeze({...b.adopt})}:{}}}}catch(v){throw y&&await l(h,y),v}}async function d(f){await c(void 0,f);let h=await t.load();if(await c(void 0,f),!h)return;let m;try{m=await e.receipt(h,f)}catch(b){throw Xo(h,b)}if(await c(void 0,f),m.mutation!==h||m.state!=="confirmed"&&m.state!=="rejected")throw Xo(h);await t.clear(h)}let u={async assess(f={}){let h=await u.plan(f),m=o.get(h);return m&&(await l(m.session,m.review.ticket),await c(m.session,f.signal)),h.status==="current"?"ready":h.status==="conflict"?"incompatible":"setup_required"},async plan(f={}){return a(async()=>{if(await c(void 0,f.signal),!i){if(n.operations.includes("apply_collection_setup")||n.operations.includes("assess_collection_setup"))throw lp();let g=tp({status:"current",assessmentDigest:`sha256:${"0".repeat(64)}`,review:{configuration:[],packs:[],staged:[]}},{canManage:!1,canCreateRecords:!1,records:[]});return s.add(g),g}await d(f.signal);let{s:h,review:m,options:b}=await p(f),w=tp(m.assessment,{canManage:!0,canCreateRecords:h.hello.grant.capabilities.includes("records.create"),records:m.records.map(g=>({path:g.path,free:g.action==="create"}))});if(m.promoted){let g=Object.freeze([...w.changes,{kind:"record",target:"Existing files",message:`Recognize ${m.promoted} existing ${m.promoted===1?"file":"files"} as notes, preserving their contents.`}]);w=Object.freeze({...w,changes:g,summary:`This app will make ${g.length} ${g.length===1?"change":"changes"} to this collection.`})}return o.set(w,{session:h,review:m,options:b,consumed:!1}),w})},async apply(f,h={}){return a(async()=>{if(s.has(f))return await c(void 0,h.signal),"ready";let m=o.get(f);if(!m)throw new TypeError("setup.apply needs the original plan returned by setup.plan");if(m.consumed)throw io();if(f.refusal)throw A(f.refusal.code==="setup_conflict"?"conflict":"forbidden",f.refusal.message,f.refusal.code);if(await c(m.session,h.signal),f.status==="current"){let b=await p({signal:h.signal});if(await l(b.s,b.review.ticket),b.review.assessment.status!=="current")throw io();return"ready"}m.consumed=!0;for(let b=0;;b++){let w=crypto.randomUUID(),g;try{g=await t.begin(w)}catch(_){throw Xo(w,_)}if(g!==w)throw Xo(g);let y=!1,v=!1;try{await c(m.session,h.signal),y=!0;let _=await ap(m.session,"apply",[[2,m.review.ticket],[3,U(w)],[4,m.review.revision],[5,nw(f.digest)]],h.signal);if(await n.assertCurrent(),_.kind!=="receipt"||_.receipt.mutation!==w)throw Xo(w);let k=_.receipt.state==="pending"?await e.awaitReceipt(w,3e4,h.signal):_.receipt;if(await n.assertCurrent(),k.mutation!==w||k.state!=="confirmed"&&k.state!=="rejected")throw Xo(w);if(v=!0,await t.clear(w),k.state==="rejected"||(k.conflicts?.length??0)>0||k.status!==void 0&&k.status!=="applied")throw io(w,k.problem);let S=await p({signal:h.signal});if(S.review.assessment.status!=="current")throw lp();return await l(S.s,S.review.ticket),"ready"}catch(_){if(!y||v||Wm(_)&&_.code!=="outcome_unknown"){if(await t.clear(w),!v&&Wm(_)&&_.code==="not_found"){if(b)throw io(w,_);await c(m.session,h.signal);let k=await p({...m.options,signal:h.signal});try{if(await c(m.session,h.signal),k.s!==m.session||k.review.assessment.assessmentDigest!==f.digest||k.review.assessment.status!=="provision"||k.review.promoted!==m.review.promoted||k.review.retained!==m.review.retained||k.review.records.some((S,x)=>S.action!==m.review.records[x]?.action))throw io(w,_)}catch(S){throw await l(k.s,k.review.ticket),S}m={...m,review:k.review};continue}throw new pe((oe(_)?_:io()).toProblem(),{mutationId:w,cause:_})}throw Xo(w,_)}}})}};return Object.freeze(u)}var io,Xo,lp,Vx=I(()=>{"use strict";ie();ge();Rl();no();sh();qf();Bx();io=(n,e)=>new pe(A("conflict","This collection changed since setup was reviewed. Review it again.","setup_changed").toProblem(),{...n?{mutationId:n}:{},...e?{cause:e}:{}}),Xo=(n,e)=>new pe(A("outcome_unknown","Reconcile the original setup before trying again.","setup_outcome_unknown").toProblem(),{mutationId:n,...e?{cause:e}:{}}),lp=()=>A("unavailable","Native setup is unavailable.","resource_setup_unavailable")});function Wx(n){let e=new Uint8Array([...n.aad,...new TextEncoder().encode("\0declared-setup-attempt-v1")]),t=()=>A("unavailable","Protected Native setup attempt storage is unavailable.","grant_storage");async function i(){let s=await n.grant();await n.assertCurrent(s);let r=await n.store();if(!r.getSetupAttempt||!r.putSetupAttemptIfAbsent||!r.deleteSetupAttempt)throw t();return{grant:s,store:r}}async function o(s,r){let a;try{if(s.length<29||s.length>2048)throw t();a=new Uint8Array(await crypto.subtle.decrypt({name:"AES-GCM",iv:s.slice(0,12),additionalData:e},r.refreshKey,s.slice(12)));let c=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(a)),l=Array.from(r.noisePublicKey,p=>p.toString(16).padStart(2,"0")).join("");if(c.version!==1||!Kx.test(c.mid)||c.noise!==l||Object.keys(c).sort().join(",")!=="mid,noise,version")throw t();return await n.assertCurrent(r),c.mid}catch{throw t()}finally{a?.fill(0)}}return{async load(){let{grant:s,store:r}=await i(),a=await r.getSetupAttempt(s.collection);return await n.assertCurrent(s),a?o(a,s):void 0},async begin(s){if(!Kx.test(s))throw t();let{grant:r,store:a}=await i(),c=crypto.getRandomValues(new Uint8Array(12)),l=new TextEncoder().encode(JSON.stringify({version:1,mid:s,noise:Array.from(r.noisePublicKey,u=>u.toString(16).padStart(2,"0")).join("")})),p;try{p=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:c,additionalData:e},r.refreshKey,l))}finally{l.fill(0)}await n.assertCurrent(r);let d=await a.putSetupAttemptIfAbsent(r.collection,new Uint8Array([...c,...p]));return o(d,r)},async clear(s){let{grant:r,store:a}=await i(),c=await a.getSetupAttempt(r.collection);c&&await o(c,r)===s&&(await n.assertCurrent(r),await a.deleteSetupAttempt(r.collection,c))}}}var Kx,Hx=I(()=>{"use strict";ie();Kx=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/});function cp(){throw A("unauthenticated","the stored grant belongs to another app","grant_storage")}function Gx(n,e,t={}){let i=globalThis.indexedDB;if(!i)throw A("unavailable","IndexedDB is not available here","grant_storage");let o=t.owner;if(o!==void 0&&!Fo(o))throw A("invalid_request","invalid grant store owner","grant_storage");let s=o===void 0?`mdbase.app-grants.v1.${encodeURIComponent(n)}.${e}`:`mdbase.app-grants.v2.${encodeURIComponent(n)}.${encodeURIComponent(o)}.${e}`,r=h=>h===void 0||o===void 0||h.owner===o?h:cp(),a=h=>o===void 0||h===void 0||h.owner===o,c=h=>o===void 0?h:{...h,owner:o},l=null,p=()=>l??=new Promise((h,m)=>{let b=i.open(s,2);b.onupgradeneeded=()=>{for(let w of[iw,Zo,Wa])b.result.objectStoreNames.contains(w)||b.result.createObjectStore(w)},b.onsuccess=()=>{b.result.onversionchange=()=>{b.result.close(),l=null},h(b.result)},b.onerror=()=>{l=null,m(A("unavailable","grant storage could not be opened","grant_storage"))}}),d=async(h,m,b)=>{let w=await p();return new Promise((g,y)=>{let v=w.transaction([...h],m,{durability:"strict"}),_,k=!1;v.oncomplete=()=>k?g(_):y(A("unavailable","grant storage returned no result","grant_storage")),v.onabort=v.onerror=()=>y(A("unavailable","grant storage transaction failed","grant_storage"));try{b(v,S=>{_=S,k=!0})}catch{try{v.abort()}catch{}}})},u=(h,m,b)=>d([h],m,(w,g)=>b(w.objectStore(h),g)),f=(h,m)=>u(h,"readonly",(b,w)=>{let g=b.get(m);g.onsuccess=()=>w(g.result)});return{getSetupAttempt:async h=>r(await f(Wa,h))?.bytes,putSetupAttemptIfAbsent:async(h,m)=>r(await u(Wa,"readwrite",(b,w)=>{let g=b.get(h);g.onsuccess=()=>{if(g.result!==void 0)return w(g.result);let y=c({bytes:m.slice()});b.add(y,h).onsuccess=()=>w(y)}})).bytes,deleteSetupAttempt:async(h,m)=>{await u(Wa,"readwrite",(w,g)=>{let y=w.get(h);y.onsuccess=()=>{if(!a(y.result))return g("refused");let v=y.result?.bytes;if(!v||v.length!==m.length||!v.every((_,k)=>_===m[k]))return g("done");w.delete(h).onsuccess=()=>g("done")}})==="refused"&&cp()},getIdentity:async()=>r(await f(iw,"installation")),putIdentityIfAbsent:async h=>r(await u(iw,"readwrite",(m,b)=>{let w=m.get("installation");w.onsuccess=()=>{if(w.result!==void 0)return b(w.result);let g=c(h);m.add(g,"installation").onsuccess=()=>b(g)}})),getGrant:async h=>r(await f(Zo,h)),listGrants:async()=>(await u(Zo,"readonly",(h,m)=>{let b=h.getAll();b.onsuccess=()=>m(b.result)})).map(h=>r(h)),putGrant:async h=>{await u(Zo,"readwrite",(b,w)=>{let g=b.get(h.collection);g.onsuccess=()=>{if(!a(g.result))return w("refused");b.put(c(h),h.collection).onsuccess=()=>w("done")}})==="refused"&&cp()},deleteGrant:async h=>{await u(Zo,"readwrite",(b,w)=>{let g=b.get(h);g.onsuccess=()=>{if(!a(g.result))return w("refused");b.delete(h).onsuccess=()=>w("done")}})==="refused"&&cp()},clearGrants:async()=>{await d([Zo,Wa],"readwrite",(m,b)=>{let w=!1,g=2,y=()=>{--g===0&&b(w?"refused":"done")};for(let v of[Zo,Wa]){let _=m.objectStore(v);if(o===void 0){_.clear().onsuccess=y;continue}let k=_.openCursor();k.onsuccess=()=>{let S=k.result;if(!S)return y();a(S.value)?S.delete():w=!0,S.continue()}}})==="refused"&&cp()}}}var iw,Zo,Wa,Yx=I(()=>{"use strict";eo();ie();iw="identity",Zo="grants",Wa="native-setup-attempts"});var tC={};ls(tC,{MdbaseAppGrants:()=>aw,deliverAppGrantCallback:()=>p2,mergeCollectionEntries:()=>u2});function l2(n){try{let e=Uint8Array.from(atob(n.replaceAll("-","+").replaceAll("_","/")),t=>t.charCodeAt(0));return e.length===32&&rn(e)===n}catch{return!1}}function p2(n){let e=globalThis.BroadcastChannel;if(!e)throw A("unavailable","BroadcastChannel is not available","authorization_callback");let t=new e(eC);t.postMessage({type:"callback",url:String(n)}),t.close()}function d2(){return{subscribe(n){let e=globalThis.BroadcastChannel;if(!e)throw A("unavailable","BroadcastChannel is not available","authorization_callback");let t=new e(eC);return t.onmessage=i=>{let o=i.data;o?.type==="callback"&&typeof o.url=="string"&&n(o.url)},()=>t.close()}}}function u2(n,e){let t=new Map;for(let i of n)t.set(i.collectionId,Object.freeze({collectionId:i.collectionId,displayName:i.displayName,kind:"cloud_copy",availability:i.availability??Object.freeze({state:"available"}),role:i.role}));for(let i of e)t.has(i.collectionId)||t.set(i.collectionId,Object.freeze({collectionId:i.collectionId,displayName:i.displayName,kind:"private",availability:i.availability,role:i.role}));return[...t.values()].sort((i,o)=>i.displayName.localeCompare(o.displayName)||i.collectionId.localeCompare(o.collectionId))}async function sw(n,e){let t=new Uint8Array(await crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},n,e));if(t.length!==64)throw A("internal","unexpected signature length","authorization_signature");let i=0n;for(let s of t.subarray(32))i=i<<8n|BigInt(s);if(i<=Jx/2n)return t;let o=Jx-i;for(let s=63;s>=32;s--)t[s]=Number(o&0xffn),o>>=8n;return t}async function f2(n,e,t,i){let o=Math.floor(Date.now()/1e3),s=crypto.randomUUID(),r=[pP,bb,"POST",e,await Qx(t),await Qx(i),o,s].join(`
|
|
130
|
+
`);return{[Lc.version]:String(bb),[Lc.timestamp]:String(o),[Lc.nonce]:s,[Lc.signature]:rn(await sw(n,new TextEncoder().encode(r)))}}async function rw(n,e){let t=await crypto.subtle.generateKey({name:e,namedCurve:"P-256"},!1,n);return{privateKey:t.privateKey,publicKey:rn(new Uint8Array(await crypto.subtle.exportKey("raw",t.publicKey)))}}async function h2(){let n;try{n=await crypto.subtle.generateKey({name:"X25519"},!1,["deriveBits"])}catch{throw A("unavailable","this browser cannot keep a non-extractable X25519 key","browser_unsupported")}if(n.privateKey.extractable)throw A("unavailable","the Noise key must be non-extractable","browser_unsupported");return{privateKey:n.privateKey,publicKey:new Uint8Array(await crypto.subtle.exportKey("raw",n.publicKey))}}function m2(n){return{publicKey:n.noisePublicKey.slice(),dh:async e=>{let t=await crypto.subtle.importKey("raw",e,{name:"X25519"},!1,[]);return new Uint8Array(await crypto.subtle.deriveBits({name:"X25519",public:t},n.noisePrivateKey,256))}}}function y2(n,e){let t=new AbortController,i=()=>t.abort(),o=setTimeout(i,e);return o.unref?.(),n?.addEventListener("abort",i,{once:!0}),n?.aborted&&t.abort(),{signal:t.signal,done:()=>{clearTimeout(o),n?.removeEventListener("abort",i)}}}async function g2(n,e){let t=globalThis.navigator?.locks;if(t)return t.request(n,{mode:"exclusive"},e);let i=hh.get(n)??Promise.resolve(),o,s=new Promise(r=>{o=r});hh.set(n,s),await i;try{return await e()}finally{o(),hh.get(n)===s&&hh.delete(n)}}var s2,eC,ro,a2,Jx,c2,rn,fh,Xx,Zx,Qx,mh,Ha,ow,Gi,hh,aw,nC=I(()=>{"use strict";jc();Qr();Ea();wu();Cf();Ox();qf();ge();Lr();ie();By();qo();Ts();gd();Yl();nu();Ex();Vx();Hx();Km();Yx();Ib();s2=new Set(["owner","editor","viewer"]),eC="mdbase.app-grant.v1",ro=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,a2=15e3;Jx=BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),c2=new TextEncoder().encode("mdbase-next client noise key v1\0");rn=n=>{let e="";for(let t of n)e+=String.fromCharCode(t);return btoa(e).replaceAll("+","-").replaceAll("/","_").replace(/=+$/u,"")},fh=n=>crypto.getRandomValues(new Uint8Array(n)),Xx=n=>{let e=new Uint8Array(4);return new DataView(e.buffer).setUint32(0,n),e},Zx=(...n)=>{let e=new Uint8Array(n.reduce((i,o)=>i+o.length,0)),t=0;for(let i of n)e.set(i,t),t+=i.length;return e};Qx=async n=>rn(new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(n))));mh=(n,e)=>n.length===e.length&&n.every((t,i)=>t===e[i]),Ha=(n,e)=>!!e&&n.collection===e.collection&&n.owner===e.owner&&mh(n.noisePublicKey,e.noisePublicKey),ow=(n,e)=>Ha(n,e)&&mh(n.refresh,e.refresh),Gi=()=>A("cancelled","the stored grant changed during this operation"),hh=new Map;aw=class{constructor(e){this.options=e;this.declaration=yr(e.declaration),this.cpOrigin=Xn({environment:this.declaration.environment,appOrigin:this.declaration.origin,release:Ix()}).cpOrigin;try{this.redirect=new URL(e.redirectUri)}catch{throw A("invalid_request","redirectUri must be an absolute URL","redirect_uri")}if(this.redirect.origin!==this.declaration.origin||this.redirect.hash)throw A("invalid_request","redirectUri must be on the app's origin, without a fragment","redirect_uri");this.fetcher=e.fetch??globalThis.fetch.bind(globalThis),this.callbacks=e.callbacks??d2(),this.storeValue=e.store??null}options;declaration;cpOrigin;redirect;fetcher;callbacks;storeValue;registration=null;tokens=new Map;refreshing=new Map;forgotten=new Set;epoch=0;register(){let e=this.registration??=Ef({declaration:this.options.declaration,signal:new AbortController().signal,isCurrent:()=>!0,fetch:this.fetcher});return e.catch(()=>{this.registration===e&&(this.registration=null)}),e}ownerValue=null;owner(){return this.ownerValue??=uk(Zr(this.declaration).manifest.id,bu(this.declaration))}async store(){if(this.storeValue)return this.storeValue;let e=this.owner();return this.storeValue=Gx(this.cpOrigin,(await this.register()).id,{owner:e})}async identity(){let e=await this.store(),t=await e.getIdentity();if(t)return t;let i=await rw(["sign"],"ECDSA");return e.putIdentityIfAbsent({version:1,privateKey:i.privateKey,publicKey:i.publicKey})}async request(e,t,i){let o=y2(i,a2);try{let s;try{s=await this.fetcher(`${this.cpOrigin}${e}`,{...t,redirect:"error",signal:o.signal})}catch{throw i?.aborted?A("cancelled","request cancelled"):A("unavailable","cannot reach the control plane","control_unreachable")}let r=null;try{let a=await s.json();a&&typeof a=="object"&&!Array.isArray(a)&&(r=a)}catch{r=null}return{status:s.status,body:r}}finally{o.done()}}async authorize(e){e=Object.freeze({...e});let t=await this.prepareAuthorization(e).catch(i=>{throw e.popup.close(),i});try{e.popup.navigate(t.authorizationUri);let{collectionId:i}=await t.finish(e);return{collectionId:i}}finally{t.cancel();try{e.popup.close()}catch{}}}async prepareAuthorization(e={}){if(e=Object.freeze({...e}),e.collection!==void 0&&!ro.test(e.collection))throw A("invalid_request","collection must be a UUID");if(e.expectedAccountId!==void 0&&(!ro.test(e.expectedAccountId)||!e.authorizationNonce))throw A("invalid_request","original account and challenge required","authorization_binding");if(e.authorizationNonce!==void 0&&(!/^[A-Za-z0-9_-]{43}$/.test(e.authorizationNonce)||!l2(e.authorizationNonce)))throw A("invalid_request","invalid original challenge","authorization_binding");let t=new AbortController,i=e.signal?AbortSignal.any([e.signal,t.signal]):t.signal,o=this.epoch,s=()=>{if(i.aborted)throw A("cancelled","authorization fenced","authorization_cancelled");if(o!==this.epoch)throw Gi()};s();let r=await this.register(),a=Zr(this.declaration),c=await this.identity(),l=await rw(["deriveBits"],"ECDH"),p=await rw(["sign"],"ECDSA"),d=await h2(),u=rn(fh(32)),f=rn(new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(u)))),h=rn(fh(24)),m=crypto.randomUUID(),b=new Date,w={protocol_version:hr,authorization_id:m,application_id:r.id,application_declaration_id:String(a.manifest.id),application_manifest_digest:r.manifestDigest,application_installation_id:await oP(c.publicKey),installation_signing_public_key:c.publicKey,grant_agreement_public_key:l.publicKey,grant_signing_public_key:p.publicKey,flow:"authorization_code",authorization_nonce:e.authorizationNonce??rn(fh(32)),issued_at:b.toISOString(),expires_at:new Date(b.getTime()+10*6e4).toISOString(),redirect_uri:this.redirect.href,state:h,code_challenge:f,contracts:a.contracts,requested_operations:[...a.operations],...a.files?{requested_files:a.files}:{},...e.collection?{collection_id:e.collection}:{}},g={binding:w,signature:rn(await sw(c.privateKey,sP(w)))},y=Zx(c2,Xx(16),U(m),Xx(32),d.publicKey),v={public_key:rn(d.publicKey),signature:rn(await sw(p.privateKey,y))};s();let _=await this.request("/oauth/authorization_request",{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:r.id,redirect_uri:this.redirect.href,code_challenge:f,code_challenge_method:"S256",state:h,operations:a.operations.join(","),...e.collection?{collection_id:e.collection}:{},application_authorization:JSON.stringify(g),client_noise_key:JSON.stringify(v)})},i);s();let k=_.body?.authorization_uri;if(_.status!==200||_.body?.authorization_id!==m||typeof k!="string"||!k.startsWith(`${this.cpOrigin}/oauth/authorize?`))throw A("unavailable",`authorization could not be started (${_.status})`,"authorization_start");let S=null,x=this.awaitCallback(h,{navigate(){},close(){},get closed(){return S?.closed===!0}},{popup:{navigate(){},close(){}},signal:i,timeoutMs:e.timeoutMs});x.catch(()=>{});let P=!1;return Object.freeze({applicationId:r.id,manifestDigest:r.manifestDigest,authorizationId:m,authorizationUri:k,cancel:()=>t.abort(),finish:async C=>{if(C=Object.freeze({...C}),P)throw A("invalid_request","original authorization already consumed","authorization_binding");P=!0,S=C.popup;let R=()=>t.abort();C.signal?.addEventListener("abort",R,{once:!0}),C.signal?.aborted&&t.abort();try{s();let O=C.collection??e.collection;if(O!==void 0&&!ro.test(O))throw A("invalid_request","invalid approved collection","authorization_binding");if(e.collection&&O!==e.collection)throw A("forbidden","a different collection was approved","collection_mismatch");if(e.expectedAccountId&&!O)throw A("invalid_request","original Private choice required","authorization_binding");let L=await x;s();let z=await this.request("/oauth/token",{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:L,client_id:r.id,redirect_uri:this.redirect.href,code_verifier:u})},i);s();let Q=e.expectedAccountId?jf(z.body,{accountId:e.expectedAccountId,authorizationRequestId:m,applicationId:r.id,declarationId:w.application_declaration_id,manifestDigest:r.manifestDigest,applicationInstallationId:w.application_installation_id,applicationOrigin:this.redirect.origin,collectionId:O,grantSigningPublicKey:p.publicKey,clientNoisePublicKey:rn(d.publicKey)}):void 0,V=await this.saveTokens(z,{noise:d,signing:p.privateKey,collection:O,check:s});return s(),{collectionId:V,...Q?{nativeCompletion:Q}:{}}}finally{C.signal?.removeEventListener("abort",R),t.abort()}}})}awaitCallback(e,t,i){let o=Math.min(Math.max(i.timeoutMs??6e5,1e3),18e5);return new Promise((s,r)=>{let a=null,c=f=>{p(),clearTimeout(d),clearInterval(u),i.signal?.removeEventListener("abort",l),f()},l=()=>c(()=>r(A("cancelled","authorization cancelled","authorization_cancelled"))),p=this.callbacks.subscribe(f=>{let h;try{h=new URL(f)}catch{return}if(h.origin!==this.redirect.origin||h.pathname!==this.redirect.pathname||h.searchParams.get("state")!==e)return;if(h.searchParams.get("error"))return c(()=>r(A("forbidden","access was not approved","authorization_denied")));let b=h.searchParams.get("code");if(!b)return c(()=>r(A("unavailable","the authorization callback has no code","authorization_callback")));c(()=>s(b))}),d=setTimeout(()=>c(()=>r(A("cancelled","authorization timed out","authorization_timed_out"))),o),u=setInterval(()=>{let f=!1;try{f=t.closed===!0}catch{f=!1}if(!f){a=null;return}a??=Date.now(),Date.now()-a>=3e3&&c(()=>r(A("cancelled","the authorization window was closed","authorization_cancelled")))},500);i.signal?.addEventListener("abort",l,{once:!0}),i.signal?.aborted&&l()})}async saveTokens(e,t){let i=e.body;if(e.status!==200||!i)throw e.status===400&&i&&typeof i.error=="string"&&i.error==="invalid_grant"?A("unauthenticated","the grant is no longer valid","grant_invalid"):e.status===400?un("sync_required"):A("unavailable",`token request failed (${e.status})`,"token_error");let o=i.access_token,s=i.refresh_token,r=i.collection_id,a=i.expires_in,c=i.refresh_expires_in;if(typeof o!="string"||typeof s!="string"||typeof r!="string"||!ro.test(r)||typeof a!="number"||!(a>0)||typeof c!="number"||!(c>0))throw A("unavailable","invalid token response","token_response");let l=r.toLowerCase();if(t.collection&&t.collection.toLowerCase()!==l)throw A("forbidden","a different collection was approved","collection_mismatch");if(t.previous&&t.previous.collection!==l)throw A("unavailable","the token names another collection","token_response");let p=t.previous?.refreshKey??await crypto.subtle.generateKey({name:"AES-GCM",length:256},!1,["encrypt","decrypt"]),d=fh(12),u=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:d,additionalData:this.aad(l)},p,new TextEncoder().encode(s))),f=t.noise??{privateKey:t.previous.noisePrivateKey,publicKey:t.previous.noisePublicKey},h=t.signing??t.previous?.signingPrivateKey,m={version:1,collection:l,noisePrivateKey:f.privateKey,noisePublicKey:f.publicKey,refreshKey:p,refresh:Zx(d,u),refreshExpiresAt:Date.now()+c*1e3,...h?{signingPrivateKey:h}:{},...t.previous?.owner?{owner:t.previous.owner}:{}},b=this.epoch;return await this.withLock(l,"commit",async()=>{let w=await this.store();if(b!==this.epoch||t.previous&&!ow(t.previous,await w.getGrant(l)))throw Gi();t.check?.(),await w.putGrant(m);let g=await w.getGrant(l);if(!g||!mh(m.noisePublicKey,g.noisePublicKey)||!mh(m.refresh,g.refresh))throw Gi();t.check?.(),this.tokens.set(l,{access:o,expiresAt:Date.now()+a*1e3,collection:l,owner:g.owner,noisePublicKey:g.noisePublicKey.slice()}),this.forgotten.delete(l)}),l}aad(e){return new TextEncoder().encode(`mdbase.app-grant.v2\0${this.cpOrigin}\0${this.owner()}\0${e}`)}async accessToken(e,t=!1){let i=await this.heldGrant(e),o=this.tokens.get(e);if(!t&&o&&Ha(i,o)&&o.expiresAt-Date.now()>6e4)return o.access;let s=this.refreshing.get(e);if(s&&ow(i,s.grant)){let c=await s.work;return await this.assertCurrent(i),c}let r=this.withLock(e,"refresh",async()=>{let c=await this.assertCurrent(i);return this.refresh(e,c)}),a={grant:i,work:r};this.refreshing.set(e,a);try{let c=await r;return await this.assertCurrent(i),c}finally{this.refreshing.get(e)===a&&this.refreshing.delete(e)}}withLock(e,t,i){return g2(`mdbase.app-grant.${t}:${JSON.stringify([this.cpOrigin,this.owner(),e])}`,i)}async heldGrant(e){let t=await(await this.store()).getGrant(e);if(!t)throw un("sync_required");return{...t,noisePublicKey:t.noisePublicKey.slice(),refresh:t.refresh.slice()}}async assertCurrent(e){let t=await(await this.store()).getGrant(e.collection);if(!Ha(e,t))throw Gi();return t}async refresh(e,t){if(t.refreshExpiresAt<=Date.now())throw un("sync_required");let i;try{let c=await crypto.subtle.decrypt({name:"AES-GCM",iv:t.refresh.slice(0,12),additionalData:this.aad(e)},t.refreshKey,t.refresh.slice(12));i=new TextDecoder().decode(c)}catch{throw A("unauthenticated","the stored grant could not be read","grant_storage")}let o=await this.register(),s=new URLSearchParams({grant_type:"refresh_token",refresh_token:i,client_id:o.id}),r=t.signingPrivateKey?await f2(t.signingPrivateKey,"/oauth/token",s.toString(),i):{},a=await this.request("/oauth/token",{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded",...r},body:s});try{await this.saveTokens(a,{previous:t})}catch(c){throw oe(c,"unauthenticated")&&c.reason==="grant_invalid"&&await this.withLock(e,"commit",async()=>{let l=await this.store();if(!ow(t,await l.getGrant(e)))throw Gi();await l.deleteGrant(e),this.forgotten.add(e);let p=this.tokens.get(e);p&&Ha(t,p)&&this.tokens.delete(e)}),c}return a.body.access_token}async route(e,t){for(let i=0;;i++){let o=await this.accessToken(e,i>0),s=await this.request(`/v1/next/collections/${encodeURIComponent(e)}/route`,{headers:{authorization:`Bearer ${o}`}},t);if(s.status===401&&i===0)continue;if(s.status===401)throw A("unauthenticated","the control plane refused the access token");if(s.status===409)throw A("unauthenticated","this app's key is not registered with its grant","client_key_required");if(s.status!==200||!s.body)throw A("unavailable",`control plane answered ${s.status}`,"control_error");let r=s.body;if(typeof r.collection!="string"||r.collection.toLowerCase()!==e||!Array.isArray(r.targets))throw A("unauthenticated","the route does not match this collection's grant","route_mismatch");let c=zn(r.availability)??(js(r,null).length?{state:"available"}:{state:"unavailable",reason:r.reason==="no_device_registered"?"no_device_registered":"device_offline"});return{token:o,route:r,availability:c}}}async verifiedStoredNativeGrant(e){let t=await this.register(),i=await(await this.store()).getGrant(e.collection_id);return!!i&&e.application_id===t.id&&e.application_origin===this.declaration.origin&&i.owner===this.owner()&&rn(i.noisePublicKey)===e.client_noise_public_key}async collections(e={}){let t=await(await this.store()).listGrants(),i=[];for(let s of t)(e.bindings===void 0||e.bindings.some(r=>r.collection_id===s.collection&&r.application_origin===this.declaration.origin&&rn(s.noisePublicKey)===r.client_noise_public_key))&&i.push(s);let o=new Set(i.map(s=>s.collection));for(let s of i){let r;try{r=await this.accessToken(s.collection)}catch(l){if(oe(l)&&(l.code==="unauthenticated"&&l.reason==="grant_invalid"||l.code==="forbidden"&&l.reason==="sync_required"))continue;throw l}await this.assertCurrent(s);let a=await this.request("/v1/next/apps/collections",{headers:{authorization:`Bearer ${r}`}},e.signal);if(await this.assertCurrent(s),a.status===401)throw await this.withLock(s.collection,"commit",async()=>{await this.assertCurrent(s);let l=this.tokens.get(s.collection);if(l?.access!==r||!Ha(s,l))throw Gi();this.tokens.delete(s.collection)}),A("unauthenticated","the control plane refused the collection listing token");if(a.status!==200||!Array.isArray(a.body?.collections))throw A("unavailable",`control plane answered ${a.status}`,"control_error");let c=[];for(let l of a.body.collections){let p=typeof l.collection=="string"?l.collection.toLowerCase():"";if(!ro.test(p)||c.some(f=>f.collectionId===p))continue;let d=zn(l.availability);if(l.state!=="synced_e2e"&&!d)continue;let u=o.has(p)?d??{state:"opening"}:{state:"unavailable",reason:"sync_required"};c.push(Object.freeze({collectionId:p,displayName:typeof l.name=="string"?l.name:"Collection",operations:Object.freeze(Array.isArray(l.operations)?l.operations.filter(f=>typeof f=="string"):[]),availability:Object.freeze(u),role:s2.has(l.role)?l.role:null}))}return c}return[]}async availability(e,t={}){let i=e.toLowerCase();try{return(await this.route(i,t.signal)).availability}catch(o){if(oe(o)&&o.details instanceof Map&&typeof o.details.get("availability")=="string")return zn({state:"unavailable",reason:o.details.get("availability")});throw o}}async waitForAvailable(e,t={}){let i=Date.now()+Math.min(Math.max(t.timeoutMs??6e4,0),6e5),o=Math.max(t.intervalMs??3e3,1e3),s=null;for(;;){if(t.signal?.aborted)throw A("cancelled","wait cancelled");let r=await this.availability(e,t.signal?{signal:t.signal}:{});if((!s||r.state!==s.state||r.state==="unavailable"&&s.state==="unavailable"&&r.reason!==s.reason)&&t.onAvailability?.(r),s=r,r.state==="available"||r.state==="unavailable"&&(r.reason==="sync_required"||r.reason==="access_removed"))return r;let a=i-Date.now();if(a<=0)return r;await new Promise(c=>{let l=setTimeout(p,Math.min(o,a));function p(){clearTimeout(l),t.signal?.removeEventListener("abort",p),c()}t.signal?.addEventListener("abort",p,{once:!0})})}}connector(e){let t=e.toLowerCase();if(!ro.test(t))throw A("invalid_request","collection must be a UUID");let i=null,o=this.options.webSocket,s;return yd({description:`app-grant:${t}`,open:async(r,a)=>{let c=await(s??=this.heldGrant(t));await this.assertCurrent(c);let p=await Mi({description:`app-grant:${t}`,staticKey:m2(c),target:async d=>{await this.assertCurrent(c);let{token:u,route:f,availability:h}=await this.route(t,d);if(await this.assertCurrent(c),h.state==="unavailable")throw un(h.reason);if(!ro.test(f.grant))throw A("unauthenticated","the route names no grant","route_mismatch");let m=js(f,i)[0];if(!m)throw un("device_offline");let b=new Uint8Array(32);for(let w=0;w<32;w++)b[w]=parseInt(m.noise_pk.slice(2*w,2*w+2),16);return{prologue:Ti(U(m.relay_collection),U(f.grant),U(m.device)),remoteStatic:b,device:m.device,openCarrier:async w=>{await this.assertCurrent(c);let g=await Ms(m.url,{accessToken:u,collection:m.relay_collection,grant:f.grant,device:m.device,devicePublicKey:b},o,w);try{return await this.assertCurrent(c),g}catch(y){throw g.close(),y}}}}}).open(r,a);try{await this.assertCurrent(c)}catch(d){throw p.port.close(),d}return b_(p.port,c),i=p.device??null,p},get target(){return i}})}people(e,t){let i=e.toLowerCase();if(!ro.test(i))throw A("invalid_request","collection must be a UUID");return new jr(t,Rx(i,{cpOrigin:this.cpOrigin,fetch:this.fetcher,accessToken:(o,s)=>this.accessToken(o,s),holds:o=>!this.forgotten.has(o)}))}setup(e){let t=Zr(this.declaration),i,o=async()=>{let r=e.currentSession(),a=r&&v_(r);if(!a||a.collection!==e.collection||(i??=a,!Ha(i,a)))throw Gi();return i};return Fx({assertCurrent:async()=>this.assertCurrent(await o()),journal:Wx({store:()=>this.store(),grant:o,assertCurrent:r=>this.assertCurrent(r),aad:this.aad(e.collection)}),client:e,manifest:t.manifest,operations:t.operations})}async forget(e,t={}){let i=e.toLowerCase(),o=t.expectedNoisePublicKey;await this.withLock(i,"commit",async()=>{let s=await this.store(),r=await s.getGrant(i);if(o!==void 0&&r&&rn(r.noisePublicKey)!==o)throw Gi();await s.deleteGrant(i),this.forgotten.add(i),this.tokens.delete(i)})}async forgetAllGrants(){this.epoch++;let e=await this.store(),t=[];try{t=(await e.listGrants()).map(o=>o.collection).sort()}catch{}for(let o of t)this.forgotten.add(o);let i=async(o,s)=>o.length?this.withLock(o[0],"commit",()=>i(o.slice(1),s)):s();await i(t,async()=>{if(this.tokens.clear(),typeof e.clearGrants=="function"){await e.clearGrants();return}for(let o of await e.listGrants())await e.deleteGrant(o.collection),this.forgotten.add(o.collection);if((await e.listGrants()).length)throw A("unavailable","grant storage could not be cleared","grant_storage")}),this.tokens.clear()}}});function sC(n){let e=0,t=0;try{let i=n?.records.status.pending;e=typeof i=="number"&&i>0?i:0}catch{e=0}try{t=n?.records.ledger?.getSnapshot().pending.length??0}catch{t=0}return Math.max(e,t)}function aC(n=0){let e=n===1?"1 change hasn't":n>1?`${n} changes haven't`:"Some changes haven't";return A("conflict",`${e} reached mdbase yet. Wait for them to finish, or sign out anyway and lose them on this device.`,{reason:"sign_out_pending_writes",details:n})}var lC=I(()=>{"use strict";ie()});function pp(n,e){return new Promise((t,i)=>{if(e.aborted){i(e.reason);return}let o=()=>{clearTimeout(s),i(e.reason)},s=setTimeout(()=>{e.removeEventListener("abort",o),t()},n);e.addEventListener("abort",o,{once:!0})})}var lw=I(()=>{"use strict"});function bh(n,e){if(typeof n!="string"||!e.test(n))throw de("invalid_request","timer_input");return encodeURIComponent(n)}function so(n,e){if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).sort().join()!==e.split(",").sort().join())throw de("invalid_request","timer_input");return n}function cC(n){let e=so(n,"id,fire_at");if(bh(e.id,cw),typeof e.fire_at!="string"||!/^\d{4}-\d{2}-\d{2}T/.test(e.fire_at)||!Number.isFinite(Date.parse(e.fire_at)))throw de("invalid_request","timer_input");return{id:e.id,fire_at:e.fire_at}}function pw(n){if(typeof n!="string"||!n.length||n.length>100)throw de("invalid_request","timer_input")}function P2(n,e,t){let i=`${n}/${bh(t[0],S2)}`;if(e==="list"&&t.length===1)return{path:i,method:"GET",write:!1};if(e==="put"&&t.length===3){let o=so(t[2],"criterion_id,fire_at");return pw(o.criterion_id),cC({id:t[1],fire_at:o.fire_at}),{path:`${i}/${bh(t[1],cw)}`,method:"PUT",body:o,write:!0}}if(e==="cancel"&&t.length===3){let o=t[2];if(o!==void 0&&(!Number.isSafeInteger(o)||o<1))throw de("invalid_request","timer_input");return{path:`${i}/${bh(t[1],cw)}${o===void 0?"":`?generation=${o}`}`,method:"DELETE",write:!0}}if((e==="reconcile"||e==="reconcileWithReceipt")&&t.length===2){let o=so(t[1],`criterion_id,timers${e==="reconcileWithReceipt"?",recovery":""}`);if(pw(o.criterion_id),!Array.isArray(o.timers)||o.timers.length>1e4)throw de("invalid_request","timer_input");let s=o.timers.map(cC);if(new Set(s.map(r=>r.id)).size!==s.length)throw de("invalid_request","timer_input");if(e==="reconcileWithReceipt"){let r=so(o.recovery,"protocol_version,operation_id,expected_revision");if(r.protocol_version!==1||typeof r.operation_id!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(r.operation_id)||!Number.isSafeInteger(r.expected_revision)||r.expected_revision<0||r.expected_revision>=Number.MAX_SAFE_INTEGER)throw de("invalid_request","timer_input")}return{path:`${i}/reconcile`,method:"POST",body:{...o,timers:s},write:!0}}if(e==="lookupOperation"&&t.length===2&&typeof t[1]=="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(t[1]))return{path:`${i}/operations/${t[1]}`,method:"GET",write:!1};throw de("invalid_request","timer_input")}function dC(n,e){let t=pC(e.scope),i=e.generation,o=`/v1/next/collections/${e.scope.collection}/background-grants/${e.grantId}/timers`,s=!1,r=0,a=null,c=null,l=()=>{if(s||e.signal.aborted||!e.isCurrent())throw de("unauthenticated","timer_fenced")},p=()=>{if(c)return c;s=!0,e.signal.removeEventListener("abort",d),a?.ctrl.abort();try{n.postMessage([1,t,i,"close"])}finally{n.removeEventListener("message",u),n.close()}return c=Promise.resolve().then(async()=>{await a?.work})},d=()=>{p()},u=f=>{let h=f.data;if(!Array.isArray(h)||h[0]!==1||h[1]!==t||h[2]!==i){p();return}if(h.length===4&&h[3]==="close"){p();return}if(h.length===5&&h[4]==="cancel"&&Number.isSafeInteger(h[3])&&h[3]>0){a&&a.id===h[3]&&a.ctrl.abort();return}if(h.length!==6||!Number.isSafeInteger(h[3])||h[3]<=r||a||typeof h[4]!="string"||!Array.isArray(h[5])){p();return}let m=h[3],b=h[4],w=h[5],g=new AbortController;r=m;let y=!1,v=b!=="list"&&b!=="lookupOperation",_=Promise.resolve().then(async()=>{let k=setTimeout(()=>g.abort(),1e4),S,x,P=new Uint8Array(dp),C=0,R=()=>{x?.cancel().catch(()=>{})};g.signal.addEventListener("abort",R,{once:!0});try{l(),g.signal.throwIfAborted();let O=o.slice(0,-7)+"/notifications/channels",L,z,Q=null;if(b==="vapid"&&w.length===0){if(!e.journal)throw de("upgrade_required","native_timer_channel_journal_unavailable");e.journal.read(),L={path:"/v1/notifications/vapid-public-key",method:"GET",write:!1}}else if(b==="registerChannel"&&w.length===1){if(!e.journal)throw de("upgrade_required","native_timer_channel_journal_unavailable");let Y=w[0],ee=so(Y,`kind,criteria,${Y?.kind==="web_push"?"subscription":"token"}`);if(!["web_push","fcm"].includes(ee.kind)||!Array.isArray(ee.criteria)||!ee.criteria.length||ee.criteria.length>100||(ee.criteria.forEach(pw),new Set(ee.criteria).size!==ee.criteria.length))throw de("invalid_request","timer_input");let $e;if(ee.kind==="fcm"){if(typeof ee.token!="string"||ee.token.length<16||ee.token.length>4096||/[\s\u0000-\u001f\u007f]/.test(ee.token))throw de("invalid_request","timer_input");$e={transport:"fcm",token:ee.token}}else{let $=so(ee.subscription,"endpoint,expirationTime,keys"),J=so($.keys,"p256dh,auth");if(typeof $.endpoint!="string"||$.endpoint.length>2048||typeof J.p256dh!="string"||typeof J.auth!="string"||!/^[A-Za-z0-9_-]{87}$/.test(J.p256dh)||!/^[A-Za-z0-9_-]{22}$/.test(J.auth))throw de("invalid_request","timer_input");let be;try{be=new URL($.endpoint)}catch{throw de("invalid_request","timer_input")}if(be.protocol!=="https:"||be.username||be.password||be.hash||be.href!==$.endpoint||$.expirationTime!==null&&(!Number.isFinite($.expirationTime)||$.expirationTime<0))throw de("invalid_request","timer_input");$e={subscription:$}}L={path:O,method:"POST",write:!0,body:{installation_id:e.scope.installation,criteria:[...ee.criteria].sort(),...$e}};let mt=new TextEncoder().encode(JSON.stringify(L.body)),j;try{j=[...new Uint8Array(await crypto.subtle.digest("SHA-256",mt))].map($=>$.toString(16).padStart(2,"0")).join("")}finally{mt.fill(0)}l(),g.signal.throwIfAborted();let W=e.journal.read();if(Q=W,W?.pending)throw de("outcome_unknown","timer_channel_reapproval_required");z={grantId:e.grantId,kind:ee.kind,targetDigest:j,channelId:W?.channelId??null,pending:"register"}}else if(b==="unregisterChannel"&&w.length===1&&["web_push","fcm"].includes(w[0])){if(!e.journal)throw de("upgrade_required","native_timer_channel_journal_unavailable");let Y=e.journal.read();if(Q=Y,!Y){n.postMessage([1,t,i,m,!0,void 0]);return}if(Y.pending==="register")throw de("outcome_unknown","timer_channel_reapproval_required");if(Y.kind!==w[0]||!Y.channelId)throw de("invalid_request","timer_channel_kind");z={...Y,pending:"delete"},L={path:`${O}/${Y.channelId}`,method:"DELETE",write:!0}}else L=P2(o,b,w);v=L.write;let V=L.body===void 0?void 0:JSON.stringify(L.body);if(V&&new TextEncoder().encode(V).length>dp)throw de("invalid_request","timer_input");let te=await e.bearer();if(l(),g.signal.throwIfAborted(),typeof te!="string"||!/^(idev_|ct_)[A-Za-z0-9_-]{43}$/.test(te))throw de("unauthenticated","timer_credential");z&&(await e.journal.write(z),l(),g.signal.throwIfAborted()),y=v;let G=e.fetch;if(S=await G(`${e.cpOrigin}${L.path}`,{method:L.method,body:V,headers:{authorization:`Bearer ${te}`,...V===void 0?{}:{"content-type":"application/json"}},credentials:"omit",redirect:"error",cache:L.method==="GET"?"no-store":"default",referrerPolicy:"no-referrer",signal:g.signal}),l(),g.signal.throwIfAborted(),S.redirected)throw de("unavailable","timer_response");if(b==="unregisterChannel"&&S.status===204){await e.journal.write(null),l(),g.signal.throwIfAborted(),n.postMessage([1,t,i,m,!0,void 0]);return}if(S.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase()!=="application/json"||!S.body)throw de("unavailable","timer_response");let K=S.headers.get("content-length");if(K&&/^\d+$/.test(K)&&Number(K)>dp)throw de("unavailable","timer_response");for(x=S.body.getReader();;){let Y=await x.read();try{if(l(),g.signal.throwIfAborted(),Y.done)break;if(C+Y.value.length>dp)throw de("unavailable","timer_response");P.set(Y.value,C),C+=Y.value.length}finally{Y.value?.fill(0)}}let X=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(P.subarray(0,C)));if(b==="unregisterChannel"&&S.status===404&&X?.error?.code==="channel_not_found"){await e.journal.write(null),l(),g.signal.throwIfAborted(),n.postMessage([1,t,i,m,!0,void 0]);return}if(!S.ok)throw S.status>=500?de("unavailable","timer_http"):X?.error?.operation_outcome==="unknown"?de("outcome_unknown","timer_write_unknown"):(z&&(await e.journal.write(Q),l(),g.signal.throwIfAborted()),y=!1,A(S.status===401||S.status===403?"unauthenticated":S.status===409?"conflict":S.status===404?"upgrade_required":S.status===429?"rate_limited":"invalid_request","Native timer request was refused.","timer_refused"));if(l(),g.signal.throwIfAborted(),b==="registerChannel"){if(typeof X?.channel_id!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(X.channel_id))throw de("unavailable","timer_channel_response");await e.journal.write({...z,channelId:X.channel_id,pending:null}),l(),g.signal.throwIfAborted(),n.postMessage([1,t,i,m,!0,{channelId:X.channel_id,installationId:e.scope.installation,criteria:L.body.criteria}])}else n.postMessage([1,t,i,m,!0,X])}catch(O){let L=y?de("outcome_unknown","timer_write_unknown"):O instanceof pe?O:de(g.signal.aborted?"cancelled":"unavailable","timer_request");s||n.postMessage([1,t,i,m,!1,L.code,L.reason])}finally{clearTimeout(k),g.signal.removeEventListener("abort",R),P.fill(0),(x?.cancel()??S?.body?.cancel())?.catch(()=>{}),x?.releaseLock(),a?.id===m&&(a=null)}});a={id:m,ctrl:g,work:_}};n.addEventListener("message",u),n.start(),e.signal.addEventListener("abort",d,{once:!0});try{l()}catch(f){throw p(),f}return Object.freeze({close:p})}function uC(n,e,t){let i=pC(e.scope),o=e.generation,s=!1,r=0,a=null,c=()=>{if(s)return;s=!0,t.signal.removeEventListener("abort",c);let y=a;a=null,y?.signal?.removeEventListener("abort",y.abort),y?.reject(de(y.write?"outcome_unknown":"cancelled","timer_port_closed"));try{n.postMessage([1,i,o,"close"])}finally{n.removeEventListener("message",l),n.close(),t.onClose()}},l=y=>{let v=y.data;if(!Array.isArray(v)||v[0]!==1||v[1]!==i||v[2]!==o){c();return}if(v.length===4&&v[3]==="close"){c();return}let _=a;if(!_||v[3]!==_.id||!(v.length===6&&v[4]===!0||v.length===7&&v[4]===!1&&typeof v[5]=="string"&&Sr(v[5]))){c();return}a=null,_.signal?.removeEventListener("abort",_.abort),v[4]?_.resolve(v[5]):_.reject(A(v[5],"Native timer request could not complete.",typeof v[6]=="string"?v[6]:void 0))},p=(y,v,_,k=!1)=>{if(s||t.signal.aborted||_.signal?.aborted)return Promise.reject(de("cancelled","timer_port_closed"));if(a||d&&!k)return Promise.reject(de("unavailable","timer_port_busy"));if(r>=Number.MAX_SAFE_INTEGER)return c(),Promise.reject(de("unavailable","timer_port_closed"));let S=++r,x=y!=="list"&&y!=="lookupOperation"&&y!=="vapid";return new Promise((P,C)=>{let R=()=>{try{n.postMessage([1,i,o,S,"cancel"])}catch{c()}C(de(x?"outcome_unknown":"cancelled","timer_request_cancelled"))};a={id:S,write:x,resolve:P,reject:C,abort:R,signal:_.signal},_.signal?.addEventListener("abort",R,{once:!0});try{if(new TextEncoder().encode(JSON.stringify(v)).length>dp)throw de("invalid_request","timer_input");n.postMessage([1,i,o,S,y,v])}catch(O){a=null,_.signal?.removeEventListener("abort",R),C(O)}})},d=!1,u=()=>{if(s||t.signal.aborted)throw de("cancelled","timer_port_closed")},f=y=>{if(!y?.length||y.length>100||y.some(v=>typeof v!="string"||!v.length||v.length>100)||new Set(y).size!==y.length)throw de("invalid_request","timer_channel_criteria_required");return[...y].sort()},h=(y,v)=>{let _=so(y,"channelId,installationId,criteria");if(typeof _.channelId!="string"||_.installationId!==e.scope.installation||JSON.stringify(_.criteria)!==JSON.stringify(v))throw de("outcome_unknown","timer_channel_response");return{channelId:_.channelId,installationId:e.scope.installation,criteria:[...v]}},m=async(y,v)=>{if(u(),y.signal?.throwIfAborted(),d||a)throw de("unavailable","timer_port_busy");d=!0;try{return await v()}finally{d=!1}},b=y=>m(y,async()=>{let v=f(y.criteria);if(y.installationId!==void 0&&y.installationId!==e.scope.installation)throw de("invalid_request","timer_channel_installation");let _=y.serviceWorker;if(!_?.pushManager||typeof _.pushManager.getSubscription!="function"||typeof _.pushManager.subscribe!="function")throw de("invalid_request","timer_push_platform");let k=await p("vapid",[],y,!0);if(u(),y.signal?.throwIfAborted(),typeof k.public_key!="string"||!/^[A-Za-z0-9_-]{87}$/.test(k.public_key))throw de("unavailable","timer_vapid_response");let S=atob(k.public_key.replace(/-/g,"+").replace(/_/g,"/")),x=Uint8Array.from(S,R=>R.charCodeAt(0));if(x.length!==65||x[0]!==4||btoa(S).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")!==k.public_key)throw de("unavailable","timer_vapid_response");let P=await _.pushManager.getSubscription();if(u(),y.signal?.throwIfAborted(),P){let R=P.options.applicationServerKey;if(!R||R.byteLength!==x.length||new Uint8Array(R).some((O,L)=>O!==x[L]))throw de("invalid_request","timer_push_key_changed")}if(!P&&(P=await _.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:x}),s||t.signal.aborted||y.signal?.aborted))throw await P.unsubscribe(),de("cancelled","timer_port_closed");let C=P.toJSON();return h(await p("registerChannel",[{kind:"web_push",criteria:v,subscription:{endpoint:C.endpoint,expirationTime:C.expirationTime??null,keys:C.keys}}],y,!0),v)}),w=y=>m(y,async()=>{let v=f(y.criteria);if(y.installationId!==void 0&&y.installationId!==e.scope.installation)throw de("invalid_request","timer_channel_installation");return{...h(await p("registerChannel",[{kind:"fcm",criteria:v,token:y.token}],y,!0),v),transport:"fcm"}}),g=(y,v)=>m(v,async()=>{if(await p("unregisterChannel",["web_push"],v,!0),u(),v.signal?.throwIfAborted(),y){let _=await y.pushManager.getSubscription();u(),v.signal?.throwIfAborted(),_&&await _.unsubscribe(),u(),v.signal?.throwIfAborted()}});return n.addEventListener("message",l),n.start(),t.signal.addEventListener("abort",c,{once:!0}),t.signal.aborted&&c(),Object.freeze({list:(y,v)=>p("list",[y],v),put:(y,v,_,k)=>p("put",[y,v,_],k),cancel:(y,v,_,k)=>p("cancel",[y,v,_],k),reconcile:(y,v,_)=>p("reconcile",[y,v],_),reconcileWithReceipt:(y,v,_)=>p("reconcileWithReceipt",[y,v],_),lookupOperation:(y,v,_)=>p("lookupOperation",[y,v],_),registerWebPush:b,unregisterWebPush:g,registerFcm:w,unregisterFcm:y=>m(y,async()=>{await p("unregisterChannel",["fcm"],y,!0)}),close:c})}var S2,cw,dp,de,pC,dw=I(()=>{"use strict";ie();S2=/^[A-Za-z0-9._-]{1,64}$/,cw=/^[A-Za-z0-9._:-]{1,128}$/,dp=2*1024*1024,de=(n,e)=>A(n,"Native timer request could not complete.",e),pC=n=>JSON.stringify([n.account,n.installation,n.collection])});function Qo(n,e=null){if(n instanceof Ue)return n;let t=n?.name??"",i=n instanceof Error?n.message:String(n),o=n?.resultCode,s=typeof o=="number"?o&255:null;return t==="QuotaExceededError"||/quota/i.test(i)||s===13?new Ue("Full",i,e):s===11||s===26||/malformed|not a database|SQLITE_CORRUPT|SQLITE_NOTADB/i.test(i)?new Ue("Corrupt",i,e):t==="NoModificationAllowedError"||s===5||s===6||/SQLITE_BUSY|SQLITE_LOCKED|NoModificationAllowed/i.test(i)?new Ue("Busy",i,e):s===1||s===19||s===20||s===25||/SQLITE_ERROR|SQLITE_CONSTRAINT|syntax/i.test(i)?new Ue("Sql",i,e):new Ue("Other",i,e)}function uw(n){if(typeof n=="bigint")return n;if(typeof n=="number"&&Number.isSafeInteger(n))return BigInt(n);throw new Ue("Other","SQLite integer is not losslessly represented")}var Ue,fC,hC,mC,yC,gC,x2,wh,fw=I(()=>{"use strict";Ue=class extends Error{constructor(t,i,o=null){super(`${t}${o===null?"":`@${o}`}(${i})`);this.kind=t;this.detail=i;this.stmt=o;this.name="IndexError"}kind;detail;stmt},fC=1,hC=2,mC=3,yC=4,gC=5;x2="CREATE TABLE IF NOT EXISTS _mdbn_host(k TEXT PRIMARY KEY, v) WITHOUT ROWID",wh=class n{constructor(e,t,i){this.sqlite3=e;this.db=t;this.info=i}sqlite3;db;info;cache=new Map;closed=!1;static open(e,t,i={}){try{let o=i.synchronous??"NORMAL";if(o!=="NORMAL"&&o!=="FULL")throw new Ue("Other","unsupported synchronous profile");if(i.pragmas!==!1&&(t.exec("PRAGMA locking_mode=EXCLUSIVE"),t.exec("PRAGMA journal_mode=WAL"),t.exec(`PRAGMA synchronous=${o}`)),i.verifyPragmas&&(String(t.selectValue("PRAGMA locking_mode")).toLowerCase()!=="exclusive"||String(t.selectValue("PRAGMA journal_mode")).toLowerCase()!=="wal"||t.selectValue("PRAGMA synchronous")!==(o==="FULL"?2:1)))throw new Ue("Other","SQLite did not apply the requested storage profile");let s=t.selectValue("SELECT count(*) FROM sqlite_master WHERE name='_mdbn_host'")>0,r=t.selectValue("SELECT count(*) FROM sqlite_master");t.exec(x2);let a="Fresh";return s?a=t.selectValue("SELECT v FROM _mdbn_host WHERE k='clean'")===1?"Existing":"Unclean":r>0&&(a="Unclean"),t.exec("INSERT OR REPLACE INTO _mdbn_host(k, v) VALUES ('clean', 0)"),new n(e,t,{durability:"Disposable",opened:a,sqliteVersion:e.capi.sqlite3_libversion_number(),quotaSuspect:i.quotaSuspect??!1})}catch(o){throw Qo(o)}}prepare(e){let t=this.cache.get(e);return t||(t=this.db.prepare(e),this.cache.set(e,t)),t}bind(e,t){e.clearBindings(),t.forEach((i,o)=>{let s=o+1;switch(i.kind){case"Null":e.bind(s,null);break;case"Integer":e.bind(s,i.value);break;case"Real":e.bind(s,i.value);break;case"Text":e.bind(s,i.value);break;case"Blob":e.bindAsBlob(s,i.value);break}})}column(e,t){let i=this.sqlite3.capi;switch(i.sqlite3_column_type(e.pointer,t)){case gC:return{kind:"Null"};case fC:{let o=i.sqlite3_column_int64(e.pointer,t);return{kind:"Integer",value:uw(o)}}case hC:return{kind:"Real",value:i.sqlite3_column_double(e.pointer,t)};case mC:return{kind:"Text",value:e.getString(t)};case yC:return{kind:"Blob",value:e.getBlob(t)??new Uint8Array(0)};default:return{kind:"Null"}}}run(e,t){if(this.closed)throw new Ue("Other","index closed");let i=this.sqlite3.capi,o=e.mode==="Transaction",s=[],r=0,a=0,c=13,l=p=>{if(t){if(!Number.isSafeInteger(p)||p<0||p>t.maxBytes-c)throw new Ue("Full","index reply byte budget exceeded");c+=p}};if(t&&([t.maxBytes,t.maxRows,t.maxValues,t.maxColumns].some(p=>!Number.isSafeInteger(p)||p<0)||t.maxBytes<c))throw new Ue("Full","invalid index reply budget");if(o)try{this.db.exec("BEGIN IMMEDIATE")}catch(p){throw Qo(p)}for(let p=0;p<e.stmts.length;p++){let d=e.stmts[p];try{let u=this.prepare(d.sql);try{this.bind(u,d.params);let f=u.columnCount;if(t&&(!Number.isSafeInteger(f)||f<0||f>t.maxColumns))throw new Ue("Full","index reply column budget exceeded");l(24);let h=[];for(;u.step();){if(t&&++r>t.maxRows)throw new Ue("Full","index reply row budget exceeded");for(let m=0;m<f;m++){if(t){if(++a>t.maxValues)throw new Ue("Full","index reply value budget exceeded");let b=i.sqlite3_column_type(u.pointer,m);if(b===mC||b===yC)l(5),l(i.sqlite3_column_bytes(u.pointer,m));else if(b===fC||b===hC)l(9);else if(b===gC)l(1);else throw new Ue("Other","unknown SQLite value type")}h.push(this.column(u,m))}}s.push({columns:f,values:h,changes:uw(i.sqlite3_changes(this.db.pointer)),lastInsertRowid:uw(i.sqlite3_last_insert_rowid(this.db.pointer))})}finally{u.reset()}}catch(u){if(o)try{this.db.exec("ROLLBACK")}catch{}throw Qo(u,p)}}if(o)try{this.db.exec("COMMIT")}catch(p){try{this.db.exec("ROLLBACK")}catch{}throw Qo(p)}return s}close(e={}){if(!this.closed){this.closed=!0;for(let t of this.cache.values())try{t.finalize()}catch{}if(this.cache.clear(),e.markClean!==!1)try{this.db.exec("INSERT OR REPLACE INTO _mdbn_host(k, v) VALUES ('clean', 1)")}catch{}this.db.close()}}}});function E2(n){let e=new hw(n);if(!e.take(8).every((r,a)=>r===wC[a]))throw qt();let t=e.byte();if(t===1)throw e.done(),new Ue("Other","app database reset requires explicit recovery; automatic wipe refused");if(t!==0)throw qt();let i=e.byte();if(i>1)throw qt();let o=e.count(gn.maxStatements,8),s=[];for(let r=0;r<o;r++){let a=e.text(gn.maxSqlBytes),c=e.count(gn.maxParameters,1),l=[];for(let p=0;p<c;p++)l.push(e.value());s.push({sql:a,params:l})}return e.done(),{mode:i===0?"Transaction":"Autocommit",stmts:s}}function q2(n,e){if(!Array.isArray(n)||n.length!==e)throw qt();let t=new vh(2);t.u32(n.length);let i=0;for(let o of n){if(!Number.isSafeInteger(o.columns)||o.columns<0||o.columns>gn.maxColumns)throw ao();if(!Array.isArray(o.values)||(o.columns===0?o.values.length!==0:o.values.length%o.columns!==0))throw qt();if(i+=o.columns===0?0:o.values.length/o.columns,i>gn.maxRows||o.values.length>gn.maxValues)throw ao();t.u32(o.columns),t.int(o.changes,!1),t.int(o.lastInsertRowid,!0),t.u32(o.values.length);for(let s of o.values)t.value(s)}return t.done()}function T2(n,e){let t=n instanceof Ue?n.kind:"Other",i={Sql:0,Corrupt:1,Full:2,Busy:3,Other:4},o=new vh(3);o.byte(i[t]);let s=n instanceof Ue?n.stmt:null;return e!==null&&s!==null&&Number.isSafeInteger(s)&&s>=0&&s<e?(o.byte(1),o.u32(s)):o.byte(0),o.data(vC.encode("app index operation failed; reopen and reconcile")),o.done()}function bC(n,e,t){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e>4294967295||t>4294967295||e>n.buffer.byteLength||t>n.buffer.byteLength-e)throw qt()}function _C(n,e){let t=!1,i=!1;return(o,s)=>{if(t)throw i=!0,n.fence(),qt();t=!0,i=!1;try{let r=e();if(bC(r.memory,o,s),s>gn.maxBytes)throw n.fence(),ao();let a=n.run(new Uint8Array(r.memory.buffer,o,s).slice()),c=r.alloc(a.length);if(bC(r.memory,c,a.length),i||c===0||c<o+s&&o<c+a.length)throw qt();return new Uint8Array(r.memory.buffer,c,a.length).set(a),BigInt(c)<<32n|BigInt(a.length)}catch(r){throw n.fence(),r}finally{t=!1}}}var wC,gn,C2,I2,O2,qt,ao,R2,vC,hw,vh,_h,AC=I(()=>{"use strict";fw();wC=Uint8Array.of(77,68,66,73,68,88,0,1),gn=Object.freeze({maxBytes:4*1024*1024,maxStatements:16384,maxValues:131072,maxRows:4096,maxColumns:100,maxSqlBytes:100*1024,maxParameters:100}),C2=-(1n<<63n),I2=(1n<<63n)-1n,O2=(1n<<64n)-1n,qt=()=>new Ue("Other","invalid app index ABI"),ao=()=>new Ue("Full","app index ABI budget exceeded"),R2=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}),vC=new TextEncoder,hw=class{constructor(e){this.bytes=e;if(e.length>gn.maxBytes)throw ao();this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}bytes;pos=0;values=0;view;take(e){if(!Number.isSafeInteger(e)||e<0||e>this.bytes.length-this.pos)throw qt();let t=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,t}byte(){return this.take(1)[0]}u32(){let e=this.pos;return this.take(4),this.view.getUint32(e,!0)}count(e,t){let i=this.u32();if(i>e)throw ao();if(i>Math.floor((this.bytes.length-this.pos)/t))throw qt();return i}data(e){return this.take(this.count(e,1))}text(e){return R2.decode(this.data(e))}value(){if(++this.values>gn.maxValues)throw ao();switch(this.byte()){case 0:return{kind:"Null"};case 1:{let e=this.pos;return this.take(8),{kind:"Integer",value:this.view.getBigInt64(e,!0)}}case 2:{let e=this.pos;this.take(8);let t=this.view.getFloat64(e,!0);if(!Number.isFinite(t))throw qt();return{kind:"Real",value:t}}case 3:return{kind:"Text",value:this.text(gn.maxBytes)};case 4:return{kind:"Blob",value:this.data(gn.maxBytes).slice()};default:throw qt()}}done(){if(this.pos!==this.bytes.length)throw qt()}};vh=class{parts=[];length=0;values=0;constructor(e){this.put(wC),this.byte(e)}put(e){if(e.length>gn.maxBytes-this.length)throw ao();this.length+=e.length,this.parts.push(e)}byte(e){this.put(Uint8Array.of(e))}u32(e){if(!Number.isSafeInteger(e)||e<0||e>4294967295)throw qt();let t=new Uint8Array(4);new DataView(t.buffer).setUint32(0,e,!0),this.put(t)}int(e,t){if(typeof e!="bigint"||e<(t?C2:0n)||e>(t?I2:O2))throw qt();let i=new Uint8Array(8),o=new DataView(i.buffer);t?o.setBigInt64(0,e,!0):o.setBigUint64(0,e,!0),this.put(i)}data(e){this.u32(e.length),this.put(e)}value(e){if(++this.values>gn.maxValues)throw ao();switch(e.kind){case"Null":this.byte(0);return;case"Integer":this.byte(1),this.int(e.value,!0);return;case"Real":{if(!Number.isFinite(e.value))throw qt();this.byte(2);let t=new Uint8Array(8);new DataView(t.buffer).setFloat64(0,e.value,!0),this.put(t);return}case"Text":this.byte(3),this.data(vC.encode(e.value));return;case"Blob":this.byte(4),this.data(e.value);return;default:throw qt()}}done(){let e=new Uint8Array(this.length),t=0;for(let i of this.parts)e.set(i,t),t+=i.length;return e}};_h=class{constructor(e){this.index=e}index;fenced=!1;get needsRecovery(){return this.fenced||this.index.needsRecovery}fence(){this.fenced=!0,this.index.fence()}run(e){let t=null;try{if(this.needsRecovery)throw qt();let i=E2(e);t=i.stmts.length;let o=gn;return q2(this.index.run(i,o),t)}catch(i){return this.fence(),T2(i,t)}}}});function yw(n){let e=[n.account,n.installation,n.collection];if(e.some(i=>!M2.test(i)))throw new Ue("Other","invalid app storage scope");let t=`mdbase-app-${e.map(i=>i.toLowerCase()).join("-")}`;return{vfs:t,directory:`.${t}`}}async function kC(n,e){let t=yw(e),i,o,s;try{i=await n.installOpfsSAHPoolVfs({name:t.vfs,directory:t.directory,initialCapacity:6}),i.isPaused?.()&&await i.unpauseVfs(),o=new i.OpfsSAHPoolDb("/app.db");let r=wh.open(n,o,{synchronous:"FULL",verifyPragmas:!0});if(s=new mw(r),r.info.opened==="Unclean"){let a=s.run({mode:"Autocommit",stmts:[{sql:"PRAGMA quick_check",params:[]}]}),c=a[0]?.values;if(a.length!==1||c?.length!==1||c[0]?.kind!=="Text"||c[0].value!=="ok")throw s=void 0,r.close({markClean:!1}),o=void 0,new Ue("Corrupt","app database integrity check failed; recovery required")}return{index:s,pool:i}}catch(r){let a=!1;try{s?s.close():o?.close()}catch{a=!0}try{i?.pauseVfs?.()}catch{a=!0}let c=Qo(r);throw new Ue(a?"Other":c.kind,"app SQLite open failed; recovery required",c.stmt)}}var M2,mw,SC=I(()=>{"use strict";fw();M2=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;mw=class{constructor(e){this.inner=e}inner;fenced=!1;closed=!1;get info(){return this.inner.info}get needsRecovery(){return this.fenced}fence(){this.fenced=!0}run(e,t){if(this.closed||this.fenced)throw new Ue("Other","app database fenced or closed; reopen and reconcile");try{return t?this.inner.run(e,t):this.inner.run(e)}catch(i){this.fenced=!0;let o=Qo(i);throw new Ue(o.kind,"app SQLite operation failed; reopen and reconcile",o.stmt)}}reset(){throw new Ue("Other","app database reset requires explicit recovery; automatic wipe refused")}close(){this.closed||(this.closed=!0,this.inner.close({markClean:!this.fenced}))}}});function PC(n){let e=Object.freeze({...n});if(!/^[0-9a-f]{64}$/.test(e.wasmSha256)||!Number.isSafeInteger(e.maxWasmBytes)||e.maxWasmBytes<1||e.maxWasmBytes>4*1024*1024||typeof e.loadWasm!="function"||typeof e.initialize!="function")throw Ya("binding");return async({scope:t,signal:i})=>{let o=Object.freeze({account:t.account,installation:t.installation,collection:t.collection});yw(o);let s=()=>{if(i.aborted||Object.entries(o).some(([y,v])=>t[y]!==v))throw Ya("fenced")};s();let r=globalThis.WorkerGlobalScope;if(typeof r!="function"||!(globalThis instanceof r))throw Ya("unsupported");let a=await e.loadWasm({signal:i});if(s(),!(a instanceof Uint8Array)||a.byteLength<1||a.byteLength>e.maxWasmBytes)throw Ya("binding");let c=new Uint8Array(a),l=new Uint8Array(await crypto.subtle.digest("SHA-256",c));if(s(),Array.from(l,y=>y.toString(16).padStart(2,"0")).join("")!==e.wasmSha256)throw Ya("binding");let p=await e.initialize({wasmBinary:c,print(){},printErr(){}});s();let d=await kC(p,o),u=d.index,f=new _h(u),h={import:y=>_C(f,y),fence:()=>f.fence(),get needsRecovery(){return f.needsRecovery}},m=y=>({kind:"Text",value:y}),b=Object.freeze({list(y){let[v]=u.run({mode:"Autocommit",stmts:[{sql:"SELECT v FROM _mdbn_host WHERE k >= 'w:' AND k < 'w;' ORDER BY k LIMIT 1024",params:[]}]}),_=[],k=0;for(let S of v?.values??[])if(S.kind==="Text"){if(k+=S.value.length,k>y)break;_.push(S.value)}return _},put(y,v){u.run({mode:"Autocommit",stmts:[{sql:"INSERT OR REPLACE INTO _mdbn_host(k, v) VALUES (?, ?)",params:[m(`w:${y}`),m(v)]}]})},remove(y){u.run({mode:"Autocommit",stmts:[{sql:"DELETE FROM _mdbn_host WHERE k = ?",params:[m(`w:${y}`)]}]})}}),w=null,g=()=>w??=Promise.resolve().then(async()=>{try{u.close(),await d.pool.pauseVfs()}catch{throw f.fence(),Ya("unavailable")}});return(i.aborted||Object.entries(o).some(([y,v])=>t[y]!==v))&&f.fence(),Object.freeze({sql:h,opened:{Fresh:"fresh",Existing:"existing",Unclean:"unclean"}[u.info.opened],sqliteVersion:u.info.sqliteVersion,ledger:b,close:g})}}var gw,Ya,xC=I(()=>{"use strict";SC();AC();gw=class extends Error{constructor(t){super(`app collection SQL: ${t}`);this.reason=t;this.name="AppCollectionSqlError"}reason},Ya=n=>new gw(n)});var Ja,L2,j2,lo,on,Xa,Ah=I(()=>{"use strict";Ja="original-join",L2=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,j2="00000000-0000-0000-0000-000000000000",lo=class extends Error{constructor(t){super(`app collection join: ${t}`);this.reason=t;this.name="AppCollectionJoinError"}reason},on=(n="recovery_required")=>new lo(n),Xa=class{options;key;busy=!1;constructor(e){let t=Object.freeze({account:e.scope.account,installation:e.scope.installation,collection:e.scope.collection});if(Object.values(t).some(i=>typeof i!="string"||!L2.test(i)||i===j2)||typeof e.databaseName!="string"||!e.databaseName.length||e.databaseName.length>256||/[\u0000-\u001f\u007f]/.test(e.databaseName)||typeof e.isCurrent!="function")throw on("binding");this.options=Object.freeze({databaseName:e.databaseName,scope:t,isCurrent:e.isCurrent}),this.key=JSON.stringify([t.account,t.installation,t.collection])}check(e){if(e.aborted||this.options.isCurrent()!==!0)throw on("fenced")}marker(e){if(!e||typeof e!="object"||Array.isArray(e)||Object.keys(e).sort().join()!=="account,collection,installation,phase,version")throw on();let t=e;if(t.version!==1||t.phase!=="attempted"&&t.phase!=="completed"||Object.entries(this.options.scope).some(([i,o])=>t[i]!==o))throw on();return t}open(e){if(this.check(e),!globalThis.indexedDB)throw on();return new Promise((t,i)=>{let o=indexedDB.open(this.options.databaseName,1),s=!1,r=()=>e.removeEventListener("abort",a),a=()=>{s=!0,r();try{o.transaction?.abort()}catch{}i(on())};e.addEventListener("abort",a,{once:!0}),o.onblocked=o.onerror=a,o.onupgradeneeded=()=>{try{if(this.check(e),s||o.result.objectStoreNames.length)throw on();o.result.createObjectStore(Ja)}catch{try{o.transaction?.abort()}catch{}}},o.onsuccess=()=>{r();try{if(this.check(e),s||o.result.objectStoreNames.length!==1||!o.result.objectStoreNames.contains(Ja))throw on();t(o.result)}catch{o.result.close(),i(on())}}})}async change(e,t){if(this.check(t),this.busy)throw on("busy");this.busy=!0;let i=null;try{return i=await this.open(t),this.check(t),await new Promise((o,s)=>{this.check(t);let r=i.transaction(Ja,"readwrite",{durability:"strict"}),a=null,c,l=()=>{try{r.abort()}catch{}},p=()=>t.removeEventListener("abort",l);t.addEventListener("abort",l,{once:!0}),r.onabort=r.onerror=()=>{p(),s(c??on())},r.oncomplete=()=>{p();try{if(this.check(t),!a)throw on();o(Object.freeze(a))}catch{s(on())}};let d=r.objectStore(Ja),u=d.get(this.key);u.onsuccess=()=>{try{this.check(t);let f=u.result;if(f===void 0){if(e!=="prepare")throw on();d.add({version:1,...this.options.scope,phase:"attempted"},this.key),a={outcomeMode:"fresh",phase:"attempted"}}else{let h=this.marker(f);e==="complete"&&h.phase!=="completed"&&d.put({...h,phase:"completed"},this.key),a={outcomeMode:"existing",phase:e==="complete"?"completed":h.phase}}}catch(f){c=f,l()}}})}catch(o){throw o instanceof lo?o:on()}finally{i?.close(),this.busy=!1}}prepare(e){return this.change("prepare",e.signal)}async syncedBefore(e){return await this.synced("read",e.signal)===!0}async markSynced(e){await this.synced("mark",e.signal)}async synced(e,t){let i=null;try{i=await this.open(t),this.check(t);let o=JSON.stringify([this.options.scope.account,this.options.scope.installation,this.options.scope.collection,"synced"]);return await new Promise(s=>{let r=i.transaction(Ja,e==="mark"?"readwrite":"readonly"),a=!1;r.onabort=r.onerror=()=>s(!1),r.oncomplete=()=>s(e==="mark"||a);let c=r.objectStore(Ja);if(e==="mark")c.put({version:1,synced:!0},o);else{let l=c.get(o);l.onsuccess=()=>{let p=l.result;a=!!p&&p.version===1&&p.synced===!0}}})}catch{return!1}finally{i?.close()}}async complete(e){await this.change("complete",e.signal)}}});function bw(n){let e=[n.account,n.installation,n.collection];if(e.some(o=>typeof o!="string"||!N2.test(o))||typeof n.isCurrent!="function")throw ct();let t=JSON.stringify(e.map(o=>o.toLowerCase())),i=n.isCurrent.bind(n);return{binding:t,current:()=>{try{return i()===!0&&JSON.stringify([n.account,n.installation,n.collection].map(o=>o.toLowerCase()))===t}catch{return!1}}}}function OC(n,e,t,i,o){let s=bw(e),r=!1,a=()=>{if(!r){r=!0,n.onmessage=null,n.onmessageerror=null;try{n.postMessage([1,s.binding,"close"])}catch{}n.close(),i()}},c=()=>{if(r||!s.current())throw a(),ct()};return n.onmessageerror=a,n.onmessage=l=>{try{c();let p=l.data;if(!Array.isArray(p)||p[0]!==1||p[1]!==s.binding)throw ct();if(p.length===3&&p[2]==="close"){a();return}if(p.length===5&&U2.includes(p[2])){let u=p[2],f=p[3],h=p[4],m=CC(u);if(!o||!Number.isInteger(f)||f<1||f>4294967295||!(h instanceof Uint8Array)||!h.length||h.length>m)throw ct();c(),o(u,f,h);return}if(p.length!==4||p[2]!=="frame"||!(p[3]instanceof Uint8Array)||p[3].length===0||p[3].length>Rr)throw ct();let d=ue(new Uint8Array(p[3]));c(),t(d)}catch{a()}},n.start(),{close:a,send(l){try{c();let p=ce(l);if(!p.length||p.length>Rr)throw ct();c(),n.postMessage([1,s.binding,"frame",p],[p.buffer])}catch{throw a(),ct()}},control(l,p,d){try{c();let u=CC(l);if(!Number.isInteger(p)||p<1||p>4294967295||!(d instanceof Uint8Array)||!d.length||d.length>u||!(d.buffer instanceof ArrayBuffer)||d.byteOffset!==0||d.byteLength!==d.buffer.byteLength)throw ct();c(),n.postMessage([1,s.binding,l,p,d],[d.buffer])}catch{throw a(),ct()}},current:c}}function $2(n){if(!(n instanceof Map))return!1;let e=n;return e.get(0)===0&&D2.has(e.get(2))}function kh(n,e,t,i){if(!bw(t).current())throw ct();let s;try{s=n.connect({collection:t.collection})}catch{throw e.close(),ct()}let r;try{r=OC(e,t,c=>{if(s.send(c),i&&$2(c))try{i()}catch{}},()=>s.close(),(c,l,p)=>{let d;try{if(c==="bases-request"&&typeof n.executeBases=="function")d=n.executeBases(s,p);else if((c==="bases-list-views-request"||c==="bases-read-view-source-request")&&typeof n.discoverBases=="function")d=n.discoverBases(s,c==="bases-list-views-request"?"list-views":"read-view-source",p);else throw ct()}finally{p.fill(0)}try{r.current(),r.control(IC(c),l,d)}catch(u){throw d.byteLength&&d.fill(0),u}}),s.onframe=c=>{try{r.send(c)}catch{}},s.onclose=()=>r.close()}catch{throw s.close(),e.close(),ct()}let a=Object.freeze({async assess(c,l,p){if(l.throwIfAborted(),r.current(),!n.setupResources)throw ct();let d=p===void 0?n.setupResources(s,"assess",c):n.setupResources(s,"assess",c,void 0,p);return r.current(),l.throwIfAborted(),d},async apply(c,l,p,d){if(p.throwIfAborted(),r.current(),!n.setupResources)throw ct();let u=d===void 0?n.setupResources(s,"apply",c,l):n.setupResources(s,"apply",c,l,d);return r.current(),p.throwIfAborted(),u},async rejected(c,l){if(l.throwIfAborted(),r.current(),!n.resourceRejected)return!1;let p=n.resourceRejected(s,c);return r.current(),l.throwIfAborted(),p}});return{close:()=>r.close(),resourceSetup:a}}function Sh(n,e){let t=bw(e),i=!1,o=!1,s,r=null,a=[],c=()=>A("cancelled","Bases read cancelled"),l=1;return{description:"app-local",close(){o=!0,s?s.close():n.close()},async open(p,d){if(i)throw ct();if(!t.current()||d?.aborted||o)throw n.close(),ct();i=!0;let u,f=s=OC(n,e,b=>u?.onframe?.(b),()=>{let b=r;r=null;let w=a.splice(0);b?.finish(void 0,c());for(let g of w)g.finish(void 0,c());u?.onclose?.(ct())},(b,w,g)=>{if(!r||b!==r.response||w!==r.id)throw g.fill(0),ct();let y=r;r=null,y.finish(g),h()});function h(){if(r||a.length===0)return;let b=a.shift();r=b;try{if(f.current(),r!==b){h();return}if(l>4294967295)throw f.close(),ct();b.id=l++,f.control(b.kind,b.id,b.request)}catch(w){r===b&&(r=null),b.finish(void 0,w),h()}}let m=(b,w,g)=>{try{if(f.current(),g?.aborted)throw c();if(!(w instanceof Uint8Array)||!w.length||w.length>128*1024)throw A("invalid_request","Bases request bytes exceed bound");if(a.length>=32)throw A("unavailable","Bases read queue is full","bases_read_backpressure")}catch(v){return Promise.reject(v)}let y=new Uint8Array(w);return new Promise((v,_)=>{let k=!1,S=(C,R)=>{if(r!==x&&y.byteLength&&y.fill(0),k){C?.byteLength&&C.fill(0);return}k=!0,g?.removeEventListener("abort",P),R!==void 0?_(R):v(C)},x={kind:b,request:y,response:IC(b),finish:S},P=()=>{let C=a.indexOf(x);C!==-1&&a.splice(C,1),r===x&&x.id===void 0&&(r=null),S(void 0,c())};a.push(x),g?.addEventListener("abort",P,{once:!0}),h()})};u={onframe:null,onclose:null,send:b=>f.send(b),close:()=>f.close(),readAppBases:(b,w)=>m("bases-request",b,w),readAppBasesDiscovery(b,w,g){return b!=="list-views"&&b!=="read-view-source"?Promise.reject(A("invalid_request","unknown native Bases read")):m(b==="list-views"?"bases-list-views-request":"bases-read-view-source-request",w,g)}};try{if(d?.aborted||o)throw ct();return await Ds({connect:()=>u}).open(p,d)}catch{throw f.close(),ct()}}}}var N2,ct,U2,IC,CC,D2,Ph=I(()=>{"use strict";Je();ie();ou();Ol();N2=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/iu,ct=()=>A("unavailable","app local facade unavailable; reopen and reconcile");U2=["bases-request","bases-response","bases-list-views-request","bases-list-views-response","bases-read-view-source-request","bases-read-view-source-response"],IC=n=>n==="bases-request"?"bases-response":n==="bases-list-views-request"?"bases-list-views-response":"bases-read-view-source-response",CC=n=>n.endsWith("request")?128*1024:n==="bases-response"?Rr:1024*1024;D2=new Set(["submit","resolve_hold","open_upload","upload_chunk","commit_upload","abort_upload","fetch_file","read_file","ack_chunks"])});function RC(n){let e=Object.freeze({...n,setupJournal:Object.freeze({...n.setupJournal})}),t=PC(e.sql);if(typeof e.handoff!="function")throw Yi("binding");let i=new Set;return async o=>{let s=JSON.stringify([o.scope.account,o.scope.installation,o.scope.collection]);if(i.has(s))throw Yi("fenced");i.add(s);let{host:r,installation:a,signal:c,collection:l,setupPolicy:p}=o,d=a.isCurrent,u=l.displayName,f=he=>{if(X())try{o.onProgress?.(he)}catch{}},h=Object.freeze({account:o.scope.account,installation:o.scope.installation,collection:o.scope.collection}),m=JSON.stringify([h.account,h.installation,h.collection]),b=new AbortController,w=!1,g=!0,y=null,v=null,_=null,k=null,S=null,x=null,P=null,C=null,R="setup_required",O=null,L=!1,z=null,Q=!1,V=null,te=new Map,G=null,K=new Set,X=()=>{try{return!w&&!b.signal.aborted&&!c.aborted&&o.signal===c&&o.host===r&&o.installation===a&&a.isCurrent===d&&d.call(a)===!0&&o.collection===l&&o.setupPolicy===p&&a.scope.account===h.account&&a.scope.installation===h.installation&&JSON.stringify([o.scope.account,o.scope.installation,o.scope.collection])===m&&l.collectionId===h.collection}catch{return!1}},Y=()=>{if(!X())throw Yi("fenced")},ee=()=>{for(let he of[...K])try{he()}catch{}},$e=()=>{if(_)return _;w=!0,R="setup_required",y!==null&&clearTimeout(y),y=null,z!==null&&clearTimeout(z),z=null;try{O?.close()}catch{}O=null;try{r.onLogWork?.(null)}catch{}c.removeEventListener("abort",mt);let he=[...te.values()];return te.clear(),_=Promise.resolve().then(async()=>{let me=!1;try{await S?.close()}catch{me=!0}try{await k?.close()}catch{me=!0}for(let Fe of he){try{await Fe.timers?.close()}catch{me=!0}try{await Fe.control.close()}catch{me=!0}try{Fe.data.port1.postMessage([1,JSON.stringify([h.account,h.installation,h.collection]),"close"])}catch{me=!0}for(let On of[Fe.data.port1,Fe.data.port2,Fe.command.port1,Fe.command.port2])try{On.close()}catch{me=!0}}try{P?.port1.postMessage([1,JSON.stringify([h.account,h.installation,h.collection]),"close"])}catch{me=!0}for(let Fe of[P?.port1,P?.port2,C?.port1,C?.port2])try{Fe?.close()}catch{me=!0}await v?.catch(()=>{});try{x?.close()}catch{me=!0}if(me)throw Yi("unavailable");K.clear(),i.delete(s)}),b.abort(),ee(),_},mt=()=>{$e().catch(()=>{})},j=null,W=0,$=()=>{let he=St(G);if(he!==null)return he==="collection_migrating"?Math.min(6e5,Math.max(5e3,G?.retryAfterMs??3e4)):3e5;let me=Math.min(6e4,1e3*2**Math.min(Math.max(W,ye),6));return j?.kind==="offline"?qe?me:null:j?.kind==="server_busy"||j?.kind==="rate_limited"?j.retryAfterMs??me:ye||j?me:250},J=()=>{let he=null;try{he=r.serverProblem()}catch{he=null}let me=null;try{me=r.transportHealth()}catch{me=null}W=me?W+1:0;let Fe=JSON.stringify(me)===JSON.stringify(j);(he!==G||!Fe)&&(G=he,j=me,ee())},be=Number.POSITIVE_INFINITY,ye=0,we=0,et=!1,qe=null,Dt=he=>{let me=he&&typeof he=="object"&&typeof he.code=="string"?he.code:null;try{console.debug("mdbase: sync turn failed",{reason:j?.kind??St(G)??me??"unknown",failures:ye})}catch{}},tt=()=>{if(g||Date.now()-we>=B2)return!1;try{return r.pendingWrites()>0}catch{return!1}},Ve=()=>{if(!X())return;if(!g&&!tt()&&!Q){v||O?.suspend();return}if(y!==null||v)return;let he=Q?0:$();Q=!1,he!==null&&(y=setTimeout(()=>{if(y=null,!X())return;let me=g&&Date.now()>=be;me&&(be=Number.POSITIVE_INFINITY);let Fe=v=me?r.wakeCollectionLog({signal:b.signal}):r.driveCollection({signal:b.signal});Fe.then(()=>{v===Fe&&(v=null),ye=0,et=!0,X()&&J(),qe?.(),Ve()},On=>{v===Fe&&(v=null),ye++,X()&&J(),Dt(On),qe?.(),Ve()})},he))},In=()=>{X()&&(Q=!0,y!==null&&clearTimeout(y),y=null,Ve())},Ar=he=>{L!==he&&(L=he,ee())},Pi=he=>{if(z!==null&&clearTimeout(z),z=null,he){Ar(!1);return}if(!O?.available){Ar(V===null);return}O.suspended||(z=setTimeout(()=>{z=null,X()&&!O?.live&&Ar(!0)},z2))},rs=he=>{if(Y(),he){(!O?.live||j?.kind==="offline")&&(be=0),ye=0,W=0,j?.kind==="offline"&&(Q=!0);try{O?.resume(),O&&!O.live&&Pi(!1)}catch{}}else g&&(we=Date.now());g=he,y!==null&&clearTimeout(y),y=null,Ve()},os=()=>new Promise((he,me)=>{let Fe,On=null,Rn=nt=>{qe=null,On!==null&&clearTimeout(On),b.signal.removeEventListener("abort",xi),nt?me(nt):he()},xi=()=>Rn(Yi("fenced"));b.signal.addEventListener("abort",xi,{once:!0}),qe=()=>{if(!X()){Rn(Yi("fenced"));return}if(V!==null){Rn();return}let nt="first_turn";if(et)try{nt=typeof r.initialSync=="function"?r.initialSync():null}catch{nt="unavailable"}if(nt===null||nt==="offline"||j?.kind==="offline"){Rn();return}let ii=null;if(nt==="waiting_for_key"&&typeof r.keyWaitDetail=="function")try{ii=r.keyWaitDetail()}catch{ii=null}let ss=nt+(ii?JSON.stringify(ii):"");if(ss!==Fe){Fe=ss;try{console.debug("mdbase: waiting for the first sync",{...ii,reason:nt})}catch{}}},On=setTimeout(()=>Rn(),F2),qe()});c.addEventListener("abort",mt,{once:!0});try{Y(),x=new Ba({...e.setupJournal,scope:h,isCurrent:X});let he=new Xa({databaseName:e.joinDatabaseName,scope:h,isCurrent:X}),me=await he.prepare({signal:b.signal});Y(),f("joining"),await r.bootstrapCloudCopy({scope:h,collectionCurrent:X,purpose:"join",outcomeMode:me.outcomeMode,signal:b.signal,...me.outcomeMode==="existing"?{reconcile:"explicit-unknown-outcome"}:{},fetch:e.fetch,allowLoopbackHttp:e.allowLoopbackHttp,allowNativeLoopbackHttp:e.allowNativeLoopbackHttp}),Y(),await he.complete({signal:b.signal}),Y();let Fe=r.registeredReceipt();if(Fe.installationId!==h.installation)throw Yi("binding");let On=null,Rn=async He=>{let Ze=await t(He);return On=Ze.ledger??null,Ze};f("opening_store"),await r.openCollectionSql({signal:b.signal,replicaId:Fe.deviceId,endpoint:0,openSql:Rn}),Y(),f("connecting_log");let xi=Date.now()+V2;for(let He=0;;He++)try{await r.startCollectionLog({signal:b.signal,fetch:e.fetch,allowLoopbackHttp:e.allowLoopbackHttp}),Y();break}catch(Ze){Y();let dt=Ze instanceof Zn&&Ze.reason==="unavailable"?Ze.server:null;if(!An(dt)||dt.status!==503||dt.code!=="busy"||St(dt)!==null||He+1>=K2)throw Ze;let Ci=dt.retryAfterMs??1e3*2**He;if(Date.now()+Ci>=xi||(await pp(Ci,b.signal),Y(),Date.now()>=xi))throw Ze}let nt=await he.syncedBefore({signal:b.signal});Y(),f("syncing"),await r.waitForVerifiedRead({signal:b.signal,cold:!nt,onProgress:f}),Y(),r.onLogWork?.(In),Ve();try{O=typeof r.openLogPush=="function"?r.openLogPush({push:He=>{X()&&(r.pushLog(He),In())},live:Pi,ended:He=>{V=He,In(),Pi(!1),qe?.(),ee()}}):null}catch{O=null}O?(O.start(),Pi(!1)):L=!0,nt&&(f("syncing"),await os()),Y(),f("checking_setup"),he.markSynced({signal:b.signal}).catch(()=>{});let ii=await x.load(b.signal);Y();let ss=ii&&ii.version!==1&&(ii.phase==="attempted"||ii.phase==="confirmed")?"reconcile-original":ii===null&&p==="approved-new-collection"?"approved-new":"inspect",as=crypto.randomUUID(),Zw=e.people===!0?{people:!0}:{},II={owner:null},Qw=(He,Ze,dt,Ci)=>$x(Ze,{scope:h,generation:as},{journal:x,resourceSetup:r.attachDataFacade(He),signal:b.signal,isCurrent:X,ledger:()=>X()?On:null,setupTurn:II,assess(kr){Y(),R=kr,ee()},foreground:dt,onProtocolFailure:Ci,...e.people===!0?{peopleAuthority:r.peopleAuthority()}:{}});S=r.openTimersPort({scope:h,generation:as,signal:b.signal}),Y(),P=new MessageChannel,C=new MessageChannel,k=Qw(P.port1,C.port1,rs,mt),Y();let ev=He=>{if(P&&C&&He.dataPort===P.port2){let dt={data:P,command:C,control:k,timers:S};P=null,C=null,k=null,S=null;try{r.detachDataFacade(dt.data.port1)}catch{}dt.timers?.close().catch(()=>{}),dt.control?.close().catch(()=>{});for(let Ci of[dt.data.port1,dt.command.port1])try{Ci.close()}catch{}return}let Ze=te.get(He.dataPort);if(Ze){te.delete(He.dataPort);try{r.detachDataFacade(Ze.data.port1)}catch{}Ze.timers?.close().catch(()=>{}),Ze.control.close().catch(()=>{});for(let dt of[Ze.data.port1,Ze.command.port1])try{dt.close()}catch{}}},OI=Object.freeze({scope:h,generation:as,isCurrent:X,setForeground:rs,attach:()=>{if(!X()||V!==null)return null;let He=new MessageChannel,Ze=new MessageChannel,dt=null,Ci=null;try{dt=r.openTimersPort({scope:h,generation:as,signal:b.signal});let kr=null;return Ci=Qw(He.port1,Ze.port1,()=>{},()=>{kr&&ev(kr)}),kr=Object.freeze({schema:"mdbn-app-collection/1",scope:h,generation:as,displayName:u,setupMode:ss==="reconcile-original"?ss:"inspect",dataPort:He.port2,controlPort:Ze.port2,...Zw,...dt?{timerPort:dt.port}:{}}),te.set(He.port2,{data:He,command:Ze,control:Ci,timers:dt}),kr}catch{try{r.detachDataFacade(He.port1)}catch{}dt?.close().catch(()=>{}),Ci?.close().catch(()=>{});for(let kr of[He.port1,He.port2,Ze.port1,Ze.port2])kr.close();return null}},detach:ev}),RI={get state(){return X()?R:"setup_required"},get problem(){return X()?G:null},get health(){return X()?j:null},get live(){return X()?!L:null},get ended(){return X()?V:null},connection:OI,close:$e,subscribe(He){return Y(),K.add(He),()=>{K.delete(He)}}};return e.handoff(Object.freeze({schema:"mdbn-app-collection/1",scope:h,generation:as,displayName:u,setupMode:ss,dataPort:P.port2,controlPort:C.port2,...Zw,...S?{timerPort:S.port}:{}})),Y(),Ve(),Object.freeze(RI)}catch(he){throw await $e(),he}}}async function xh(n,e){if(n.schema!=="mdbn-app-collection/1"||Za.has(n.dataPort)||Za.has(n.controlPort)||n.dataPort===n.controlPort||!["inspect","approved-new","reconcile-original"].includes(n.setupMode)||n.people!==void 0&&n.people!==!0||e.signal.aborted||n.timerPort&&(Za.has(n.timerPort)||n.timerPort===n.dataPort||n.timerPort===n.controlPort))throw Yi("binding");Za.add(n.dataPort),Za.add(n.controlPort),n.timerPort&&Za.add(n.timerPort);let t=Object.freeze({...n.scope}),i=n.generation,o=n.setupMode,s=n.people===!0,r=n.dataPort,a=n.controlPort,c=e.signal,l=!1,p=null,d=null,u=null,f,h=()=>{if(!l){l=!0,c.removeEventListener("abort",h);for(let m of[()=>f?.close(),()=>d?.close(),()=>p?.close(),()=>u?.close(),()=>r.close(),()=>a.close()])try{m()}catch{}}};c.addEventListener("abort",h,{once:!0});try{if(u=Sh(r,{...t,isCurrent:()=>!l&&!c.aborted}),d=dh(a,{scope:t,generation:i},{signal:c,isCurrent:()=>!l,onClose:h,...s?{people:!0}:{}}),n.timerPort&&(f=new Ns(uC(n.timerPort,{scope:t,generation:i},{signal:c,onClose:()=>{}}),{criteria:e.timerCriteria??[]})),p=await Ei.connect({app:e.app,connector:u,reconnect:!1,signal:c,ledger:d.ledger}),l||c.aborted)throw p.close(),Yi("fenced");let m=s?ch(p,d):void 0;return Object.freeze({client:p,resourceSetup:d.resourceSetup,...m?{people:m}:{},journal:d.journal,scope:t,setupMode:o,close:h,...f?{timers:f}:{},assess:(b,w)=>d.assess(b,w),setForeground:(b,w)=>d.setForeground(b,w)})}catch(m){throw h(),m}}var z2,B2,F2,V2,K2,up,Yi,Za,ww=I(()=>{"use strict";Fn();Zc();lw();Ps();Xy();dw();xC();Ah();Go();no();Ph();rp();z2=1e4,B2=12e4,F2=2e3,V2=15e3,K2=3,up=class extends Error{constructor(t){super(`app web collection: ${t}`);this.reason=t;this.name="AppWebCollectionError"}reason},Yi=n=>new up(n);Za=new WeakSet});var Ut,Ch,W2,Ih,EC=I(()=>{"use strict";ww();Ut=class extends Error{constructor(t){super("SDK application connection unavailable");this.code=t;this.name="ApplicationUiConnectionError"}code},Ch=new WeakSet,W2=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,Ih=class{app;signal;current=null;pending=null;opening=null;retiring=null;closing=null;epoch=0;timerCriteria;constructor(e,t,i=[]){this.app=Object.freeze({...e}),this.signal=t,this.timerCriteria=Object.freeze([...i]),t.addEventListener("abort",this.abort,{once:!0})}abort=()=>{this.close().catch(()=>{})};connection(e){let t=this.current?.public;return t?.id===e&&t.isCurrent()?t:null}owned(){return this.current?.public.isCurrent()?this.current.ui:null}adopt(e,t){let i=t.caller,o=t.isCurrent,s=[e.dataPort,e.controlPort,...e.timerPort?[e.timerPort]:[]];if(s.some(g=>!(g instanceof MessagePort))||new Set(s).size!==s.length||s.some(g=>Ch.has(g))){for(let g of new Set(s))g instanceof MessagePort&&!Ch.has(g)&&(Ch.add(g),g.close());return Promise.reject(new Ut("application_connection_binding"))}for(let g of s)Ch.add(g);let r=g=>{for(let y of s)y.close();return Promise.reject(new Ut(g))};if(this.pending||this.current||this.retiring)return r("application_connection_busy");if(this.closing||this.signal.aborted||i.aborted||!o())return r("application_connection_fenced");let a=Object.freeze({...e.scope}),c=e.generation,l=e.displayName;if(e.schema!=="mdbn-app-collection/1"||Object.keys(a).sort().join()!=="account,collection,installation"||Object.values(a).some(g=>!W2.test(g)||g==="00000000-0000-0000-0000-000000000000")||typeof c!="string"||!c||c.length>256||typeof l!="string"||!l.trim()||new TextEncoder().encode(l).length>4096||!["inspect","approved-new","reconcile-original"].includes(e.setupMode))return r("application_connection_binding");if(e.people!==!0)return r("application_connection_people_unavailable");let p=Object.freeze({...e,scope:a,generation:c,displayName:l}),d=new AbortController,u=this.epoch;this.opening=d;let f=()=>d.abort();i.addEventListener("abort",f,{once:!0});let h=AbortSignal.any([this.signal,d.signal]),m=()=>!h.aborted&&!this.closing&&!this.retiring&&this.epoch===u&&o(),b=null,w=Promise.resolve().then(async()=>{if(!m()||i.aborted)throw new Ut("application_connection_fenced");if(b=await xh(p,{app:this.app,signal:h,timerCriteria:this.timerCriteria}),!m()||i.aborted)throw new Ut("application_connection_fenced");if(b.client.collection!==a.collection||b.client.link!=="open")throw new Ut("application_connection_binding");if(!b.people)throw new Ut("application_connection_people_unavailable");let g=b,y=b.people,v=Object.freeze({id:a.collection,scope:a,generation:c,displayName:l,records:g.client,files:g.client.files,people:y,...g.timers?{timers:g.timers}:{},isCurrent:()=>m()&&this.current?.ui===g&&g.client.link==="open"});return this.current={public:v,ui:g,lifetime:d},v}).catch(g=>{d.abort(),b?.close();for(let y of s)y.close();throw g}).finally(()=>{i.removeEventListener("abort",f),this.pending===w&&(this.pending=null,this.opening=null)});return this.pending=w,w}retire(){if(this.retiring)return this.retiring;++this.epoch;let e=this.current,t=this.pending;this.opening?.abort(),e?.lifetime.abort();let i=Promise.resolve().then(async()=>{await t?.catch(()=>{}),e?.ui.close(),this.current===e&&(this.current=null)});return this.retiring=i,i.then(()=>{this.retiring===i&&(this.retiring=null)},()=>{}),i}close(){return this.closing?this.closing:(this.closing=Promise.resolve().then(()=>this.retire()),this.signal.removeEventListener("abort",this.abort),++this.epoch,this.opening?.abort(),this.current?.lifetime.abort(),this.closing)}}});function Z2(n){if(n.capabilityContractVersion!==2)throw A("upgrade_required","unsupported readiness capability projection","readiness_capability_version");if(!Array.isArray(n.contracts)||n.contracts.length>128||!Array.isArray(n.requiredNativeCapabilities)||n.requiredNativeCapabilities.length>64)throw Ct("unsupported");let e=n.contracts.map(i=>{if(!i||!el(i.id,256)||!el(i.version,128)||!X2.test(i.digest))throw Ct("unsupported");return Object.freeze({id:i.id,version:i.version,digest:i.digest})}),t=n.requiredNativeCapabilities.map(i=>{if(!el(i,128))throw Ct("unsupported");return i});if(new Set(e.map(i=>JSON.stringify([i.id,i.version]))).size!==e.length||new Set(t).size!==t.length||n.typeIssues!==void 0&&n.typeIssues!=="block"&&n.typeIssues!=="degrade")throw Ct("unsupported");return Object.freeze({capabilityContractVersion:2,typeIssues:n.typeIssues??"block",contracts:Object.freeze(e),requiredNativeCapabilities:Object.freeze(t)})}function Q2(n){let e=n instanceof Map?n.get("path"):null;return typeof e=="string"&&e?e:null}function Qa(n,e){return Object.freeze({reason:n,...n==="fenced"&&e?{detail:e}:{}})}function vw(n){if(!oe(n))return;let e=n.details instanceof Map?n.details.get("condition"):void 0,t=H2.find(i=>i===e);if(t)return t;if(n.code==="unauthenticated")return"read_unauthenticated";if(n.code==="cancelled")return"read_cancelled"}function _w(n){try{if(oe(n)){if(n.code==="unauthenticated"||n.code==="cancelled")return"fenced";if(n.code==="too_large")return"budget";if(n.code==="upgrade_required"||n.code==="forbidden")return"unsupported";if(n.reason==="readiness_changed"||n.reason==="cursor_stale"||n.reason==="cursor_expired")return"changed";if(n.reason==="readiness_busy")return"busy";if(n.reason==="readiness_catalog_response")return"catalog_response"}}catch{}return"unavailable"}function kw(n){let e=n.status;return JSON.stringify([e.mode,e.confirmedThrough,e.headKnown,e.pending,e.holds,e.unresolved,e.connection,e.installing,e.resyncing,e.incidents.map(t=>t.kind),e.confirmedHead])}function tl(n){return JSON.stringify(n,(e,t)=>typeof t=="bigint"?`${t}n`:t instanceof Map?[...t.entries()]:t instanceof Uint8Array?[...t]:t)}function TC(n,e,t){return new Aw(n,e,t)}var H2,G2,Y2,J2,qC,X2,el,Ct,Aw,Sw=I(()=>{"use strict";ie();H2=["binding_invalid","binding_aborted","binding_not_current","readiness_closed","read_aborted","session_closed","session_replaced","session_collection_mismatch","read_unauthenticated","read_cancelled"],G2=4096,Y2=2*1024*1024,J2=64,qC=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,X2=/^sha256:[0-9a-f]{64}$/,el=(n,e=4096)=>typeof n=="string"&&!!n.trim()&&new TextEncoder().encode(n).length<=e,Ct=(n,e)=>A(n==="fenced"?"unauthenticated":n==="budget"?"too_large":"unavailable","collection readiness unavailable",{reason:`readiness_${n}`,...e?{details:new Map([["condition",e]])}:{}});Aw=class{constructor(e,t,i){this.client=e;if(this.declared=Z2(t),!qC.test(i.collection)||i.collection==="00000000-0000-0000-0000-000000000000"||!qC.test(i.generation))throw Ct("fenced","binding_invalid");this.binding=Object.freeze({collection:i.collection,generation:i.generation,signal:i.signal,isCurrent:i.isCurrent.bind(i)}),this.readSignal=AbortSignal.any([this.binding.signal,this.lifetime.signal]),this.check(),this.binding.signal.addEventListener("abort",this.abort,{once:!0})}client;declared;binding;lifetime=new AbortController;readSignal;listeners=new Set;snapshotValue=Object.freeze({checking:!1,assessment:null,problem:null});watch=null;stops=[];pending=null;epoch=0;dirty=!1;scheduled=!1;retries=0;failures=0;closed=!1;lastStatus=null;assessedSession;assessedEpoch;assessedCatalog=null;probing=null;probeAgain=!1;abort=()=>{this.close()};getSnapshot(){if(this.snapshotValue.assessment)try{this.check(void 0,this.assessedSession,this.assessedEpoch)}catch(e){let t=_w(e);t==="fenced"&&!this.closed&&!this.binding.signal.aborted&&this.binding.isCurrent()===!0&&(t="changed"),this.retryLater(t)||this.publish({checking:!1,assessment:null,problem:Qa(t,vw(e))})}return this.snapshotValue}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}publish(e){this.snapshotValue=Object.freeze(e);for(let t of this.listeners)try{t()}catch{}}check(e,t,i){e?.throwIfAborted();let o=this.fenceDetail(e);if(o)throw Ct("fenced",o);if(t?.closed)throw Ct("fenced","session_closed");if(t&&t!==this.client.currentSession())throw Ct("fenced","session_replaced");if(t&&t.hello.collection!==this.binding.collection)throw Ct("fenced","session_collection_mismatch");if(i!==void 0&&(i!==this.epoch||this.watch?.state!=="active"))throw Ct("changed")}fenceDetail(e){if(this.binding.signal.aborted)return"binding_aborted";if(this.closed)return"readiness_closed";if(e?.aborted)return"read_aborted";if(this.binding.isCurrent()!==!0)return"binding_not_current"}invalidate=()=>{if(this.closed)return;if(this.pending||!this.snapshotValue.assessment||this.assessedCatalog===null||this.client.link!=="open"){this.recheck();return}if(this.probing){this.probeAgain=!0;return}let e=this.snapshotValue.assessment,t=this.assessedCatalog,i=this.client.describe(this.readSignal).then(o=>{this.closed||this.snapshotValue.assessment!==e||tl(o)!==t&&this.recheck()},()=>{this.closed||this.recheck()});this.probing=i.finally(()=>{this.probing=null,this.probeAgain&&!this.closed&&(this.probeAgain=!1,this.invalidate())})};recheck(){this.closed||(this.epoch++,this.dirty=!0,this.publish({checking:!0,assessment:null,problem:null}),this.schedule())}schedule(){if(this.closed||this.pending||this.scheduled||!this.dirty||this.watch?.state!=="active"||this.client.link!=="open")return;this.scheduled=!0;let e=()=>{this.scheduled=!1,!this.closed&&this.dirty&&!this.pending&&this.watch?.state==="active"&&this.client.link==="open"&&this.refresh(void 0,!0).catch(()=>{})};this.retries?setTimeout(e,Math.min(5e3,100*2**this.retries,this.retrySince===null?5e3:Math.max(0,15e3-(Date.now()-this.retrySince)))):queueMicrotask(e)}retrySince=null;retryLater(e,t=!1){if(this.closed)return!1;if((e==="busy"||e==="changed")&&(this.retrySince??=Date.now(),Date.now()-this.retrySince>=15e3))return this.dirty=!1,this.publish({checking:!1,assessment:null,problem:Qa("busy_timeout")}),!0;if(e==="unavailable"&&t&&this.failures<5)this.failures++;else if(e!=="changed"&&e!=="busy")return!1;return this.dirty=!0,this.retries=Math.min(this.retries+1,6),this.publish({checking:!0,assessment:null,problem:null}),this.schedule(),!0}attach(){this.watch||(this.watch=this.client.watchChanges(void 0,this.invalidate),this.stops.push(this.watch.subscribe(this.invalidate),this.client.onLink(this.invalidate),this.client.onStatus(()=>{let e=kw(this.client);e!==this.lastStatus&&(this.lastStatus=e,this.invalidate())})))}start(e){return this.refresh(e)}refresh(e,t=!1){try{if(this.check(e),this.pending)throw Ct("busy")}catch(a){return Promise.reject(a)}t||(this.retrySince=null);let i=AbortSignal.any([this.binding.signal,this.lifetime.signal,...e?[e]:[]]),o,s,r=Promise.resolve().then(async()=>{this.check(i),this.attach();let a=await this.client.readyForRead(i);this.check(i,a),await this.watch.ready,this.check(i,a);let c=this.epoch;this.dirty=!1,this.check(i,a,c);let l=await this.inventory(i,a,c),p=await this.client.describe(this.readSignal);this.check(i,a,c);let d=this.evaluate(p,a),u=tl(p);for(let b of d.paths){let w=l.find(y=>y.path===b);if(!w)throw Ct("changed");let g=await this.client.resources.get(b,this.readSignal);if(this.check(i,a,c),g.path!==w.path||g.revision!==w.revision||g.size!==w.size||g.state!=="confirmed")throw Ct("changed")}let f=await this.inventory(i,a,c);if(JSON.stringify(l)!==JSON.stringify(f))throw Ct("changed");this.check(i,a,c);let h=Object.freeze({collection:this.binding.collection,generation:this.binding.generation,resources:Object.freeze(f)}),m=Object.freeze({status:d.status,problem:d.reason?Qa(d.reason):null,witness:h,...d.unavailable.length?{unavailableTypes:Object.freeze(d.unavailable)}:{}});return o=a,s=c,this.retries=0,this.failures=0,this.retrySince=null,this.assessedSession=a,this.assessedEpoch=c,this.assessedCatalog=u,this.publish({checking:!1,assessment:m,problem:m.problem}),this.check(i,a,c),m}).catch(a=>{let c=i.aborted||this.closed?"fenced":_w(a);throw this.retryLater(c,t)||this.publish({checking:!1,assessment:null,problem:Qa(c,this.fenceDetail(i)??vw(a))}),a});return this.pending=r,this.publish({checking:!0,assessment:null,problem:null}),r.finally(()=>{this.pending===r&&(this.pending=null),this.schedule()}).catch(()=>{}),r.then(a=>{try{if(this.check(i,o,s),this.snapshotValue.assessment!==a)throw Ct("changed");return a}catch(c){let l=i.aborted?"fenced":_w(c);throw this.snapshotValue.assessment===a&&!this.retryLater(l)&&this.publish({checking:!1,assessment:null,problem:Qa(l,this.fenceDetail(i)??vw(c))}),c}})}async inventory(e,t,i){let o=[],s=new Set,r,a="",c=0;for(let l=0;l<J2;l++){this.check(e,t,i);let p=await this.client.resources.list({text:!1,limit:128,...r?{cursor:r}:{},signal:this.readSignal});this.check(e,t,i);for(let d of p.resources){if(!el(d.path)||d.path<=a||!el(d.revision,128)||!Number.isSafeInteger(d.size)||d.size<0||d.state!=="confirmed")throw Ct("catalog_response");a=d.path;let u=Object.freeze({path:d.path,revision:d.revision,size:d.size,state:d.state});if(c+=new TextEncoder().encode(JSON.stringify(u)).length,o.length>=G2||c>Y2)throw Ct("budget");o.push(u)}if(p.complete===!0&&p.cursor===void 0)return o;if(p.complete!==!1||!el(p.cursor)||s.has(p.cursor))throw Ct("catalog_response");s.add(p.cursor),r=p.cursor}throw Ct("budget")}evaluate(e,t){let i=e.issues.filter(d=>d.severity==="error"),o=new Set;for(let d of i){let u=Q2(d.details);if(!u)return{status:"incompatible",reason:"catalog_invalid",paths:[],unavailable:[]};o.add(u)}let s={status:"incompatible",reason:"catalog_invalid",paths:[],unavailable:[]};if(this.declared.requiredNativeCapabilities.some(d=>!t.hello.grant.capabilities.includes(d)))return{status:"incompatible",reason:"capability_missing",paths:[],unavailable:[]};let r=new Set,a=new Set,c=new Set;for(let d of e.contracts){let u=JSON.stringify([d.id,d.version]);if(a.has(u))return{status:"incompatible",reason:"catalog_response",paths:[],unavailable:[]};a.add(u)}for(let d of e.types){if(c.has(d.name))return{status:"incompatible",reason:"catalog_response",paths:[],unavailable:[]};c.add(d.name)}let l,p=[];for(let d of this.declared.contracts){let u=e.contracts.find(f=>f.id===d.id&&f.version===d.version);if(!u){l??="contract_missing";continue}if(u.digest!==d.digest)return{status:"incompatible",reason:"contract_mismatch",paths:[],unavailable:[]};if(r.add(u.path),o.has(u.path))return s;if(!u.implementedBy.length){l??="implementation_missing";continue}for(let f of u.implementedBy){let h=e.types.find(m=>m.name===f);if(!h||!h.implements.some(m=>m.contract===d.id&&m.version===d.version))return{status:"incompatible",reason:"catalog_response",paths:[],unavailable:[]};if(r.add(h.path),o.has(h.path)){if(this.declared.typeIssues!=="degrade")return s;p.some(m=>m.name===h.name)||p.push(Object.freeze({name:h.name,path:h.path,contract:Object.freeze({id:d.id,version:d.version}),problem:Object.freeze({code:"readiness_type_invalid"})}))}}}return{status:l?"setup_required":"ready",...l?{reason:l}:{},paths:[...r].sort(),unavailable:p}}async close(){if(!this.closed){this.closed=!0,this.dirty=!1,this.lifetime.abort(),this.binding.signal.removeEventListener("abort",this.abort);for(let e of this.stops.splice(0))e();this.watch?.(),this.watch=null,this.publish({checking:!1,assessment:null,problem:Qa("fenced",this.fenceDetail())})}await this.pending?.catch(()=>{})}}});function tT(n){let e=o=>o?Object.freeze({code:`readiness_${o.reason}`,...o.detail?{detail:o.detail}:{}}):null,t=e(n.problem),i=n.assessment?.unavailableTypes;return Object.freeze({checking:n.checking,assessment:n.assessment?Object.freeze({status:n.assessment.status,problem:e(n.assessment.problem),...i?.length?{unavailableTypes:i}:{}}):null,problem:t})}var MC,eT,fp,Ji,Oh,LC=I(()=>{"use strict";nc();ie();Sw();MC=["configuration","files"],eT=["people","notifications"],fp=class extends Error{constructor(t,i){super("SDK application readiness unavailable");this.code=t;this.detail=i;this.name="ApplicationReadinessError"}code;detail},Ji=(n,e=!1,t)=>Object.freeze({checking:e,assessment:null,problem:n?Object.freeze({code:n,...t?{detail:t}:{}}):null});Oh=class{connection;signal;observed;native;sources;listeners=new Set;stops=[];pending=null;closing=null;checking=!1;closed=!1;advisory=Promise.resolve();lastReady=null;constructor(e){this.connection=e.connection,this.signal=e.signal,this.observed=e.isCurrent,this.sources=Object.freeze({configuration:e.configuration,files:e.files,people:e.people,notifications:e.notifications}),this.native=e.nativeRequirements?TC(this.connection.records,e.nativeRequirements,{collection:this.connection.id,generation:this.connection.generation,signal:this.signal,isCurrent:()=>this.current()}):null,this.native&&this.stops.push(this.native.subscribe(this.changed));for(let t of Object.values(this.sources))t&&this.stops.push(t.subscribe(this.changed));this.signal.addEventListener("abort",this.abort,{once:!0})}fenceDetail(){try{return this.signal.aborted?"scope_aborted":this.closed?"scope_closed":this.observed()!==!0?"observer_not_current":this.connection.isCurrent()?this.connection.records.collection!==this.connection.id?"collection_mismatch":null:"connection_not_current"}catch{return"currentness_check_failed"}}current(){return this.fenceDetail()===null}connectionProblem(){if(!this.closed&&!this.signal.aborted&&this.connection.records.collection===this.connection.id&&this.connection.records.link==="closed"){let e=this.connection.records.linkProblem;if(oe(e)){let t=Lo(e);return t&&t.key!=="unknown"?t.key:e.code}}return"readiness_fenced"}changed=()=>{for(let e of[...this.listeners])try{e()}catch{}};abort=()=>{this.close().catch(()=>{})};subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}getSnapshot(){let e=this.current(),t=Ji(e?"readiness_unsupported":"readiness_fenced"),i=t;if(e&&this.native){let u=this.native.getSnapshot(),f=u.assessment?.witness,h=f&&f.collection!==this.connection.id?"native_witness_collection_mismatch":f&&f.generation!==this.connection.generation?"native_witness_generation_mismatch":null;i=h?Ji("readiness_fenced",!1,h):tT(u)}let o=u=>{if(!e)return t;let f=this.sources[u];if(!f)return Ji(`${u}_unsupported`);try{let h=f.getSnapshot();return Object.freeze({checking:h.checking,assessment:h.assessment?Object.freeze({...h.assessment,problem:h.assessment.problem?Object.freeze({...h.assessment.problem}):null}):null,problem:h.problem?Object.freeze({...h.problem}):null})}catch{return Ji(`${u}_unavailable`)}},s=Object.freeze({capabilities:i,contracts:i,configuration:o("configuration"),files:o("files"),people:o("people"),notifications:o("notifications")}),r=[s.capabilities,s.contracts,s.configuration,s.files],a=e&&(this.checking||r.some(u=>u.checking)),c=null,l=null;if(!e)l=Object.freeze({code:"readiness_fenced"});else if(!a){let u=["capabilities","contracts",...MC].find(f=>s[f].problem);if(l=u?s[u].problem:null,u&&l?.code==="readiness_fenced"&&!l.detail&&(l=Object.freeze({...l,detail:`${u}_facet`})),r.every(f=>f.assessment!==null)){let f=r.find(w=>w.assessment?.status==="incompatible"),h=r.find(w=>w.assessment?.status==="setup_required"),m=f??h,b=i.assessment?.unavailableTypes;c=Object.freeze({status:f?"incompatible":h?"setup_required":"ready",problem:m?.assessment?.problem??null,...b?.length?{unavailableTypes:b}:{}})}}let p=this.fenceDetail();if(p)return this.lastReady=null,Object.freeze({checking:!1,assessment:null,problem:Object.freeze({code:this.connectionProblem(),detail:p}),facets:Object.freeze({capabilities:Ji("readiness_fenced",!1,p),contracts:Ji("readiness_fenced",!1,p),configuration:Ji("readiness_fenced",!1,p),files:Ji("readiness_fenced",!1,p),people:Ji("readiness_fenced",!1,p),notifications:Ji("readiness_fenced",!1,p)})});let d=!l||/_(changed|busy)$/.test(l.code);if(l===null&&c!==null&&!a)this.lastReady=Object.freeze({checking:a,assessment:c,problem:l,facets:s});else{if(this.lastReady&&d&&(a||c===null)&&(this.lastReady.assessment?.status==="ready"||!this.checking))return Object.freeze({...this.lastReady,facets:s});this.lastReady=null}return Object.freeze({checking:a,assessment:c,problem:l,facets:s})}refresh(e={}){let t=e.signal,i=this.fenceDetail()??(t?.aborted?"caller_aborted":null);if(i)return Promise.reject(new fp("application_readiness_fenced",i));if(this.pending)return Promise.reject(new fp("application_readiness_busy"));this.checking=!0;let o=Promise.resolve().then(async()=>{if(!this.current())return this.getSnapshot();await this.advisory,this.native&&await this.native.start();for(let s of MC){let r=this.sources[s];if(!this.current())break;r&&await r.refresh()}return this.getSnapshot()}).finally(()=>{if(this.pending!==o)return;this.pending=null,this.checking=!1;let s=(async()=>{for(let r of eT){let a=this.sources[r];if(!this.current())break;a&&await a.refresh().catch(()=>{})}})();this.advisory=s,this.changed()}).then(()=>this.getSnapshot());return this.pending=o,this.changed(),o.then(s=>{let r=this.fenceDetail()??(t?.aborted?"caller_aborted":null);if(r)throw new fp("application_readiness_fenced",r);return s})}close(){return this.closing?this.closing:(this.closed=!0,this.checking=!1,this.signal.removeEventListener("abort",this.abort),this.closing=Promise.resolve().then(async()=>{for(let e of this.stops.splice(0))e();for(let e of Object.values(this.sources))await e?.close();await this.native?.close(),await this.pending?.catch(()=>{}),await this.advisory,this.listeners.clear()}),this.changed(),this.closing)}}});function nT(n){let e=new Set,t=[],i=[];for(let o of n.review?.packs??[]){if(o.status!=="conflict"&&o.status!=="downgrade")continue;let s=o.installedVersion?jo(o.installedVersion,o.version):"unknown";s==="installed_newer"&&!o.resources.some(r=>r.action==="conflict")?(e.add(o.id),i.push(Object.freeze({id:o.id,version:o.version,installedVersion:o.installedVersion}))):s==="installed_newer_major"&&t.push(o.id)}return Object.freeze({kept:Object.freeze(i),compatible:e,major:Object.freeze(t)})}function iT(n,e){let t=n,i=t.provisions?.type_packs;return!e.size||!Array.isArray(i)?n:{...t,provisions:{...t.provisions,type_packs:i.filter(o=>!(typeof o?.manifest?.id=="string"&&e.has(o.manifest.id)))}}}function NC(n){return new Proxy({},{get(e,t){let i=Reflect.get(n,t,n);return typeof i!="function"?i:async(...o)=>{let s=o.find(a=>a instanceof AbortSignal),r=Date.now()+rT;for(let a=25;;a=Math.min(a*2,500))try{return await i.apply(n,o)}catch(c){if(!(c instanceof ti&&c.reason==="busy")||!s)throw c;if(Date.now()+a>r)throw ze("busy_timeout");await oT(a,s)}}}})}function DC(n,e){let t=Object.freeze({...n,scope:Object.freeze({...n.scope}),journal:NC(n.journal)});if(e&&(e=NC(e)),Object.values(t.scope).some(j=>!jC.test(j)||/^0{8}-0{4}-0{4}-0{4}-0{12}$/.test(j))||!jC.test(t.generation)||!["inspect","approved-new","reconcile-original"].includes(t.setupMode))throw ze("binding");let i=JSON.stringify([t.scope.account,t.scope.installation,t.scope.collection]),o=new AbortController,s=AbortSignal.any([t.signal,o.signal]),r=new Set,a=vr(),c=null,l=null,p=!1,d,u=null,f=!1,h=!1,m=0,b=!1,w=!1,g=null,y=null,v=()=>{try{return JSON.stringify([t.client.link,kw(t.client)])}catch{return null}},_=[],k=new WeakMap;function S(j,W){if(j?.throwIfAborted(),p||s.aborted||t.isCurrent()!==!0||JSON.stringify([t.journal.scope.account,t.journal.scope.installation,t.journal.scope.collection])!==i||W&&(W.closed||t.client.currentSession()!==W||W.hello.collection!==t.scope.collection))throw ze("fenced")}function x(j){a=Object.freeze(j);for(let W of r)try{W()}catch{}}function P(){if(p)return;let j=v();if(j!==null&&j===y)return;if(y=j,c||!a.assessment||u===null||t.client.link!=="open"){C();return}if(f){h=!0;return}f=!0;let W=a,$=u;t.client.describe(s).then(J=>{!p&&a===W&&tl(J)!==$&&C()},()=>{p||C()}).finally(()=>{f=!1,h&&!p&&(h=!1,y=null,P())})}function C(){p||(b=!0,c||x(vr(null,!0)),R())}function R(){p||c||w||!b||(w=!0,setTimeout(()=>{if(w=!1,p||c||!b)return;let j=ee(!1,{},void 0,!0);g=c,j.catch(()=>{})},m?Math.min(5e3,250*2**m):50))}function O(){if(a.assessment)try{S(void 0,d)}catch{p||s.aborted||t.isCurrent()!==!0?x(vr("configuration_fenced")):(b=!0,y=null,x(vr(null,!0)),R())}return a}async function L(j,W,$){let J=await t.client.awaitReceipt(j.mutationId,12e4,s);if(S(W,$),J.mutation!==j.mutationId||J.state!=="confirmed"||J.status!=="applied"||(J.conflicts?.length??0)!==0||J.published==="publishing"||J.published==="not_published")throw ze("recovery_required");return J}async function z(j,W,$){let J,be=0,ye=0,we=new Set,et=new Set,qe=new TextEncoder;for(let Dt=0;Dt<64;Dt++){S(W,$);let tt=await t.client.resources.list({text:!1,limit:128,...J===void 0?{}:{cursor:J},signal:s});if(S(W,$),tt.resources.length>128)throw ze("recovery_required");for(let Ve of tt.resources){let In=qe.encode(Ve.path).length;if(be++,ye+=In+128,!Ve.path||In>4096||et.has(Ve.path)||Ve.state!=="confirmed"||!Pw.test(Ve.revision)||!Number.isSafeInteger(Ve.size)||Ve.size<0||be>4096||ye>2*1024*1024||j.has(Ve.path))throw ze("recovery_required");et.add(Ve.path)}if(tt.complete===!0&&tt.cursor===void 0)return;if(tt.complete!==!1||!tt.resources.length||typeof tt.cursor!="string"||!tt.cursor||qe.encode(tt.cursor).length>4096||we.has(tt.cursor))throw ze("recovery_required");we.add(tt.cursor),J=tt.cursor}throw ze("recovery_required")}async function Q(j,W,$){let J=j.version===2?j.plan.readback:j.plan.resourceReadback,be=new Set(J.filter(ye=>ye.doc===null).map(ye=>ye.path));be.size&&await z(be,W,$);for(let ye of J){if(ye.doc===null)continue;let we=await t.client.resources.get(ye.path,s);if(S(W,$),we.path!==ye.path||we.text!==ye.doc||we.state!=="confirmed")throw ze("recovery_required")}if(j.version!==2)for(let ye of j.plan.sources){let we=await t.client.get(ye.id,void 0,s);if(S(W,$),we.id!==ye.id||we.path!==ye.path||we.state.state!=="confirmed"||we.state.hold||we.state.unresolved)throw ze("recovery_required")}}async function V(j,W,$){return await L(j,W,$),j.phase==="attempted"&&(j=j.version===2?await t.journal.recordConfirmed(j.mutationId,s):await t.journal.recordResourceConfirmed(j.mutationId,s),S(W,$)),j.phase==="verified"||(await Q(j,W,$),j.phase==="confirmed"&&(j=j.version===2?await t.journal.recordVerified(j.mutationId,s):await t.journal.recordResourceVerified(j.mutationId,s),S(W,$))),j}async function te(j,W){let $=await t.journal.load(s);if(S(j,W),!$)return{journaled:!1,previous:null};if($=Et($,t.scope),$.version===1||$.phase==="prepared")throw ze("recovery_required");if($.phase==="attempted"&&($.version===3||$.version===4)&&t.journal.recordResourceRejected){let J=await t.client.awaitReceipt($.mutationId,12e4,s);S(j,W),J.mutation===$.mutationId&&J.state==="rejected"&&($=Et(await t.journal.recordResourceRejected($.mutationId,s),t.scope),S(j,W))}if($.version===1)throw ze("recovery_required");return $.phase==="rejected"?{journaled:!0,previous:$.version===4?$.previous:null}:{journaled:!0,previous:await V($,j,W)}}async function G(j,W){let $=t.compiledManifest.manifest,J=await xw(e.assess($,s,j),j),be=J;J.status==="conflict"&&!J.review&&(be=await e.assess($,s,ei({})));let ye=nT(be);if(!ye.compatible.size)return{assessed:J,manifest:$,newer:ye};let we=iT($,ye.compatible),et=W?j??ei({}):j;return J=await xw(e.assess(we,s,et),et),{assessed:J,manifest:we,newer:ye}}async function K(j,W,$={}){S(W);let J=await t.client.readyForRead(s);S(W,J),_.length||(y=v(),_.push(t.client.onStatus(P),t.client.onLink(P))),b=!1;let{journaled:be,previous:ye}=await te(W,J);if(!e)throw ze("unsupported");let we=null;try{we=tl(await t.client.describe(s))}catch{}S(W,J);let et=await G($.decisions,!1),qe=et.assessed,Dt=et.manifest;if(S(W,J),!Pw.test(qe.assessmentDigest)||!["current","provision","conflict"].includes(qe.status))throw ze("response");if($.expected!==void 0&&qe.assessmentDigest!==$.expected)throw Cw();let tt=!be&&t.setupMode==="approved-new";if(qe.status==="provision"&&(j||tt)){if(t.setupMode==="reconcile-original")throw ze("recovery_required");if(!(t.compiledManifest.operations.includes("apply_collection_setup")||t.compiledManifest.operations.includes("apply_type_pack"))||!J.hello.grant.capabilities.includes("definitions.manage"))throw ze("not_authorized");let rs=$.records??[];if(rs.length&&!J.hello.grant.capabilities.includes("records.create"))throw ze("not_authorized");let os=xt(await xw(e.apply(Dt,qe.assessmentDigest,s,$.decisions),$.decisions));if(S(W,J),os.assessmentDigest!==qe.assessmentDigest)throw ze("response");if(os.sources.length)throw ze("unsupported_source_provision");let he=rs.length?xt({...os,sources:rs.map(nt=>({id:crypto.randomUUID(),path:nt.path,document:nt.document}))}):os,me;if(ye){if(!t.journal.prepareResourceRound)throw ze("recovery_required");me=await t.journal.prepareResourceRound(he,ye.mutationId,s)}else me=await t.journal.prepareResources(he,s);if(S(W,J),me=Et(me,t.scope),me.version!==3&&me.version!==4||me.phase!=="prepared"||JSON.stringify(me.plan)!==JSON.stringify(he))throw ze("recovery_required");let Fe=Et(await t.journal.recordResourceAttempt(me.mutationId,s),t.scope);if(S(W,J),Fe.version!==3&&Fe.version!==4||Fe.mutationId!==me.mutationId||Fe.phase!=="attempted"||JSON.stringify(Fe.plan)!==JSON.stringify(he))throw ze("recovery_required");let On=[...he.resourceOps,...he.sources.map(nt=>({kind:"create",id:nt.id,path:nt.path,document:nt.document}))],Rn=await t.client.submit(On,{mutationId:me.mutationId,wait:"confirmed",signal:s});if(S(W,J),Rn.length!==1||Rn[0].mutationId!==me.mutationId)throw ze("recovery_required");let xi;try{xi=await Rn[0].confirmed}catch(nt){throw S(W,J),Rn[0].receipt.state!=="rejected"||!t.journal.recordResourceRejected?nt:(await t.journal.recordResourceRejected(me.mutationId,s),S(W,J),Cw(me.mutationId,nt))}if(S(W,J),xi.state!=="confirmed"||xi.status!=="applied"||(xi.conflicts?.length??0)!==0)throw ze("recovery_required");await V(Fe,W,J),b=!1,y=v();try{we=tl(await t.client.describe(s))}catch{we=null}if(qe=await e.assess(Dt,s),S(W,J),qe.status!=="current"||!Pw.test(qe.assessmentDigest))throw ze("recovery_required")}let Ve=qe.status==="conflict"?et.newer.major.length?"installed_newer":"configuration_conflict":null,In=Ve?Object.freeze({code:Ve}):null,Ar=Object.freeze({status:qe.status==="current"?"ready":qe.status==="conflict"?"incompatible":"setup_required",problem:In});d=J,u=we;let Pi=Object.freeze({checking:!1,assessment:Ar,problem:In});return m=0,x(b?vr(null,!0):Pi),S(W,J),Pi}function X(j={}){try{S(j.signal)}catch(J){return Promise.reject(J)}let W=c,$=(W?W.then(()=>{},()=>{}):Promise.resolve()).then(()=>Y(j));return c=$,$.finally(()=>{c===$&&(c=null)}).catch(()=>{}),$}async function Y(j){let W=oh(j.records),$=ei(j.adopt===void 0?{}:{adopt:j.adopt}),J=AbortSignal.any([s,...j.signal?[j.signal]:[]]),be=await t.client.readyForRead(s);if(S(J,be),await te(J,be),!e)throw ze("unsupported");let{assessed:ye,newer:we}=await G($,!0);if(S(J,be),!ye.review)throw ze("response");let et=[];if(ye.status!=="current")for(let tt of W){let Ve=await t.client.find({path:tt.path},void 0,s);S(J,be),et.push({path:tt.path,free:Ve===null})}let qe=be.hello.grant.capabilities,Dt=tp(ye,{records:et,canManage:qe.includes("definitions.manage")&&(t.compiledManifest.operations.includes("apply_collection_setup")||t.compiledManifest.operations.includes("apply_type_pack")),canCreateRecords:qe.includes("records.create"),newer:we});return k.set(Dt,Object.freeze({decisions:$,records:W.filter(tt=>et.some(Ve=>Ve.path===tt.path&&Ve.free))})),Dt}function ee(j,W={},$,J=!1){try{S(W.signal)}catch(we){return Promise.reject(we)}if(c&&c===g){let we=c;return we.then(()=>{},()=>{}).then(()=>c&&c!==we?Promise.reject(ze("busy")):ee(j,W,$))}if(c)return Promise.reject(ze("busy"));let be=AbortSignal.any([s,...W.signal?[W.signal]:[]]),ye=Promise.resolve().then(()=>K(j,be,$)).catch(we=>{let et=s.aborted||be.aborted,qe=oe(we)&&we.reason==="configuration_busy_timeout";qe&&(b=!1);let Dt=!et&&!qe&&(b||UC(we));throw Dt&&UC(we)&&(b=!0,m=Math.min(m+1,4)),!et&&!qe&&!b&&J&&m<5&&!p&&t.isCurrent()===!0&&(m++,b=!0,Dt=!0),x(Dt?vr(null,!0):vr(et?"configuration_fenced":qe?"configuration_busy_timeout":"configuration_unavailable")),we});return c=ye,x(vr(null,!0)),ye.finally(()=>{c===ye&&(c=null),g===ye&&(g=null),R()}).catch(()=>{}),ye.then(we=>(S(be,d),we))}let $e=()=>{if(!l){p=!0,t.signal.removeEventListener("abort",mt),o.abort();for(let W of _.splice(0))W();x(vr("configuration_fenced"));let j=c;l=Promise.resolve().then(async()=>{await j})}return l},mt=()=>{$e().catch(()=>{})};return t.signal.addEventListener("abort",mt,{once:!0}),Object.freeze({getSnapshot:O,subscribe(j){return r.add(j),()=>{r.delete(j)}},assess:j=>ee(!1,j),configure:j=>ee(!0,j),plan:X,async apply(j,W={}){let $=k.get(j);if(!$)throw new TypeError("setup.apply needs a plan returned by setup.plan");if(j.refusal)throw A(j.refusal.code==="setup_conflict"?"conflict":j.refusal.code==="installed_newer"?"upgrade_required":"forbidden",j.refusal.message,j.refusal.code);if(j.status==="current"){await ee(!1,W,{decisions:$.decisions,expected:j.digest});return}await ee(!0,W,{decisions:$.decisions,expected:j.digest,records:$.records})},close:$e})}var jC,Pw,ze,Cw,xw,rT,oT,UC,vr,$C=I(()=>{"use strict";ie();Go();Sw();no();mu();sh();jC=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,Pw=/^sha256:[0-9a-f]{64}$/,ze=n=>A("unavailable","application configuration unavailable",`configuration_${n}`),Cw=(n,e)=>new pe(A("conflict","This collection changed since the setup was reviewed. Review it again.","setup_changed").toProblem(),{...n?{mutationId:n}:{},...e===void 0?{}:{cause:e}}),xw=async(n,e)=>{try{return await n}catch(t){throw e?.adopt&&Object.keys(e.adopt).length&&oe(t,"unavailable")&&t.reason==="resource_setup_unavailable"?Cw(void 0,t):t}};rT=15e3,oT=(n,e)=>new Promise((t,i)=>{if(e.aborted){i(e.reason);return}let o=()=>{clearTimeout(s),i(e.reason)},s=setTimeout(()=>{e.removeEventListener("abort",o),t()},n);e.addEventListener("abort",o,{once:!0})});UC=n=>oe(n)&&n.reason==="configuration_busy",vr=(n=null,e=!1)=>Object.freeze({checking:e,assessment:null,problem:n?Object.freeze({code:n}):null})});function zC(n){return{issuer:n.issuer,subject:n.subject,name:n.name,...n.accountId===void 0?{}:{account_id:n.accountId}}}function BC(n){let e=n.scope,t=e.account,i=e.installation,o=e.collection,s=n.generation,r=n.signal,a=n.people,c=n.isCurrent.bind(n),l=typeof a?.current=="function"?a.current.bind(a):void 0,p=typeof a?.members=="function"?a.members.bind(a):void 0,d=new Set,u=es(null),f=!1,h=!1,m=null;function b(){try{return f||r.aborted||c()!==!0?!1:!f&&!r.aborted&&n.scope===e&&n.generation===s&&n.signal===r&&n.people===a&&!!s&&s.length<=256&&[t,i,o].every(k=>typeof k=="string"&&!!k&&k.length<=128)&&e.account===t&&e.installation===i&&e.collection===o}catch{return!1}}function w(k){u=b()?k:_r;for(let S of[...d])try{S()}catch{}b()||(u=_r)}function g(){return b()||(u=_r),u}function y(){if(!f){f=!0,r.removeEventListener("abort",y),u=_r;for(let k of[...d])try{k()}catch{}d.clear()}}r.addEventListener("abort",y,{once:!0}),r.aborted&&y();function v(k,S){return!b()||S?.aborted?Promise.reject(hp()):new Promise((x,P)=>{let C=!1,R=(z,Q)=>{C||(C=!0,S?.removeEventListener("abort",O),r.removeEventListener("abort",O),d.delete(L),Q!==void 0?P(Q):x(z))},O=()=>R(void 0,hp()),L=()=>{b()||O()};d.add(L),S?.addEventListener("abort",O,{once:!0}),r.addEventListener("abort",O,{once:!0}),k.then(()=>{!b()||S?.aborted?O():R(g())},()=>R(void 0,hp())),(!b()||S?.aborted)&&O()})}function _(k={}){let S=k.signal;if(!b()||S?.aborted)return Promise.reject(hp());if(m)return Promise.reject(A("unavailable","People readiness READ is occupied","people_readiness_busy"));let x=Promise.resolve().then(async()=>{if(!b())return _r;if(!l||!p)return es("people_unsupported");try{let C=await l({signal:r});if(!b()||(Fa("identity",{...zC(C),...C.personSettingsUrl===void 0?{}:{person_settings_url:C.personSettingsUrl}}),!b()))return _r;let R=await p({signal:r});return b()?!Array.isArray(R)||R.length>1e3?es("people_response"):(Fa("members",{members:Array.from(R,O=>({...zC(O),role:O.role}))}),b()?sT:_r):_r}catch{return es(b()?"people_unavailable":"people_fenced")}});m=x,w(es(null,!0));let P=x.then(C=>(w(C),g()),()=>(w(es("people_unavailable")),g())).finally(()=>{m===x&&(m=null)});return v(P,S)}return Object.freeze({getSnapshot:g,subscribe(k){return f?()=>{}:(d.add(k),()=>{d.delete(k)})},start(k={}){return h?v(m??Promise.resolve(g()),k.signal):!b()||k.signal?.aborted?Promise.reject(hp()):(h=!0,_(k))},refresh:_,close:y})}var es,_r,sT,hp,FC=I(()=>{"use strict";rp();ie();es=(n,e=!1)=>Object.freeze({checking:e,assessment:null,problem:n===null?null:Object.freeze({code:n})}),_r=es("people_fenced"),sT=Object.freeze({checking:!1,assessment:Object.freeze({status:"ready",problem:null}),problem:null}),hp=()=>A("cancelled","People readiness ended","people_readiness_fenced")});function Rh(n){if(!n||!Array.isArray(n.criteria))return Object.freeze([]);let e=n.criteria.filter(t=>t?.event?.id===Af.id&&t.event.version===Af.version&&t.event.digest===Af.digest).map(t=>t.id);return Object.freeze([...new Set(e)])}var Iw=I(()=>{"use strict";jc()});function VC(n){let e=n.scope,t=e.account,i=e.installation,o=e.collection,s=n.generation,r=n.signal,a=n.isCurrent.bind(n),c=n.notifications,l=c?.declaration,p=c?.timerNamespace,d=n.timers,u=typeof d?.list=="function"?d.list.bind(d):void 0,f=new Set,h=Ai(null),m=!1,b=!1,w=null;function g(){try{return m||r.aborted||a()!==!0?!1:!m&&!r.aborted&&n.signal===r&&n.scope===e&&n.generation===s&&!!s&&s.length<=256&&[t,i,o].every(x=>typeof x=="string"&&!!x&&x.length<=128)&&e.account===t&&e.installation===i&&e.collection===o&&n.notifications===c&&c?.declaration===l&&c?.timerNamespace===p&&n.timers===d}catch{return!1}}function y(x){h=g()?x:Eh;for(let P of[...f])try{P()}catch{}g()||(h=Eh)}function v(){return g()||(h=Eh),h}function _(){if(!m){m=!0,r.removeEventListener("abort",_),h=Eh;for(let x of[...f])try{x()}catch{}f.clear()}}r.addEventListener("abort",_,{once:!0}),r.aborted&&_();function k(x,P){return!g()||P?.aborted?Promise.reject(mp()):new Promise((C,R)=>{let O=!1,L=(V,te)=>{O||(O=!0,P?.removeEventListener("abort",z),r.removeEventListener("abort",z),f.delete(Q),te!==void 0?R(te):C(V))},z=()=>L(void 0,mp()),Q=()=>{g()||z()};f.add(Q),P?.addEventListener("abort",z,{once:!0}),r.addEventListener("abort",z,{once:!0}),x.then(()=>{!g()||P?.aborted?z():L(v())},()=>L(void 0,mp())),(!g()||P?.aborted)&&z()})}function S(x={}){let P=x.signal;if(!g()||P?.aborted)return Promise.reject(mp());if(w)return Promise.reject(A("unavailable","Notification readiness READ is occupied","notification_readiness_busy"));let C=Promise.resolve().then(async()=>{if(!g())return Ai("notifications_fenced");if(l===null&&c&&Object.hasOwn(c,"declaration"))return Object.freeze({checking:!1,assessment:Object.freeze({status:"ready",problem:null}),problem:null});if(!u&&Rh(l).length)return Ai("notifications_consent_required");if(!l||typeof l!="object"||!u||typeof p!="string"||!/^[A-Za-z0-9._-]{1,64}$/.test(p))return Ai("notifications_unsupported");try{let O=await u(p,{signal:r});return g()?!O||O.namespace!==p||!Array.isArray(O.timers)||O.timers.length>1e4?Ai("notifications_response"):Ai("notifications_unsupported"):Ai("notifications_fenced")}catch{return Ai(g()?"notifications_unavailable":"notifications_fenced")}});w=C,y(Ai(null,!0));let R=C.then(O=>(y(O),v()),()=>(y(Ai("notifications_unavailable")),v())).finally(()=>{w===C&&(w=null)});return k(R,P)}return Object.freeze({getSnapshot:v,subscribe(x){return m?()=>{}:(f.add(x),()=>{f.delete(x)})},start(x={}){return b?k(w??Promise.resolve(v()),x.signal):!g()||x.signal?.aborted?Promise.reject(mp()):(b=!0,S(x))},refresh:S,close:_})}var aT,Ai,Eh,mp,KC=I(()=>{"use strict";ie();Iw();aT=n=>Object.freeze({code:n}),Ai=(n,e=!1)=>Object.freeze({checking:e,assessment:null,problem:n===null?null:aT(n)}),Eh=Ai("notifications_fenced"),mp=()=>A("cancelled","Notification readiness ended","notification_readiness_fenced")});function GC(n){let e=new Set,t=!1,i=()=>{if(t||!n.isCurrent())return WC;let s=n.declaration;if(!s)return Ow;let r;try{r=n.grant()}catch{return lT}return r?s.required.some(a=>!r.actions.includes(a))?HC("files_access_missing"):n.scope==="collection"&&r.scope.kind!=="collection"?HC("files_scope_missing"):Ow:Ow},o=i();return Object.freeze({getSnapshot:()=>t||!n.isCurrent()?WC:o,subscribe(s){return t?()=>{}:(e.add(s),()=>{e.delete(s)})},async refresh(){let s=i();if(s!==o){o=s;for(let r of[...e])try{r()}catch{}}return o},close(){t=!0,e.clear()}})}var qh,Ow,WC,lT,HC,YC=I(()=>{"use strict";qh=n=>Object.freeze(n),Ow=qh({checking:!1,assessment:Object.freeze({status:"ready",problem:null}),problem:null}),WC=qh({checking:!1,assessment:null,problem:Object.freeze({code:"files_fenced"})}),lT=qh({checking:!1,assessment:null,problem:Object.freeze({code:"files_unavailable"})}),HC=n=>qh({checking:!1,assessment:Object.freeze({status:"incompatible",problem:Object.freeze({code:n})}),problem:null})});var Th,JC=I(()=>{"use strict";EC();LC();$C();FC();KC();Iw();ql();eh();YC();Th=class{constructor(e,t,i,o="block",s=()=>[]){this.typeIssues=o;this.consented=s;this.compiled=e,this.signal=i,this.ui=new Ih(t,i,Rh(this.compiled.manifest.notifications)),i.addEventListener("abort",this.abort,{once:!0})}typeIssues;consented;ui;signal;compiled;listeners=new Set;selected=null;epoch=0;opening=null;retiring=null;closing=null;changed=()=>{for(let e of[...this.listeners])try{e()}catch{}};abort=()=>{this.close().catch(()=>{})};subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}connection(e){return this.ui.connection(e)}getReadiness(){return this.selected?.readiness.getSnapshot()??null}selectedId(){return this.selected?.connection.id??null}adopt(e,t,i){let o=this.epoch,s=()=>!this.signal.aborted&&!this.closing&&!this.retiring&&this.epoch===o&&i(),r=!!this.opening||!!this.selected||!!this.retiring||!!this.closing,a=this.ui.adopt(e,{caller:t,isCurrent:s});if(r)return a;let c=null,l=[],p=a.then(d=>{if(!s()||t.aborted)throw new Ut("application_connection_fenced");let u=this.ui.owned();if(!u)throw new Ut("application_connection_binding");let f=Zf(this.compiled);f&&C_(d.files,fx(f,()=>this.consented(d.id)));let h=new AbortController,m=AbortSignal.any([this.signal,h.signal]);c=h;let b=()=>s()&&d.isCurrent(),w={scope:d.scope,generation:d.generation,signal:m,isCurrent:b},g=DC({client:d.records,compiledManifest:this.compiled,journal:u.journal,...w,setupMode:u.setupMode},u.resourceSetup);l.push(()=>g.close());let y={getSnapshot:g.getSnapshot,subscribe:g.subscribe,refresh:g.assess,close:g.close},v=BC({people:d.people,...w});l.push(()=>v.close());let _=this.compiled.manifest.notifications,k=VC({notifications:{declaration:_?.criteria?.length?_:null},timers:d.timers,...w});l.push(()=>k.close());let S=this.compiled.manifest.requirements.files?.scope?.kind,x=GC({declaration:f,scope:typeof S=="string"?S:null,grant:()=>d.files.grant,isCurrent:b});l.push(()=>x.close());let P=this.compiled.nativeCapabilities?{...this.compiled.nativeCapabilities,contracts:this.compiled.manifest.requirements.contracts,typeIssues:this.typeIssues}:null,C=new Oh({connection:d,nativeRequirements:P,signal:m,isCurrent:b,configuration:y,files:x,people:v,notifications:k}),R=C.subscribe(this.changed);return this.selected={connection:d,lifetime:h,readiness:C,configuration:g,unsubscribe:R},c=null,l.length=0,this.changed(),d}).catch(async d=>{c?.abort();let f=(await Promise.allSettled([this.ui.retire(),...l.map(h=>Promise.resolve().then(h))])).find(h=>h.status==="rejected");throw f?.status==="rejected"?f.reason:d}).finally(()=>{this.opening===p&&(this.opening=null)});return this.opening=p,p}assess(e={}){return!this.selected||!this.selected.connection.isCurrent()||this.retiring||this.closing?Promise.reject(new Ut("application_connection_fenced")):this.selected.readiness.refresh(e)}async configure(e={}){let t=this.selected,i=this.epoch;if(!t||!t.connection.isCurrent()||this.retiring||this.closing)throw new Ut("application_connection_fenced");if(await t.configuration.configure(e),e.signal?.aborted||this.epoch!==i||this.selected!==t||!t.connection.isCurrent())throw new Ut("application_connection_fenced");return t.readiness.refresh(e)}planSetup(e={}){let t=this.selected;return!t||!t.connection.isCurrent()||this.retiring||this.closing?Promise.reject(new Ut("application_connection_fenced")):t.configuration.plan(e)}async applySetup(e,t={}){let i=this.selected,o=this.epoch;if(!i||!i.connection.isCurrent()||this.retiring||this.closing)throw new Ut("application_connection_fenced");if(await i.configuration.apply(e,t),t.signal?.aborted||this.epoch!==o||this.selected!==i||!i.connection.isCurrent())throw new Ut("application_connection_fenced");return i.readiness.refresh(t)}retire(){if(this.retiring)return this.retiring;++this.epoch;let e=this.selected,t=this.opening;e?.lifetime.abort(),e?.unsubscribe();let i=this.ui.retire(),o=Promise.resolve().then(async()=>{let r=(await Promise.allSettled([i,t?.catch(()=>{}),e?.readiness.close()])).find(a=>a.status==="rejected");if(r?.status==="rejected")throw r.reason;this.selected===e&&(this.selected=null)});return this.retiring=o,this.changed(),o.then(()=>{this.retiring===o&&(this.retiring=null),this.changed()},()=>{}),o}close(){return this.closing?this.closing:(this.signal.removeEventListener("abort",this.abort),this.closing=Promise.resolve().then(async()=>{await this.retire(),await this.ui.close(),this.listeners.clear()}),this.closing)}}});function XC(n){return typeof n=="string"&&cT.includes(n)}var cT,ZC=I(()=>{"use strict";cT=["joining","opening_store","connecting_log","syncing","loading_snapshot","replaying","waiting_for_key","verifying_read","checking_setup"]});function Rw(n,e){return!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).sort().join()!==e.split(",").sort().join()?nl():n}function Ew(n){(typeof n!="string"||!pT.test(n)||/^0{8}-0{4}-0{4}-0{4}-0{12}$/.test(n))&&nl()}function QC(n){let e=Rw(n,"rpc,action,value");if((!Number.isSafeInteger(e.rpc)||e.rpc<1||e.rpc>4294967295)&&nl(),e.action==="cancel")e.value!==null&&nl();else if(e.action==="prepare"){let t=Rw(e.value,`requestId,accountId,appId,challenge${Object.hasOwn(e.value,"authorizationId")?",authorizationId":""}`);for(let i of["requestId","accountId","appId"])Ew(t[i]);t.authorizationId!==void 0&&Ew(t.authorizationId),(typeof t.challenge!="string"||!/^[0-9a-f]{64}$/.test(t.challenge))&&nl()}else if(e.action==="finish"){let t=Rw(e.value,"requestId,authorizationRequestId,collectionId");for(let i of Object.keys(t))Ew(t[i])}else nl();return Object.freeze({...e,value:e.value===null?null:Object.freeze({...e.value})})}var pT,nl,eI=I(()=>{"use strict";Gf();pT=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,nl=()=>{throw new Se("application_worker_binding")}});function qw(n){if(!n||typeof n!="object"||Array.isArray(n))throw new Se("application_worker_binding");let e=n;if(!["not_started","starting","signed_out","authorizing","unselected","opening","setup_required","ready","blocked","closed"].includes(e.status)||!(e.openingProgress==null||typeof e.openingProgress=="string")||!Array.isArray(e.collections)||e.collections.length>1024||!(e.selectedCollectionId===null||typeof e.selectedCollectionId=="string")||!(e.problem===null||typeof e.problem=="string"&&/^[a-z0-9_-]{1,128}$/.test(e.problem)))throw new Se("application_worker_binding");return Object.freeze({...e,openingProgress:XC(e.openingProgress)?e.openingProgress:null})}var Tw,Mh,tI=I(()=>{"use strict";ZC();eI();Gf();Tw=class extends Error{constructor(t){super("SDK application operation unavailable");this.code=t;this.name="ApplicationWorkerReplyError"}code};Mh=class{port;binding;owner;nextId=0;active=null;portal=null;fault=null;stopping=null;stopReply=null;watch=null;abandoned=!1;constructor(e,t,i){if(!sx(t))throw new Se("application_worker_binding");this.port=e,this.binding=t,this.owner=Object.freeze({...i}),e.addEventListener("message",this.message),e.addEventListener("messageerror",this.messageError),e.start()}id(){if(this.nextId===Hf)throw new Se("application_worker_stop_failed");return++this.nextId}send(e,t,i){let o=Bb([Qn,this.binding,e,t,i],this.binding);try{this.port.postMessage(o)}catch{throw this.quarantine("application_worker_unavailable"),this.fault}}request(e,t,i,o){if(this.fault||this.stopping||i.aborted)return Promise.reject(this.fault??new Se("application_worker_fenced"));if(this.active)return Promise.reject(new Se("application_worker_busy"));let s;try{s=this.id(),Bb([Qn,this.binding,s,e,t],this.binding)}catch(c){return Promise.reject(c)}if(o){if(!["authorize","renewExpiredPairing","requestFileAccess"].includes(e))return Promise.reject(new Se("application_worker_binding"));this.portal?.life.abort();try{this.portal?.value.close()}catch{return this.quarantine("application_worker_stop_failed"),Promise.reject(this.fault)}this.portal={id:s,value:o,caller:i,life:new AbortController,lastRpc:0,busy:!1},this.watchPortal()}let r,a=new Promise(c=>{r=c});return new Promise((c,l)=>{let p={id:s,caller:i,done:a,finish:r,resolve:c,reject:l,fenced:!1,reply:!1,handoff:null,cancel:()=>{p.fenced=!0,l(new Se("application_worker_fenced"))}};this.active=p,i.addEventListener("abort",p.cancel,{once:!0});try{this.send(s,e,t)}catch(d){l(d)}i.aborted&&p.cancel()})}drain(){return this.fault?Promise.reject(this.fault):this.active?.done??Promise.resolve()}setForeground(e){!this.stopping&&!this.fault&&this.send(0,"foreground",e)}watchPortal(){this.watch!==null&&clearInterval(this.watch),this.watch=null;let e=this.portal;!e||!("closed"in e.value)||(this.watch=setInterval(()=>{if(this.portal!==e||this.stopping||this.fault){clearInterval(this.watch),this.watch=null;return}let t=!1;try{t=e.value.closed===!0}catch{}if(t){clearInterval(this.watch),this.watch=null,e.lastRpc===0&&(this.portal=null);try{this.send(0,"approvalClosed",!0)}catch{}}},500))}messageError=()=>this.quarantine("application_worker_unavailable");quarantine(e){if(!this.fault){this.fault=new Se(e),this.active&&(this.active.fenced=!0,this.active.reject(this.fault)),this.stopReply?.reject(this.fault);try{this.owner.failed?.(this.fault)}catch{}}}message=e=>{try{let t=e.data;if(!Array.isArray(t)||t.length!==5||t[0]!==Qn||t[1]!==this.binding||!Number.isInteger(t[3])||t[3]<0||t[3]>Hf)throw new Se("application_worker_binding");if(this.fault)return;let[,,i,o,s]=t;if(i==="nativeSnapshot"){if(o!==0)throw new Se("application_worker_binding");let l=qw(s);this.stopping||this.owner.snapshot(l);return}if(i==="fatal"){if(o!==0)throw new Se("application_worker_binding");this.quarantine("application_worker_stop_failed");return}if(i==="nativeAuthorization"){let l=QC(s),p=this.portal;if(!p||p.id!==o||this.stopping||p.caller.aborted||l.rpc<=p.lastRpc)throw new Se("application_worker_fenced");if(p.lastRpc=l.rpc,l.action==="cancel")p.life.abort();else if(p.busy)throw new Se("application_worker_binding");l.action!=="cancel"&&(p.busy=!0);let d=AbortSignal.any([p.caller,p.life.signal]);Promise.resolve().then(()=>{if(!this.owner.nativeAuthorization)throw new Se("application_worker_unavailable");return this.owner.nativeAuthorization(l,p.value,d)}).then(u=>{if(d.aborted||this.portal!==p||this.stopping)throw new Se("application_worker_fenced");this.port.postMessage([Qn,this.binding,"nativeAuthorizationReply",o,{rpc:l.rpc,ok:!0,value:u}])},()=>{this.port.postMessage([Qn,this.binding,"nativeAuthorizationReply",o,{rpc:l.rpc,ok:!1}])}).catch(()=>{try{this.port.postMessage([Qn,this.binding,"nativeAuthorizationReply",o,{rpc:l.rpc,ok:!1}])}catch{}}).finally(()=>{p.busy=!1});return}if(i==="portal"){if(!s||!["navigate","close"].includes(s.action))throw new Se("application_worker_binding");let l=this.portal;if(!l||l.id!==o)return;if(s.action==="close")l.life.abort(),l.value.close(),this.portal=null;else{if(this.stopping||typeof s.uri!="string"||s.uri.length>8192)throw new Se("application_worker_binding");l.value.navigate(s.uri)}return}if(i==="handoff"&&o===0){if(!s||s.schema!=="mdbn-app-collection/1")throw new Se("application_worker_binding");let l=[s.dataPort,s.controlPort,...s.timerPort?[s.timerPort]:[]];if(l.some(p=>!(p instanceof MessagePort)))throw new Se("application_worker_binding");if(this.stopping||!this.owner.attached){for(let p of l)p.close();return}this.owner.attached(s);return}if(i==="handoff"){let l=this.active;if(!l||l.id!==o||l.reply||l.handoff)throw new Se("application_worker_binding");if(this.stopping){if(!s||s.schema!=="mdbn-app-collection/1")throw new Se("application_worker_binding");for(let p of[s.dataPort,s.controlPort,...s.timerPort?[s.timerPort]:[]]){if(!(p instanceof MessagePort))throw new Se("application_worker_binding");p.close()}l.handoff=Promise.resolve();return}l.handoff=Promise.resolve().then(()=>this.owner.handoff(s,l.caller)),l.handoff.catch(()=>{});return}if(i!=="reply"||!s||typeof s.ok!="boolean"||!s.ok&&(!s.problem||typeof s.problem.code!="string"||s.problem.code.length>128))throw new Se("application_worker_binding");let r=this.stopReply;if(r&&r.id===o){if(s.ok){let l=qw(s.snapshot);if(l.status!=="closed"||l.selectedCollectionId!==null)throw new Se("application_worker_stop_failed");r.resolve()}else r.reject(new Se("application_worker_stop_failed"));return}let a=this.active;if(!a||a.id!==o||a.reply)throw new Se("application_worker_binding");a.reply=!0;let c=s.ok?qw(s.snapshot):null;this.settle(a,c,s.ok?null:Object.freeze({code:s.problem.code}))}catch{this.quarantine("application_worker_binding")}};async settle(e,t,i){try{if(await e.handoff,e.fenced||e.caller.aborted||this.stopping||this.fault)throw this.fault??new Se("application_worker_fenced");if(i)throw new Tw(i.code);t&&e.resolve(t)}catch(o){e.reject(o)}finally{e.caller.removeEventListener("abort",e.cancel),this.active===e&&(this.active=null),e.finish()}}abandon(){if(this.abandoned)return;this.abandoned=!0,this.fault||(this.fault=new Se("application_worker_fenced")),this.watch!==null&&(clearInterval(this.watch),this.watch=null);let e=this.active;e&&(e.fenced=!0,e.reject(this.fault),e.finish(),this.active=null),this.stopReply?.reject(this.fault),this.stopReply=null,this.portal?.life.abort();try{this.portal?.value.close()}catch{}this.portal=null;try{this.owner.releaseWorker()}catch{}this.port.removeEventListener("message",this.message),this.port.removeEventListener("messageerror",this.messageError),this.port.close()}close(){if(this.stopping)return this.stopping;let e=this.active;return e&&(e.fenced=!0,e.reject(new Se("application_worker_fenced"))),this.stopping=Promise.resolve().then(async()=>{if(this.fault)throw new Se("application_worker_stop_failed");this.portal?.life.abort(),this.portal?.value.close(),this.portal=null;let t=this.id();if(await new Promise((i,o)=>{this.stopReply={id:t,resolve:i,reject:o};try{this.send(t,"close",null)}catch(s){o(s)}}),await e?.done,this.fault)throw new Se("application_worker_stop_failed");this.owner.releaseWorker(),this.port.removeEventListener("message",this.message),this.port.removeEventListener("messageerror",this.messageError),this.port.close()}).catch(t=>{throw this.quarantine("application_worker_stop_failed"),t}),this.stopping}}});var nI={};ls(nI,{ApplicationRuntime:()=>Lw,ApplicationRuntimeError:()=>ni});var ni,Mw,Lw,iI=I(()=>{"use strict";lC();JC();bt();eh();tI();Fb();ni=class extends Error{constructor(t){super("SDK application runtime unavailable");this.code=t;this.name="ApplicationRuntimeError"}code},Mw=()=>{let n=Object.freeze({checking:!1,assessment:null,problem:null});return Object.freeze({checking:!1,assessment:null,problem:null,facets:Object.freeze({capabilities:n,contracts:n,configuration:n,files:n,people:n,notifications:n})})},Lw=class{lifetime=new AbortController;scope;worker;cpOrigin;lab;listeners=new Set;unsubscribe;raw=Object.freeze({status:"not_started",collections:Object.freeze([]),selectedCollectionId:null,signIn:null,problem:null,timing:null});snapshot=Object.freeze({...this.raw,readiness:Mw()});pending=null;closing=null;epoch=0;loggedProblem=null;assessing=!1;retiring=!1;closed=!1;stopped=!1;stopFailed=!1;constructor(e){this.cpOrigin=e.cpOrigin,this.lab=Qt(e.declaration.environment),this.scope=new Th(e.compiledManifest,{name:e.declaration.name,version:"1"},this.lifetime.signal,e.typeIssues,t=>Qf(this.raw,t)),this.worker=new Mh(e.port,e.binding,{snapshot:t=>{this.closed||(this.raw=t,this.followSession(),this.publish())},handoff:(t,i)=>{let o=this.epoch;return this.scope.adopt(t,i,()=>!this.closed&&this.epoch===o).then(()=>{this.portsFailed=null},s=>{throw this.portsFailed=t.scope.collection,s})},attached:t=>this.attached(t),releaseWorker:e.releaseWorker,...e.nativeAuthorization?{nativeAuthorization:e.nativeAuthorization}:{},failed:t=>{this.closed||(this.raw=Object.freeze({...this.raw,status:"blocked",problem:t.code}),this.publish())}}),this.unsubscribe=this.scope.subscribe(()=>this.publish())}portsFailed=null;attached(e){let t=()=>{for(let o of[e.dataPort,e.controlPort,...e.timerPort?[e.timerPort]:[]])try{o.close()}catch{}};if(this.closed){t();return}let i=this.lifetime.signal;this.queue(()=>this.action(async()=>{if(this.raw.selectedCollectionId!==e.scope.collection)return t(),this.snapshot;this.scope.selectedId()!==null&&(++this.epoch,await this.retireOwn());let o=this.epoch;return await this.scope.adopt(e,i,()=>!this.closed&&this.epoch===o).catch(s=>{throw this.portsFailed=e.scope.collection,s}),this.portsFailed=null,this.complete(this.raw,i)},i)).catch(()=>{this.closed||this.publish()})}followSession(){if(this.pending)return;let e=this.raw.status==="ready"||this.raw.status==="setup_required",t=this.raw.selectedCollectionId,i=this.scope.selectedId();if(i!==null&&(i!==t||!e&&this.raw.status!=="opening"&&this.raw.status!=="authorizing")){let o=this.lifetime.signal;this.queue(()=>this.action(async()=>(this.scope.selectedId()===i&&(++this.epoch,await this.retireOwn()),this.publish(),this.snapshot),o)).catch(()=>{})}}connection(e){return this.closed?null:this.scope.connection(e)}getSnapshot(){return this.snapshot}getNativeSnapshot(){return this.raw}async queue(e){for(;this.pending&&!this.closed;)await this.pending.catch(()=>{});return e()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}publish(){if(this.closed)this.snapshot=Object.freeze({...this.raw,status:this.stopped?"closed":"blocked",problem:this.stopped?null:this.stopFailed?"application_stop_failed":"application_closing",selectedCollectionId:null,readiness:Mw()});else{let e=this.scope.getReadiness()??Mw(),t=this.raw.status,i=this.raw.problem,o,s=this.raw.selectedCollectionId,r=this.retiring&&e.problem?.code==="readiness_fenced",a=s!==null&&(this.scope.getReadiness()===null||r)&&this.portsFailed!==s;if((t==="ready"||t==="setup_required")&&a)t="opening";else if(t==="ready"||t==="setup_required"){let l=this.assessing&&!e.assessment&&e.problem?.code!=="readiness_fenced";if(t=e.checking||l?"opening":e.assessment?.status==="ready"?"ready":e.assessment?.status==="setup_required"?"setup_required":"blocked",t==="blocked"){let p=e.problem??e.assessment?.problem;i=p?.code??"application_readiness_unavailable",o=p?.detail}}let c=`${i}:${o??""}`;if(t==="blocked"&&i&&c!==this.loggedProblem){this.loggedProblem=c;try{o?console.error("mdbase application blocked:",i,o):console.error("mdbase application blocked:",i)}catch{}}else t!=="blocked"&&(this.loggedProblem=null);this.snapshot=Object.freeze({...this.raw,status:t,problem:i,openingProgress:t==="opening"?e.checking?"checking_setup":this.raw.openingProgress??null:null,collections:Object.freeze(this.raw.collections.map(l=>Object.freeze({...l}))),readiness:e})}for(let e of[...this.listeners])try{e()}catch{}}retireOwn(){return this.retiring=!0,this.scope.retire()}settled(){return this.assessing=!1,this.publish(),this.snapshot}signal(e){return e.signal?AbortSignal.any([this.lifetime.signal,e.signal]):this.lifetime.signal}action(e,t){if(this.closed||t.aborted)return Promise.reject(new ni("application_fenced"));if(this.pending)return Promise.reject(new ni("application_busy"));this.assessing=!0;let i=Promise.resolve().then(async()=>{if(this.closed||t.aborted)throw new ni("application_fenced");let o=await e();if(this.closed||t.aborted)throw new ni("application_fenced");return o}).finally(async()=>{(this.assessing||this.retiring)&&(this.assessing=!1,this.retiring=!1,this.publish()),await this.worker.drain(),this.pending===i&&(this.pending=null)});return this.pending=i,i}async complete(e,t){if(this.closed||t.aborted)throw new ni("application_fenced");let i=!!(e.selectedCollectionId&&this.scope.connection(e.selectedCollectionId));if(this.raw=e,this.assessing=i,this.publish(),i){try{await this.scope.assess({signal:t}).catch(()=>{})}finally{this.assessing=!1}this.publish()}if(this.closed||t.aborted)throw new ni("application_fenced");return this.snapshot}start(e={}){let t=this.signal(e);return this.action(async()=>this.complete(await this.worker.request("start",null,t),t),t)}authorizeReserved(e,t={},i=null){let o=this.signal(t);return this.action(async()=>this.complete(await this.worker.request("authorize",i,o,e),o),o).catch(s=>{throw e.close(),s})}authorize(e={}){let t=this.signal(e),i;try{i=Yf(Jf(this.cpOrigin,t,()=>!this.closed,this.lab))}catch(o){return Promise.reject(o)}return this.authorizeReserved(i,e)}select(e,t={}){let i=this.signal(t);return this.action(async()=>{if(this.raw.selectedCollectionId===e&&(this.raw.status==="ready"||this.raw.status==="setup_required")&&this.scope.connection(e)?.isCurrent())return this.snapshot.status==="blocked"?this.complete(this.raw,i):this.snapshot;++this.epoch;let o=this.retireOwn();if(this.publish(),await o,this.closed||i.aborted)throw new ni("application_fenced");return this.complete(await this.worker.request("select",e,i),i)},i)}assess(e={}){let t=this.signal(e);return this.action(async()=>(await this.scope.assess({signal:t}),this.settled()),t).then(i=>i.readiness)}configure(e={}){let t=this.signal(e);return this.action(async()=>(await this.scope.configure({signal:t}),this.settled()),t)}planSetup(e={}){let t=this.signal(e);return this.closed||t.aborted?Promise.reject(new ni("application_fenced")):this.scope.planSetup({...e,signal:t})}applySetup(e,t={}){let i=this.signal(t);return this.action(async()=>(await this.scope.applySetup(e,{signal:i}),this.settled()),i)}clearSelection(e={}){let t=this.signal(e);return this.action(async()=>(++this.epoch,await this.retireOwn(),this.complete(await this.worker.request("clearSelection",null,t),t)),t)}forget(e,t={}){let i=this.signal(t);return this.action(async()=>(this.raw.selectedCollectionId===e&&(++this.epoch,await this.retireOwn()),this.complete(await this.worker.request("forget",e,i),i)),i)}refreshCollections(e={}){let t=this.signal(e);return this.action(async()=>(this.raw=await this.worker.request("refreshCollections",null,t),this.publish(),this.snapshot),t)}signOut(e={}){let t=this.signal(e),i=this.raw.selectedCollectionId,o=e.discard!==!0&&i?sC(this.scope.connection(i)):0;return o>0?Promise.reject(aC(o)):this.action(async()=>(++this.epoch,await this.retireOwn(),this.complete(await this.worker.request("signOut",null,t),t)),t)}deleteCollection(e,t,i={}){let o=this.signal(i);return this.action(async()=>(await this.worker.request("deleteCollection",[e,t],o),this.raw.selectedCollectionId===e&&(++this.epoch,await this.retireOwn()),this.complete(await this.worker.request("forget",e,o),o)),o)}requestFileAccess(e,t,i,o,s={}){let r=this.signal(s);return this.action(async()=>(this.raw=await this.worker.request("requestFileAccess",[t,i,o],r,e),this.publish(),this.snapshot),r).catch(a=>{throw e.close(),a})}pollFileAccess(e){let t=this.lifetime.signal;return this.action(async()=>(this.raw=await this.worker.request("pollFileAccess",e,t),this.publish(),this.snapshot),t)}setForeground(e){this.closed||this.worker.setForeground(e)}abandon(){this.closed||(this.closed=!0,this.stopped=!0,++this.epoch,this.unsubscribe(),this.listeners.clear(),this.closing=Promise.resolve(),this.worker.abandon(),this.lifetime.abort())}close(){return this.closing?this.closing:(this.closed=!0,++this.epoch,this.lifetime.abort(),this.unsubscribe(),this.closing=Promise.resolve().then(async()=>{await Promise.all([this.scope.close(),this.worker.close()]),await this.pending?.catch(()=>{}),this.stopped=!0,this.publish(),this.listeners.clear()}).catch(()=>{throw this.stopFailed=!0,this.publish(),new ni("application_stop_failed")}),this.publish(),this.closing)}}});var iM={};ls(iM,{ACCOUNT_KEY_STATES:()=>ly,API_VERSIONS:()=>od,AppHost:()=>Xw,COLLECTION_UNAVAILABLE_REASONS:()=>Dy,CborError:()=>Ie,Client:()=>Pd,DESCRIBE_TYPING_MAX_PATHS:()=>Pl,DESCRIBE_TYPING_MAX_TYPES:()=>Sl,DEVICE_KINDS:()=>ay,ERROR_CODES:()=>Pp,FilesApi:()=>_s,Float64:()=>yt,HOLD_COMPARE_SCHEME:()=>tc,HOLD_TITLE:()=>ec,IkInitiator:()=>Rs,IkResponder:()=>Jd,LiveQuery:()=>Ss,MAX_CONVENIENCE_BYTES:()=>sd,MAX_DEPTH:()=>em,MDBASE_NOTIFICATION_CLICK:()=>Qy,MDBASE_NOTIFICATION_TYPE:()=>Ql,MdbaseApplicationUnavailableError:()=>yp,MdbaseClient:()=>Ei,MdbaseConnect:()=>ol,MdbaseError:()=>pe,MdbasePeopleClient:()=>jr,NoiseError:()=>rt,PERSON_CONTRACT:()=>Hy,PROBLEM_CODES:()=>ik,PresenceApi:()=>ks,READ_MANY_MAX_CONCURRENCY:()=>Jm,READ_MANY_MAX_REFS:()=>Ym,RecordReader:()=>Il,SESSION_LIFETIME_MS:()=>My,SLOW_OPENING_MS:()=>gu,SchemaError:()=>ne,Session:()=>go,TEMPORAL_HINTS:()=>Fp,TimersApi:()=>Ns,WasmRuntime:()=>$s,Write:()=>_o,applicationPhase:()=>ic,approvalReadiness:()=>cA,bytesEqual:()=>VI,clientPrologue:()=>Ti,collectionUnavailableError:()=>un,compareVersions:()=>ag,connect:()=>hy,controlRouteResolver:()=>M0,createMdbase:()=>oI,createViewSource:()=>fd,decode:()=>ue,describeDiagnostic:()=>fu,describeError:()=>Lo,describeHold:()=>Y0,diffEdits:()=>Yp,duplexCarrier:()=>zy,effectiveCapabilities:()=>sI,encode:()=>ce,encodeSecret:()=>En,fileGrant:()=>Gm,formatSas:()=>uA,framedPort:()=>nd,fromHex:()=>cs,generateKeyPair:()=>Es,handleMdbaseNotificationClick:()=>H0,handleMdbasePush:()=>W0,holdCompareLink:()=>ig,holdNotice:()=>J0,inProcessConnector:()=>Ds,indexedDbKeyStorage:()=>Ky,isCollectionUnavailableReason:()=>Ls,isConfirmed:()=>T0,isErrorCode:()=>Sr,isMdbaseError:()=>oe,isReadyPhase:()=>dk,isValid:()=>BI,keyPairFromSecret:()=>b0,loadOrCreateClientKey:()=>R0,localLinkConnector:()=>x0,localLinkFirstPayload:()=>Fy,mdbaseError:()=>A,memoryKeyStorage:()=>Vy,memoryWriteLedgerStore:()=>wd,nextRelayConnector:()=>P0,noiseChannel:()=>Ly,noiseConnector:()=>Mi,orderTargets:()=>js,parseCollectionAvailability:()=>zn,parseHoldCompareLink:()=>G0,parseMdbaseNativeNotification:()=>eg,parseMdbasePush:()=>ru,parseVersion:()=>Ks,pipeCloseError:()=>To,portPair:()=>y_,problemCodeOf:()=>og,queryPages:()=>ld,readMany:()=>ad,readMdbaseNotificationData:()=>tg,readViewSourceRecord:()=>ud,recoveryFor:()=>HI,relayConnector:()=>A0,relayPipeCarrier:()=>Ms,resolveRecordLinks:()=>I_,revisionOf:()=>si,routeFromControl:()=>Wy,sameIdentity:()=>tu,showMdbaseNotification:()=>ng,staticKeyOf:()=>Gd,streamCarrier:()=>v0,structMap:()=>FI,summarizeStatus:()=>Qd,syncStatusText:()=>X0,toHex:()=>ri,toPlain:()=>bs,toValue:()=>ut,updateViewSource:()=>hd,uuidv7:()=>Ln,valueEquals:()=>Ir,versionRelation:()=>jo,webSocketCarrier:()=>qs,wire:()=>jm});Je();ge();ie();At();At();Ps();Xm();ny();ql();ql();iy();Rl();Ol();Oi();ge();ie();qo();Ts();Yl();function A0(n){let e=U(n.collection),t=n.grant?U(n.grant):null;return Mi({description:`relay:${n.collection}`,staticKey:n.staticKey,target:async()=>{let i=await n.resolveRoute();if(!i)throw A("unavailable","no device of this collection is online","no_device_online");return{prologue:Ti(e,t,U(i.targetDevice)),remoteStatic:i.noisePublicKey,device:i.targetDevice,openCarrier:o=>i.pipe?Ms(i.url,{accessToken:i.pipe.accessToken,collection:i.pipe.collection,grant:n.grant??"",device:i.targetDevice,devicePublicKey:i.noisePublicKey},n.webSocket,o):qs(i.url,n.webSocket,o)}}})}By();Ts();qo();Je();ge();ie();At();qo();Ts();var K1=new Uint8Array(16);function Fy(n,e){if(n.length!==32)throw A("invalid_request","the link token is 32 bytes");let t=Qi.dec(e);if(t.kind!=="request"||t.method!=="hello")throw A("internal","expected the hello request");return ce(new Map([[0,n],[1,t.params]]))}function x0(n){let e=U(n.collection),t=n.staticKey??Es(),i=null;return Mi({description:"localhost-link",staticKey:t,firstPayload:o=>Fy(i.token,o),target:async()=>{i=typeof n.link=="function"?await n.link():n.link;let o=i;if(!Number.isInteger(o.port)||o.port<=0||o.port>65535)throw A("unavailable","invalid local link port","daemon_not_running");let s=Ti(e,null,n.localOnly?K1:U(o.device));return{prologue:s,preamble:s,remoteStatic:o.noisePublicKey,openCarrier:r=>qs(`ws://127.0.0.1:${o.port}/v1/plugin`,n.webSocket,r)}}})}qy();ie();function Vy(){let n=new Map;return{get:async e=>n.get(e),put:async(e,t)=>{n.set(e,t)},putIfAbsent:async(e,t)=>{let i=n.get(e);return i||(n.set(e,t),t)},delete:async e=>{n.delete(e)}}}function Ky(n="mdbase-keys",e="keys"){let t=globalThis.indexedDB;if(!t)throw A("invalid_request","IndexedDB is not available here; pass another KeyStorage");let i=()=>new Promise((r,a)=>{let c=t.open(n,1);c.onupgradeneeded=()=>c.result.createObjectStore(e),c.onsuccess=()=>r(c.result),c.onerror=()=>a(c.error)}),o=async(r,a)=>{let c=await i();try{return await new Promise((l,p)=>{let d=c.transaction(e,r),u,f=!1;d.oncomplete=()=>f?l(u):p(A("unavailable","key storage transaction completed without a result","key_storage")),d.onabort=()=>p(d.error??A("unavailable","key storage transaction aborted","key_storage")),d.onerror=()=>p(d.error??A("unavailable","key storage transaction failed","key_storage"));try{a(d.objectStore(e),h=>{u=h,f=!0})}catch(h){d.abort(),p(h)}})}finally{c.close()}},s=(r,a)=>o(r,(c,l)=>{let p=a(c);p.onsuccess=()=>l(p.result)});return{get:r=>s("readonly",a=>a.get(r)),put:(r,a)=>s("readwrite",c=>c.put(a,r)).then(()=>{}),putIfAbsent:(r,a)=>o("readwrite",(c,l)=>{let p=c.get(r);p.onsuccess=()=>{if(p.result!==void 0){l(p.result);return}try{let d=c.add(a,r);d.onsuccess=()=>l(a)}catch{c.transaction.abort()}}}),delete:r=>s("readwrite",a=>a.delete(r)).then(()=>{})}}function O0(){return globalThis.crypto?.subtle}async function W1(){let n=O0();if(!n)return null;try{let e=await n.generateKey({name:"X25519"},!1,["deriveBits"]),t=new Uint8Array(await n.exportKey("raw",e.publicKey));return{kind:"webcrypto",privateKey:e.privateKey,publicKey:t}}catch{return null}}function H1(n){return n.kind==="raw"?{publicKey:n.publicKey,nonExtractable:!1,dh:e=>sr.getSharedSecret(n.secretKey,e)}:{publicKey:n.publicKey,nonExtractable:!n.privateKey.extractable,dh:async e=>{let t=O0(),i=await t.importKey("raw",e,{name:"X25519"},!1,[]),o=await t.deriveBits({name:"X25519",public:i},n.privateKey,256);return new Uint8Array(o)}}}var G1=Vy(),C0=new WeakMap;function I0(n,e){if(e&&(n.kind!=="webcrypto"||n.privateKey.extractable!==!1||n.privateKey.type!=="private"||n.privateKey.algorithm.name!=="X25519"||!n.privateKey.usages.includes("deriveBits")))throw A("invalid_request","a non-extractable X25519 key is required; explicitly reauthorize incompatible stored identities","key_storage")}async function R0(n,e={}){let t=e.storage??(globalThis.indexedDB?Ky():G1),i=e.requireNonExtractable,o=C0.get(t);o||(o=new Map,C0.set(t,o));let s=o.get(n);s||(s=(async()=>{let r=await t.get(n);if(r)return r;let a=await W1();if(!a){if(i)throw A("invalid_request","this platform cannot keep a non-extractable X25519 key","key_storage");let c=sr.utils.randomSecretKey();a={kind:"raw",secretKey:c,publicKey:sr.getPublicKey(c)}}return I0(a,i),t.putIfAbsent?t.putIfAbsent(n,a):(await t.put(n,a),a)})(),o.set(n,s));try{let r=await s;return I0(r,i),H1(r)}finally{o.get(n)===s&&o.delete(n)}}cy();var E0={collection_not_yet_migrated:"Your collection needs an upgrade on your computer; your changes are safe",collection_migrating:"Your collection is being upgraded; changes will sync when it's done",update_required:"Update the app to keep syncing",account_suspended:"Syncing is paused: your account is suspended"},q0={offline:"You're offline",unreachable:"Can't reach the sync service",server_busy:"The sync service is busy; trying again shortly",rate_limited:"Syncing is paused for a moment",auth:"Sign in again to keep syncing"};function Qd(n,e,t,i){let o=n.mode!=="local_only"&&t&&Object.hasOwn(q0,t.kind)?t.kind:null,s={pending:n.pending,holds:n.holds,conflicts:n.unresolved,confirmedThrough:n.mode==="local_only"?null:n.confirmedThrough,health:o,live:n.mode==="local_only"||typeof i!="boolean"?null:i},r=n.pending>0?`, ${n.pending} change${n.pending===1?"":"s"} waiting`:"";if(n.mode==="local_only")return{...s,kind:"local",text:n.pending?`Saving${r}`:"Saved on this device"};if(e&&Object.hasOwn(E0,e))return{...s,kind:e,text:`${E0[e]}${r}`};if(n.installing)return{...s,kind:"installing",text:`Loading the collection (${n.installing.done}/${n.installing.total})`};if(o){let c=n.pending?`. ${n.pending} change${n.pending===1?" is":"s are"} saved on this device and will sync later`:"";return{...s,kind:o==="offline"||o==="unreachable"?"offline":n.confirmedThrough<n.headKnown?"catching_up":"synced",text:`${q0[o]}${c}`}}if(n.connection!=="online")return{...s,kind:"offline",text:`Offline; synced through ${n.confirmedThrough}${r}`};if(n.confirmedThrough<n.headKnown)return{...s,kind:"catching_up",text:`Catching up (${n.confirmedThrough}/${n.headKnown})${r}`};let a=s.live===!1?". Live updates are paused; changes from other devices appear when you come back to this app":"";return{...s,kind:"synced",text:`Synced through ${n.confirmedThrough}${r}${a}`}}function T0(n){return n.state==="confirmed"}dy();Yl();Xd();Je();Lr();ie();function Wy(n,e){for(let t of n.targets??[]){if(!/^[0-9a-f]{64}$/i.test(t.noise_pk)||!t.url||!t.device)continue;let i={url:t.url,targetDevice:t.device,noisePublicKey:cs(t.noise_pk)};return t.relay_collection&&(i.pipe={collection:t.relay_collection,accessToken:e}),i}return null}function M0(n){let e;try{e=new URL(n.server)}catch{throw A("invalid_request","The control plane requires an HTTPS origin")}if(e.protocol!=="https:"&&!!1||e.username||e.password||e.pathname!=="/"||e.search||e.hash)throw A("invalid_request","The control plane requires an HTTPS origin without credentials, path, query or fragment");let t=`${e.origin}/v1/next/collections/${encodeURIComponent(n.collection)}/route`,i=n.fetch??globalThis.fetch.bind(globalThis);return async()=>{let o=await n.accessToken(),s;try{s=await i(t,{headers:{authorization:`Bearer ${o}`},redirect:"error"})}catch{throw A("unavailable","cannot reach the control plane","control_unreachable")}if(s.status===401)throw A("unauthenticated","the control plane refused the access token");if(s.status===409)throw A("unauthenticated","this app's key is not registered with its grant","client_key_required");if(!s.ok)throw A("unavailable",`control plane answered ${s.status}`,"control_error");let r=await s.json(),a=zn(r.availability);if(a?.state==="unavailable")throw un(a.reason);let c=Wy(r,o);if(!c&&r.reason==="no_device_registered")throw A("unavailable","this collection has no device set up to serve it","no_device_registered");return c}}Lr();nu();Xy();ie();var Ql="mdbase.notification",Qy="mdbase.notification.click",z0=/^[\x21-\x7e]{1,256}$/,nR=/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/,Nr=n=>A("invalid_request",n,"invalid_push_payload"),iR=()=>A("upgrade_required","The push uses an envelope version this SDK does not support.","unsupported_push_version");function F0(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{throw Nr("The push payload is not JSON.")}else if(n&&typeof n=="object"&&typeof n.json=="function")try{n=n.json()}catch{throw Nr("The push payload is not JSON.")}if(!n||typeof n!="object"||Array.isArray(n))throw Nr("The push payload is not an object.");return n}function Us(n,e,t){return typeof n=="string"&&n.length>=e&&n.length<=t}function V0(n){if(!n||typeof n!="object"||Array.isArray(n))return null;let e=n;return!Us(e.title,1,80)||e.body!==void 0&&!Us(e.body,0,160)||e.tag!==void 0&&!Us(e.tag,1,80)?null:Object.freeze({title:e.title,...typeof e.body=="string"&&e.body.length?{body:e.body}:{},...typeof e.tag=="string"?{tag:e.tag}:{}})}function K0(n,e,t){if(n.type!==Ql)throw Nr("The payload is not an mdbase notification.");if(e!==1)throw typeof e=="number"&&Number.isSafeInteger(e)&&e>1?iR():Nr("The payload has no valid envelope version.");if(!Us(n.signal_id,1,256)||!z0.test(n.signal_id)||!Us(n.cursor,1,256)||!z0.test(n.cursor)||!Us(n.criterion_id,1,100)||!nR.test(n.criterion_id))throw Nr("The payload is not an mdbase notification.");return Object.freeze({version:1,signalId:n.signal_id,criterionId:n.criterion_id,cursor:n.cursor,presentation:t})}function ru(n){let e=F0(n),t=K0(e,e.version,V0(e.presentation));if(!t.presentation)throw Nr("The push has no valid presentation.");return t}function eg(n){if(!n||typeof n!="object"||Array.isArray(n))throw Nr("The native notification data is not an object.");let e=n,t=typeof e.version=="string"&&/^[1-9][0-9]{0,8}$/.test(e.version)?Number(e.version):e.version;return K0(e,t,null)}function tg(n){try{return eg(n)}catch{return null}}function rR(n){return{type:Ql,version:n.version,signal_id:n.signalId,criterion_id:n.criterionId,cursor:n.cursor}}async function ng(n,e,t={}){let i=ru(e),o=i.presentation;return await n.showNotification(o.title,{...o.body?{body:o.body}:{},...o.tag?{tag:o.tag}:{},...t.icon?{icon:t.icon}:{},...t.badge?{badge:t.badge}:{},data:rR(i)}),i}function Zy(n){return globalThis[n]}function oR(n){let e=globalThis.location;if(typeof e?.origin=="string"&&e.origin!=="null")return e.origin;try{return n?new URL(n).origin:null}catch{return null}}function B0(n,e,t){let i=()=>A("invalid_request",`The notification click ${t} must be on the app's own origin.`,"click_target_cross_origin");if(typeof n!="string")throw i();if(e===null){if(!n.startsWith("/")||n.startsWith("//")||n.startsWith("/\\"))throw i();return n}let o;try{o=new URL(n,`${e}/`)}catch{throw i()}if(o.origin!==e)throw i();return o.href}function W0(n,e={}){let t;try{t=F0(n.data?.text()??null)}catch{return!1}if(t.type!==Ql)return!1;let i=e.registration??Zy("registration");if(!i)throw A("invalid_request","No service worker registration to show the notification.","push_registration_missing");let o={...e.icon?{icon:e.icon}:{},...e.badge?{badge:e.badge}:{}};return n.waitUntil((async()=>{try{ru(t)}catch(s){let r=s instanceof pe&&s.reason==="unsupported_push_version"?V0(t.presentation):null;if(!r)throw s;return await i.showNotification(r.title,{...r.body?{body:r.body}:{},...r.tag?{tag:r.tag}:{},...o}),null}return ng(i,t,o)})()),!0}function H0(n,e={}){let t=tg(n.notification.data);if(!t)return!1;n.notification.close();let i=e.clients??Zy("clients"),o=Zy("registration")?.scope,s=oR(o),r=e.scope===void 0?o:B0(e.scope,s,"scope"),a=e.url===void 0?r??"/":B0(e.url,s,"url");return i&&n.waitUntil((async()=>{let l=(await i.matchAll({type:"window",includeUncontrolled:!0})).find(d=>!r||d.url.startsWith(r));if(!l)return i.openWindow(a);await l.focus();let p={type:Qy,notification:t};return l.postMessage(p),l})()),!0}ou();Je();ie();ge();var $s=class n{constructor(e){this.instance=e}instance;ports=new Map;timer=null;opened=!1;get x(){if(!this.instance)throw A("unavailable","runtime instance was discarded after an ABI failure");return this.instance}discard(){this.instance=null,this.timer&&clearInterval(this.timer),this.timer=null;for(let e of[...this.ports.values()])e.end();this.ports.clear()}static async instantiate(e){return new n(await this.load(e))}static async load(e,t){let i=null,o=null,s=t?.(()=>{if(!o)throw A("unavailable","runtime imports called before initialization");return o})??{},r=new TextDecoder,a={host_app_sql:(p,d)=>0n,host_now_ms:()=>Date.now(),host_local_date:(p,d,u,f)=>{try{let h=r.decode(new Uint8Array(i.buffer,d,u)),m=new Intl.DateTimeFormat("en-CA",{timeZone:h,year:"numeric",month:"2-digit",day:"2-digit"}).format(p);return/^\d{4}-\d{2}-\d{2}$/.test(m)?(new Uint8Array(i.buffer,f,10).set(new TextEncoder().encode(m)),10):0}catch{return 0}},host_default_zone:(p,d)=>{let u=new TextEncoder().encode(Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"),f=Math.min(u.length,d);return new Uint8Array(i.buffer,p,f).set(u.subarray(0,f)),f},host_random:(p,d)=>{let u=new Uint8Array(i.buffer,p,d);for(let f=0;f<d;f+=65536)globalThis.crypto.getRandomValues(u.subarray(f,f+65536))}},{instance:c}=await WebAssembly.instantiate(e,{env:{...a,...s}}),l=c.exports;return o=l,i=l.memory,l}put(e){if(e.length===0)return[0,0];let t=this.x.alloc(e.length);return new Uint8Array(this.x.memory.buffer,t,e.length).set(e),[t,e.length]}takeOut(e){let t=Number(e>>32n),i=Number(e&0xffffffffn);if(i===0)return new Uint8Array(0);let o=new Uint8Array(this.x.memory.buffer,t,i).slice();return this.x.dealloc(t,i),o}info(){let e=ue(this.takeOut(this.x.rt_info())),t=i=>{let[o,s]=i;return{major:o,minor:s}};return{abiMajor:e.get(0),runtimeVersion:e.get(1),sem:t(e.get(2)),serves:e.get(3).map(t)}}open(e){let t=this.x;if(this.opened)throw A("unavailable","runtime is already open");let i=e.queryExecutionProfile,o;if(i!==void 0){if(i!=="memory_constrained"&&i!=="desktop")throw A("invalid_request","unknown query execution profile");if(typeof t.rt_open_profile!="function")throw A("unavailable","runtime does not support explicit query profile initialization");o=i==="memory_constrained"?0:1}let s=En(new Map([[0,U(e.collection)],[1,U(e.replicaId)],[2,U(e.deviceId)],[3,e.mode==="local_only"?0:1],[4,e.signSecretKey],[5,e.kemSecretKey],[6,e.e2e??!1]])),r;try{let a=this.put(s);r=this.takeOut(o===void 0?t.rt_open(...a):t.rt_open_profile(...a,o))}catch(a){throw this.discard(),a}finally{s.fill(0)}if(r.length)throw A("unavailable",`runtime failed to open: ${new TextDecoder().decode(r)}`);this.markOpened()}markOpened(){this.opened=!0,this.timer??=setInterval(()=>this.tick(),1e3),this.timer.unref?.()}tick(){this.x.rt_tick(Date.now()),this.flush()}connect(e={}){let t=null,i=!1,o=[],s={onframe:null,onclose:null,send:r=>{if(i)throw A("unavailable","port closed");let a=ce(r);if(t===null){let c=e.grant&&e.clientKey?new Uint8Array([...U(e.grant),...e.clientKey]):new Uint8Array(0),l=ue(this.takeOut(this.x.rt_hello(...this.put(c),...this.put(a)))),p=BigInt(l[0]),d=ue(l[1]);queueMicrotask(()=>{s.onframe?.(d),p===0n&&s.end()}),p!==0n&&(t=p,this.ports.set(p,s),this.flush());return}this.x.rt_frame(t,...this.put(a)),this.flush()},close:()=>{i||(i=!0,t!==null&&(this.ports.delete(t),this.x.rt_close(t)),s.onclose?.())},deliver:r=>s.onframe?s.onframe(r):o.push(r),end:()=>{i||(i=!0,t!==null&&this.ports.delete(t),s.onclose?.())}};return s}sessionForPort(e){for(let[t,i]of this.ports)if(i===e)return t;return null}flush(){let e=this.takeOut(this.x.rt_poll());if(!e.length)return;let t=ue(e),i=new Set(t.filter(o=>o[1]===null).map(o=>BigInt(o[0])));for(let o of t){let[s,r]=o,a=this.ports.get(BigInt(s));if(a)if(r===null)a.end();else{let c=ue(r);if(i.has(BigInt(s))){if(c instanceof Map){let l=c;l.get(0)===2&&l.get(1)==="closed"&&a.deliver(c)}}else queueMicrotask(()=>a.deliver(c))}}}dispose(){this.timer&&clearInterval(this.timer);for(let e of[...this.ports.values()])e.close()}};var ec="mdbase protected your edit",sR={conflict:{cause:"This file was also changed on another device while you were editing it.",detail:"Your version is kept here and is not synced until you choose what to keep."},unknown_provenance:{cause:"This file changed on disk in a way mdbase could not trace to an app or a sync.",detail:"The bytes on disk are kept here and are not synced until you confirm them."},deleted_elsewhere:{cause:"This file was deleted on another device after you edited it.",detail:"Your version is kept here; nothing is deleted until you choose."},read_only:{cause:"Changed with view access.",detail:"Edit access will not sync these changes. Submit or discard them."},editor_busy:{cause:"An editor still has this file open with unsaved changes.",detail:"mdbase waits so that it never overwrites what you are typing."},suspect_write:{cause:"The last write to this file looked incomplete, for example after a crash.",detail:"The file is kept aside and is not synced until you confirm it."}},aR={keep_mine:{label:"Keep mine",description:"Sync the version on this device.",resolution:"keep_mine",needs:"records.edit",discardsMine:!1},take_theirs:{label:"Take theirs",description:"Replace this file with the synced version.",resolution:"take_theirs",needs:"records.edit",discardsMine:!0},keep_both:{label:"Keep both",description:"Save your version as a copy next to the synced one.",resolution:"keep_both",needs:"records.edit",discardsMine:!1},delete:{label:"Delete",description:"Accept the deletion and remove this file here too.",resolution:"delete",needs:"records.delete",discardsMine:!0},use:{label:"Use merged",description:"Sync the document you merged.",resolution:"use",needs:"records.edit",discardsMine:!1},compare:{label:"Compare side by side",description:"Open both versions to merge them.",discardsMine:!1}},lR={conflict:["keep_mine","take_theirs","compare","keep_both"],unknown_provenance:["keep_mine","take_theirs","compare","keep_both"],deleted_elsewhere:["keep_mine","delete"],read_only:["keep_mine","take_theirs","compare","keep_both"],editor_busy:["keep_mine","take_theirs","compare"],suspect_write:["keep_mine","take_theirs","compare","keep_both"]},tc="mdbase://hold/compare",su=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function ig(n,e){if(!su.test(n)||!su.test(e))throw new Error("holdCompareLink: collection and id are UUIDs");return`${tc}?collection=${n.toLowerCase()}&id=${e.toLowerCase()}`}function G0(n){if(typeof n!="string"||n.length>512||!n.startsWith(`${tc}?`))return null;let e=new URLSearchParams(n.slice(tc.length+1)),t=e.get("collection")??"",i=e.get("id")??"";return!su.test(t)||!su.test(i)?null:{collectionId:t.toLowerCase(),id:i.toLowerCase()}}function Y0(n,e){let t=n.reason==="read_only",i=n.theirs!==void 0,o=(e.canCompare??!0)&&i,s=c=>!c||!e.capabilities||e.capabilities.includes(c),r=lR[n.reason].filter(c=>c==="compare"?o:(!t||e.host===!0)&&(c!=="take_theirs"||i||t)).map(c=>{let l={action:c,...aR[c]};return t&&c==="take_theirs"&&(l.label="Discard local changes",l.description="Discard unsynced changes on this device.",l.needs="collection.read"),l}).filter(c=>s(c.needs)),a=sR[n.reason];return{id:n.id,path:n.path,reason:n.reason,title:ec,cause:a.cause,detail:a.detail,since:n.since,saves:n.saves,hasTheirs:i,actions:r,reversible:!t,reversibleNote:t?"Copy before discarding.":"You can change your mind later: resolving is an ordinary change, and the previous version stays in the collection's history. Keep both if you want your version kept as a file as well.",compareLink:o?ig(e.collectionId,n.id):null}}function J0(n){return n.length?n.length===1?`${ec}: ${n[0].path} is waiting for your choice.`:`${ec}: ${n.length} files are waiting for your choice.`:null}function X0(n){let e=(i,o)=>`${i} ${o}`,t=`, plus ${e(n.pending,"pending")}, plus ${e(n.holds,"held")}`;return n.mode==="local_only"?`Saved on this device${t}`:`Confirmed through ${n.confirmedThrough}${t}`}nc();mu();nc();var gu=15e3,pk=(n,e)=>{try{return!!n&&n.id===e&&n.isCurrent()}catch{return!1}},yu=(n,e)=>Lo(n,e?{cpOrigin:e}:{}),Ws=(n,e)=>yu(n,e);function ic(n,e={}){let t=CR(n,e),i=IR(t,n,e);return i.kind==="opening"&&n.status==="opening"&&n.selectedCollectionId===i.collectionId&&n.openingProgress?{...i,progress:n.openingProgress}:i}function CR(n,e){let t=e.cpOrigin,i=n.selection,o=i?.requested??null;if(n.status==="closed")return{kind:"closed"};if(n.problem==="application_not_yet_available"||n.problem==="application_worker_unavailable"||n.problem==="browser_unsupported"||n.problem==="application_storage_unavailable")return{kind:"unavailable",problem:Ws(n.problem,t)};if(i?.state==="invalid")return{kind:"problem",collectionId:null,problem:Ws(i.problem??"application_selection_invalid",t)};let s=n.signIn?.state==="paired";if(i?.state==="approving"||n.status==="authorizing"){let l=i?.approval??null;return s?l?.kind==="add"?{kind:"authorizing",purpose:"add",collectionId:null}:{kind:"authorizing",purpose:"approve",collectionId:l?.collectionId??o?.collectionId??null}:{kind:"authorizing",purpose:"sign_in",collectionId:l?.collectionId??o?.collectionId??null}}if(n.status==="not_started"||n.status==="starting"){let l=o?.collectionId??null;return l&&n.status==="starting"?{kind:"opening",collectionId:l,displayName:o?.displayName??null,slow:!!e.slow}:{kind:"starting"}}if(n.status==="signed_out")return{kind:"signed_out",notice:n.problem?yu(n,t):null};if(n.status==="blocked"){let l=n.selectedCollectionId??o?.collectionId??null;return n.problem==="recovery_account_mismatch"?{kind:"problem",collectionId:l,problem:Lo(n,{cpOrigin:t,recoveryAccountLabel:n.recoveryAccountLabel})}:{kind:"problem",collectionId:l,problem:l&&n.removedScopeIds?.includes(l)?Ws("installation_scope_removed",t):yu(n,t)??Ws("open_failed",t)}}if(i?.state==="approval_required"&&o?.collectionId&&n.removedScopeIds?.includes(o.collectionId))return{kind:"problem",collectionId:o.collectionId,problem:Ws("installation_scope_removed",t)};if(i?.state==="approval_required"&&o?.collectionId)return{kind:"needs_approval",collectionId:o.collectionId,displayName:o.displayName,declined:i.problem==="application_selection_not_approved"};if(i?.state==="pending"&&o?.collectionId)return{kind:"opening",collectionId:o.collectionId,displayName:o.displayName,slow:!!e.slow};let r=i?.usable??(n.status==="ready"||n.status==="setup_required"?n.collections.find(l=>l.collectionId===n.selectedCollectionId)??null:null);if(n.status==="setup_required"&&r)return n.readiness.assessment?.status==="incompatible"?{kind:"problem",collectionId:r.collectionId,problem:yu(n.readiness,t)??Ws("incompatible",t)}:{kind:"needs_setup",collectionId:r.collectionId,collection:r};if(n.status==="ready"&&r&&pk(e.connection,r.collectionId))return{kind:"ready",collectionId:r.collectionId,collection:r,connection:e.connection,rechecking:n.readiness.checking,problem:null,unavailableTypes:n.readiness.assessment?.unavailableTypes??[]};let a=n.status==="opening"||n.status==="ready"||i?.state==="opening"||i?.state==="usable",c=n.selectedCollectionId??o?.collectionId??null;if(a&&c){let l=n.collections.find(p=>p.collectionId===c)?.displayName??o?.displayName??null;return{kind:"opening",collectionId:c,displayName:l,slow:!!e.slow}}return{kind:"choosing",lastApproval:i?.lastApproval??null}}function IR(n,e,t){let i=t.previous;return i?.kind==="needs_setup"&&n.kind==="opening"&&n.collectionId===i.collectionId&&e.selectedCollectionId===i.collectionId&&e.readiness.checking?i:!i||i.kind!=="ready"||n.kind==="ready"||!pk(t.connection,i.collectionId)||e.selectedCollectionId!==i.collectionId?n:n.kind==="opening"&&n.collectionId===i.collectionId?{...i,connection:t.connection,rechecking:!0,problem:null}:n.kind==="problem"&&n.problem.transient?{...i,connection:t.connection,rechecking:!0,problem:n.problem}:n}function dk(n,e){return n?.kind==="ready"&&(e===void 0||n.collectionId===e)}Ea();nc();Jn();Cf();Ia();bt();var oq=["http","https","file","javascript","data","blob","about","capacitor","chrome-extension","moz-extension"];function AP(n,e,t){if(typeof n!="string"||!n||n.length>2048||n.includes("*"))return!1;let i=e&&typeof e=="object"?e.redirect_uris:void 0;if(!Array.isArray(i)||!i.includes(n))return!1;let{id:o,homepage:s,platform:r}=e,a;try{a=new URL(n)}catch{return!1}if(a.username||a.password||a.hash)return!1;if(a.protocol==="https:"||a.protocol==="http:"){let l;try{l=new URL(String(s))}catch{return!1}return a.origin===l.origin&&(a.protocol==="https:"||r==="native"&&mr(a.origin)||t&&ot(a.origin))}let c=a.protocol.slice(0,-1);return typeof o=="string"&&c.includes(".")&&/^[a-z][a-z0-9+.-]*$/.test(c)&&!oq.includes(c)&&(c===o||c.startsWith(`${o}.`))&&a.hostname.length>0}qf();Qr();Jn();ie();If();bt();var Bo={runtime:{sha256:"b4e5b26f101072655d8c880c2355a044cb7afb6e4ffbbdef403db2dda9358010",bytes:3782199,maxBytes:3782199,source:{repository:"mdbase-dev/mdbase-connect",commit:"1e6b83c6b338b8ce708de7e2cbddb05992d8dc11"}},sqlite:{sha256:"2ee8f3dab694532afc8840e07703127287662d08b74e6ff50491ce63f00d5752",bytes:868907,maxBytes:11e5,initializer:{sha256:"a6d3fe46aa3f924e7686329f97b0564549ef1f787e0c19924179aef7f72bcc01",bytes:642742},asyncProxy:{sha256:"9f1970e05ee07a79332498858740b705eeb1dcee03bc150f6f690bc0fb5f0a06",bytes:32505}}};var Tf={},dq=Object.freeze({sha256:Bo.runtime.sha256,bytes:Bo.runtime.bytes,maxBytes:Bo.runtime.maxBytes}),uq=Object.freeze({sha256:Bo.sqlite.sha256,bytes:Bo.sqlite.bytes,maxBytes:Bo.sqlite.maxBytes}),zc=()=>A("unavailable","SDK packaged application assets unavailable","application_packaged_assets_unavailable");function OP(n,e,t){if(!Oa(n))throw zc();let i=zo();Xn({environment:n,appOrigin:e,platform:t,release:i});let o,s;try{let c=new URL(Tf.url);if(xn(c)!==e||c.username||c.password||c.search||c.hash||(o=new URL("../native/runtime.wasm",Tf.url),s=new URL("../native/sqlite3.wasm",Tf.url),xn(o)!==e||xn(s)!==e))throw zc()}catch{throw zc()}let r=(c,l)=>Object.freeze({url:c.href,...l}),a=async c=>{let l=globalThis.WorkerGlobalScope;if(typeof l!="function"||!(globalThis instanceof l))throw zc();let p=new URL("../native/sqlite3.js",Tf.url),{default:d}=await import(p.href);return globalThis.sqlite3ApiConfig={disable:{vfs:{opfs:!0,"opfs-wl":!0}}},d(c)};return Object.freeze({release:()=>zo(),runtime:r(o,dq),sqlite:r(s,uq),initializeSqlite:a})}If();bt();Qr();Jn();var Vt=class extends Error{constructor(t){super("SDK collection selection unavailable");this.code=t;this.name="ApplicationSelectionError"}code},Bc=n=>typeof n=="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(n)&&n!=="00000000-0000-0000-0000-000000000000",Ft=(n,e,t=null)=>Object.freeze({requestedCollectionId:n,source:e,problem:t});function RP(n,e){return n.source!=="none"?n:e.storedId!==void 0&&e.storedId!==null?Bc(e.storedId)?Ft(e.storedId,"stored"):Ft(null,"stored","application_selection_invalid"):e.collections.length>1024||e.collections.some(t=>!Bc(t.collectionId))||new Set(e.collections.map(t=>t.collectionId)).size!==e.collections.length?Ft(null,"none","application_selection_metadata"):e.preferredId!==void 0&&e.preferredId!==null?Bc(e.preferredId)&&e.collections.some(t=>t.collectionId===e.preferredId)?Ft(e.preferredId,"preferred"):Ft(null,"preferred","application_selection_metadata"):e.collections.length===1?Ft(e.collections[0].collectionId,"sole"):Ft(null,"none")}var Mf=class{port;origin;parameter;fallback;listeners=new Set;snapshot=Ft(null,"none");stopListening=null;started=!1;closed=!1;constructor(e,t={},i=null){let o,s;try{o=new URL(e),s=new URL(t.fallbackPath??"/",o)}catch{throw new Vt("application_selection_binding")}let r=t.parameter??"collection";if(!Lt(e,!0)||xn(o)!==e||xn(s)!==e||s.username||s.password||s.search||s.hash||typeof r!="string"||!/^[a-z][a-zA-Z0-9_.-]{0,63}$/.test(r)||["code","state","error","error_description"].includes(r))throw new Vt("application_selection_binding");this.origin=e,this.parameter=r,this.fallback=s.href,this.port=i}getSnapshot(){return this.snapshot}subscribe(e){return this.check(),this.listeners.add(e),()=>{this.listeners.delete(e)}}start(){return this.check(),this.started?this.snapshot:(this.started=!0,this.stopListening=this.port?.listen(()=>{this.closed||this.publish(this.read())})??null,this.publish(this.read()),this.snapshot)}check(){if(this.closed)throw new Vt("application_selection_fenced")}url(){let e;try{e=new URL(this.port.href())}catch{throw new Vt("application_selection_binding")}if(xn(e)!==this.origin||e.username||e.password)throw new Vt("application_selection_binding");return e}read(){if(!this.port)return Ft(null,"none");let e;try{e=this.url().searchParams.getAll(this.parameter)}catch{return Ft(null,"url","application_selection_binding")}return e.length===0?Ft(null,"none"):e.length!==1?Ft(null,"url","application_selection_duplicate"):e[0]===""?Ft(null,"url","application_selection_empty"):Bc(e[0])?Ft(e[0],"url"):Ft(null,"url","application_selection_invalid")}publish(e){if(!(this.snapshot.requestedCollectionId===e.requestedCollectionId&&this.snapshot.source===e.source&&this.snapshot.problem===e.problem)){this.snapshot=e;for(let t of[...this.listeners])try{t()}catch{}}}select(e,t={}){if(this.check(),e!==null&&!Bc(e))throw new Vt("application_selection_invalid");let i=t.history??"replace";if(i!=="push"&&i!=="replace")throw new Vt("application_selection_binding");if(this.port){let o=this.url(),s=o.href;e===null?o.searchParams.delete(this.parameter):o.searchParams.set(this.parameter,e),o.href!==s&&this.port.write(o.href,i)}return this.publish(Ft(e,e===null?"none":"user")),this.snapshot}returnUrl(e){this.check();try{let t=new URL(e,this.origin);if(xn(t)===this.origin&&!t.username&&!t.password)return t.href}catch{}return this.fallback}close(){if(this.closed)return;this.closed=!0;let e=this.stopListening;this.stopListening=null,e?.(),this.listeners.clear()}};function EP(){if(typeof window>"u"||!window.location||!window.history)return null;let n=window;return Object.freeze({href:()=>n.location.href,write:(e,t)=>{t==="push"?n.history.pushState(n.history.state,"",e):n.history.replaceState(n.history.state,"",e)},listen:e=>(n.addEventListener("popstate",e),()=>n.removeEventListener("popstate",e))})}var fq=n=>typeof n=="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(n)&&n!=="00000000-0000-0000-0000-000000000000",qa=n=>n.status==="ready"||n.status==="setup_required",qP=n=>n.signIn?.state==="paired"&&(n.status==="unselected"||n.status==="blocked"||qa(n)),hq=n=>n.status==="not_started"||n.status==="starting"||n.status==="signed_out"||n.status==="authorizing",Fi=(n,e)=>e===null?null:n.collections.find(t=>t.collectionId===e)??null,Lf=class{browser;session;memory;preferredId;schedule;listeners=new Set;stops=[];value;key="";startTarget=null;startApplied=!1;attempted=void 0;lastRequested=null;opening=null;approval=null;lastApproval=null;declined=null;remembered=void 0;queued=!1;started=!1;closed=!1;constructor(e){this.browser=e.browser,this.session=e.session,this.memory=e.memory??null,this.preferredId=e.preferredId??null,this.schedule=e.schedule??(t=>{setTimeout(t,0)}),this.value=this.derive(),this.key=JSON.stringify(this.value)}getSnapshot(){return this.value}subscribe(e){return this.check(),this.listeners.add(e),()=>{this.listeners.delete(e)}}start(){return this.check(),this.started?this.value:(this.started=!0,this.browser.start(),this.stops.push(this.browser.subscribe(this.changed),this.session.subscribe(this.changed)),this.changed(),this.value)}select(e,t={}){this.check(),this.startTarget=null,this.browser.select(e,t.history?{history:t.history}:{}),this.declined=null,this.refresh(),e===null&&this.remember(null);let i=this.session.getSnapshot();return e!==null&&i.selectedCollectionId===e&&i.status==="opening"?(this.attempted=e,Promise.resolve(this.value)):this.whenIdle(async()=>{let o=this.session.getSnapshot();this.requested().requestedCollectionId===e&&((e===null?o.selectedCollectionId===null&&o.status!=="opening":o.selectedCollectionId===e&&qa(o)||!Fi(o,e))||await this.run(e,t,!0))}).then(()=>this.value)}chooseAnother(e={}){return this.select(null,{...e,history:"push"})}approve(e,t={}){if(this.check(),e!=null&&!fq(e))return Promise.reject(new Vt("application_selection_invalid"));if(this.approval&&!this.approval.settled)return Promise.reject(new Vt("application_selection_busy"));e!=null&&e!==this.requested().requestedCollectionId&&(this.startTarget=null,this.browser.select(e,t.history?{history:t.history}:{}));let i=this.session.getSnapshot().signIn,o=i?.nativeSelection?.requestId??i?.collectionSelection?.requestId??null,s,r=e===null?null:this.requested().requestedCollectionId;try{s=this.session.authorize({...t.signal?{signal:t.signal}:{},collectionHint:r})}catch(p){return Promise.reject(p)}let a=r===null?"add":"collection",c=new Set(this.session.getSnapshot().collections.map(p=>p.collectionId)),l={receipt:o,kind:a,collectionId:r,before:c,settled:!1};return this.approval=l,this.lastApproval=null,this.declined=null,this.attempted=void 0,this.refresh(),s.then(()=>(l.settled=!0,this.changed(),this.value),p=>{if(this.approval===l){this.approval=null;let d=p?.code;(d==="cancelled"||d==="aborted")&&(this.lastApproval=Object.freeze({kind:a,outcome:"closed",collectionId:r}))}throw this.changed(),p})}clearLastApproval(){this.check(),this.lastApproval=null,this.refresh()}reauthorize(e={}){this.check();let t=this.value.usable?.collectionId??this.requested().requestedCollectionId;return t===null?Promise.reject(new Vt("application_selection_empty")):this.approve(t,e)}resync(){this.closed||(this.attempted=void 0,this.approval=null,this.changed())}close(){if(!this.closed){this.closed=!0;for(let e of this.stops.splice(0))try{e()}catch{}this.browser.close(),this.listeners.clear()}}check(){if(this.closed)throw new Vt("application_selection_fenced")}requested(){let e=this.browser.getSnapshot(),t=this.startTarget;return t&&e.source==="user"&&e.requestedCollectionId===t.requestedCollectionId?t:e}changed=()=>{this.closed||(this.refresh(),!(this.queued||!this.started)&&(this.queued=!0,this.schedule(()=>{this.queued=!1,this.reconcile()})))};refresh(){let e=this.requested().requestedCollectionId;e!==this.lastRequested&&(this.lastRequested=e,this.attempted=void 0,this.declined!==e&&(this.declined=null));let t=this.derive(),i=JSON.stringify(t);if(t.state==="usable"&&this.remember(t.usable.collectionId),i!==this.key){this.key=i,this.value=Object.freeze(t);for(let o of[...this.listeners])try{o()}catch{}}}remember(e){if(!(!this.memory||this.remembered===e)){this.remembered=e;try{this.memory.write(e)}catch{}}}derive(){let e=this.session.getSnapshot(),t=this.requested(),i=t.requestedCollectionId,o=Fi(e,i),s=qa(e)?Fi(e,e.selectedCollectionId):null,r,a=null;t.problem?(r="invalid",a=t.problem):this.approval?r="approving":i===null?r="none":s?.collectionId===i?r="usable":e.selectedCollectionId===i&&(e.status==="blocked"||e.status==="opening")?r=e.status==="blocked"?"blocked":"opening":qP(e)?o?r="opening":this.session.listing?.()?r="pending":(r="approval_required",this.declined===i&&(a="application_selection_not_approved")):r="pending";let c=this.approval?Object.freeze({kind:this.approval.kind,collectionId:this.approval.collectionId,reopenable:this.approval.settled}):null;return Object.freeze({state:r,problem:a,approval:c,lastApproval:this.lastApproval,usable:s?Object.freeze({...s}):null,requested:Object.freeze({collectionId:i,source:t.source,displayName:o?.displayName??null,approved:o!==null})})}async whenIdle(e){for(;this.opening;)await this.opening;this.check(),await e()}run(e,t={},i=!1){this.attempted=e;let o=t.signal?{signal:t.signal}:{},s=Promise.resolve().then(()=>e===null?this.session.clear(o):this.session.open(e,o)),r=s.then(()=>{},()=>{}).finally(()=>{this.opening===r&&(this.opening=null,this.changed())});return this.opening=r,i?s.then(()=>{}):r}async reconcile(){if(this.closed||this.opening)return;let e=this.session.getSnapshot();if(this.approval)if(this.approval.settled&&e.status==="signed_out"&&e.problem!==null){let o=this.approval;this.approval=null,this.attempted=void 0,this.lastApproval=Object.freeze({kind:o.kind,outcome:e.problem==="approval_window_closed"?"closed":"declined",collectionId:o.collectionId}),this.refresh()}else{if(!this.approval.settled||hq(e))return;let o=e.signIn?.nativeSelection;if(o&&o.requestId!==this.approval.receipt&&!Fi(e,o.collectionId)&&this.session.listing?.())return;this.finishApproval(e)}if(!qP(e))return;if(!this.startApplied)if(this.browser.getSnapshot().source==="none"){let o=null;try{o=this.memory?.read()??null}catch{}if(o!==null&&!Fi(e,o)&&this.session.listing?.())return;this.startApplied=!0;let s=RP(this.browser.getSnapshot(),{storedId:o,preferredId:this.preferredId,collections:e.collections});s.requestedCollectionId!==null&&!s.problem&&(this.browser.select(s.requestedCollectionId,{history:"replace"}),this.startTarget=s,this.refresh())}else this.startApplied=!0;let t=this.requested(),i=t.requestedCollectionId;if(!t.problem){if(i===null){this.attempted!==null&&e.selectedCollectionId!==null&&qa(e)&&this.run(null);return}if(e.selectedCollectionId===i&&(qa(e)||e.status==="opening")){this.attempted=i;return}!Fi(e,i)||this.attempted===i||this.run(i)}}finishApproval(e){let t=this.approval,i=t.receipt;this.approval=null,this.attempted=void 0;let o=u=>u!==null&&Fi(e,u)?t.before.has(u)?"unchanged":"added":e.approval?.outcome==="closed"?"closed":"declined",s=e.signIn?.collectionSelection,r=e.signIn?.nativeSelection,c=(r&&r.requestId!==i&&Fi(e,r.collectionId)?r.collectionId:null)??(s&&s.requestId!==i&&Fi(e,s.selectedCollectionId)?s.selectedCollectionId:null);if(c!==null){c!==this.requested().requestedCollectionId&&(this.startTarget=null,this.browser.select(c,{history:"replace"})),this.lastApproval=Object.freeze({kind:t.kind,outcome:o(c),collectionId:c}),this.refresh(),e.selectedCollectionId===c&&(qa(e)||e.status==="opening")?this.attempted=c:this.run(c);return}let l=this.requested().requestedCollectionId;l!==null&&!Fi(e,l)&&(this.declined=l);let p=t.kind==="add"?e.collections.find(u=>!t.before.has(u.collectionId))?.collectionId??null:null,d=t.kind==="add"?p:t.collectionId??l;this.lastApproval=Object.freeze({kind:t.kind,outcome:o(d),collectionId:d}),this.refresh()}};Gf();Fb();ie();eh();lu();eo();wu();var gx="mdbn-app-tabs/1",Vb="\0mdbn-port";var ep=n=>typeof n=="string"&&/^[0-9a-f-]{36}$/.test(n);function Tq(n){if(!n||typeof n!="object")return null;let e=n;switch(e.k){case"join":case"leave":return ep(e.tab)?e:null;case"leader":case"bye":case"fault":case"signedOut":case"signedIn":return ep(e.leader)?e:null;case"joined":return ep(e.tab)&&ep(e.leader)&&typeof e.binding=="string"?e:null;case"m":return ep(e.tab)&&typeof e.up=="boolean"&&Number.isSafeInteger(e.s)&&e.s>=0?e:null;default:return null}}function Kb(n){if(!n||typeof n!="object")return!1;let e=Object.getPrototypeOf(n);return e===Object.prototype||e===null}function Wb(n,e,t=0){return n instanceof MessagePort?{[Vb]:e(n)}:t>=6?n:Array.isArray(n)?n.map(i=>Wb(i,e,t+1)):Kb(n)?Object.fromEntries(Object.entries(n).map(([i,o])=>[i,Wb(o,e,t+1)])):n}function Hb(n,e,t,i=0){if(Kb(n)&&Object.keys(n).length===1&&Number.isSafeInteger(n[Vb])){let o=e(n[Vb]);return t.push(o),o}return i>=6?n:Array.isArray(n)?n.map(o=>Hb(o,e,t,i+1)):Kb(n)?Object.fromEntries(Object.entries(n).map(([o,s])=>[o,Hb(s,e,t,i+1)])):n}var th=class{constructor(e,t){this.send=e;this.up=t;this.next=t?1:2}send;up;streams=new Map;next;bridge(e,t){this.streams.set(t,e),e.onmessage=i=>{let o=i.ports.length?Wb(i.data,s=>{let r=this.next;return this.next+=2,this.bridge(s,r),r}):i.data;try{this.send(t,o)}catch{}}}deliver(e,t){let i=this.streams.get(e);if(!i)return;let o=[],s=Hb(t,r=>{let a=new MessageChannel;return this.bridge(a.port1,r),a.port2},o);try{i.postMessage(s,o)}catch{for(let r of o)r.close()}}close(){for(let e of this.streams.values()){e.onmessage=null;try{e.close()}catch{}}this.streams.clear()}},nh=class{constructor(e,t,i,o=()=>{}){this.env=t;this.lost=i;this.signedInElsewhere=o;this.base=e.storageNamespace===void 0?`${gx}/${e.cpOrigin}/${e.appId}/${e.build}`:`${gx}/namespace/${JSON.stringify([e.cpOrigin,e.appId,e.build,e.storageNamespace])}`}env;lost;signedInElsewhere;tab=crypto.randomUUID();base;channel=null;presence=null;leading=null;hub=null;follower=null;signingOut=!1;announced=!1;joining=null;get leader(){return this.leading!==null}open(){if(this.channel)return this.channel;let e=new this.env.BroadcastChannel(this.base);return e.onmessage=t=>this.received(Tq(t.data)),this.channel=e,e}post(e){this.channel?.postMessage(e)}hold(e,t,i){return new Promise((o,s)=>{let r=c=>{if(!c){o(null);return}return new Promise(l=>o(l))};(t?this.env.locks.request(e,{ifAvailable:!0},r):this.env.locks.request(e,{signal:i},r)).catch(s)})}async elect(e){if(e.throwIfAborted(),this.open(),this.presence??=await this.hold(`${this.base}/tab/${this.tab}`,!0),e.throwIfAborted(),this.leading||(this.leading=await this.hold(`${this.base}/leader`,!0)),this.leading)return e.aborted&&(this.resign(),e.throwIfAborted()),{kind:"leader"};let t=new AbortController,i=()=>t.abort();e.addEventListener("abort",i,{once:!0});let o=this.hold(`${this.base}/leader`,!1,t.signal),s;try{s=await new Promise((p,d)=>{o.then(u=>{u&&p({release:u})},()=>{}),this.joining={resolve:p,reject:d},e.addEventListener("abort",()=>d(e.reason),{once:!0}),this.post({k:"join",tab:this.tab})})}catch(p){throw this.joining=null,t.abort(),p}finally{e.removeEventListener("abort",i)}if(this.joining=null,"release"in s)return this.leading=s.release,e.aborted&&(this.resign(),e.throwIfAborted()),{kind:"leader"};e.aborted&&(t.abort(),e.throwIfAborted());let r=new MessageChannel,a=this.tab,c=new th((p,d)=>this.post({k:"m",tab:a,up:!0,s:p,d}),!0);c.bridge(r.port2,0);let l={leader:s.leader,tunnel:c,wait:t,port:r.port1,left:!1,signedOut:!1};return this.follower=l,o.then(p=>{if(p){if(this.follower!==l||l.left){p();return}this.leading=p,this.departed(l)}},()=>{}),{kind:"follower",port:r.port1,binding:s.binding,leave:()=>this.leave(l)}}lead(e){!this.leading||this.hub||(this.hub={followers:new Map,worker:e,faulted:!1},this.post({k:"leader",leader:this.tab}))}fault(){!this.hub||this.hub.faulted||(this.hub.faulted=!0,this.post({k:"fault",leader:this.tab}))}signedOut(){this.hub&&(this.signingOut=!0,this.post({k:"signedOut",leader:this.tab}))}signedIn(){!this.hub||this.announced||this.signingOut||(this.announced=!0,this.post({k:"signedIn",leader:this.tab}))}resign(){let e=this.hub,t=this.signingOut;this.hub=null,this.signingOut=!1,this.announced=!1,e&&this.post({k:"bye",leader:this.tab,...t?{signedOut:!0}:{}});let i=this.leading;if(this.leading=null,i?.(),e){for(let o of e.followers.values())o.watch.abort(),o.tunnel.close();e.followers.clear()}}leave(e){e.left||(e.left=!0,e.wait.abort(),e.tunnel.close(),this.follower===e&&(this.follower=null,this.post({k:"leave",tab:this.tab})))}departed(e,t=!1){e.left||this.follower!==e||(e.left=!0,e.wait.abort(),e.tunnel.close(),this.follower=null,this.lost(t||e.signedOut))}release(){this.joining?.reject(new DOMException("released","AbortError")),this.joining=null,this.follower&&this.leave(this.follower),this.resign();let e=this.presence;this.presence=null,e?.(),this.channel&&(this.channel.onmessage=null,this.channel.close(),this.channel=null)}received(e){if(!e)return;let t=this.hub,i=this.follower;switch(e.k){case"join":{if(!t||t.followers.has(e.tab)||e.tab===this.tab)return;let o=crypto.randomUUID(),s=new MessageChannel,r=e.tab,a=new th((l,p)=>this.post({k:"m",tab:r,up:!1,s:l,d:p}),!1);a.bridge(s.port1,0);let c=new AbortController;t.followers.set(r,{binding:o,tunnel:a,watch:c});try{t.worker.attach(s.port2,o)}catch{t.followers.delete(r),a.close();return}this.post({k:"joined",tab:r,binding:o,leader:this.tab}),t.faulted&&this.post({k:"fault",leader:this.tab}),this.hold(`${this.base}/tab/${r}`,!1,c.signal).then(l=>{l?.(),this.drop(t,r)},()=>{});return}case"leave":t&&this.drop(t,e.tab);return;case"joined":if(e.tab===this.tab&&this.joining){let o=this.joining;this.joining=null,o.resolve({binding:e.binding,leader:e.leader})}return;case"leader":this.joining&&this.post({k:"join",tab:this.tab});return;case"bye":i&&i.leader===e.leader&&this.departed(i,e.signedOut===!0);return;case"signedOut":i&&i.leader===e.leader&&(i.signedOut=!0);return;case"signedIn":!t&&!i&&!this.joining&&e.leader!==this.tab&&this.signedInElsewhere();return;case"fault":i&&!i.left&&i.leader===e.leader&&i.port.dispatchEvent(new MessageEvent("messageerror"));return;case"m":e.up&&t?t.followers.get(e.tab)?.tunnel.deliver(e.s,e.d):!e.up&&i&&e.tab===this.tab&&i.tunnel.deliver(e.s,e.d);return}}drop(e,t){let i=e.followers.get(t);if(i){e.followers.delete(t),i.watch.abort(),i.tunnel.close();try{e.worker.detach(i.binding)}catch{}}}};function Vi(n){try{return n()}catch{return}}function Mq(){let n=Vi(()=>globalThis.crypto?.subtle),e=Vi(()=>globalThis.navigator?.storage),t=Vi(()=>typeof e?.getDirectory=="function"?()=>e.getDirectory.call(e):void 0);return{subtle:n,abortSignalAny:Vi(()=>typeof AbortSignal=="function"&&typeof AbortSignal.any=="function")===!0,randomUUID:Vi(()=>typeof globalThis.crypto?.randomUUID=="function")===!0,worker:Vi(()=>typeof Worker=="function")===!0,messageChannel:Vi(()=>typeof MessageChannel=="function")===!0,locks:Vi(()=>typeof globalThis.navigator?.locks?.request=="function")===!0,broadcastChannel:Vi(()=>typeof BroadcastChannel=="function")===!0,indexedDB:Vi(()=>typeof globalThis.indexedDB<"u")===!0,getDirectory:t}}async function bx(n=Mq()){let e=[];if(n.subtle||e.push("web_crypto"),n.abortSignalAny||e.push("abort_signal_any"),n.randomUUID||e.push("random_uuid"),n.worker||e.push("worker"),n.messageChannel||e.push("message_channel"),n.locks||e.push("web_locks"),n.broadcastChannel||e.push("broadcast_channel"),n.indexedDB||e.push("indexed_db"),n.subtle)try{await n.subtle.generateKey({name:"X25519"},!1,["deriveBits"])}catch{e.push("x25519")}if(e.length)return{ok:!1,problem:"browser_unsupported",missing:Object.freeze(e)};if(typeof n.getDirectory!="function")return{ok:!1,problem:"application_storage_unavailable",missing:Object.freeze(["opfs"])};try{await n.getDirectory()}catch{return{ok:!1,problem:"application_storage_unavailable",missing:Object.freeze(["opfs"])}}return{ok:!0}}function ih(n,e,t={pendingForMs:0,connection:"online"}){if(!Number.isSafeInteger(n)||n<0)throw new RangeError("invalid unsynced count");return n===0?{kind:"no_pending_edits",unsynced:0,warning:null}:{kind:"not_yet_synced",unsynced:n,warning:!e.persistent&&(t.pendingForMs>=3e4||t.connection==="offline")?"storage_may_be_evicted":null}}function wx(n){switch(n){case"pending":return"not_yet_synced";case"confirmed":return"saved";case"rejected":return"rejected";case"unknown":return"outcome_unknown";default:throw new RangeError("invalid receipt state")}}var vx="Some changes are only on this device. Stay online so they can sync.";async function rh(n,e,t=!1){let i=!1;try{i=await n?.persisted()===!0,!i&&t&&(i=await n?.persist?.()===!0)}catch{}return{persistent:i,installed:e}}sh();var kx=Object.freeze(new Set);function Sx(n,e){let t=`mdbase.${n}.forgotten-collections.v1.${encodeURIComponent(e)}`,i=()=>{try{return globalThis.localStorage??null}catch{return null}},o=null,s=()=>{let a=null;try{a=i()?.getItem(t)??null}catch{}if(o&&o.raw===a)return o;let c=null,l=kx;try{let p=a?JSON.parse(a):null;p?.v===1&&typeof p.account=="string"&&p.account.length<=64&&Array.isArray(p.ids)&&p.ids.length<=1024&&p.ids.every(d=>typeof d=="string"&&d.length>0&&d.length<=64)&&(c=p.account,l=Object.freeze(new Set(p.ids)))}catch{}return o={raw:a,account:c,ids:l},o},r=(a,c)=>{try{c.size?i()?.setItem(t,JSON.stringify({v:1,account:a,ids:[...c].slice(-1024)})):i()?.removeItem(t)}catch{}o=null};return Object.freeze({read(a){let c=s();return a&&c.account===a?c.ids:kx},add(a,c){let l=s(),p=new Set(l.account===a?l.ids:[]);p.has(c)||(p.add(c),r(a,p))},remove(a,c){let l=s();if(l.account!==a||!l.ids.has(c))return!1;let p=new Set(l.ids);return p.delete(c),r(a,p),!0},clear(){try{i()?.removeItem(t)}catch{}o=null}})}var zq=new Set(["owner","editor","viewer"]),to=(n,e=512)=>typeof n=="string"&&n.length>0&&n.length<=e,Bq=new Set(["unselected","opening","setup_required","ready"]);function Px(n){let e=n;return!e||typeof e!="object"||!to(e.collectionId,64)||typeof e.displayName!="string"||e.displayName.length>512||!zq.has(e.role)?null:Object.freeze({collectionId:e.collectionId,displayName:e.displayName,role:e.role})}function xx(n){let e=n;return!e||typeof e!="object"||e.state!=="paired"||!to(e.requestId,64)||!to(e.installationId,64)||!to(e.deviceId,64)||!to(e.appId,64)||e.kind!=="app-runtime"&&e.kind!=="mobile"||!to(e.verificationUri,2048)||!to(e.accountId,64)||!Array.isArray(e.collectionIds)||e.collectionIds.length>1024||!e.collectionIds.every(t=>to(t,64))?null:Object.freeze({requestId:e.requestId,installationId:e.installationId,deviceId:e.deviceId,appId:e.appId,kind:e.kind,verificationUri:e.verificationUri,state:"paired",accountId:e.accountId,...typeof e.accountEmail=="string"&&e.accountEmail.length<=320?{accountEmail:e.accountEmail}:{},collectionIds:Object.freeze([...e.collectionIds]),createCollections:e.createCollections===!0,requestedCreateCollections:e.requestedCreateCollections===!0})}function Cx(n,e){let t=`mdbase.${n}.session-hint.v1.${encodeURIComponent(e)}`,i=null,o=null,s=()=>{try{return globalThis.localStorage??null}catch{return null}},r=()=>{let c=null;try{c=s()?.getItem(t)??null}catch{return null}if(i&&i.raw===c)return i.value;let l=null;try{let p=c?JSON.parse(c):null,d=p?.v===1?xx(p.signIn):null,u=Array.isArray(p?.collections)&&p.collections.length<=1024?p.collections.map(Px):null;d&&u&&u.every(f=>f!==null)&&(l=Object.freeze({signIn:d,collections:Object.freeze(u)}))}catch{l=null}return i={raw:c,value:l},l},a=()=>{o=null;try{s()?.removeItem(t)}catch{}};return Object.freeze({read:r,clear:a,observe(c){if(c.status==="signed_out"&&c.signIn===null){o!==""&&(a(),o="");return}if(!Bq.has(c.status)||c.signIn?.state!=="paired")return;let l=xx(c.signIn),p=c.collections.map(Px);if(!l||!p.every(u=>u!==null))return;let d=JSON.stringify({v:1,signIn:l,collections:p});if(d!==o){o=d;try{s()?.setItem(t,d)}catch{}}}})}Uy();ie();function b2(n,e){return new Promise((t,i)=>{let o=()=>{clearTimeout(s),i(A("cancelled","The original collection closed."))};if(n.aborted){i(A("cancelled","The original collection closed."));return}let s=setTimeout(()=>{n.removeEventListener("abort",o),t()},e);n.addEventListener("abort",o,{once:!0})})}var w2=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/,Ga=Object.freeze({checking:!1,assessment:null,problem:null}),v2=Object.freeze({capabilities:Ga,contracts:Ga,configuration:Ga,files:Ga,people:Ga,notifications:Ga}),oo=(n,e)=>{let t=e?Object.freeze({status:e,problem:e==="incompatible"?Object.freeze({code:"incompatible"}):null}):null;return Object.freeze({checking:n,assessment:t,problem:null,facets:Object.freeze({...v2,configuration:Object.freeze({checking:n,assessment:t,problem:null})})})},yh=n=>n==="approval_required"?"device_approval_required":n,_2=n=>n.state==="opening"||n.state==="unavailable"&&n.reason!=="sync_required"&&n.reason!=="access_removed"&&n.reason!=="collection_deleted",iC=n=>{if(oe(n)){let e=n.details instanceof Map?n.details.get("availability"):void 0;return typeof e=="string"?yh(e):n.reason??n.code}return"open_failed"},rC=n=>{if(!oe(n))return;let e=_0(n.details);return Object.freeze({name:"MdbaseError",code:n.code,...e?{relay:e}:{}})};function A2(n){let e=n.manifest?.redirect_uris;return(Array.isArray(e)?e.filter(i=>typeof i=="string"):[]).find(i=>{try{return new URL(i).origin===n.origin}catch{return!1}})??new URL("/",n.origin).href}function oC(n,e,t){if(n.signIn?.state!=="paired"||!e.length&&!t)return n;let i=new Set(n.collections.map(c=>c.collectionId)),o=e.filter(c=>!i.has(c.collectionId)),s=o.length?Object.freeze([...n.collections,...o]):n.collections;if(!t||n.status!=="unselected"||i.has(t.collectionId))return s===n.collections?n:Object.freeze({...n,collections:s});let{problemDetail:r,...a}=n;return Object.freeze({...a,collections:s,status:t.status,selectedCollectionId:t.collectionId,problem:t.problem,transport:null,live:null,...t.problemDetail?{problemDetail:t.problemDetail}:{},..."readiness"in n?{readiness:t.readiness}:{}})}var gh=class{options;loading=null;list=Object.freeze([]);open=null;listed=null;settled=null;refreshing=null;closed=!1;bindings=null;bindingsAccount=null;native=null;revision=0;constructor(e){this.options=e}grants(){let e=this.loading??=(this.options.grants??(async()=>{let{MdbaseAppGrants:t}=await Promise.resolve().then(()=>(nC(),tC));return new t({declaration:this.options.declaration,redirectUri:A2(this.options.declaration)})}))();return e.catch(()=>{this.loading===e&&(this.loading=null)}),e}changed(){if(!this.closed){this.revision++;try{this.options.onChange()}catch{}}}bind(e,t){let i=t.filter(o=>o.account_id===e);this.bindingsAccount===e&&JSON.stringify(i)===JSON.stringify(this.bindings)||(this.bindingsAccount=e,this.bindings=Object.freeze([...i]),this.settled=null,this.listed=null,this.setList([]))}async nativeAuthorization(e,t,i){if(e.action==="cancel")return this.native?.life.abort(),this.native?.prepared?.cancel(),this.native=null,null;if(this.closed||i.aborted)throw A("cancelled","Original Native authorization fenced");if(e.action==="prepare"){if(this.native||e.value.authorizationId)throw A("unauthenticated","Original Native preparation unavailable");let a={context:e.value,portal:t,prepared:null,life:new AbortController};this.native=a;let c=AbortSignal.any([i,a.life.signal]),l=await this.grants();if(!l.prepareAuthorization)throw A("unavailable","Native authorization unavailable");let p=btoa(String.fromCharCode(...Uint8Array.from(e.value.challenge.match(/../g),u=>parseInt(u,16)))).replaceAll("+","-").replaceAll("/","_").replace(/=+$/u,""),d=await l.prepareAuthorization({authorizationNonce:p,expectedAccountId:e.value.accountId,signal:c});if(a.prepared=d,this.native!==a||c.aborted||d.applicationId!==e.value.appId)throw d.cancel(),A("unauthenticated","Original application registration mismatch");return Object.freeze({authorizationId:d.authorizationId,applicationId:d.applicationId,manifestDigest:d.manifestDigest})}let o=this.native,s=o?.prepared;if(!o||!s||o.portal!==t||o.context.requestId!==e.value.requestId||s.authorizationId!==e.value.authorizationRequestId)throw A("unauthenticated","Original Native preparation unavailable");let r=await s.finish({popup:t,collection:e.value.collectionId,signal:AbortSignal.any([i,o.life.signal])});if(this.native!==o||i.aborted||!r.nativeCompletion)throw A("unauthenticated","Original Native completion unavailable");return r.nativeCompletion}entries(){return this.list}has(e){return this.list.some(t=>t.collectionId===e)||this.open?.id===e}state(){return this.open?.state??null}connection(e){let t=this.open;return t&&t.id===e&&t.state.status==="ready"?t.connection:null}listing(e){return!this.closed&&e!==null&&this.settled!==e}ensure(e){this.settled!==e&&!this.refreshing&&this.refresh(e).catch(()=>{})}refresh(e=this.listed){if(this.closed)return Promise.resolve();if(this.refreshing)return this.refreshing;let t=(async()=>{try{let i=await this.grants(),o=this.bindings,s=[];if(o)for(let a of o)a.account_id===e&&await i.verifiedStoredNativeGrant?.(a)&&s.push(a);let r=await i.collections(o===null?{}:{bindings:s});if(this.closed||o!==this.bindings)return;this.listed=e,this.setList(r)}finally{!this.closed&&e!==null&&this.settled!==e&&(this.settled=e,this.changed())}})().finally(()=>{this.refreshing===t&&(this.refreshing=null)});return this.refreshing=t,t}setList(e){let t=Object.freeze(e.filter(i=>w2.test(i.collectionId)).map(i=>Object.freeze({collectionId:i.collectionId,displayName:i.displayName,role:i.role??"editor",availability:i.availability,kind:"private"})));JSON.stringify(t)!==JSON.stringify(this.list)&&(this.list=t,this.changed())}setAvailability(e,t){this.list.some(i=>i.collectionId===e&&JSON.stringify(i.availability)!==JSON.stringify(t))&&(this.list=Object.freeze(this.list.map(i=>i.collectionId===e?Object.freeze({...i,availability:t}):i)),this.changed())}set(e,t){if(this.open!==e||e.life.signal.aborted)return;let{problemDetail:i,...o}=e.state,{problemDetail:s,...r}=t,a=r.problem===null?void 0:s??(r.problem===void 0?i:void 0);e.state=Object.freeze({...o,...r,...a?{problemDetail:a}:{}}),this.changed()}async openCollection(e,t){if(this.closed)throw A("cancelled","Private collections closed","application_entry_fenced");this.close(!1);let i={id:e,life:new AbortController,client:null,setup:null,connection:null,stopLink:null,state:Object.freeze({collectionId:e,status:"opening",problem:null,readiness:oo(!0,null)})};this.open=i,this.changed();let o=i.life.signal;try{let s=await this.grants(),r=this.bindings?.find(d=>d.account_id===t.account&&d.collection_id===e),a=async()=>{if(this.bindings!==null&&(!r||this.bindingsAccount!==t.account||!this.bindings.includes(r)||!await s.verifiedStoredNativeGrant?.(r)))throw A("unauthenticated","Original account-bound Native grant unavailable");if(o.aborted)throw A("cancelled","Original Native open fenced")};await a();let c=await s.availability(e,{signal:o});if(this.setAvailability(e,c),_2(c)&&(c.state==="unavailable"&&this.set(i,{status:"blocked",problem:yh(c.reason),readiness:oo(!1,null)}),c=await s.waitForAvailable(e,{signal:o,timeoutMs:this.options.waitMs??10*6e4,onAvailability:d=>{this.setAvailability(e,d),d.state==="unavailable"?this.set(i,{status:"blocked",problem:yh(d.reason)}):this.set(i,{status:"opening",problem:null,readiness:oo(!0,null)})}})),c.state!=="available"){if(c.state==="opening")throw A("unavailable","The collection is still getting ready","collection_unavailable");this.set(i,{status:"blocked",problem:yh(c.reason),readiness:oo(!1,null)});return}this.set(i,{status:"opening",problem:null}),await a();let l=await(this.options.connect??k2(this.options.declaration))(s,e,o);if(this.open!==i||o.aborted||l.collection!==e){if(l.close(),this.open===i&&!o.aborted)throw A("invalid_request","a different collection opened","collection_mismatch");return}i.client=l,i.setup=s.setup(l),i.connection=Object.freeze({id:e,displayName:this.list.find(d=>d.collectionId===e)?.displayName??"Collection",scope:Object.freeze({account:t.account,installation:t.installation,collection:e}),generation:crypto.randomUUID(),records:l,files:l.files,people:s.people(e,l),isCurrent:()=>this.open===i&&!o.aborted&&!this.closed}),await this.assessOpen(i);let p=0;i.stopLink=l.onLink((d,u)=>{u?this.set(i,{problem:iC(u),problemDetail:rC(u)}):d==="open"&&this.set(i,{problem:null});let f=++p;s.availability(e,{signal:o}).then(h=>{this.open===i&&!o.aborted&&f===p&&this.setAvailability(e,h)}).catch(()=>{})})}catch(s){throw this.open===i&&!o.aborted&&this.set(i,{status:"blocked",problem:iC(s),problemDetail:rC(s),readiness:oo(!1,null)}),s}}async assessOpen(e){this.set(e,{readiness:oo(!0,e.state.readiness.assessment?.status??null)});let t=1e3;for(;;){if(this.open!==e||e.life.signal.aborted)throw A("cancelled","The original collection closed.");let i;try{i=await e.setup.assess({signal:e.life.signal})}catch(o){if(!oe(o)||o.code!=="rate_limited")throw o;let s=o.retryAfterMs;await b2(e.life.signal,Math.min(2147483647,Math.max(t,typeof s=="number"&&Number.isFinite(s)?s:0))),t=Math.min(3e4,t*2);continue}if(this.open!==e||e.life.signal.aborted)throw A("cancelled","The original collection closed.");return this.set(e,{status:i==="ready"?"ready":"setup_required",problem:null,readiness:oo(!1,i)}),i}}current(){let e=this.open;if(!e?.setup||e.life.signal.aborted)throw A("invalid_request","No Private collection is open","application_connection_fenced");return e}isOpen(){return this.open!==null}async assess(){let e=this.current();return await this.assessOpen(e),e.state.readiness}plan(e){return this.current().setup.plan(e)}async apply(e,t={}){let i=this.current(),o=await i.setup.apply(e,t);this.set(i,{status:o==="ready"?"ready":"setup_required",problem:null,readiness:oo(!1,o)})}async configure(e={}){let i=await this.current().setup.plan(e.signal?{signal:e.signal}:{});await this.apply(i,e)}async add(e,t,i){let o;try{o=await this.grants()}catch(r){throw e.close(),r}let s=await o.authorize({popup:e,...t?{collection:t}:{},...i?{signal:i}:{}});return await this.refresh().catch(()=>{}),s.collectionId}async forget(e){this.open?.id===e&&this.close();let t=await this.grants(),i=this.bindings?.find(o=>o.collection_id===e&&o.account_id===this.bindingsAccount);(this.bindings===null||i&&await t.verifiedStoredNativeGrant?.(i))&&await(i?t.forget(e,{expectedNoisePublicKey:i.client_noise_public_key}):t.forget(e)),this.list.some(o=>o.collectionId===e)&&(this.list=Object.freeze(this.list.filter(o=>o.collectionId!==e)),this.changed())}async forgetAll(){this.native?.life.abort(),this.native?.prepared?.cancel(),this.native=null,this.close();try{await(await this.grants()).forgetAllGrants()}finally{this.list=Object.freeze([]),this.listed=null,this.settled=null,this.changed()}}close(e=!0){let t=this.open;if(t){this.open=null,t.life.abort(),t.stopLink?.();try{t.client?.close()}catch{}e&&this.changed()}}dispose(){this.native?.life.abort(),this.native?.prepared?.cancel(),this.native=null,this.close(!1),this.closed=!0}};function k2(n){return async(e,t,i)=>{let{connect:o}=await Promise.resolve().then(()=>(Ps(),Pd));return o({connector:e.connector(t),app:{name:n.id,version:"1"},signal:i})}}var jh={};function dT(n){let e=globalThis.document;return!e||typeof e.addEventListener!="function"||e.visibilityState!=="hidden"?Promise.resolve():new Promise((t,i)=>{let o=()=>{e.visibilityState!=="hidden"&&(e.removeEventListener("visibilitychange",o),n.removeEventListener("abort",s),t())},s=()=>{e.removeEventListener("visibilitychange",o),i(n.reason)};e.addEventListener("visibilitychange",o),n.addEventListener("abort",s,{once:!0})})}var yp=class extends Error{code="application_not_yet_available";constructor(){super("MdbaseConnect application runtime is not yet available"),this.name="MdbaseApplicationUnavailableError"}},Nw=Object.freeze({code:"application_not_yet_available"}),il=Object.freeze({checking:!1,assessment:null,problem:Nw}),uT=Object.freeze({checking:!1,assessment:null,problem:Nw,facets:Object.freeze({capabilities:il,contracts:il,configuration:il,files:il,people:il,notifications:il})}),rl=Object.freeze({checking:!1,assessment:null,problem:null}),Lh=Object.freeze({checking:!1,assessment:null,problem:null,facets:Object.freeze({capabilities:rl,contracts:rl,configuration:rl,files:rl,people:rl,notifications:rl})}),jw=()=>new yp,rI=Object.freeze({state:"none",problem:null,usable:null,requested:Object.freeze({collectionId:null,source:"none",displayName:null,approved:!1})});function fT(){let n={status:"blocked",signIn:null,collections:Object.freeze([]),selectedCollectionId:null,problem:Nw.code,timing:null,readiness:uT,selection:rI},e=Object.freeze({...n,phase:ic(n),sync:null,writes:null,links:null}),t=()=>Promise.reject(jw());return Object.freeze({getSnapshot:()=>e,subscribe:()=>()=>{},start:t,authorize:t,select:t,approve:t,reauthorize:t,refreshCollectionList:t,requestAccess:t,chooseAnother:t,assess:t,configure:t,setup:Object.freeze({plan:t,apply:t}),clearSelection:t,forget:t,deleteCollection:t,setForeground(){throw jw()},close:t,signOut:t})}var hT=n=>typeof Worker=="function"&&typeof MessageChannel=="function"&&Rt()!==null&&Lt(n,!0);function mT(n,e){if(n===void 0)return null;let t=()=>{throw A("invalid_request","Invalid sign-in opener","application_sign_in_opener")};if(!n||typeof n!="object"||typeof n.open!="function"||n.close!==void 0&&typeof n.close!="function")return t();let i=n.returnUrl;i!==void 0&&(AP(i,e.manifest,Qt(e.environment))||t());let o=n.open.bind(n),s=n.close?.bind(n);return Object.freeze({open:o,...s?{close:s}:{},...i!==void 0?{returnUrl:i}:{}})}async function yT(n){let e=!0;if(n.webPush){let t=globalThis.navigator?.serviceWorker,i;t&&typeof t.getRegistration=="function"&&(e=await Promise.race([(async()=>{let o=await(await t.getRegistration())?.pushManager?.getSubscription();return o?await o.unsubscribe():!0})().catch(()=>!1),new Promise(o=>{i=setTimeout(()=>o(!1),5e3)})]).finally(()=>clearTimeout(i)))}try{n.server==="incomplete"&&console.warn("mdbase: signed out on this device, but mdbase could not be reached to end the session. This device stays listed under the account until it is removed there."),(n.local==="incomplete"||!e)&&console.warn("mdbase: signed out, but some local data on this device could not be removed.")}catch{}}function gT(n){let e=`mdbase.${n}.selected-collection.v1`;return Object.freeze({read:()=>{try{return globalThis.localStorage?.getItem(e)??null}catch{return null}},write:t=>{try{t===null?globalThis.localStorage?.removeItem(e):globalThis.localStorage?.setItem(e,t)}catch{}}})}var ol=class{app;declaration;compiled;lifetime=new AbortController;listeners=new Set;nativeListeners=new Set;selection=null;memory=null;runtime=null;initialization=null;closing=null;closed=!1;foreground=!0;incarnation=0;hidden=null;tabs=null;election=null;signingOut=!1;snapshot=Object.freeze({status:"not_started",signIn:null,collections:Object.freeze([]),selectedCollectionId:null,problem:null,timing:null,readiness:Lh});composed=null;hint=null;forgotten=null;handledApproval=null;refreshing=null;refreshedAt=0;approvalPortal=null;revision=0;links=null;cpOrigin=null;opening=null;syncing=null;storagePolicy=null;pendingSave=null;signIn;typeIssues;privates=null;overlaid=new WeakMap;constructor(e,t={}){this.declaration=yr(e),this.compiled=Zr(this.declaration);let i=t.readiness?.typeIssues??"block";if(i!=="block"&&i!=="degrade")throw new TypeError('readiness.typeIssues must be "block" or "degrade"');if(this.typeIssues=i,this.signIn=mT(t.signIn,this.declaration),!hT(this.declaration.origin)){this.app=fT();return}try{let s=this.environment().cpOrigin;this.cpOrigin=s,this.hint=Cx(this.declaration.storage.applicationNamespace,s),this.forgotten=Sx(this.declaration.storage.applicationNamespace,s),this.links=Object.freeze({account:`${s}/account`,manageAccess:`${s}/account/applications`})}catch{}t.followVisibility!==!1&&this.followVisibility(),this.followPageLifecycle(),this.followFocus(),this.followStoragePolicy(),this.memory=gT(this.declaration.storage.applicationNamespace),t.privateCollections!==!1&&(this.privates=new gh({declaration:this.declaration,onChange:()=>{this.revision++,this.notify()}})),this.selection=new Lf({browser:new Mf(this.declaration.origin,{},EP()),session:this.selectionSession(),memory:this.memory}),this.selection.subscribe(()=>{this.unforgetApproved(),this.notify(!1)});let o=()=>this.getSnapshot();this.app=Object.freeze({getSnapshot:o,subscribe:s=>(this.listeners.add(s),()=>{this.listeners.delete(s)}),start:s=>this.track(()=>this.call(r=>this.started(r,s)).catch(r=>{let a=this.runtime?.getNativeSnapshot();if(!(r?.code==="open_in_another_tab"&&a?.status==="blocked"&&a.problem==="open_in_another_tab"))throw r})),authorize:s=>this.track(()=>this.approve(void 0,s)),approve:(s,r)=>this.track(()=>this.approve(s,r)),reauthorize:s=>this.track(()=>{let r=this.choose(),a=r.getSnapshot(),c=this.privates?.state()?.collectionId??a.usable?.collectionId??a.requested.collectionId;return c?this.approve(c,s):r.reauthorize(s)}),addPrivateCollection:s=>this.track(()=>this.approve(null,s)),refreshCollectionList:s=>this.track(()=>Promise.all([this.call(r=>r.queue(()=>r.refreshCollections(s))),this.privates?.refresh(this.account()).catch(()=>{})])),requestAccess:(s,r)=>this.requestAccess(s,r),select:(s,r)=>this.track(()=>this.choose().select(s,{...r,history:"push"})),clearSelection:s=>this.track(()=>this.choose().select(null,s)),chooseAnother:s=>this.track(()=>this.choose().chooseAnother(s)),forget:(s,r)=>this.track(async()=>{let a=this.choose(),c=this.account();if(this.privates?.has(s)){await this.privates.forget(s),a.getSnapshot().requested.collectionId===s&&await a.select(null,r);return}if(c&&this.forgotten){this.forgotten.add(c,s),this.revision++,(a.getSnapshot().requested.collectionId===s||(this.runtime?.getSnapshot()??this.snapshot).selectedCollectionId===s)&&await a.select(null,r),this.notify(!1);return}await this.call(l=>l.queue(()=>l.forget(s,r))),a.getSnapshot().requested.collectionId===s&&await a.select(null,r)}),deleteCollection:(s,r)=>this.track(async()=>{let a=this.choose(),{confirmName:c,...l}=r??{};await this.call(p=>p.queue(()=>p.deleteCollection(s,c,l))),a.getSnapshot().requested.collectionId===s&&await a.select(null,l)}),assess:s=>this.privates?.isOpen()?this.privates.assess():this.call(r=>r.queue(()=>r.assess(s))),configure:s=>this.track(()=>this.privates?.isOpen()?this.privates.configure(s):this.call(r=>r.queue(()=>r.configure(s)))),setup:Object.freeze({plan:s=>(this.privates?.isOpen()?this.privates.plan(s):this.call(r=>r.queue(()=>r.planSetup(s)))).then(r=>Ax(r,this.getSnapshot().readiness)),apply:(s,r)=>this.track(()=>this.privates?.isOpen()?this.privates.apply(s,r):this.call(a=>a.queue(()=>a.applySetup(s,r))))}),setForeground:s=>this.setForeground(s),close:()=>this.close(),signOut:s=>this.signOut(s)})}withPrivate(e){let t=this.privates;if(!t)return e;let i=this.overlaid.get(e);if(i&&i.revision===t.revision)return i.value;let o=oC(e,t.entries(),t.state());return this.overlaid.set(e,{revision:t.revision,value:o}),o}getSnapshot(){let e=this.withPrivate(this.runtime?.getSnapshot()??this.snapshot),t=this.selection?.getSnapshot()??rI,i=this.composed,o=e.signIn===null&&(e.status==="starting"||e.status==="blocked"&&e.problem==="open_in_another_tab")?this.hint?.read()??null:null;if(i&&i.base===e&&i.selection===t&&i.revision===this.revision&&i.hint===o)return i.value;let s=o?Object.freeze({...e,signIn:o.signIn,collections:o.collections}):e,r=this.forgotten?.read(s.signIn?.accountId)??null,a=r?.size&&s.collections.some(m=>r.has(m.collectionId)&&m.collectionId!==s.selectedCollectionId)?Object.freeze({...s,collections:Object.freeze(s.collections.filter(m=>!r.has(m.collectionId)||m.collectionId===s.selectedCollectionId))}):s,c=a.selectedCollectionId,l=c&&!this.closed?this.privates?.connection(c)??this.runtime?.connection(c)??null:null,p=ic({...a,selection:t},{connection:l,previous:i?.value.phase??null,...this.cpOrigin?{cpOrigin:this.cpOrigin}:{}});p=this.trackOpening(p);let d=this.trackSync(p,a.problem,a.transport??null,a.live??null),u=this.syncing?.writes()??null,f=this.trackSaveWarning(),h=Object.freeze({...a,selection:t,phase:p,sync:d,writes:u,storage:this.storagePolicy,saveWarning:f,links:this.links});return this.composed={base:e,selection:t,revision:this.revision,hint:o,value:h},h}trackSaveWarning(){let e=this.syncing,t=e?.status,i=t?.pending??0;if(this.pendingSave&&(this.closed||this.hidden||!i||this.pendingSave.id!==e?.id)&&this.clearPendingSave(),this.closed||this.hidden||!e||!t||!i)return null;if(!this.pendingSave){let o={id:e.id,since:performance.now(),timer:null};o.timer=setTimeout(()=>{this.pendingSave===o&&(o.timer=null,this.revision++,this.notify(!1))},3e4),this.pendingSave=o}return ih(i,this.storagePolicy??{persistent:!1,installed:!1},{pendingForMs:performance.now()-this.pendingSave.since,connection:t.connection}).warning}clearPendingSave(){this.pendingSave?.timer!==null&&this.pendingSave?.timer!==void 0&&clearTimeout(this.pendingSave.timer),this.pendingSave=null}trackOpening(e){let t=e.kind==="opening"?e.collectionId:null;if(this.opening&&this.opening.id!==t&&(clearTimeout(this.opening.timer),this.opening=null),t===null||this.closed)return e;if(!this.opening){let i={id:t,slow:!1,timer:setTimeout(()=>{this.opening===i&&(i.slow=!0,this.revision++,this.notify(!1))},gu)};this.opening=i}return e.kind==="opening"&&this.opening.slow?{...e,slow:!0}:e}trackSync(e,t,i,o){let s=e.kind==="ready"?e.collectionId:null;if(this.syncing&&this.syncing.id!==s){try{this.syncing.stop()}catch{}this.syncing=null}if(e.kind!=="ready"||this.closed)return null;if(!this.syncing){let r=e.connection.records,a=null;try{a=r.status}catch{}let c={id:e.collectionId,stop:()=>{},status:a,writes:()=>null},l=()=>{this.syncing===c&&(this.revision++,this.getSnapshot(),this.notify(!1))},p=()=>{},d=()=>{};try{p=r.onStatus(u=>{c.status=u,l()})}catch{}try{let u=r.ledger;d=u.subscribe(l),c.writes=()=>{try{return u.getSnapshot()}catch{return null}}}catch{}c.stop=()=>{p(),d()},this.syncing=c}try{e.connection.records.setTransportDeferred(i!==null)}catch{}return this.syncing.status?Qd(this.syncing.status,t,i,o):null}nativeAuthorization(e,t,i){return!this.privates||this.closed||this.hidden?Promise.reject(A("unavailable","Native authorization unavailable")):this.privates.nativeAuthorization(e,t,AbortSignal.any([i,this.lifetime.signal]))}account(){return(this.runtime?.getSnapshot()??this.snapshot).signIn?.accountId??null}unforgetApproved(){let e=this.selection?.getSnapshot().lastApproval??null,t=this.account();!e||e===this.handledApproval||(this.handledApproval=e,t&&e.collectionId&&(e.outcome==="added"||e.outcome==="unchanged")&&this.forgotten?.remove(t,e.collectionId)&&this.revision++)}followFocus(){let e=typeof window>"u"?void 0:window,t=globalThis.document;if(!e||typeof e.addEventListener!="function")return;let i=()=>{t?.visibilityState!=="hidden"&&this.refreshCollections()};e.addEventListener("focus",i,{signal:this.lifetime.signal}),t&&typeof t.addEventListener=="function"&&t.addEventListener("visibilitychange",i,{signal:this.lifetime.signal})}refreshCollections(){let e=this.runtime,t=Date.now();if(!e||this.closed||this.hidden||this.refreshing||t-this.refreshedAt<2e3)return;let i=e.getNativeSnapshot();i.signIn?.state!=="paired"||i.status!=="unselected"&&i.status!=="ready"&&i.status!=="setup_required"||(this.refreshedAt=t,this.privates?.refresh(i.signIn.accountId).catch(()=>{}),this.refreshing=e.queue(()=>e.refreshCollections()).catch(()=>{}).finally(()=>{this.refreshing=null}))}followStoragePolicy(){let e=globalThis.navigator?.storage;if(!e||typeof e.persisted!="function")return;let t=()=>{try{return globalThis.matchMedia?.("(display-mode: standalone)").matches===!0||globalThis.navigator?.standalone===!0}catch{return!1}},i=(s=!1)=>{this.closed||rh(e,t(),s).then(r=>{this.closed||this.storagePolicy?.persistent===r.persistent&&this.storagePolicy?.installed===r.installed||(this.storagePolicy=r,this.revision++,this.notify(!1))}).catch(()=>{})},o=globalThis.document;o&&typeof o.addEventListener=="function"&&o.addEventListener("visibilitychange",()=>{o.visibilityState!=="hidden"&&i()},{signal:this.lifetime.signal}),i(!0)}notify(e=!0){let t=this.runtime?.getSnapshot(),i=t?.signIn?.state==="paired"?t.signIn.accountId:null;if(i&&!this.closed&&!this.hidden&&(this.privates?.bind(i,t?.signIn?.nativeGrants??[]),this.privates?.ensure(i)),e)for(let o of[...this.nativeListeners])try{o()}catch{}for(let o of[...this.listeners])try{o()}catch{}}choose(){this.check();let e=this.selection;return e.start(),e}async track(e){return await e(),this.getSnapshot()}selectionSession(){return Object.freeze({getSnapshot:()=>this.withPrivate(this.runtime?.getNativeSnapshot()??this.snapshot),subscribe:e=>(this.nativeListeners.add(e),()=>{this.nativeListeners.delete(e)}),open:(e,t={})=>this.call(async i=>{let o=this.privates,s=i.getNativeSnapshot().collections.some(c=>c.collectionId===e);if(!o||s||!o.has(e))return o?.close(),i.queue(()=>i.select(e,t));i.getNativeSnapshot().selectedCollectionId!==null&&await i.queue(()=>i.clearSelection(t));let r=i.getNativeSnapshot().signIn?.accountId,a=i.getNativeSnapshot().signIn?.installationId;if(!r||!a)throw A("unauthenticated","Sign in before opening a collection");o.openCollection(e,{account:r,installation:a}).catch(()=>{})}),clear:(e={})=>(this.privates?.close(),this.call(t=>t.queue(()=>t.clearSelection(e)))),authorize:(e={})=>this.authorize(e,e.collectionHint??null),listing:()=>this.privates?.listing(this.account())??!1})}check(){if(this.closed||this.hidden||this.lifetime.signal.aborted)throw A("cancelled","Application entry fenced","application_entry_fenced")}environment(){return Xn({environment:this.declaration.environment,appOrigin:this.declaration.origin,platform:this.declaration.manifest.platform==="native"?"native":void 0,release:zo()})}initialize(){if(this.initialization)return this.initialization;let e=this.incarnation,t=Promise.resolve().then(async()=>{if(this.check(),typeof jh.url!="string")throw jw();let i=new URL(jh.url);if(xn(i)!==this.declaration.origin||Rt()!==this.declaration.origin)throw A("unavailable","Application module binding unavailable","application_worker_module_binding");let o=this.environment();OP(this.declaration.environment,this.declaration.origin,this.declaration.manifest.platform==="native"?"native":void 0);let s=await bx();if(this.check(),!s.ok)throw A("unavailable","This browser can't run mdbase",{reason:s.problem,details:new Map([["missing",s.missing.join(",")]])});let r=await Ef({declaration:this.declaration,signal:this.lifetime.signal,isCurrent:()=>!this.closed});this.check();let{ApplicationRuntime:a}=await Promise.resolve().then(()=>(iI(),nI));if(this.check(),e!==this.incarnation)throw A("cancelled","Application entry fenced","application_entry_fenced");let c=_P(this.declaration,r);r.supersededDeclaredId&&console.info(`mdbase: ${fu("application_registration_id_superseded")}`);let l=bu(this.declaration),p=Object.freeze({cpOrigin:o.cpOrigin,appId:c.id,...l===null?{}:{storageNamespace:l}}),d=v=>(this.runtime=v,v.subscribe(()=>{this.hint?.observe(v.getNativeSnapshot()),this.observeSignOut(v),v.getNativeSnapshot().signIn?.state==="paired"&&this.tabs?.signedIn(),this.notify(),this.awaitOtherTab(v,p)}),v.setForeground(this.foreground),this.notify(),v),u=this.tabsFor(p),f=new AbortController;this.election?.abort(),this.election=f;let h=u?await u.elect(AbortSignal.any([this.lifetime.signal,f.signal])):{kind:"leader"};if(this.closed||this.hidden||e!==this.incarnation||f.signal.aborted)throw h.kind==="follower"?h.leave():u?.resign(),A("cancelled","Application entry fenced","application_entry_fenced");if(h.kind==="follower")return d(new a({declaration:c,compiledManifest:this.compiled,typeIssues:this.typeIssues,cpOrigin:o.cpOrigin,port:h.port,binding:h.binding,releaseWorker:()=>h.leave(),nativeAuthorization:(v,_,k)=>this.nativeAuthorization(v,_,k)}));let m=new MessageChannel,b=crypto.randomUUID(),w;try{w=new Worker(new URL("./worker.js",jh.url),{type:"module"})}catch{throw u?.resign(),m.port1.close(),m.port2.close(),A("unavailable","Application Worker construction unavailable","application_worker_unavailable")}let g=v=>{v.preventDefault(),m.port1.dispatchEvent(new MessageEvent("messageerror")),u?.fault()};w.addEventListener("error",g);let y=new a({declaration:c,compiledManifest:this.compiled,typeIssues:this.typeIssues,cpOrigin:o.cpOrigin,port:m.port1,binding:b,releaseWorker:()=>{w.removeEventListener("error",g),w.terminate(),u?.resign()},nativeAuthorization:(v,_,k)=>this.nativeAuthorization(v,_,k)});try{w.postMessage([Qn,b,c,...l===null?[]:[l]],[m.port2])}catch{throw w.removeEventListener("error",g),w.terminate(),u?.resign(),m.port1.close(),m.port2.close(),A("unavailable","Application bootstrap unavailable","application_worker_binding")}return u?.lead({attach:(v,_)=>w.postMessage([Qn,b,"attach",_],[v]),detach:v=>w.postMessage([Qn,b,"detach",v])}),d(y)}).catch(i=>{let o=this.initialization===t;if(o&&(this.initialization=null),!this.closed&&o){let{problemDetail:s,...r}=this.snapshot,a=i instanceof pe&&i.reason==="application_registration_refused"?Mo(i.details):null;this.snapshot=Object.freeze({...r,status:"blocked",problem:typeof i?.reason=="string"?i.reason:typeof i?.code=="string"?i.code:"application_entry_unavailable",...a?{problemDetail:Object.freeze({name:"MdbaseError",code:i.code,registration:a})}:{}}),this.notify()}throw i});this.initialization=t;{let{problemDetail:i,signOutResult:o,...s}=this.snapshot;this.snapshot=Object.freeze({...s,status:"starting",problem:null})}return this.notify(),t}async call(e){this.check();let t=await this.initialize();return this.check(),e(t)}started(e,t){this.choose();let i=e.getNativeSnapshot().status;return i==="not_started"||i==="starting"||i==="blocked"&&!e.getNativeSnapshot().signIn?e.queue(()=>e.start(t)):Promise.resolve()}reservePortal(e){this.check();let t=this.environment(),i=e.signal?AbortSignal.any([this.lifetime.signal,e.signal]):this.lifetime.signal,o=Qt(this.declaration.environment),s=()=>!this.closed,r=this.signIn?dx(t.cpOrigin,i,s,this.signIn,o):Jf(t.cpOrigin,i,s,o);return{portal:Yf(r),signal:i}}requestAccess(e,t){try{this.check();let i=this.runtime,o=i?.getNativeSnapshot(),s=o?.selectedCollectionId??null,r=Zf(this.compiled),a=()=>s&&i?Qf(i.getNativeSnapshot(),s):[],c=hx(r,e,t,a()),l=s?i.connection(s):null;if(!i||!s||!l)throw A("invalid_request","requestAccess needs an open collection","access_no_collection");let p=()=>mx(l.files,r,a());if(!c.length)return Promise.resolve(p());let{portal:d,signal:u}=this.reservePortal(t);return yx({granted:p,native:()=>i.getNativeSnapshot(),start:()=>i.queue(()=>i.requestFileAccess(d,s,c,t.reason,{signal:u})),poll:f=>i.queue(()=>i.pollFileAccess(f))},d,u)}catch(i){return Promise.reject(i)}}approve(e,t={}){let i=this.choose(),o=i.getSnapshot(),s=this.approvalPortal;if(s&&o.approval){if((e===void 0?o.requested.collectionId:e)!==o.approval.collectionId)return Promise.reject(new Vt("application_selection_busy"));if(t.signal?.aborted)throw A("cancelled","Application entry fenced","application_entry_fenced");return s.closed||s.focus(),Promise.resolve()}return i.approve(e,t)}authorize(e={},t=null){let i;try{i=this.approvalPortal=this.reservePortal(e).portal}catch(o){return Promise.reject(o)}return this.call(async o=>(await this.started(o,e),o.queue(()=>o.authorizeReserved(i,e,t)))).catch(o=>{try{i.close()}catch{}throw o})}async signOut(e={}){let t=await this.call(async s=>(await this.started(s,e),s));this.signingOut=!0;try{await t.queue(()=>t.signOut(e))}finally{this.signingOut=!1}let i=t.getNativeSnapshot().signOutResult??null;await this.signedOut(t,i);let o=this.snapshot.signOutResult??i;return o&&await yT(o),this.getSnapshot()}async signedOut(e,t,i=!1){i||this.tabs?.signedOut(),this.clearPendingSave(),++this.incarnation,this.runtime===e&&(this.runtime=null),this.initialization=null,this.hint?.clear(),this.forgotten?.clear(),this.handledApproval=null;let o=null;if(this.privates)try{await this.privates.forgetAll(),o="erased"}catch{o="incomplete"}let s=t&&o?Object.freeze({...t,grants:o,...o==="incomplete"?{local:"incomplete"}:{}}):t;this.snapshot=Object.freeze({status:"signed_out",signIn:null,collections:Object.freeze([]),selectedCollectionId:null,problem:!s&&o==="incomplete"?"sign_out_failed":null,timing:null,readiness:Lh,...s?{signOutResult:s}:{}});try{this.memory?.write(null)}catch{}if(this.selection&&!this.closed&&(this.selection.resync(),await this.selection.select(null,{history:"replace"}).catch(()=>{})),this.revision++,this.notify(),i){e.abandon();return}await e.close().catch(()=>{})}observeSignOut(e){let t=e.getNativeSnapshot().signOutResult;!t||this.signingOut||this.closed||this.runtime!==e||this.signedOut(e,t)}tabsFor(e){if(this.tabs)return this.tabs;let t=globalThis.navigator?.locks,i=globalThis.BroadcastChannel;return!t||typeof t.request!="function"||typeof i!="function"?null:(this.tabs=new nh({...e,build:jh.url},{locks:t,BroadcastChannel:i},this.leaderLost,this.signedInElsewhere),this.tabs)}leaderLost=e=>{if(this.closed||this.hidden)return;let t=this.runtime,i=t!==null||this.initialization!==null;if(this.election?.abort(),this.election=null,e&&t&&!this.signingOut?this.signedOut(t,t.getNativeSnapshot().signOutResult??null,!0):e&&i&&(++this.incarnation,this.initialization=null),!i||e){this.tabs?.resign();return}++this.incarnation,this.initialization=null,this.runtime=null,t?.abandon();let{problemDetail:o,...s}=this.snapshot;this.snapshot=Object.freeze({...s,status:"starting",problem:null,selectedCollectionId:null,readiness:Lh}),this.notify(),this.selection?.resync(),this.app.start().catch(()=>{})};signedInElsewhere=()=>{this.closed||this.hidden||this.signingOut||this.runtime!==null||this.initialization!==null||this.snapshot.status!=="signed_out"||(this.selection?.resync(),this.app.start().catch(()=>{}))};setForeground(e){this.foreground=e,this.runtime?.setForeground(e)}followVisibility(){let e=globalThis.document;if(!e||typeof e.addEventListener!="function")return;let t=()=>{this.closed||this.setForeground(e.visibilityState!=="hidden")},i=()=>{e.visibilityState!=="hidden"&&t()};e.addEventListener("visibilitychange",t,{signal:this.lifetime.signal});let o=typeof window>"u"?void 0:window;o&&typeof o.addEventListener=="function"&&(o.addEventListener("focus",i,{signal:this.lifetime.signal}),o.addEventListener("online",i,{signal:this.lifetime.signal})),t()}followPageLifecycle(){let e=typeof window>"u"?void 0:window;if(!e||typeof e.addEventListener!="function")return;e.addEventListener("pagehide",this.pageHidden,{signal:this.lifetime.signal}),e.addEventListener("pageshow",this.pageShown,{signal:this.lifetime.signal});let t=globalThis.document;t&&typeof t.addEventListener=="function"&&(t.addEventListener("freeze",()=>this.pageHidden(),{signal:this.lifetime.signal}),t.addEventListener("resume",()=>this.pageShown({persisted:!0}),{signal:this.lifetime.signal}))}pageHidden=()=>{if(this.closed||this.hidden)return;let e=this.runtime,t=e!==null||this.initialization!==null;++this.incarnation,this.hidden=Object.freeze({resume:t}),this.clearPendingSave(),this.initialization=null,this.runtime=null,this.election?.abort(),this.election=null,e?.abandon(),this.tabs?.release();let{problemDetail:i,...o}=this.snapshot;this.snapshot=Object.freeze({...o,status:t?"starting":this.snapshot.status,problem:null,selectedCollectionId:null,readiness:Lh})};pageShown=e=>{let t=this.hidden;this.closed||!t||!e.persisted||(this.hidden=null,this.notify(),t.resume&&(this.selection?.resync(),this.app.start().catch(()=>{})))};awaitingOtherTab=!1;awaitOtherTab(e,t){let i=e.getNativeSnapshot(),o=globalThis.navigator?.locks;if(this.awaitingOtherTab||this.closed||i.status!=="blocked"||i.problem!=="open_in_another_tab"||!o)return;this.awaitingOtherTab=!0;let s=this.incarnation,r=this.lifetime.signal,a=()=>!this.closed&&!this.hidden&&s===this.incarnation&&this.runtime===e;zP(o,t,r).then(()=>dT(r)).then(()=>{this.awaitingOtherTab=!1,a()&&(this.selection?.resync(),this.app.start().catch(()=>{}))},()=>{this.awaitingOtherTab=!1})}close(){if(this.closing)return this.closing;if(this.closed=!0,this.lifetime.abort(),this.selection?.close(),this.election?.abort(),this.privates?.dispose(),this.opening&&(clearTimeout(this.opening.timer),this.opening=null),this.clearPendingSave(),this.syncing){try{this.syncing.stop()}catch{}this.syncing=null}return this.closing=Promise.resolve().then(async()=>{await this.initialization?.catch(()=>{}),await this.runtime?.close(),this.tabs?.release();{let{problemDetail:e,...t}=this.snapshot;this.snapshot=Object.freeze({...t,status:"closed",problem:null,selectedCollectionId:null})}this.runtime=null,this.notify(),this.listeners.clear(),this.nativeListeners.clear()}),this.closing}application(){return this.app}connection(e){return this.closed?null:this.privates?.connection(e)??this.runtime?.connection(e)??null}};ie();var bn=n=>n;function oI(n,e={}){return bT(new ol(n,e))}function bT(n){let e=n.application(),t=()=>bn(e.getSnapshot()),i=async o=>bn(await e.approve(null,o));return Object.freeze({getSnapshot:t,subscribe:o=>e.subscribe(o),start:async o=>bn(await e.start(o)),signIn:async o=>bn(await e.authorize(o)),addCollection:i,addPrivateCollection:i,approve:async(o,s)=>bn(await e.approve(o,s)),refreshCollectionList:async o=>{if(!e.refreshCollectionList)throw A("unavailable","Refreshing the collection list isn't available here.","application_not_yet_available");return bn(await e.refreshCollectionList(o))},reauthorize:async o=>bn(await e.reauthorize(o)),configure:async o=>bn(await e.configure(o)),select:async(o,s)=>bn(await e.select(o,s)),chooseAnother:async o=>bn(await e.chooseAnother(o)),forget:async(o,s)=>bn(await e.forget(o,s)),deleteCollection:async(o,s)=>bn(await e.deleteCollection(o,s)),requestAccess:(o,s)=>e.requestAccess(o,s),assess:o=>e.assess(o),setup:Object.freeze({plan:o=>e.setup.plan(o),async apply(o,s){try{return Object.freeze({outcome:"applied",snapshot:bn(await e.setup.apply(o,s))})}catch(r){if(oe(r,"conflict")&&r.reason==="setup_changed")return Object.freeze({outcome:"changed",snapshot:t()});if(oe(r,"outcome_unknown"))return Object.freeze({outcome:"unknown",snapshot:t()});throw r}}}),connection:o=>n.connection(o),setForeground:o=>e.setForeground(o),signOut:async o=>{if(!e.signOut)throw A("unavailable","Sign out isn't available here.","application_not_yet_available");return bn(await e.signOut(o))},close:()=>e.close(),application:e})}Ea();Cf();ie();function sI(n,e){let t=Zr(yr(n)).manifest.requirements.capabilities;if(t?.contract_version!==2)return null;if(!e.isCurrent())throw A("invalid_request","the application connection is not current","application_connection_fenced");let i=new Set(e.records.hello.grant.capabilities),o=new Set(t.required),s=Object.freeze([...new Set([...t.required,...t.optional??[]])].map(r=>Object.freeze({id:r,requirement:o.has(r)?"required":"optional",state:i.has(r)?"available":"missing"})));return Object.freeze({values:s,requiredAvailable:s.every(r=>r.requirement==="optional"||r.state==="available"),missing:Object.freeze(s.filter(r=>r.state==="missing").map(r=>r.id))})}Ps();var Xw={};ls(Xw,{APP_BASES_PROFILE:()=>Bm,APP_COLLECTION_SETUP_LIMITS:()=>wr,AppCloudCopyBootstrapError:()=>en,AppCloudCopyHostError:()=>co,AppCollectionControlError:()=>ti,AppCollectionJoinError:()=>lo,AppCollectionJoinLedger:()=>Xa,AppCollectionSetupError:()=>nn,AppCollectionSetupJournal:()=>Ba,AppCpAuthorityError:()=>Zn,AppCpCloudCopyBootstrap:()=>$a,AppCpDeviceRegistration:()=>sl,AppCpLogAuthority:()=>Da,AppCpPeopleAuthority:()=>ul,AppDeviceRegistrationError:()=>ts,AppHttpLogError:()=>mn,AppHttpLogTransport:()=>Ua,AppIndexedDbDeviceKeyProtectedStore:()=>cl,AppIndexedDbDeviceKeyProvider:()=>ll,AppIndexedDbNoiseProtectedStore:()=>dl,AppInstallationSignInError:()=>Xe,AppLogHostError:()=>pt,AppLogPump:()=>is,AppProtectedInstallationSignIn:()=>ja,AppReplicaOwnerError:()=>We,AppStrictDeviceApprovalError:()=>an,AppWasmRuntime:()=>fl,AppWebCloudCopyHost:()=>ml,AppWebCollectionError:()=>up,AppWebDeviceKeyCustody:()=>al,AppWebNoiseCustody:()=>pl,AppWebSignInSession:()=>Xh,UNSYNCED_STORAGE_WARNING:()=>vx,acquireAppInstallationLease:()=>Wc,acquireAppReplicaLease:()=>Kc,appBrowserDirectAccess:()=>Fh,appCollectionControlClient:()=>dh,appInstallationLockName:()=>Rb,appLocalConnector:()=>Sh,appLogHealth:()=>zw,appModelPackPlan:()=>Ho,appModelResourcePlan:()=>xt,appMutationSaveState:()=>wx,appReplicaLockName:()=>Nf,appSaveState:()=>ih,appStoragePolicy:()=>rh,attachAppLocalFacade:()=>kh,createAppCollectionPeople:()=>ch,createAppWebCollectionAdapter:()=>RC,decodeAppBasesCell:()=>yo,decodeAppBasesDiscoveryResult:()=>ed,decodeAppBasesResult:()=>Xp,decodeAppBasesSourceResult:()=>td,decodeAppCollectionSetupIntent:()=>Et,encodeAppBasesDiscoveryRequest:()=>Zp,encodeAppBasesRequest:()=>Jp,encodeAppBasesSourceRequest:()=>Qp,openAppWebCollectionClient:()=>xh,openOwnedAppWorker:()=>BP,probeAppStorage:()=>wI,selectAppEnvironment:()=>Xn,verifyAppHandover:()=>lI});Ph();Fm();function aI(n,e){return n.seq===e.seq&&n.chain===e.chain&&n.policyGeneration===e.policyGeneration&&n.catalogGeneration===e.catalogGeneration}async function lI(n,e){let t=null;try{let{runtime:i,localPort:o,localClient:s,hostedClient:r,source:a}=n,c=r.hello,l=s.hello,p=a.collection,d=a.deviceId,u=r.authenticatedDevice;if(!(P=>typeof P=="string"&&P.replace(/-/g,"").toLowerCase()===d.replace(/-/g,"").toLowerCase())(u))return null;let h=c.status.confirmedHead,m=h?Object.freeze({...h}):void 0;if(!m||!c.headWitness||c.headWitness.length>64*1024||m.seq===0||c.collection!==p||l.collection!==p)return null;t=new Uint8Array(c.headWitness);let b=t,w=()=>{try{return!e.aborted&&n.isCurrent()===!0&&a.isCurrent()===!0&&l.collection===p&&a.collection===p&&a.deviceId===d&&s.hello===l}catch{return!1}},g=()=>{try{let P=i.observations();return!P.requiresReopen&&!P.keyringRebuilding&&!P.keyringRebuildFailed&&P.status.mode==="synced"&&P.status.confirmedHead!==void 0&&P.status.confirmedHead.seq>=m.seq}catch{return!1}},y=()=>{if(!w()||!g())return!1;let P=i.verifyHandover(o,a,b);return P!==null&&aI(P,m)},v=()=>{try{return!e.aborted&&w()&&r.hello===c&&r.authenticatedDevice===u}catch{return!1}};if(!v()||!y())return null;let _=await s.appliedPrefix(m.seq,e);if(!v()||!y()||_.seq!==m.seq||_.appliedThrough<m.seq||_.chain!==m.chain)return null;let k=Object.freeze({...m}),S=!1,x={head:k,appliedThrough:_.appliedThrough,isCurrent:()=>{if(S)return!1;try{return y()&&aI(k,m)}catch{return!1}},dispose:()=>{S=!0,b.fill(0)}};return t=null,x}catch{return null}finally{t?.fill(0)}}bt();ge();var ts=class extends Error{constructor(t){super(`app device registration: ${t}`);this.reason=t;this.name="AppDeviceRegistrationError"}reason},wt=n=>new ts(n),Nh=n=>Array.from(n,e=>e.toString(16).padStart(2,"0")).join(""),sl=class{constructor(e,t,i,o,s={}){this.runtime=e;this.session=t;this.persistence=o;try{this.scope=Object.freeze({connectorId:t.connectorId,deviceId:t.deviceId,installationId:t.installationId,kind:t.kind});for(let a of[this.scope.connectorId,this.scope.deviceId,this.scope.installationId])if(U(a).every(c=>c===0))throw wt("binding");if(t.kind!=="mobile"&&t.kind!=="app-runtime")throw wt("binding");this.rawOrigin=t.cpOrigin;let r=new URL(this.rawOrigin);if(r.username||r.password||r.pathname!=="/"||r.search||r.hash||r.protocol!=="https:"&&!(s.allowLoopbackHttp===!0&&ot(this.rawOrigin))||(this.origin=r.origin,this.now=s.now??Date.now,this.fetchImpl=s.fetch??globalThis.fetch,!(i.envelope instanceof Uint8Array)||!i.envelope.length||i.envelope.length>1024)||!e.deviceCustodyCurrent(t,i)||(this.custody=Object.freeze({signPublicKey:new Uint8Array(i.signPublicKey),kemPublicKey:new Uint8Array(i.kemPublicKey),noisePublicKey:new Uint8Array(i.noisePublicKey),envelope:new Uint8Array(i.envelope)}),!this.current()))throw wt("binding")}catch{throw e.retireLog(),wt("binding")}}runtime;session;persistence;attempted=!1;lifetime=new AbortController;origin;rawOrigin;scope;custody;now;fetchImpl;current(){try{return!this.lifetime.signal.aborted&&this.runtime.deviceCustodyCurrent(this.session,this.custody)&&this.session.isCurrent()===!0&&this.session.cpOrigin===this.rawOrigin&&this.session.connectorId===this.scope.connectorId&&this.session.deviceId===this.scope.deviceId&&this.session.installationId===this.scope.installationId&&this.session.kind===this.scope.kind}catch{return!1}}check(e){if(!this.current()||e.aborted)throw this.close(),wt("fenced")}async json(e,t,i,o){this.check(o);let s=new AbortController,r=()=>s.abort(),a=setTimeout(r,15e3);a.unref?.(),o.addEventListener("abort",r,{once:!0}),this.lifetime.signal.addEventListener("abort",r,{once:!0});let c=new Uint8Array(32*1024),l=0,p=null,d=null;try{let u=this.fetchImpl;if(p=await u(`${this.origin}${e}`,{method:"POST",headers:{authorization:`Bearer ${t}`,...i===void 0?{}:{"content-type":"application/json"}},body:i,signal:s.signal,redirect:"error",credentials:"omit",cache:"default",referrerPolicy:"no-referrer"}),this.check(o),s.signal.aborted||!p.ok)throw wt("unavailable");let f=p.headers.get("content-length");if(f!==null&&/^(0|[1-9][0-9]*)$/.test(f)&&Number(f)>c.length)throw s.abort(),wt("response");if(!p.body)throw wt("response");for(d=p.body.getReader();;){let{done:m,value:b}=await d.read();try{if(this.check(o),s.signal.aborted)throw wt("unavailable");if(m)break;if(l+b.length>c.length)throw s.abort(),wt("response");c.set(b,l),l+=b.length}finally{b?.fill(0)}}let h=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(c.subarray(0,l)));if(!h||typeof h!="object"||Array.isArray(h))throw wt("response");return h}catch(u){throw this.check(o),u instanceof ts?u:wt("unavailable")}finally{c.fill(0),(d?.cancel()??p?.body?.cancel())?.catch(()=>{}),d?.releaseLock(),clearTimeout(a),o.removeEventListener("abort",r),this.lifetime.signal.removeEventListener("abort",r)}}async register(e){let t=null,i=null;try{if(this.check(e.signal),this.attempted)throw wt("fenced");this.attempted=!0,await this.persistence.pending(new Uint8Array(this.custody.envelope),e),this.check(e.signal);let o=await this.session.connectorBearer(e);if(this.check(e.signal),typeof o!="string"||!o||o.length>16*1024||/[^\x21-\x7e]/.test(o))throw wt("binding");let s=await this.json("/v1/next/devices/challenge",o,void 0,e.signal);if(this.check(e.signal),typeof s.challenge!="string"||!/^[0-9a-f]{64}$/.test(s.challenge)||typeof s.expires_at!="number"||!Number.isSafeInteger(s.expires_at)||s.expires_at-this.now()<=5e3||s.expires_at-this.now()>16*6e4)throw wt("response");t=Uint8Array.from(s.challenge.match(/../g).map(l=>parseInt(l,16)));let r=this.runtime.signCpEnrol(t);this.check(e.signal),i=r.signature;let a=await this.json("/v1/next/devices",o,JSON.stringify({device_id:this.scope.deviceId,kind:this.scope.kind,capabilities:["collection_mode_switch_v1"],challenge:s.challenge,sign_pk:Nh(r.signPublicKey),kem_pk:Nh(r.kemPublicKey),noise_pk:Nh(r.noisePublicKey),sig:Nh(i)}),e.signal);if(this.check(e.signal),a.device_id!==this.scope.deviceId)throw wt("response");let c=Object.freeze({connectorId:this.scope.connectorId,deviceId:this.scope.deviceId,installationId:this.scope.installationId,signPublicKey:new Uint8Array(r.signPublicKey),kemPublicKey:new Uint8Array(r.kemPublicKey),noisePublicKey:new Uint8Array(r.noisePublicKey)});return await this.persistence.registered(c,e),this.check(e.signal),this.runtime.acknowledgeDeviceRegistration(c),c}catch(o){throw this.close(),o instanceof ts?o:wt("unavailable")}finally{t?.fill(0),i?.fill(0)}}close(){this.lifetime.signal.aborted||(this.lifetime.abort(),this.custody.envelope.fill(0),this.runtime.retireLog())}};Je();ge();var Wt=()=>new Error("app device key custody unavailable; preserve storage and reopen"),al=class{constructor(e,t,i){this.pin=e;this.key=t;this.store=i;try{this.scope=Object.freeze({accountId:e.accountId,connectorId:e.connectorId,deviceId:e.deviceId,installationId:e.installationId}),this.current=e.isCurrent,this.owned=e.installationOwned;let o=[this.scope.accountId,this.scope.connectorId,this.scope.deviceId,this.scope.installationId].map(U);if(o.some(s=>s.every(r=>r===0))||t.type!=="secret"||t.extractable||t.algorithm.name!=="AES-GCM"||t.algorithm.length!==256||!t.usages.includes("encrypt")||!t.usages.includes("decrypt"))throw Wt();this.namespace=`mdbase.app-device-keys.v1:${o.map(s=>Array.from(s,r=>r.toString(16).padStart(2,"0")).join("")).join(":")}`,this.aad=ce(["mdbase/v1/app-device-keys-platform",...o]),this.check(new AbortController().signal)}catch{throw Wt()}}pin;key;store;scope;namespace;aad;current;owned;attempted=!1;check(e){try{if(e.aborted||this.pin.isCurrent!==this.current||this.pin.installationOwned!==this.owned||this.current.call(this.pin)!==!0||this.owned.call(this.pin)!==!0||this.pin.accountId!==this.scope.accountId||this.pin.connectorId!==this.scope.connectorId||this.pin.deviceId!==this.scope.deviceId||this.pin.installationId!==this.scope.installationId)throw Wt()}catch{throw Wt()}}async openNativeDevice(e,t){let i=null,o=null,s=!1;try{if(this.attempted)throw Wt();this.attempted=!0;let r=t.signal,a=t.mode;if(this.check(r),!["fresh","existing"].includes(a)||t.noise.mode!==a||t.noise.mode==="existing"&&!(t.noise.envelope instanceof Uint8Array))throw Wt();let c=t.noise.mode==="fresh"?{mode:"fresh"}:{mode:"existing",envelope:new Uint8Array(t.noise.envelope)};if(c.mode==="existing"&&(!c.envelope.length||c.envelope.length>1024))throw Wt();let l=await this.store.read(this.namespace,{signal:r});if(this.check(r),a==="fresh"){if(l!==null)throw Wt();i=globalThis.crypto.getRandomValues(new Uint8Array(64));let u=globalThis.crypto.getRandomValues(new Uint8Array(12)),f=new Uint8Array(await globalThis.crypto.subtle.encrypt({name:"AES-GCM",iv:u,additionalData:new Uint8Array(this.aad),tagLength:128},this.key,i));if(this.check(r),o=ce(new Map([[0,1],[1,u],[2,f]])),await this.store.create(this.namespace,o,{signal:r})!==!0)throw Wt();this.check(r)}else{if(!(l instanceof Uint8Array)||l.length===0||l.length>256)throw Wt();o=new Uint8Array(l);let u=ue(o);if(!(u instanceof Map))throw Wt();let f=u;if(f.size!==3||f.get(0)!==1)throw Wt();let h=f.get(1),m=f.get(2);if(!(h instanceof Uint8Array)||h.length!==12||!(m instanceof Uint8Array)||m.length!==80||(i=new Uint8Array(await globalThis.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(h),additionalData:new Uint8Array(this.aad),tagLength:128},this.key,new Uint8Array(m))),this.check(r),i.length!==64))throw Wt()}this.check(r);let p=Object.freeze({connectorId:this.scope.connectorId,deviceId:this.scope.deviceId,installationId:this.scope.installationId,isCurrent:()=>{try{return this.check(r),!0}catch{return!1}}});s=!0;let d=e.openDeviceConsuming({pin:p,signSecretKey:i.subarray(0,32),kemSecretKey:i.subarray(32),opened:c});return this.check(r),d}catch{if(s)try{e.retireLog()}catch{}throw Wt()}finally{i?.fill(0),o?.fill(0)}}};Jn();ge();var Uh="device-key-kek",cI="original-device-kek",vt=()=>new Error("app device key provider unavailable; preserve storage and reopen");function Dh(n){if(typeof globalThis.CryptoKey!="function"||!(n instanceof CryptoKey)||n.type!=="secret"||n.extractable||n.algorithm.name!=="AES-GCM"||n.algorithm.length!==256||n.usages.length!==2||!n.usages.includes("encrypt")||!n.usages.includes("decrypt"))throw vt();return n}function wT(n){if(n===void 0)return null;if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||!Object.hasOwn(n,"version")||!Object.hasOwn(n,"key")||n.version!==1)throw vt();return Dh(n.key)}var ll=class n{constructor(e,t,i){this.source=e;this.origin=t;this.lifetime=i;this.scope=Object.freeze({accountId:e.accountId,connectorId:e.connectorId,deviceId:e.deviceId,installationId:e.installationId}),this.current=e.isCurrent,this.owned=e.installationOwned}source;origin;lifetime;db=null;value=null;closed=!1;loaned=!1;scope;current;owned;static async open(e){let t=null;try{let{source:i,origin:o,mode:s,signal:r}=e;t=new n(i,o,r);let a=Object.values(t.scope).map(u=>{let f=U(u);if(f.every(h=>h===0))throw vt();return Array.from(f,h=>h.toString(16).padStart(2,"0")).join("")});if(!Lt(o,e.allowLoopbackHttp===!0,e.allowNativeLoopbackHttp===!0?"native":void 0)||!["fresh","existing"].includes(s)||!globalThis.indexedDB||!globalThis.crypto?.subtle||typeof globalThis.CryptoKey!="function")throw vt();t.check(r);let c=crypto.subtle.generateKey.bind(crypto.subtle),l=`mdbase.app.device-key-kek.v1.${a.join(".")}`,p=await t.openDatabase(l,s);t.db=p,p.onversionchange=()=>t.close(),t.check(r);let d=await t.transaction("readonly",r,null);if(t.check(r),s==="existing"){if(d===null||typeof d=="boolean")throw vt();t.value=d}else{if(d!==null)throw vt();let u=Dh(await c({name:"AES-GCM",length:256},!1,["encrypt","decrypt"]));if(t.check(r),await t.transaction("readwrite",r,u)!==!0)throw vt();t.check(r),t.value=u}return t.check(r),t}catch{throw t?.close(),vt()}}check(e){try{if(this.closed||this.lifetime.aborted||e.aborted||Rt()!==this.origin||this.source.isCurrent!==this.current||this.source.installationOwned!==this.owned||this.current.call(this.source)!==!0||this.owned.call(this.source)!==!0||Object.entries(this.scope).some(([t,i])=>this.source[t]!==i))throw vt()}catch{throw vt()}}openDatabase(e,t){return new Promise((i,o)=>{this.check(this.lifetime);let s=indexedDB.open(e,1),r=!1,a=!1,c=()=>{r=!0,o(vt())};this.lifetime.addEventListener("abort",c,{once:!0});let l=()=>this.lifetime.removeEventListener("abort",c);s.onblocked=c,s.onupgradeneeded=()=>{try{if(this.check(this.lifetime),r||t!=="fresh"||s.result.objectStoreNames.length!==0)throw vt();s.result.createObjectStore(Uh),a=!0}catch{s.transaction?.abort()}},s.onerror=()=>{l(),o(vt())},s.onsuccess=()=>{l();try{if(this.check(this.lifetime),r||t==="fresh"&&!a||s.result.objectStoreNames.length!==1||!s.result.objectStoreNames.contains(Uh))throw vt();i(s.result)}catch{s.result.close(),o(vt())}}})}transaction(e,t,i){return new Promise((o,s)=>{if(this.check(t),!this.db)throw vt();let r=this.db.transaction(Uh,e,{durability:"strict"}),a=r.objectStore(Uh),c=null,l=!1,p=()=>{l=!0;try{r.abort()}catch{}};t.addEventListener("abort",p,{once:!0}),this.lifetime.addEventListener("abort",p,{once:!0});let d=()=>{t.removeEventListener("abort",p),this.lifetime.removeEventListener("abort",p)};r.onerror=r.onabort=()=>{d(),c=null,s(vt())},r.oncomplete=()=>{d();try{if(this.check(t),l)throw vt();o(c)}catch{c=null,s(vt())}};let u=a.get(cI);u.onsuccess=()=>{try{this.check(t);let f=wT(u.result);e==="readonly"?c=f:(c=f===null,c===!0&&i!==null&&a.add({version:1,key:Dh(i)},cI))}catch{p()}}})}deviceCustodyKek(e){if(this.check(e.signal),this.loaned||!this.value)throw vt();return this.loaned=!0,Dh(this.value)}close(){this.closed||(this.closed=!0,this.value=null,this.db?.close(),this.db=null)}};Jn();ge();var $h="original-device-keys",pI="custody",vT=256,sn=()=>new Error("app device key custody store unavailable");function dI(n){if(!(n instanceof Uint8Array)||!n.length||n.length>vT)throw sn();return new Uint8Array(n)}var cl=class n{constructor(e,t,i,o,s){this.db=e;this.source=t;this.scope=i;this.namespace=o;this.origin=s;this.current=t.isCurrent,this.owned=t.installationOwned,e.onversionchange=()=>this.close()}db;source;scope;namespace;origin;closed=!1;current;owned;static async open(e){try{return await this.openChecked(e)}catch{throw sn()}}static async openChecked(e){let{source:t,signal:i,mode:o,origin:s}=e,r=Object.freeze({accountId:t.accountId,connectorId:t.connectorId,deviceId:t.deviceId,installationId:t.installationId}),a=t.isCurrent,c=t.installationOwned,l=()=>{try{return!i.aborted&&t.isCurrent===a&&t.installationOwned===c&&a.call(t)===!0&&c.call(t)===!0&&Object.keys(r).every(m=>t[m]===r[m])}catch{return!1}},p=[r.accountId,r.connectorId,r.deviceId,r.installationId].map(m=>{let b=U(m);if(b.every(w=>w===0))throw sn();return Array.from(b,w=>w.toString(16).padStart(2,"0")).join("")});if(!Lt(s,e.allowLoopbackHttp===!0,e.allowNativeLoopbackHttp===!0?"native":void 0)||Rt()!==s||!["fresh","existing"].includes(o)||!l()||!globalThis.indexedDB)throw sn();let d=`mdbase.app-device-keys.v1:${p.join(":")}`,u=`mdbase.app.device-keys.v1.${p.join(".")}`,f=await new Promise((m,b)=>{let w=indexedDB.open(u,1),g=!1,y=()=>{g=!0,b(sn())};i.addEventListener("abort",y,{once:!0});let v=()=>i.removeEventListener("abort",y);w.onblocked=y,w.onupgradeneeded=()=>{if(g||o!=="fresh"||!l()||w.result.objectStoreNames.length!==0){w.transaction?.abort();return}w.result.createObjectStore($h)},w.onerror=()=>{v(),b(sn())},w.onsuccess=()=>{if(v(),g||!l()||w.result.objectStoreNames.length!==1||!w.result.objectStoreNames.contains($h)){w.result.close(),b(sn());return}m(w.result)}}),h=new n(f,t,r,d,s);try{h.check(i);let m=await h.read(d,{signal:i});try{if(o==="fresh"!=(m===null))throw sn();return h.check(i),h}finally{m?.fill(0)}}catch{throw h.close(),sn()}}check(e,t=this.namespace){try{if(this.closed||e.aborted||t!==this.namespace||Rt()!==this.origin||this.source.isCurrent!==this.current||this.source.installationOwned!==this.owned||this.current.call(this.source)!==!0||this.owned.call(this.source)!==!0||Object.keys(this.scope).some(i=>this.source[i]!==this.scope[i]))throw sn()}catch{throw sn()}}async read(e,t){let i=await this.transaction("readonly",e,t.signal,null);try{return this.check(t.signal,e),i}catch{throw i instanceof Uint8Array&&i.fill(0),sn()}}async create(e,t,i){this.check(i.signal,e);let o=dI(t);try{let s=await this.transaction("readwrite",e,i.signal,o);return this.check(i.signal,e),s===!0}finally{o.fill(0)}}transaction(e,t,i,o){return new Promise((s,r)=>{this.check(i,t);let a=this.db.transaction($h,e,{durability:"strict"}),c=a.objectStore($h),l=null,p=!1,d=()=>{p=!0;try{a.abort()}catch{}},u=()=>i.removeEventListener("abort",d);i.addEventListener("abort",d,{once:!0}),a.onabort=a.onerror=()=>{u(),l instanceof Uint8Array&&l.fill(0),r(sn())},a.oncomplete=()=>{u();try{if(this.check(i,t),p)throw sn();s(l)}catch{l instanceof Uint8Array&&l.fill(0),r(sn())}};let f=c.get(pI);f.onsuccess=()=>{let h=null;try{this.check(i,t),h=f.result===void 0?null:dI(f.result),e==="readonly"?(l=h,h=null):(l=h===null,l===!0&&o!==null&&c.add(new Uint8Array(o),pI))}catch{d()}finally{h?.fill(0)}}})}close(){this.closed||(this.closed=!0,this.db.close())}};Je();ge();var Me=()=>new Error("app Noise custody unavailable; preserve storage and reopen"),gp=(n,e)=>n.length===e.length&&n.every((t,i)=>t===e[i]),pl=class{constructor(e,t,i){this.pin=e;this.key=t;this.store=i;try{this.scope=Object.freeze({connectorId:e.connectorId,deviceId:e.deviceId,installationId:e.installationId});let o=[this.scope.connectorId,this.scope.deviceId,this.scope.installationId].map(U);if(o.some(s=>s.every(r=>r===0))||t.type!=="secret"||t.extractable||t.algorithm.name!=="AES-GCM"||t.algorithm.length!==256||!t.usages.includes("encrypt")||!t.usages.includes("decrypt"))throw Me();this.namespace=`mdbase.app-noise.v1:${this.scope.connectorId}:${this.scope.deviceId}:${this.scope.installationId}`,this.aad=ce(["mdbase/v1/app-noise-platform",...o]),this.check(new AbortController().signal)}catch{throw Me()}}pin;key;store;scope;namespace;aad;check(e){try{if(e.aborted||this.pin.isCurrent()!==!0||this.pin.connectorId!==this.scope.connectorId||this.pin.deviceId!==this.scope.deviceId||this.pin.installationId!==this.scope.installationId)throw Me()}catch{throw Me()}}receiptValue(e){if(e.connectorId!==this.scope.connectorId||e.deviceId!==this.scope.deviceId||e.installationId!==this.scope.installationId)throw Me();let t=[e.signPublicKey,e.kemPublicKey,e.noisePublicKey];if(t.some(i=>!(i instanceof Uint8Array)||i.length!==32||i.every(o=>o===0)))throw Me();return t.map(i=>new Uint8Array(i))}receipt(e){if(e===null)return null;if(!Array.isArray(e)||e.length!==3||e.some(t=>!(t instanceof Uint8Array)||t.length!==32||t.every(i=>i===0)))throw Me();return Object.freeze({...this.scope,signPublicKey:new Uint8Array(e[0]),kemPublicKey:new Uint8Array(e[1]),noisePublicKey:new Uint8Array(e[2])})}markerValue(e){let t=U(e.collection);if(t.every(i=>i===0)||typeof e.acknowledged!="boolean"||!(e.sasCommitment instanceof Uint8Array)||e.sasCommitment.length!==32||e.sasCommitment.every(i=>i===0))throw Me();return[t,...this.receiptValue(e),new Uint8Array(e.sasCommitment),e.acknowledged]}marker(e,t){if(e===null)return null;if(!t||!Array.isArray(e)||e.length!==6||!(e[0]instanceof Uint8Array)||e[0].length!==16||e[0].every(r=>r===0)||typeof e[5]!="boolean")throw Me();let i=this.receipt(e.slice(1,4));for(let r of["signPublicKey","kemPublicKey","noisePublicKey"])if(!gp(i[r],t[r]))throw Me();let o=e[4];if(!(o instanceof Uint8Array)||o.length!==32||o.every(r=>r===0))throw Me();let s=Array.from(e[0],r=>r.toString(16).padStart(2,"0")).join("");return Object.freeze({...i,collection:`${s.slice(0,8)}-${s.slice(8,12)}-${s.slice(12,16)}-${s.slice(16,20)}-${s.slice(20)}`,sasCommitment:new Uint8Array(o),acknowledged:e[5]})}async restore(e){let t=await this.read(e);return this.check(e.signal),t?.value??null}async read(e){let t=null,i=null;try{this.check(e.signal);let o=await this.store.read(this.namespace,e);if(this.check(e.signal),o===null)return null;if(!(o instanceof Uint8Array)||o.length===0||o.length>4096)throw Me();t=new Uint8Array(o);let s=ue(t);if(!(s instanceof Map))throw Me();let r=s,a=r.get(1),c=r.get(2);if(r.size!==3||r.get(0)!==1||!(a instanceof Uint8Array)||a.length!==12||!(c instanceof Uint8Array)||c.length<16||c.length>2064||(i=new Uint8Array(await globalThis.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(a),additionalData:new Uint8Array(this.aad),tagLength:128},this.key,new Uint8Array(c))),this.check(e.signal),i.length>2048))throw Me();let l=ue(i);if(!(l instanceof Map))throw Me();let p=l,d=p.get(1);if(!(p.get(0)===1&&p.size===3||p.get(0)===2&&p.size===4&&p.has(3))||!(d instanceof Uint8Array)||d.length===0||d.length>1024||!p.has(2))throw Me();let u=this.receipt(p.get(2)),f=p.get(0)===2?this.marker(p.get(3),u):null;return{value:Object.freeze({envelope:new Uint8Array(d),receipt:u,privateEnrolMarker:f}),encrypted:new Uint8Array(t)}}catch{throw Me()}finally{t?.fill(0),i?.fill(0)}}async write(e,t,i,o,s=null){let r=null,a=null;try{if(this.check(o.signal),!(e instanceof Uint8Array)||!e.length||e.length>1024)throw Me();let c=new Map([[0,s===null?1:2],[1,new Uint8Array(e)],[2,t===null?null:this.receiptValue(t)]]);if(s!==null){let u=this.markerValue(s);this.marker(u,t),c.set(3,u)}if(r=ce(c),r.length>2048)throw Me();let l=globalThis.crypto.getRandomValues(new Uint8Array(12)),p=new Uint8Array(await globalThis.crypto.subtle.encrypt({name:"AES-GCM",iv:l,additionalData:new Uint8Array(this.aad),tagLength:128},this.key,new Uint8Array(r)));this.check(o.signal),a=ce(new Map([[0,1],[1,l],[2,p]]));let d=await this.store.compareAndSet(this.namespace,i,a,o);if(this.check(o.signal),d!==!0)throw Me()}catch{throw Me()}finally{r?.fill(0),a?.fill(0)}}async pending(e,t){let i=await this.read(t);if(this.check(t.signal),i){if(!gp(i.value.envelope,e))throw Me();return}await this.write(e,null,null,t),this.check(t.signal)}async privateEnrolPending(e,t){try{if(e.acknowledged!==!1)throw Me();await this.writePrivateMarker(e,!1,t)}catch{throw Me()}}async privateEnrolAcknowledged(e,t){try{await this.writePrivateMarker(e,!0,t)}catch{throw Me()}}async writePrivateMarker(e,t,i){this.check(i.signal);let o=this.marker(this.markerValue(e),e),s=await this.read(i);if(this.check(i.signal),!s?.value.receipt)throw Me();for(let a of["signPublicKey","kemPublicKey","noisePublicKey"])if(!gp(o[a],s.value.receipt[a]))throw Me();let r=s.value.privateEnrolMarker;if(r){if(r.collection!==o.collection||!gp(r.sasCommitment,o.sasCommitment))throw Me();if(r.acknowledged){if(!t)throw Me();return}if(!t)return}else if(t)throw Me();await this.write(s.value.envelope,s.value.receipt,s.encrypted,i,Object.freeze({...o,acknowledged:t})),this.check(i.signal)}async registered(e,t){let i=await this.read(t);if(this.check(t.signal),!i)throw Me();if(i.value.receipt){for(let o of["signPublicKey","kemPublicKey","noisePublicKey"])if(!gp(i.value.receipt[o],e[o]))throw Me();this.receiptValue(e);return}await this.write(i.value.envelope,e,i.encrypted,t),this.check(t.signal)}};Jn();ge();var zh="opaque-noise",uI="custody",_T=4096,wn=()=>new Error("app noise custody store unavailable");function Uw(n){if(!(n instanceof Uint8Array)||n.byteLength<1||n.byteLength>_T)throw wn();return new Uint8Array(n)}function AT(n,e){return n===null||e===null?n===e:n.length===e.length&&n.every((t,i)=>t===e[i])}function Dw(n){if(U(n).every(t=>t===0))throw wn();return n.toLowerCase()}function $w(n,e){try{return n.isCurrent()===!0&&n.connectorId===e[0]&&n.deviceId===e[1]&&n.installationId===e[2]}catch{return!1}}var dl=class n{constructor(e,t,i,o){this.db=e;this.source=t;this.pins=i;this.origin=o;e.onversionchange=()=>this.close()}db;source;pins;origin;closed=!1;static async open(e){try{return await this.openChecked(e)}catch{throw wn()}}static async openChecked(e){let{source:t,signal:i}=e,o=[t.connectorId,t.deviceId,t.installationId];if(!Lt(e.origin,e.allowLoopbackHttp===!0,e.allowNativeLoopbackHttp===!0?"native":void 0)||Rt()!==e.origin||!["fresh","existing"].includes(e.mode)||i.aborted||!$w(t,o)||typeof globalThis.indexedDB>"u")throw wn();let s=`mdbase.app.noise.v1.${Dw(o[2])}.${Dw(o[0])}.${Dw(o[1])}`,r=await new Promise((c,l)=>{let p=indexedDB.open(s,1),d=!1,u=()=>{d=!0,l(wn())};i.addEventListener("abort",u,{once:!0});let f=()=>i.removeEventListener("abort",u);p.onblocked=u,p.onupgradeneeded=()=>{if(d||i.aborted||e.mode!=="fresh"||!$w(t,o)||p.result.objectStoreNames.length!==0){p.transaction?.abort();return}p.result.createObjectStore(zh)},p.onerror=()=>{f(),l(wn())},p.onsuccess=()=>{if(f(),d||i.aborted||p.result.objectStoreNames.length!==1||!p.result.objectStoreNames.contains(zh)){p.result.close(),l(wn());return}c(p.result)}}),a=new n(r,t,o,e.origin);try{let c=await a.read(a.namespace,{signal:i});if(e.mode==="fresh"!=(c===null))throw wn();return c?.fill(0),a.check(i),a}catch{throw a.close(),wn()}}get namespace(){return`mdbase.app-noise.v1:${this.pins[0]}:${this.pins[1]}:${this.pins[2]}`}check(e,t=this.namespace){if(this.closed||e.aborted||t!==this.namespace||Rt()!==this.origin||!$w(this.source,this.pins))throw wn()}async read(e,t){this.check(t.signal,e);let i=await this.transaction("readonly",t.signal,null,null);try{return this.check(t.signal),i}catch{throw i instanceof Uint8Array&&i.fill(0),wn()}}async compareAndSet(e,t,i,o){this.check(o.signal,e);let s=null,r=null;try{s=t===null?null:Uw(t),r=Uw(i);let a=await this.transaction("readwrite",o.signal,s,r);return this.check(o.signal),a===!0}finally{s?.fill(0),r?.fill(0)}}transaction(e,t,i,o){return new Promise((s,r)=>{this.check(t);let a=this.db.transaction(zh,e,{durability:"strict"}),c=a.objectStore(zh),l=null,p=!1,d=()=>{p=!0;try{a.abort()}catch{}},u=()=>t.removeEventListener("abort",d);t.addEventListener("abort",d,{once:!0}),a.onabort=a.onerror=()=>{u(),l instanceof Uint8Array&&l.fill(0),r(wn())},a.oncomplete=()=>{u();try{if(this.check(t),p)throw wn();s(l)}catch{l instanceof Uint8Array&&l.fill(0),r(wn())}};let f=c.get(uI);f.onsuccess=()=>{let h=null;try{this.check(t),h=f.result===void 0?null:Uw(f.result),e==="readonly"?(l=h,h=null):(l=AT(h,i),l===!0&&o!==null&&c.put(new Uint8Array(o),uI))}catch{d()}finally{h?.fill(0)}}})}close(){this.closed||(this.closed=!0,this.db.close())}};Qc();Zc();bt();ge();ie();var ki=()=>A("unavailable","people metadata is unavailable","people_response");function fI(n){if(!n||typeof n!="object"||Array.isArray(n))throw ki();return n}function hI(n){if(typeof n=="number"&&!Number.isSafeInteger(n))throw ki();let e=BigInt(n);if(e<0n||e>(1n<<64n)-1n)throw ki();return e}var ul=class{constructor(e,t={}){this.session=e;this.rawOrigin=e.cpOrigin;let i=new URL(this.rawOrigin);if(i.username||i.password||i.pathname!=="/"||i.search||i.hash||i.protocol!=="https:"&&!(t.allowLoopbackHttp===!0&&ot(e.cpOrigin)))throw A("invalid_request","invalid people CP origin","people_binding");this.cpOrigin=i.origin,this.collection=e.collection,this.connector=e.connectorId,this.device=e.deviceId,this.ep=hI(e.endpoint);for(let o of[this.collection,this.connector,this.device])if(U(o).every(s=>s===0))throw A("invalid_request","nil people binding","people_binding");if(this.fetchImpl=t.fetch??globalThis.fetch,!this.isCurrent())throw A("unauthenticated","people scope is not current","people_fenced")}session;cpOrigin;rawOrigin;collection;connector;device;ep;fetchImpl;lifetime=new AbortController;isCurrent(){try{return!this.lifetime.signal.aborted&&this.session.isCurrent()===!0&&this.session.cpOrigin===this.rawOrigin&&this.session.collection===this.collection&&this.session.connectorId===this.connector&&this.session.deviceId===this.device&&hI(this.session.endpoint)===this.ep}catch{return!1}}check(e){if(e?.throwIfAborted(),!this.isCurrent())throw A("unauthenticated","people scope changed","people_fenced")}async request(e,t={}){if(e!=="identity"&&e!=="members")throw A("invalid_request","invalid people resource");this.check(t.signal);let i=new AbortController,o=()=>i.abort();t.signal?.addEventListener("abort",o,{once:!0}),this.lifetime.signal.addEventListener("abort",o,{once:!0});let s=setTimeout(o,15e3);s.unref?.();let r=new Uint8Array(1024*1024),a=0,c,l;try{let p=await this.session.connectorBearer({signal:i.signal});if(this.check(t.signal),i.signal.aborted)throw ki();if(typeof p!="string"||!/^(idev_|ct_)/.test(p)||p.length>16*1024||/[^\x21-\x7e]/.test(p))throw A("unauthenticated","invalid people credential","people_binding");let d=this.fetchImpl;if(c=await d(`${this.cpOrigin}/v1/authorities/${this.collection}/${e}?device_id=${this.device}`,{method:"GET",headers:{authorization:`Bearer ${p}`},signal:i.signal,redirect:"error",credentials:"omit",cache:"default",referrerPolicy:"no-referrer"}),this.check(t.signal),i.signal.aborted)throw ki();let u=c.headers.get("content-length");if(u!==null&&/^(0|[1-9][0-9]*)$/.test(u)&&Number(u)>r.length||!c.body)throw ki();for(l=c.body.getReader();;){let{done:h,value:m}=await l.read();try{if(this.check(t.signal),i.signal.aborted)throw ki();if(h)break;if(a+m.length>r.length)throw ki();r.set(m,a),a+=m.length}finally{m?.fill(0)}}let f=fI(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(r.subarray(0,a))));if(this.check(t.signal),c.status===401)throw A("unauthenticated","people credential is no longer current","people_fenced");if(c.status===403){let h=fI(f.error);throw A("forbidden","people access was refused",e==="members"&&h.code==="people_permission_declined"?"people_permission_declined":"people_access")}if(c.status===404)throw A("upgrade_required","people metadata is unsupported","people_unsupported");if(!c.ok)throw ki();return f}catch(p){throw this.check(t.signal),p instanceof pe?p:ki()}finally{i.abort(),r.fill(0),(l?.cancel()??c?.body?.cancel())?.catch(()=>{}),l?.releaseLock(),clearTimeout(s),t.signal?.removeEventListener("abort",o),this.lifetime.signal.removeEventListener("abort",o)}}close(){this.lifetime.abort()}};Xc();Je();ge();ie();At();Cr();Je();ge();Fn();var mI=16*1024*1024,kT=9*1024*1024,ST=64,PT=64*1024*1024,xT=new Set(["append","read","head","subscribe","unsubscribe","put_object","get_object","has_objects","put_snapshot","get_snapshot","endorse_snapshot","stream_join","stream_leave","stream_send"]),pt=class extends Error{constructor(t){super(`app log host: ${t}`);this.reason=t;this.name="AppLogHostError"}reason};function ns(n){if((typeof n!="number"||!Number.isSafeInteger(n))&&typeof n!="bigint")throw new pt("invalid_call");let e=BigInt(n);if(e<0n||e>(1n<<64n)-1n)throw new pt("invalid_call");return e}function Bh(n,e){return n.length===e.length&&n.every((t,i)=>t===e[i])}var CT=new Set(["read","head","subscribe","get_object","has_objects","put_object","get_snapshot"]),IT=6;function yI(n){try{return n.server}catch{return null}}function OT(n){try{return n.reason}catch{return null}}function zw(n,e=globalThis.navigator?.onLine){let t=yI(n);if(An(t)){let i=t.retryAfterMs;return t.status===429?{kind:"rate_limited",retryAfterMs:i}:t.status>=500?{kind:"server_busy",retryAfterMs:i}:t.status===401||t.status===403?{kind:"auth"}:null}return OT(n)!=="unavailable"?null:e===!1?{kind:"offline"}:{kind:"unreachable"}}var is=class{constructor(e,t,i){this.runtime=e;this.transport=t;try{if(this.endpoint=ns(i.endpoint),this.collection=U(i.collection),ns(t.endpoint)!==this.endpoint||!Bh(U(t.collection),this.collection))throw new Error}catch{throw new pt("invalid_binding")}if(this.rounds=i.maxRounds??64,!Number.isSafeInteger(this.rounds)||this.rounds<1||this.rounds>64)throw new RangeError("invalid app log pump rounds")}runtime;transport;abort=new AbortController;endpoint;collection;rounds;work=null;closed=!1;failed=!1;retired=!1;problem=null;terminal=null;health=null;sent=0;readAfter=[-1n,-1n];readAdvances=0;get fenced(){return this.failed}get callsSent(){return this.sent}get readProgress(){return this.readAdvances}responseProgress(){return this.transport.responseProgress?.()??[]}get serverProblem(){return this.problem}get terminalProblem(){return this.terminal}get transportHealth(){return this.health}current(){if(this.closed||this.failed)return!1;if(ns(this.transport.endpoint)!==this.endpoint||!Bh(U(this.transport.collection),this.collection))throw new pt("invalid_binding");return this.transport.isCurrent()===!0?!0:(this.retire(),!1)}retire(){if(this.closed=!0,this.abort.abort(),!this.retired){this.retired=!0;try{this.runtime.retireLog()}catch{throw this.failed=!0,new pt("fenced")}}}capture(e){if(!Array.isArray(e)||e.length>ST)throw new pt("invalid_call");let t=0,i=new Set,o=[];try{for(let s of e){if(ns(s.endpoint)!==this.endpoint||!(s.frame instanceof Uint8Array)||s.frame.length>mI||s.sidecar!==void 0&&(!(s.sidecar instanceof Uint8Array)||s.sidecar.length>kT))throw new pt("invalid_call");if(t+=s.frame.length+(s.sidecar?.length??0),t>PT)throw new pt("invalid_call");let r=ue(s.frame);if(!(r instanceof Map))throw new pt("invalid_call");let a=r;if(a.size!==4||a.get(0)!==0||!xT.has(a.get(2)))throw new pt("invalid_call");let c=ns(a.get(1));if(i.has(c))throw new pt("invalid_call");i.add(c);let l=a.get(3),p=l instanceof Map?l.get(0):void 0;if(!(p instanceof Uint8Array)||!Bh(p,this.collection)||s.sidecar!==void 0&&a.get(2)!=="put_object")throw new pt("invalid_call");if(s.sidecar!==void 0){let u=l,f=u.get(4);if(s.sidecar.length<=1024*1024||ns(u.get(3))!==BigInt(s.sidecar.length)||u.has(5)||!(f instanceof Uint8Array)||!Bh(f,it(s.sidecar)))throw new pt("invalid_call")}let d=a.get(2)==="read"?{after:ns(l.get(1)),control:l.get(3)===1}:void 0;o.push({id:c,method:a.get(2),...d?{read:d}:{},call:{endpoint:this.endpoint,frame:s.frame.slice(),...s.sidecar?{sidecar:s.sidecar.slice()}:{}}})}return o}catch{for(let s of o)this.wipe(s);throw new pt("invalid_call")}}wipe(e){e.call.frame.fill(0),e.call.sidecar?.fill(0)}pump(){return this.work?this.work:this.failed?Promise.reject(new pt("fenced")):this.closed?Promise.resolve({quiet:!0}):(this.work=Promise.resolve().then(()=>this.drive()).finally(()=>{this.work=null}),this.work)}async drive(){try{for(let e=0;e<this.rounds;e++){if(!this.current())return{quiet:!0};let t=this.capture(this.runtime.takeLogCalls());if(!t.length)return{quiet:!0};this.sent+=t.length;let i=[];try{for(let o=0;o<t.length;){if(!this.current())return{quiet:!0};let s=o+1,r=l=>CT.has(t[l].method);if(r(o))for(;s<t.length&&s-o<IT&&r(s);)s++;let a=t.slice(o,s);o=s;let c=a.map(l=>this.transport.send(l.call,{signal:this.abort.signal}).then(p=>({reply:p,error:null}),p=>({reply:null,error:p})));i.push(...c);for(let[l,p]of a.entries()){let{reply:d,error:u}=await c[l];if(d===null){if(!this.current())return{quiet:!0};let f=yI(u);if(An(f)){let m=St(f);m&&(this.problem=f),(m||f.status===403&&f.code==="forbidden")&&(this.terminal??=f)}let h=zw(u);h&&(this.health=h),this.runtime.logNoResponse(p.id);continue}try{if(!this.current())return{quiet:!0};if(!(d instanceof Uint8Array)||d.length>mI){this.runtime.logNoResponse(p.id);continue}if(this.runtime.acceptLogReply(p.id,d)!==!0)this.runtime.logNoResponse(p.id);else if(this.problem=null,this.health=null,p.read){let f=p.read.control?1:0;p.read.after>this.readAfter[f]&&(this.readAfter[f]=p.read.after,this.readAdvances++)}}finally{d instanceof Uint8Array&&d.fill(0)}}}}finally{for(let o of await Promise.all(i))o.reply instanceof Uint8Array&&o.reply.fill(0);for(let o of t)this.wipe(o)}}return{quiet:!1}}catch{throw this.failed=!0,this.retire(),new pt("fenced")}}async drainForAuthenticatedReconnect(){if(this.closed||this.failed||this.retired)throw new pt("fenced");if(this.closed=!0,this.abort.abort(),this.retired=!0,await this.work?.catch(()=>{}),this.failed)throw new pt("fenced")}async close(){this.retire(),await this.work?.catch(()=>{})}};no();Go();function bp(n,e,t=0,i={nodes:0}){if(t>32||++i.nodes>65536)throw A("invalid_request","resource DATA exceeds bound");if(n===null||typeof n=="boolean"||typeof n=="string"||typeof n=="number"&&Number.isFinite(n))return n;if(Array.isArray(n))return n.map(r=>bp(r,e,t+1,i));let o=e?n!==null&&typeof n=="object"&&Object.getPrototypeOf(n)===Object.prototype?Object.entries(n):null:n instanceof Map?[...n]:null;if(!o)throw A("invalid_request","invalid resource DATA");let s=new Map;for(let[r,a]of o){if(typeof r!="string"||s.has(r))throw A("invalid_request","invalid resource DATA");s.set(r,bp(a,e,t+1,i))}return e?s:Object.fromEntries(s)}var an=class extends Error{reason="strict_device_approval";constructor(){super("this account uses strict device approval; add this device from your desktop"),this.name="AppStrictDeviceApprovalError"}},M=()=>A("unavailable","app runtime unavailable; reopen and reconcile");function gI(n){if(!(n instanceof Uint8Array)||n.length===0||n.length>64*1024)throw M();return new Uint8Array(n)}function vn(n){if((typeof n!="number"||!Number.isSafeInteger(n))&&typeof n!="bigint")throw M();let e=BigInt(n);if(e<0n||e>(1n<<64n)-1n)throw M();return e}var bI=(n,e)=>n.length===e.length&&n.every((t,i)=>t===e[i]);function Ht(n){if(!(n instanceof Uint8Array)||n.length!==32)throw M();return n}var fl=class n extends $s{constructor(t,i){super(t);this.sqlBinding=i}sqlBinding;attempted=!1;active=!1;retired=!1;collection=null;deviceId=null;connectorId=null;cpPin=null;deviceAttempted=!1;deviceActive=!1;deviceRegistered=!1;devicePin=null;installationId=null;publicIdentity=null;noiseEnvelope=null;cloudSource=null;cloudCallback=null;cloudCollection=null;cloudPurpose=null;cloudIssued=!1;privateAttempted=!1;privateSource=null;prospectiveCollection=null;privatePurpose=null;sasCommitment=null;privateEnrolAcknowledged=!1;endpoint=null;logGeneration=0n;pump=null;transport=null;get sql(){return this.sqlBinding.sql}get app(){return this.x}static async create(t,i){if(i.needsRecovery)throw M();return this.instantiateApp(t,i)}static async createDevice(t){return this.instantiateApp(t,null)}static async instantiateApp(t,i){let o={sql:i,exports:null,run:null},s=await this.load(t,a=>(o.exports=a,o.run=i?.import(a)??null,{host_app_sql:(c,l)=>o.run?.(c,l)??0n})),r=["rt_app_account_key_unlock","rt_app_account_key_status","rt_app_account_key_device_setup","rt_app_private_collection_pin","rt_app_private_enrol_restore","rt_app_private_enrol_commitment","rt_app_private_create_sign","rt_app_private_device_enrol_sign","rt_app_device_open","rt_app_device_registered","rt_app_device_adopt","rt_app_device_retire","rt_app_cp_enrol_sign","rt_app_verify_handover","rt_app_cp_bind_connector","rt_app_cp_log_token_sign","rt_app_open","rt_app_log_bind","rt_app_log_generation","rt_app_log_reconnect","rt_app_log_http_sign","rt_app_log_calls","rt_app_log_reply","rt_app_log_no_response","rt_app_log_retire","rt_app_log_push","rt_app_observations","rt_app_shutdown"];if(!(s.memory instanceof WebAssembly.Memory)||r.some(a=>typeof s[a]!="function"))throw M();return new n(s,o)}open(t){throw M()}fail(){try{(this.active||this.attempted)&&this.sql?.fence()}finally{this.active=!1,this.deviceActive=!1,this.discard()}}guard(t){try{return t()}catch{throw this.fail(),M()}}openAppConsuming(t){let i=null;try{if(this.attempted||this.deviceAttempted||!this.sql||this.sql.needsRecovery)throw M();this.attempted=!0;let o=vn(t.endpoint);if(!Array.isArray(t.trustedRoots)||t.trustedRoots.length<1||t.trustedRoots.length>64||!Array.isArray(t.trustedSigners)||t.trustedSigners.length>1024||!Number.isSafeInteger(t.sqliteVersion)||t.sqliteVersion<0||t.sqliteVersion>4294967295)throw M();let s=t.state==="e2e"?0:t.state==="cloud_copy"?1:-1,r=t.opened==="fresh"?0:t.opened==="existing"?1:t.opened==="unclean"?2:-1;if(s<0||r<0||typeof t.cloudCopyOptIn!="boolean"||s===1!==t.cloudCopyOptIn||(i=En(new Map([[0,3],[1,U(t.collection)],[2,U(t.replicaId)],[3,U(t.deviceId)],[4,o],[5,t.trustedRoots.map(Ht)],[6,t.trustedSigners.map(U)],[7,Ap(t.expectedGenesis)],[8,s],[9,t.cloudCopyOptIn],[10,Ht(t.signSecretKey)],[11,Ht(t.kemSecretKey)],[12,r],[13,t.sqliteVersion],[16,gI(t.policyPins)]])),i.length>64*1024)||this.guard(()=>this.takeOut(this.app.rt_app_open(...this.put(i)))).length)throw M();this.collection=t.collection,this.deviceId=t.deviceId,this.endpoint=o,this.active=!0,this.markOpened()}catch{throw this.retireLog(),this.fail(),M()}finally{i?.fill(0),t.signSecretKey?.fill(0),t.kemSecretKey?.fill(0)}}tick(){this.active&&!this.retired&&this.guard(()=>super.tick())}connect(t={}){if(!this.active||this.retired||t.collection!==void 0&&(typeof t.collection!="string"||t.collection.toLowerCase()!==this.collection?.toLowerCase()))throw M();let i=super.connect(t),o=i.send.bind(i),s=i.close.bind(i);return i.send=r=>this.guard(()=>o(r)),i.close=()=>this.guard(()=>s()),i}executeBases(t,i){return this.readBases(t,i,"execute")}discoverBases(t,i,o){if(i!=="list-views"&&i!=="read-view-source")throw M();return this.readBases(t,o,i)}readBases(t,i,o){let s=this.sessionForPort(t),r=o==="execute"?this.app.rt_app_bases_execute:o==="list-views"?this.app.rt_app_bases_list_views:this.app.rt_app_bases_read_view_source;if(!this.active||this.retired||!this.sql||this.sql.needsRecovery||s===null||typeof r!="function")throw M();if(!(i instanceof Uint8Array)||!i.length||i.length>128*1024)throw A("invalid_request","Bases request bytes exceed bound");let a=new Uint8Array(i);try{let c=this.guard(()=>{let l=vn(r.call(this.app,s,...this.put(a))),p=Number(l&0xffffffffn);if(!p||p>(o==="execute"?16:1)*1024*1024)throw M();return this.takeOut(l)});if(!this.active||this.retired||this.sql.needsRecovery||this.sessionForPort(t)!==s)throw c.fill(0),M();return c}finally{a.fill(0)}}setupResources(t,i,o,s,r){let a=this.sessionForPort(t),c=this.app.rt_app_resources;if(!this.active||this.retired||!this.sql||this.sql.needsRecovery||a===null||typeof c!="function")throw A("unavailable","resource setup unsupported","resource_setup_unsupported");if(i!=="assess"&&i!=="apply"||i==="apply"&&(typeof s!="string"||!/^sha256:[0-9a-f]{64}$/.test(s)))throw M();let l=r!==void 0,p=[1,i==="apply"?1:0,bp(o,!0),s??null];l&&p.push(bp(ei(r),!0));let d=ce(p);if(!d.length||d.length>512*1024)throw d.fill(0),A("invalid_request","resource DATA exceeds bound");let u;try{if(u=this.guard(()=>{let m=vn(c.call(this.app,a,...this.put(d))),b=Number(m&0xffffffffn);if(!b||b>512*1024)throw M();return this.takeOut(m)}),!this.active||this.retired||this.sql.needsRecovery||this.sessionForPort(t)!==a)throw M();let f=this.guard(()=>ue(u));if(!Array.isArray(f)||f.length!==3||f[0]!==1||typeof f[1]!="boolean")throw M();if(f[1]===!1)throw A("unavailable","resource setup unavailable","resource_setup_unavailable");let h=bp(f[2],!1);return i==="assess"?Jo(h,l):xt(h)}finally{d.fill(0),u?.fill(0)}}resourceRejected(t,i){let o=null;try{let s=this.sessionForPort(t),r=this.app.rt_app_receipt_rejected;return!this.active||this.retired||s===null||typeof r!="function"||!/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(i)?!1:(o=U(i),this.guard(()=>r.call(this.app,s,...this.put(o)))===1&&this.active&&!this.retired&&this.sessionForPort(t)===s)}catch{return!1}finally{o?.fill(0)}}verifyHandover(t,i,o){let s=null,r=null;try{let a=this.sessionForPort(t),c=i.collection,l=i.deviceId;if(!this.active||this.retired||a===null||c!==this.collection||i.isCurrent()!==!0||!(o instanceof Uint8Array)||o.length>64*1024)return null;s=new Uint8Array(o),r=U(l);let p=this.guard(()=>this.takeOut(this.app.rt_app_verify_handover(a,...this.put(r),...this.put(s))));if(p.length===0||this.sessionForPort(t)!==a||i.isCurrent()!==!0||i.collection!==c||i.deviceId!==l)return null;let d=this.guard(()=>Lp.dec(ue(p)));return d.seq===0||[d.chain,d.policyGeneration,d.catalogGeneration].some(u=>u===`sha256:${"00".repeat(32)}`)?null:d}catch{return null}finally{s?.fill(0),r?.fill(0)}}bindCpConnector(t){let i=null;try{if(!this.active||this.retired||this.pump||this.cpPin||t.isCurrent()!==!0||t.deviceId!==this.deviceId||t.collection!==this.collection)throw M();let o=t.connectorId;if(i=U(o),i.every(s=>s===0)||this.guard(()=>this.app.rt_app_cp_bind_connector(...this.put(i)))!==1)throw M();this.connectorId=o,this.cpPin=t}catch{throw M()}finally{i?.fill(0)}}deviceCurrent(){try{let t=this.devicePin;return this.deviceActive&&!this.retired&&t!==null&&t.isCurrent()===!0&&t.connectorId===this.connectorId&&t.deviceId===this.deviceId&&t.installationId===this.installationId}catch{return!1}}publicResult(t){if(t.length>1024)throw M();let i=ue(t);if(!(i instanceof Map))throw M();let o=i;if(o.size!==4||[0,1,2,3].some(r=>!o.has(r)))throw M();let s=r=>{let a=o.get(r);if(!(a instanceof Uint8Array)||a.length!==32||a.every(c=>c===0))throw M();return new Uint8Array(a)};return{m:o,identity:Object.freeze({signPublicKey:s(0),kemPublicKey:s(1),noisePublicKey:s(2)})}}openDeviceConsuming(t){let i=null;try{if(this.deviceAttempted||this.attempted||this.retired)throw M();this.deviceAttempted=!0;let o=t.pin;if(this.devicePin=o,this.connectorId=o.connectorId,this.deviceId=o.deviceId,this.installationId=o.installationId,this.deviceActive=!0,!this.deviceCurrent())throw M();let s=[this.connectorId,this.deviceId,this.installationId].map(U);if(s.some(l=>l.every(p=>p===0)))throw M();let r=t.opened;if(r.mode!=="fresh"&&r.mode!=="existing"||r.mode==="existing"&&(!(r.envelope instanceof Uint8Array)||!r.envelope.length||r.envelope.length>1024))throw M();i=En(new Map([[0,1],[1,s[0]],[2,s[1]],[3,s[2]],[4,r.mode==="fresh"?0:1],[5,Ht(t.signSecretKey)],[6,Ht(t.kemSecretKey)],[7,r.mode==="fresh"?new Uint8Array:new Uint8Array(r.envelope)]]));let a=this.guard(()=>this.takeOut(this.app.rt_app_device_open(...this.put(i))));if(!a.length||!this.deviceCurrent())throw M();let c=this.guard(()=>{let{m:l,identity:p}=this.publicResult(a),d=l.get(3);if(!(d instanceof Uint8Array)||!d.length||d.length>1024)throw M();return{...p,envelope:new Uint8Array(d)}});return this.publicIdentity={signPublicKey:new Uint8Array(c.signPublicKey),kemPublicKey:new Uint8Array(c.kemPublicKey),noisePublicKey:new Uint8Array(c.noisePublicKey)},this.noiseEnvelope=new Uint8Array(c.envelope),Object.freeze(c)}catch{throw this.retireLog(),M()}finally{i?.fill(0),t.signSecretKey?.fill(0),t.kemSecretKey?.fill(0)}}deviceCustodyCurrent(t,i){try{return this.deviceCurrent()&&!this.active&&this.publicIdentity!==null&&this.noiseEnvelope!==null&&t.isCurrent()===!0&&t.connectorId===this.connectorId&&t.deviceId===this.deviceId&&t.installationId===this.installationId&&i.envelope instanceof Uint8Array&&i.envelope.length===this.noiseEnvelope.length&&i.envelope.every((o,s)=>o===this.noiseEnvelope[s])&&["signPublicKey","kemPublicKey","noisePublicKey"].every(o=>i[o]instanceof Uint8Array&&i[o].length===32&&i[o].every((s,r)=>s===this.publicIdentity[o][r]))}catch{return!1}}acknowledgeDeviceRegistration(t){let i=null;try{if(!this.deviceCurrent()||this.active||this.deviceRegistered||!this.publicIdentity||t.connectorId!==this.connectorId||t.deviceId!==this.deviceId||t.installationId!==this.installationId)throw M();for(let o of["signPublicKey","kemPublicKey","noisePublicKey"])if(Ht(t[o]).some((s,r)=>s!==this.publicIdentity[o][r]))throw M();if(i=En(new Map([[0,U(t.connectorId)],[1,U(t.deviceId)],[2,U(t.installationId)],[3,new Uint8Array(t.signPublicKey)],[4,new Uint8Array(t.kemPublicKey)],[5,new Uint8Array(t.noisePublicKey)]])),this.guard(()=>this.app.rt_app_device_registered(...this.put(i)))!==1||!this.deviceCurrent())throw M();this.deviceRegistered=!0}catch{throw this.retireLog(),M()}finally{i?.fill(0)}}prepareCloudCopyCollection(t){let i=null;try{if(t.approvalMode==="strict")throw new an;if(this.cloudSource||this.privateAttempted||!this.deviceCurrent()||!this.deviceRegistered||this.active||t.approvalMode!=="password-ak1"||!["create","join"].includes(t.purpose)||(this.cloudSource=t,this.cloudCallback=t.isCurrent,this.cloudCollection=t.collection,this.cloudPurpose=t.purpose,!this.cloudCopyCollectionCurrent(t)))throw M();let o=U(t.collection);if(o.every(s=>s===0)||(i=En(new Map([[0,o],[1,t.purpose==="create"?0:1]])),this.guard(()=>this.app.rt_app_cloud_copy_pin(...this.put(i)))!==1||!this.cloudCopyCollectionCurrent(t)))throw M()}catch(o){throw this.retireLog(),o instanceof an?o:M()}finally{i?.fill(0)}}cloudCopyCollectionCurrent(t){try{let i=this.cloudSource;return this.deviceCurrent()&&!this.active&&this.deviceRegistered&&i!==null&&(!t||t===i)&&i.isCurrent===this.cloudCallback&&i.isCurrent()===!0&&i.connectorId===this.connectorId&&i.deviceId===this.deviceId&&i.installationId===this.installationId&&i.collection===this.cloudCollection&&i.purpose===this.cloudPurpose&&i.approvalMode==="password-ak1"}catch{return!1}}signCloudCopyCreate(t){return this.signCloudCopy(t,"create")}signCloudCopyJoin(t){return this.signCloudCopy(t,"join")}signCloudCopy(t,i){let o=null,s=null;try{if(this.cloudIssued||!this.cloudCopyCollectionCurrent()||this.cloudPurpose!==i||(this.cloudIssued=!0,o=new Uint8Array(Ht(t)),s=this.guard(()=>this.takeOut(i==="create"?this.app.rt_app_cloud_copy_create_sign(...this.put(o)):this.app.rt_app_cloud_copy_join_sign(...this.put(o)))),s.length!==64||!this.cloudCopyCollectionCurrent()))throw M();return s}catch{throw s?.fill(0),this.retireLog(),M()}finally{o?.fill(0)}}preparePrivateCollection(t,i){let o=null,s=null;try{if(t.approvalMode==="strict")throw new an;if(this.cloudSource||this.privateAttempted||!this.deviceCurrent()||!this.deviceRegistered||this.active||t.approvalMode!=="password-ak1"||!["create","enrol"].includes(t.purpose)||(this.privateAttempted=!0,this.privateSource=t,this.prospectiveCollection=t.collection,this.privatePurpose=t.purpose,!this.privateCollectionCurrent()))throw M();let r=U(t.collection);if(r.every(a=>a===0))throw M();if(i.mode==="fresh"){if(o=En(new Map([[0,r],[1,t.purpose==="create"?0:1]])),this.guard(()=>this.app.rt_app_private_collection_pin(...this.put(o)))!==1)throw M()}else if(i.mode==="existing"){let a=i.marker,c=this.publicIdentity;if(t.purpose!=="enrol"||!c||a.collection!==t.collection||a.connectorId!==this.connectorId||a.deviceId!==this.deviceId||a.installationId!==this.installationId||typeof a.acknowledged!="boolean")throw M();for(let p of["signPublicKey","kemPublicKey","noisePublicKey"])if(!bI(Ht(a[p]),c[p]))throw M();let l=new Uint8Array(Ht(a.sasCommitment));if(l.every(p=>p===0)||(s=l,o=En(new Map([[0,1],[1,r],[2,U(a.connectorId)],[3,U(a.deviceId)],[4,U(a.installationId)],[5,new Uint8Array(a.signPublicKey)],[6,new Uint8Array(a.kemPublicKey)],[7,new Uint8Array(a.noisePublicKey)],[8,l],[9,a.acknowledged]])),this.privateEnrolAcknowledged=a.acknowledged,this.guard(()=>this.app.rt_app_private_enrol_restore(...this.put(o)))!==1))throw M()}else throw M();if(!this.privateCollectionCurrent())throw M();if(t.purpose==="enrol"){let a=this.guard(()=>this.takeOut(this.app.rt_app_private_enrol_commitment()));if(a.length!==32||a.every(c=>c===0)||s!==null&&!bI(a,s))throw M();this.sasCommitment=new Uint8Array(a)}}catch(r){throw this.retireLog(),r instanceof an?r:M()}finally{o?.fill(0)}}registeredDeviceReceipt(){if(!this.deviceCurrent()||!this.deviceRegistered||!this.publicIdentity)throw M();let t=this.publicIdentity;return Object.freeze({connectorId:this.connectorId,deviceId:this.deviceId,installationId:this.installationId,signPublicKey:new Uint8Array(t.signPublicKey),kemPublicKey:new Uint8Array(t.kemPublicKey),noisePublicKey:new Uint8Array(t.noisePublicKey)})}privateEnrolMarker(){if(!this.privateCollectionCurrent()||this.privatePurpose!=="enrol"||!this.sasCommitment||!this.publicIdentity)throw M();let t=this.publicIdentity;return Object.freeze({connectorId:this.connectorId,deviceId:this.deviceId,installationId:this.installationId,collection:this.prospectiveCollection,sasCommitment:new Uint8Array(this.sasCommitment),acknowledged:this.privateEnrolAcknowledged,signPublicKey:new Uint8Array(t.signPublicKey),kemPublicKey:new Uint8Array(t.kemPublicKey),noisePublicKey:new Uint8Array(t.noisePublicKey)})}privateCollectionCurrent(t){try{if(t&&(t.isCurrent()!==!0||t.connectorId!==this.connectorId||t.deviceId!==this.deviceId||t.installationId!==this.installationId||t.collection!==this.prospectiveCollection||t.purpose!==this.privatePurpose||t.approvalMode!=="password-ak1"))return!1;let i=this.privateSource;return this.deviceCurrent()&&!this.active&&this.deviceRegistered&&i!==null&&i.isCurrent()===!0&&i.connectorId===this.connectorId&&i.deviceId===this.deviceId&&i.installationId===this.installationId&&i.collection===this.prospectiveCollection&&i.purpose===this.privatePurpose&&i.approvalMode==="password-ak1"}catch{return!1}}signPrivateCreate(t){let i=null;try{if(!this.privateCollectionCurrent()||this.privatePurpose!=="create")throw M();i=new Uint8Array(Ht(t));let o=this.guard(()=>this.takeOut(this.app.rt_app_private_create_sign(...this.put(i))));if(o.length!==64||!this.privateCollectionCurrent())throw M();return o}catch{throw this.retireLog(),M()}finally{i?.fill(0)}}signPrivateDeviceEnrol(t){let i=null;try{if(!this.privateCollectionCurrent()||this.privatePurpose!=="enrol"||!this.sasCommitment||this.privateEnrolAcknowledged)throw M();i=new Uint8Array(Ht(t));let o=this.guard(()=>this.takeOut(this.app.rt_app_private_device_enrol_sign(...this.put(i))));if(o.length!==64||!this.privateCollectionCurrent())throw M();return Object.freeze({signature:o,sasCommitment:new Uint8Array(this.sasCommitment)})}catch{throw this.retireLog(),M()}finally{i?.fill(0)}}adoptDevice(t,i){let o=null;try{if(!this.deviceCurrent()||!this.deviceRegistered||this.attempted||this.active||t.deviceId!==this.deviceId||this.privateSource&&(!this.privateCollectionCurrent()||t.collection!==this.prospectiveCollection)||this.cloudSource&&(!this.cloudCopyCollectionCurrent()||t.collection!==this.cloudCollection||t.state!=="cloud_copy"||t.cloudCopyOptIn!==!0))throw M();let s=gI(t.policyPins);if(i){if(this.sql||i.needsRecovery||!this.sqlBinding.exports)throw M();this.sqlBinding.sql=i,this.sqlBinding.run=i.import(this.sqlBinding.exports)}if(!this.sql||this.sql.needsRecovery)throw M();this.attempted=!0;let r=vn(t.endpoint),a=t.state==="e2e"?0:t.state==="cloud_copy"?1:-1,c=t.opened==="fresh"?0:t.opened==="existing"?1:t.opened==="unclean"?2:-1;if(a<0||c<0||typeof t.cloudCopyOptIn!="boolean"||a===1!==t.cloudCopyOptIn||!Array.isArray(t.trustedRoots)||t.trustedRoots.length<1||t.trustedRoots.length>64||!Array.isArray(t.trustedSigners)||t.trustedSigners.length>1024||!Number.isSafeInteger(t.sqliteVersion)||t.sqliteVersion<0||t.sqliteVersion>4294967295||(o=En(new Map([[0,4],[1,U(t.collection)],[2,U(t.replicaId)],[3,U(t.deviceId)],[4,r],[5,t.trustedRoots.map(Ht)],[6,t.trustedSigners.map(U)],[7,Ap(t.expectedGenesis)],[8,a],[9,t.cloudCopyOptIn],[10,null],[11,null],[12,c],[13,t.sqliteVersion],[14,U(this.connectorId)],[15,U(this.installationId)],[16,s]])),o.length>64*1024)||this.guard(()=>this.takeOut(this.app.rt_app_device_adopt(...this.put(o)))).length||!this.deviceCurrent())throw M();this.collection=t.collection,this.endpoint=r,this.active=!0,this.markOpened()}catch{throw this.retireLog(),this.fail(),M()}finally{o?.fill(0)}}signCpEnrol(t){let i=null;try{if(!this.deviceCurrent()||!this.publicIdentity||this.active||this.pump)throw this.retireLog(),M();i=new Uint8Array(Ht(t));let o=this.guard(()=>this.takeOut(this.app.rt_app_cp_enrol_sign(...this.put(i))));if(!this.deviceCurrent())throw this.retireLog(),M();if(!o.length)throw M();let{m:s,identity:r}=this.guard(()=>this.publicResult(o)),a=s.get(3);if(!(a instanceof Uint8Array)||a.length!==64||["signPublicKey","kemPublicKey","noisePublicKey"].some(c=>r[c].some((l,p)=>l!==this.publicIdentity[c][p])))throw M();return Object.freeze({...r,signature:new Uint8Array(a)})}catch{throw this.retireLog(),M()}finally{i?.fill(0)}}signCpLogToken(t){let i=null;try{if(!this.active||this.retired||!this.cpPin)throw M();let o=this.cpPin,s=!1;try{s=o.isCurrent()===!0&&o.connectorId===this.connectorId&&o.deviceId===this.deviceId&&o.collection===this.collection}catch{}if(!s)throw this.retireLog(),M();i=new Uint8Array(Ht(t));let r=this.guard(()=>this.takeOut(this.app.rt_app_cp_log_token_sign(...this.put(i))));if(r.length!==64)throw r.fill(0),M();return r}catch{throw M()}finally{i?.fill(0)}}bindLogTransport(t){try{if(!this.active||this.retired||this.pump||this.endpoint===null||this.collection===null||t.isCurrent()!==!0||vn(t.endpoint)!==this.endpoint||t.collection!==this.collection)throw M()}catch{throw M()}let i=U(this.collection);if(this.guard(()=>this.app.rt_app_log_bind(this.endpoint,...this.put(i)))!==1)throw M();if(this.logGeneration=this.guard(()=>vn(this.app.rt_app_log_generation())),this.logGeneration===0n)throw this.retireLog(),M();return this.pump=new is(this,t,{endpoint:this.endpoint,collection:this.collection}),this.transport=t,this.pump}requestLogHead(){return!this.active||this.retired||this.pump===null||typeof this.app.rt_app_log_head!="function"?!1:this.guard(()=>this.app.rt_app_log_head())===1}get supportsLogPush(){return typeof this.app.rt_app_log_hello_sign=="function"}signLogHello(t,i){let o=null;try{if(!this.supportsLogPush||!this.active||this.retired||!this.pump||!this.transport||this.logGeneration===0n||!this.transport.isCurrent()||!(t instanceof Uint8Array)||t.length!==32||typeof i!="string"||i.length===0||i.length>16*1024||/[^\x21-\x7e]/.test(i))return null;let s=new TextEncoder().encode(i);o=new Uint8Array(32+s.length),o.set(t,0),o.set(s,32),s.fill(0);let r=this.logGeneration,a=this.guard(()=>this.takeOut(this.app.rt_app_log_hello_sign(r,...this.put(o))));return a.length!==64?(a.fill(0),null):a}catch{return null}finally{o?.fill(0)}}async reconnectLogTransport(t){let i=this.pump,o=this.logGeneration,s=()=>this.active&&!this.retired&&this.pump===i&&i!==null&&this.transport===t&&t.isCurrent()===!0&&vn(t.endpoint)===this.endpoint&&t.collection===this.collection;try{if(!s()||(await i.drainForAuthenticatedReconnect(),!s()))throw M();this.pump=null,this.transport=null;let r=U(this.collection);try{if(this.guard(()=>this.app.rt_app_log_reconnect(this.endpoint,...this.put(r)))!==1)throw M()}finally{r.fill(0)}if(this.logGeneration=this.guard(()=>vn(this.app.rt_app_log_generation())),this.logGeneration<=o||!t.isCurrent()||this.retired||!this.active)throw M();return this.pump=new is(this,t,{endpoint:this.endpoint,collection:this.collection}),this.transport=t,this.pump}catch{throw this.retireLog(),M()}}signLogHttp(t){let i=null;try{if(!this.active||!this.pump||!this.transport||this.logGeneration===0n||this.endpoint===null||t.path!=="/v1/rpc"||t.collection!==this.collection||vn(t.endpoint)!==this.endpoint||!this.transport.isCurrent()||!(t.frame instanceof Uint8Array)||t.frame.length===0||t.frame.length>16*1024*1024||!(t.nonce instanceof Uint8Array)||t.nonce.length!==32||typeof t.token!="string"||t.token.length===0||t.token.length>16*1024||/[^\x21-\x7e]/.test(t.token))throw M();i=En(new Map([[0,t.frame],[1,t.token],[2,t.nonce]]));let o=this.guard(()=>this.takeOut(this.app.rt_app_log_http_sign(this.endpoint,this.logGeneration,vn(t.originalCallId),...this.put(i))));if(o.length!==64)throw o.fill(0),M();return o}catch{throw M()}finally{i?.fill(0)}}takeLogCalls(){return!this.active||this.retired?[]:this.guard(()=>{let t=this.takeOut(this.app.rt_app_log_calls());if(!t.length)return[];let i=ue(t);if(!Array.isArray(i)||i.length>64)throw M();return i.map(o=>{if(!(o instanceof Map))throw M();let s=o,r=s.get(0),a=s.get(1),c=s.get(2);if(vn(r)!==this.endpoint||!(a instanceof Uint8Array)||c!==void 0&&!(c instanceof Uint8Array))throw M();return{endpoint:r,frame:a,...c!==void 0?{sidecar:c}:{}}})})}acceptLogReply(t,i){return!this.active||this.retired?!1:this.guard(()=>this.app.rt_app_log_reply(vn(t),...this.put(i))===1)}logNoResponse(t){this.active&&!this.retired&&this.guard(()=>this.app.rt_app_log_no_response(vn(t)))}retireLog(){this.logGeneration=0n,!this.retired&&(this.retired=!0,this.cpPin=null,this.connectorId=null,this.devicePin=null,this.installationId=null,this.privateSource=null,this.prospectiveCollection=null,this.privatePurpose=null,this.sasCommitment?.fill(0),this.sasCommitment=null,this.publicIdentity=null,this.noiseEnvelope?.fill(0),this.noiseEnvelope=null,this.deviceActive=!1,this.deviceRegistered=!1,this.active?this.guard(()=>{super.dispose(),this.app.rt_app_log_retire()}):this.deviceAttempted&&this.guard(()=>this.app.rt_app_device_retire()))}pushLog(t){return!this.active||this.retired||!this.pump||!this.transport?!1:this.guard(()=>{let i=this.transport;return i.isCurrent()!==!0||vn(i.endpoint)!==this.endpoint||i.collection!==this.collection?(this.retireLog(),!1):this.app.rt_app_log_push(...this.put(t))===1})}accountKeyCurrent(t){try{return this.active&&!this.retired&&t.isCurrent()===!0&&t.approvalMode==="password-ak1"&&t.collection===this.collection&&t.deviceId===this.deviceId&&t.connectorId===this.connectorId&&t.installationId===this.installationId&&this.devicePin!==null&&this.devicePin.isCurrent()===!0&&this.devicePin.connectorId===this.connectorId&&this.devicePin.deviceId===this.deviceId&&this.devicePin.installationId===this.installationId}catch{return!1}}accountKeyState(t){let i=ue(t);if(!(i instanceof Map))throw M();let o=i;if(o.size!==2||!o.has(0)||!o.has(1))throw M();let s=o.get(0),r=o.get(1);if(s===0||s===1){if(r!==null)throw M();return Object.freeze({state:s===0?"pending":"keyed"})}if(s!==2||typeof r!="string"||!["not_private","not_ready","not_enrolled","not_authorized","device_missing","enrolment_mismatch","not_keyed","no_wrap","inconsistent","failed","outcome_unknown"].includes(r))throw M();return Object.freeze({state:"refused",reason:r})}unlockAccountKeyConsuming(t,i){try{if(t.approvalMode==="strict")throw new an;if(!this.accountKeyCurrent(t))throw M();Ht(i);let o=this.guard(()=>this.accountKeyState(this.takeOut(this.app.rt_app_account_key_unlock(...this.put(i)))));if(!this.accountKeyCurrent(t))throw M();return o}catch(o){throw this.retireLog(),o instanceof an?o:M()}finally{i instanceof Uint8Array&&i.fill(0)}}setupAccountKeyDeviceConsuming(t,i){try{if(t.approvalMode==="strict")throw new an;if(!this.accountKeyCurrent(t))throw M();Ht(i);let o=this.guard(()=>this.accountKeyState(this.takeOut(this.app.rt_app_account_key_device_setup(...this.put(i)))));if(!this.accountKeyCurrent(t))throw M();return o.state==="refused"?o:Object.freeze({state:o.state==="keyed"?"recovery_keyed":"recovery_pending"})}catch(o){throw this.retireLog(),o instanceof an?o:M()}finally{i instanceof Uint8Array&&i.fill(0)}}accountKeyStatus(t){try{if(!this.accountKeyCurrent(t))throw M();let i=this.guard(()=>this.accountKeyState(this.takeOut(this.app.rt_app_account_key_status())));if(!this.accountKeyCurrent(t))throw M();return i}catch{throw this.retireLog(),M()}}observations(){if(!this.active||this.retired)throw M();return this.guard(()=>{let t=ue(this.takeOut(this.app.rt_app_observations()));if(!(t instanceof Map))throw M();let i=t;for(let o of[1,2,3,4])if(typeof i.get(o)!="boolean")throw M();return{status:er.dec(i.get(0)),keyringRebuilding:i.get(1),keyringRebuildFailed:i.get(2),snapshotInstallAvailable:i.get(3),requiresReopen:i.get(4)}})}async close(){return this.pump&&(await this.pump.close(),this.pump=null,this.transport=null),this.shutdown()}shutdown(){if(!this.active)return this.deviceAttempted&&!this.retired&&this.retireLog(),this.discard(),!1;if(this.pump)return this.pump.close().catch(()=>{}),this.fail(),!1;try{return this.retireLog(),super.dispose(),this.guard(()=>this.app.rt_app_shutdown()===1)&&this.sql!==null&&!this.sql.needsRecovery}finally{this.active=!1,this.discard()}}dispose(){this.shutdown()}};async function wI(n){if(!n.worker)return{supported:!1,reason:"worker_required"};if(!n.storage?.getDirectory)return{supported:!1,reason:"opfs_unavailable"};let e,t,i=!1,o,s={supported:!1,reason:"probe_failed"};try{let r=n.randomUUID();if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r))return s;t=r.toLowerCase(),e=await(await n.storage.getDirectory()).getDirectoryHandle(".mdbase-app-probes",{create:!0});let a=await e.getFileHandle(t,{create:!0});if(i=!0,!a.createSyncAccessHandle)s={supported:!1,reason:"sync_handle_unavailable"};else{o=await a.createSyncAccessHandle();let c=new Uint8Array([109,100,98,110]),l=new Uint8Array(c.length);if(o.write(c,{at:0})!==c.length)throw new Error("short probe write");if(o.flush(),o.read(l,{at:0})!==c.length||l.some((p,d)=>p!==c[d]))throw new Error("probe readback failed");s={supported:!0,backend:"opfs_sahpool_candidate",crashDurability:"unqualified",eviction:"possible"}}}catch{s={supported:!1,reason:"probe_failed"}}finally{let r=!0;try{o?.close()}catch{r=!1,s={supported:!1,reason:"cleanup_failed"}}if(i&&r&&e&&t)try{await e.removeEntry(t)}catch{s={supported:!1,reason:"cleanup_failed"}}}return s}eo();Qr();ww();no();rp();Go();Yb();Ah();Yc();var Bw=Object.freeze({status:"unsupported"}),Fh=Object.freeze({snapshot(){return Bw},async check(n={}){return n.signal?.throwIfAborted(),Bw},async request(n={}){return n.signal?.throwIfAborted(),Bw},disable(){}});Fn();Yc();var Vw="mdbase.app.log-token.v1",hl="tokens";function vI(){return new Promise(n=>{let e;try{e=indexedDB.open(Vw,1)}catch{n(null);return}e.onupgradeneeded=()=>{try{e.result.createObjectStore(hl)}catch{}},e.onsuccess=()=>{let t=e.result;t.onversionchange=()=>t.close(),n(t.objectStoreNames.contains(hl)?t:(t.close(),null))},e.onerror=e.onblocked=()=>n(null)})}function Fw(n,e){return vI().then(t=>new Promise(i=>{if(!t){i(null);return}let o=null;try{let s=t.transaction(hl,n),r=e(s.objectStore(hl));r&&(r.onsuccess=()=>{o=r.result??null}),s.oncomplete=()=>{t.close(),i(o)},s.onerror=s.onabort=()=>{t.close(),i(null)}}catch{t.close(),i(null)}}))}function _I(){return typeof indexedDB>"u"?null:Object.freeze({async read(n,e){let t=await Fw("readonly",i=>i.get(n)).catch(()=>null);return!t||typeof t.value!="string"||!t.value||t.value.length>16*1024||/[^\x21-\x7e]/.test(t.value)||typeof t.expires!="number"||!Number.isSafeInteger(t.expires)||t.expires-e<6e4||t.expires-e>16*6e4?null:Object.freeze({value:t.value,expires:t.expires})},async write(n,e){await Fw("readwrite",t=>t.put({value:e.value,expires:e.expires},n)).catch(()=>null)},async drop(n){await Fw("readwrite",e=>e.delete(n)).catch(()=>null)}})}async function AI(n){let{cpOrigin:e,connectorId:t,deviceId:i}=n;if(!t||!i)return!0;let o=await vI();return o?new Promise(s=>{try{let r=o.transaction(hl,"readwrite"),a=r.objectStore(hl).openCursor();a.onsuccess=()=>{let c=a.result;if(c){if(typeof c.key=="string"){let l=c.key.split(" ");l.length===5&&l[0]===e&&l[2]===t&&l[3]===i&&c.delete()}c.continue()}},r.oncomplete=()=>{o.close(),s(!0)},r.onerror=r.onabort=()=>{o.close(),s(!1)}}catch{o.close(),s(!1)}}):!1}lw();Jn();ge();Fc();Ps();ie();ou();Zc();bt();Je();ge();var RT=4401,ET=4403,qT=4410,TT=3e4,MT=1e4,LT=6e4,jT=6e4,NT=15e3,UT=4,DT=64*1024,$T=1024*1024;function zT(n,e){let t=new URL(n);if(t.protocol==="https:")return`wss://${t.host}`;if(e&&ot(n))return`ws://${t.host}`;throw new Error("app log push: origin")}var BT=n=>[...n].map(e=>e.toString(16).padStart(2,"0")).join(""),kI=(n,e,t)=>ce(new Map([[0,0],[1,n],[2,e],[3,t]]));function FT(n){let e=n.get(3);if(!(e instanceof Map))return null;let t=e.get(0),i=e.get(1);return{code:typeof t=="string"?t:"unavailable",reason:typeof i=="string"?i:""}}var Vh=class{constructor(e,t,i={}){this.source=e;this.events=t;this.base=zT(e.origin,i.allowLoopbackHttp===!0),this.collectionBytes=U(e.collection);let o=i.WebSocket??globalThis.WebSocket;if(typeof o!="function")throw new Error("app log push: no WebSocket");this.Ws=o,this.random=i.random??Math.random,this.now=i.now??Date.now}source;events;base;collectionBytes;Ws;random;now;socket=null;connecting=!1;closed=!1;finished=null;unsupported=!1;paused=!1;isLive=!1;attempts=0;liveSince=0;retry=null;ping=null;pongDue=null;opening=null;unsigned=0;life=new AbortController;token=null;get live(){return this.isLive}get available(){return!this.unsupported&&this.finished===null&&!this.closed}get suspended(){return this.paused}start(){this.connect()}nudge(){this.unsupported=!1,this.unsigned=0,!(this.paused||this.socket||this.connecting||!this.available)&&(this.attempts=0,this.clearRetry(),this.connect())}suspend(){this.paused||!this.available||(this.paused=!0,this.clearRetry(),this.drop(1e3,"hidden"))}resume(){if(!this.paused){this.nudge();return}this.paused=!1,this.nudge()}close(){this.closed||(this.closed=!0,this.life.abort(),this.clearRetry(),this.drop(1e3,"closed"))}clearRetry(){this.retry!==null&&clearTimeout(this.retry),this.retry=null}clearPing(){this.ping!==null&&clearInterval(this.ping),this.ping=null,this.pongDue!==null&&clearTimeout(this.pongDue),this.pongDue=null,this.opening!==null&&clearTimeout(this.opening),this.opening=null}setLive(e){if(this.isLive!==e){this.isLive=e,e&&(this.liveSince=this.now());try{this.events.live(e)}catch{}}}end(e){if(!(this.finished||this.closed)){this.finished=e,this.clearRetry(),this.drop(1e3,e);try{this.events.ended(e)}catch{}}}drop(e,t){this.clearPing();let i=this.socket;if(this.socket=null,i){i.onopen=i.onmessage=i.onclose=i.onerror=null;try{i.close(e,t)}catch{}}this.setLive(!1)}schedule(e=!1){if(this.paused||!this.available||this.retry!==null)return;let t=e?0:Math.floor(this.random()*Math.min(jT,1e3*2**Math.min(this.attempts,6)));this.attempts++,this.retry=setTimeout(()=>{this.retry=null,this.connect()},t)}async connect(){if(this.paused||this.socket||this.connecting||!this.available)return;if(!this.source.isCurrent()){this.close();return}this.connecting=!0;let e,t,i;try{let r=this.life.signal;if(e=await this.source.accessToken({signal:r}),t=await this.source.nonce({signal:r}),this.paused||!this.available||!this.source.isCurrent())return;if(i=this.source.signHello(t,e),!i){++this.unsigned>=UT?this.unsupported=!0:this.schedule();return}this.unsigned=0}catch{this.connecting=!1,this.schedule();return}finally{this.connecting=!1}this.token=e;let o;try{o=new this.Ws(`${this.base}/v1/ws?c=${this.source.collection}&n=${BT(t)}`)}catch{this.schedule();return}o.binaryType="arraybuffer",this.socket=o;let s=kI(1,"hello",new Map([[0,[1,0]],[1,e],[2,U(this.source.deviceId)],[3,i]]));i.fill(0),t.fill(0),o.onopen=()=>{try{o.send(s)}catch{this.lost(o,1006)}},o.onmessage=r=>this.message(o,r.data),o.onclose=r=>this.lost(o,r.code),o.onerror=()=>{},this.opening=setTimeout(()=>{this.opening=null,this.lost(o,1006)},NT)}message(e,t){if(e!==this.socket)return;if(typeof t=="string"){t==="pong"&&this.pongDue!==null&&(clearTimeout(this.pongDue),this.pongDue=null);return}if(!(t instanceof ArrayBuffer)||t.byteLength>$T){this.lost(e,1009);return}let i=new Uint8Array(t),o;try{let a=ue(i);if(!(a instanceof Map))throw new Error;o=a}catch{this.lost(e,1007);return}if(o.get(0)===2){if(!this.isLive)return;if(this.deliver(i),o.get(1)==="closed"){let a=o.get(2),c=a instanceof Map?a.get(1):null;this.end(c==="gone"?"gone":c==="revoked"?"revoked":"forbidden")}return}if(o.get(0)!==1)return;let s=o.get(1),r=FT(o);if(s===1){if(r){this.refused(e,r);return}try{e.send(kI(2,"subscribe",new Map([[0,this.collectionBytes],[1,0],[2,DT]])))}catch{this.lost(e,1006)}return}if(s===2){if(r){this.refused(e,r);return}let a=o.get(2);if(!(a instanceof Map)){this.lost(e,1007);return}let c=a.get(0),l=a.get(1);this.startPing(e),this.setLive(!0),(typeof c=="number"||typeof c=="bigint")&&l instanceof Uint8Array&&l.length===32&&this.deliver(ce(new Map([[0,2],[1,"head"],[2,new Map([[0,this.collectionBytes],[1,c],[2,l]])]])))}}deliver(e){try{this.events.push(e)}catch{}}refused(e,t){if(t.code==="forbidden"&&t.reason==="credentials_revoked"){this.end("revoked");return}if(t.code==="forbidden"||t.code==="not_found"){this.end(t.code==="not_found"?"gone":"forbidden");return}if(t.code==="gone"){this.end("gone");return}t.code==="unauthenticated"&&this.token&&(this.source.invalidateToken?.(this.token),this.token=null),this.lost(e,1008)}startPing(e){this.clearPing(),this.ping=setInterval(()=>{if(!(e!==this.socket||this.pongDue!==null)){try{e.send("ping")}catch{this.lost(e,1006);return}this.pongDue=setTimeout(()=>{this.pongDue=null,this.lost(e,1006)},MT)}},TT)}lost(e,t){if(e!==this.socket)return;let i=this.isLive&&this.now()-this.liveSince>=LT;if(this.drop(1e3,"lost"),t===ET){this.end("forbidden");return}if(t===qT){this.end("gone");return}if(i&&(this.attempts=0),t===RT){this.token&&this.source.invalidateToken?.(this.token),this.token=null,this.attempts=0,this.schedule(!0);return}this.schedule()}};dw();Fn();Xc();function Kh(n){return n.mode==="local_only"?null:n.incidents.some(e=>e.kind==="waiting_for_key")?"waiting_for_key":n.installing?"installing":n.resyncing?"resyncing":n.connection==="offline"?"offline":n.headKnown===0?"head_unknown":n.confirmedThrough<n.headKnown?"behind":null}function SI(n){let e=n.incidents.find(r=>r.kind==="waiting_for_key");if(!e)return null;let t={through:n.confirmedThrough,head:n.headKnown},i=e.details,o=r=>i instanceof Map?i.get(r):i&&typeof i=="object"?i[r]:void 0,s=o("reason");typeof s=="string"&&/^[a-z_]{1,32}$/.test(s)&&(t.key=s);for(let r of["position","at"]){let a=o(r);(typeof a=="number"||typeof a=="bigint")&&(t[r]=Number(a))}return t}Ph();Qc();Je();ge();Fc();var Wh=264*1024+256,Kw=264*1024,De=()=>new Error("app cloud copy outcome unavailable; preserve storage and reopen"),Ww=(n,e)=>n.length===e.length&&n.every((t,i)=>t===e[i]),VT=n=>Array.from(n,e=>e.toString(16).padStart(2,"0")).join(""),Hh=class{constructor(e,t,i,o,s){this.source=e;this.store=o;this.key=i;try{this.mode=s.mode,this.lifetime=s.signal,this.fields=Object.freeze({accountId:e.accountId,connectorId:e.connectorId,deviceId:e.deviceId,installationId:e.installationId,collection:e.collection,purpose:e.purpose,cpOrigin:e.cpOrigin,logOrigin:e.logOrigin,assetSha256:e.assetSha256});let r=e.displayName;if(this.displayName=r===void 0?void 0:br(r),this.displayName!==void 0&&e.purpose!=="create"||r!==this.displayName)throw De();this.current=e.isCurrent,this.owned=e.installationOwned,this.io=Object.freeze({read:o.read,cas:o.compareAndSet});let a=[e.accountId,e.connectorId,e.deviceId,e.installationId,e.collection].map(U);if(a.some(c=>c.every(l=>l===0))||!["create","join"].includes(e.purpose)||!["fresh","existing"].includes(this.mode)||!/^[0-9a-f]{64}$/.test(e.assetSha256)||(this.keys=Object.freeze([t.signPublicKey,t.kemPublicKey,t.noisePublicKey].map(c=>{if(!(c instanceof Uint8Array)||c.length!==32||c.every(l=>l===0))throw De();return new Uint8Array(c)})),t.connectorId!==e.connectorId||t.deviceId!==e.deviceId||t.installationId!==e.installationId)||typeof globalThis.CryptoKey!="function"||!(i instanceof CryptoKey)||i.type!=="secret"||i.extractable||i.algorithm.name!=="AES-GCM"||i.algorithm.length!==256||i.usages.length!==2||!i.usages.includes("encrypt")||!i.usages.includes("decrypt"))throw De();this.aad=ce(["mdbase/v1/app-cloud-copy-outcome-platform",...a,e.purpose,e.cpOrigin,e.logOrigin,e.assetSha256,...this.keys]),this.check(this.lifetime)}catch{throw De()}}source;store;closed=!1;key;fields;displayName;current;owned;io;keys;aad;mode;lifetime;check(e){try{if(this.closed||!this.key||e!==this.lifetime||e.aborted||this.source.displayName!==this.displayName||this.source.isCurrent!==this.current||this.source.installationOwned!==this.owned||this.current.call(this.source)!==!0||this.owned.call(this.source)!==!0||this.store.read!==this.io.read||this.store.compareAndSet!==this.io.cas||Object.entries(this.fields).some(([t,i])=>this.source[t]!==i))throw De()}catch{throw De()}}operation(e){if(e){if(e.displayName!==this.displayName)throw De();for(let t of Object.keys(this.fields))if(e[t]!==this.fields[t])throw De();for(let[t,i]of["signPublicKey","kemPublicKey","noisePublicKey"].entries())if(!(e[i]instanceof Uint8Array)||!Ww(e[i],this.keys[t]))throw De()}return Object.freeze({...this.fields,...this.displayName===void 0?{}:{displayName:this.displayName},signPublicKey:new Uint8Array(this.keys[0]),kemPublicKey:new Uint8Array(this.keys[1]),noisePublicKey:new Uint8Array(this.keys[2])})}metadata(e){let t=this.operation(e.operation);if(!(e.genesisItem instanceof Uint8Array)||!e.genesisItem.length||e.genesisItem.length>256*1024||typeof e.expectedGenesis!="string"||!/^sha256:[0-9a-f]{64}$/.test(e.expectedGenesis))throw De();return Object.freeze({operation:t,genesisItem:new Uint8Array(e.genesisItem),expectedGenesis:e.expectedGenesis})}async hashChecked(e,t){let i=new TextEncoder().encode("mdbase/v1/chain"),o=new Uint8Array(1+i.length+e.genesisItem.length);o[0]=i.length,o.set(i,1),o.set(e.genesisItem,1+i.length);let s=new Uint8Array(await crypto.subtle.digest("SHA-256",o));if(this.check(t),e.expectedGenesis!==`sha256:${VT(s)}`)throw De()}async read(e){let t=null;try{this.check(e);let i=await this.io.read.call(this.store,Object.freeze({signal:e}));if(this.check(e),i===null){if(this.mode!=="fresh")throw De();return null}if(!(i instanceof Uint8Array)||!i.length||i.length>Wh)throw De();let o=new Uint8Array(i),s=ue(o);if(!(s instanceof Map))throw De();let r=s;if(r.size!==3||r.get(0)!==1)throw De();let a=r.get(1),c=r.get(2);if(!(a instanceof Uint8Array)||a.length!==12||!(c instanceof Uint8Array)||c.length<16||c.length>Kw+16||(t=new Uint8Array(await crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(a),additionalData:new Uint8Array(this.aad),tagLength:128},this.key,new Uint8Array(c))),this.check(e),t.length>Kw))throw De();let l=ue(t);if(!(l instanceof Map))throw De();let p=l,d=p.get(0)===1&&p.size===3;if(!d&&!(p.get(0)===2&&p.size===4)||(d?null:p.get(3))!==(this.displayName??null))throw De();let u=p.get(1);if(!Array.isArray(u)||u.length!==3||u.some((m,b)=>!(m instanceof Uint8Array)||!Ww(m,this.keys[b])))throw De();let f=p.get(2),h=null;if(f!==null){if(!Array.isArray(f)||f.length!==2||!(f[0]instanceof Uint8Array)||typeof f[1]!="string")throw De();h=this.metadata({operation:this.operation(),genesisItem:f[0],expectedGenesis:f[1]}),await this.hashChecked(h,e)}return{encrypted:o,metadata:h}}catch{throw De()}finally{t?.fill(0)}}async write(e,t,i){let o=null,s=null;try{if(this.check(i),o=ce(new Map([[0,2],[1,this.keys.map(l=>new Uint8Array(l))],[2,e===null?null:[e.genesisItem,e.expectedGenesis]],[3,this.displayName??null]])),o.length>Kw)throw De();let r=crypto.getRandomValues(new Uint8Array(12)),a=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:r,additionalData:new Uint8Array(this.aad),tagLength:128},this.key,new Uint8Array(o)));if(this.check(i),s=ce(new Map([[0,1],[1,r],[2,a]])),s.length>Wh)throw De();let c=await this.io.cas.call(this.store,t,s,Object.freeze({signal:i}));if(this.check(i),c!==!0)throw De()}catch{throw De()}finally{o?.fill(0),s?.fill(0)}}async restore(e){let{signal:t}=e,i=await this.read(t);return this.check(t),i===null?Object.freeze({state:"none"}):i.metadata===null?Object.freeze({state:"pending",operation:this.operation()}):Object.freeze({state:"completed",metadata:this.metadata(i.metadata)})}async pending(e,t){let{signal:i}=t;this.check(i),this.operation(e);let o=await this.read(i);this.check(i),!o&&await this.write(null,null,i)}async completed(e,t){let{signal:i}=t;this.check(i);let o=this.metadata(e);await this.hashChecked(o,i);let s=await this.read(i);if(this.check(i),!s)throw De();if(s.metadata){if(!Ww(s.metadata.genesisItem,o.genesisItem)||s.metadata.expectedGenesis!==o.expectedGenesis)throw De();return}await this.write(o,s.encrypted,i)}close(){this.closed=!0,this.key=null}};Jn();ge();var Gh="public-outcome",Hw="operation",Gt=()=>new Error("app cloud copy outcome store unavailable; preserve storage and reopen"),KT=(n,e)=>n===null||e===null?n===e:n.length===e.length&&n.every((t,i)=>t===e[i]);function Gw(n){if(!(n instanceof Uint8Array)||!n.length||n.length>Wh)throw Gt();return new Uint8Array(n)}var Yh=class n{constructor(e,t,i){this.source=e;this.origin=t;this.lifetime=i;this.fields=Object.freeze({accountId:e.accountId,connectorId:e.connectorId,deviceId:e.deviceId,installationId:e.installationId,collection:e.collection,purpose:e.purpose,cpOrigin:e.cpOrigin,logOrigin:e.logOrigin,assetSha256:e.assetSha256}),this.current=e.isCurrent,this.owned=e.installationOwned}source;origin;lifetime;db=null;closed=!1;fields;current;owned;get fenced(){return this.closed||this.lifetime.aborted}check(e){try{if(this.fenced||e!==this.lifetime||e.aborted||Rt()!==this.origin||this.source.isCurrent!==this.current||this.source.installationOwned!==this.owned||this.current.call(this.source)!==!0||this.owned.call(this.source)!==!0||Object.entries(this.fields).some(([t,i])=>this.source[t]!==i))throw Gt()}catch{throw Gt()}}static async open(e){let{source:t,origin:i,mode:o,signal:s,allowLoopbackHttp:r}=e,a=null;try{a=new n(t,i,s);let c=[a.fields.accountId,a.fields.connectorId,a.fields.deviceId,a.fields.installationId,a.fields.collection].map(p=>{if(U(p).every(d=>d===0))throw Gt();return p.toLowerCase()});if(!Lt(i,r===!0,e.allowNativeLoopbackHttp===!0?"native":void 0)||!["fresh","existing"].includes(o)||!["create","join"].includes(a.fields.purpose)||!/^[0-9a-f]{64}$/.test(a.fields.assetSha256)||!globalThis.indexedDB)throw Gt();a.check(s),a.db=await a.openDatabase(`mdbase.app.cloud-copy-outcome.v1.${c.join(".")}.${a.fields.purpose}`,o),a.db.onversionchange=()=>a.close(),a.check(s);let l=await a.read(Object.freeze({signal:s}));try{if(o==="fresh"!=(l===null))throw Gt();a.check(s)}finally{l?.fill(0)}return a}catch{throw a?.close(),Gt()}}openDatabase(e,t){return new Promise((i,o)=>{this.check(this.lifetime);let s=indexedDB.open(e,1),r=!1,a=!1,c=()=>{r=!0,o(Gt())},l=()=>this.lifetime.removeEventListener("abort",c);this.lifetime.addEventListener("abort",c,{once:!0}),s.onblocked=c,s.onupgradeneeded=()=>{try{if(this.check(this.lifetime),r||t!=="fresh"||s.result.objectStoreNames.length!==0)throw Gt();s.result.createObjectStore(Gh),a=!0}catch{s.transaction?.abort()}},s.onerror=()=>{l(),o(Gt())},s.onsuccess=()=>{l();try{if(this.check(this.lifetime),r||t==="fresh"&&!a||s.result.objectStoreNames.length!==1||!s.result.objectStoreNames.contains(Gh))throw Gt();i(s.result)}catch{s.result.close(),o(Gt())}}})}async read(e){let{signal:t}=e;this.check(t);let i=await this.transaction("readonly",t,null,null);return this.check(t),i}async compareAndSet(e,t,i){let{signal:o}=i;this.check(o);let s=e===null?null:Gw(e),r=Gw(t);try{let a=await this.transaction("readwrite",o,s,r);return this.check(o),a===!0}finally{s?.fill(0),r.fill(0)}}transaction(e,t,i,o){return new Promise((s,r)=>{if(this.check(t),!this.db)throw Gt();let a=this.db.transaction(Gh,e,{durability:"strict"}),c=a.objectStore(Gh),l=null,p=!1,d=()=>{p=!0;try{a.abort()}catch{}},u=()=>t.removeEventListener("abort",d);t.addEventListener("abort",d,{once:!0}),a.onabort=a.onerror=()=>{u(),l instanceof Uint8Array&&l.fill(0),r(Gt())},a.oncomplete=()=>{u();try{if(this.check(t),p)throw Gt();s(l)}catch{l instanceof Uint8Array&&l.fill(0),r(Gt())}};let f=c.get(Hw);f.onsuccess=()=>{let h=null;try{this.check(t),h=f.result===void 0?null:Gw(f.result),e==="readonly"?(l=h,h=null):(l=KT(h,i),l===!0&&o!==null&&(i===null?c.add(new Uint8Array(o),Hw):c.put(new Uint8Array(o),Hw)))}catch{d()}finally{h?.fill(0)}}})}close(){this.closed||(this.closed=!0,this.db?.close(),this.db=null)}};var co=class extends Error{constructor(t){super(`app cloud copy host: ${t}`);this.reason=t;this.name="AppCloudCopyHostError"}reason},WT=32,HT=8,Ae=n=>new co(n),PI=(n,e)=>n.length===e.length&&n.every((t,i)=>t===e[i]),ml=class n{constructor(e,t,i,o,s){this.source=e;this.installation=t;this.originalRelease=i;this.origin=o;this.lifetime=s;this.selected=Object.freeze({accountId:e.accountId,connectorId:e.connectorId,deviceId:e.deviceId,installationId:e.installationId,kind:e.kind,cpOrigin:e.cpOrigin,logOrigin:e.logOrigin,approvalMode:e.approvalMode}),this.currentCallback=e.isCurrent,this.bearerCallback=e.connectorBearer,this.ownershipCallback=t.isCurrent;for(let r of[e.accountId,e.connectorId,e.deviceId,e.installationId])if(U(r).every(a=>a===0))throw Ae("binding");if(e.kind!=="app-runtime"&&e.kind!=="mobile"||i.schema!=="mdbn-app-trust/release/1"||i.cpOrigin!==e.cpOrigin||i.logOrigin!==e.logOrigin||!/^[0-9a-f]{64}$/.test(i.assetSha256)||!i.trustedRoots.length||i.trustedRoots.length>64||!i.policyPins.length||i.policyPins.length>65536)throw Ae("binding");if(this.trust=Object.freeze({...i,source:Object.freeze({...i.source}),trustedRoots:Object.freeze(i.trustedRoots.map(r=>{if(!(r instanceof Uint8Array)||r.length!==32||r.every(a=>a===0))throw Ae("binding");return new Uint8Array(r)})),policyPins:new Uint8Array(i.policyPins)}),this.pin=Object.freeze({...this.selected,isCurrent:()=>this.current(),installationOwned:()=>this.current(),connectorBearer:async({signal:r})=>{this.check(r);let a=await this.bearerCallback.call(this.source,Object.freeze({signal:r}));return this.check(r),a}}),e.approvalMode==="strict")throw new an;this.check(s)}source;installation;originalRelease;origin;lifetime;closing=!1;closeResult=null;provider=null;keys=null;noiseStore=null;key=null;noise=null;native=null;publicReceipt=null;signIn=null;originalCustody=null;collectionAttempted=!1;collectionSignal=null;collectionCurrent=null;outcomeStore=null;outcome=null;bootstrap=null;bootstrapConfirmed=!1;collectionScope=null;collectionSession=null;adoptedEndpoint=null;sqlAttempted=!1;sqlClose=null;collectionSql=null;logRequest=null;logLoopback=!1;logWork=null;authority=null;peopleMetadata=null;pump=null;timerPorts=new Set;readWork=null;readAbort=null;readClient=null;readVerified=!1;facades=new Map;logWorkListener=null;selected;currentCallback;bearerCallback;ownershipCallback;trust;pin;current(){try{let e=this.originalRelease,t=this.trust;return!this.closing&&!this.lifetime.aborted&&Rt()===this.origin&&this.source.isCurrent===this.currentCallback&&this.source.connectorBearer===this.bearerCallback&&this.installation.isCurrent===this.ownershipCallback&&this.currentCallback.call(this.source)===!0&&this.ownershipCallback.call(this.installation)===!0&&this.installation.scope.account===this.selected.accountId&&this.installation.scope.installation===this.selected.installationId&&Object.entries(this.selected).every(([i,o])=>this.source[i]===o)&&e.schema===t.schema&&e.environment===t.environment&&e.cpOrigin===t.cpOrigin&&e.logOrigin===t.logOrigin&&e.assetSha256===t.assetSha256&&e.source.repository===t.source.repository&&e.source.commit===t.source.commit&&e.source.version===t.source.version&&e.trustedRoots.length===t.trustedRoots.length&&e.trustedRoots.every((i,o)=>PI(i,t.trustedRoots[o]))&&PI(e.policyPins,t.policyPins)}catch{return!1}}check(e){if(e.aborted||!this.current())throw Ae("fenced")}operationSignal(e){let t=AbortSignal.any([this.lifetime,...this.collectionSignal?[this.collectionSignal]:[],e]);return this.check(t),t}static async openOriginalDevice(e){let{session:t,installation:i,release:o,origin:s,mode:r,signal:a,loadRuntime:c,fetch:l,allowLoopbackHttp:p,allowNativeLoopbackHttp:d}=e,u=null;try{if(!["fresh","existing"].includes(r))throw Ae("binding");u=new n(t,i,o,s,a);let{custody:f,restored:h}=await u.openOwnedDevice({mode:r,signal:a,loadRuntime:c,allowLoopbackHttp:p,allowNativeLoopbackHttp:d,requireReceipt:!0});if(r==="existing")u.native.acknowledgeDeviceRegistration(h.receipt),u.check(a),u.publicReceipt=u.native.registeredDeviceReceipt();else{let m=await new sl(u.native,u.pin,f,u.noise,{fetch:l,allowLoopbackHttp:p}).register(Object.freeze({signal:a}));u.check(a),u.publicReceipt=m}return u}catch(f){throw await u?.close(),f instanceof co||f instanceof an?f:Ae("unavailable")}}static async openInstallationDevice(e){let{signIn:t,installation:i,release:o,origin:s,signal:r,loadRuntime:a,allowLoopbackHttp:c,allowNativeLoopbackHttp:l}=e,p=null;try{let d=t.confirmedHostSession(o.logOrigin,o.environment);p=new n(d,i,o,s,r),p.signIn=t;let u=await t.prepareOriginalDevice(i);p.check(r);let{custody:f,restored:h}=await p.openOwnedDevice({mode:u.mode,signal:r,loadRuntime:a,allowLoopbackHttp:c,allowNativeLoopbackHttp:l,requireReceipt:!1});if(p.originalCustody=f,h?.receipt&&t.view().state!=="paired")throw Ae("recovery_required");return await p.noise.pending(new Uint8Array(f.envelope),{signal:r}),p.check(r),t.view().state==="paired"&&await p.completeInstallationSignIn(),p}catch(d){throw await p?.close(),d}}async attestInstallation(){if(this.check(this.lifetime),!this.signIn||!this.native||!this.originalCustody||!this.noise)throw Ae("binding");let e=await this.signIn.attest({runtime:this.native,custody:this.originalCustody,persistence:this.noise,installation:this.installation});return this.check(this.lifetime),e}async completeInstallationSignIn(){if(this.check(this.lifetime),!this.signIn||!this.native||!this.originalCustody||!this.noise)throw Ae("binding");return await this.signIn.acknowledge({runtime:this.native,custody:this.originalCustody,persistence:this.noise,installation:this.installation}),this.check(this.lifetime),this.publicReceipt=this.native.registeredDeviceReceipt(),this.registeredReceipt()}async openOwnedDevice(e){let{mode:t,signal:i,loadRuntime:o,allowLoopbackHttp:s,allowNativeLoopbackHttp:r,requireReceipt:a}=e;this.check(i),this.provider=await ll.open({source:this.pin,origin:this.origin,mode:t,signal:i,allowLoopbackHttp:s,allowNativeLoopbackHttp:r}),this.check(i),this.key=this.provider.deviceCustodyKek({signal:i}),this.check(i),this.keys=await cl.open({source:this.pin,origin:this.origin,mode:t,signal:i,allowLoopbackHttp:s,allowNativeLoopbackHttp:r}),this.check(i),this.noiseStore=await dl.open({source:this.pin,origin:this.origin,mode:t,signal:i,allowLoopbackHttp:s,allowNativeLoopbackHttp:r}),this.check(i),this.noise=new pl(this.pin,this.key,this.noiseStore);let c=await this.noise.restore({signal:i});if(this.check(i),t==="existing"?!c||a&&!c.receipt:c!==null)throw Ae("recovery_required");let l=await o(Object.freeze({signal:i}));if(this.check(i),!(l instanceof Uint8Array)||!l.length)throw Ae("binding");this.native=await fl.createDevice(new Uint8Array(l)),this.check(i);let p=await new al(this.pin,this.key,this.keys).openNativeDevice(this.native,{signal:i,mode:t,noise:t==="fresh"?{mode:"fresh"}:{mode:"existing",envelope:c.envelope}});return this.check(i),{custody:p,restored:c}}async bootstrapCloudCopy(e){let{scope:t,collectionCurrent:i,purpose:o,outcomeMode:s,signal:r,reconcile:a,fetch:c,allowLoopbackHttp:l,allowNativeLoopbackHttp:p}=e,d=this.operationSignal(r),u=e.displayName,f=u===void 0?void 0:br(u);if(f!==void 0&&o!=="create"||(this.check(d),this.collectionAttempted||!this.native||!this.key||!this.publicReceipt||t.account!==this.selected.accountId||t.installation!==this.selected.installationId||!["create","join"].includes(o)||!["fresh","existing"].includes(s)||U(t.collection).every(w=>w===0)))throw Ae("binding");let h=Object.freeze({account:t.account,installation:t.installation,collection:t.collection}),m=()=>{try{return this.current()&&!d.aborted&&e.scope===t&&e.collectionCurrent===i&&Object.entries(h).every(([w,g])=>t[w]===g)&&i.call(e)===!0&&this.outcomeStore?.fenced!==!0}catch{return!1}};if(!m())throw Ae("fenced");this.collectionAttempted=!0,this.collectionSignal=d,this.collectionCurrent=m,this.collectionScope=h;let b=Object.freeze({...this.pin,collection:h.collection,purpose:o,assetSha256:this.trust.assetSha256,...f===void 0?{}:{displayName:f},isCurrent:m});this.collectionSession=b;try{this.outcomeStore=await Yh.open({source:b,origin:this.origin,mode:s,signal:d,allowLoopbackHttp:l,allowNativeLoopbackHttp:p}),this.checkCollection(d),this.outcome=new Hh(b,this.publicReceipt,this.key,this.outcomeStore,{mode:s,signal:d}),this.native.prepareCloudCopyCollection(b),this.checkCollection(d),this.bootstrap=new $a(this.native,b,this.trust,this.outcome,{fetch:c,allowLoopbackHttp:l,...f===void 0?{}:{displayName:f}});let w=await this.bootstrap.bootstrap(Object.freeze({signal:d,...a?{reconcile:a}:{}}));return this.checkCollection(d),this.bootstrapConfirmed=!0,w}catch(w){throw await this.close(),w}}checkCollection(e){if(this.check(e),this.collectionCurrent?.()!==!0)throw Ae("fenced")}adoptCloudCopy(e,t){let i=this.operationSignal(e.signal);if(this.checkCollection(i),!this.bootstrap||!this.bootstrapConfirmed||this.adoptedEndpoint!==null)throw Ae("fenced");let o=e.endpoint;this.bootstrap.adoptCollection({...e,signal:this.collectionSignal},t),this.checkCollection(i),this.adoptedEndpoint=o}async openCollectionSql(e){let{replicaId:t,endpoint:i,openSql:o}=e,s=this.operationSignal(e.signal);if(this.checkCollection(s),!this.bootstrapConfirmed||!this.collectionScope||this.sqlAttempted||this.adoptedEndpoint!==null||U(t).every(r=>r===0)||typeof i!="bigint"&&!Number.isSafeInteger(i)||BigInt(i)<0n||BigInt(i)>(1n<<64n)-1n)throw Ae("binding");this.sqlAttempted=!0;try{let r=await o.call(e,Object.freeze({scope:this.collectionScope,signal:s})),a=r.close;if(this.sqlClose=async()=>{await a.call(r)},this.collectionSql=r.sql,this.checkCollection(s),e.openSql!==o)throw Ae("fenced");this.adoptCloudCopy({signal:s,replicaId:t,endpoint:i,opened:r.opened,sqliteVersion:r.sqliteVersion,cloudCopyOptIn:!0},r.sql)}catch(r){throw await this.close(),r}}async startCollectionLog(e){let{fetch:t,allowLoopbackHttp:i}=e,o=this.operationSignal(e.signal);if(this.checkCollection(o),!this.native||!this.collectionSession||this.adoptedEndpoint===null)throw Ae("binding");let s=t??globalThis.fetch,r=i===!0;if(this.authority&&(s!==this.logRequest||r!==this.logLoopback))throw Ae("fenced");if(this.pump)return;if(this.logWork){await this.logWork,this.checkCollection(o);return}this.authority||(this.logRequest=s,this.logLoopback=r,this.authority=new Da(this.native,Object.freeze({...this.collectionSession,endpoint:this.adoptedEndpoint,directOrigins:Object.freeze([])}),{fetch:s,allowLoopbackHttp:i,tokenCache:_I()}));let a=this.authority,c=(async()=>{await a.accessToken(Object.freeze({signal:o})),this.checkCollection(o),this.pump=this.native.bindLogTransport(a.logTransport())})();this.logWork=c;try{await c}finally{this.logWork===c&&(this.logWork=null)}}peopleAuthority(){if(this.checkCollection(this.lifetime),!this.collectionSession||this.adoptedEndpoint===null||!this.logRequest)throw Ae("binding");if(!this.peopleMetadata){let e=this.adoptedEndpoint,t=this.collectionSession,i=new ul(Object.freeze({...t,endpoint:e,directOrigins:Object.freeze([]),isCurrent:()=>this.collectionCurrent?.()===!0&&this.adoptedEndpoint===e,connectorBearer:async({signal:s})=>{s.throwIfAborted(),this.checkCollection(this.lifetime);let r=await t.connectorBearer({signal:this.lifetime});return this.checkCollection(this.lifetime),s.throwIfAborted(),r}}),{fetch:this.logRequest,allowLoopbackHttp:this.logLoopback}),o=Object.freeze({collection:i.collection,isCurrent:()=>i.isCurrent(),request:(s,r)=>i.request(s,r)});this.peopleMetadata={authority:i,view:o}}return this.peopleMetadata.view}openTimersPort(e){if(this.checkCollection(this.lifetime),!this.readVerified||!this.logRequest||!this.collectionScope||e.signal.aborted)throw Ae("binding");let{scope:t,generation:i,signal:o}=e,s=this.collectionScope;if(t.account!==s.account||t.installation!==s.installation||t.collection!==s.collection||U(i).every(h=>h===0))throw Ae("binding");let r=this.source.timerConsent,a=r?.call(this.source);if(!a?.approved)return null;let c=a.grants.find(h=>h.collectionId===t.collection);if(!c)return null;let l=globalThis.WorkerGlobalScope;if(typeof l!="function"||!(globalThis instanceof l)||U(c.grantId).every(h=>h===0)||!/^[0-9a-f]{64}$/.test(c.declarationDigest))throw Ae("binding");let p=JSON.stringify(a),d=new MessageChannel,u=()=>{try{return!o.aborted&&e.signal===o&&e.scope===t&&e.generation===i&&this.collectionCurrent?.()===!0&&this.current()&&t.account===s.account&&t.installation===s.installation&&t.collection===s.collection&&this.source.timerConsent===r&&JSON.stringify(r?.call(this.source))===p}catch{return!1}},f=dC(d.port1,{scope:s,generation:i,grantId:c.grantId,cpOrigin:new URL(this.selected.cpOrigin).origin,signal:o,isCurrent:u,fetch:this.logRequest,...this.signIn?{journal:{read:()=>this.signIn.originalTimerChannel(c.grantId),write:h=>this.signIn.retainTimerChannel(c.grantId,h)}}:{},bearer:async()=>{if(!u())throw Ae("fenced");let h=await this.bearerCallback.call(this.source,{signal:this.lifetime});if(!u())throw Ae("fenced");return h}});return this.timerPorts.add(f),Object.freeze({port:d.port2,close:async()=>{await f.close(),d.port2.close(),this.timerPorts.delete(f)}})}serverProblem(){return this.pump?.serverProblem??null}transportHealth(){return this.pump?.transportHealth??null}initialSync(){try{return this.native?Kh(this.native.observations().status):"unavailable"}catch{return"unavailable"}}keyWaitDetail(){try{return this.native?SI(this.native.observations().status):null}catch{return null}}pendingWrites(){try{return this.native?.observations().status.pending??0}catch{return 0}}pushLog(e){try{return this.native?.pushLog(e)===!0}catch{return!1}}openLogPush(e){this.checkCollection(this.lifetime);let t=this.native,i=this.authority,o=this.collectionSession,s=this.logRequest;if(!t||!this.pump||!i||!o||!s)throw Ae("binding");if(!t.supportsLogPush||typeof WebSocket!="function")return null;let r=this.logLoopback,a=i.origin,c=()=>{try{return this.collectionCurrent?.()===!0&&this.current()&&this.authority===i&&i.isCurrent()}catch{return!1}};return new Vh({origin:a,collection:i.collection,deviceId:o.deviceId,isCurrent:c,accessToken:l=>i.accessToken(l),invalidateToken:l=>i.invalidateToken(l),nonce:async({signal:l})=>{let p=await s(`${a}/v1/nonce`,{signal:l,cache:"no-store",credentials:"omit",redirect:"error",referrerPolicy:"no-referrer"}),d=(await p.text()).trim();if(!p.ok||!/^[0-9a-f]{64}$/.test(d))throw Ae("unavailable");return Uint8Array.from(d.match(/../g).map(u=>parseInt(u,16)))},signHello:(l,p)=>c()?t.signLogHello(l,p):null},e,{allowLoopbackHttp:r})}async driveCollection(e){let t=this.operationSignal(e.signal);if(this.checkCollection(t),!this.native||!this.pump||this.adoptedEndpoint===null)throw Ae("binding");for(let i=0;i<HT;i++){let o=this.pump.callsSent;if(this.native.tick(),await this.pump.pump(),this.checkCollection(t),this.pump?.callsSent===o)break}}async wakeCollectionLog(e){let t=this.operationSignal(e.signal);if(this.checkCollection(t),!this.native||!this.pump||this.adoptedEndpoint===null)throw Ae("binding");this.native.tick(),(await this.pump.pump()).quiet&&(this.checkCollection(t),this.native.requestLogHead()&&(await this.pump.pump(),this.checkCollection(t),this.native.tick()))}waitForVerifiedRead(e){let{timeoutMs:t=15e3,cold:i=!1}=e,o=this.operationSignal(e.signal);if(this.checkCollection(o),!this.native||!this.collectionScope||this.adoptedEndpoint===null||!Number.isSafeInteger(t)||t<1||t>15e3||typeof i!="boolean"||i&&!this.pump)throw Ae("binding");if(this.readWork)return this.readWork.then(()=>{this.checkCollection(o)});let s=this.verifyRead(o,t,i,e.onProgress);return this.readWork=s,s.finally(()=>{this.readWork===s&&(this.readWork=null)}).catch(()=>{}),s}async verifyRead(e,t,i,o){let s=new AbortController,r=()=>s.abort();this.readAbort=s,e.addEventListener("abort",r,{once:!0});let a=null,c=Ae(i?"sync_stalled":"unavailable"),l,p=new Promise((h,m)=>{l=()=>m(c),s.signal.addEventListener("abort",l,{once:!0})});p.catch(()=>{});let d=null,u=h=>{if(h!==d){d=h;try{o?.(h)}catch{}}},f=()=>{this.checkCollection(e);let h=i?this.pump.terminalProblem:null;if(An(h))throw new mn(St(h)??"unavailable",h);let m=this.native.observations();if(m.requiresReopen||m.keyringRebuildFailed)throw Ae("recovery_required");let b=Kh(m.status);return u(b==="installing"?"loading_snapshot":b==="waiting_for_key"?"waiting_for_key":b==="behind"?"replaying":b===null?"verifying_read":"syncing"),m};this.readVerified=!1;try{if(this.pump){let m=()=>{let _=f();return[_.status.confirmedThrough,_.status.installing?.done??0,_.status.installing?.total??0,this.pump.readProgress]},b=m(),w=Date.now(),g=new Map,y=null,v=()=>{try{let _=Date.now(),k=m();k.some((C,R)=>C>b[R])&&(w=_,y=null),b=k.map((C,R)=>Math.max(C,b[R]));let S=this.pump.responseProgress(),x=new Set(S.map(C=>C.id));for(let C of g.keys())x.has(C)||g.delete(C);for(let C of S){let R=g.get(C.id);C.bytes>(R?.bytes??0)&&g.set(C.id,{bytes:C.bytes,at:_})}let P=t-(_-w);P<=0&&(y??=new Set(g.keys()),P=Math.max(0,...[...y].map(C=>{let R=g.get(C);return R?t-(_-R.at):0}))),P<=0?r():a=setTimeout(v,Math.min(250,P))}catch(_){c=_,r()}};a=setTimeout(v,Math.min(250,t))}else a=setTimeout(r,t);this.readClient=await Promise.race([Ei.connect({app:{name:"app-local-read-gate",version:"1"},connector:Ds(this.native,{collection:this.collectionScope.collection}),reconnect:!1,signal:s.signal}).then(m=>{if(s.signal.aborted)throw m.close(),Ae("unavailable");return m}),p]),this.checkCollection(e);let h=250;for(;!s.signal.aborted;){this.native.tick(),this.pump&&await Promise.race([this.pump.pump(),p]),this.checkCollection(e);let m=f();if(i&&Kh(m.status)!==null){await pp(h,s.signal),h=Math.min(1e3,h*2);continue}try{if(await Promise.race([this.readClient.query({limit:1},void 0,s.signal),p]),this.checkCollection(e),s.signal.aborted)throw Ae("unavailable");this.readVerified=!0;return}catch(b){if(this.checkCollection(e),!(b instanceof pe)||b.code!=="unavailable"||!this.pump||s.signal.aborted)throw b}await pp(h,s.signal),h=Math.min(1e3,h*2)}throw Ae("unavailable")}catch(h){throw this.checkCollection(e),s.signal.aborted?c:h}finally{a!==null&&clearTimeout(a),e.removeEventListener("abort",r),s.signal.removeEventListener("abort",l),this.readClient?.close(),this.readClient=null,this.readAbort=null}}onLogWork(e){this.logWorkListener=e}attachDataFacade(e){if(this.checkCollection(this.lifetime),!this.native||!this.collectionScope||!this.readVerified||this.facades.size>=WT||this.facades.has(e))throw Ae("fenced");let t=Object.freeze({...this.collectionScope,isCurrent:()=>{try{return this.checkCollection(this.lifetime),!0}catch{return!1}}}),i=kh(this.native,e,t,()=>this.logWorkListener?.());return this.facades.set(e,i),i.resourceSetup}detachDataFacade(e){let t=this.facades.get(e);t&&(this.facades.delete(e),t.close())}registeredReceipt(){this.check(this.lifetime);let e=this.publicReceipt;if(!e)throw Ae("fenced");return Object.freeze({...e,signPublicKey:new Uint8Array(e.signPublicKey),kemPublicKey:new Uint8Array(e.kemPublicKey),noisePublicKey:new Uint8Array(e.noisePublicKey)})}close(){if(this.closing=!0,this.readVerified=!1,this.readAbort?.abort(),this.closeResult)return this.closeResult;let e=!1;for(let t of[()=>this.readClient?.close(),()=>{for(let i of this.facades.values())i.close();this.facades.clear()},()=>this.peopleMetadata?.authority.close(),()=>this.bootstrap?.close(),()=>this.outcome?.close()])try{t()}catch{e=!0}return this.closeResult??=(async()=>{try{await Promise.all([...this.timerPorts].map(async i=>{try{await i.close()}catch{e=!0}})),this.timerPorts.clear();let t=await this.native?.close();if(this.collectionSql&&t!==!0&&this.collectionSql.fence(),this.authority?.close(),await this.sqlClose?.(),e)throw Ae("unavailable")}finally{this.key=null,this.noise=null,this.originalCustody?.envelope.fill(0),this.originalCustody=null,this.signIn=null,this.publicReceipt=null,this.outcomeStore?.close(),this.noiseStore?.close(),this.keys?.close(),this.provider?.close()}})()}};ox();ie();Yc();Qc();Go();no();Ah();Zc();Xc();eo();Fn();var GT=new Set(["binding","fenced","busy","open_in_another_tab","account_confirmation_required","recovery_account_mismatch","outcome_unknown","response","refused","expired","recovery_required","unavailable","collection_migrating","collection_not_yet_migrated","account_suspended","update_required"]),YT=new Set(["AbortError","ConstraintError","DataCloneError","InvalidStateError","NotAllowedError","NotFoundError","NotReadableError","OperationError","QuotaExceededError","SecurityError","TimeoutError","TransactionInactiveError","UnknownError","VersionError"]),po=(n,e,t,i)=>Object.freeze({problem:n,detail:Object.freeze({name:e,code:t,...i?{server:i}:{}})});function Yw(n){try{for(let[e,t]of[[Xe,"AppInstallationSignInError"],[co,"AppCloudCopyHostError"],[en,"AppCloudCopyBootstrapError"],[nn,"AppCollectionSetupError"],[ti,"AppCollectionControlError"],[lo,"AppCollectionJoinError"],[Zn,"AppCpAuthorityError"],[mn,"AppHttpLogError"]])if(n instanceof e){let i=n.reason,o=("server"in n?Ur(n.server):null)??void 0;return i==="sync_stalled"?po("unavailable",t,i,o):GT.has(i)?po(i,t,i,o):po("open_failed",t,null,o)}if(n instanceof We&&n.reason==="busy")return po("open_in_another_tab","AppReplicaOwnerError","busy");if(n instanceof pe){let e=Sr(n.code)?n.code:null;return po(e==="outcome_unknown"?e:"open_failed","MdbaseError",e)}if(typeof DOMException<"u"&&n instanceof DOMException){let e=YT.has(n.name)?n.name:null;return po("open_failed","DOMException",e)}for(let[e,t]of[[TypeError,"TypeError"],[RangeError,"RangeError"],[SyntaxError,"SyntaxError"],[ReferenceError,"ReferenceError"],[URIError,"URIError"],[EvalError,"EvalError"],[Error,"Error"]])if(n instanceof e)return po("open_failed",t,null)}catch{}return po("open_failed","UnknownError",null)}Qc();Qr();eo();ge();var JT=5e3,XT=n=>Array.from(U(n),e=>e.toString(16).padStart(2,"0")).join(""),Si=n=>(U(n),n.toLowerCase());function Jh(n,e,t=JT){let i;return Promise.race([n.catch(()=>e),new Promise(o=>{i=setTimeout(()=>o(e),t)})]).finally(()=>clearTimeout(i))}function Jw(n){return Jh(new Promise(e=>{let t=indexedDB.deleteDatabase(n);t.onsuccess=()=>e(!0),t.onerror=()=>e(!1)}),!1)}function ZT(n){let e=encodeURIComponent(n.cpOrigin),t=`mdbase.app.installation.v1.${e}.${n.appId}`;return[n.owner===void 0?t:`mdbase.app.installation.v2.${e}.${encodeURIComponent(n.owner)}.${n.appId}`,t]}async function QT(n,e,t){let i=new Set(n.isolated?[]:n.databases);!n.isolated&&n.storageNamespace===void 0&&i.add(t);let{accountId:o,connectorId:s,deviceId:r,installationId:a}=n;if(o&&s&&r&&a){let c=[o,s,r,a].map(XT).join(".");i.add(`mdbase.app.device-key-kek.v1.${c}`),i.add(`mdbase.app.device-keys.v1.${c}`),i.add(`mdbase.app.noise.v1.${Si(a)}.${Si(s)}.${Si(r)}`);let l=[o,s,r,a].map(Si).join("."),p=[`mdbase.app.cloud-copy-outcome.v1.${l}.`,`mdbase.app.private-bootstrap.v1.${l}.`];for(let u of n.collectionIds){let f=Si(u);for(let h of["create","join"])i.add(`${p[0]}${f}.${h}`);for(let h of["create","enrol"])i.add(`${p[1]}${f}.${h}`)}let d=indexedDB.databases;if(typeof d=="function"){let u=await Jh(d.call(indexedDB),[]);for(let{name:f}of u)f&&p.some(h=>f.startsWith(h))&&i.add(f)}}return i.delete(e),[...i]}async function eM(n,e){let t=globalThis.navigator?.storage;return typeof t?.getDirectory!="function"?!0:Jh((async()=>{let i=await t.getDirectory(),o=`.mdbase-app-${Si(n)}-${Si(e)}-`,s=[];for await(let a of i.keys())a.startsWith(o)&&s.push(a);let r=!0;for(let a of s)try{await i.removeEntry(a,{recursive:!0})}catch{r=!1}return r})(),!1)}async function xI(n,e){try{if(!globalThis.indexedDB||!n.accountId||!n.connectorId||!n.deviceId||!n.installationId)return!1;let t=Si(e),i=[n.accountId,n.connectorId,n.deviceId,n.installationId].map(Si).join("."),o=["create","join"].map(a=>`mdbase.app.cloud-copy-outcome.v1.${i}.${t}.${a}`);o.push(...["create","enrol"].map(a=>`mdbase.app.private-bootstrap.v1.${i}.${t}.${a}`));let s=await Promise.all(o.map(Jw)),r=globalThis.navigator?.storage;if(typeof r?.getDirectory=="function"){let a=await r.getDirectory();try{await a.removeEntry(`.mdbase-app-${Si(n.accountId)}-${Si(n.installationId)}-${t}`,{recursive:!0})}catch(c){if(!(c instanceof DOMException&&c.name==="NotFoundError"))return!1}}return s.every(Boolean)}catch{return!1}}async function CI(n){if(!globalThis.indexedDB)return Object.freeze({ledger:!1,complete:!1});let[e,t]=ZT(n),i=await Jw(e),o=null;try{o=await QT(n,e,t)}catch{}let s=o?await Promise.all([...o,...n.isolated||n.storageNamespace!==void 0?[]:[Vw]].map(Jw)):[!1],r=n.storageNamespace===void 0?!0:await Jh(AI(n),!1),a=n.accountId&&n.installationId?await eM(n.accountId,n.installationId).catch(()=>!1):!0;return Object.freeze({ledger:i,complete:i&&r&&a&&s.every(Boolean)})}ie();var tM=Object.freeze({status:"unselected",problem:null,transport:null,live:null}),_t=n=>new Xe(n),nM=new Set(["collection_not_yet_migrated","collection_migrating","account_suspended","update_required"]),Xh=class{lifetime=new AbortController;flowLifetime=new AbortController;options;environment;listeners=new Set;flow=null;host=null;installation=null;installationLease=null;slots=new Map;focus=null;openingSlot=null;abortCollections=()=>{for(let e of this.slots.values())e.lifetime?.abort()};base=Object.freeze({status:"not_started",signIn:null,collections:Object.freeze([]),selectedCollectionId:null,problem:null,timing:null});snapshotValue=this.base;authorizationStartedAt=null;authorizationRetryAt=0;authorizationRateLimit=null;pending=null;polling=null;timer=null;closing=null;foreground=!0;receiptRead=null;foregroundRead=null;attested=!1;acknowledged=!1;consentPending=!1;fileAccess=null;freshApproval=!1;approvalWindow=null;nativePending=null;forgotten=new Set;removedScopes=new Set;onAbort=()=>{this.close().catch(()=>{})};constructor(e){this.options=Object.freeze({...e}),this.environment=Xn({environment:e.environment,appOrigin:e.origin,platform:e.allowNativeLoopbackHttp?"native":void 0,release:e.release}),e.signal.addEventListener("abort",this.onAbort,{once:!0}),this.lifetime.signal.addEventListener("abort",this.abortCollections,{once:!0})}getSnapshot(){return this.snapshotValue}snapshot(){return this.getSnapshot()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}viewFor(e,t={}){return t.bystander&&this.base.status==="authorizing"&&this.consentPending&&e!==null&&this.slots.has(e)?this.compose(e,!0):e===this.focus?this.snapshotValue:this.compose(e)}collectionView(e){return this.slots.get(e)?.view??null}heldCollections(){return[...this.slots.keys()]}compose(e,t=!1){let i=this.base,o=e===null?void 0:this.slots.get(e);if(!o)return i;if(i.status!=="unselected"&&!t)return Object.freeze({...i,selectedCollectionId:o.id,transport:o.view.transport,live:o.view.live});let{problemDetail:s,...r}=i,{problemDetail:a,...c}=o.view;return Object.freeze({...r,...t?{status:"unselected",problem:null,approval:null}:{},...c,selectedCollectionId:o.id,...a?{problemDetail:a}:{}})}connection(e=this.focus){let t=e===null?void 0:this.slots.get(e),i=this.base.status==="unselected"||this.base.status==="authorizing"&&this.consentPending;return!t||this.closing||this.options.signal.aborted||!t.usable||t.lifetime?.signal.aborted||!this.installation?.isCurrent()||!i||!["ready","setup_required"].includes(t.view.status)||!this.sameScope(t.scope,t.leaseScope)||t.scope?.collection!==t.id?null:t.selected?.connection??null}sameScope(e,t){return e!==null&&t!==null&&e.account===t.account&&e.installation===t.installation&&e.collection===t.collection&&e.account===this.installation?.scope.account&&e.installation===this.installation?.scope.installation}directAccess=Fh;checkDirectAccess(e){return this.check(),this.directAccess.check(e)}requestDirectAccess(e){return this.check(),this.directAccess.request(e)}check(){if(this.closing||this.options.signal.aborted||this.lifetime.signal.aborted)throw _t("fenced")}publish(e){this.check(),this.setBase(e),this.changed()}setBase(e){let{problemDetail:t,...i}=this.base,o=e.problem===null?void 0:e.problemDetail??t;this.base=Object.freeze({...i,...e,selectedCollectionId:null,signIn:this.flow?.view()??null,...o?{problemDetail:o}:{}})}publishSlot(e,t){if(this.check(),this.slots.get(e.id)!==e)return;let i=this.base.timing;if(this.authorizationStartedAt!==null&&(t.status==="ready"||t.status==="setup_required")){let c=Math.max(0,performance.now()-this.authorizationStartedAt);i=Object.freeze({firstScreenMs:i?.firstScreenMs??c,readyMs:t.status==="ready"?i?.readyMs??c:i?.readyMs??null})}this.setBase({timing:i});let{problemDetail:o,...s}=e.view,r=t.problem===null?void 0:t.problemDetail??o,a=(t.status??s.status)==="opening"?"openingProgress"in t?t.openingProgress??null:s.openingProgress??null:null;e.view=Object.freeze({...s,...t,openingProgress:a,...r?{problemDetail:r}:{}}),this.changed()}changed(){this.snapshotValue=this.compose(this.focus);for(let e of[...this.listeners])try{e()}catch{}}poll(e){this.pending||(this.operation(e).catch(()=>{}),this.polling=this.pending)}stopPolling(){this.timer!==null&&clearTimeout(this.timer),this.timer=null}operation(e,t=!1){if(this.check(),this.pending)return Promise.reject(_t("busy"));this.foregroundRead=null,this.stopPolling();let o=Promise.resolve().then(()=>(this.check(),e())).catch(async s=>{if(!t&&!this.closing&&!this.options.signal.aborted){let{problem:r,detail:a}=Yw(s);if(r==="open_failed")try{console.error("mdbase web sign-in open failed",a.name,a.code)}catch{}let c=this.openingSlot;if(this.openingSlot=null,c&&this.slots.get(c.id)===c){let l=!1;try{l=s instanceof en&&s.reason==="unavailable"&&s.retryable===!0&&c.view.status==="opening"&&this.base.collections.some(p=>p.collectionId===c.id)&&this.flow?.view().state==="paired"&&this.installation?.isCurrent()===!0}catch{}if(l){try{await this.closeSlot(c),this.check()}catch(p){throw!this.closing&&!this.options.signal.aborted&&this.publishSlot(c,{status:"blocked",problem:"recovery_required",problemDetail:Yw(p).detail}),p}this.publishSlot(c,{status:"unselected",problem:r,problemDetail:a})}else this.publishSlot(c,{status:"blocked",problem:r,problemDetail:a})}else this.publish({status:"blocked",problem:r,problemDetail:a})}throw s});return this.pending=o,o.finally(()=>{this.pending===o&&(this.pending=null),this.schedulePoll()})}start(){return this.operation(async()=>{if(this.flow)return this.getSnapshot();this.publish({status:"starting",problem:null,signOutResult:null});let e=this.options;this.flow=await ja.open({...e,mode:e.storeMode??"open",signal:this.flowLifetime.signal,environmentSelection:this.environment}),this.check();let t=this.flow.view();if(t.state==="paired"){if(this.flow.pendingNativeSelection?.()&&!t.nativeSelection)throw _t("recovery_required");await this.openDevice(!1,this.options.recoveryFor!==void 0),this.flow.collectionConsentView()?.state==="pending"?(this.consentPending=!0,this.publish({status:"authorizing"})):await this.refreshCollections()}else this.publish({status:t.state==="pending"?"signed_out":"authorizing"});return this.getSnapshot()})}authorize(e={}){if(this.check(),this.authorizationRateLimit&&Date.now()<this.authorizationRetryAt)return Promise.reject(this.authorizationRateLimit);let t=this.pending!==null&&this.pending===this.polling?this.pending:null;if(!this.flow||this.pending&&!t)return Promise.reject(_t("busy"));let i=this.options.openPortal();return t?t.catch(()=>{}).then(()=>{try{this.check()}catch(s){throw i.close(),s}if(this.pending)throw i.close(),_t("busy");let o=this.base.status;return o!=="authorizing"&&o!=="signed_out"?(i.close(),this.getSnapshot()):this.beginAuthorization(i,e)}):this.beginAuthorization(i,e)}beginAuthorization(e,t){let i={collectionHint:t.collectionHint??null},o=this.flow.view();return this.authorizationStartedAt=performance.now(),this.publish({timing:Object.freeze({firstScreenMs:null,readyMs:null}),approval:null}),this.operation(async()=>{try{if(o.state==="paired"){if(this.flow.pendingNativeSelection?.()&&!o.nativeSelection)throw _t("recovery_required");await this.openDevice(),this.check();let s=await this.flow.startCollectionConsent(this.installation,this.options.requestedCreateCollections??this.options.freshRequestedCreateCollections??!1,i);this.check(),this.consentPending=!0,e.navigate(s.verificationUri)}else{let s=await this.flow.start(i).catch(r=>this.renewFromGesture(r));this.check(),e.navigate(s.verificationUri)}return this.holdApprovalWindow(e),this.publish({status:"authorizing",problem:null}),await this.advance(),this.getSnapshot()}catch(s){throw s instanceof Xe&&s.server?.status===429&&(this.authorizationRateLimit=s,this.authorizationRetryAt=Date.now()+Math.min(Fs,Math.max(Bs,s.server.retryAfterMs??3e4))),e.close(),s}})}requestFileAccess(e,t,i){if(this.check(),!this.flow||this.pending)return Promise.reject(_t("busy"));let o=this.options.openPortal();return this.operation(async()=>{try{if(this.flow.view().state!=="paired"||!this.installation||!this.base.collections.some(r=>r.collectionId===e))throw _t("refused");let s=await this.flow.startFileAccess(this.installation,e,t,i);return this.check(),this.fileAccess=s,o.navigate(s.verificationUri),this.holdApprovalWindow(o),this.publish({fileAccess:Object.freeze({requestId:s.requestId,collectionId:e,actions:s.actions,state:"pending"})}),this.getSnapshot()}catch(s){throw o.close(),s}},!0)}pollFileAccess(e){let t=this.fileAccess;return!t||t.requestId!==e||this.pending||!this.flow||!this.installation?Promise.resolve(this.getSnapshot()):this.operation(async()=>{let i={state:"pending"};try{i=await this.flow.exchangeFileAccess(this.installation,t)}catch{}if(this.check(),this.fileAccess!==t||i.state==="pending"&&Date.now()<t.expiresAt)return this.getSnapshot();this.fileAccess=null,this.closeApprovalWindow();let o=i.state==="granted"?i.actions:null,s=o?Object.freeze(this.base.collections.map(r=>r.collectionId!==t.collectionId?r:Object.freeze({...r,fileActions:Object.freeze([...new Set([...r.fileActions??[],...o])])}))):this.base.collections;return this.publish({collections:s,fileAccess:Object.freeze({requestId:e,collectionId:t.collectionId,actions:o??t.actions,state:i.state==="pending"?"expired":i.state})}),this.getSnapshot()},!0)}async renewFromGesture(e){if(!(e instanceof Xe)||e.reason!=="expired"&&e.reason!=="refused")throw e;try{return await this.flow.renewExpiredPairing()}catch(t){throw t instanceof Xe&&t.reason==="recovery_required"?e:t}}renewExpiredPairing(){return this.operation(async()=>{if(!this.flow)throw _t("binding");return await this.flow.renewExpiredPairing(),this.check(),this.publish({status:"signed_out",problem:null}),this.getSnapshot()})}receiptGeneration(e){try{if(!e.isCurrent())return null;let t=e.view(),i=this.consentPending?e.collectionConsentView():null;return(this.consentPending?i?.state!=="pending":!["pending","awaiting_approval"].includes(t.state))?null:JSON.stringify([t.requestId,t.installationId,t.deviceId,t.accountId,t.state,this.consentPending,i?.requestId,i?.state])}catch{return null}}currentReceipt(e){try{return!this.closing&&!this.lifetime.signal.aborted&&!this.flowLifetime.signal.aborted&&!e.caller.aborted&&this.options.signal===e.caller&&this.flow===e.flow&&this.installation===e.installation&&(e.installation===null||e.installation.isCurrent()===!0)&&this.attested===e.attested&&this.acknowledged===e.acknowledged&&this.receiptGeneration(e.flow)===e.generation}catch{return!1}}async exchangeReceipt(e){let t=this.flow,i=this.pending,o=t?this.receiptGeneration(t):null,s=t&&i&&o!==null?Object.freeze({flow:t,operation:i,generation:o,caller:this.options.signal,installation:this.installation,attested:this.attested,acknowledged:this.acknowledged}):null;this.receiptRead=s;let r=!1;try{let a=await e();return r=a!=null,a}catch(a){if(a instanceof Xe&&a.reason==="outcome_unknown"&&this.flow?.isCurrent())return this.publish({status:"authorizing",problem:"outcome_unknown"}),null;throw a}finally{this.receiptRead===s&&(this.receiptRead=null),this.foregroundRead===s&&(!r||!s||!this.currentReceipt(s))&&(this.foregroundRead=null)}}async advance(){if(this.consentPending){let t;try{t=await this.exchangeReceipt(()=>this.flow.exchangeCollectionConsent(this.installation))}catch(i){if(!(i instanceof Xe)||i.reason!=="refused"&&i.reason!=="expired")throw i;this.check(),this.consentPending=!1,this.closeApprovalWindow(),this.publish({status:"unselected",problem:null,approval:Object.freeze({outcome:"cancelled"})}),await this.refreshCollections();return}if(this.check(),!t)return;if(t.state==="scope_updated"){if(t.accountSelectionConfirmed!==!0)throw _t("account_confirmation_required");let i=this.flow.pendingNativeSelection?.();if(i?.requestId===t.requestId)await this.finishNativeChoice(i);else if(this.flow.view().collectionSelection?.requestId!==t.requestId)throw _t("response");this.consentPending=!1,this.freshApproval=!0,this.closeApprovalWindow(),await this.refreshCollections()}else await this.prepareNativeChoice(),this.publish({status:"authorizing",problem:null});return}let e=await this.exchangeReceipt(()=>this.flow.exchange());if(this.check(),!!e)if(e.state==="account_selected"&&(e=await this.flow.confirmPortalSelectedAccount(),this.check()),(e.state==="account_confirmed"||e.state==="awaiting_approval")&&(await this.openDevice(),this.check(),this.attested||(await this.host.attestInstallation(),this.check(),this.attested=!0),await this.prepareNativeChoice()),e.state==="paired"){let t=this.flow.pendingNativeSelection?.();if(t?.requestId===e.requestId)await this.finishNativeChoice(t);else if(e.collectionSelection?.requestId!==e.requestId)throw _t("response");this.freshApproval=!0,this.closeApprovalWindow(),await this.openDevice(),this.check(),await this.refreshCollections()}else this.publish({status:"authorizing",problem:null})}async prepareNativeChoice(){let e=this.approvalWindow?.nativeAuthorization;if(!e||!this.installation)return;let t=this.flow.nativeAuthorizationContext(this.installation);if(!t)return;let i=this.nativePending;if(!i){if(i={context:t,port:e,life:new AbortController,prepared:null,failed:!1,attempted:!1},this.nativePending=i,t.authorizationId){i.failed=!0;return}let o=i,s=AbortSignal.any([this.lifetime.signal,this.flowLifetime.signal,i.life.signal]);e.prepare(t,s).then(r=>{this.nativePending!==o||s.aborted||(o.prepared=Object.freeze({...r}))},()=>{o.failed=!0})}if(i.context.requestId!==t.requestId||i.context.accountId!==t.accountId||i.context.challenge!==t.challenge)throw _t("fenced");if(i.prepared&&!i.attempted){i.attempted=!0;try{await this.flow.attachNativeAuthorization(this.installation,i.context,i.prepared),this.check()}catch{i.failed=!0}}}async finishNativeChoice(e){let t=this.nativePending;if(!t||!t.prepared||!t.attempted||t.context.requestId!==e.requestId||t.prepared.authorizationId!==e.authorizationRequestId)throw _t("recovery_required");await this.openDevice(),this.check();let i=await t.port.finish(e,AbortSignal.any([this.lifetime.signal,this.flowLifetime.signal,t.life.signal]));if(this.check(),this.nativePending!==t||!this.acknowledged||!this.installation)throw _t("fenced");await this.flow.completeNativeAuthorization(this.installation,i),this.check()}holdApprovalWindow(e){this.approvalWindow!==e&&this.closeApprovalWindow(),this.approvalWindow=e}closeApprovalWindow(){let e=this.approvalWindow;this.approvalWindow=null;let t=this.nativePending;this.nativePending=null,t?.life.abort();try{t?.port.cancel()}catch{}if(e)try{e.close()}catch{}}async openDevice(e=!1,t=!1){if(!this.installation){let i=this.flow.confirmedSelection(),o=Object.freeze({account:i.accountId,installation:i.installationId});this.installationLease=await Wc(this.options.locks,o,this.lifetime.signal),this.check(),this.installation=Object.freeze({scope:o,isCurrent:()=>!this.closing&&!this.options.signal.aborted&&!this.lifetime.signal.aborted&&this.installationLease!==null})}t||!this.host&&!e&&this.acknowledged&&this.flow.view().state==="paired"&&[...this.slots.values()].some(i=>i.host!==null)||(this.host?!this.acknowledged&&this.flow.view().state==="paired"&&(await this.host.completeInstallationSignIn(),this.check(),this.acknowledged=!0):(this.host=await ml.openInstallationDevice({signIn:this.flow,installation:this.installation,release:this.options.release,origin:this.options.origin,signal:this.lifetime.signal,loadRuntime:this.options.loadRuntime,allowLoopbackHttp:this.environment.allowLoopbackHttp,allowNativeLoopbackHttp:this.environment.allowNativeLoopbackHttp}),this.check(),this.acknowledged=this.flow.view().state==="paired"))}async refreshCollections(){let e=await this.flow.listApprovedCollections(this.installation);this.check();for(let o of this.flow.view().collectionIds)e.some(s=>s.collectionId===o)||this.removedScopes.add(o);let t=Object.freeze(e.filter(o=>!this.forgotten.has(o.collectionId)));for(let o of this.slots.values()){if(o.usable&&o.selected&&!t.some(c=>c.collectionId===o.id)){o.usable=!1,o.lifetime?.abort(),await this.closeSlot(o),this.check(),this.deleteSlot(o);continue}let s=o.usable&&o.selected!==null&&t.some(c=>c.collectionId===o.id),{problemDetail:r,...a}=o.view;o.view=Object.freeze({...a,status:s?o.selected.state:"unselected",problem:null})}this.publish({status:"unselected",collections:t,problem:null});let i=this.flow.view().collectionSelection?.selectedCollectionId;(this.options.autoSelect??"only")==="only"&&(this.freshApproval&&i&&t.some(o=>o.collectionId===i)?await this.openSlot(i,!0):t.length===1&&await this.openSlot(t[0].collectionId,!0))}schedulePoll(){if(this.pending&&!this.closing&&!this.options.signal.aborted)return;let e=this.foregroundRead;this.foregroundRead=null;for(let i of this.closing||this.options.signal.aborted?[]:this.slots.values()){let o=this.retryAfterMs(i);o===null||i.timer!==null||i.view.status!=="blocked"||(i.timer=setTimeout(()=>{i.timer=null,!(this.slots.get(i.id)!==i||i.view.status!=="blocked"||i.view.problem!=="collection_migrating"||this.flow?.view().state!=="paired")&&this.operation(()=>this.openSlot(i.id)).catch(()=>{})},o))}if(this.closing||this.options.signal.aborted||this.timer!==null||this.base.status!=="authorizing")return;let t=this.foreground&&e&&this.currentReceipt(e)?e:null;this.timer=setTimeout(()=>{this.timer=null,this.poll(async()=>{t&&(!this.foreground||!this.currentReceipt(t))||await this.advanceApproval()})},t?0:this.foreground?this.base.problem==="outcome_unknown"?5e3:1e3:1e4)}retryAfterMs(e){let t=e.view;if(t.problem!=="collection_migrating")return null;let i=null;try{i=Ur(t.problemDetail?.server)?.retryAfterMs??null}catch{i=null}return Math.min(Fs,Math.max(Bs,i??3e4))}setForeground(e){this.check();let t=e&&!this.foreground;this.foreground=e,this.stopPolling(),e?t&&this.receiptRead?.operation===this.pending&&(this.foregroundRead=this.receiptRead):this.foregroundRead=null,e&&this.base.status==="authorizing"&&!this.pending?this.poll(()=>this.advanceApproval()):this.schedulePoll()}approvalWindowClosed(){this.check(),!(this.pending||this.base.status!=="authorizing"||!this.approvalWindowGone())&&(this.stopPolling(),this.poll(()=>this.advanceApproval()))}approvalWindowGone(){let e=this.approvalWindow;try{return e?.closed===!0}catch{return!1}}async advanceApproval(){let e=this.approvalWindowGone()?this.approvalWindow:null;if(await this.advance(),this.check(),!(!e||this.approvalWindow!==e||this.base.status!=="authorizing")&&this.base.problem!=="outcome_unknown"){if(this.closeApprovalWindow(),this.consentPending){this.consentPending=!1,this.publish({status:"unselected",problem:null,approval:Object.freeze({outcome:"closed"})}),await this.refreshCollections();return}this.publish({status:"signed_out",problem:"approval_window_closed",approval:Object.freeze({outcome:"closed"})})}}select(e){return this.operation(async()=>(await this.openSlot(e,!0),this.getSnapshot()))}openCollection(e){return this.operation(async()=>(await this.openSlot(e),this.viewFor(e)))}releaseCollection(e){return this.slots.has(e)?this.operation(async()=>{let t=this.slots.get(e);return t&&(await this.closeSlot(t),this.check(),this.deleteSlot(t),this.changed()),this.getSnapshot()}):Promise.resolve(this.getSnapshot())}async openSlot(e,t=!1){this.check();let i=this.base.collections.find(d=>d.collectionId===e);if(!i||this.flow?.view().state!=="paired"||!this.installation)throw _t("refused");let o=t?[...this.slots.values()].filter(d=>d.id!==e):[],s=this.slots.get(e);if(s&&s.usable&&s.selected&&!s.lifetime?.signal.aborted&&this.sameScope(s.scope,s.leaseScope)&&s.scope?.collection===e){for(let d of o)d.usable=!1,d.lifetime?.abort();this.focus=e,this.settleBase(),this.publishSlot(s,{status:s.selected.state,problem:null});for(let d of o)await this.closeSlot(d),this.check(),this.deleteSlot(d),this.changed();return}for(let d of o)d.usable=!1,d.lifetime?.abort();let r=s??{id:e,host:null,lease:null,leaseScope:null,selected:null,scope:null,lifetime:null,usable:!1,stopAssessment:null,timer:null,view:tM};r.usable=!1,r.lifetime?.abort(),this.slots.set(e,r),this.focus=e,this.openingSlot=r,this.settleBase(),this.publishSlot(r,{status:"opening",problem:null,openingProgress:null});for(let d of o)await this.closeSlot(d),this.check(),this.deleteSlot(d),this.changed();(r.lease||r.selected||r.host)&&await this.closeSlot(r),this.check(),await this.openDevice(!0),this.check(),r.host=this.host,this.host=null;let a=Object.freeze({...this.installation.scope,collection:e});r.lease=await Kc(this.options.locks,a,this.lifetime.signal),r.leaseScope=a,this.check(),r.lifetime=new AbortController;let c=this.freshApproval&&this.flow.view().collectionSelection?.createdCollectionIds.includes(e)===!0,l=r.lifetime,p=await this.options.openCollection({host:r.host,installation:this.installation,scope:a,collection:i,setupPolicy:c?"approved-new-collection":"explicit",signal:l.signal,onProgress:d=>{this.closing||this.slots.get(r.id)!==r||r.lifetime!==l||l.signal.aborted||r.view.status!=="opening"||r.view.openingProgress!==d&&this.publishSlot(r,{openingProgress:d})}});if(r.selected=p,r.scope=a,this.check(),p.state!=="ready"&&p.state!=="setup_required")throw _t("response");r.usable=!0,this.openingSlot===r&&(this.openingSlot=null),r.stopAssessment=p.subscribe?.(()=>{if(this.closing||this.slots.get(r.id)!==r||!r.usable||r.selected!==p||r.lifetime?.signal.aborted||!this.sameScope(r.scope,r.leaseScope)||r.scope?.collection!==r.id)return;let d=null;try{d=p.ended??null}catch{d=null}if(d){this.accessEnded(r,p,d);return}(p.state==="ready"||p.state==="setup_required")&&this.publishSlot(r,{status:p.state,...this.liveProblem(r,p)})})??null,this.publishSlot(r,{status:p.state,transport:null,live:null,openingProgress:null})}settleBase(){(this.base.status==="blocked"||this.base.status==="unselected")&&this.setBase({status:"unselected",problem:null})}deleteSlot(e){e.timer!==null&&clearTimeout(e.timer),e.timer=null,this.slots.get(e.id)===e&&this.slots.delete(e.id),this.focus===e.id&&(this.focus=null),this.openingSlot===e&&(this.openingSlot=null)}accessEnded(e,t,i){if(e.selected!==t||!e.usable)return;let o=i==="gone"?"collection_deleted":i==="revoked"?"unauthenticated":"access_removed";i!=="gone"&&this.removedScopes.add(e.id),e.usable=!1,this.publishSlot(e,{status:"blocked",problem:o,transport:null,live:null});let s=()=>{if(!(this.closing||this.options.signal.aborted||e.selected!==t||this.slots.get(e.id)!==e)){if(this.pending){this.pending.catch(()=>{}).then(s);return}this.operation(async()=>{if(await this.closeSlot(e),this.publishSlot(e,{status:"blocked",problem:o}),!(!this.flow||!this.installation||this.flow.view().state!=="paired"))try{let r=await this.flow.listApprovedCollections(this.installation);this.check(),this.publish({collections:Object.freeze(r.filter(a=>!this.forgotten.has(a.collectionId)))})}catch{}}).catch(()=>{})}};s()}liveProblem(e,t){let i=null;try{i=t.problem??null}catch{i=null}let o=null;try{o=t.health??null}catch{o=null}let s=o?Object.freeze({...o}):null,r=null;try{let c=t.live;r=typeof c=="boolean"?c:null}catch{r=null}let a=An(i)?St(i):null;return a&&i?{problem:a,problemDetail:Object.freeze({name:"AppHttpLogError",code:a,server:i}),transport:s,live:r}:{...nM.has(e.view.problem??"")?{problem:null}:{},transport:s,live:r}}async closeSlot(e){e.usable=!1,e.timer!==null&&clearTimeout(e.timer),e.timer=null;let t=e.stopAssessment;e.stopAssessment=null;try{t?.()}catch{}e.lifetime?.abort(),await e.selected?.close(),e.selected=null,e.scope=null,e.lifetime=null,await e.host?.close(),e.host=null,await e.lease?.release(),e.lease=null,e.leaseScope=null}async closeSlots(){for(let t of[...this.slots.values()])await this.closeSlot(t),this.deleteSlot(t);let e=this.host;this.host=null,await e?.close()}clearSelection(){return this.operation(async()=>(await this.closeSlots(),this.focus=null,this.publish({status:"unselected",problem:null}),this.getSnapshot()))}refreshCollectionList(){return this.pending||!this.flow||!this.installation||this.consentPending||this.flow.view().state!=="paired"||this.base.status!=="unselected"?Promise.resolve(this.getSnapshot()):this.operation(async()=>(await this.refreshCollections(),this.getSnapshot()),!0)}scopeWasRemoved(e){return this.removedScopes.has(e)}removedScopeIds(){return Object.freeze([...this.removedScopes])}canAbandonWrongAccount(){return!this.closing&&!this.options.signal.aborted&&this.pending===null&&this.flow?.canAbandonWrongAccount()===!0&&this.installation===null&&this.host===null&&this.slots.size===0&&!this.attested&&!this.acknowledged}scopeRecoveryContext(){if(!this.flow||!this.installation||this.flow.view().state!=="paired")return null;let e=this.flow.view();return Object.freeze({accountId:this.installation.scope.account,accountLabel:e.accountEmail??(e.accountLogin?`@${e.accountLogin}`:null),references:this.flow.collectionRecoveries()})}prepareScopedRecovery(e,t){return this.check(),this.pending?this.pending.catch(()=>{}).then(()=>this.prepareScopedRecovery(e,t)):this.operation(async()=>{if(!this.flow||!this.installation||this.consentPending||this.flow.view().state!=="paired"||!this.flow.view().collectionIds.includes(e))throw _t("binding");let i=this.flow.collectionRecoveries(),o=this.slots.get(e);if(t===void 0&&!Object.hasOwn(i,e)&&!this.scopeWasRemoved(e))throw _t("binding");o&&(await this.closeSlot(o),this.check(),this.deleteSlot(o)),await this.flow.retireCollectionScope(this.installation,e,t??null),this.check();let s=this.flow.confirmedSelection(),r=this.options;if(!await xI({cpOrigin:r.cpOrigin,appId:r.appId,accountId:s.accountId,connectorId:s.connectorId,installationId:s.installationId,deviceId:s.deviceId,collectionIds:[e],databases:[]},e))throw _t("recovery_required");this.check();let a=await this.flow.freshCollectionInstallation(this.installation,e);return this.check(),Object.freeze({accountId:s.accountId,reference:a})},!0)}forget(e){return this.operation(async()=>{let t=this.slots.get(e);return t&&(await this.closeSlot(t),this.check(),this.deleteSlot(t)),this.forgotten.add(e),this.publish({collections:Object.freeze(this.base.collections.filter(i=>i.collectionId!==e))}),this.getSnapshot()})}deleteCollection(e,t){let i=null;return this.operation(async()=>{let o=this.base.collections.find(s=>s.collectionId===e);if(!this.flow||!this.installation||!o)i=new vi("collection_delete_not_found");else if(o.role!=="owner")i=new vi("collection_delete_not_owner");else{try{await this.flow.deleteApprovedCollection(this.installation,e,t)}catch(s){i=rx(s)}this.check()}return this.getSnapshot()}).then(o=>{if(i)throw i;return o})}signOut(){this.check();let e=this.pending!==null&&this.pending===this.polling?this.pending:null;return Promise.resolve(e?.catch(()=>{})).then(()=>this.operation(async()=>{let t=this.flow,i=null,o=null,s=!1;try{i=t?.view()??null}catch{i=null}try{o=t?.confirmedSelection().connectorId??null}catch{o=null}try{s=t?.hasWebPushChannel()===!0}catch{s=!1}let r=[...new Set([...i?.collectionIds??[],...this.base.collections.map(p=>p.collectionId)])];this.closeApprovalWindow(),this.fileAccess=null,this.consentPending=!1;try{await this.closeSlots()}catch(p){throw this.failSignOut(),p}this.check();let a="not_paired";if(t&&i?.state==="paired"){try{a=await t.signOutInstallation()}catch{a="incomplete"}this.check()}this.flow=null,this.installation=null;try{await t?.close()}catch{}this.flowLifetime.abort(),this.flowLifetime=new AbortController,await this.installationLease?.release(),this.installationLease=null,this.attested=!1,this.acknowledged=!1,this.freshApproval=!1,this.authorizationStartedAt=null,this.receiptRead=null,this.foregroundRead=null,this.forgotten.clear(),this.removedScopes.clear();let c=this.options,l=await CI({cpOrigin:c.cpOrigin,appId:c.appId,...c.owner===void 0?{}:{owner:c.owner},...c.storageNamespace===void 0?{}:{storageNamespace:c.storageNamespace},accountId:i?.accountId??null,connectorId:o,installationId:i?.installationId??null,deviceId:i?.deviceId??null,collectionIds:r,databases:c.localDatabases??[],...c.recoveryFor?{isolated:!0}:{}});if(this.check(),!l.ledger)throw this.failSignOut(),A("unavailable","This device couldn't remove its sign-in data.","sign_out_failed");return this.emit(Object.freeze({status:"signed_out",signIn:null,collections:Object.freeze([]),selectedCollectionId:null,problem:null,timing:null,signOutResult:Object.freeze({server:a,local:l.complete?"erased":"incomplete",webPush:s})})),this.getSnapshot()},!0))}failSignOut(){if(this.closing||this.options.signal.aborted)return;let e=null;try{e=this.flow?.view()??null}catch{e=null}let{problemDetail:t,...i}=this.base;this.focus=null,this.emit(Object.freeze({...i,status:"blocked",signIn:e,selectedCollectionId:null,problem:"sign_out_failed"}))}emit(e){if(this.check(),this.base=e,e.status==="signed_out"){for(let t of[...this.slots.values()])this.deleteSlot(t);this.focus=null}this.changed()}close(){if(this.closing)return this.closing;let e=this.pending;return this.foregroundRead=null,this.stopPolling(),this.options.signal.removeEventListener("abort",this.onAbort),this.closing=Promise.resolve().then(async()=>{await e?.catch(()=>{}),await this.closeSlots(),this.focus=null,await this.flow?.close(),this.flowLifetime.abort(),this.flow=null,this.installation=null,await this.installationLease?.release(),this.installationLease=null,this.base=Object.freeze({status:"closed",signIn:null,collections:Object.freeze([]),selectedCollectionId:null,problem:null,timing:this.base.timing}),this.snapshotValue=this.base;for(let t of[...this.listeners])try{t()}catch{}this.listeners.clear()}),this.lifetime.abort(),this.closing}};return LI(iM);})();
|