@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,47 @@
|
|
|
1
|
+
import { compareCodePoints } from "../code-point-order.js";
|
|
2
|
+
/**
|
|
3
|
+
* The overlay comparison canon: `JSON.stringify` over a recursive copy whose object keys are sorted
|
|
4
|
+
* by the default string order and whose `undefined` members are dropped, with no other handling.
|
|
5
|
+
*
|
|
6
|
+
* Module-private and deliberately distinct from core's other two canonicalizers
|
|
7
|
+
* (`recipe-lifecycle/stamp.ts`, `site-capabilities.ts`). Overlay write decisions depend on its
|
|
8
|
+
* exact semantics: an absent value and `null` differ, a `Date` is `{}`, a function member is
|
|
9
|
+
* dropped, and a top-level `undefined` stays `undefined`. Merging it with either of the others is a
|
|
10
|
+
* behaviour change for the three-value rule and the ownership guard.
|
|
11
|
+
*/
|
|
12
|
+
export function overlayCanonicalJson(value) {
|
|
13
|
+
return JSON.stringify(sortValue(value));
|
|
14
|
+
}
|
|
15
|
+
function sortValue(v) {
|
|
16
|
+
if (Array.isArray(v))
|
|
17
|
+
return v.map(sortValue);
|
|
18
|
+
if (v && typeof v === "object") {
|
|
19
|
+
const source = v;
|
|
20
|
+
const out = {};
|
|
21
|
+
for (const k of Object.keys(source).sort())
|
|
22
|
+
if (source[k] !== undefined)
|
|
23
|
+
out[k] = sortValue(source[k]);
|
|
24
|
+
return out;
|
|
25
|
+
}
|
|
26
|
+
return v;
|
|
27
|
+
}
|
|
28
|
+
/** Equality under {@link overlayCanonicalJson}. */
|
|
29
|
+
export function same(a, b) {
|
|
30
|
+
return overlayCanonicalJson(a) === overlayCanonicalJson(b);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Equality for a field the target Kind declares as a list type, which an owning feed treats as a
|
|
34
|
+
* set: two lists are equal when they hold the same members, whatever their order and however often
|
|
35
|
+
* a member repeats, each member compared under {@link overlayCanonicalJson}. Anything that is not
|
|
36
|
+
* a list on both sides compares by {@link same}, so an absent list still differs from `[]`. A
|
|
37
|
+
* separate function so `same()`, and with it every digest and the parity golden, never changes.
|
|
38
|
+
*/
|
|
39
|
+
export function sameSet(a, b) {
|
|
40
|
+
if (!Array.isArray(a) || !Array.isArray(b))
|
|
41
|
+
return same(a, b);
|
|
42
|
+
const members = (list) => [...new Set(list.map((member) => overlayCanonicalJson(member) ?? "undefined"))].sort(compareCodePoints);
|
|
43
|
+
const x = members(a);
|
|
44
|
+
const y = members(b);
|
|
45
|
+
return x.length === y.length && x.every((member, index) => member === y[index]);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=canonical.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/record-overlay/canonical.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,CAAU;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,CAA4B,CAAC;QAC5C,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;YAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,CAAU;IACzC,OAAO,oBAAoB,CAAC,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,CAAU,EAAE,CAAU;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,CAAC,IAAe,EAAY,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvJ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/record-overlay/digest.ts"],"names":[],"mappings":"AAIA,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Signal ids and finding digests. Synchronous and Node-free through core's pure SHA-256, which
|
|
2
|
+
// encodes strings as UTF-8 exactly as `node:crypto` does.
|
|
3
|
+
import { sha256Hex } from "../versioning.js";
|
|
4
|
+
export function sha256(input) {
|
|
5
|
+
return "sha256:" + sha256Hex(input);
|
|
6
|
+
}
|
|
7
|
+
/** Short stable token for ids (never a provider value used as a path). */
|
|
8
|
+
export function shortHash(...parts) {
|
|
9
|
+
return sha256Hex(parts.map(String).join("\u0000")).slice(0, 12);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=digest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/record-overlay/digest.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,0DAA0D;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,GAAG,KAAgB;IAC3C,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Typed refusal vocabulary. Consumers branch on `code`, never on message text. */
|
|
2
|
+
export declare const REFUSAL_CODES: Readonly<{
|
|
3
|
+
/** A write would touch a field the feed does not own, or a Signal write left its bounded set. */
|
|
4
|
+
readonly FIELD_NOT_OWNED: "FIELD_NOT_OWNED";
|
|
5
|
+
/** An owned field diverged from the last accepted feed value. */
|
|
6
|
+
readonly OVERLAY_DOC_CONFLICT: "OVERLAY_DOC_CONFLICT";
|
|
7
|
+
/** More than one document claims the same provider identity. */
|
|
8
|
+
readonly OVERLAY_IDENTITY_AMBIGUOUS: "OVERLAY_IDENTITY_AMBIGUOUS";
|
|
9
|
+
/** The fresh read no longer carries the `sources[]` identity. */
|
|
10
|
+
readonly OVERLAY_IDENTITY_LOST: "OVERLAY_IDENTITY_LOST";
|
|
11
|
+
/** CAS lost: the document changed after planning (retryable). */
|
|
12
|
+
readonly STALE_VERSION: "STALE_VERSION";
|
|
13
|
+
/** The Signal was claimed or closed after planning (retryable). */
|
|
14
|
+
readonly SIGNAL_CLAIMED: "SIGNAL_CLAIMED";
|
|
15
|
+
/** Strict Kind admission refused the candidate. */
|
|
16
|
+
readonly KIND_REJECTED: "KIND_REJECTED";
|
|
17
|
+
/** The candidate violates a declared field type or vocabulary. */
|
|
18
|
+
readonly FIELD_TYPE_VIOLATION: "FIELD_TYPE_VIOLATION";
|
|
19
|
+
/** The input is not well-formed: a plan, an actor, or a candidate core's field actions refuse. */
|
|
20
|
+
readonly INVALID_INPUT: "INVALID_INPUT";
|
|
21
|
+
/** The Source Feed policy cannot be honoured. */
|
|
22
|
+
readonly POLICY_INVALID: "POLICY_INVALID";
|
|
23
|
+
}>;
|
|
24
|
+
export type RefusalCode = (typeof REFUSAL_CODES)[keyof typeof REFUSAL_CODES];
|
|
25
|
+
/**
|
|
26
|
+
* Codes after which the caller does not advance the record's store entry and plans the same change
|
|
27
|
+
* again: the source engine keeps it pending and replans it at the start of every run, whether or
|
|
28
|
+
* not the provider lists the record again.
|
|
29
|
+
*/
|
|
30
|
+
export declare const RETRYABLE: ReadonlySet<RefusalCode>;
|
|
31
|
+
/**
|
|
32
|
+
* Refusals that also leave the store entry where it was but are not expected to succeed on a plain
|
|
33
|
+
* retry: the feed's value is not admissible, so it is planned and refused again, visibly, whenever
|
|
34
|
+
* the record is observed, until the provider or the recipe changes.
|
|
35
|
+
*/
|
|
36
|
+
export declare const HOLD_STORE: ReadonlySet<RefusalCode>;
|
|
37
|
+
/** Core's Kind findings that refuse a value for its declared type, vocabulary or arity. */
|
|
38
|
+
export declare const CORE_VALUE_CODES: readonly string[];
|
|
39
|
+
export declare class OverlayRefusal extends Error {
|
|
40
|
+
readonly code: RefusalCode;
|
|
41
|
+
readonly details: Record<string, unknown>;
|
|
42
|
+
constructor(code: RefusalCode, message: string, details?: Record<string, unknown>);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/record-overlay/errors.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,aAAa;IACxB,iGAAiG;;IAEjG,iEAAiE;;IAEjE,gEAAgE;;IAEhE,iEAAiE;;IAEjE,iEAAiE;;IAEjE,mEAAmE;;IAEnE,mDAAmD;;IAEnD,kEAAkE;;IAElE,kGAAkG;;IAElG,iDAAiD;;EAExC,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,WAAW,CAG7C,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,WAAW,CAI9C,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA+E,CAAC;AAE9H,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE9B,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAMtF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** Typed refusal vocabulary. Consumers branch on `code`, never on message text. */
|
|
2
|
+
export const REFUSAL_CODES = Object.freeze({
|
|
3
|
+
/** A write would touch a field the feed does not own, or a Signal write left its bounded set. */
|
|
4
|
+
FIELD_NOT_OWNED: "FIELD_NOT_OWNED",
|
|
5
|
+
/** An owned field diverged from the last accepted feed value. */
|
|
6
|
+
OVERLAY_DOC_CONFLICT: "OVERLAY_DOC_CONFLICT",
|
|
7
|
+
/** More than one document claims the same provider identity. */
|
|
8
|
+
OVERLAY_IDENTITY_AMBIGUOUS: "OVERLAY_IDENTITY_AMBIGUOUS",
|
|
9
|
+
/** The fresh read no longer carries the `sources[]` identity. */
|
|
10
|
+
OVERLAY_IDENTITY_LOST: "OVERLAY_IDENTITY_LOST",
|
|
11
|
+
/** CAS lost: the document changed after planning (retryable). */
|
|
12
|
+
STALE_VERSION: "STALE_VERSION",
|
|
13
|
+
/** The Signal was claimed or closed after planning (retryable). */
|
|
14
|
+
SIGNAL_CLAIMED: "SIGNAL_CLAIMED",
|
|
15
|
+
/** Strict Kind admission refused the candidate. */
|
|
16
|
+
KIND_REJECTED: "KIND_REJECTED",
|
|
17
|
+
/** The candidate violates a declared field type or vocabulary. */
|
|
18
|
+
FIELD_TYPE_VIOLATION: "FIELD_TYPE_VIOLATION",
|
|
19
|
+
/** The input is not well-formed: a plan, an actor, or a candidate core's field actions refuse. */
|
|
20
|
+
INVALID_INPUT: "INVALID_INPUT",
|
|
21
|
+
/** The Source Feed policy cannot be honoured. */
|
|
22
|
+
POLICY_INVALID: "POLICY_INVALID",
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Codes after which the caller does not advance the record's store entry and plans the same change
|
|
26
|
+
* again: the source engine keeps it pending and replans it at the start of every run, whether or
|
|
27
|
+
* not the provider lists the record again.
|
|
28
|
+
*/
|
|
29
|
+
export const RETRYABLE = new Set([
|
|
30
|
+
REFUSAL_CODES.STALE_VERSION,
|
|
31
|
+
REFUSAL_CODES.SIGNAL_CLAIMED,
|
|
32
|
+
]);
|
|
33
|
+
/**
|
|
34
|
+
* Refusals that also leave the store entry where it was but are not expected to succeed on a plain
|
|
35
|
+
* retry: the feed's value is not admissible, so it is planned and refused again, visibly, whenever
|
|
36
|
+
* the record is observed, until the provider or the recipe changes.
|
|
37
|
+
*/
|
|
38
|
+
export const HOLD_STORE = new Set([
|
|
39
|
+
...RETRYABLE,
|
|
40
|
+
REFUSAL_CODES.FIELD_TYPE_VIOLATION,
|
|
41
|
+
REFUSAL_CODES.INVALID_INPUT,
|
|
42
|
+
]);
|
|
43
|
+
/** Core's Kind findings that refuse a value for its declared type, vocabulary or arity. */
|
|
44
|
+
export const CORE_VALUE_CODES = Object.freeze(["KIND_FIELD_TYPE", "KIND_FIELD_VALUE", "KIND_FIELD_ARITY"]);
|
|
45
|
+
export class OverlayRefusal extends Error {
|
|
46
|
+
code;
|
|
47
|
+
details;
|
|
48
|
+
constructor(code, message, details = {}) {
|
|
49
|
+
super(message);
|
|
50
|
+
this.name = "OverlayRefusal";
|
|
51
|
+
this.code = code;
|
|
52
|
+
this.details = details;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/record-overlay/errors.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,iGAAiG;IACjG,eAAe,EAAE,iBAAiB;IAClC,iEAAiE;IACjE,oBAAoB,EAAE,sBAAsB;IAC5C,gEAAgE;IAChE,0BAA0B,EAAE,4BAA4B;IACxD,iEAAiE;IACjE,qBAAqB,EAAE,uBAAuB;IAC9C,iEAAiE;IACjE,aAAa,EAAE,eAAe;IAC9B,mEAAmE;IACnE,cAAc,EAAE,gBAAgB;IAChC,mDAAmD;IACnD,aAAa,EAAE,eAAe;IAC9B,kEAAkE;IAClE,oBAAoB,EAAE,sBAAsB;IAC5C,kGAAkG;IAClG,aAAa,EAAE,eAAe;IAC9B,iDAAiD;IACjD,cAAc,EAAE,gBAAgB;CACxB,CAAC,CAAC;AAIZ;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAA6B,IAAI,GAAG,CAAc;IACtE,aAAa,CAAC,aAAa;IAC3B,aAAa,CAAC,cAAc;CAC7B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAA6B,IAAI,GAAG,CAAc;IACvE,GAAG,SAAS;IACZ,aAAa,CAAC,oBAAoB;IAClC,aAAa,CAAC,aAAa;CAC5B,CAAC,CAAC;AAEH,2FAA2F;AAC3F,MAAM,CAAC,MAAM,gBAAgB,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAE9H,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAc;IAClB,OAAO,CAA0B;IAE1C,YAAY,IAAiB,EAAE,OAAe,EAAE,UAAmC,EAAE;QACnF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Finding, FindingsInput, OverlayStep } from "./types.js";
|
|
2
|
+
export declare const FINDING_CHANGE_KIND = "status-check";
|
|
3
|
+
export declare function findingDigest(f: Pick<Finding, "key" | "facts">): string;
|
|
4
|
+
export declare function planFindings({ ops, provider, feed, slug, findings, observedAt, signals }: FindingsInput): Promise<OverlayStep[]>;
|
|
5
|
+
//# sourceMappingURL=findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/record-overlay/findings.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAIlD,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,MAAM,CAEvE;AAED,wBAAsB,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAgDtI"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assessment findings as Signal steps. A caller compares the current state of records with
|
|
3
|
+
* documents and returns findings: conditions that need a person's judgment, not record changes.
|
|
4
|
+
* They become the same create, collapse and duplicate steps as change Signals, so
|
|
5
|
+
* `applyRecordOverlay` writes them under the same guards.
|
|
6
|
+
*
|
|
7
|
+
* A finding's `facts` with its `key` are its digest: the same finding on a later run is
|
|
8
|
+
* `signal-duplicate`, also after the Signal was closed, so a dismissed finding stays dismissed
|
|
9
|
+
* until its facts change. A Signal whose `expires_at` has passed no longer counts, so a still-true
|
|
10
|
+
* finding is raised again after expiry. An open, unclaimed Signal with the same provider and
|
|
11
|
+
* `external_id` (default: the key) whose facts changed is updated in place, never duplicated.
|
|
12
|
+
*/
|
|
13
|
+
import { queryHeads } from "../bundle-ops.js";
|
|
14
|
+
import { overlayCanonicalJson } from "./canonical.js";
|
|
15
|
+
import { sha256, shortHash } from "./digest.js";
|
|
16
|
+
import { OverlayRefusal, REFUSAL_CODES } from "./errors.js";
|
|
17
|
+
import { maxPriority } from "./policy.js";
|
|
18
|
+
import { redactUrl } from "./redact.js";
|
|
19
|
+
import { isConceptId, linkLine, observationLine, relatedLine, signalBody, signalLinkTexts } from "./signal-text.js";
|
|
20
|
+
import { resolveAttentionKind } from "./signal-kind.js";
|
|
21
|
+
export const FINDING_CHANGE_KIND = "status-check";
|
|
22
|
+
const PRIORITIES = new Set(["low", "normal", "urgent"]);
|
|
23
|
+
const clip = (s, n) => (String(s).length > n ? String(s).slice(0, n - 1) + "…" : String(s));
|
|
24
|
+
export function findingDigest(f) {
|
|
25
|
+
return sha256(overlayCanonicalJson({ key: f.key, facts: f.facts ?? {} }));
|
|
26
|
+
}
|
|
27
|
+
export async function planFindings({ ops, provider, feed, slug, findings, observedAt, signals }) {
|
|
28
|
+
const steps = [];
|
|
29
|
+
const attention = resolveAttentionKind(ops.registry, ops.okfVersion, signals?.kind ?? "Signal", undefined);
|
|
30
|
+
if (!attention.ok)
|
|
31
|
+
throw new OverlayRefusal(REFUSAL_CODES.POLICY_INVALID, attention.reason, {});
|
|
32
|
+
const { name: signalName, kind: signalKind, prefix, stateField: progressField, ownerField } = attention.value;
|
|
33
|
+
const { fromFeed } = signalLinkTexts(signalKind, undefined, signals?.feedKind ?? "Source Feed");
|
|
34
|
+
const providerOut = redactUrl(provider);
|
|
35
|
+
const mine = (await queryHeads(ops.bundle, { type: signalName })).filter((h) => h.frontmatter.provider === providerOut);
|
|
36
|
+
const live = (h) => !(typeof h.frontmatter.expires_at === "string" && h.frontmatter.expires_at <= observedAt);
|
|
37
|
+
const touched = new Set();
|
|
38
|
+
const seenKeys = new Set();
|
|
39
|
+
for (const f of findings ?? []) {
|
|
40
|
+
if (!f || typeof f.key !== "string" || !f.key || seenKeys.has(f.key))
|
|
41
|
+
continue;
|
|
42
|
+
seenKeys.add(f.key);
|
|
43
|
+
const digest = findingDigest(f);
|
|
44
|
+
const externalId = f.external_id ?? f.key;
|
|
45
|
+
const priority = f.priority !== undefined && PRIORITIES.has(f.priority) ? f.priority : "normal";
|
|
46
|
+
const summary = clip(f.summary ?? f.title, 600);
|
|
47
|
+
const line = observationLine(observedAt, f.change_kind ?? FINDING_CHANGE_KIND, digest, summary);
|
|
48
|
+
const dup = mine.find((h) => h.frontmatter.content_digest === digest && live(h));
|
|
49
|
+
if (dup) {
|
|
50
|
+
steps.push({ op: "signal-duplicate", target: dup.id, external_id: externalId, content_digest: digest, finding: f.key });
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const open = mine.find((h) => h.frontmatter.external_id === externalId && h.frontmatter[progressField] === "todo" && !h.frontmatter[ownerField] && live(h));
|
|
54
|
+
const set = {
|
|
55
|
+
title: clip(f.title, 140), change_kind: f.change_kind ?? FINDING_CHANGE_KIND, observed_at: observedAt, diff_summary: summary,
|
|
56
|
+
content_digest: digest, external_id: externalId, ...(f.about_doc ? { about_doc: f.about_doc } : {}), ...(f.expires_at ? { expires_at: f.expires_at } : {}),
|
|
57
|
+
};
|
|
58
|
+
if (open && !touched.has(open.id)) {
|
|
59
|
+
touched.add(open.id);
|
|
60
|
+
steps.push({ op: "collapse-signal", target: open.id, expected_version: open.version, external_id: externalId, content_digest: digest, finding: f.key,
|
|
61
|
+
progress_field: progressField, observation_line: line, set: { ...set, priority: maxPriority(open.frontmatter.priority ?? "low", priority) } });
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
// An expiring finding raised again after expiry is a new Signal, so its id names the expiry too.
|
|
65
|
+
const id = `${prefix}${slug}-${f.expires_at ? shortHash(slug, f.key, digest, f.expires_at) : shortHash(slug, f.key, digest)}`;
|
|
66
|
+
const linkLines = [];
|
|
67
|
+
if (fromFeed && feed)
|
|
68
|
+
linkLines.push(linkLine(fromFeed, id, feed));
|
|
69
|
+
// Related documents are linked by id; a value that is not a document id has no line.
|
|
70
|
+
for (const r of [...new Set([f.about_doc, ...(f.related ?? [])].filter(isConceptId))])
|
|
71
|
+
linkLines.push(relatedLine(r));
|
|
72
|
+
const frontmatter = {
|
|
73
|
+
type: signalName, title: set.title, [progressField]: "todo", change_kind: set.change_kind, observed_at: observedAt,
|
|
74
|
+
provider: providerOut, external_id: externalId, diff_summary: summary, priority, content_digest: digest,
|
|
75
|
+
...(f.about_doc ? { about_doc: f.about_doc } : {}), ...(f.expires_at ? { expires_at: f.expires_at } : {}),
|
|
76
|
+
sources: (f.sources?.length ? f.sources : [{ resource: providerOut }]).map((s) => ({ ...s, resource: redactUrl(s.resource) })),
|
|
77
|
+
};
|
|
78
|
+
steps.push({ op: "create-signal", target: id, external_id: externalId, content_digest: digest, finding: f.key, reasons: ["finding"],
|
|
79
|
+
candidate: { frontmatter, body: signalBody(linkLines, undefined, line) } });
|
|
80
|
+
}
|
|
81
|
+
return steps;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=findings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/record-overlay/findings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@superbee/core/record-overlay`: the generic write half of binding documents to external records.
|
|
3
|
+
*
|
|
4
|
+
* A Source Feed policy names the fields a feed owns. `planRecordOverlay` turns the caller's record
|
|
5
|
+
* changes into steps under the three-value rule (converged, write, or conflict plus a Signal), each
|
|
6
|
+
* carrying the version it was decided against; `applyRecordOverlay` writes them through
|
|
7
|
+
* `mutateDocument` with a core-owned guard per write step on the fresh read. A source writes only
|
|
8
|
+
* its owned fields, never the body, never a document of its target Kind, and never deletes; the
|
|
9
|
+
* only documents it creates are Signals of one claimable attention Kind in the ops bundle.
|
|
10
|
+
*
|
|
11
|
+
* Everything site specific is a hook with a safe default: the text gate, the occurrence interval,
|
|
12
|
+
* correlation, `sources` properties, site candidate rules and derived fields. Storage-neutral: no
|
|
13
|
+
* Node globals or builtins.
|
|
14
|
+
*/
|
|
15
|
+
export { DEFAULT_AUTO_APPLY, DEFAULT_NEEDS_REVIEW, NEVER_OWNED, decideChange, gateSafeValue, isExcludedRecord, readOverlayPolicy, readOverlayPolicyForResource, } from "./policy.js";
|
|
16
|
+
export { disappearedPhase, planRecordOverlay, summarizeChange } from "./plan.js";
|
|
17
|
+
export { FINDING_CHANGE_KIND, findingDigest, planFindings } from "./findings.js";
|
|
18
|
+
export { applyRecordOverlay, composeGuards, ownershipGuard } from "./apply.js";
|
|
19
|
+
export { SourceIndex, buildSourceIndex } from "./source-index.js";
|
|
20
|
+
export { HOLD_STORE, OverlayRefusal, REFUSAL_CODES, RETRYABLE } from "./errors.js";
|
|
21
|
+
export type { RefusalCode } from "./errors.js";
|
|
22
|
+
export type { ApplyContext, ApplyOwnedFieldsStep, AssertCandidate, ChangeDecision, CollapseSignalStep, CorrelateHook, CreateSignalStep, DisappearedPhase, Finding, FindingsInput, IntervalHook, OverlayBundle, OverlayHooks, OverlayPlan, OverlayPolicy, OverlayReceipt, OverlayStep, PlanInput, PolicyContext, RecordChange, RecordOnlyStep, RefusalRow, SignalDuplicateStep, StepResult, Tell, TextGate, } from "./types.js";
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/record-overlay/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,IAAI,EACJ,QAAQ,GACT,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@superbee/core/record-overlay`: the generic write half of binding documents to external records.
|
|
3
|
+
*
|
|
4
|
+
* A Source Feed policy names the fields a feed owns. `planRecordOverlay` turns the caller's record
|
|
5
|
+
* changes into steps under the three-value rule (converged, write, or conflict plus a Signal), each
|
|
6
|
+
* carrying the version it was decided against; `applyRecordOverlay` writes them through
|
|
7
|
+
* `mutateDocument` with a core-owned guard per write step on the fresh read. A source writes only
|
|
8
|
+
* its owned fields, never the body, never a document of its target Kind, and never deletes; the
|
|
9
|
+
* only documents it creates are Signals of one claimable attention Kind in the ops bundle.
|
|
10
|
+
*
|
|
11
|
+
* Everything site specific is a hook with a safe default: the text gate, the occurrence interval,
|
|
12
|
+
* correlation, `sources` properties, site candidate rules and derived fields. Storage-neutral: no
|
|
13
|
+
* Node globals or builtins.
|
|
14
|
+
*/
|
|
15
|
+
export { DEFAULT_AUTO_APPLY, DEFAULT_NEEDS_REVIEW, NEVER_OWNED, decideChange, gateSafeValue, isExcludedRecord, readOverlayPolicy, readOverlayPolicyForResource, } from "./policy.js";
|
|
16
|
+
export { disappearedPhase, planRecordOverlay, summarizeChange } from "./plan.js";
|
|
17
|
+
export { FINDING_CHANGE_KIND, findingDigest, planFindings } from "./findings.js";
|
|
18
|
+
export { applyRecordOverlay, composeGuards, ownershipGuard } from "./apply.js";
|
|
19
|
+
export { SourceIndex, buildSourceIndex } from "./source-index.js";
|
|
20
|
+
export { HOLD_STORE, OverlayRefusal, REFUSAL_CODES, RETRYABLE } from "./errors.js";
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/record-overlay/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ChangeDecision, DisappearedPhase, IntervalHook, OverlayPlan, PlanInput, RecordChange } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Where a disappeared record stood at `observedAt`: `ended` (its last known end has passed),
|
|
4
|
+
* `before-start` (it vanished before it began: possibly canceled), `ongoing`, or null when its
|
|
5
|
+
* dates are unknown. Without an interval hook the phase is always unknown, so the record is raised.
|
|
6
|
+
*/
|
|
7
|
+
export declare function disappearedPhase(fields: Record<string, unknown> | null, observedAt: string, timeZone: string | undefined, interval: IntervalHook | undefined): DisappearedPhase;
|
|
8
|
+
export declare function summarizeChange(change: RecordChange, decision: ChangeDecision | null, ownedFields?: readonly string[], { phase }?: {
|
|
9
|
+
phase?: DisappearedPhase;
|
|
10
|
+
}): string;
|
|
11
|
+
export declare function planRecordOverlay(input: PlanInput): Promise<OverlayPlan>;
|
|
12
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/record-overlay/plan.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,cAAc,EAEd,gBAAgB,EAChB,YAAY,EACZ,WAAW,EAEX,SAAS,EACT,YAAY,EAEb,MAAM,YAAY,CAAC;AAepB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,YAAY,GAAG,SAAS,GACjC,gBAAgB,CAKlB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,WAAW,GAAE,SAAS,MAAM,EAAO,EACnC,EAAE,KAAY,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAAO,GAClD,MAAM,CAqBR;AAoBD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAmK9E"}
|