@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,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page-side hint of the last paired session: the signed-in view and the
|
|
3
|
+
* approved collections, from this browser. Presentation only, never authority:
|
|
4
|
+
* the native session decides what opens. It lets a returning app show its
|
|
5
|
+
* collection list at once while the session starts (P4), and lets a second
|
|
6
|
+
* tab of the app say "open in another tab" instead of offering Sign in.
|
|
7
|
+
* Signing out removes it.
|
|
8
|
+
*/
|
|
9
|
+
import type { AppInstallationCollection, AppInstallationSignInView } from "../app-host/installation-sign-in.js";
|
|
10
|
+
import type { AppWebSignInSnapshot } from "../app-host/web-sign-in-session.js";
|
|
11
|
+
export interface ApplicationSessionHint {
|
|
12
|
+
readonly signIn: AppInstallationSignInView;
|
|
13
|
+
readonly collections: readonly AppInstallationCollection[];
|
|
14
|
+
}
|
|
15
|
+
export interface ApplicationSessionHintStore {
|
|
16
|
+
read(): ApplicationSessionHint | null;
|
|
17
|
+
/** Record a settled paired snapshot; a signed-out one clears the hint. */
|
|
18
|
+
observe(snapshot: AppWebSignInSnapshot): void;
|
|
19
|
+
clear(): void;
|
|
20
|
+
}
|
|
21
|
+
export declare function applicationSessionHint(namespace: string, cpOrigin: string): ApplicationSessionHintStore;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
const ROLES = new Set(["owner", "editor", "viewer"]);
|
|
2
|
+
const text = (v, max = 512) => typeof v === "string" && v.length > 0 && v.length <= max;
|
|
3
|
+
const SETTLED = new Set(["unselected", "opening", "setup_required", "ready"]);
|
|
4
|
+
function collection(v) {
|
|
5
|
+
const c = v;
|
|
6
|
+
if (!c || typeof c !== "object" || !text(c.collectionId, 64) || typeof c.displayName !== "string" || c.displayName.length > 512 || !ROLES.has(c.role))
|
|
7
|
+
return null;
|
|
8
|
+
return Object.freeze({ collectionId: c.collectionId, displayName: c.displayName, role: c.role });
|
|
9
|
+
}
|
|
10
|
+
function view(v) {
|
|
11
|
+
const s = v;
|
|
12
|
+
if (!s || typeof s !== "object" || s.state !== "paired" || !text(s.requestId, 64) || !text(s.installationId, 64) || !text(s.deviceId, 64)
|
|
13
|
+
|| !text(s.appId, 64) || (s.kind !== "app-runtime" && s.kind !== "mobile") || !text(s.verificationUri, 2048) || !text(s.accountId, 64)
|
|
14
|
+
|| !Array.isArray(s.collectionIds) || s.collectionIds.length > 1024 || !s.collectionIds.every(id => text(id, 64)))
|
|
15
|
+
return null;
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
requestId: s.requestId, installationId: s.installationId, deviceId: s.deviceId, appId: s.appId, kind: s.kind,
|
|
18
|
+
verificationUri: s.verificationUri, state: "paired", accountId: s.accountId,
|
|
19
|
+
...(typeof s.accountEmail === "string" && s.accountEmail.length <= 320 ? { accountEmail: s.accountEmail } : {}),
|
|
20
|
+
collectionIds: Object.freeze([...s.collectionIds]), createCollections: s.createCollections === true, requestedCreateCollections: s.requestedCreateCollections === true,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function applicationSessionHint(namespace, cpOrigin) {
|
|
24
|
+
const key = `mdbase.${namespace}.session-hint.v1.${encodeURIComponent(cpOrigin)}`;
|
|
25
|
+
let cached = null, written = null;
|
|
26
|
+
const storage = () => { try {
|
|
27
|
+
return globalThis.localStorage ?? null;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
} };
|
|
32
|
+
const read = () => {
|
|
33
|
+
let raw = null;
|
|
34
|
+
try {
|
|
35
|
+
raw = storage()?.getItem(key) ?? null;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
if (cached && cached.raw === raw)
|
|
41
|
+
return cached.value;
|
|
42
|
+
let value = null;
|
|
43
|
+
try {
|
|
44
|
+
const parsed = raw ? JSON.parse(raw) : null;
|
|
45
|
+
const signIn = parsed?.v === 1 ? view(parsed.signIn) : null;
|
|
46
|
+
const list = Array.isArray(parsed?.collections) && parsed.collections.length <= 1024 ? parsed.collections.map(collection) : null;
|
|
47
|
+
if (signIn && list && list.every(c => c !== null))
|
|
48
|
+
value = Object.freeze({ signIn, collections: Object.freeze(list) });
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
value = null;
|
|
52
|
+
}
|
|
53
|
+
cached = { raw, value };
|
|
54
|
+
return value;
|
|
55
|
+
};
|
|
56
|
+
const clear = () => { written = null; try {
|
|
57
|
+
storage()?.removeItem(key);
|
|
58
|
+
}
|
|
59
|
+
catch { /* optional */ } };
|
|
60
|
+
return Object.freeze({
|
|
61
|
+
read,
|
|
62
|
+
clear,
|
|
63
|
+
observe(snapshot) {
|
|
64
|
+
if (snapshot.status === "signed_out" && snapshot.signIn === null) {
|
|
65
|
+
if (written !== "") {
|
|
66
|
+
clear();
|
|
67
|
+
written = "";
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (!SETTLED.has(snapshot.status) || snapshot.signIn?.state !== "paired")
|
|
72
|
+
return;
|
|
73
|
+
const signIn = view(snapshot.signIn), collections = snapshot.collections.map(collection);
|
|
74
|
+
if (!signIn || !collections.every(c => c !== null))
|
|
75
|
+
return;
|
|
76
|
+
const raw = JSON.stringify({ v: 1, signIn, collections });
|
|
77
|
+
if (raw === written)
|
|
78
|
+
return;
|
|
79
|
+
written = raw;
|
|
80
|
+
try {
|
|
81
|
+
storage()?.setItem(key, raw);
|
|
82
|
+
}
|
|
83
|
+
catch { /* optional */ }
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=session-hint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-hint.js","sourceRoot":"","sources":["../../src/application/session-hint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/** Reviewable collection setup: one plan for one review screen, then one
|
|
2
|
+
* guarded all-or-nothing apply. Native Core plans; the SDK only words it. */
|
|
3
|
+
import type { AppResourceAssessment, AppResourceReview } from "../app-host/collection-control.js";
|
|
4
|
+
import type { MdbaseApplicationReadinessSnapshot, MdbaseApplicationRequestOptions, MdbaseApplicationSnapshot } from "./entry.js";
|
|
5
|
+
import { type MdbaseVersionRelation } from "../semver.js";
|
|
6
|
+
import type { NewerPacks } from "./configuration.js";
|
|
7
|
+
/** A starter record created once, in the same mutation as the first setup. */
|
|
8
|
+
export interface MdbaseSetupRecord {
|
|
9
|
+
/** Collection path, e.g. `Welcome.md`. An occupied path is left alone. */
|
|
10
|
+
readonly path: string;
|
|
11
|
+
/** The complete Markdown document, frontmatter included. */
|
|
12
|
+
readonly document: string;
|
|
13
|
+
}
|
|
14
|
+
export interface MdbaseSetupPlanOptions extends MdbaseApplicationRequestOptions {
|
|
15
|
+
/** Reviewed adoptions from an earlier plan's `adoptable`: target → digest. */
|
|
16
|
+
readonly adopt?: Readonly<Record<string, string>>;
|
|
17
|
+
/** Starter records, created only if setup runs and their path is free.
|
|
18
|
+
* Verified afterwards by identity, path and confirmation, not exact bytes. */
|
|
19
|
+
readonly records?: readonly MdbaseSetupRecord[];
|
|
20
|
+
}
|
|
21
|
+
export type MdbaseSetupChangeKind = "create" | "update" | "delete" | "adopt" | "setting" | "record";
|
|
22
|
+
/** One line of the review screen. `message` is written to be shown as is. */
|
|
23
|
+
export interface MdbaseSetupChange {
|
|
24
|
+
readonly kind: MdbaseSetupChangeKind;
|
|
25
|
+
/** Collection path, or the setting's name for `setting`. */
|
|
26
|
+
readonly target: string;
|
|
27
|
+
readonly message: string;
|
|
28
|
+
}
|
|
29
|
+
export interface MdbaseSetupConflict {
|
|
30
|
+
readonly target: string;
|
|
31
|
+
readonly message: string;
|
|
32
|
+
/** Present when using the app's version resolves it: pass via `adopt`. */
|
|
33
|
+
readonly adoptable?: {
|
|
34
|
+
readonly digest: string;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** Why setup can't run. `installed_newer`: a newer major version of this app's
|
|
38
|
+
* types is installed; ask the person to update the app (describeError action
|
|
39
|
+
* `update_app`). `setup_unresolved`: the collection still lacks what the app
|
|
40
|
+
* needs and setup has nothing it may write to fix it (a note type it set up
|
|
41
|
+
* was removed); the person changes the collection, then plans again.
|
|
42
|
+
* `setup_downgrade` is the former name and is no longer produced. */
|
|
43
|
+
export type MdbaseSetupRefusalCode = "setup_forbidden" | "setup_conflict" | "setup_unresolved" | "installed_newer" | "setup_downgrade" | "setup_records_forbidden";
|
|
44
|
+
/** One type pack in a plan. `relation` compares the installed version with the
|
|
45
|
+
* app's: `installed_newer` packs (same major) are kept as installed and the app
|
|
46
|
+
* reads and writes them, keeping fields it does not know. */
|
|
47
|
+
export interface MdbaseSetupPack {
|
|
48
|
+
readonly id: string;
|
|
49
|
+
readonly version: string;
|
|
50
|
+
readonly status: AppResourceReview["packs"][number]["status"];
|
|
51
|
+
readonly installedVersion?: string;
|
|
52
|
+
readonly relation?: MdbaseVersionRelation;
|
|
53
|
+
}
|
|
54
|
+
export interface MdbaseSetupPlan {
|
|
55
|
+
/** `current`: nothing to do. `setup`: changes to apply. `conflict`: blocked. */
|
|
56
|
+
readonly status: "current" | "setup" | "conflict";
|
|
57
|
+
readonly canApply: boolean;
|
|
58
|
+
/** Binds the reviewed collection state and decisions. */
|
|
59
|
+
readonly digest: string;
|
|
60
|
+
/** One plain sentence for the top of the review screen. */
|
|
61
|
+
readonly summary: string;
|
|
62
|
+
readonly changes: readonly MdbaseSetupChange[];
|
|
63
|
+
readonly conflicts: readonly MdbaseSetupConflict[];
|
|
64
|
+
/** Conflicts that using the app's version would resolve: pass as `adopt` and plan again. */
|
|
65
|
+
readonly adoptable: Readonly<Record<string, string>>;
|
|
66
|
+
readonly packs: readonly MdbaseSetupPack[];
|
|
67
|
+
/** The definition documents setup would write, for a details view. */
|
|
68
|
+
readonly staged: readonly {
|
|
69
|
+
readonly path: string;
|
|
70
|
+
readonly document: string;
|
|
71
|
+
}[];
|
|
72
|
+
/** Starter records: `create` is written with the setup, `skip` already exists. */
|
|
73
|
+
readonly records: readonly {
|
|
74
|
+
readonly path: string;
|
|
75
|
+
readonly action: "create" | "skip";
|
|
76
|
+
}[];
|
|
77
|
+
readonly refusal?: {
|
|
78
|
+
readonly code: MdbaseSetupRefusalCode;
|
|
79
|
+
readonly message: string;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export interface MdbaseApplicationSetup {
|
|
83
|
+
/** Plan setup of the open collection. Changes no collection data (it may
|
|
84
|
+
* settle the local journal of an earlier apply); call again after any decision. */
|
|
85
|
+
plan(options?: MdbaseSetupPlanOptions): Promise<MdbaseSetupPlan>;
|
|
86
|
+
/** Apply a plan from `plan` unchanged, as one guarded mutation. Refuses
|
|
87
|
+
* `setup_changed` if the collection changed since it was reviewed. */
|
|
88
|
+
apply(plan: MdbaseSetupPlan, options?: MdbaseApplicationRequestOptions): Promise<MdbaseApplicationSnapshot>;
|
|
89
|
+
}
|
|
90
|
+
export declare function setupRecords(records: unknown): readonly MdbaseSetupRecord[];
|
|
91
|
+
/** A plan with nothing to write cannot open a collection whose required
|
|
92
|
+
* contracts native readiness still finds missing or unimplemented (for example
|
|
93
|
+
* the app's seeded type was deleted). Say so instead of "nothing to do". */
|
|
94
|
+
export declare function unresolvedSetup(plan: MdbaseSetupPlan, readiness: MdbaseApplicationReadinessSnapshot): MdbaseSetupPlan;
|
|
95
|
+
/** Word native Core's review for a first-run user. No raw codes in messages. */
|
|
96
|
+
export declare function setupPlan(assessed: AppResourceAssessment, input: {
|
|
97
|
+
readonly canManage: boolean;
|
|
98
|
+
readonly canCreateRecords: boolean;
|
|
99
|
+
readonly records: readonly {
|
|
100
|
+
readonly path: string;
|
|
101
|
+
readonly free: boolean;
|
|
102
|
+
}[];
|
|
103
|
+
/** Packs installed at a newer version (see configuration `newerPacks`). */
|
|
104
|
+
readonly newer?: NewerPacks;
|
|
105
|
+
}): MdbaseSetupPlan;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { versionRelation } from "../semver.js";
|
|
2
|
+
const MAX_RECORDS = 32, MAX_RECORD_BYTES = 256 * 1024;
|
|
3
|
+
const name = (target) => (target.split("/").pop() ?? target).replace(/\.(md|ya?ml|json)$/i, "");
|
|
4
|
+
/** Explain the purpose, not an internal identifier. Exact paths and documents
|
|
5
|
+
* remain in the plan for inspection; they are not names an owner chose. */
|
|
6
|
+
function definition(kind) {
|
|
7
|
+
const bare = kind === "contract" ? "shared format for this app's notes"
|
|
8
|
+
: kind === "type" ? "note type for this app"
|
|
9
|
+
: kind === "schema" ? "set of checks for this app's note properties"
|
|
10
|
+
: "setup item this app needs";
|
|
11
|
+
return { the: `the ${bare}`, bare };
|
|
12
|
+
}
|
|
13
|
+
const plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
|
|
14
|
+
const setting = (path) => (path.split("/").filter(Boolean).pop() ?? path).replace(/[_-]+/g, " ");
|
|
15
|
+
export function setupRecords(records) {
|
|
16
|
+
if (records === undefined)
|
|
17
|
+
return Object.freeze([]);
|
|
18
|
+
if (!Array.isArray(records) || records.length > MAX_RECORDS)
|
|
19
|
+
throw new TypeError("setup records: at most 32 { path, document } entries");
|
|
20
|
+
const seen = new Set(), utf8 = new TextEncoder();
|
|
21
|
+
let bytes = 0;
|
|
22
|
+
return Object.freeze(records.map(r => {
|
|
23
|
+
const path = r?.path, document = r?.document;
|
|
24
|
+
if (typeof path !== "string" || !/\.md$/i.test(path) || path.length > 1024 || path.startsWith("/") || path.split("/").some(s => !s || s === "." || s === "..")
|
|
25
|
+
|| seen.has(path.toLowerCase()) || typeof document !== "string" || !document.length
|
|
26
|
+
|| (bytes += utf8.encode(document).length + utf8.encode(path).length) > MAX_RECORD_BYTES)
|
|
27
|
+
throw new TypeError("setup records: each needs a unique relative .md path and a document (256 KiB in total)");
|
|
28
|
+
seen.add(path.toLowerCase());
|
|
29
|
+
return Object.freeze({ path, document });
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
const UNRESOLVED = "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.";
|
|
33
|
+
/** A plan with nothing to write cannot open a collection whose required
|
|
34
|
+
* contracts native readiness still finds missing or unimplemented (for example
|
|
35
|
+
* the app's seeded type was deleted). Say so instead of "nothing to do". */
|
|
36
|
+
export function unresolvedSetup(plan, readiness) {
|
|
37
|
+
if (plan.status !== "current" || plan.refusal || readiness.facets.contracts.assessment?.status !== "setup_required")
|
|
38
|
+
return plan;
|
|
39
|
+
return Object.freeze({ ...plan, status: "conflict", summary: UNRESOLVED,
|
|
40
|
+
refusal: Object.freeze({ code: "setup_unresolved", message: UNRESOLVED }) });
|
|
41
|
+
}
|
|
42
|
+
/** Word native Core's review for a first-run user. No raw codes in messages. */
|
|
43
|
+
export function setupPlan(assessed, input) {
|
|
44
|
+
const review = assessed.review;
|
|
45
|
+
let status = assessed.status === "current" ? "current" : assessed.status === "conflict" ? "conflict" : "setup";
|
|
46
|
+
const changes = [], conflicts = [], adoptable = {};
|
|
47
|
+
const replaced = new Set(review.staged.map(s => s.path));
|
|
48
|
+
for (const pack of review.packs)
|
|
49
|
+
for (const r of pack.resources) {
|
|
50
|
+
const thing = definition(r.kind), The = `T${thing.the.slice(1)}`;
|
|
51
|
+
const why = r.kind === "contract" ? ", so other apps can work with them" : "";
|
|
52
|
+
switch (r.action) {
|
|
53
|
+
case "create":
|
|
54
|
+
changes.push({ kind: "create", target: r.target, message: `Add ${thing.the}${why}.` });
|
|
55
|
+
break;
|
|
56
|
+
case "update":
|
|
57
|
+
changes.push({ kind: "update", target: r.target, message: `Update ${thing.the}.` });
|
|
58
|
+
break;
|
|
59
|
+
case "delete":
|
|
60
|
+
changes.push({ kind: "delete", target: r.target, message: `Remove ${thing.the}, which this app no longer uses.` });
|
|
61
|
+
break;
|
|
62
|
+
// Unreviewed, Core plans adopt only for byte-identical bytes: nothing is
|
|
63
|
+
// written. A reviewed replacement is an adopt row whose document is staged.
|
|
64
|
+
case "adopt":
|
|
65
|
+
changes.push({ kind: "adopt", target: r.target, message: replaced.has(r.target)
|
|
66
|
+
? `Replace ${thing.the} with this app's version. Yours isn't kept.`
|
|
67
|
+
: `Use your existing ${thing.bare}, which already matches this app's.` });
|
|
68
|
+
break;
|
|
69
|
+
// Core keeps a seed that no published version upgrades (`reason` says
|
|
70
|
+
// so); the app's version is then never written unless the person chooses
|
|
71
|
+
// it, so a required contract could stay unimplemented while the pack
|
|
72
|
+
// reads current. Like a conflicting seed, it is replaced only by choice.
|
|
73
|
+
case "preserve":
|
|
74
|
+
case "conflict": {
|
|
75
|
+
if (r.action === "preserve" && r.reason === undefined)
|
|
76
|
+
break;
|
|
77
|
+
const seed = r.mode === "seed";
|
|
78
|
+
const canAdopt = r.currentDigest !== undefined && (seed || !r.installed);
|
|
79
|
+
if (canAdopt)
|
|
80
|
+
adoptable[r.target] = r.currentDigest;
|
|
81
|
+
conflicts.push({ target: r.target, ...(canAdopt ? { adoptable: { digest: r.currentDigest } } : {}),
|
|
82
|
+
message: canAdopt && seed ? `Your ${thing.bare} has changes that can't be combined with the version this app needs. You can replace it with this app's version.`
|
|
83
|
+
: canAdopt ? `This collection already has a ${thing.bare} that differs from the one this app needs. You can replace it with this app's version.`
|
|
84
|
+
: r.installed ? `${The} was changed after this app set it up, so it can't be updated automatically.`
|
|
85
|
+
: `${The} can't be set up automatically.` });
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
default: break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
for (const c of review.configuration) {
|
|
92
|
+
const label = setting(c.path);
|
|
93
|
+
if (c.action === "add")
|
|
94
|
+
changes.push({ kind: "setting", target: label,
|
|
95
|
+
message: label === "include"
|
|
96
|
+
? "Include this app's files when reading the collection."
|
|
97
|
+
: label === "record extensions" && typeof c.value === "string"
|
|
98
|
+
? `Read .${c.value.replace(/^\./, "")} files as notes in this collection.`
|
|
99
|
+
: "Adjust a collection setting this app needs." });
|
|
100
|
+
else
|
|
101
|
+
conflicts.push({ target: label, message: "A collection setting differs from what this app needs, so it can't be changed automatically." });
|
|
102
|
+
}
|
|
103
|
+
const records = status === "current" ? [] : input.records.map(r => Object.freeze({ path: r.path, action: r.free ? "create" : "skip" }));
|
|
104
|
+
for (const r of records)
|
|
105
|
+
if (r.action === "create")
|
|
106
|
+
changes.push({ kind: "record", target: r.path, message: `Create the starter note "${name(r.path)}".` });
|
|
107
|
+
// A kept seed blocks even a pack Core reports current: never "nothing to do".
|
|
108
|
+
if (status === "current" && conflicts.length)
|
|
109
|
+
status = "conflict";
|
|
110
|
+
const newerMajor = (input.newer?.major.length ?? 0) > 0 || review.packs.some(p => p.installedVersion && versionRelation(p.installedVersion, p.version) === "installed_newer_major");
|
|
111
|
+
let refusal;
|
|
112
|
+
if (status !== "current" && !input.canManage)
|
|
113
|
+
refusal = { code: "setup_forbidden", message: "This app doesn't have permission to set up this collection." };
|
|
114
|
+
else if (newerMajor)
|
|
115
|
+
refusal = { code: "installed_newer", message: "A newer version of this app set up this collection. Update the app to continue." };
|
|
116
|
+
else if (conflicts.length)
|
|
117
|
+
refusal = { code: "setup_conflict", message: conflicts.length === Object.keys(adoptable).length
|
|
118
|
+
? `${conflicts.length === 1 ? "One item differs" : `${conflicts.length} items differ`} from what this app needs. Choose whether to use this app's version to continue.`
|
|
119
|
+
: "Some items can't be set up automatically. Resolve them, then try again." };
|
|
120
|
+
else if (records.some(r => r.action === "create") && !input.canCreateRecords)
|
|
121
|
+
refusal = { code: "setup_records_forbidden", message: "This app doesn't have permission to create notes in this collection." };
|
|
122
|
+
const summary = status === "current" ? "Everything this app needs is already set up."
|
|
123
|
+
: refusal ? refusal.message
|
|
124
|
+
: `This app will make ${plural(changes.length, "change")} to this collection.${changes.every(c => c.kind === "create" || c.kind === "record" || (c.kind === "adopt" && !replaced.has(c.target))) ? " Nothing already in it is changed." : ""}`;
|
|
125
|
+
return Object.freeze({
|
|
126
|
+
status, canApply: status === "setup" && refusal === undefined, digest: assessed.assessmentDigest, summary,
|
|
127
|
+
changes: Object.freeze(changes.map(c => Object.freeze(c))), conflicts: Object.freeze(conflicts.map(c => Object.freeze(c))),
|
|
128
|
+
adoptable: Object.freeze(adoptable),
|
|
129
|
+
packs: Object.freeze([
|
|
130
|
+
...review.packs.map(p => Object.freeze({ id: p.id, version: p.version, status: p.status,
|
|
131
|
+
...(p.installedVersion ? { installedVersion: p.installedVersion, relation: versionRelation(p.installedVersion, p.version) } : {}) })),
|
|
132
|
+
...(input.newer?.kept ?? []).map(p => Object.freeze({ id: p.id, version: p.version, status: "current", installedVersion: p.installedVersion, relation: "installed_newer" })),
|
|
133
|
+
]),
|
|
134
|
+
staged: review.staged, records: Object.freeze(records), ...(refusal ? { refusal: Object.freeze(refusal) } : {}),
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/application/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Unconfirmed writes on the open collection: the larger of the write ledger's
|
|
2
|
+
* pending entries and the replica's status (0 when none is open). */
|
|
3
|
+
export declare function pendingWrites(connection: {
|
|
4
|
+
readonly records: {
|
|
5
|
+
readonly status: {
|
|
6
|
+
readonly pending: number;
|
|
7
|
+
};
|
|
8
|
+
readonly ledger?: {
|
|
9
|
+
getSnapshot(): {
|
|
10
|
+
readonly pending: readonly unknown[];
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
} | null | undefined): number;
|
|
15
|
+
/** The typed refusal while writes are unconfirmed; `{discard: true}` overrides
|
|
16
|
+
* it. `details` is the number of unconfirmed writes. */
|
|
17
|
+
export declare function signOutPendingWritesError(pending?: number): import("../errors.js").MdbaseError;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** UX-011: shared sign-out guard for the entry and the testing fixtures. */
|
|
2
|
+
import { mdbaseError } from "../errors.js";
|
|
3
|
+
/** Unconfirmed writes on the open collection: the larger of the write ledger's
|
|
4
|
+
* pending entries and the replica's status (0 when none is open). */
|
|
5
|
+
export function pendingWrites(connection) {
|
|
6
|
+
let status = 0, ledger = 0;
|
|
7
|
+
try {
|
|
8
|
+
const pending = connection?.records.status.pending;
|
|
9
|
+
status = typeof pending === "number" && pending > 0 ? pending : 0;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
status = 0;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
ledger = connection?.records.ledger?.getSnapshot().pending.length ?? 0;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
ledger = 0;
|
|
19
|
+
}
|
|
20
|
+
return Math.max(status, ledger);
|
|
21
|
+
}
|
|
22
|
+
/** The typed refusal while writes are unconfirmed; `{discard: true}` overrides
|
|
23
|
+
* it. `details` is the number of unconfirmed writes. */
|
|
24
|
+
export function signOutPendingWritesError(pending = 0) {
|
|
25
|
+
const what = pending === 1 ? "1 change hasn't" : pending > 1 ? `${pending} changes haven't` : "Some changes haven't";
|
|
26
|
+
return mdbaseError("conflict", `${what} reached mdbase yet. Wait for them to finish, or sign out anyway and lose them on this device.`, { reason: "sign_out_pending_writes", details: pending });
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=sign-out.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign-out.js","sourceRoot":"","sources":["../../src/application/sign-out.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;qEACqE;AACrE,MAAM,UAAU,aAAa,CAAC,UAAqL;IACjN,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC;QAAC,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAAC,MAAM,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,GAAG,CAAC,CAAC;IAAC,CAAC;IACpJ,IAAI,CAAC;QAAC,MAAM,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,GAAG,CAAC,CAAC;IAAC,CAAC;IACrG,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AACD;wDACwD;AACxD,MAAM,UAAU,yBAAyB,CAAC,OAAO,GAAG,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,kBAAkB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IACrH,OAAO,WAAW,CAAC,UAAU,EAAE,GAAG,IAAI,gGAAgG,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACnM,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ApplicationDeclarationSnapshot } from "./declaration.js";
|
|
2
|
+
/** Local organization only: same-origin JavaScript remains trusted. Compare
|
|
3
|
+
* BEFORE registration rebinding so a replacement app ID cannot move old data. */
|
|
4
|
+
export declare function applicationStorageNamespace(declaration: Readonly<ApplicationDeclarationSnapshot>): string | null;
|
|
5
|
+
export declare function storageNamespaceDigest(namespace: string): string;
|
|
6
|
+
/** Bounded owner also leaves room for the existing :scope:<UUID> recovery slot.
|
|
7
|
+
* Hash the tuple to avoid delimiter collisions and preserve the family binding. */
|
|
8
|
+
export declare function applicationStorageOwner(manifestId: string, namespace: string | null): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { sha256 } from "@noble/hashes/sha2.js";
|
|
2
|
+
/** Local organization only: same-origin JavaScript remains trusted. Compare
|
|
3
|
+
* BEFORE registration rebinding so a replacement app ID cannot move old data. */
|
|
4
|
+
export function applicationStorageNamespace(declaration) {
|
|
5
|
+
return declaration.storage.applicationNamespace === declaration.id ? null : declaration.storage.applicationNamespace;
|
|
6
|
+
}
|
|
7
|
+
export function storageNamespaceDigest(namespace) {
|
|
8
|
+
return Array.from(sha256(new TextEncoder().encode(namespace)), byte => byte.toString(16).padStart(2, "0")).join("");
|
|
9
|
+
}
|
|
10
|
+
/** Bounded owner also leaves room for the existing :scope:<UUID> recovery slot.
|
|
11
|
+
* Hash the tuple to avoid delimiter collisions and preserve the family binding. */
|
|
12
|
+
export function applicationStorageOwner(manifestId, namespace) {
|
|
13
|
+
return namespace === null ? `bundle:${manifestId}` : `bundle-storage:${storageNamespaceDigest(JSON.stringify([manifestId, namespace]))}`;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=storage-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-scope.js","sourceRoot":"","sources":["../../src/application/storage-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAG7C;iFACiF;AACjF,MAAM,UAAU,2BAA2B,CAAC,WAAoD;IAC9F,OAAO,WAAW,CAAC,OAAO,CAAC,oBAAoB,KAAG,WAAW,CAAC,EAAE,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACjH,CAAC;AACD,MAAM,UAAU,sBAAsB,CAAC,SAAgB;IACrD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClH,CAAC;AACD;mFACmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,UAAiB,EAAC,SAAqB;IAC7E,OAAO,SAAS,KAAG,IAAI,CAAA,CAAC,CAAA,UAAU,UAAU,EAAE,CAAA,CAAC,CAAA,kBAAkB,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACpI,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/** One session per app per browser. The first tab (the leader) runs the SDK
|
|
2
|
+
* Worker; every other tab of the same app and build (a follower) attaches to
|
|
3
|
+
* that Worker through the leader page. Followers get their own operation
|
|
4
|
+
* channel and their own data, control and timer ports, so reads, writes and
|
|
5
|
+
* live updates work in every tab, and sign-out, revocation and collection
|
|
6
|
+
* switches reach all of them through the one session.
|
|
7
|
+
*
|
|
8
|
+
* Leadership is a Web Lock. Followers wait for it; when the leader tab closes,
|
|
9
|
+
* reloads or is parked in the back/forward cache, the next follower takes over
|
|
10
|
+
* and the others re-attach. BroadcastChannel cannot transfer MessagePorts, so
|
|
11
|
+
* the leader page tunnels each port as a numbered stream: any port inside a
|
|
12
|
+
* message becomes a stream marker on one side and a fresh local port on the
|
|
13
|
+
* other. Each follower holds a presence lock; the leader waits on it, so a tab
|
|
14
|
+
* that vanishes without a goodbye is detached all the same. No timers. */
|
|
15
|
+
export interface ApplicationTabsScope {
|
|
16
|
+
readonly cpOrigin: string;
|
|
17
|
+
readonly appId: string;
|
|
18
|
+
/** Build identity (the Worker module URL): tabs on different builds never share a Worker. */
|
|
19
|
+
readonly build: string;
|
|
20
|
+
readonly storageNamespace?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ApplicationTabLocks {
|
|
23
|
+
request(name: string, options: {
|
|
24
|
+
ifAvailable: true;
|
|
25
|
+
signal?: undefined;
|
|
26
|
+
}, callback: (lock: unknown) => Promise<void> | void): Promise<unknown>;
|
|
27
|
+
request(name: string, options: {
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
}, callback: (lock: unknown) => Promise<void> | void): Promise<unknown>;
|
|
30
|
+
}
|
|
31
|
+
export interface ApplicationTabsEnvironment {
|
|
32
|
+
readonly locks: ApplicationTabLocks;
|
|
33
|
+
readonly BroadcastChannel: typeof globalThis.BroadcastChannel;
|
|
34
|
+
}
|
|
35
|
+
/** A follower's link to the leader's Worker. */
|
|
36
|
+
export interface ApplicationFollowerLink {
|
|
37
|
+
readonly port: MessagePort;
|
|
38
|
+
readonly binding: string;
|
|
39
|
+
/** Leave the leader (this tab's runtime stopped). */
|
|
40
|
+
leave(): void;
|
|
41
|
+
}
|
|
42
|
+
export interface ApplicationLeaderWorker {
|
|
43
|
+
attach(port: MessagePort, binding: string): void;
|
|
44
|
+
detach(binding: string): void;
|
|
45
|
+
}
|
|
46
|
+
/** This page's membership in its app's tab group. */
|
|
47
|
+
export declare class ApplicationTabs {
|
|
48
|
+
private readonly env;
|
|
49
|
+
private readonly lost;
|
|
50
|
+
private readonly signedInElsewhere;
|
|
51
|
+
readonly tab: `${string}-${string}-${string}-${string}-${string}`;
|
|
52
|
+
private readonly base;
|
|
53
|
+
private channel;
|
|
54
|
+
private presence;
|
|
55
|
+
/** Held while this tab leads. */
|
|
56
|
+
private leading;
|
|
57
|
+
private hub;
|
|
58
|
+
private follower;
|
|
59
|
+
/** The leader is resigning because the session signed out. */
|
|
60
|
+
private signingOut;
|
|
61
|
+
/** This leader already told signed-out tabs that its session is signed in. */
|
|
62
|
+
private announced;
|
|
63
|
+
private joining;
|
|
64
|
+
constructor(scope: ApplicationTabsScope, env: ApplicationTabsEnvironment, lost: (signedOut: boolean) => void, signedInElsewhere?: () => void);
|
|
65
|
+
/** True while this tab runs the Worker for every tab. */
|
|
66
|
+
get leader(): boolean;
|
|
67
|
+
private open;
|
|
68
|
+
private post;
|
|
69
|
+
/** Hold a lock until the returned release is called. */
|
|
70
|
+
private hold;
|
|
71
|
+
/** Lead if no tab of this app leads, else join the leader. */
|
|
72
|
+
elect(signal: AbortSignal): Promise<{
|
|
73
|
+
readonly kind: "leader";
|
|
74
|
+
} | ({
|
|
75
|
+
readonly kind: "follower";
|
|
76
|
+
} & ApplicationFollowerLink)>;
|
|
77
|
+
/** Leader: forward follower tabs onto this tab's Worker. */
|
|
78
|
+
lead(worker: ApplicationLeaderWorker): void;
|
|
79
|
+
/** Leader: the shared Worker failed. Every follower's session fails with it,
|
|
80
|
+
* the same way this tab's does; it is not replaced while this tab holds it. */
|
|
81
|
+
fault(): void;
|
|
82
|
+
/** Leader: the session signed out. Followers hear it now, before this tab's
|
|
83
|
+
* Worker stops and it resigns, so when the leader goes they sign out instead
|
|
84
|
+
* of starting a new session as the next leader. */
|
|
85
|
+
signedOut(): void;
|
|
86
|
+
/** Leader: the session is signed in. Tabs left signed out (every tab signed
|
|
87
|
+
* out, then this one signed in again) join it rather than staying out. */
|
|
88
|
+
signedIn(): void;
|
|
89
|
+
/** Leader: stop leading (the Worker stopped). Followers re-elect. */
|
|
90
|
+
resign(): void;
|
|
91
|
+
private leave;
|
|
92
|
+
/** The leader went away: this tab's runtime restarts (as leader or follower). */
|
|
93
|
+
private departed;
|
|
94
|
+
/** Page leaving or entry closing: let go of everything. */
|
|
95
|
+
release(): void;
|
|
96
|
+
private received;
|
|
97
|
+
private drop;
|
|
98
|
+
}
|