@elytracms/core 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/clipboard/build.d.ts +77 -0
- package/dist/clipboard/build.js +128 -0
- package/dist/clipboard/build.js.map +1 -0
- package/dist/clipboard/clipboard.d.ts +33 -0
- package/dist/clipboard/clipboard.js +45 -0
- package/dist/clipboard/clipboard.js.map +1 -0
- package/dist/clipboard/fragment.d.ts +112 -0
- package/dist/clipboard/fragment.js +79 -0
- package/dist/clipboard/fragment.js.map +1 -0
- package/dist/clipboard/html.d.ts +26 -0
- package/dist/clipboard/html.js +82 -0
- package/dist/clipboard/html.js.map +1 -0
- package/dist/clipboard/index.d.ts +15 -0
- package/dist/clipboard/index.js +16 -0
- package/dist/clipboard/index.js.map +1 -0
- package/dist/clipboard/references.d.ts +50 -0
- package/dist/clipboard/references.js +0 -0
- package/dist/clipboard/references.js.map +1 -0
- package/dist/clipboard/serialize.d.ts +69 -0
- package/dist/clipboard/serialize.js +130 -0
- package/dist/clipboard/serialize.js.map +1 -0
- package/dist/cms-core/collections.d.ts +82 -0
- package/dist/cms-core/collections.js +187 -0
- package/dist/cms-core/collections.js.map +1 -0
- package/dist/cms-core/documents.d.ts +71 -0
- package/dist/cms-core/documents.js +67 -0
- package/dist/cms-core/documents.js.map +1 -0
- package/dist/cms-core/envelopes.d.ts +80 -0
- package/dist/cms-core/envelopes.js +124 -0
- package/dist/cms-core/envelopes.js.map +1 -0
- package/dist/cms-core/fields.d.ts +220 -0
- package/dist/cms-core/fields.js +250 -0
- package/dist/cms-core/fields.js.map +1 -0
- package/dist/cms-core/fixtures.d.ts +92 -0
- package/dist/cms-core/fixtures.js +357 -0
- package/dist/cms-core/fixtures.js.map +1 -0
- package/dist/cms-core/hierarchy.d.ts +113 -0
- package/dist/cms-core/hierarchy.js +223 -0
- package/dist/cms-core/hierarchy.js.map +1 -0
- package/dist/cms-core/index.d.ts +25 -0
- package/dist/cms-core/index.js +26 -0
- package/dist/cms-core/index.js.map +1 -0
- package/dist/cms-core/infer.d.ts +103 -0
- package/dist/cms-core/infer.js +57 -0
- package/dist/cms-core/infer.js.map +1 -0
- package/dist/cms-core/issues.d.ts +92 -0
- package/dist/cms-core/issues.js +74 -0
- package/dist/cms-core/issues.js.map +1 -0
- package/dist/cms-core/json-schema.d.ts +25 -0
- package/dist/cms-core/json-schema.js +110 -0
- package/dist/cms-core/json-schema.js.map +1 -0
- package/dist/cms-core/localization.d.ts +51 -0
- package/dist/cms-core/localization.js +89 -0
- package/dist/cms-core/localization.js.map +1 -0
- package/dist/cms-core/routes.d.ts +76 -0
- package/dist/cms-core/routes.js +220 -0
- package/dist/cms-core/routes.js.map +1 -0
- package/dist/cms-core/self-type.d.ts +41 -0
- package/dist/cms-core/self-type.js +191 -0
- package/dist/cms-core/self-type.js.map +1 -0
- package/dist/cms-core/url-for-document.d.ts +39 -0
- package/dist/cms-core/url-for-document.js +138 -0
- package/dist/cms-core/url-for-document.js.map +1 -0
- package/dist/cms-core/validate-document.d.ts +121 -0
- package/dist/cms-core/validate-document.js +871 -0
- package/dist/cms-core/validate-document.js.map +1 -0
- package/dist/cms-core/versions.d.ts +75 -0
- package/dist/cms-core/versions.js +97 -0
- package/dist/cms-core/versions.js.map +1 -0
- package/dist/collaboration/approval.d.ts +68 -0
- package/dist/collaboration/approval.js +104 -0
- package/dist/collaboration/approval.js.map +1 -0
- package/dist/collaboration/collaboration.d.ts +49 -0
- package/dist/collaboration/collaboration.js +56 -0
- package/dist/collaboration/collaboration.js.map +1 -0
- package/dist/collaboration/comments.d.ts +72 -0
- package/dist/collaboration/comments.js +118 -0
- package/dist/collaboration/comments.js.map +1 -0
- package/dist/collaboration/core.d.ts +25 -0
- package/dist/collaboration/core.js +26 -0
- package/dist/collaboration/core.js.map +1 -0
- package/dist/collaboration/index.d.ts +14 -0
- package/dist/collaboration/index.js +15 -0
- package/dist/collaboration/index.js.map +1 -0
- package/dist/collaboration/presence.d.ts +62 -0
- package/dist/collaboration/presence.js +85 -0
- package/dist/collaboration/presence.js.map +1 -0
- package/dist/collaboration/publishing.d.ts +60 -0
- package/dist/collaboration/publishing.js +93 -0
- package/dist/collaboration/publishing.js.map +1 -0
- package/dist/collaboration/versions.d.ts +52 -0
- package/dist/collaboration/versions.js +81 -0
- package/dist/collaboration/versions.js.map +1 -0
- package/dist/component-registry/index.d.ts +3 -0
- package/dist/component-registry/index.js +4 -0
- package/dist/component-registry/index.js.map +1 -0
- package/dist/component-registry/issues.d.ts +6 -0
- package/dist/component-registry/issues.js +2 -0
- package/dist/component-registry/issues.js.map +1 -0
- package/dist/component-registry/manifest.d.ts +164 -0
- package/dist/component-registry/manifest.js +129 -0
- package/dist/component-registry/manifest.js.map +1 -0
- package/dist/component-registry/registry.d.ts +33 -0
- package/dist/component-registry/registry.js +90 -0
- package/dist/component-registry/registry.js.map +1 -0
- package/dist/content/__fixtures__/filterable-collections.d.ts +14 -0
- package/dist/content/__fixtures__/filterable-collections.js +15 -0
- package/dist/content/__fixtures__/filterable-collections.js.map +1 -0
- package/dist/content/__fixtures__/sample-accessor-types.d.ts +56 -0
- package/dist/content/__fixtures__/sample-accessor-types.js +5 -0
- package/dist/content/__fixtures__/sample-accessor-types.js.map +1 -0
- package/dist/content/__fixtures__/sample-delivery-types.d.ts +122 -0
- package/dist/content/__fixtures__/sample-delivery-types.js +5 -0
- package/dist/content/__fixtures__/sample-delivery-types.js.map +1 -0
- package/dist/content/assets.d.ts +53 -0
- package/dist/content/assets.js +38 -0
- package/dist/content/assets.js.map +1 -0
- package/dist/content/binding-sources.d.ts +53 -0
- package/dist/content/binding-sources.js +73 -0
- package/dist/content/binding-sources.js.map +1 -0
- package/dist/content/client.d.ts +90 -0
- package/dist/content/client.js +383 -0
- package/dist/content/client.js.map +1 -0
- package/dist/content/codegen.d.ts +54 -0
- package/dist/content/codegen.js +305 -0
- package/dist/content/codegen.js.map +1 -0
- package/dist/content/context.d.ts +38 -0
- package/dist/content/context.js +21 -0
- package/dist/content/context.js.map +1 -0
- package/dist/content/cursor.d.ts +33 -0
- package/dist/content/cursor.js +104 -0
- package/dist/content/cursor.js.map +1 -0
- package/dist/content/index.d.ts +28 -0
- package/dist/content/index.js +29 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/locale.d.ts +30 -0
- package/dist/content/locale.js +26 -0
- package/dist/content/locale.js.map +1 -0
- package/dist/content/perspective.d.ts +29 -0
- package/dist/content/perspective.js +31 -0
- package/dist/content/perspective.js.map +1 -0
- package/dist/content/populate.d.ts +25 -0
- package/dist/content/populate.js +22 -0
- package/dist/content/populate.js.map +1 -0
- package/dist/content/query.d.ts +122 -0
- package/dist/content/query.js +257 -0
- package/dist/content/query.js.map +1 -0
- package/dist/content/raw.d.ts +13 -0
- package/dist/content/raw.js +14 -0
- package/dist/content/raw.js.map +1 -0
- package/dist/content/resolve.d.ts +97 -0
- package/dist/content/resolve.js +261 -0
- package/dist/content/resolve.js.map +1 -0
- package/dist/content/serialize.d.ts +30 -0
- package/dist/content/serialize.js +57 -0
- package/dist/content/serialize.js.map +1 -0
- package/dist/content/tags.d.ts +54 -0
- package/dist/content/tags.js +40 -0
- package/dist/content/tags.js.map +1 -0
- package/dist/data-binding/fixtures.d.ts +20 -0
- package/dist/data-binding/fixtures.js +47 -0
- package/dist/data-binding/fixtures.js.map +1 -0
- package/dist/data-binding/index.d.ts +14 -0
- package/dist/data-binding/index.js +15 -0
- package/dist/data-binding/index.js.map +1 -0
- package/dist/data-binding/issues.d.ts +45 -0
- package/dist/data-binding/issues.js +46 -0
- package/dist/data-binding/issues.js.map +1 -0
- package/dist/data-binding/resolve.d.ts +87 -0
- package/dist/data-binding/resolve.js +204 -0
- package/dist/data-binding/resolve.js.map +1 -0
- package/dist/data-binding/sample.d.ts +21 -0
- package/dist/data-binding/sample.js +23 -0
- package/dist/data-binding/sample.js.map +1 -0
- package/dist/data-binding/sources.d.ts +225 -0
- package/dist/data-binding/sources.js +154 -0
- package/dist/data-binding/sources.js.map +1 -0
- package/dist/data-binding/tokens.d.ts +62 -0
- package/dist/data-binding/tokens.js +150 -0
- package/dist/data-binding/tokens.js.map +1 -0
- package/dist/design-tokens/css.d.ts +34 -0
- package/dist/design-tokens/css.js +51 -0
- package/dist/design-tokens/css.js.map +1 -0
- package/dist/design-tokens/index.d.ts +10 -0
- package/dist/design-tokens/index.js +11 -0
- package/dist/design-tokens/index.js.map +1 -0
- package/dist/design-tokens/style-guide.d.ts +30 -0
- package/dist/design-tokens/style-guide.js +31 -0
- package/dist/design-tokens/style-guide.js.map +1 -0
- package/dist/design-tokens/tokens.d.ts +89 -0
- package/dist/design-tokens/tokens.js +112 -0
- package/dist/design-tokens/tokens.js.map +1 -0
- package/dist/export-sync/builder-source.d.ts +85 -0
- package/dist/export-sync/builder-source.js +124 -0
- package/dist/export-sync/builder-source.js.map +1 -0
- package/dist/export-sync/check.d.ts +61 -0
- package/dist/export-sync/check.js +126 -0
- package/dist/export-sync/check.js.map +1 -0
- package/dist/export-sync/cli.d.ts +89 -0
- package/dist/export-sync/cli.js +323 -0
- package/dist/export-sync/cli.js.map +1 -0
- package/dist/export-sync/core.d.ts +58 -0
- package/dist/export-sync/core.js +41 -0
- package/dist/export-sync/core.js.map +1 -0
- package/dist/export-sync/eject.d.ts +28 -0
- package/dist/export-sync/eject.js +21 -0
- package/dist/export-sync/eject.js.map +1 -0
- package/dist/export-sync/fixtures.d.ts +25 -0
- package/dist/export-sync/fixtures.js +87 -0
- package/dist/export-sync/fixtures.js.map +1 -0
- package/dist/export-sync/generate.d.ts +7 -0
- package/dist/export-sync/generate.js +505 -0
- package/dist/export-sync/generate.js.map +1 -0
- package/dist/export-sync/index.d.ts +37 -0
- package/dist/export-sync/index.js +39 -0
- package/dist/export-sync/index.js.map +1 -0
- package/dist/export-sync/init.d.ts +123 -0
- package/dist/export-sync/init.js +234 -0
- package/dist/export-sync/init.js.map +1 -0
- package/dist/export-sync/manifest-host.d.ts +48 -0
- package/dist/export-sync/manifest-host.js +73 -0
- package/dist/export-sync/manifest-host.js.map +1 -0
- package/dist/export-sync/node.d.ts +20 -0
- package/dist/export-sync/node.js +101 -0
- package/dist/export-sync/node.js.map +1 -0
- package/dist/export-sync/push.d.ts +76 -0
- package/dist/export-sync/push.js +197 -0
- package/dist/export-sync/push.js.map +1 -0
- package/dist/export-sync/registry-sync-client.d.ts +59 -0
- package/dist/export-sync/registry-sync-client.js +97 -0
- package/dist/export-sync/registry-sync-client.js.map +1 -0
- package/dist/export-sync/sync.d.ts +47 -0
- package/dist/export-sync/sync.js +47 -0
- package/dist/export-sync/sync.js.map +1 -0
- package/dist/export-sync/typegen.d.ts +40 -0
- package/dist/export-sync/typegen.js +45 -0
- package/dist/export-sync/typegen.js.map +1 -0
- package/dist/export-sync/validate.d.ts +19 -0
- package/dist/export-sync/validate.js +102 -0
- package/dist/export-sync/validate.js.map +1 -0
- package/dist/export-sync/watch.d.ts +66 -0
- package/dist/export-sync/watch.js +70 -0
- package/dist/export-sync/watch.js.map +1 -0
- package/dist/operations/assets.d.ts +198 -0
- package/dist/operations/assets.js +75 -0
- package/dist/operations/assets.js.map +1 -0
- package/dist/operations/authorization.d.ts +49 -0
- package/dist/operations/authorization.js +128 -0
- package/dist/operations/authorization.js.map +1 -0
- package/dist/operations/changesets.d.ts +160 -0
- package/dist/operations/changesets.js +442 -0
- package/dist/operations/changesets.js.map +1 -0
- package/dist/operations/client.d.ts +49 -0
- package/dist/operations/client.js +57 -0
- package/dist/operations/client.js.map +1 -0
- package/dist/operations/core.d.ts +238 -0
- package/dist/operations/core.js +269 -0
- package/dist/operations/core.js.map +1 -0
- package/dist/operations/documents.d.ts +432 -0
- package/dist/operations/documents.js +344 -0
- package/dist/operations/documents.js.map +1 -0
- package/dist/operations/graph.d.ts +138 -0
- package/dist/operations/graph.js +78 -0
- package/dist/operations/graph.js.map +1 -0
- package/dist/operations/index.d.ts +19 -0
- package/dist/operations/index.js +20 -0
- package/dist/operations/index.js.map +1 -0
- package/dist/operations/members.d.ts +87 -0
- package/dist/operations/members.js +56 -0
- package/dist/operations/members.js.map +1 -0
- package/dist/operations/publishing.d.ts +89 -0
- package/dist/operations/publishing.js +57 -0
- package/dist/operations/publishing.js.map +1 -0
- package/dist/operations/references.d.ts +222 -0
- package/dist/operations/references.js +177 -0
- package/dist/operations/references.js.map +1 -0
- package/dist/operations/schema.d.ts +413 -0
- package/dist/operations/schema.js +138 -0
- package/dist/operations/schema.js.map +1 -0
- package/dist/operations/tokens.d.ts +79 -0
- package/dist/operations/tokens.js +102 -0
- package/dist/operations/tokens.js.map +1 -0
- package/dist/persistence/adapter.d.ts +79 -0
- package/dist/persistence/adapter.js +55 -0
- package/dist/persistence/adapter.js.map +1 -0
- package/dist/persistence/assets.d.ts +120 -0
- package/dist/persistence/assets.js +141 -0
- package/dist/persistence/assets.js.map +1 -0
- package/dist/persistence/backend-validation.d.ts +43 -0
- package/dist/persistence/backend-validation.js +57 -0
- package/dist/persistence/backend-validation.js.map +1 -0
- package/dist/persistence/cli-tokens.d.ts +50 -0
- package/dist/persistence/cli-tokens.js +66 -0
- package/dist/persistence/cli-tokens.js.map +1 -0
- package/dist/persistence/cms.d.ts +148 -0
- package/dist/persistence/cms.js +232 -0
- package/dist/persistence/cms.js.map +1 -0
- package/dist/persistence/contract-scenarios.d.ts +73 -0
- package/dist/persistence/contract-scenarios.js +496 -0
- package/dist/persistence/contract-scenarios.js.map +1 -0
- package/dist/persistence/core.d.ts +96 -0
- package/dist/persistence/core.js +110 -0
- package/dist/persistence/core.js.map +1 -0
- package/dist/persistence/graph.d.ts +61 -0
- package/dist/persistence/graph.js +98 -0
- package/dist/persistence/graph.js.map +1 -0
- package/dist/persistence/index.d.ts +22 -0
- package/dist/persistence/index.js +23 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/members.d.ts +70 -0
- package/dist/persistence/members.js +0 -0
- package/dist/persistence/members.js.map +1 -0
- package/dist/persistence/publishing.d.ts +59 -0
- package/dist/persistence/publishing.js +95 -0
- package/dist/persistence/publishing.js.map +1 -0
- package/dist/persistence/reference-extraction.d.ts +44 -0
- package/dist/persistence/reference-extraction.js +204 -0
- package/dist/persistence/reference-extraction.js.map +1 -0
- package/dist/persistence/reference-indexing.d.ts +68 -0
- package/dist/persistence/reference-indexing.js +112 -0
- package/dist/persistence/reference-indexing.js.map +1 -0
- package/dist/persistence/references.d.ts +257 -0
- package/dist/persistence/references.js +0 -0
- package/dist/persistence/references.js.map +1 -0
- package/dist/persistence/seed.d.ts +55 -0
- package/dist/persistence/seed.js +102 -0
- package/dist/persistence/seed.js.map +1 -0
- package/dist/persistence/self-maintaining-adapter.d.ts +41 -0
- package/dist/persistence/self-maintaining-adapter.js +79 -0
- package/dist/persistence/self-maintaining-adapter.js.map +1 -0
- package/dist/plugins/asset-storage.d.ts +76 -0
- package/dist/plugins/asset-storage.js +104 -0
- package/dist/plugins/asset-storage.js.map +1 -0
- package/dist/plugins/component-package.d.ts +54 -0
- package/dist/plugins/component-package.js +92 -0
- package/dist/plugins/component-package.js.map +1 -0
- package/dist/plugins/data-sources.d.ts +78 -0
- package/dist/plugins/data-sources.js +99 -0
- package/dist/plugins/data-sources.js.map +1 -0
- package/dist/plugins/examples.d.ts +47 -0
- package/dist/plugins/examples.js +205 -0
- package/dist/plugins/examples.js.map +1 -0
- package/dist/plugins/export-targets.d.ts +47 -0
- package/dist/plugins/export-targets.js +78 -0
- package/dist/plugins/export-targets.js.map +1 -0
- package/dist/plugins/field-types.d.ts +86 -0
- package/dist/plugins/field-types.js +93 -0
- package/dist/plugins/field-types.js.map +1 -0
- package/dist/plugins/hooks.d.ts +60 -0
- package/dist/plugins/hooks.js +94 -0
- package/dist/plugins/hooks.js.map +1 -0
- package/dist/plugins/index.d.ts +27 -0
- package/dist/plugins/index.js +28 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/marketplace.d.ts +90 -0
- package/dist/plugins/marketplace.js +110 -0
- package/dist/plugins/marketplace.js.map +1 -0
- package/dist/plugins/plugin.d.ts +107 -0
- package/dist/plugins/plugin.js +122 -0
- package/dist/plugins/plugin.js.map +1 -0
- package/dist/plugins/templates.d.ts +66 -0
- package/dist/plugins/templates.js +74 -0
- package/dist/plugins/templates.js.map +1 -0
- package/dist/project-graph/binding.d.ts +68 -0
- package/dist/project-graph/binding.js +39 -0
- package/dist/project-graph/binding.js.map +1 -0
- package/dist/project-graph/container.d.ts +126 -0
- package/dist/project-graph/container.js +221 -0
- package/dist/project-graph/container.js.map +1 -0
- package/dist/project-graph/edit.d.ts +66 -0
- package/dist/project-graph/edit.js +201 -0
- package/dist/project-graph/edit.js.map +1 -0
- package/dist/project-graph/fixtures.d.ts +51 -0
- package/dist/project-graph/fixtures.js +224 -0
- package/dist/project-graph/fixtures.js.map +1 -0
- package/dist/project-graph/ids.d.ts +17 -0
- package/dist/project-graph/ids.js +19 -0
- package/dist/project-graph/ids.js.map +1 -0
- package/dist/project-graph/index.d.ts +12 -0
- package/dist/project-graph/index.js +13 -0
- package/dist/project-graph/index.js.map +1 -0
- package/dist/project-graph/issues.d.ts +61 -0
- package/dist/project-graph/issues.js +44 -0
- package/dist/project-graph/issues.js.map +1 -0
- package/dist/project-graph/json.d.ts +6 -0
- package/dist/project-graph/json.js +10 -0
- package/dist/project-graph/json.js.map +1 -0
- package/dist/project-graph/node.d.ts +48 -0
- package/dist/project-graph/node.js +42 -0
- package/dist/project-graph/node.js.map +1 -0
- package/dist/project-graph/normalize.d.ts +17 -0
- package/dist/project-graph/normalize.js +110 -0
- package/dist/project-graph/normalize.js.map +1 -0
- package/dist/project-graph/serialize.d.ts +36 -0
- package/dist/project-graph/serialize.js +51 -0
- package/dist/project-graph/serialize.js.map +1 -0
- package/dist/project-graph/structure.d.ts +40 -0
- package/dist/project-graph/structure.js +36 -0
- package/dist/project-graph/structure.js.map +1 -0
- package/dist/project-graph/validate.d.ts +84 -0
- package/dist/project-graph/validate.js +158 -0
- package/dist/project-graph/validate.js.map +1 -0
- package/dist/rich-text/adapter.d.ts +43 -0
- package/dist/rich-text/adapter.js +24 -0
- package/dist/rich-text/adapter.js.map +1 -0
- package/dist/rich-text/dom-editor.d.ts +101 -0
- package/dist/rich-text/dom-editor.js +482 -0
- package/dist/rich-text/dom-editor.js.map +1 -0
- package/dist/rich-text/embed.d.ts +70 -0
- package/dist/rich-text/embed.js +70 -0
- package/dist/rich-text/embed.js.map +1 -0
- package/dist/rich-text/fixtures.d.ts +25 -0
- package/dist/rich-text/fixtures.js +115 -0
- package/dist/rich-text/fixtures.js.map +1 -0
- package/dist/rich-text/html.d.ts +5 -0
- package/dist/rich-text/html.js +309 -0
- package/dist/rich-text/html.js.map +1 -0
- package/dist/rich-text/index.d.ts +19 -0
- package/dist/rich-text/index.js +20 -0
- package/dist/rich-text/index.js.map +1 -0
- package/dist/rich-text/markdown.d.ts +7 -0
- package/dist/rich-text/markdown.js +235 -0
- package/dist/rich-text/markdown.js.map +1 -0
- package/dist/rich-text/portable-text.d.ts +50 -0
- package/dist/rich-text/portable-text.js +223 -0
- package/dist/rich-text/portable-text.js.map +1 -0
- package/dist/rich-text/registry.d.ts +48 -0
- package/dist/rich-text/registry.js +16 -0
- package/dist/rich-text/registry.js.map +1 -0
- package/dist/rich-text/render.d.ts +69 -0
- package/dist/rich-text/render.js +205 -0
- package/dist/rich-text/render.js.map +1 -0
- package/dist/rich-text/schema.d.ts +86 -0
- package/dist/rich-text/schema.js +80 -0
- package/dist/rich-text/schema.js.map +1 -0
- package/dist/rich-text/test-support.d.ts +7 -0
- package/dist/rich-text/test-support.js +8 -0
- package/dist/rich-text/test-support.js.map +1 -0
- package/dist/runtime-renderer/client.d.ts +14 -0
- package/dist/runtime-renderer/client.js +15 -0
- package/dist/runtime-renderer/client.js.map +1 -0
- package/dist/runtime-renderer/condition.d.ts +8 -0
- package/dist/runtime-renderer/condition.js +48 -0
- package/dist/runtime-renderer/condition.js.map +1 -0
- package/dist/runtime-renderer/content-client.d.ts +62 -0
- package/dist/runtime-renderer/content-client.js +37 -0
- package/dist/runtime-renderer/content-client.js.map +1 -0
- package/dist/runtime-renderer/context.d.ts +185 -0
- package/dist/runtime-renderer/context.js +7 -0
- package/dist/runtime-renderer/context.js.map +1 -0
- package/dist/runtime-renderer/fallback.d.ts +39 -0
- package/dist/runtime-renderer/fallback.js +45 -0
- package/dist/runtime-renderer/fallback.js.map +1 -0
- package/dist/runtime-renderer/index.d.ts +13 -0
- package/dist/runtime-renderer/index.js +13 -0
- package/dist/runtime-renderer/index.js.map +1 -0
- package/dist/runtime-renderer/primitives.d.ts +85 -0
- package/dist/runtime-renderer/primitives.js +442 -0
- package/dist/runtime-renderer/primitives.js.map +1 -0
- package/dist/runtime-renderer/render.d.ts +138 -0
- package/dist/runtime-renderer/render.js +825 -0
- package/dist/runtime-renderer/render.js.map +1 -0
- package/dist/runtime-renderer/rich-text.d.ts +26 -0
- package/dist/runtime-renderer/rich-text.js +113 -0
- package/dist/runtime-renderer/rich-text.js.map +1 -0
- package/dist/starter-kits/index.d.ts +13 -0
- package/dist/starter-kits/index.js +14 -0
- package/dist/starter-kits/index.js.map +1 -0
- package/dist/starter-kits/instantiate.d.ts +29 -0
- package/dist/starter-kits/instantiate.js +24 -0
- package/dist/starter-kits/instantiate.js.map +1 -0
- package/dist/starter-kits/kit.d.ts +61 -0
- package/dist/starter-kits/kit.js +37 -0
- package/dist/starter-kits/kit.js.map +1 -0
- package/dist/starter-kits/kits.d.ts +7 -0
- package/dist/starter-kits/kits.js +201 -0
- package/dist/starter-kits/kits.js.map +1 -0
- package/dist/starter-kits/manifests.d.ts +7 -0
- package/dist/starter-kits/manifests.js +111 -0
- package/dist/starter-kits/manifests.js.map +1 -0
- package/dist/starter-kits/upgrade.d.ts +39 -0
- package/dist/starter-kits/upgrade.js +54 -0
- package/dist/starter-kits/upgrade.js.map +1 -0
- package/dist/starter-kits/validate.d.ts +16 -0
- package/dist/starter-kits/validate.js +77 -0
- package/dist/starter-kits/validate.js.map +1 -0
- package/dist/studio-core/context.d.ts +27 -0
- package/dist/studio-core/context.js +44 -0
- package/dist/studio-core/context.js.map +1 -0
- package/dist/studio-core/errors.d.ts +58 -0
- package/dist/studio-core/errors.js +74 -0
- package/dist/studio-core/errors.js.map +1 -0
- package/dist/studio-core/fixtures.d.ts +18 -0
- package/dist/studio-core/fixtures.js +83 -0
- package/dist/studio-core/fixtures.js.map +1 -0
- package/dist/studio-core/ids.d.ts +22 -0
- package/dist/studio-core/ids.js +33 -0
- package/dist/studio-core/ids.js.map +1 -0
- package/dist/studio-core/index.d.ts +11 -0
- package/dist/studio-core/index.js +12 -0
- package/dist/studio-core/index.js.map +1 -0
- package/dist/studio-core/issues.d.ts +50 -0
- package/dist/studio-core/issues.js +33 -0
- package/dist/studio-core/issues.js.map +1 -0
- package/dist/studio-core/metadata.d.ts +109 -0
- package/dist/studio-core/metadata.js +74 -0
- package/dist/studio-core/metadata.js.map +1 -0
- package/dist/studio-core/repository.d.ts +73 -0
- package/dist/studio-core/repository.js +202 -0
- package/dist/studio-core/repository.js.map +1 -0
- package/dist/studio-core/sections.d.ts +73 -0
- package/dist/studio-core/sections.js +68 -0
- package/dist/studio-core/sections.js.map +1 -0
- package/dist/studio-core/validate.d.ts +15 -0
- package/dist/studio-core/validate.js +119 -0
- package/dist/studio-core/validate.js.map +1 -0
- package/dist/studio-core/workspace-config.d.ts +587 -0
- package/dist/studio-core/workspace-config.js +434 -0
- package/dist/studio-core/workspace-config.js.map +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { documentKey, isAssetNode, isReferenceNode } from '@elytracms/core/cms-core';
|
|
2
|
+
/**
|
|
3
|
+
* Reference extraction (EC-155, vision AD-6 — reshaped by EC-277/AD-15).
|
|
4
|
+
*
|
|
5
|
+
* Self-describing content makes extraction a **schema-free, manifest-free walk** over
|
|
6
|
+
* the stored value: every reference-bearing node carries an explicit `type`
|
|
7
|
+
* discriminator (`{ type:'reference', … }`, `{ type:'asset', … }`), and composition
|
|
8
|
+
* nodes self-type via `componentId`. So a single pure function reads the value and
|
|
9
|
+
* needs neither the collection schema nor the component manifest — which is exactly
|
|
10
|
+
* what lets the same walk run in the studio, the CLI, or a Convex mutation (AD-6,
|
|
11
|
+
* "maintained on write, every writer caught by construction").
|
|
12
|
+
*
|
|
13
|
+
* The `kind` is derived from *walk context*: a reference/asset node in a normal value
|
|
14
|
+
* position → `relation-field`/`asset-field`; inside a rich-text mark → `rich-text-link`;
|
|
15
|
+
* in a rich-text node's attrs → `rich-text-node`; a composition node's `componentId` →
|
|
16
|
+
* `component-usage`. Bindings are out of scope (v1 is static-only; see EC-278): a
|
|
17
|
+
* binding has no self-typed value, so it contributes no reference.
|
|
18
|
+
*/
|
|
19
|
+
// --- Shared helpers ----------------------------------------------------------------
|
|
20
|
+
/** Join `/`-separated path tokens (numbers are array indices). */
|
|
21
|
+
export function referencePath(...segments) {
|
|
22
|
+
return segments.map(String).join('/');
|
|
23
|
+
}
|
|
24
|
+
function documentTarget(ref) {
|
|
25
|
+
return { type: 'document', id: documentKey(ref) };
|
|
26
|
+
}
|
|
27
|
+
function asRecord(value) {
|
|
28
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
29
|
+
? value
|
|
30
|
+
: undefined;
|
|
31
|
+
}
|
|
32
|
+
function isPlainRecord(value) {
|
|
33
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The rich-text storage `node.type` for an embedded registry component (EC-189).
|
|
37
|
+
* Defined locally so persistence stays free of an `@elytracms/core/rich-text` import
|
|
38
|
+
* (mirroring the structural rich-text walk) — it matches `COMPONENT_EMBED_NODE_TYPE`
|
|
39
|
+
* in `@elytracms/core/rich-text` by value, guarded by a test.
|
|
40
|
+
*/
|
|
41
|
+
const COMPONENT_EMBED_NODE_TYPE = 'componentEmbed';
|
|
42
|
+
/**
|
|
43
|
+
* Structurally detect a stored rich-text value (`{ version, doc: { type: 'doc' } }`,
|
|
44
|
+
* the EC-025 storage format). Plain strings / HTML / anything else yields nothing.
|
|
45
|
+
*/
|
|
46
|
+
function asRichTextValue(value) {
|
|
47
|
+
const record = asRecord(value);
|
|
48
|
+
if (!record)
|
|
49
|
+
return undefined;
|
|
50
|
+
const doc = asRecord(record.doc);
|
|
51
|
+
if (!doc || doc.type !== 'doc')
|
|
52
|
+
return undefined;
|
|
53
|
+
return { doc };
|
|
54
|
+
}
|
|
55
|
+
/** Structural test for a stored composition node (id + componentId). */
|
|
56
|
+
function isComponentNodeShape(value) {
|
|
57
|
+
return isPlainRecord(value) && typeof value.id === 'string' && typeof value.componentId === 'string';
|
|
58
|
+
}
|
|
59
|
+
// --- The self-typed walk -----------------------------------------------------------
|
|
60
|
+
/** Emit the target a self-typed reference/asset node points at (or nothing). */
|
|
61
|
+
function selfTypedTarget(value) {
|
|
62
|
+
if (isReferenceNode(value))
|
|
63
|
+
return documentTarget(value);
|
|
64
|
+
if (isAssetNode(value))
|
|
65
|
+
return { type: 'asset', id: value.id };
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
/** Walk a composition node: component usage + self-typed static props + slots. */
|
|
69
|
+
function walkSelfTypedComponentNode(node, basePath, out) {
|
|
70
|
+
out.push({
|
|
71
|
+
path: referencePath(basePath, 'componentId'),
|
|
72
|
+
target: { type: 'component', id: node.componentId },
|
|
73
|
+
kind: 'component-usage',
|
|
74
|
+
});
|
|
75
|
+
for (const [name, prop] of Object.entries(node.props ?? {})) {
|
|
76
|
+
// Only STATIC props carry self-typed values (EC-190 picked refs); bindings parked.
|
|
77
|
+
if (prop.kind !== 'static')
|
|
78
|
+
continue;
|
|
79
|
+
walkSelfTypedValue(prop.value, referencePath(basePath, 'props', name), out);
|
|
80
|
+
}
|
|
81
|
+
for (const [slot, children] of Object.entries(node.slots ?? {})) {
|
|
82
|
+
children.forEach((child, index) => {
|
|
83
|
+
walkSelfTypedComponentNode(child, referencePath(basePath, 'slots', slot, index), out);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/** Walk a rich-text node (EC-025 storage format): self-typed link/inline refs + embeds. */
|
|
88
|
+
function walkSelfTypedRichTextNode(node, basePath, out) {
|
|
89
|
+
// Inline reference / asset-pinned nodes carry the envelope under `attrs.ref`.
|
|
90
|
+
const nodeTarget = selfTypedTarget(asRecord(node.attrs)?.ref);
|
|
91
|
+
if (nodeTarget)
|
|
92
|
+
out.push({ path: basePath, target: nodeTarget, kind: 'rich-text-node' });
|
|
93
|
+
// Link (and any reference-carrying) marks carry the envelope under `attrs.ref`.
|
|
94
|
+
if (Array.isArray(node.marks)) {
|
|
95
|
+
node.marks.forEach((markValue, markIndex) => {
|
|
96
|
+
const markTarget = selfTypedTarget(asRecord(asRecord(markValue)?.attrs)?.ref);
|
|
97
|
+
if (markTarget) {
|
|
98
|
+
out.push({
|
|
99
|
+
path: referencePath(basePath, 'marks', markIndex),
|
|
100
|
+
target: markTarget,
|
|
101
|
+
kind: 'rich-text-link',
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
// EC-189: a `componentEmbed` embeds a single ComponentNode — walked the same way.
|
|
107
|
+
if (node.type === COMPONENT_EMBED_NODE_TYPE) {
|
|
108
|
+
const embedded = asRecord(node.attrs)?.node;
|
|
109
|
+
if (isComponentNodeShape(embedded)) {
|
|
110
|
+
walkSelfTypedComponentNode(embedded, referencePath(basePath, 'attrs', 'node'), out);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (Array.isArray(node.content)) {
|
|
114
|
+
node.content.forEach((childValue, childIndex) => {
|
|
115
|
+
const child = asRecord(childValue);
|
|
116
|
+
if (child)
|
|
117
|
+
walkSelfTypedRichTextNode(child, referencePath(basePath, 'content', childIndex), out);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Recursively walk any stored value, dispatching on the self-typed shape it carries.
|
|
123
|
+
* Order matters: the richer typed shapes (rich-text region, composition node, typed
|
|
124
|
+
* envelope) are tested before the generic array/object recursion so a node is never
|
|
125
|
+
* double-counted as both an envelope and a plain bag.
|
|
126
|
+
*/
|
|
127
|
+
function walkSelfTypedValue(value, basePath, out) {
|
|
128
|
+
if (value === undefined || value === null)
|
|
129
|
+
return;
|
|
130
|
+
// A rich-text region (`{ doc: { type: 'doc' } }`) — walk its node tree.
|
|
131
|
+
const richText = asRichTextValue(value);
|
|
132
|
+
if (richText) {
|
|
133
|
+
walkSelfTypedRichTextNode(richText.doc, referencePath(basePath, 'doc'), out);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
// A composition node (`{ id, componentId }`).
|
|
137
|
+
if (isComponentNodeShape(value)) {
|
|
138
|
+
walkSelfTypedComponentNode(value, basePath, out);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
// A self-typed reference / asset envelope.
|
|
142
|
+
const target = selfTypedTarget(value);
|
|
143
|
+
if (target) {
|
|
144
|
+
out.push({
|
|
145
|
+
path: basePath,
|
|
146
|
+
target,
|
|
147
|
+
kind: target.type === 'asset' ? 'asset-field' : 'relation-field',
|
|
148
|
+
});
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
// A list — recurse by index (`<path>/<i>`), preserving the indexed-path taxonomy.
|
|
152
|
+
if (Array.isArray(value)) {
|
|
153
|
+
value.forEach((item, index) => walkSelfTypedValue(item, referencePath(basePath, index), out));
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
// A plain object / repeater item — recurse each key (`<path>/<key>`).
|
|
157
|
+
if (isPlainRecord(value)) {
|
|
158
|
+
for (const [key, child] of Object.entries(value)) {
|
|
159
|
+
walkSelfTypedValue(child, referencePath(basePath, key), out);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Extract every outbound reference held by one self-describing CMS document — no
|
|
165
|
+
* schema, no manifest, no binding context (EC-277). Walks `values/<field>` and
|
|
166
|
+
* `localized/<locale>/<field>` (just object keys), then descends each value by its
|
|
167
|
+
* self-typed shape. The returned order is walk order; callers that compare must sort
|
|
168
|
+
* (the index repository sorts via `compareReferenceEntries`), so this stays
|
|
169
|
+
* drift-tolerant: a reference in a field the schema no longer declares is still found.
|
|
170
|
+
*/
|
|
171
|
+
export function extractReferences(document) {
|
|
172
|
+
const out = [];
|
|
173
|
+
for (const [field, value] of Object.entries(document.values ?? {})) {
|
|
174
|
+
walkSelfTypedValue(value, referencePath('values', field), out);
|
|
175
|
+
}
|
|
176
|
+
for (const locale of Object.keys(document.localized ?? {}).sort()) {
|
|
177
|
+
const localeValues = document.localized?.[locale] ?? {};
|
|
178
|
+
for (const [field, value] of Object.entries(localeValues)) {
|
|
179
|
+
walkSelfTypedValue(value, referencePath('localized', locale, field), out);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return out;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Extract every outbound reference held by one self-describing layout root (EC-277).
|
|
186
|
+
* The graph (EC-187) is layouts-only; pages live in the `page` collection's `body`.
|
|
187
|
+
*/
|
|
188
|
+
export function extractLayoutReferences(layout) {
|
|
189
|
+
const refs = [];
|
|
190
|
+
walkSelfTypedComponentNode(layout.root, 'root', refs);
|
|
191
|
+
return refs.map((ref) => ({ source: { type: 'layout', id: layout.id }, ...ref }));
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Schema-free, manifest-free graph extraction (EC-277): component usage + self-typed
|
|
195
|
+
* static props across every layout, in deterministic (id-sorted) order.
|
|
196
|
+
*/
|
|
197
|
+
export function extractSelfTypedGraphReferences(graph) {
|
|
198
|
+
const entries = [];
|
|
199
|
+
for (const layout of [...graph.layouts].sort((a, b) => (a.id < b.id ? -1 : 1))) {
|
|
200
|
+
entries.push(...extractLayoutReferences(layout));
|
|
201
|
+
}
|
|
202
|
+
return entries;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=reference-extraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-extraction.js","sourceRoot":"","sources":["../../src/persistence/reference-extraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { DocumentRef } from '@elytracms/core/cms-core';
|
|
2
|
+
import type { PersistenceAdapter } from './adapter';
|
|
3
|
+
import type { ReferenceEntryRecord, ReferenceSource, ReferenceVariant } from './references';
|
|
4
|
+
/**
|
|
5
|
+
* Reference-index maintenance (EC-155): recompute-on-save routines shared by
|
|
6
|
+
* the operations-layer event subscriber (`@elytracms/core/operations` `references.ts`)
|
|
7
|
+
* and the backfill command. All writes are replace-all-for-source, so they are
|
|
8
|
+
* idempotent and never leave stale entries.
|
|
9
|
+
*
|
|
10
|
+
* Variant semantics:
|
|
11
|
+
* - **Documents** — the editable content *is* the draft variant, so a document
|
|
12
|
+
* always (re)indexes its draft entries; its published entries exist only
|
|
13
|
+
* while its version pointer (`publishedVersion`) is set. A draft-only document referencing a
|
|
14
|
+
* published target is therefore queryable as exactly that (the Sanity
|
|
15
|
+
* "hidden draft reference" failure case, vision AD-6).
|
|
16
|
+
* - **Graphs** — draft entries come from the latest revision; published entries
|
|
17
|
+
* from the revisions pinned live by the publishing states (union across
|
|
18
|
+
* environments, deterministic order).
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Options for the reindex routines. EC-277: extraction is now a schema-free,
|
|
22
|
+
* manifest-free walk over self-describing content, so no binding-source resolver or
|
|
23
|
+
* manifest lookup is threaded — the interface is retained (empty) as a stable seam
|
|
24
|
+
* for future per-reindex options.
|
|
25
|
+
*/
|
|
26
|
+
export type ReferenceIndexingOptions = Record<never, never>;
|
|
27
|
+
/** The index source entity for a document. */
|
|
28
|
+
export declare function documentReferenceSource(ref: DocumentRef): ReferenceSource;
|
|
29
|
+
/**
|
|
30
|
+
* Recompute the index entries held by one document (both variants). A missing
|
|
31
|
+
* document (deleted) simply drops all of its entries.
|
|
32
|
+
*/
|
|
33
|
+
export declare function reindexDocumentReferences(adapter: PersistenceAdapter, projectId: string, ref: DocumentRef, options?: ReferenceIndexingOptions): Promise<void>;
|
|
34
|
+
/** Recompute the entries of every document in a project (deterministic order). */
|
|
35
|
+
export declare function reindexAllDocumentReferences(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions): Promise<void>;
|
|
36
|
+
/** Recompute the draft graph entries (pages + layouts) from the latest revision. */
|
|
37
|
+
export declare function reindexGraphDraftReferences(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Recompute the published graph entries from the revision pinned live by the
|
|
40
|
+
* deployment's publishing state (unpublishing drops all published graph
|
|
41
|
+
* entries). Single-environment (EC-179): one deployment pins one revision.
|
|
42
|
+
*/
|
|
43
|
+
export declare function reindexGraphPublishedReferences(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions): Promise<void>;
|
|
44
|
+
/** Recompute both graph variants (a graph save can move what "latest" means). */
|
|
45
|
+
export declare function reindexGraphReferences(adapter: PersistenceAdapter, projectId: string, variant: ReferenceVariant | 'both', options?: ReferenceIndexingOptions): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Backfill: rebuild the complete reference index of a project from its current
|
|
48
|
+
* data — every document (both variants) and the graph (draft + published).
|
|
49
|
+
* Deterministic and idempotent: running it twice yields identical entries.
|
|
50
|
+
* Returns the full resulting index for inspection/verification.
|
|
51
|
+
*/
|
|
52
|
+
export declare function backfillReferenceIndex(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions): Promise<ReferenceEntryRecord[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Ensure the project's reference index has been backfilled at least once
|
|
55
|
+
* (EC-269). The index is maintained on write, so the (clear + rebuild) backfill
|
|
56
|
+
* is only needed to *seed* a never-built index — a fresh import/seed. A persisted
|
|
57
|
+
* marker records completion; when present this is a single read with **zero
|
|
58
|
+
* mutations**, so opening the References panel no longer rewrites the whole index
|
|
59
|
+
* every session (the normal Convex case — the EC-233 import already backfilled).
|
|
60
|
+
*
|
|
61
|
+
* Pass `force: true` to ignore the marker and rebuild unconditionally (the
|
|
62
|
+
* explicit "rebuild index" maintenance path).
|
|
63
|
+
*/
|
|
64
|
+
export declare function ensureReferenceIndexBackfilled(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions & {
|
|
65
|
+
force?: boolean;
|
|
66
|
+
}): Promise<{
|
|
67
|
+
backfilled: boolean;
|
|
68
|
+
}>;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { documentKey } from '@elytracms/core/cms-core';
|
|
2
|
+
import { extractReferences, extractSelfTypedGraphReferences } from './reference-extraction';
|
|
3
|
+
/** The index source entity for a document. */
|
|
4
|
+
export function documentReferenceSource(ref) {
|
|
5
|
+
return { type: 'document', id: documentKey(ref) };
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Recompute the index entries held by one document (both variants). A missing
|
|
9
|
+
* document (deleted) simply drops all of its entries.
|
|
10
|
+
*/
|
|
11
|
+
export async function reindexDocumentReferences(adapter, projectId, ref, options = {}) {
|
|
12
|
+
const source = documentReferenceSource(ref);
|
|
13
|
+
const record = await adapter.cms.findDocument(projectId, ref);
|
|
14
|
+
if (!record) {
|
|
15
|
+
await adapter.references.removeForSource(projectId, source);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
// EC-277: self-describing content — extraction is a schema-free, manifest-free walk
|
|
19
|
+
// over the stored value (no `findSchema`, no binding/manifest context). Static
|
|
20
|
+
// relation/asset props inside a `blocks` composition self-describe, so they are
|
|
21
|
+
// found without the manifest the old field-type-driven extractor required.
|
|
22
|
+
const references = extractReferences(record.document);
|
|
23
|
+
await adapter.references.replaceForSource(projectId, 'draft', source, references);
|
|
24
|
+
// EC-224: a document is published when its version pointer (`publishedVersion`)
|
|
25
|
+
// is set — mirrors delivery and the EC-173 integrity guard
|
|
26
|
+
// `collectStrictReferrers`. A pointer-published doc keeps its live row as the
|
|
27
|
+
// working draft, so published reference entries are extracted from that live
|
|
28
|
+
// draft (matching the guard's draft-content model), not the pinned snapshot;
|
|
29
|
+
// revisit only if published-reference resolution must mirror the snapshot exactly.
|
|
30
|
+
const referrerPublished = record.publishedVersion !== undefined;
|
|
31
|
+
await adapter.references.replaceForSource(projectId, 'published', source, referrerPublished ? references : []);
|
|
32
|
+
}
|
|
33
|
+
/** Recompute the entries of every document in a project (deterministic order). */
|
|
34
|
+
export async function reindexAllDocumentReferences(adapter, projectId, options = {}) {
|
|
35
|
+
const records = await adapter.cms.listDocuments(projectId);
|
|
36
|
+
for (const record of records) {
|
|
37
|
+
await reindexDocumentReferences(adapter, projectId, { collection: record.document.collection, id: record.document.id }, options);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Recompute the draft graph entries (pages + layouts) from the latest revision. */
|
|
41
|
+
export async function reindexGraphDraftReferences(adapter, projectId, options = {}) {
|
|
42
|
+
const hasGraph = await adapter.graphs.hasGraph(projectId);
|
|
43
|
+
const entries = hasGraph
|
|
44
|
+
? extractSelfTypedGraphReferences((await adapter.graphs.getLatest(projectId)).graph)
|
|
45
|
+
: [];
|
|
46
|
+
await adapter.references.replaceForSourceTypes(projectId, 'draft', ['page', 'layout'], entries);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Recompute the published graph entries from the revision pinned live by the
|
|
50
|
+
* deployment's publishing state (unpublishing drops all published graph
|
|
51
|
+
* entries). Single-environment (EC-179): one deployment pins one revision.
|
|
52
|
+
*/
|
|
53
|
+
export async function reindexGraphPublishedReferences(adapter, projectId, options = {}) {
|
|
54
|
+
const state = await adapter.publishing.findState(projectId);
|
|
55
|
+
const revisions = state?.status === 'published' && state.publishedRevision !== undefined
|
|
56
|
+
? [state.publishedRevision]
|
|
57
|
+
: [];
|
|
58
|
+
const entries = [];
|
|
59
|
+
for (const revision of revisions) {
|
|
60
|
+
const loaded = await adapter.graphs.getRevision(projectId, revision);
|
|
61
|
+
entries.push(...extractSelfTypedGraphReferences(loaded.graph));
|
|
62
|
+
}
|
|
63
|
+
await adapter.references.replaceForSourceTypes(projectId, 'published', ['page', 'layout'], entries);
|
|
64
|
+
}
|
|
65
|
+
/** Recompute both graph variants (a graph save can move what "latest" means). */
|
|
66
|
+
export async function reindexGraphReferences(adapter, projectId, variant, options = {}) {
|
|
67
|
+
if (variant === 'draft' || variant === 'both') {
|
|
68
|
+
await reindexGraphDraftReferences(adapter, projectId, options);
|
|
69
|
+
}
|
|
70
|
+
if (variant === 'published' || variant === 'both') {
|
|
71
|
+
await reindexGraphPublishedReferences(adapter, projectId, options);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Backfill: rebuild the complete reference index of a project from its current
|
|
76
|
+
* data — every document (both variants) and the graph (draft + published).
|
|
77
|
+
* Deterministic and idempotent: running it twice yields identical entries.
|
|
78
|
+
* Returns the full resulting index for inspection/verification.
|
|
79
|
+
*/
|
|
80
|
+
export async function backfillReferenceIndex(adapter, projectId, options = {}) {
|
|
81
|
+
await adapter.references.clearProject(projectId);
|
|
82
|
+
await reindexAllDocumentReferences(adapter, projectId, options);
|
|
83
|
+
await reindexGraphReferences(adapter, projectId, 'both', options);
|
|
84
|
+
const records = await adapter.references.listEntries(projectId);
|
|
85
|
+
// EC-269: record completion so the read path can skip the rebuild next time.
|
|
86
|
+
// `clearProject` above cleared any prior marker, so it is set exactly once the
|
|
87
|
+
// rebuild has fully settled — never present over a partial index.
|
|
88
|
+
await adapter.references.setBuildMarker(projectId, { entryCount: records.length });
|
|
89
|
+
return records;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Ensure the project's reference index has been backfilled at least once
|
|
93
|
+
* (EC-269). The index is maintained on write, so the (clear + rebuild) backfill
|
|
94
|
+
* is only needed to *seed* a never-built index — a fresh import/seed. A persisted
|
|
95
|
+
* marker records completion; when present this is a single read with **zero
|
|
96
|
+
* mutations**, so opening the References panel no longer rewrites the whole index
|
|
97
|
+
* every session (the normal Convex case — the EC-233 import already backfilled).
|
|
98
|
+
*
|
|
99
|
+
* Pass `force: true` to ignore the marker and rebuild unconditionally (the
|
|
100
|
+
* explicit "rebuild index" maintenance path).
|
|
101
|
+
*/
|
|
102
|
+
export async function ensureReferenceIndexBackfilled(adapter, projectId, options = {}) {
|
|
103
|
+
const { force, ...indexing } = options;
|
|
104
|
+
if (!force) {
|
|
105
|
+
const marker = await adapter.references.getBuildMarker(projectId);
|
|
106
|
+
if (marker)
|
|
107
|
+
return { backfilled: false };
|
|
108
|
+
}
|
|
109
|
+
await backfillReferenceIndex(adapter, projectId, indexing);
|
|
110
|
+
return { backfilled: true };
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=reference-indexing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-indexing.js","sourceRoot":"","sources":["../../src/persistence/reference-indexing.ts"],"names":[],"mappings":"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"}
|