@mdbase-dev/sdk 0.0.0-stage → 0.1.0-beta.149
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 +49 -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 +608 -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 +609 -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 +377 -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 +41 -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 +34826 -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 +49392 -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 +656 -0
- package/dist/client.js +1962 -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 +9 -0
- package/dist/local-build.js +33 -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 +856 -0
- package/dist/wire.js +914 -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,73 @@
|
|
|
1
|
+
/** Stateless collection setup planning over an inventory the caller read
|
|
2
|
+
* through its own client session (a Private collection over the relay). The
|
|
3
|
+
* same native engine and review digest as a hosted collection's setup; no
|
|
4
|
+
* runtime open, session, SQL or write. The planned writes are guarded, and
|
|
5
|
+
* the collection's own replica enforces them when the caller submits. */
|
|
6
|
+
import { decode, encode } from "../cbor.js";
|
|
7
|
+
import { mdbaseError } from "../errors.js";
|
|
8
|
+
import { WasmRuntime } from "../runtime/wasm.js";
|
|
9
|
+
import { resourceAssessment, resourceDecisions } from "./collection-control.js";
|
|
10
|
+
import { modelResourcePlan } from "./collection-setup-journal.js";
|
|
11
|
+
import { resourceJson } from "./wasm-runtime.js";
|
|
12
|
+
const OUTPUT_MAX = 512 * 1024, INPUT_MAX = 512 * 1024 + 8_388_608 + 16 * 4096;
|
|
13
|
+
const unsupported = () => mdbaseError("unavailable", "resource setup unsupported", "resource_setup_unsupported");
|
|
14
|
+
const unavailable = () => mdbaseError("unavailable", "resource setup unavailable", "resource_setup_unavailable");
|
|
15
|
+
export class AppSetupEngine extends WasmRuntime {
|
|
16
|
+
native;
|
|
17
|
+
constructor(native) {
|
|
18
|
+
super(native);
|
|
19
|
+
this.native = native;
|
|
20
|
+
}
|
|
21
|
+
static async create(bytes) {
|
|
22
|
+
const x = await this.load(bytes);
|
|
23
|
+
if (!(x.memory instanceof WebAssembly.Memory) || typeof x.rt_app_setup_assess !== "function")
|
|
24
|
+
throw unsupported();
|
|
25
|
+
return new AppSetupEngine(x);
|
|
26
|
+
}
|
|
27
|
+
/** Passing decisions (even `{}`) asks for the review. */
|
|
28
|
+
assess(manifest, inventory, decisions) {
|
|
29
|
+
return resourceAssessment(this.call(false, manifest, null, inventory, decisions), decisions !== undefined);
|
|
30
|
+
}
|
|
31
|
+
plan(manifest, expected, inventory, decisions) {
|
|
32
|
+
if (!/^sha256:[0-9a-f]{64}$/.test(expected))
|
|
33
|
+
throw mdbaseError("invalid_request", "invalid assessment digest");
|
|
34
|
+
return modelResourcePlan(this.call(true, manifest, expected, inventory, decisions));
|
|
35
|
+
}
|
|
36
|
+
call(apply, manifest, expected, inventory, decisions) {
|
|
37
|
+
const request = [1, apply ? 1 : 0, resourceJson(manifest, true), expected,
|
|
38
|
+
inventory.map(([path, source]) => [path, source])];
|
|
39
|
+
if (decisions !== undefined)
|
|
40
|
+
request.push(resourceJson(resourceDecisions(decisions), true));
|
|
41
|
+
const input = encode(request);
|
|
42
|
+
if (input.length > INPUT_MAX) {
|
|
43
|
+
input.fill(0);
|
|
44
|
+
throw mdbaseError("invalid_request", "resource DATA exceeds bound");
|
|
45
|
+
}
|
|
46
|
+
let output;
|
|
47
|
+
try {
|
|
48
|
+
const native = this.native.rt_app_setup_assess;
|
|
49
|
+
try {
|
|
50
|
+
const packed = BigInt.asUintN(64, native.call(this.x, ...this.put(input)));
|
|
51
|
+
const length = Number(packed & 0xffffffffn);
|
|
52
|
+
if (!length || length > OUTPUT_MAX)
|
|
53
|
+
throw unavailable();
|
|
54
|
+
output = this.takeOut(packed);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.discard();
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
const response = decode(output);
|
|
61
|
+
if (!Array.isArray(response) || response.length !== 3 || response[0] !== 1 || typeof response[1] !== "boolean")
|
|
62
|
+
throw unavailable();
|
|
63
|
+
if (response[1] === false)
|
|
64
|
+
throw unavailable();
|
|
65
|
+
return resourceJson(response[2], false);
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
input.fill(0);
|
|
69
|
+
output?.fill(0);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=setup-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-engine.js","sourceRoot":"","sources":["../../src/app-host/setup-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface AppSignOutEraseScope {
|
|
2
|
+
readonly cpOrigin: string;
|
|
3
|
+
readonly appId: string;
|
|
4
|
+
/** Local slot owner (installation-store `owner`); absent for unlabelled slots. */
|
|
5
|
+
readonly owner?: string;
|
|
6
|
+
readonly storageNamespace?: string;
|
|
7
|
+
/** Null when the ledger never reached that step (no account confirmed yet). */
|
|
8
|
+
readonly accountId: string | null;
|
|
9
|
+
readonly connectorId: string | null;
|
|
10
|
+
readonly installationId: string | null;
|
|
11
|
+
readonly deviceId: string | null;
|
|
12
|
+
/** Collections this installation knew (approved or listed). */
|
|
13
|
+
readonly collectionIds: readonly string[];
|
|
14
|
+
/** App-scoped databases its collections use (join ledger, setup journal). */
|
|
15
|
+
readonly databases: readonly string[];
|
|
16
|
+
/** Fresh single-collection recovery actors cannot erase an earlier/global
|
|
17
|
+
* slot, shared journals or other installations' token cache. */
|
|
18
|
+
readonly isolated?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface AppSignOutEraseResult {
|
|
21
|
+
/** The installation ledger is gone: a reload starts signed out. */
|
|
22
|
+
readonly ledger: boolean;
|
|
23
|
+
/** Every other store was removed too. False leaves a leftover (a store in
|
|
24
|
+
* use or a browser refusal); it is a diagnostic, never a reason to stay signed in. */
|
|
25
|
+
readonly complete: boolean;
|
|
26
|
+
}
|
|
27
|
+
/** Bound for each deletion. A blocked IndexedDB delete stays queued in the
|
|
28
|
+
* browser and completes when the last connection closes; sign-out only stops
|
|
29
|
+
* waiting for it and reports it as incomplete. */
|
|
30
|
+
export declare const SIGN_OUT_ERASE_TIMEOUT_MS = 5000;
|
|
31
|
+
/** Forget one retired hosted scope's replica keys/data and bootstrap outcomes.
|
|
32
|
+
* The original installation signing custody, other scopes, shared journals and
|
|
33
|
+
* token cache remain untouched. Call only after that scope's native/SQL stop. */
|
|
34
|
+
export declare function eraseAppCollectionAccess(scope: AppSignOutEraseScope, collectionId: string): Promise<boolean>;
|
|
35
|
+
/** Run only after every connection/handle of this installation was closed and
|
|
36
|
+
* the server sign-out was attempted. Never throws. */
|
|
37
|
+
export declare function eraseAppInstallationData(scope: AppSignOutEraseScope): Promise<AppSignOutEraseResult>;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/** UX-011 sign-out erasure: this browser's local data for ONE installation of
|
|
2
|
+
* one app. Every name is derived from the known scope (CP origin, local slot
|
|
3
|
+
* owner, appId, account, connector, device, installation, collections), the
|
|
4
|
+
* same derivations the stores use; nothing outside that scope is touched. */
|
|
5
|
+
import { LOG_TOKEN_DATABASE, eraseAppLogTokens } from "./log-token-cache.js";
|
|
6
|
+
import { uuidToBytes } from "../codec.js";
|
|
7
|
+
/** Bound for each deletion. A blocked IndexedDB delete stays queued in the
|
|
8
|
+
* browser and completes when the last connection closes; sign-out only stops
|
|
9
|
+
* waiting for it and reports it as incomplete. */
|
|
10
|
+
export const SIGN_OUT_ERASE_TIMEOUT_MS = 5_000;
|
|
11
|
+
const hex = (id) => Array.from(uuidToBytes(id), b => b.toString(16).padStart(2, "0")).join("");
|
|
12
|
+
const lower = (id) => { uuidToBytes(id); return id.toLowerCase(); };
|
|
13
|
+
function bounded(work, fallback, ms = SIGN_OUT_ERASE_TIMEOUT_MS) {
|
|
14
|
+
let timer;
|
|
15
|
+
return Promise.race([work.catch(() => fallback), new Promise(resolve => { timer = setTimeout(() => resolve(fallback), ms); })])
|
|
16
|
+
.finally(() => clearTimeout(timer));
|
|
17
|
+
}
|
|
18
|
+
/** True once deleted (or never existed). Every SDK store closes its own
|
|
19
|
+
* connection on `versionchange`, so a delete is only blocked by a connection
|
|
20
|
+
* that did not close (another tab of an older build): bounded, then false. */
|
|
21
|
+
function deleteDatabase(name) {
|
|
22
|
+
return bounded(new Promise(resolve => {
|
|
23
|
+
const request = indexedDB.deleteDatabase(name);
|
|
24
|
+
request.onsuccess = () => resolve(true);
|
|
25
|
+
request.onerror = () => resolve(false);
|
|
26
|
+
// onblocked: keep waiting (the delete stays queued) until the bound.
|
|
27
|
+
}), false);
|
|
28
|
+
}
|
|
29
|
+
/** Exact database names for this scope, plus (where `indexedDB.databases()`
|
|
30
|
+
* exists) collection-scoped stores of the same installation whose collection
|
|
31
|
+
* is no longer listed, matched by the full account/connector/device/installation prefix. */
|
|
32
|
+
/** installation-store database names: [current slot, unlabelled v1 slot]. */
|
|
33
|
+
function ledgerNames(scope) {
|
|
34
|
+
const cp = encodeURIComponent(scope.cpOrigin), unlabelled = `mdbase.app.installation.v1.${cp}.${scope.appId}`;
|
|
35
|
+
return [scope.owner === undefined ? unlabelled : `mdbase.app.installation.v2.${cp}.${encodeURIComponent(scope.owner)}.${scope.appId}`, unlabelled];
|
|
36
|
+
}
|
|
37
|
+
async function otherDatabaseNames(scope, ledger, unlabelled) {
|
|
38
|
+
const others = new Set(scope.isolated ? [] : scope.databases);
|
|
39
|
+
if (!scope.isolated && scope.storageNamespace === undefined)
|
|
40
|
+
others.add(unlabelled); // an earlier unlabelled slot of this app (removed below when it is the current one)
|
|
41
|
+
const { accountId: account, connectorId: connector, deviceId: device, installationId: installation } = scope;
|
|
42
|
+
if (account && connector && device && installation) {
|
|
43
|
+
const keyIds = [account, connector, device, installation].map(hex).join(".");
|
|
44
|
+
others.add(`mdbase.app.device-key-kek.v1.${keyIds}`);
|
|
45
|
+
others.add(`mdbase.app.device-keys.v1.${keyIds}`);
|
|
46
|
+
others.add(`mdbase.app.noise.v1.${lower(installation)}.${lower(connector)}.${lower(device)}`);
|
|
47
|
+
const prefix = [account, connector, device, installation].map(lower).join(".");
|
|
48
|
+
const scoped = [`mdbase.app.cloud-copy-outcome.v1.${prefix}.`, `mdbase.app.private-bootstrap.v1.${prefix}.`];
|
|
49
|
+
for (const collection of scope.collectionIds) {
|
|
50
|
+
const id = lower(collection);
|
|
51
|
+
for (const purpose of ["create", "join"])
|
|
52
|
+
others.add(`${scoped[0]}${id}.${purpose}`);
|
|
53
|
+
for (const purpose of ["create", "enrol"])
|
|
54
|
+
others.add(`${scoped[1]}${id}.${purpose}`);
|
|
55
|
+
}
|
|
56
|
+
const list = indexedDB.databases;
|
|
57
|
+
if (typeof list === "function") {
|
|
58
|
+
const found = await bounded(list.call(indexedDB), []);
|
|
59
|
+
for (const { name } of found)
|
|
60
|
+
if (name && scoped.some(p => name.startsWith(p)))
|
|
61
|
+
others.add(name);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
others.delete(ledger);
|
|
65
|
+
return [...others];
|
|
66
|
+
}
|
|
67
|
+
/** OPFS replica pools `.mdbase-app-<account>-<installation>-<collection>`
|
|
68
|
+
* (app-storage `appPoolNames`). Their SQLite handles close with the native host. */
|
|
69
|
+
async function removeReplicas(account, installation) {
|
|
70
|
+
const storage = globalThis.navigator?.storage;
|
|
71
|
+
if (typeof storage?.getDirectory !== "function")
|
|
72
|
+
return true; // no OPFS: nothing was stored there
|
|
73
|
+
return bounded((async () => {
|
|
74
|
+
const root = await storage.getDirectory();
|
|
75
|
+
const prefix = `.mdbase-app-${lower(account)}-${lower(installation)}-`, names = [];
|
|
76
|
+
for await (const name of root.keys())
|
|
77
|
+
if (name.startsWith(prefix))
|
|
78
|
+
names.push(name);
|
|
79
|
+
let ok = true;
|
|
80
|
+
for (const name of names) {
|
|
81
|
+
try {
|
|
82
|
+
await root.removeEntry(name, { recursive: true });
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
ok = false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return ok;
|
|
89
|
+
})(), false);
|
|
90
|
+
}
|
|
91
|
+
/** Forget one retired hosted scope's replica keys/data and bootstrap outcomes.
|
|
92
|
+
* The original installation signing custody, other scopes, shared journals and
|
|
93
|
+
* token cache remain untouched. Call only after that scope's native/SQL stop. */
|
|
94
|
+
export async function eraseAppCollectionAccess(scope, collectionId) {
|
|
95
|
+
try {
|
|
96
|
+
if (!globalThis.indexedDB || !scope.accountId || !scope.connectorId || !scope.deviceId || !scope.installationId)
|
|
97
|
+
return false;
|
|
98
|
+
const collection = lower(collectionId), prefix = [scope.accountId, scope.connectorId, scope.deviceId, scope.installationId].map(lower).join(".");
|
|
99
|
+
const names = ["create", "join"].map(purpose => `mdbase.app.cloud-copy-outcome.v1.${prefix}.${collection}.${purpose}`);
|
|
100
|
+
names.push(...["create", "enrol"].map(purpose => `mdbase.app.private-bootstrap.v1.${prefix}.${collection}.${purpose}`));
|
|
101
|
+
const results = await Promise.all(names.map(deleteDatabase));
|
|
102
|
+
const storage = globalThis.navigator?.storage;
|
|
103
|
+
if (typeof storage?.getDirectory === "function") {
|
|
104
|
+
const root = await storage.getDirectory();
|
|
105
|
+
try {
|
|
106
|
+
await root.removeEntry(`.mdbase-app-${lower(scope.accountId)}-${lower(scope.installationId)}-${collection}`, { recursive: true });
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
if (!(error instanceof DOMException && error.name === "NotFoundError"))
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return results.every(Boolean);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Run only after every connection/handle of this installation was closed and
|
|
120
|
+
* the server sign-out was attempted. Never throws. */
|
|
121
|
+
export async function eraseAppInstallationData(scope) {
|
|
122
|
+
if (!globalThis.indexedDB)
|
|
123
|
+
return Object.freeze({ ledger: false, complete: false });
|
|
124
|
+
const [current, unlabelled] = ledgerNames(scope);
|
|
125
|
+
// The ledger first: it alone decides whether a reload restores the session.
|
|
126
|
+
const ledger = await deleteDatabase(current);
|
|
127
|
+
let others = null;
|
|
128
|
+
try {
|
|
129
|
+
others = await otherDatabaseNames(scope, current, unlabelled);
|
|
130
|
+
}
|
|
131
|
+
catch { /* malformed scope: leftovers reported below */ }
|
|
132
|
+
// Preserve legacy default erasure. Namespace callers share the cache DB,
|
|
133
|
+
// so they remove only their CP/connector/device records below.
|
|
134
|
+
const results = others ? await Promise.all([...others, ...(scope.isolated || scope.storageNamespace !== undefined ? [] : [LOG_TOKEN_DATABASE])].map(deleteDatabase)) : [false];
|
|
135
|
+
const tokens = scope.storageNamespace === undefined ? true : await bounded(eraseAppLogTokens(scope), false);
|
|
136
|
+
const replicas = scope.accountId && scope.installationId ? await removeReplicas(scope.accountId, scope.installationId).catch(() => false) : true;
|
|
137
|
+
return Object.freeze({ ledger, complete: ledger && tokens && replicas && results.every(Boolean) });
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=sign-out-erase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign-out-erase.js","sourceRoot":"","sources":["../../src/app-host/sign-out-erase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/** First-party app-host status. Local persistence is not a log acknowledgement. */
|
|
2
|
+
import type { SyncStatus } from "../wire.js";
|
|
3
|
+
export interface AppStoragePolicy {
|
|
4
|
+
/** True only after navigator.storage.persisted()/persist() returned true. */
|
|
5
|
+
persistent: boolean;
|
|
6
|
+
/** PWA standalone (including iOS standalone) or an installed native app. */
|
|
7
|
+
installed: boolean;
|
|
8
|
+
}
|
|
9
|
+
export type AppSaveState = {
|
|
10
|
+
kind: "no_pending_edits";
|
|
11
|
+
unsynced: 0;
|
|
12
|
+
warning: null;
|
|
13
|
+
} | {
|
|
14
|
+
kind: "not_yet_synced";
|
|
15
|
+
unsynced: number;
|
|
16
|
+
warning: "storage_may_be_evicted" | null;
|
|
17
|
+
};
|
|
18
|
+
/** `unsynced` comes from the recovered replica's pending count, never a transport
|
|
19
|
+
* heuristic. Zero pending is NOT proof that an individual mutation was saved:
|
|
20
|
+
* rejected/unknown receipts remain separate, explicit outcomes. Normal online
|
|
21
|
+
* edits and brief connecting states get a 30-second grace period; genuinely
|
|
22
|
+
* offline pending edits warn immediately. Persistence suppresses the warning.
|
|
23
|
+
* `pendingForMs` is the continuous nonzero-pending age, reset at zero/scope change. */
|
|
24
|
+
export declare function appSaveState(unsynced: number, policy: AppStoragePolicy, context?: {
|
|
25
|
+
pendingForMs: number;
|
|
26
|
+
connection: SyncStatus["connection"];
|
|
27
|
+
}): AppSaveState;
|
|
28
|
+
/** Only a log-confirmed receipt may produce the user-facing "saved" state. */
|
|
29
|
+
export declare function appMutationSaveState(receiptState: "pending" | "confirmed" | "rejected" | "unknown"): "not_yet_synced" | "saved" | "rejected" | "outcome_unknown";
|
|
30
|
+
export declare const UNSYNCED_STORAGE_WARNING = "Some changes are only on this device. Stay online so they can sync.";
|
|
31
|
+
/** Host progress is not a new replica-client wire slot. */
|
|
32
|
+
export type AppReplicaReadiness = {
|
|
33
|
+
phase: "opening" | "waiting_for_key";
|
|
34
|
+
readable: false;
|
|
35
|
+
writable: false;
|
|
36
|
+
} | {
|
|
37
|
+
phase: "installing";
|
|
38
|
+
readable: boolean;
|
|
39
|
+
writable: false;
|
|
40
|
+
complete: false;
|
|
41
|
+
installed: number;
|
|
42
|
+
total: number | null;
|
|
43
|
+
} | {
|
|
44
|
+
phase: "ready";
|
|
45
|
+
readable: true;
|
|
46
|
+
writable: boolean;
|
|
47
|
+
complete: true;
|
|
48
|
+
stale: boolean;
|
|
49
|
+
} | {
|
|
50
|
+
phase: "blocked";
|
|
51
|
+
readable: boolean;
|
|
52
|
+
writable: false;
|
|
53
|
+
reason: "storage" | "integrity" | "upgrade_required" | "authorization";
|
|
54
|
+
};
|
|
55
|
+
/** Small injected navigator surface: no Capacitor dependency and no Worker→UI RPC. */
|
|
56
|
+
export interface PersistencePort {
|
|
57
|
+
persisted(): Promise<boolean>;
|
|
58
|
+
persist?(): Promise<boolean>;
|
|
59
|
+
}
|
|
60
|
+
/** Asking for persistence is explicit; a denied/unsupported/error result is false,
|
|
61
|
+
* never permission to reset the database. Installation status is supplied by UI. */
|
|
62
|
+
export declare function appStoragePolicy(storage: PersistencePort | undefined, installed: boolean, requestPersistence?: boolean): Promise<AppStoragePolicy>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** `unsynced` comes from the recovered replica's pending count, never a transport
|
|
2
|
+
* heuristic. Zero pending is NOT proof that an individual mutation was saved:
|
|
3
|
+
* rejected/unknown receipts remain separate, explicit outcomes. Normal online
|
|
4
|
+
* edits and brief connecting states get a 30-second grace period; genuinely
|
|
5
|
+
* offline pending edits warn immediately. Persistence suppresses the warning.
|
|
6
|
+
* `pendingForMs` is the continuous nonzero-pending age, reset at zero/scope change. */
|
|
7
|
+
export function appSaveState(unsynced, policy, context = { pendingForMs: 0, connection: "online" }) {
|
|
8
|
+
if (!Number.isSafeInteger(unsynced) || unsynced < 0)
|
|
9
|
+
throw new RangeError("invalid unsynced count");
|
|
10
|
+
if (unsynced === 0)
|
|
11
|
+
return { kind: "no_pending_edits", unsynced: 0, warning: null };
|
|
12
|
+
return {
|
|
13
|
+
kind: "not_yet_synced",
|
|
14
|
+
unsynced,
|
|
15
|
+
warning: !policy.persistent && (context.pendingForMs >= 30_000 || context.connection === "offline") ? "storage_may_be_evicted" : null,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/** Only a log-confirmed receipt may produce the user-facing "saved" state. */
|
|
19
|
+
export function appMutationSaveState(receiptState) {
|
|
20
|
+
switch (receiptState) {
|
|
21
|
+
case "pending": return "not_yet_synced";
|
|
22
|
+
case "confirmed": return "saved";
|
|
23
|
+
case "rejected": return "rejected";
|
|
24
|
+
case "unknown": return "outcome_unknown";
|
|
25
|
+
default: throw new RangeError("invalid receipt state");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export const UNSYNCED_STORAGE_WARNING = "Some changes are only on this device. Stay online so they can sync.";
|
|
29
|
+
/** Asking for persistence is explicit; a denied/unsupported/error result is false,
|
|
30
|
+
* never permission to reset the database. Installation status is supplied by UI. */
|
|
31
|
+
export async function appStoragePolicy(storage, installed, requestPersistence = false) {
|
|
32
|
+
let persistent = false;
|
|
33
|
+
try {
|
|
34
|
+
persistent = (await storage?.persisted()) === true;
|
|
35
|
+
if (!persistent && requestPersistence)
|
|
36
|
+
persistent = (await storage?.persist?.()) === true;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Preserve a verified positive result; otherwise report the conservative state.
|
|
40
|
+
}
|
|
41
|
+
return { persistent, installed };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/app-host/status.ts"],"names":[],"mappings":"AAaA;;;;;uFAKuF;AACvF,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,MAAwB,EACxB,UAA0E,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;IAEnH,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,wBAAwB,CAAC,CAAC;IACpG,IAAI,QAAQ,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpF,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,QAAQ;QACR,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,MAAM,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI;KACtI,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAClC,YAA8D;IAE9D,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS,CAAC,CAAC,OAAO,gBAAgB,CAAC;QACxC,KAAK,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC;QACjC,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,SAAS,CAAC,CAAC,OAAO,iBAAiB,CAAC;QACzC,OAAO,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,uBAAuB,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GACnC,qEAAqE,CAAC;AAexE;oFACoF;AACpF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAoC,EACpC,SAAkB,EAClB,kBAAkB,GAAG,KAAK;IAE1B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,CAAC,MAAM,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;QACnD,IAAI,CAAC,UAAU,IAAI,kBAAkB;YAAE,UAAU,GAAG,CAAC,MAAM,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,gFAAgF;IAClF,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** OPFS capability probe, NOT SQLite/physical-durability qualification.
|
|
2
|
+
* Run in the dedicated Worker which will also own runtime.wasm and sqlite-wasm.
|
|
3
|
+
* It touches only a random scratch file under the reserved probe directory. */
|
|
4
|
+
export interface ProbeSyncHandle {
|
|
5
|
+
write(bytes: Uint8Array, options: {
|
|
6
|
+
at: number;
|
|
7
|
+
}): number;
|
|
8
|
+
read(bytes: Uint8Array, options: {
|
|
9
|
+
at: number;
|
|
10
|
+
}): number;
|
|
11
|
+
flush(): void;
|
|
12
|
+
close(): void;
|
|
13
|
+
}
|
|
14
|
+
export interface ProbeDirectory {
|
|
15
|
+
getDirectoryHandle(name: string, options: {
|
|
16
|
+
create: true;
|
|
17
|
+
}): Promise<ProbeDirectory>;
|
|
18
|
+
getFileHandle(name: string, options: {
|
|
19
|
+
create: true;
|
|
20
|
+
}): Promise<{
|
|
21
|
+
createSyncAccessHandle?(): Promise<ProbeSyncHandle>;
|
|
22
|
+
}>;
|
|
23
|
+
removeEntry(name: string): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
export interface AppStorageProbeEnvironment {
|
|
26
|
+
/** Must be established by the trusted host, not an application grant. */
|
|
27
|
+
worker: boolean;
|
|
28
|
+
storage?: {
|
|
29
|
+
getDirectory?(): Promise<ProbeDirectory>;
|
|
30
|
+
};
|
|
31
|
+
/** CSPRNG-generated UUID supplied by the host (crypto.randomUUID). */
|
|
32
|
+
randomUUID(): string;
|
|
33
|
+
}
|
|
34
|
+
export type AppStorageProbe = {
|
|
35
|
+
supported: true;
|
|
36
|
+
backend: "opfs_sahpool_candidate";
|
|
37
|
+
crashDurability: "unqualified";
|
|
38
|
+
eviction: "possible";
|
|
39
|
+
} | {
|
|
40
|
+
supported: false;
|
|
41
|
+
reason: "worker_required" | "opfs_unavailable" | "sync_handle_unavailable" | "probe_failed" | "cleanup_failed";
|
|
42
|
+
};
|
|
43
|
+
/** Success proves only that synchronous access/flush/readback are available now.
|
|
44
|
+
* It does not open an app store, return IndexDurability::Durable or certify saved
|
|
45
|
+
* edits. Errors deliberately omit browser exception messages/storage paths. */
|
|
46
|
+
export declare function probeAppStorage(env: AppStorageProbeEnvironment): Promise<AppStorageProbe>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** Success proves only that synchronous access/flush/readback are available now.
|
|
2
|
+
* It does not open an app store, return IndexDurability::Durable or certify saved
|
|
3
|
+
* edits. Errors deliberately omit browser exception messages/storage paths. */
|
|
4
|
+
export async function probeAppStorage(env) {
|
|
5
|
+
if (!env.worker)
|
|
6
|
+
return { supported: false, reason: "worker_required" };
|
|
7
|
+
if (!env.storage?.getDirectory)
|
|
8
|
+
return { supported: false, reason: "opfs_unavailable" };
|
|
9
|
+
let directory;
|
|
10
|
+
let file;
|
|
11
|
+
let created = false;
|
|
12
|
+
let handle;
|
|
13
|
+
let result = { supported: false, reason: "probe_failed" };
|
|
14
|
+
try {
|
|
15
|
+
const id = env.randomUUID();
|
|
16
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(id)) {
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
file = id.toLowerCase();
|
|
20
|
+
directory = await (await env.storage.getDirectory()).getDirectoryHandle(".mdbase-app-probes", { create: true });
|
|
21
|
+
const entry = await directory.getFileHandle(file, { create: true });
|
|
22
|
+
created = true;
|
|
23
|
+
if (!entry.createSyncAccessHandle) {
|
|
24
|
+
result = { supported: false, reason: "sync_handle_unavailable" };
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
handle = await entry.createSyncAccessHandle();
|
|
28
|
+
const bytes = new Uint8Array([0x6d, 0x64, 0x62, 0x6e]);
|
|
29
|
+
const read = new Uint8Array(bytes.length);
|
|
30
|
+
if (handle.write(bytes, { at: 0 }) !== bytes.length)
|
|
31
|
+
throw new Error("short probe write");
|
|
32
|
+
handle.flush();
|
|
33
|
+
if (handle.read(read, { at: 0 }) !== bytes.length || read.some((b, i) => b !== bytes[i])) {
|
|
34
|
+
throw new Error("probe readback failed");
|
|
35
|
+
}
|
|
36
|
+
result = { supported: true, backend: "opfs_sahpool_candidate", crashDurability: "unqualified", eviction: "possible" };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
result = { supported: false, reason: "probe_failed" };
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
let closed = true;
|
|
44
|
+
try {
|
|
45
|
+
handle?.close();
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
closed = false;
|
|
49
|
+
result = { supported: false, reason: "cleanup_failed" };
|
|
50
|
+
}
|
|
51
|
+
// Do not remove an entry while its close outcome is uncertain.
|
|
52
|
+
if (created && closed && directory && file) {
|
|
53
|
+
try {
|
|
54
|
+
await directory.removeEntry(file);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
result = { supported: false, reason: "cleanup_failed" };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=storage-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-probe.js","sourceRoot":"","sources":["../../src/app-host/storage-probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AppTimersPort } from "../timers.js";
|
|
2
|
+
import type { AppReplicaScope } from "./owner.js";
|
|
3
|
+
import type { AppInstallationTimerChannel } from "./installation-sign-in.js";
|
|
4
|
+
/** Internal trusted-host composition. The host selects the ORIGINAL receipt;
|
|
5
|
+
* public grant IDs supplied by a caller never select this receiver's authority. */
|
|
6
|
+
export declare function attachAppTimerReceiver(port: MessagePort, options: {
|
|
7
|
+
scope: Readonly<AppReplicaScope>;
|
|
8
|
+
generation: string;
|
|
9
|
+
grantId: string;
|
|
10
|
+
cpOrigin: string;
|
|
11
|
+
signal: AbortSignal;
|
|
12
|
+
isCurrent(): boolean;
|
|
13
|
+
bearer(): Promise<string>;
|
|
14
|
+
fetch: typeof fetch;
|
|
15
|
+
journal?: {
|
|
16
|
+
read(): AppInstallationTimerChannel | null;
|
|
17
|
+
write(value: AppInstallationTimerChannel | null): Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
}): {
|
|
20
|
+
close(): Promise<void>;
|
|
21
|
+
};
|
|
22
|
+
/** UI fixed timer proxy, not another MdbaseClient or replica facade. */
|
|
23
|
+
export declare function appTimerPortClient(port: MessagePort, binding: {
|
|
24
|
+
scope: Readonly<AppReplicaScope>;
|
|
25
|
+
generation: string;
|
|
26
|
+
}, options: {
|
|
27
|
+
signal: AbortSignal;
|
|
28
|
+
onClose(): void;
|
|
29
|
+
}): AppTimersPort;
|