@superbee/core 0.2.0-pre.4 → 0.2.0-pre.41
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/README.md +1255 -0
- package/dist/artifact-contract.d.ts +90 -0
- package/dist/artifact-contract.d.ts.map +1 -0
- package/dist/artifact-contract.js +205 -0
- package/dist/artifact-contract.js.map +1 -0
- package/dist/backend.d.ts +22 -2
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +153 -38
- package/dist/backend.js.map +1 -1
- package/dist/blob-contract.d.ts +82 -0
- package/dist/blob-contract.d.ts.map +1 -0
- package/dist/blob-contract.js +134 -0
- package/dist/blob-contract.js.map +1 -0
- package/dist/blob-journal.d.ts +303 -0
- package/dist/blob-journal.d.ts.map +1 -0
- package/dist/blob-journal.js +541 -0
- package/dist/blob-journal.js.map +1 -0
- package/dist/body-replace-guards.d.ts +52 -0
- package/dist/body-replace-guards.d.ts.map +1 -0
- package/dist/body-replace-guards.js +176 -0
- package/dist/body-replace-guards.js.map +1 -0
- package/dist/builtin-recipes/content.d.ts +93 -0
- package/dist/builtin-recipes/content.d.ts.map +1 -0
- package/dist/builtin-recipes/content.js +288 -0
- package/dist/builtin-recipes/content.js.map +1 -0
- package/dist/builtin-recipes.d.ts +10 -0
- package/dist/builtin-recipes.d.ts.map +1 -0
- package/dist/builtin-recipes.js +97 -0
- package/dist/builtin-recipes.js.map +1 -0
- package/dist/bundle-health/index.d.ts +14 -0
- package/dist/bundle-health/index.d.ts.map +1 -0
- package/dist/bundle-health/index.js +12 -0
- package/dist/bundle-health/index.js.map +1 -0
- package/dist/bundle-health/kind-findings.d.ts +44 -0
- package/dist/bundle-health/kind-findings.d.ts.map +1 -0
- package/dist/bundle-health/kind-findings.js +68 -0
- package/dist/bundle-health/kind-findings.js.map +1 -0
- package/dist/bundle-health/legacy-page.d.ts +39 -0
- package/dist/bundle-health/legacy-page.d.ts.map +1 -0
- package/dist/bundle-health/legacy-page.js +50 -0
- package/dist/bundle-health/legacy-page.js.map +1 -0
- package/dist/bundle-health/report.d.ts +207 -0
- package/dist/bundle-health/report.d.ts.map +1 -0
- package/dist/bundle-health/report.js +454 -0
- package/dist/bundle-health/report.js.map +1 -0
- package/dist/bundle-ops.d.ts +3 -2
- package/dist/bundle-ops.d.ts.map +1 -1
- package/dist/bundle-ops.js +4 -4
- package/dist/bundle-ops.js.map +1 -1
- package/dist/bundle.d.ts +3 -4
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +5 -14
- package/dist/bundle.js.map +1 -1
- package/dist/code-point-order.d.ts +8 -0
- package/dist/code-point-order.d.ts.map +1 -0
- package/dist/code-point-order.js +20 -0
- package/dist/code-point-order.js.map +1 -0
- package/dist/code-unit-order.d.ts +15 -0
- package/dist/code-unit-order.d.ts.map +1 -0
- package/dist/code-unit-order.js +17 -0
- package/dist/code-unit-order.js.map +1 -0
- package/dist/connector-request.d.ts +112 -0
- package/dist/connector-request.d.ts.map +1 -0
- package/dist/connector-request.js +495 -0
- package/dist/connector-request.js.map +1 -0
- package/dist/connectors.d.ts +297 -0
- package/dist/connectors.d.ts.map +1 -0
- package/dist/connectors.js +1233 -0
- package/dist/connectors.js.map +1 -0
- package/dist/cross-bundle.d.ts +135 -0
- package/dist/cross-bundle.d.ts.map +1 -0
- package/dist/cross-bundle.js +191 -0
- package/dist/cross-bundle.js.map +1 -0
- package/dist/dependencies.d.ts +94 -0
- package/dist/dependencies.d.ts.map +1 -0
- package/dist/dependencies.js +180 -0
- package/dist/dependencies.js.map +1 -0
- package/dist/document-codec.d.ts +7 -2
- package/dist/document-codec.d.ts.map +1 -1
- package/dist/document-codec.js +8 -5
- package/dist/document-codec.js.map +1 -1
- package/dist/document-field-actions.d.ts +31 -1
- package/dist/document-field-actions.d.ts.map +1 -1
- package/dist/document-field-actions.js +137 -34
- package/dist/document-field-actions.js.map +1 -1
- package/dist/document-mutation.d.ts +37 -13
- package/dist/document-mutation.d.ts.map +1 -1
- package/dist/document-mutation.js +129 -60
- package/dist/document-mutation.js.map +1 -1
- package/dist/document-transfer.d.ts +208 -0
- package/dist/document-transfer.d.ts.map +1 -0
- package/dist/document-transfer.js +928 -0
- package/dist/document-transfer.js.map +1 -0
- package/dist/document-write-policy.d.ts.map +1 -1
- package/dist/document-write-policy.js +4 -2
- package/dist/document-write-policy.js.map +1 -1
- package/dist/domain-model.d.ts +73 -0
- package/dist/domain-model.d.ts.map +1 -0
- package/dist/domain-model.js +169 -0
- package/dist/domain-model.js.map +1 -0
- package/dist/engine.d.ts +21 -9
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +72 -14
- package/dist/engine.js.map +1 -1
- package/dist/file-journaled-backend-internal.d.ts +21 -0
- package/dist/file-journaled-backend-internal.d.ts.map +1 -0
- package/dist/file-journaled-backend-internal.js +12 -0
- package/dist/file-journaled-backend-internal.js.map +1 -0
- package/dist/file-journaled-backend.d.ts +160 -0
- package/dist/file-journaled-backend.d.ts.map +1 -0
- package/dist/file-journaled-backend.js +1345 -0
- package/dist/file-journaled-backend.js.map +1 -0
- package/dist/filesystem-host.d.ts +15 -0
- package/dist/filesystem-host.d.ts.map +1 -0
- package/dist/filesystem-host.js +20 -0
- package/dist/filesystem-host.js.map +1 -0
- package/dist/filesystem-identity.d.ts +97 -21
- package/dist/filesystem-identity.d.ts.map +1 -1
- package/dist/filesystem-identity.js +398 -119
- package/dist/filesystem-identity.js.map +1 -1
- package/dist/filesystem-lock.d.ts +16 -3
- package/dist/filesystem-lock.d.ts.map +1 -1
- package/dist/filesystem-lock.js +323 -77
- package/dist/filesystem-lock.js.map +1 -1
- package/dist/filesystem-push-role.d.ts +77 -0
- package/dist/filesystem-push-role.d.ts.map +1 -0
- package/dist/filesystem-push-role.js +165 -0
- package/dist/filesystem-push-role.js.map +1 -0
- package/dist/filesystem.d.ts +17 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +18 -0
- package/dist/filesystem.js.map +1 -0
- package/dist/frontmatter.d.ts +8 -6
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +5 -4
- package/dist/frontmatter.js.map +1 -1
- package/dist/governed-body-write.d.ts +8 -1
- package/dist/governed-body-write.d.ts.map +1 -1
- package/dist/governed-body-write.js +9 -2
- package/dist/governed-body-write.js.map +1 -1
- package/dist/heads-digest.d.ts.map +1 -1
- package/dist/heads-digest.js +2 -1
- package/dist/heads-digest.js.map +1 -1
- package/dist/host-policy-snapshot.d.ts +9 -0
- package/dist/host-policy-snapshot.d.ts.map +1 -0
- package/dist/host-policy-snapshot.js +33 -0
- package/dist/host-policy-snapshot.js.map +1 -0
- package/dist/host-text.d.ts +31 -0
- package/dist/host-text.d.ts.map +1 -0
- package/dist/host-text.js +77 -0
- package/dist/host-text.js.map +1 -0
- package/dist/hosted-client/binding.d.ts +7 -0
- package/dist/hosted-client/binding.d.ts.map +1 -0
- package/dist/hosted-client/binding.js +10 -0
- package/dist/hosted-client/binding.js.map +1 -0
- package/dist/hosted-client/blob-delivery.d.ts +68 -0
- package/dist/hosted-client/blob-delivery.d.ts.map +1 -0
- package/dist/hosted-client/blob-delivery.js +170 -0
- package/dist/hosted-client/blob-delivery.js.map +1 -0
- package/dist/hosted-client/blob-write.d.ts +387 -0
- package/dist/hosted-client/blob-write.d.ts.map +1 -0
- package/dist/hosted-client/blob-write.js +770 -0
- package/dist/hosted-client/blob-write.js.map +1 -0
- package/dist/hosted-client/bundle-listing.d.ts +46 -0
- package/dist/hosted-client/bundle-listing.d.ts.map +1 -0
- package/dist/hosted-client/bundle-listing.js +36 -0
- package/dist/hosted-client/bundle-listing.js.map +1 -0
- package/dist/hosted-client/client.d.ts +219 -0
- package/dist/hosted-client/client.d.ts.map +1 -0
- package/dist/hosted-client/client.js +309 -0
- package/dist/hosted-client/client.js.map +1 -0
- package/dist/hosted-client/directory.d.ts +46 -0
- package/dist/hosted-client/directory.d.ts.map +1 -0
- package/dist/hosted-client/directory.js +74 -0
- package/dist/hosted-client/directory.js.map +1 -0
- package/dist/hosted-client/errors.d.ts +26 -0
- package/dist/hosted-client/errors.d.ts.map +1 -0
- package/dist/hosted-client/errors.js +35 -0
- package/dist/hosted-client/errors.js.map +1 -0
- package/dist/hosted-client/inbox.d.ts +320 -0
- package/dist/hosted-client/inbox.d.ts.map +1 -0
- package/dist/hosted-client/inbox.js +379 -0
- package/dist/hosted-client/inbox.js.map +1 -0
- package/dist/hosted-client/index.d.ts +30 -0
- package/dist/hosted-client/index.d.ts.map +1 -0
- package/dist/hosted-client/index.js +32 -0
- package/dist/hosted-client/index.js.map +1 -0
- package/dist/hosted-client/journal.d.ts +103 -0
- package/dist/hosted-client/journal.d.ts.map +1 -0
- package/dist/hosted-client/journal.js +464 -0
- package/dist/hosted-client/journal.js.map +1 -0
- package/dist/hosted-client/node.d.ts +74 -0
- package/dist/hosted-client/node.d.ts.map +1 -0
- package/dist/hosted-client/node.js +219 -0
- package/dist/hosted-client/node.js.map +1 -0
- package/dist/hosted-client/reference.d.ts +12 -0
- package/dist/hosted-client/reference.d.ts.map +1 -0
- package/dist/hosted-client/reference.js +29 -0
- package/dist/hosted-client/reference.js.map +1 -0
- package/dist/hosted-client/write.d.ts +217 -0
- package/dist/hosted-client/write.d.ts.map +1 -0
- package/dist/hosted-client/write.js +418 -0
- package/dist/hosted-client/write.js.map +1 -0
- package/dist/hosted-transport/answer-rows.d.ts +243 -0
- package/dist/hosted-transport/answer-rows.d.ts.map +1 -0
- package/dist/hosted-transport/answer-rows.js +457 -0
- package/dist/hosted-transport/answer-rows.js.map +1 -0
- package/dist/hosted-transport/blob-reads.d.ts +35 -0
- package/dist/hosted-transport/blob-reads.d.ts.map +1 -0
- package/dist/hosted-transport/blob-reads.js +179 -0
- package/dist/hosted-transport/blob-reads.js.map +1 -0
- package/dist/hosted-transport/blob-write.d.ts +34 -0
- package/dist/hosted-transport/blob-write.d.ts.map +1 -0
- package/dist/hosted-transport/blob-write.js +115 -0
- package/dist/hosted-transport/blob-write.js.map +1 -0
- package/dist/hosted-transport/carrier.d.ts +151 -0
- package/dist/hosted-transport/carrier.d.ts.map +1 -0
- package/dist/hosted-transport/carrier.js +260 -0
- package/dist/hosted-transport/carrier.js.map +1 -0
- package/dist/hosted-transport/document-backend.d.ts +74 -0
- package/dist/hosted-transport/document-backend.d.ts.map +1 -0
- package/dist/hosted-transport/document-backend.js +160 -0
- package/dist/hosted-transport/document-backend.js.map +1 -0
- package/dist/hosted-transport/history-pages.d.ts +55 -0
- package/dist/hosted-transport/history-pages.d.ts.map +1 -0
- package/dist/hosted-transport/history-pages.js +69 -0
- package/dist/hosted-transport/history-pages.js.map +1 -0
- package/dist/hosted-transport/index.d.ts +19 -0
- package/dist/hosted-transport/index.d.ts.map +1 -0
- package/dist/hosted-transport/index.js +19 -0
- package/dist/hosted-transport/index.js.map +1 -0
- package/dist/hosted-transport/operations.d.ts +85 -0
- package/dist/hosted-transport/operations.d.ts.map +1 -0
- package/dist/hosted-transport/operations.js +128 -0
- package/dist/hosted-transport/operations.js.map +1 -0
- package/dist/hosted-transport/paged-reads.d.ts +87 -0
- package/dist/hosted-transport/paged-reads.d.ts.map +1 -0
- package/dist/hosted-transport/paged-reads.js +238 -0
- package/dist/hosted-transport/paged-reads.js.map +1 -0
- package/dist/hosted-transport/read-adapter.d.ts +256 -0
- package/dist/hosted-transport/read-adapter.d.ts.map +1 -0
- package/dist/hosted-transport/read-adapter.js +568 -0
- package/dist/hosted-transport/read-adapter.js.map +1 -0
- package/dist/hosted-transport/root-write.d.ts +114 -0
- package/dist/hosted-transport/root-write.d.ts.map +1 -0
- package/dist/hosted-transport/root-write.js +171 -0
- package/dist/hosted-transport/root-write.js.map +1 -0
- package/dist/hosted-transport/whole-document-transport.d.ts +204 -0
- package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -0
- package/dist/hosted-transport/whole-document-transport.js +447 -0
- package/dist/hosted-transport/whole-document-transport.js.map +1 -0
- package/dist/identity-fold.d.ts +18 -0
- package/dist/identity-fold.d.ts.map +1 -0
- package/dist/identity-fold.js +22 -0
- package/dist/identity-fold.js.map +1 -0
- package/dist/index.d.ts +41 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -9
- package/dist/index.js.map +1 -1
- package/dist/indexeddb-backend.d.ts +25 -33
- package/dist/indexeddb-backend.d.ts.map +1 -1
- package/dist/indexeddb-backend.js +264 -8
- package/dist/indexeddb-backend.js.map +1 -1
- package/dist/inventory-guard.d.ts +58 -0
- package/dist/inventory-guard.d.ts.map +1 -0
- package/dist/inventory-guard.js +169 -0
- package/dist/inventory-guard.js.map +1 -0
- package/dist/journaled-backend.d.ts +149 -9
- package/dist/journaled-backend.d.ts.map +1 -1
- package/dist/journaled-backend.js +64 -58
- package/dist/journaled-backend.js.map +1 -1
- package/dist/kind-authoring.d.ts +170 -0
- package/dist/kind-authoring.d.ts.map +1 -0
- package/dist/kind-authoring.js +452 -0
- package/dist/kind-authoring.js.map +1 -0
- package/dist/kind-changes.d.ts +45 -0
- package/dist/kind-changes.d.ts.map +1 -0
- package/dist/kind-changes.js +96 -0
- package/dist/kind-changes.js.map +1 -0
- package/dist/kind-conformance-error.d.ts +15 -0
- package/dist/kind-conformance-error.d.ts.map +1 -0
- package/dist/kind-conformance-error.js +20 -0
- package/dist/kind-conformance-error.js.map +1 -0
- package/dist/kind-coverage.d.ts +99 -0
- package/dist/kind-coverage.d.ts.map +1 -0
- package/dist/kind-coverage.js +186 -0
- package/dist/kind-coverage.js.map +1 -0
- package/dist/kind-deprecation.d.ts +32 -0
- package/dist/kind-deprecation.d.ts.map +1 -0
- package/dist/kind-deprecation.js +141 -0
- package/dist/kind-deprecation.js.map +1 -0
- package/dist/kind-field-mutation.d.ts +4 -0
- package/dist/kind-field-mutation.d.ts.map +1 -1
- package/dist/kind-field-mutation.js +28 -3
- package/dist/kind-field-mutation.js.map +1 -1
- package/dist/kinds-load.js +4 -4
- package/dist/kinds-load.js.map +1 -1
- package/dist/kinds.d.ts +111 -2
- package/dist/kinds.d.ts.map +1 -1
- package/dist/kinds.js +386 -20
- package/dist/kinds.js.map +1 -1
- package/dist/link-emit.d.ts +29 -0
- package/dist/link-emit.d.ts.map +1 -0
- package/dist/link-emit.js +39 -0
- package/dist/link-emit.js.map +1 -0
- package/dist/link-types.d.ts +27 -0
- package/dist/link-types.d.ts.map +1 -0
- package/dist/link-types.js +60 -0
- package/dist/link-types.js.map +1 -0
- package/dist/links.d.ts +52 -3
- package/dist/links.d.ts.map +1 -1
- package/dist/links.js +259 -18
- package/dist/links.js.map +1 -1
- package/dist/managed-document-metadata.d.ts +2 -0
- package/dist/managed-document-metadata.d.ts.map +1 -0
- package/dist/managed-document-metadata.js +9 -0
- package/dist/managed-document-metadata.js.map +1 -0
- package/dist/memory-backend.d.ts +3 -0
- package/dist/memory-backend.d.ts.map +1 -1
- package/dist/memory-backend.js +44 -2
- package/dist/memory-backend.js.map +1 -1
- package/dist/okf-actor.d.ts +1 -0
- package/dist/okf-actor.d.ts.map +1 -1
- package/dist/okf-actor.js +1 -0
- package/dist/okf-actor.js.map +1 -1
- package/dist/okf-authoring.d.ts +4 -0
- package/dist/okf-authoring.d.ts.map +1 -0
- package/dist/okf-authoring.js +12 -0
- package/dist/okf-authoring.js.map +1 -0
- package/dist/okf-standard-fields.d.ts +3 -0
- package/dist/okf-standard-fields.d.ts.map +1 -1
- package/dist/okf-standard-fields.js +3 -0
- package/dist/okf-standard-fields.js.map +1 -1
- package/dist/path-fold.d.ts +39 -0
- package/dist/path-fold.d.ts.map +1 -0
- package/dist/path-fold.js +41 -0
- package/dist/path-fold.js.map +1 -0
- package/dist/paths.d.ts +18 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +32 -0
- package/dist/paths.js.map +1 -1
- package/dist/platform.d.ts +13 -2
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +16 -0
- package/dist/platform.js.map +1 -1
- package/dist/portable-export.d.ts +119 -0
- package/dist/portable-export.d.ts.map +1 -0
- package/dist/portable-export.js +501 -0
- package/dist/portable-export.js.map +1 -0
- package/dist/publication-filesystem.d.ts +1 -1
- package/dist/publication-filesystem.d.ts.map +1 -1
- package/dist/publication-filesystem.js +1 -1
- package/dist/publication-filesystem.js.map +1 -1
- package/dist/qualified-links.d.ts +67 -0
- package/dist/qualified-links.d.ts.map +1 -0
- package/dist/qualified-links.js +117 -0
- package/dist/qualified-links.js.map +1 -0
- package/dist/query-filter.d.ts +16 -2
- package/dist/query-filter.d.ts.map +1 -1
- package/dist/query-filter.js +40 -1
- package/dist/query-filter.js.map +1 -1
- package/dist/query-order.d.ts +22 -0
- package/dist/query-order.d.ts.map +1 -0
- package/dist/query-order.js +43 -0
- package/dist/query-order.js.map +1 -0
- package/dist/recipe-lifecycle/errors.d.ts +96 -0
- package/dist/recipe-lifecycle/errors.d.ts.map +1 -0
- package/dist/recipe-lifecycle/errors.js +122 -0
- package/dist/recipe-lifecycle/errors.js.map +1 -0
- package/dist/recipe-lifecycle/evolution.d.ts +124 -0
- package/dist/recipe-lifecycle/evolution.d.ts.map +1 -0
- package/dist/recipe-lifecycle/evolution.js +993 -0
- package/dist/recipe-lifecycle/evolution.js.map +1 -0
- package/dist/recipe-lifecycle/index.d.ts +34 -0
- package/dist/recipe-lifecycle/index.d.ts.map +1 -0
- package/dist/recipe-lifecycle/index.js +28 -0
- package/dist/recipe-lifecycle/index.js.map +1 -0
- package/dist/recipe-lifecycle/install.d.ts +155 -0
- package/dist/recipe-lifecycle/install.d.ts.map +1 -0
- package/dist/recipe-lifecycle/install.js +604 -0
- package/dist/recipe-lifecycle/install.js.map +1 -0
- package/dist/recipe-lifecycle/legacy-aliases.d.ts +16 -0
- package/dist/recipe-lifecycle/legacy-aliases.d.ts.map +1 -0
- package/dist/recipe-lifecycle/legacy-aliases.js +51 -0
- package/dist/recipe-lifecycle/legacy-aliases.js.map +1 -0
- package/dist/recipe-lifecycle/retirement-apply.d.ts +59 -0
- package/dist/recipe-lifecycle/retirement-apply.d.ts.map +1 -0
- package/dist/recipe-lifecycle/retirement-apply.js +165 -0
- package/dist/recipe-lifecycle/retirement-apply.js.map +1 -0
- package/dist/recipe-lifecycle/retirement.d.ts +89 -0
- package/dist/recipe-lifecycle/retirement.d.ts.map +1 -0
- package/dist/recipe-lifecycle/retirement.js +347 -0
- package/dist/recipe-lifecycle/retirement.js.map +1 -0
- package/dist/recipe-lifecycle/stamp.d.ts +151 -0
- package/dist/recipe-lifecycle/stamp.d.ts.map +1 -0
- package/dist/recipe-lifecycle/stamp.js +364 -0
- package/dist/recipe-lifecycle/stamp.js.map +1 -0
- package/dist/recipe-set-preflight.d.ts +139 -0
- package/dist/recipe-set-preflight.d.ts.map +1 -0
- package/dist/recipe-set-preflight.js +536 -0
- package/dist/recipe-set-preflight.js.map +1 -0
- package/dist/recipes.d.ts +29 -1
- package/dist/recipes.d.ts.map +1 -1
- package/dist/recipes.js +137 -1
- package/dist/recipes.js.map +1 -1
- package/dist/record-overlay/apply.d.ts +43 -0
- package/dist/record-overlay/apply.d.ts.map +1 -0
- package/dist/record-overlay/apply.js +527 -0
- package/dist/record-overlay/apply.js.map +1 -0
- package/dist/record-overlay/canonical.d.ts +22 -0
- package/dist/record-overlay/canonical.d.ts.map +1 -0
- package/dist/record-overlay/canonical.js +47 -0
- package/dist/record-overlay/canonical.js.map +1 -0
- package/dist/record-overlay/digest.d.ts +4 -0
- package/dist/record-overlay/digest.d.ts.map +1 -0
- package/dist/record-overlay/digest.js +11 -0
- package/dist/record-overlay/digest.js.map +1 -0
- package/dist/record-overlay/errors.d.ts +44 -0
- package/dist/record-overlay/errors.d.ts.map +1 -0
- package/dist/record-overlay/errors.js +55 -0
- package/dist/record-overlay/errors.js.map +1 -0
- package/dist/record-overlay/findings.d.ts +5 -0
- package/dist/record-overlay/findings.d.ts.map +1 -0
- package/dist/record-overlay/findings.js +83 -0
- package/dist/record-overlay/findings.js.map +1 -0
- package/dist/record-overlay/index.d.ts +23 -0
- package/dist/record-overlay/index.d.ts.map +1 -0
- package/dist/record-overlay/index.js +21 -0
- package/dist/record-overlay/index.js.map +1 -0
- package/dist/record-overlay/plan.d.ts +12 -0
- package/dist/record-overlay/plan.d.ts.map +1 -0
- package/dist/record-overlay/plan.js +285 -0
- package/dist/record-overlay/plan.js.map +1 -0
- package/dist/record-overlay/policy.d.ts +74 -0
- package/dist/record-overlay/policy.d.ts.map +1 -0
- package/dist/record-overlay/policy.js +235 -0
- package/dist/record-overlay/policy.js.map +1 -0
- package/dist/record-overlay/redact.d.ts +3 -0
- package/dist/record-overlay/redact.d.ts.map +1 -0
- package/dist/record-overlay/redact.js +27 -0
- package/dist/record-overlay/redact.js.map +1 -0
- package/dist/record-overlay/signal-kind.d.ts +30 -0
- package/dist/record-overlay/signal-kind.d.ts.map +1 -0
- package/dist/record-overlay/signal-kind.js +38 -0
- package/dist/record-overlay/signal-kind.js.map +1 -0
- package/dist/record-overlay/signal-text.d.ts +45 -0
- package/dist/record-overlay/signal-text.d.ts.map +1 -0
- package/dist/record-overlay/signal-text.js +116 -0
- package/dist/record-overlay/signal-text.js.map +1 -0
- package/dist/record-overlay/source-index.d.ts +19 -0
- package/dist/record-overlay/source-index.d.ts.map +1 -0
- package/dist/record-overlay/source-index.js +102 -0
- package/dist/record-overlay/source-index.js.map +1 -0
- package/dist/record-overlay/types.d.ts +291 -0
- package/dist/record-overlay/types.d.ts.map +1 -0
- package/dist/record-overlay/types.js +2 -0
- package/dist/record-overlay/types.js.map +1 -0
- package/dist/remote-backend.d.ts +58 -13
- package/dist/remote-backend.d.ts.map +1 -1
- package/dist/remote-backend.js +156 -36
- package/dist/remote-backend.js.map +1 -1
- package/dist/remote-document-codec.d.ts +2 -1
- package/dist/remote-document-codec.d.ts.map +1 -1
- package/dist/remote-document-codec.js +3 -2
- package/dist/remote-document-codec.js.map +1 -1
- package/dist/remote-error.d.ts +17 -1
- package/dist/remote-error.d.ts.map +1 -1
- package/dist/remote-error.js +32 -2
- package/dist/remote-error.js.map +1 -1
- package/dist/remote-operations.d.ts +0 -40
- package/dist/remote-operations.d.ts.map +1 -1
- package/dist/remote-operations.js +26 -6
- package/dist/remote-operations.js.map +1 -1
- package/dist/remote-parsers.d.ts +1 -1
- package/dist/remote-parsers.js +1 -1
- package/dist/search/backend-source.d.ts +6 -0
- package/dist/search/backend-source.d.ts.map +1 -0
- package/dist/search/backend-source.js +33 -0
- package/dist/search/backend-source.js.map +1 -0
- package/dist/search/contract.d.ts +151 -0
- package/dist/search/contract.d.ts.map +1 -0
- package/dist/search/contract.js +78 -0
- package/dist/search/contract.js.map +1 -0
- package/dist/search/errors.d.ts +30 -0
- package/dist/search/errors.d.ts.map +1 -0
- package/dist/search/errors.js +50 -0
- package/dist/search/errors.js.map +1 -0
- package/dist/search/identity.d.ts +12 -0
- package/dist/search/identity.d.ts.map +1 -0
- package/dist/search/identity.js +90 -0
- package/dist/search/identity.js.map +1 -0
- package/dist/search/index.d.ts +16 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +15 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/memory-source.d.ts +36 -0
- package/dist/search/memory-source.d.ts.map +1 -0
- package/dist/search/memory-source.js +235 -0
- package/dist/search/memory-source.js.map +1 -0
- package/dist/search/rank.d.ts +34 -0
- package/dist/search/rank.d.ts.map +1 -0
- package/dist/search/rank.js +129 -0
- package/dist/search/rank.js.map +1 -0
- package/dist/search/row-text.d.ts +38 -0
- package/dist/search/row-text.d.ts.map +1 -0
- package/dist/search/row-text.js +88 -0
- package/dist/search/row-text.js.map +1 -0
- package/dist/search/search.d.ts +28 -0
- package/dist/search/search.d.ts.map +1 -0
- package/dist/search/search.js +257 -0
- package/dist/search/search.js.map +1 -0
- package/dist/search/source.d.ts +67 -0
- package/dist/search/source.d.ts.map +1 -0
- package/dist/search/source.js +2 -0
- package/dist/search/source.js.map +1 -0
- package/dist/search/text.d.ts +47 -0
- package/dist/search/text.d.ts.map +1 -0
- package/dist/search/text.js +150 -0
- package/dist/search/text.js.map +1 -0
- package/dist/site-capabilities.d.ts +345 -0
- package/dist/site-capabilities.d.ts.map +1 -0
- package/dist/site-capabilities.js +724 -0
- package/dist/site-capabilities.js.map +1 -0
- package/dist/source-engine/driver.d.ts +42 -0
- package/dist/source-engine/driver.d.ts.map +1 -0
- package/dist/source-engine/driver.js +529 -0
- package/dist/source-engine/driver.js.map +1 -0
- package/dist/source-engine/evidence.d.ts +39 -0
- package/dist/source-engine/evidence.d.ts.map +1 -0
- package/dist/source-engine/evidence.js +54 -0
- package/dist/source-engine/evidence.js.map +1 -0
- package/dist/source-engine/guard.d.ts +87 -0
- package/dist/source-engine/guard.d.ts.map +1 -0
- package/dist/source-engine/guard.js +427 -0
- package/dist/source-engine/guard.js.map +1 -0
- package/dist/source-engine/index.d.ts +35 -0
- package/dist/source-engine/index.d.ts.map +1 -0
- package/dist/source-engine/index.js +27 -0
- package/dist/source-engine/index.js.map +1 -0
- package/dist/source-engine/machine-state.d.ts +87 -0
- package/dist/source-engine/machine-state.d.ts.map +1 -0
- package/dist/source-engine/machine-state.js +94 -0
- package/dist/source-engine/machine-state.js.map +1 -0
- package/dist/source-engine/observe.d.ts +10 -0
- package/dist/source-engine/observe.d.ts.map +1 -0
- package/dist/source-engine/observe.js +276 -0
- package/dist/source-engine/observe.js.map +1 -0
- package/dist/source-engine/overlay.d.ts +50 -0
- package/dist/source-engine/overlay.d.ts.map +1 -0
- package/dist/source-engine/overlay.js +114 -0
- package/dist/source-engine/overlay.js.map +1 -0
- package/dist/source-engine/robots.d.ts +53 -0
- package/dist/source-engine/robots.d.ts.map +1 -0
- package/dist/source-engine/robots.js +158 -0
- package/dist/source-engine/robots.js.map +1 -0
- package/dist/source-engine/snapshot.d.ts +104 -0
- package/dist/source-engine/snapshot.d.ts.map +1 -0
- package/dist/source-engine/snapshot.js +240 -0
- package/dist/source-engine/snapshot.js.map +1 -0
- package/dist/source-engine/target-consumer.d.ts +12 -0
- package/dist/source-engine/target-consumer.d.ts.map +1 -0
- package/dist/source-engine/target-consumer.js +15 -0
- package/dist/source-engine/target-consumer.js.map +1 -0
- package/dist/source-engine/target-descriptor.d.ts +3 -0
- package/dist/source-engine/target-descriptor.d.ts.map +1 -0
- package/dist/source-engine/target-descriptor.js +26 -0
- package/dist/source-engine/target-descriptor.js.map +1 -0
- package/dist/source-engine/target.d.ts +82 -0
- package/dist/source-engine/target.d.ts.map +1 -0
- package/dist/source-engine/target.js +213 -0
- package/dist/source-engine/target.js.map +1 -0
- package/dist/source-engine/types.d.ts +296 -0
- package/dist/source-engine/types.d.ts.map +1 -0
- package/dist/source-engine/types.js +2 -0
- package/dist/source-engine/types.js.map +1 -0
- package/dist/source-harness/conformance.d.ts +16 -0
- package/dist/source-harness/conformance.d.ts.map +1 -0
- package/dist/source-harness/conformance.js +266 -0
- package/dist/source-harness/conformance.js.map +1 -0
- package/dist/source-harness/fixture.d.ts +97 -0
- package/dist/source-harness/fixture.d.ts.map +1 -0
- package/dist/source-harness/fixture.js +276 -0
- package/dist/source-harness/fixture.js.map +1 -0
- package/dist/source-harness/index.d.ts +22 -0
- package/dist/source-harness/index.d.ts.map +1 -0
- package/dist/source-harness/index.js +19 -0
- package/dist/source-harness/index.js.map +1 -0
- package/dist/source-harness/peer.d.ts +74 -0
- package/dist/source-harness/peer.d.ts.map +1 -0
- package/dist/source-harness/peer.js +106 -0
- package/dist/source-harness/peer.js.map +1 -0
- package/dist/source-profiles/index.d.ts +31 -0
- package/dist/source-profiles/index.d.ts.map +1 -0
- package/dist/source-profiles/index.js +206 -0
- package/dist/source-profiles/index.js.map +1 -0
- package/dist/source-profiles/link-header.d.ts +6 -0
- package/dist/source-profiles/link-header.d.ts.map +1 -0
- package/dist/source-profiles/link-header.js +131 -0
- package/dist/source-profiles/link-header.js.map +1 -0
- package/dist/storage.d.ts +9 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +6 -1
- package/dist/storage.js.map +1 -1
- package/dist/string-identity-agreement.d.ts +35 -0
- package/dist/string-identity-agreement.d.ts.map +1 -0
- package/dist/string-identity-agreement.js +72 -0
- package/dist/string-identity-agreement.js.map +1 -0
- package/dist/types.d.ts +41 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -10
- package/dist/types.js.map +1 -1
- package/dist/uncertain-write.d.ts +157 -17
- package/dist/uncertain-write.d.ts.map +1 -1
- package/dist/uncertain-write.js +86 -30
- package/dist/uncertain-write.js.map +1 -1
- package/dist/versioning.d.ts +9 -4
- package/dist/versioning.d.ts.map +1 -1
- package/dist/versioning.js +9 -4
- package/dist/versioning.js.map +1 -1
- package/dist/view-launch-contract.d.ts +14 -0
- package/dist/view-launch-contract.d.ts.map +1 -0
- package/dist/view-launch-contract.js +23 -0
- package/dist/view-launch-contract.js.map +1 -0
- package/dist/write-identity.d.ts +5 -0
- package/dist/write-identity.d.ts.map +1 -0
- package/dist/write-identity.js +9 -0
- package/dist/write-identity.js.map +1 -0
- package/package.json +140 -3
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { InvalidInputError } from "./errors.js";
|
|
2
|
+
import { parseLeadingFrontmatter } from "./portable-frontmatter.js";
|
|
3
|
+
import { assertSafeConceptId, compareStorageKeys, isReservedFile, pathFromConceptId } from "./paths.js";
|
|
4
|
+
import { sha256HexOfUtf8 } from "./sha256.js";
|
|
5
|
+
/** Current writers using this exact store/root and namespace; excludes independently rooted overlap. */
|
|
6
|
+
export const INVENTORY_GUARD_DOMAIN = "cooperating-local-writers-v1";
|
|
7
|
+
export class InventoryGuardUnsupported extends Error {
|
|
8
|
+
written = false;
|
|
9
|
+
reason;
|
|
10
|
+
constructor(reason) { super(`Inventory guard unsupported: ${reason}`); this.name = "InventoryGuardUnsupported"; this.reason = reason; }
|
|
11
|
+
}
|
|
12
|
+
export class InventoryGuardConflict extends Error {
|
|
13
|
+
written = false;
|
|
14
|
+
reason;
|
|
15
|
+
constructor(reason) {
|
|
16
|
+
super(`Inventory guard premise changed: ${reason}`);
|
|
17
|
+
this.name = "InventoryGuardConflict";
|
|
18
|
+
this.reason = reason;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const capabilityOwners = new WeakMap();
|
|
22
|
+
/** Internal adapter binding, deliberately absent from public entrypoint exports. */
|
|
23
|
+
export function bindInventoryGuard(owner, guard) {
|
|
24
|
+
capabilityOwners.set(guard, owner);
|
|
25
|
+
return guard;
|
|
26
|
+
}
|
|
27
|
+
export function inventoryGuardFor(backend) {
|
|
28
|
+
let guard;
|
|
29
|
+
try {
|
|
30
|
+
guard = backend.inventoryGuard;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
if (error instanceof InventoryGuardUnsupported)
|
|
34
|
+
throw error;
|
|
35
|
+
throw new InventoryGuardUnsupported("adapter_guard_unavailable");
|
|
36
|
+
}
|
|
37
|
+
if (!guard)
|
|
38
|
+
throw new InventoryGuardUnsupported("adapter_has_no_inventory_guard");
|
|
39
|
+
if (capabilityOwners.get(guard) !== backend)
|
|
40
|
+
throw new InventoryGuardUnsupported("unqualified_wrapper");
|
|
41
|
+
return guard;
|
|
42
|
+
}
|
|
43
|
+
export function assertInventoryGuardBound(count) {
|
|
44
|
+
if (count > 10_000)
|
|
45
|
+
throw new InventoryGuardUnsupported("inventory_document_bound");
|
|
46
|
+
}
|
|
47
|
+
/** Snapshot data without invoking caller accessors, toJSON, or transaction callbacks. */
|
|
48
|
+
function copyData(value, active = new Set(), budget = { nodes: 100_000 }) {
|
|
49
|
+
if (--budget.nodes < 0)
|
|
50
|
+
throw new InvalidInputError("Inventory guard input exceeds its data bound.");
|
|
51
|
+
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
52
|
+
return value;
|
|
53
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
54
|
+
return value;
|
|
55
|
+
if (typeof value !== "object")
|
|
56
|
+
throw new InvalidInputError("Inventory guard accepts finite plain data only.");
|
|
57
|
+
if (active.has(value))
|
|
58
|
+
throw new InvalidInputError("Inventory guard input is cyclic.");
|
|
59
|
+
const array = Array.isArray(value);
|
|
60
|
+
if (Object.getPrototypeOf(value) !== (array ? Array.prototype : Object.prototype) && Object.getPrototypeOf(value) !== null) {
|
|
61
|
+
throw new InvalidInputError("Inventory guard accepts plain objects and arrays only.");
|
|
62
|
+
}
|
|
63
|
+
active.add(value);
|
|
64
|
+
const result = array ? [] : Object.create(null);
|
|
65
|
+
if (array && Object.keys(value).length !== value.length)
|
|
66
|
+
throw new InvalidInputError("Inventory guard input cannot carry sparse arrays or extra keys.");
|
|
67
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
68
|
+
if (array && key === "length")
|
|
69
|
+
continue;
|
|
70
|
+
if (array && (typeof key !== "string" || !/^(0|[1-9][0-9]*)$/.test(key)))
|
|
71
|
+
throw new InvalidInputError("Inventory guard arrays require indexed data only.");
|
|
72
|
+
if (typeof key !== "string")
|
|
73
|
+
throw new InvalidInputError("Inventory guard input cannot carry symbol keys.");
|
|
74
|
+
const property = Object.getOwnPropertyDescriptor(value, key);
|
|
75
|
+
if (!property.enumerable || !("value" in property))
|
|
76
|
+
throw new InvalidInputError("Inventory guard input cannot carry accessors or hidden data.");
|
|
77
|
+
Object.defineProperty(result, key, { value: copyData(property.value, active, budget), enumerable: true, configurable: true, writable: true });
|
|
78
|
+
}
|
|
79
|
+
if (array && result.length !== value.length)
|
|
80
|
+
throw new InvalidInputError("Inventory guard input cannot carry sparse arrays.");
|
|
81
|
+
active.delete(value);
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
function record(value) {
|
|
85
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
86
|
+
throw new InvalidInputError("Inventory guard expected an object.");
|
|
87
|
+
return value;
|
|
88
|
+
}
|
|
89
|
+
function keys(value, allowed) {
|
|
90
|
+
if (Object.keys(value).some(key => !allowed.includes(key)))
|
|
91
|
+
throw new InvalidInputError("Inventory guard input has unsupported fields.");
|
|
92
|
+
}
|
|
93
|
+
function version(value) {
|
|
94
|
+
if (typeof value !== "string" || !/^sha256:[0-9a-f]{64}$/.test(value))
|
|
95
|
+
throw new InvalidInputError("Inventory guard requires exact content versions.");
|
|
96
|
+
}
|
|
97
|
+
export function captureInventoryGuardRequest(input) {
|
|
98
|
+
const data = record(copyData(input));
|
|
99
|
+
keys(data, ["target", "domain", "inventory", "id", "expectedVersion", "doc", "options"]);
|
|
100
|
+
const target = record(data.target);
|
|
101
|
+
keys(target, ["contract", "domain", "adapter", "store", "root_version", "edition"]);
|
|
102
|
+
if (target.contract !== "inventory-guard/v1" || target.domain !== INVENTORY_GUARD_DOMAIN || data.domain !== INVENTORY_GUARD_DOMAIN) {
|
|
103
|
+
throw new InventoryGuardUnsupported("domain_or_contract");
|
|
104
|
+
}
|
|
105
|
+
if (!["memory", "filesystem"].includes(String(target.adapter)) || typeof target.store !== "string" || target.store.length === 0 || !["0.1", "0.2"].includes(String(target.edition)))
|
|
106
|
+
throw new InvalidInputError("Invalid inventory guard target.");
|
|
107
|
+
version(target.root_version);
|
|
108
|
+
if (typeof data.id !== "string")
|
|
109
|
+
throw new InvalidInputError("Inventory guard requires a target id.");
|
|
110
|
+
assertSafeConceptId(data.id);
|
|
111
|
+
if (isReservedFile(pathFromConceptId(data.id)))
|
|
112
|
+
throw new InvalidInputError("Inventory guard target must be a concept.");
|
|
113
|
+
version(data.expectedVersion);
|
|
114
|
+
if (!Array.isArray(data.inventory))
|
|
115
|
+
throw new InvalidInputError("Inventory guard requires a complete inventory.");
|
|
116
|
+
assertInventoryGuardBound(data.inventory.length);
|
|
117
|
+
let previous;
|
|
118
|
+
for (const raw of data.inventory) {
|
|
119
|
+
const row = record(raw);
|
|
120
|
+
keys(row, ["id", "version"]);
|
|
121
|
+
if (typeof row.id !== "string")
|
|
122
|
+
throw new InvalidInputError("Inventory guard inventory id is invalid.");
|
|
123
|
+
assertSafeConceptId(row.id);
|
|
124
|
+
if (isReservedFile(pathFromConceptId(row.id)) || (previous !== undefined && compareStorageKeys(previous, row.id) >= 0))
|
|
125
|
+
throw new InvalidInputError("Inventory guard inventory must be sorted, unique concepts.");
|
|
126
|
+
version(row.version);
|
|
127
|
+
previous = row.id;
|
|
128
|
+
}
|
|
129
|
+
if (!data.inventory.some(row => row.id === data.id && row.version === data.expectedVersion))
|
|
130
|
+
throw new InvalidInputError("Inventory guard target/version is missing from inventory.");
|
|
131
|
+
const doc = record(data.doc);
|
|
132
|
+
keys(doc, ["id", "frontmatter", "body"]);
|
|
133
|
+
if (doc.id !== data.id || typeof doc.body !== "string")
|
|
134
|
+
throw new InvalidInputError("Inventory guard candidate identity/body is invalid.");
|
|
135
|
+
record(doc.frontmatter);
|
|
136
|
+
if (data.options !== undefined) {
|
|
137
|
+
const options = record(data.options);
|
|
138
|
+
keys(options, ["actor", "agent"]);
|
|
139
|
+
if (Object.values(options).some(value => typeof value !== "string"))
|
|
140
|
+
throw new InvalidInputError("Inventory guard attribution must be strings.");
|
|
141
|
+
}
|
|
142
|
+
return data;
|
|
143
|
+
}
|
|
144
|
+
export function guardEdition(content) {
|
|
145
|
+
if (content === null)
|
|
146
|
+
throw new InventoryGuardUnsupported("root_metadata_absent");
|
|
147
|
+
const edition = parseLeadingFrontmatter(content, "index.md").okf_version;
|
|
148
|
+
if (edition !== "0.1" && edition !== "0.2")
|
|
149
|
+
throw new InventoryGuardUnsupported("root_edition_unestablished");
|
|
150
|
+
return edition;
|
|
151
|
+
}
|
|
152
|
+
export function compareInventoryPremises(expected, current, inventory) {
|
|
153
|
+
if (expected.target.adapter !== current.adapter || expected.target.store !== current.store)
|
|
154
|
+
throw new InventoryGuardConflict("identity");
|
|
155
|
+
if (expected.target.edition !== current.edition)
|
|
156
|
+
throw new InventoryGuardConflict("edition");
|
|
157
|
+
if (expected.target.root_version !== current.root_version)
|
|
158
|
+
throw new InventoryGuardConflict("root_metadata");
|
|
159
|
+
if (expected.inventory.length !== inventory.length || expected.inventory.some((row, index) => row.id !== inventory[index]?.id))
|
|
160
|
+
throw new InventoryGuardConflict("membership");
|
|
161
|
+
if (expected.inventory.some((row, index) => row.version !== inventory[index].version))
|
|
162
|
+
throw new InventoryGuardConflict("version");
|
|
163
|
+
if (!inventory.some(row => row.id === expected.id && row.version === expected.expectedVersion))
|
|
164
|
+
throw new InventoryGuardConflict("target_version");
|
|
165
|
+
}
|
|
166
|
+
export function inventoryDigest(inventory) {
|
|
167
|
+
return `sha256:${sha256HexOfUtf8(JSON.stringify(inventory.map(row => [row.id, row.version])))}`;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=inventory-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory-guard.js","sourceRoot":"","sources":["../src/inventory-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
* that commits.
|
|
22
22
|
* - {@link JournaledBackend.deleteJournaled} is the deletion counterpart: ONE transaction that
|
|
23
23
|
* removes the document record under the same compare-and-swap, puts and removes meta rows
|
|
24
|
-
* with it,
|
|
24
|
+
* with it, optionally supersedes an intent and records a deletion intent
|
|
25
|
+
* ({@link DOCUMENT_DELETE_KIND}) exactly as `writeJournaled` does for a write, and honours
|
|
26
|
+
* `requireSettled` the same way, so a document the authority deleted
|
|
25
27
|
* leaves the working copy together with its shared base and never while a local edit holds
|
|
26
28
|
* it. An absent target is not a conflict: the meta changes still apply and the result says
|
|
27
29
|
* `absent`, as the plain `delete` answers absence with `false`. With `onHeld`, a hold is not a
|
|
@@ -36,10 +38,27 @@
|
|
|
36
38
|
* chain whose head is a recorded conflict or refusal, with conflicted, refused, and
|
|
37
39
|
* never-attempted pending successors behind it, never uncertain delivery. The caller
|
|
38
40
|
* preserves recovery evidence in meta; retirement does not assert remote acceptance.
|
|
41
|
+
* - {@link JournaledBackend.retireAcknowledged}, when an adapter offers it, is ONE transaction
|
|
42
|
+
* that removes named acknowledged intents of one target, and named meta rows, under the full
|
|
43
|
+
* guard of that target. Every named intent must be acknowledged in the guard, and the guard is
|
|
44
|
+
* compared in the same transaction, so an intent another realm moved since the caller's read is
|
|
45
|
+
* never removed. Unsettled work is never retired this way. What a retained successor may
|
|
46
|
+
* still need from a retired row is the caller's rule; the adapter only enforces the premise.
|
|
39
47
|
* - {@link JournaledBackend.readWithJournal} is ONE snapshot: the document, every intent
|
|
40
48
|
* targeting it, and the named meta rows, read in one readonly transaction, so a write in
|
|
41
49
|
* another realm between separate reads can never show a caller a document of one moment
|
|
42
50
|
* beside a journal of another. Intents come back in local commit order (by `sequence`).
|
|
51
|
+
* - {@link JournaledBackend.readHeads} is that snapshot over every document at once: each
|
|
52
|
+
* record's head (id, version, writer, time), its leading frontmatter parsed as `read` parses
|
|
53
|
+
* it, its exact bytes, every intent targeting it, and the meta rows the caller names for it,
|
|
54
|
+
* all from ONE readonly transaction, so every row describes the same moment. Bodies are
|
|
55
|
+
* never parsed. A record whose leading block does not parse is a row with `frontmatter`
|
|
56
|
+
* null and the parser's error, never a dropped row and never a failed listing. A caller that
|
|
57
|
+
* keeps less than the row (a version and a provenance, say) passes `project`, which maps
|
|
58
|
+
* each row as it is read so the listing over a large store never holds every document's
|
|
59
|
+
* stored bytes at once; the journal is read whole before the walk, so intents and the
|
|
60
|
+
* content they carry are held for its duration, as a single read holds them. Keys every row
|
|
61
|
+
* needs go in `shared`, read once. Rows come back in the order `list` orders ids.
|
|
43
62
|
* - {@link JournaledBackend.updateIntent} is a compare-and-swap on the intent's `state`: the
|
|
44
63
|
* patch applies only while the record is in `expectedState`, together with any meta rows, in
|
|
45
64
|
* one transaction. A different state or a missing record rejects with
|
|
@@ -54,8 +73,19 @@
|
|
|
54
73
|
* the shipping implementation; a test-only in-memory adapter proves the seam is not a
|
|
55
74
|
* description of that one class.
|
|
56
75
|
*/
|
|
76
|
+
import type { MalformedDocumentError } from "./frontmatter-contract.js";
|
|
57
77
|
import type { OperationIntent, OperationState } from "./uncertain-write.js";
|
|
58
|
-
import type { ConceptId, DeleteOptions, OkfDocument, ReadResult, StorageBackend, Version, WriteOptions } from "./types.js";
|
|
78
|
+
import type { ConceptId, DeleteOptions, Frontmatter, OkfDocument, ReadResult, StorageBackend, Version, WriteOptions } from "./types.js";
|
|
79
|
+
/**
|
|
80
|
+
* The intent kind of a journaled local deletion: the document leaves at exactly the intent's
|
|
81
|
+
* base. A deletion carries no bytes, so its `content` is {@link DELETION_CONTENT} and its `local`
|
|
82
|
+
* is {@link DELETION_VERSION}, the version of empty bytes, which no document can have (every
|
|
83
|
+
* document has frontmatter). A conflict can therefore never name a deletion's own `local` and
|
|
84
|
+
* read as its commit.
|
|
85
|
+
*/
|
|
86
|
+
export declare const DOCUMENT_DELETE_KIND = "document.delete";
|
|
87
|
+
export declare const DELETION_CONTENT = "";
|
|
88
|
+
export declare const DELETION_VERSION: Version;
|
|
59
89
|
/** Presence is independent of value: a stored undefined is not an absent row. */
|
|
60
90
|
export type MetaExpectation = {
|
|
61
91
|
present: false;
|
|
@@ -88,6 +118,8 @@ export declare class JournalGuardConflict extends Error {
|
|
|
88
118
|
* applies only to guarded operations; the unguarded metadata store remains opaque.
|
|
89
119
|
*/
|
|
90
120
|
export declare function captureJournalValue<T>(value: T): T;
|
|
121
|
+
export declare function equalJournalValue(a: unknown, b: unknown): boolean;
|
|
122
|
+
export declare function assertMetaExpectation(value: MetaExpectation): void;
|
|
91
123
|
export declare function captureJournalGuard(value: JournalGuard, target?: ConceptId): JournalGuard;
|
|
92
124
|
/** Only omission or undefined selects the unguarded compatibility path. */
|
|
93
125
|
export declare function captureJournalGuardOption(options: {
|
|
@@ -112,11 +144,31 @@ export declare function captureIntentUpdate(patch: IntentPatch, options: IntentU
|
|
|
112
144
|
options: IntentUpdateOptions;
|
|
113
145
|
};
|
|
114
146
|
export declare function captureMetaWrite(options: MetaWriteOptions): MetaWriteOptions;
|
|
115
|
-
export declare function assertMetaWrite(key: string, options: MetaWriteOptions, actual: MetaExpectation, intents: readonly
|
|
147
|
+
export declare function assertMetaWrite(key: string, options: MetaWriteOptions, actual: MetaExpectation, intents: readonly {
|
|
148
|
+
requestId: string;
|
|
149
|
+
}[]): void;
|
|
116
150
|
/** Metadata removal is admitted only with an explicit full-snapshot premise. */
|
|
117
151
|
export declare function assertJournalMetaChanges(guard: JournalGuard | undefined, puts: readonly MetaRecord[], removals: readonly string[] | undefined): void;
|
|
118
152
|
/** A guarded write owns one target and creates a globally fresh journal identity. */
|
|
119
|
-
export declare function assertJournalIntentChanges(guard: JournalGuard | undefined, existingIdentity:
|
|
153
|
+
export declare function assertJournalIntentChanges(guard: JournalGuard | undefined, existingIdentity: {
|
|
154
|
+
target: string;
|
|
155
|
+
} | undefined, superseded: {
|
|
156
|
+
target: string;
|
|
157
|
+
} | undefined): void;
|
|
158
|
+
/** Options for {@link JournaledBackend.retireAcknowledged}. */
|
|
159
|
+
export interface RetireAcknowledgedOptions {
|
|
160
|
+
/** The full target snapshot the retirement was composed against, compared in its transaction. */
|
|
161
|
+
guard: JournalGuard;
|
|
162
|
+
/** Acknowledged intents of the guard's target to remove; at least one, each named once. */
|
|
163
|
+
requestIds: readonly string[];
|
|
164
|
+
/** Meta rows the guard names, removed in the same transaction. */
|
|
165
|
+
removeMeta?: readonly string[];
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Capture a retirement before any adapter work: the guard is required and complete, every
|
|
169
|
+
* named intent is in it and acknowledged, and every removed meta row is one the guard names.
|
|
170
|
+
*/
|
|
171
|
+
export declare function captureRetireAcknowledged(target: ConceptId, options: RetireAcknowledgedOptions): RetireAcknowledgedOptions;
|
|
120
172
|
/** Capture write options while retaining the existing synchronous metadata producer. */
|
|
121
173
|
export declare function captureJournalWriteOptions(options: JournaledWriteOptions): JournaledWriteOptions;
|
|
122
174
|
/** Capture every guarded deletion branch before evaluating held or absent state. */
|
|
@@ -159,10 +211,15 @@ export interface IntentRecord extends OperationIntent {
|
|
|
159
211
|
after?: string;
|
|
160
212
|
/** Set when the authority committed the intent; equals `local` for a content-addressed token. */
|
|
161
213
|
acknowledgedVersion?: Version;
|
|
162
|
-
/**
|
|
214
|
+
/**
|
|
215
|
+
* The shared head observed when the intent entered conflict. With `version: null` (deleted
|
|
216
|
+
* remotely), `tombstone` is the deletion the authority named, when it named one: what a
|
|
217
|
+
* deliberate re-create acknowledges. It is never a version a read serves.
|
|
218
|
+
*/
|
|
163
219
|
remote?: {
|
|
164
220
|
version: Version | null;
|
|
165
221
|
content: string | null;
|
|
222
|
+
tombstone?: Version;
|
|
166
223
|
};
|
|
167
224
|
refusal?: {
|
|
168
225
|
code: string;
|
|
@@ -172,7 +229,9 @@ export interface IntentRecord extends OperationIntent {
|
|
|
172
229
|
finding?: string;
|
|
173
230
|
}
|
|
174
231
|
/** The caller-supplied part of a new intent; the adapter fills content, version, sequence, and state. */
|
|
175
|
-
export type NewIntentRecord = Pick<IntentRecord, "requestId" | "kind" | "target" | "base" | "baseContent" | "createdAt"> & Partial<Pick<IntentRecord, "after">>;
|
|
232
|
+
export type NewIntentRecord = Pick<IntentRecord, "requestId" | "kind" | "target" | "base" | "baseContent" | "createdAt"> & Partial<Pick<IntentRecord, "after" | "recreates" | "bodyReplace">>;
|
|
233
|
+
/** Capture durable per-request edit intent before an adapter queues asynchronous work. */
|
|
234
|
+
export declare function captureNewDocumentIntent(intent: NewIntentRecord): NewIntentRecord;
|
|
176
235
|
/** An opaque key-value row in the meta store (bootstrap marker, per-document base, pause flag). */
|
|
177
236
|
export interface MetaRecord {
|
|
178
237
|
key: string;
|
|
@@ -184,6 +243,14 @@ export declare class JournalSnapshotConflict extends Error {
|
|
|
184
243
|
readonly target: ConceptId;
|
|
185
244
|
constructor(target: ConceptId);
|
|
186
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* The deletion intent a journaled deletion records, refused before any adapter work when it is
|
|
248
|
+
* not one: another kind, another target, or combined with a guard (a guarded deletion journals
|
|
249
|
+
* nothing). The adapter fills content, local version, sequence and state.
|
|
250
|
+
*/
|
|
251
|
+
export declare function assertDeletionIntent(target: ConceptId, options: JournaledDeleteOptions): void;
|
|
252
|
+
/** The record a journaled deletion adds for `intent`. */
|
|
253
|
+
export declare function deletionIntentRecord(intent: NewIntentRecord, sequence: number, now: string): IntentRecord;
|
|
187
254
|
export declare function assertJournalResolutionOptions(target: ConceptId, options: JournaledWriteOptions | JournaledDeleteOptions): void;
|
|
188
255
|
/**
|
|
189
256
|
* Compare full records, not only state: a changed outcome or retry is new recovery evidence.
|
|
@@ -235,6 +302,20 @@ export interface JournaledDeleteOptions extends DeleteOptions {
|
|
|
235
302
|
meta?: MetaRecord[];
|
|
236
303
|
/** Meta keys to remove in the same transaction; a key with no row is not an error. Applied as `meta` is. */
|
|
237
304
|
removeMeta?: readonly string[];
|
|
305
|
+
/**
|
|
306
|
+
* Record this deletion intent in the same transaction, as `writeJournaled` records a write's:
|
|
307
|
+
* `pending`, zero attempts, the next sequence, with {@link DELETION_CONTENT} and
|
|
308
|
+
* {@link DELETION_VERSION}. Its kind must be {@link DOCUMENT_DELETE_KIND}. It is recorded when
|
|
309
|
+
* the deletion applies, including over an absent record (a resolution re-deleting a document
|
|
310
|
+
* the working copy no longer holds), and never when the deletion is held.
|
|
311
|
+
*/
|
|
312
|
+
intent?: NewIntentRecord;
|
|
313
|
+
/** An unsettled intent this deletion composes over; removed only while its state and attempts still match, as for `writeJournaled`. */
|
|
314
|
+
supersede?: {
|
|
315
|
+
requestId: string;
|
|
316
|
+
expectedState: OperationState;
|
|
317
|
+
expectedAttempts: number;
|
|
318
|
+
};
|
|
238
319
|
/**
|
|
239
320
|
* Refuse the deletion when any intent targeting `id` is in a state other than `acknowledged`,
|
|
240
321
|
* read in the same transaction as the deletion. A pull that reconciles a remote deletion uses
|
|
@@ -253,13 +334,15 @@ export interface JournaledDeleteOptions extends DeleteOptions {
|
|
|
253
334
|
}
|
|
254
335
|
/** What {@link JournaledBackend.deleteJournaled} did, in one transaction. */
|
|
255
336
|
export type JournaledDeleteResult =
|
|
256
|
-
/** A record was removed; `meta` and `removeMeta` applied. */
|
|
337
|
+
/** A record was removed; `meta` and `removeMeta` applied, and `intent` recorded when one was given. */
|
|
257
338
|
{
|
|
258
339
|
outcome: "deleted";
|
|
340
|
+
intent?: IntentRecord;
|
|
259
341
|
}
|
|
260
|
-
/** No record to remove; `meta` and `removeMeta` still applied. */
|
|
342
|
+
/** No record to remove; `meta` and `removeMeta` still applied, and `intent` recorded when one was given. */
|
|
261
343
|
| {
|
|
262
344
|
outcome: "absent";
|
|
345
|
+
intent?: IntentRecord;
|
|
263
346
|
}
|
|
264
347
|
/** An unsettled intent holds the target and `onHeld` was given: its meta rows applied, nothing else did. */
|
|
265
348
|
| {
|
|
@@ -278,8 +361,50 @@ export interface JournaledReadResult {
|
|
|
278
361
|
/** The requested meta rows' values by key; a key with no row is absent from the map. */
|
|
279
362
|
meta: Map<string, unknown>;
|
|
280
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* One document's head with everything the journal holds about it, as {@link JournaledBackend.readHeads}
|
|
366
|
+
* reads it: the stored record's identity and version, its leading frontmatter, its exact
|
|
367
|
+
* bytes, its intents, and the meta rows the caller named for it. Nothing of the body is parsed.
|
|
368
|
+
* The frontmatter is what `read` parses for the record under the bundle's edition; when the
|
|
369
|
+
* leading block does not parse it is `null` and `malformed` carries the parser's error.
|
|
370
|
+
*/
|
|
371
|
+
export type JournaledHead = {
|
|
372
|
+
id: ConceptId;
|
|
373
|
+
/** The version of the stored bytes, the token `read` reports for the document. */
|
|
374
|
+
version: Version;
|
|
375
|
+
/** The actor recorded for the stored revision. */
|
|
376
|
+
updatedBy: string;
|
|
377
|
+
/** When the stored revision was written, as an ISO instant. */
|
|
378
|
+
updatedAt: string;
|
|
379
|
+
/** The exact stored serialization, the bytes `version` names. */
|
|
380
|
+
raw: string;
|
|
381
|
+
/** Every intent targeting the id, in local commit order, whatever its state. */
|
|
382
|
+
intents: IntentRecord[];
|
|
383
|
+
/** The meta rows `meta` named for this id, by key; a key with no row is absent from the map. */
|
|
384
|
+
meta: Map<string, unknown>;
|
|
385
|
+
} & ({
|
|
386
|
+
frontmatter: Frontmatter;
|
|
387
|
+
malformed?: undefined;
|
|
388
|
+
} | {
|
|
389
|
+
frontmatter: null;
|
|
390
|
+
malformed: MalformedDocumentError;
|
|
391
|
+
});
|
|
392
|
+
/** Options for {@link JournaledBackend.readHeads}. */
|
|
393
|
+
export interface JournaledHeadsOptions<T> {
|
|
394
|
+
/** The meta keys to read for one document, given its id and its intents; none by default. Read per row and released with it. */
|
|
395
|
+
meta?: (id: ConceptId, intents: readonly IntentRecord[]) => readonly string[];
|
|
396
|
+
/** Meta keys read once for the whole listing, in the same transaction, and present in every row's `meta`; a key named here is not read again when `meta` names it for a row. */
|
|
397
|
+
shared?: readonly string[];
|
|
398
|
+
/**
|
|
399
|
+
* Maps each head as it is read; only the projection is kept, so a listing over a large store
|
|
400
|
+
* holds one document's stored bytes at a time (the journal, read whole, is held throughout).
|
|
401
|
+
* Omitted, the heads themselves are returned. A projection that throws rejects the whole
|
|
402
|
+
* listing with its error.
|
|
403
|
+
*/
|
|
404
|
+
project?: (head: JournaledHead) => T;
|
|
405
|
+
}
|
|
281
406
|
/** Fields a caller may change when settling or reclaiming an intent. */
|
|
282
|
-
export type IntentPatch = Partial<Omit<IntentRecord, "requestId" | "sequence" | "createdAt" | "kind" | "target">>;
|
|
407
|
+
export type IntentPatch = Partial<Omit<IntentRecord, "requestId" | "sequence" | "createdAt" | "kind" | "target" | "bodyReplace">>;
|
|
283
408
|
/**
|
|
284
409
|
* A {@link StorageBackend} that also journals local writes as intents and keeps opaque meta
|
|
285
410
|
* rows, with the transaction and compare-and-swap guarantees stated in this module's header.
|
|
@@ -322,9 +447,24 @@ export interface JournaledBackend extends StorageBackend {
|
|
|
322
447
|
readWithJournal(id: ConceptId, options?: {
|
|
323
448
|
meta?: readonly string[];
|
|
324
449
|
}): Promise<JournaledReadResult>;
|
|
450
|
+
/**
|
|
451
|
+
* Every document's head, its leading frontmatter, its bytes, its intents, and the meta rows
|
|
452
|
+
* `meta` names for it, from ONE readonly transaction, in the order `list` orders ids. A
|
|
453
|
+
* caller that lists or counts the working copy reads here so every row describes the same
|
|
454
|
+
* moment and no body is parsed; `project` keeps the listing's memory at one document at a
|
|
455
|
+
* time. A record whose leading block does not parse is reported, not dropped.
|
|
456
|
+
*/
|
|
457
|
+
readHeads<T = JournaledHead>(options?: JournaledHeadsOptions<T>): Promise<T[]>;
|
|
325
458
|
/** Intents in local commit order, optionally restricted to one or more states. */
|
|
326
459
|
listIntents(state?: OperationState | readonly OperationState[]): Promise<IntentRecord[]>;
|
|
327
460
|
readIntent(requestId: string): Promise<IntentRecord | undefined>;
|
|
461
|
+
/**
|
|
462
|
+
* Remove acknowledged intents of one target, and named meta rows, in ONE transaction under
|
|
463
|
+
* the target's full guard ({@link RetireAcknowledgedOptions}). A guard that no longer matches
|
|
464
|
+
* rejects with {@link JournalGuardConflict} and removes nothing. Optional: a caller that finds
|
|
465
|
+
* no such method keeps acknowledged history, as every adapter did before it existed.
|
|
466
|
+
*/
|
|
467
|
+
retireAcknowledged?(target: ConceptId, options: RetireAcknowledgedOptions): Promise<void>;
|
|
328
468
|
/**
|
|
329
469
|
* Compare-and-swap on an intent's `state`: the patch applies only while the record is in
|
|
330
470
|
* `expectedState`, together with any meta rows, in one transaction. A different state or a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journaled-backend.d.ts","sourceRoot":"","sources":["../src/journaled-backend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"journaled-backend.d.ts","sourceRoot":"","sources":["../src/journaled-backend.ts"],"names":[],"mappings":"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"}
|