@superbee/core 0.2.0-pre.4 → 0.2.0-pre.40
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 +1209 -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 +35 -13
- package/dist/document-mutation.d.ts.map +1 -1
- package/dist/document-mutation.js +124 -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/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 +18 -0
- package/dist/hosted-transport/index.d.ts.map +1 -0
- package/dist/hosted-transport/index.js +18 -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 +40 -0
- package/dist/source-engine/driver.d.ts.map +1 -0
- package/dist/source-engine/driver.js +392 -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 +33 -0
- package/dist/source-engine/index.d.ts.map +1 -0
- package/dist/source-engine/index.js +26 -0
- package/dist/source-engine/index.js.map +1 -0
- package/dist/source-engine/machine-state.d.ts +74 -0
- package/dist/source-engine/machine-state.d.ts.map +1 -0
- package/dist/source-engine/machine-state.js +48 -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 +270 -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/types.d.ts +292 -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,15 @@
|
|
|
1
|
+
import { InvalidInputError } from "./errors.js";
|
|
2
|
+
import type { ValidationWarning } from "./content-type.js";
|
|
3
|
+
import type { ConceptId } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Typed strict-kind rejection for trusted consumers to translate at their own boundary. Its own
|
|
6
|
+
* module so field actions can refuse with it without importing the mutation service.
|
|
7
|
+
*/
|
|
8
|
+
export declare class KindConformanceError extends InvalidInputError {
|
|
9
|
+
readonly id: ConceptId;
|
|
10
|
+
readonly governs: string;
|
|
11
|
+
readonly violations: ValidationWarning[];
|
|
12
|
+
readonly okfVersion?: "0.1" | "0.2";
|
|
13
|
+
constructor(id: ConceptId, governs: string, violations: ValidationWarning[], okfVersion?: "0.1" | "0.2");
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=kind-conformance-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind-conformance-error.d.ts","sourceRoot":"","sources":["../src/kind-conformance-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;gBAGlC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,iBAAiB,EAAE,EAC/B,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK;CAS7B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { InvalidInputError } from "./errors.js";
|
|
2
|
+
/**
|
|
3
|
+
* Typed strict-kind rejection for trusted consumers to translate at their own boundary. Its own
|
|
4
|
+
* module so field actions can refuse with it without importing the mutation service.
|
|
5
|
+
*/
|
|
6
|
+
export class KindConformanceError extends InvalidInputError {
|
|
7
|
+
id;
|
|
8
|
+
governs;
|
|
9
|
+
violations;
|
|
10
|
+
okfVersion;
|
|
11
|
+
constructor(id, governs, violations, okfVersion) {
|
|
12
|
+
super(`'${id}' does not satisfy the '${governs}' kind: ${violations.map((warning) => warning.message).join("; ")}`);
|
|
13
|
+
this.name = "KindConformanceError";
|
|
14
|
+
this.id = id;
|
|
15
|
+
this.governs = governs;
|
|
16
|
+
this.violations = violations;
|
|
17
|
+
this.okfVersion = okfVersion;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=kind-conformance-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind-conformance-error.js","sourceRoot":"","sources":["../src/kind-conformance-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,iBAAiB;IAChD,EAAE,CAAY;IACd,OAAO,CAAS;IAChB,UAAU,CAAsB;IAChC,UAAU,CAAiB;IAEpC,YACE,EAAa,EACb,OAAe,EACf,UAA+B,EAC/B,UAA0B;QAE1B,KAAK,CAAC,IAAI,EAAE,2BAA2B,OAAO,WAAW,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpH,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type KindRegistry } from "./kinds.js";
|
|
2
|
+
import type { OkfDocument } from "./types.js";
|
|
3
|
+
/** All records are grouped by actual type; path prefixes never infer a Kind or hide nested records. */
|
|
4
|
+
export declare function kindCoverage(registry: KindRegistry, documents: readonly OkfDocument[], options: {
|
|
5
|
+
now: Date;
|
|
6
|
+
okfVersion?: string;
|
|
7
|
+
kind?: string;
|
|
8
|
+
}): {
|
|
9
|
+
now: string;
|
|
10
|
+
documents: number;
|
|
11
|
+
undeclared_kinds: string[];
|
|
12
|
+
kinds: {
|
|
13
|
+
governs: string;
|
|
14
|
+
records: number;
|
|
15
|
+
coverage: {
|
|
16
|
+
fields: {
|
|
17
|
+
present: number;
|
|
18
|
+
filled: number;
|
|
19
|
+
sentinel: number;
|
|
20
|
+
empty: number;
|
|
21
|
+
rate: number | null;
|
|
22
|
+
field: string;
|
|
23
|
+
required: boolean;
|
|
24
|
+
}[];
|
|
25
|
+
body_prose: {
|
|
26
|
+
filled: number;
|
|
27
|
+
rate: number | null;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
drift: {
|
|
31
|
+
undeclared: {
|
|
32
|
+
key: string;
|
|
33
|
+
records: number;
|
|
34
|
+
rate: number | null;
|
|
35
|
+
examples: string[];
|
|
36
|
+
examples_total: number;
|
|
37
|
+
}[];
|
|
38
|
+
declared_unused: string[];
|
|
39
|
+
envelope: {
|
|
40
|
+
key: string;
|
|
41
|
+
records: number;
|
|
42
|
+
}[];
|
|
43
|
+
};
|
|
44
|
+
links: {
|
|
45
|
+
with_links: number;
|
|
46
|
+
typed: {
|
|
47
|
+
relation: string;
|
|
48
|
+
target_kind: string | null;
|
|
49
|
+
target_matches: boolean | null;
|
|
50
|
+
records: number;
|
|
51
|
+
links: number;
|
|
52
|
+
rate: number | null;
|
|
53
|
+
}[];
|
|
54
|
+
untyped_citations: number;
|
|
55
|
+
declared_never_used: string[];
|
|
56
|
+
dangling: number;
|
|
57
|
+
dangling_examples: string[];
|
|
58
|
+
no_inbound: number;
|
|
59
|
+
};
|
|
60
|
+
freshness: {
|
|
61
|
+
clock: string;
|
|
62
|
+
horizon: string | null;
|
|
63
|
+
horizon_ms: number | null;
|
|
64
|
+
missing: number;
|
|
65
|
+
invalid: number;
|
|
66
|
+
buckets: {
|
|
67
|
+
future: number;
|
|
68
|
+
"0-7d": number;
|
|
69
|
+
"8-30d": number;
|
|
70
|
+
"31-90d": number;
|
|
71
|
+
"91-180d": number;
|
|
72
|
+
"181-365d": number;
|
|
73
|
+
">365d": number;
|
|
74
|
+
};
|
|
75
|
+
older_than_horizon: number | null;
|
|
76
|
+
};
|
|
77
|
+
sources: {
|
|
78
|
+
zero: number;
|
|
79
|
+
total: number;
|
|
80
|
+
invalid_entries: number;
|
|
81
|
+
non_url_resources: number;
|
|
82
|
+
per_record: {
|
|
83
|
+
"0": number;
|
|
84
|
+
"1": number;
|
|
85
|
+
"2": number;
|
|
86
|
+
"3": number;
|
|
87
|
+
"4": number;
|
|
88
|
+
"5+": number;
|
|
89
|
+
};
|
|
90
|
+
distinct_domains: number;
|
|
91
|
+
domains_shown: number;
|
|
92
|
+
top_domains: {
|
|
93
|
+
domain: string;
|
|
94
|
+
sources: number;
|
|
95
|
+
}[];
|
|
96
|
+
};
|
|
97
|
+
}[];
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=kind-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind-coverage.d.ts","sourceRoot":"","sources":["../src/kind-coverage.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+G,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAI5J,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA4F9C,uGAAuG;AACvG,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,WAAW,EAAE,EAAE,OAAO,EAAE;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CjJ"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/** Read-only measurements over canonical documents and the already-loaded Kind registry. */
|
|
2
|
+
import { isStandardDocumentSetField } from "./document-field-actions.js";
|
|
3
|
+
import { freshnessHorizonMs, projectKindForAuthoring, readKindField, resolveKindFieldCoordinate } from "./kinds.js";
|
|
4
|
+
import { extractMarkdownLinks, parseLinksFromDoc } from "./links.js";
|
|
5
|
+
import { isManagedDocumentMetadataField } from "./managed-document-metadata.js";
|
|
6
|
+
import { parseTimestamp } from "./freshness.js";
|
|
7
|
+
const SENTINELS = new Set(["unknown", "n/a", "na", "none", "tbd", "null", "-", "?"]);
|
|
8
|
+
const EXAMPLES = 3;
|
|
9
|
+
const DOMAIN_LIMIT = 15;
|
|
10
|
+
const DAY = 86400000;
|
|
11
|
+
const compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;
|
|
12
|
+
const ratio = (n, total) => total ? Math.round(n / total * 10000) / 10000 : null;
|
|
13
|
+
const empty = (value) => value == null || (typeof value === "string" && value.trim() === "") ||
|
|
14
|
+
(Array.isArray(value) ? value.length === 0 : typeof value === "object" && Object.keys(value).length === 0);
|
|
15
|
+
const sentinel = (value) => typeof value === "string" && SENTINELS.has(value.trim().toLowerCase());
|
|
16
|
+
const filled = (value) => !empty(value) && !sentinel(value);
|
|
17
|
+
const envelope = (key) => isManagedDocumentMetadataField(key) || isStandardDocumentSetField(key, "0.2") || key === "sources" || key === "tags";
|
|
18
|
+
function bodyProse(body) {
|
|
19
|
+
// Lossless line measurement, not Markdown rendering: every ATX heading is ignored;
|
|
20
|
+
// a Related heading excludes its descendants until the next same/higher-level heading.
|
|
21
|
+
let relatedLevel;
|
|
22
|
+
for (const line of body.split("\n")) {
|
|
23
|
+
const text = line.trim();
|
|
24
|
+
const heading = /^(#{1,6})[ \t]+(.+?)\s*#*\s*$/.exec(text);
|
|
25
|
+
if (heading) {
|
|
26
|
+
const level = heading[1].length;
|
|
27
|
+
if (relatedLevel !== undefined && level <= relatedLevel)
|
|
28
|
+
relatedLevel = undefined;
|
|
29
|
+
if (heading[2].trim().toLowerCase() === "related" && relatedLevel === undefined)
|
|
30
|
+
relatedLevel = level;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (relatedLevel !== undefined)
|
|
34
|
+
continue;
|
|
35
|
+
const prose = text.replace(/^[-*] +/, "");
|
|
36
|
+
if (!prose)
|
|
37
|
+
continue;
|
|
38
|
+
const links = extractMarkdownLinks(prose);
|
|
39
|
+
if (!(links.length === 1 && prose === `[${links[0].text}](${links[0].href})`))
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
function fieldStats(docs, value) {
|
|
45
|
+
let present = 0, sentinels = 0, used = 0;
|
|
46
|
+
for (const doc of docs) {
|
|
47
|
+
const v = value(doc);
|
|
48
|
+
if (v !== undefined)
|
|
49
|
+
used++;
|
|
50
|
+
if (filled(v))
|
|
51
|
+
present++;
|
|
52
|
+
else if (sentinel(v))
|
|
53
|
+
sentinels++;
|
|
54
|
+
}
|
|
55
|
+
return { present: used, filled: present, sentinel: sentinels, empty: docs.length - present - sentinels, rate: ratio(present, docs.length) };
|
|
56
|
+
}
|
|
57
|
+
function checkedOn(kind, docs, now) {
|
|
58
|
+
const buckets = { future: 0, "0-7d": 0, "8-30d": 0, "31-90d": 0, "91-180d": 0, "181-365d": 0, ">365d": 0 };
|
|
59
|
+
let missing = 0, invalid = 0, older = 0;
|
|
60
|
+
const horizon = freshnessHorizonMs(kind);
|
|
61
|
+
for (const doc of docs) {
|
|
62
|
+
const value = doc.frontmatter.checked_on;
|
|
63
|
+
if (!filled(value)) {
|
|
64
|
+
missing++;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
// checked_on is domain date metadata, not the edition's meaningful-change clock.
|
|
68
|
+
const ms = typeof value === "string" ? parseTimestamp(/^\d{4}-\d{2}-\d{2}$/.test(value) ? `${value}T00:00:00Z` : value, "0.2") : null;
|
|
69
|
+
if (ms === null) {
|
|
70
|
+
invalid++;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const ageMs = now.getTime() - ms;
|
|
74
|
+
const days = Math.floor(ageMs / DAY);
|
|
75
|
+
const bucket = days < 0 ? "future" : days <= 7 ? "0-7d" : days <= 30 ? "8-30d" : days <= 90 ? "31-90d" : days <= 180 ? "91-180d" : days <= 365 ? "181-365d" : ">365d";
|
|
76
|
+
buckets[bucket]++;
|
|
77
|
+
if (horizon !== undefined && ageMs > horizon)
|
|
78
|
+
older++;
|
|
79
|
+
}
|
|
80
|
+
return { clock: "checked_on", horizon: kind.freshnessHorizon ?? null, horizon_ms: horizon ?? null, missing, invalid, buckets, older_than_horizon: horizon === undefined ? null : older };
|
|
81
|
+
}
|
|
82
|
+
function sourceStats(docs) {
|
|
83
|
+
const domains = new Map();
|
|
84
|
+
const distribution = { "0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5+": 0 };
|
|
85
|
+
let total = 0, zero = 0, invalid = 0, nonUrl = 0;
|
|
86
|
+
for (const doc of docs) {
|
|
87
|
+
const raw = doc.frontmatter.sources;
|
|
88
|
+
const list = Array.isArray(raw) ? raw : raw == null ? [] : [raw];
|
|
89
|
+
let count = 0;
|
|
90
|
+
for (const item of list) {
|
|
91
|
+
const resource = typeof item === "string" ? item : item && typeof item === "object" && !Array.isArray(item) ? item.resource : undefined;
|
|
92
|
+
if (typeof resource !== "string" || !filled(resource)) {
|
|
93
|
+
invalid++;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
count++;
|
|
97
|
+
try {
|
|
98
|
+
const domain = new URL(resource).hostname.toLowerCase().replace(/^www\./, "");
|
|
99
|
+
if (!domain) {
|
|
100
|
+
nonUrl++;
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
domains.set(domain, (domains.get(domain) ?? 0) + 1);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
nonUrl++;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (!count)
|
|
110
|
+
zero++;
|
|
111
|
+
total += count;
|
|
112
|
+
distribution[count >= 5 ? "5+" : String(count)]++;
|
|
113
|
+
}
|
|
114
|
+
const ordered = [...domains].sort((a, b) => b[1] - a[1] || compare(a[0], b[0]));
|
|
115
|
+
return { zero, total, invalid_entries: invalid, non_url_resources: nonUrl, per_record: distribution, distinct_domains: domains.size, domains_shown: Math.min(domains.size, DOMAIN_LIMIT), top_domains: ordered.slice(0, DOMAIN_LIMIT).map(([domain, sources]) => ({ domain, sources })) };
|
|
116
|
+
}
|
|
117
|
+
/** All records are grouped by actual type; path prefixes never infer a Kind or hide nested records. */
|
|
118
|
+
export function kindCoverage(registry, documents, options) {
|
|
119
|
+
if (!Number.isFinite(options.now.getTime()))
|
|
120
|
+
throw new TypeError("Coverage now must be a valid date");
|
|
121
|
+
const docs = [...documents].sort((a, b) => compare(a.id, b.id));
|
|
122
|
+
const index = new Map(docs.map((doc) => [doc.id, doc]));
|
|
123
|
+
const edges = new Map(docs.map((doc) => [doc.id, parseLinksFromDoc(doc)]));
|
|
124
|
+
const inbound = new Set([...edges.values()].flat().map((link) => link.to));
|
|
125
|
+
const groups = new Map();
|
|
126
|
+
for (const doc of docs) {
|
|
127
|
+
const type = doc.frontmatter.type;
|
|
128
|
+
const group = groups.get(type) ?? [];
|
|
129
|
+
group.push(doc);
|
|
130
|
+
groups.set(type, group);
|
|
131
|
+
}
|
|
132
|
+
const kinds = [...registry.kinds.values()].filter((kind) => options.kind === undefined || kind.governs === options.kind).map((kind) => {
|
|
133
|
+
const records = groups.get(kind.governs) ?? [];
|
|
134
|
+
const authoring = projectKindForAuthoring(options.okfVersion, kind);
|
|
135
|
+
const fields = [...new Set([...authoring.fields.required, ...authoring.fields.optional])].sort(compare);
|
|
136
|
+
const stats = fields.map((field) => ({ field, required: authoring.fields.required.includes(field), ...fieldStats(records, (doc) => readKindField(options.okfVersion, kind, doc.frontmatter, field)) }));
|
|
137
|
+
const declaredStorage = new Set(fields.map((field) => resolveKindFieldCoordinate(options.okfVersion, kind, field)?.storageField ?? field));
|
|
138
|
+
const undeclared = new Map(), envelopes = new Map();
|
|
139
|
+
for (const doc of records)
|
|
140
|
+
for (const key of Object.keys(doc.frontmatter)) {
|
|
141
|
+
if (envelope(key)) {
|
|
142
|
+
envelopes.set(key, (envelopes.get(key) ?? 0) + 1);
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (!declaredStorage.has(key)) {
|
|
146
|
+
const ids = undeclared.get(key) ?? [];
|
|
147
|
+
ids.push(doc.id);
|
|
148
|
+
undeclared.set(key, ids);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const relations = new Map();
|
|
152
|
+
let citations = 0, dangling = 0, withLinks = 0;
|
|
153
|
+
const danglingExamples = [];
|
|
154
|
+
for (const doc of records) {
|
|
155
|
+
const links = edges.get(doc.id);
|
|
156
|
+
if (links.length)
|
|
157
|
+
withLinks++;
|
|
158
|
+
for (const link of links) {
|
|
159
|
+
const target = index.get(link.to);
|
|
160
|
+
if (!target) {
|
|
161
|
+
dangling++;
|
|
162
|
+
if (danglingExamples.length < EXAMPLES)
|
|
163
|
+
danglingExamples.push(doc.id);
|
|
164
|
+
}
|
|
165
|
+
if (!Object.hasOwn(kind.links ?? {}, link.text)) {
|
|
166
|
+
citations++;
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const targetKind = target?.frontmatter.type ?? null;
|
|
170
|
+
const key = JSON.stringify([link.text, targetKind]);
|
|
171
|
+
const row = relations.get(key) ?? { relation: link.text, target_kind: targetKind, target_matches: targetKind === null ? null : targetKind === kind.links[link.text], records: new Set(), links: 0 };
|
|
172
|
+
row.records.add(doc.id);
|
|
173
|
+
row.links++;
|
|
174
|
+
relations.set(key, row);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const used = new Set([...relations.values()].map((row) => row.relation));
|
|
178
|
+
return { governs: kind.governs, records: records.length,
|
|
179
|
+
coverage: { fields: stats, body_prose: { filled: records.filter((doc) => bodyProse(doc.body)).length, rate: ratio(records.filter((doc) => bodyProse(doc.body)).length, records.length) } },
|
|
180
|
+
drift: { undeclared: [...undeclared].sort(([a], [b]) => compare(a, b)).map(([key, ids]) => ({ key, records: ids.length, rate: ratio(ids.length, records.length), examples: ids.slice(0, EXAMPLES), examples_total: ids.length })), declared_unused: stats.filter((row) => row.present === 0).map((row) => row.field), envelope: [...envelopes].sort(([a], [b]) => compare(a, b)).map(([key, records]) => ({ key, records })) },
|
|
181
|
+
links: { with_links: withLinks, typed: [...relations.values()].sort((a, b) => compare(a.relation, b.relation) || compare(a.target_kind ?? "", b.target_kind ?? "")).map((row) => ({ relation: row.relation, target_kind: row.target_kind, target_matches: row.target_matches, records: row.records.size, links: row.links, rate: ratio(row.records.size, records.length) })), untyped_citations: citations, declared_never_used: Object.keys(kind.links ?? {}).filter((relation) => !used.has(relation)).sort(compare), dangling, dangling_examples: danglingExamples, no_inbound: records.filter((doc) => !inbound.has(doc.id)).length },
|
|
182
|
+
freshness: checkedOn(kind, records, options.now), sources: sourceStats(records) };
|
|
183
|
+
});
|
|
184
|
+
return { now: options.now.toISOString(), documents: docs.length, undeclared_kinds: [...groups.keys()].filter((type) => !registry.kinds.has(type)).sort(compare), kinds };
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=kind-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind-coverage.js","sourceRoot":"","sources":["../src/kind-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Explicit-registry declaration lifecycle policy. Reads describe usage; transitions refuse only
|
|
2
|
+
* newly authored usage. Import-like writes with an empty registry retain their existing posture. */
|
|
3
|
+
import type { KindConvention, KindRegistry } from "./kinds.js";
|
|
4
|
+
import type { OkfDocument } from "./types.js";
|
|
5
|
+
import type { ValidationWarning } from "./validation.js";
|
|
6
|
+
export interface KindDeprecation {
|
|
7
|
+
fields: string[];
|
|
8
|
+
values: Record<string, string[]>;
|
|
9
|
+
links: string[];
|
|
10
|
+
/** An invalid recognized policy stays visible and refuses admitted authoring, never skips its Kind. */
|
|
11
|
+
problems?: ValidationWarning[];
|
|
12
|
+
/** Preserve invalid author bytes through convention serialization rather than silently repairing. */
|
|
13
|
+
raw?: unknown;
|
|
14
|
+
}
|
|
15
|
+
export declare function parseKindDeprecation(raw: unknown, kind: KindConvention, reserved: readonly string[], claimFields: readonly string[]): KindDeprecation;
|
|
16
|
+
/** Eligibility that needs the whole explicitly admitted registry, without foreign reads. */
|
|
17
|
+
export declare function kindDeprecationProblems(kind: KindConvention, registry?: KindRegistry): ValidationWarning[];
|
|
18
|
+
export interface DeprecatedUsage {
|
|
19
|
+
code: "KIND_DEPRECATED_FIELD" | "KIND_DEPRECATED_VALUE" | "KIND_DEPRECATED_LINK";
|
|
20
|
+
field: string;
|
|
21
|
+
/** Stable occurrence identity; qualified identities include the alias and remain distinct from local edges. */
|
|
22
|
+
identity: string;
|
|
23
|
+
count: number;
|
|
24
|
+
/** The matched enum member, when this row describes value usage. */
|
|
25
|
+
value?: string;
|
|
26
|
+
unknown?: true;
|
|
27
|
+
}
|
|
28
|
+
/** Stored deprecated usage is information, deliberately separate from ordinary strict conformance. */
|
|
29
|
+
export declare function inspectKindDeprecatedUsage(doc: OkfDocument, kind: KindConvention): DeprecatedUsage[];
|
|
30
|
+
/** One transition authority shared by every admitted mutation posture and each fresh CAS head. */
|
|
31
|
+
export declare function kindDeprecationTransition(existing: OkfDocument | undefined, candidate: OkfDocument, registry: KindRegistry): ValidationWarning[];
|
|
32
|
+
//# sourceMappingURL=kind-deprecation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind-deprecation.d.ts","sourceRoot":"","sources":["../src/kind-deprecation.ts"],"names":[],"mappings":"AAAA;oGACoG;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAOzD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uGAAuG;IACvG,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,qGAAqG;IACrG,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAMD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CA6CrJ;AAED,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,iBAAiB,EAAE,CAQ1G;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,uBAAuB,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,+GAA+G;IAC/G,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,sGAAsG;AACtG,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,eAAe,EAAE,CAwBpG;AAED,kGAAkG;AAClG,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,iBAAiB,EAAE,CAahJ"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { okfValuesEqual, isOkfRecord } from "./okf-authored-values.js";
|
|
2
|
+
import { isOkfStandardField } from "./okf-standard-fields.js";
|
|
3
|
+
import { isManagedDocumentMetadataField } from "./managed-document-metadata.js";
|
|
4
|
+
import { parseLinksFromDoc } from "./links.js";
|
|
5
|
+
import { parseQualifiedLinks } from "./qualified-links.js";
|
|
6
|
+
const problem = (field, message) => ({
|
|
7
|
+
code: "KIND_DEPRECATION_INVALID", field, message: `${field}: ${message}`, severity: "warning",
|
|
8
|
+
});
|
|
9
|
+
export function parseKindDeprecation(raw, kind, reserved, claimFields) {
|
|
10
|
+
const result = { fields: [], values: {}, links: [] };
|
|
11
|
+
const problems = [];
|
|
12
|
+
const fail = (field, message) => { problems.push(problem(field, message)); };
|
|
13
|
+
const names = (value, path) => {
|
|
14
|
+
if (!Array.isArray(value) || value.some(v => typeof v !== "string" || !v.trim() || v !== v.trim())) {
|
|
15
|
+
fail(path, "expected a list of nonempty exact names");
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
return [...new Set(value)];
|
|
19
|
+
};
|
|
20
|
+
const protectedField = (field) => reserved.includes(field) || isOkfStandardField(field)
|
|
21
|
+
|| isManagedDocumentMetadataField(field) || claimFields.includes(field);
|
|
22
|
+
if (!isOkfRecord(raw))
|
|
23
|
+
fail("deprecated", "expected a map of fields, values and links");
|
|
24
|
+
else {
|
|
25
|
+
for (const key of Object.keys(raw))
|
|
26
|
+
if (!["fields", "values", "links"].includes(key))
|
|
27
|
+
fail(`deprecated.${key}`, "unknown policy coordinate");
|
|
28
|
+
if (Object.hasOwn(raw, "fields"))
|
|
29
|
+
result.fields = names(raw.fields, "deprecated.fields");
|
|
30
|
+
for (const field of result.fields) {
|
|
31
|
+
if (!kind.fields.optional.includes(field) || kind.fields.required.includes(field) || protectedField(field)) {
|
|
32
|
+
fail(`deprecated.fields.${field}`, "only an optional, nonstandard, nonreserved, nonclaim field can be deprecated");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (Object.hasOwn(raw, "values")) {
|
|
36
|
+
if (!isOkfRecord(raw.values))
|
|
37
|
+
fail("deprecated.values", "expected a field-to-values map");
|
|
38
|
+
else
|
|
39
|
+
for (const [field, value] of Object.entries(raw.values)) {
|
|
40
|
+
const path = `deprecated.values.${field}`;
|
|
41
|
+
// Reuse the Kind enum's scalar-to-string membership vocabulary; structured values cannot name a member.
|
|
42
|
+
const values = Array.isArray(value) && value.every(v => ["string", "number", "boolean"].includes(typeof v))
|
|
43
|
+
? [...new Set(value.map(String))] : undefined;
|
|
44
|
+
if (!values || values.some(v => !v.trim())) {
|
|
45
|
+
fail(path, "expected a list of enum members");
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
Object.defineProperty(result.values, field, { value: values, enumerable: true, writable: true, configurable: true });
|
|
49
|
+
const allowed = Object.hasOwn(kind.fields.values, field) ? kind.fields.values[field] : undefined;
|
|
50
|
+
if (protectedField(field) || ![...kind.fields.required, ...kind.fields.optional].includes(field)
|
|
51
|
+
|| !allowed || values.some(v => !allowed.includes(v)) || kind.fields.types?.[field] === "https-url-list") {
|
|
52
|
+
fail(path, "expected members of a declared, nonstandard, nonclaim vocabulary");
|
|
53
|
+
}
|
|
54
|
+
const terminal = Object.hasOwn(kind.fields.terminal, field) ? kind.fields.terminal[field] : [];
|
|
55
|
+
if (values.some(v => terminal.includes(v)))
|
|
56
|
+
fail(path, "terminal members require a separate migration");
|
|
57
|
+
if (kind.fields.required.includes(field) && allowed && !allowed.some(v => !values.includes(v)))
|
|
58
|
+
fail(path, "a required field must retain an active member");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (Object.hasOwn(raw, "links"))
|
|
62
|
+
result.links = names(raw.links, "deprecated.links");
|
|
63
|
+
for (const label of result.links)
|
|
64
|
+
if (!kind.links || !Object.hasOwn(kind.links, label))
|
|
65
|
+
fail(`deprecated.links.${label}`, "expected an existing outbound label");
|
|
66
|
+
}
|
|
67
|
+
if (problems.length) {
|
|
68
|
+
result.problems = problems;
|
|
69
|
+
result.raw = structuredClone(raw);
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
/** Eligibility that needs the whole explicitly admitted registry, without foreign reads. */
|
|
74
|
+
export function kindDeprecationProblems(kind, registry) {
|
|
75
|
+
const problems = [...(kind.deprecated?.problems ?? [])];
|
|
76
|
+
for (const label of kind.deprecated?.links ?? []) {
|
|
77
|
+
if ([...(registry?.kinds.values() ?? [kind])].some(k => k.expectsInbound && Object.hasOwn(k.expectsInbound, label))) {
|
|
78
|
+
problems.push(problem(`deprecated.links.${label}`, "the admitted registry still declares an inbound expectation for this label"));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return problems;
|
|
82
|
+
}
|
|
83
|
+
/** Stored deprecated usage is information, deliberately separate from ordinary strict conformance. */
|
|
84
|
+
export function inspectKindDeprecatedUsage(doc, kind) {
|
|
85
|
+
if (!kind.deprecated)
|
|
86
|
+
return [];
|
|
87
|
+
const rows = new Map();
|
|
88
|
+
const add = (code, field, identity, unknown = false) => {
|
|
89
|
+
const key = JSON.stringify([code, field, ...identity]);
|
|
90
|
+
const previous = rows.get(key);
|
|
91
|
+
if (previous)
|
|
92
|
+
previous.count += 1;
|
|
93
|
+
else
|
|
94
|
+
rows.set(key, { code, field, identity: key, count: 1, ...(code === "KIND_DEPRECATED_VALUE" ? { value: String(identity[0]) } : {}), ...(unknown ? { unknown: true } : {}) });
|
|
95
|
+
};
|
|
96
|
+
for (const field of kind.deprecated.fields)
|
|
97
|
+
if (Object.hasOwn(doc.frontmatter, field))
|
|
98
|
+
add("KIND_DEPRECATED_FIELD", field, ["field"]);
|
|
99
|
+
for (const [field, values] of Object.entries(kind.deprecated.values)) {
|
|
100
|
+
if (!Object.hasOwn(doc.frontmatter, field))
|
|
101
|
+
continue;
|
|
102
|
+
const raw = doc.frontmatter[field];
|
|
103
|
+
if (raw === null || raw === undefined)
|
|
104
|
+
continue;
|
|
105
|
+
for (const value of Array.isArray(raw) ? raw : [raw])
|
|
106
|
+
if (values.includes(String(value)))
|
|
107
|
+
add("KIND_DEPRECATED_VALUE", field, [String(value)]);
|
|
108
|
+
}
|
|
109
|
+
if (kind.deprecated.links.length) {
|
|
110
|
+
for (const edge of parseLinksFromDoc(doc))
|
|
111
|
+
if (kind.deprecated.links.includes(edge.text))
|
|
112
|
+
add("KIND_DEPRECATED_LINK", edge.text, ["local", edge.to, edge.text]);
|
|
113
|
+
for (const edge of parseQualifiedLinks(doc))
|
|
114
|
+
if (kind.deprecated.links.includes(edge.text)) {
|
|
115
|
+
if (edge.ref)
|
|
116
|
+
add("KIND_DEPRECATED_LINK", edge.text, ["qualified", edge.ref.alias, edge.ref.id, edge.text]);
|
|
117
|
+
else
|
|
118
|
+
add("KIND_DEPRECATED_LINK", edge.text, ["malformed-qualified", edge.href, edge.text], true);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return [...rows.values()].sort((a, b) => a.identity < b.identity ? -1 : a.identity > b.identity ? 1 : 0);
|
|
122
|
+
}
|
|
123
|
+
/** One transition authority shared by every admitted mutation posture and each fresh CAS head. */
|
|
124
|
+
export function kindDeprecationTransition(existing, candidate, registry) {
|
|
125
|
+
const kind = registry.kinds.get(String(candidate.frontmatter.type));
|
|
126
|
+
if (!kind?.deprecated)
|
|
127
|
+
return [];
|
|
128
|
+
const invalid = kindDeprecationProblems(kind, registry);
|
|
129
|
+
if (invalid.length)
|
|
130
|
+
return invalid;
|
|
131
|
+
const previous = existing?.id === candidate.id && existing.frontmatter.type === candidate.frontmatter.type ? existing : undefined;
|
|
132
|
+
const oldRows = new Map((previous ? inspectKindDeprecatedUsage(previous, kind) : []).map(row => [row.identity, row]));
|
|
133
|
+
return inspectKindDeprecatedUsage(candidate, kind).filter(row => {
|
|
134
|
+
if (row.code === "KIND_DEPRECATED_FIELD")
|
|
135
|
+
return !previous || !Object.hasOwn(previous.frontmatter, row.field)
|
|
136
|
+
|| !okfValuesEqual(previous.frontmatter[row.field], candidate.frontmatter[row.field]);
|
|
137
|
+
return row.count > (oldRows.get(row.identity)?.count ?? 0);
|
|
138
|
+
}).map(row => ({ code: row.code, field: row.field,
|
|
139
|
+
message: `'${kind.governs}' declaration '${row.field}' is deprecated; preserve unchanged existing usage or remove it, but do not introduce or change deprecated usage (see ${kind.id}).`, severity: "warning" }));
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=kind-deprecation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind-deprecation.js","sourceRoot":"","sources":["../src/kind-deprecation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAY3D,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,OAAe,EAAqB,EAAE,CAAC,CAAC;IACtE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,KAAK,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS;CAC9F,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAAC,GAAY,EAAE,IAAoB,EAAE,QAA2B,EAAE,WAA8B;IAClI,MAAM,MAAM,GAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,OAAe,EAAQ,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,IAAY,EAAY,EAAE;QACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnG,IAAI,CAAC,IAAI,EAAE,yCAAyC,CAAC,CAAC;YAAC,OAAO,EAAE,CAAC;QACnE,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAiB,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC;WACnG,8BAA8B,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;QAAE,IAAI,CAAC,YAAY,EAAE,4CAA4C,CAAC,CAAC;SACnF,CAAC;QACJ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,cAAc,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAC7I,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC;YAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACzF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3G,IAAI,CAAC,qBAAqB,KAAK,EAAE,EAAE,8EAA8E,CAAC,CAAC;YACrH,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;;gBACrF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7D,MAAM,IAAI,GAAG,qBAAqB,KAAK,EAAE,CAAC;oBAC1C,wGAAwG;oBACxG,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;wBACzG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAChD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;wBAAC,IAAI,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;wBAAC,SAAS;oBAAC,CAAC;oBACxG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjG,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;2BAC3F,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,gBAAgB,EAAE,CAAC;wBAC3G,IAAI,CAAC,IAAI,EAAE,kEAAkE,CAAC,CAAC;oBACjF,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAAE,IAAI,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;oBACxG,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAAE,IAAI,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;gBAC9J,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACrF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;gBAAE,IAAI,CAAC,oBAAoB,KAAK,EAAE,EAAE,qCAAqC,CAAC,CAAC;IACnK,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAAC,MAAM,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IACvF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,IAAoB,EAAE,QAAuB;IACnF,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACpH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,KAAK,EAAE,EAAE,4EAA4E,CAAC,CAAC,CAAC;QACpI,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAaD,sGAAsG;AACtG,MAAM,UAAU,0BAA0B,CAAC,GAAgB,EAAE,IAAoB;IAC/E,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;IAChD,MAAM,GAAG,GAAG,CAAC,IAA6B,EAAE,KAAa,EAAE,QAAmB,EAAE,OAAO,GAAG,KAAK,EAAQ,EAAE;QACvG,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ;YAAE,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5L,CAAC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC;YAAE,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtI,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC;YAAE,SAAS;QACrD,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAAE,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjJ,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC;YAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChK,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC;YAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3F,IAAI,IAAI,CAAC,GAAG;oBAAE,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;oBACvG,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACnG,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,yBAAyB,CAAC,QAAiC,EAAE,SAAsB,EAAE,QAAsB;IACzH,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,EAAE,UAAU;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IACnC,MAAM,QAAQ,GAAG,QAAQ,EAAE,EAAE,KAAK,SAAS,CAAC,EAAE,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAClI,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACtH,OAAO,0BAA0B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAC9D,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB;YAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC;mBACxG,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK;QAC/C,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,kBAAkB,GAAG,CAAC,KAAK,yHAAyH,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AACtN,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Pure Kind schema editing. The mutation engine supplies the fresh convention. */
|
|
2
|
+
import { type KindFieldType } from "./kinds.js";
|
|
1
3
|
import { InvalidInputError } from "./errors.js";
|
|
2
4
|
import type { OkfDocument } from "./types.js";
|
|
3
5
|
import type { DocumentMutationCandidate } from "./document-mutation.js";
|
|
@@ -9,6 +11,8 @@ export interface KindFieldMutation {
|
|
|
9
11
|
action: "add" | "remove";
|
|
10
12
|
required?: boolean;
|
|
11
13
|
values?: string[];
|
|
14
|
+
/** Declare the field's value type in `fields.types` (add only). Changes the declaration, never instances. */
|
|
15
|
+
type?: KindFieldType;
|
|
12
16
|
okfVersion: "0.1" | "0.2";
|
|
13
17
|
}
|
|
14
18
|
export declare function prepareKindFieldMutation(existing: OkfDocument, input: KindFieldMutation, okfVersion: "0.1" | "0.2"): DocumentMutationCandidate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kind-field-mutation.d.ts","sourceRoot":"","sources":["../src/kind-field-mutation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kind-field-mutation.d.ts","sourceRoot":"","sources":["../src/kind-field-mutation.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,qBAAa,yBAA0B,SAAQ,iBAAiB;CAAG;AACnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6GAA6G;IAC7G,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC;CAC3B;AA+BD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,yBAAyB,CAiI9I"}
|