@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,83 @@
|
|
|
1
|
+
import { allSectionsAvailable } from './sections';
|
|
2
|
+
import { InMemoryProjectRepository, createSequentialClock, createSequentialIdFactory, } from './repository';
|
|
3
|
+
/**
|
|
4
|
+
* Deterministic sample projects (brief §10, §11). Ids and timestamps are
|
|
5
|
+
* hard-coded so every run, test, and browser inspection sees byte-identical
|
|
6
|
+
* state. They deliberately span varied locales and section availability so the
|
|
7
|
+
* Studio shell can demonstrate each.
|
|
8
|
+
*/
|
|
9
|
+
function availability(overrides) {
|
|
10
|
+
return { ...allSectionsAvailable(), ...overrides };
|
|
11
|
+
}
|
|
12
|
+
/** Fully-provisioned, multi-locale marketing site — the "happy path" project. */
|
|
13
|
+
export const auroraMarketing = {
|
|
14
|
+
id: 'prj_aurora',
|
|
15
|
+
name: 'Aurora Marketing',
|
|
16
|
+
slug: 'aurora-marketing',
|
|
17
|
+
createdAt: '2026-01-04T09:00:00.000Z',
|
|
18
|
+
updatedAt: '2026-05-20T16:30:00.000Z',
|
|
19
|
+
settings: {
|
|
20
|
+
locales: ['en', 'de', 'fr'],
|
|
21
|
+
defaultLocale: 'en',
|
|
22
|
+
environments: [
|
|
23
|
+
{ key: 'production', label: 'Production' },
|
|
24
|
+
{ key: 'staging', label: 'Staging' },
|
|
25
|
+
{ key: 'preview', label: 'Preview' },
|
|
26
|
+
],
|
|
27
|
+
exportTarget: 'next-app-router',
|
|
28
|
+
sectionAvailability: allSectionsAvailable(),
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
/** Single-locale docs site where the assets surface is still planned. */
|
|
32
|
+
export const northwindDocs = {
|
|
33
|
+
id: 'prj_northwind',
|
|
34
|
+
name: 'Northwind Docs',
|
|
35
|
+
slug: 'northwind-docs',
|
|
36
|
+
createdAt: '2026-02-11T11:15:00.000Z',
|
|
37
|
+
updatedAt: '2026-05-28T08:05:00.000Z',
|
|
38
|
+
settings: {
|
|
39
|
+
locales: ['en'],
|
|
40
|
+
defaultLocale: 'en',
|
|
41
|
+
environments: [
|
|
42
|
+
{ key: 'production', label: 'Production' },
|
|
43
|
+
{ key: 'preview', label: 'Preview' },
|
|
44
|
+
],
|
|
45
|
+
exportTarget: 'next-app-router',
|
|
46
|
+
sectionAvailability: availability({ assets: 'planned' }),
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
/** Regional storefront with two locales and a components surface still planned. */
|
|
50
|
+
export const lumenStore = {
|
|
51
|
+
id: 'prj_lumen',
|
|
52
|
+
name: 'Lumen Store',
|
|
53
|
+
slug: 'lumen-store',
|
|
54
|
+
createdAt: '2026-03-02T14:45:00.000Z',
|
|
55
|
+
updatedAt: '2026-06-01T10:00:00.000Z',
|
|
56
|
+
settings: {
|
|
57
|
+
locales: ['en-US', 'es-MX'],
|
|
58
|
+
defaultLocale: 'en-US',
|
|
59
|
+
environments: [
|
|
60
|
+
{ key: 'production', label: 'Production' },
|
|
61
|
+
{ key: 'preview', label: 'Preview' },
|
|
62
|
+
],
|
|
63
|
+
exportTarget: 'next-app-router',
|
|
64
|
+
sectionAvailability: availability({ components: 'planned' }),
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
/** All sample projects in a stable order. */
|
|
68
|
+
export const sampleProjects = [auroraMarketing, northwindDocs, lumenStore];
|
|
69
|
+
/** Lookup by id for tests and shell bootstrapping. */
|
|
70
|
+
export const sampleProjectsById = Object.fromEntries(sampleProjects.map((p) => [p.id, p]));
|
|
71
|
+
/**
|
|
72
|
+
* Build an in-memory repository seeded with the sample projects. The clock and
|
|
73
|
+
* id factory continue deterministically *after* the seeded ids/timestamps, so
|
|
74
|
+
* subsequent create/update operations are reproducible across runs.
|
|
75
|
+
*/
|
|
76
|
+
export function createFixtureRepository() {
|
|
77
|
+
return new InMemoryProjectRepository({
|
|
78
|
+
seed: sampleProjects,
|
|
79
|
+
clock: createSequentialClock('2026-06-07T00:00:00.000Z'),
|
|
80
|
+
idFactory: createSequentialIdFactory('prj_new'),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/studio-core/fixtures.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAErB;;;;;GAKG;AAEH,SAAS,YAAY,CAAC,SAA0C;IAC9D,OAAO,EAAE,GAAG,oBAAoB,EAAE,EAAE,GAAG,SAAS,EAAE,CAAA;AACpD,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,eAAe,GAAY;IACtC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,0BAA0B;IACrC,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC3B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE;YACZ,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;YAC1C,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;SACrC;QACD,YAAY,EAAE,iBAAiB;QAC/B,mBAAmB,EAAE,oBAAoB,EAAE;KAC5C;CACF,CAAA;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,0BAA0B;IACrC,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE;YACZ,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;YAC1C,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;SACrC;QACD,YAAY,EAAE,iBAAiB;QAC/B,mBAAmB,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;KACzD;CACF,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,UAAU,GAAY;IACjC,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,0BAA0B;IACrC,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC3B,aAAa,EAAE,OAAO;QACtB,YAAY,EAAE;YACZ,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;YAC1C,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;SACrC;QACD,YAAY,EAAE,iBAAiB;QAC/B,mBAAmB,EAAE,YAAY,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;KAC7D;CACF,CAAA;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAuB,CAAC,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;AAE9F,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAsC,MAAM,CAAC,WAAW,CACrF,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACrC,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,yBAAyB,CAAC;QACnC,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,qBAAqB,CAAC,0BAA0B,CAAC;QACxD,SAAS,EAAE,yBAAyB,CAAC,SAAS,CAAC;KAChD,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Stable, non-empty project identifier (opaque; not user-facing). */
|
|
3
|
+
export declare const projectIdSchema: z.ZodString;
|
|
4
|
+
export type ProjectId = z.infer<typeof projectIdSchema>;
|
|
5
|
+
/**
|
|
6
|
+
* URL-safe project slug: lowercase alphanumeric segments joined by single hyphens.
|
|
7
|
+
* The slug is user-facing and editable; the id is the stable key.
|
|
8
|
+
*/
|
|
9
|
+
export declare const SLUG_PATTERN: RegExp;
|
|
10
|
+
export declare const slugSchema: z.ZodString;
|
|
11
|
+
export type Slug = z.infer<typeof slugSchema>;
|
|
12
|
+
export declare function isValidSlug(value: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Permissive BCP-47-ish locale tag: a primary subtag plus optional script/region
|
|
15
|
+
* subtags, e.g. `en`, `en-US`, `pt-BR`, `zh-Hans`, `zh-Hant-HK`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const LOCALE_PATTERN: RegExp;
|
|
18
|
+
export declare const localeSchema: z.ZodString;
|
|
19
|
+
export type Locale = z.infer<typeof localeSchema>;
|
|
20
|
+
export declare function isValidLocale(value: string): boolean;
|
|
21
|
+
/** Derive a slug candidate from a free-form name. Never throws; may yield ''. */
|
|
22
|
+
export declare function slugify(input: string): string;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Stable, non-empty project identifier (opaque; not user-facing). */
|
|
3
|
+
export const projectIdSchema = z.string().min(1);
|
|
4
|
+
/**
|
|
5
|
+
* URL-safe project slug: lowercase alphanumeric segments joined by single hyphens.
|
|
6
|
+
* The slug is user-facing and editable; the id is the stable key.
|
|
7
|
+
*/
|
|
8
|
+
export const SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
9
|
+
export const slugSchema = z.string().min(1).max(63).regex(SLUG_PATTERN);
|
|
10
|
+
export function isValidSlug(value) {
|
|
11
|
+
return slugSchema.safeParse(value).success;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Permissive BCP-47-ish locale tag: a primary subtag plus optional script/region
|
|
15
|
+
* subtags, e.g. `en`, `en-US`, `pt-BR`, `zh-Hans`, `zh-Hant-HK`.
|
|
16
|
+
*/
|
|
17
|
+
export const LOCALE_PATTERN = /^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/;
|
|
18
|
+
export const localeSchema = z.string().regex(LOCALE_PATTERN);
|
|
19
|
+
export function isValidLocale(value) {
|
|
20
|
+
return localeSchema.safeParse(value).success;
|
|
21
|
+
}
|
|
22
|
+
/** Derive a slug candidate from a free-form name. Never throws; may yield ''. */
|
|
23
|
+
export function slugify(input) {
|
|
24
|
+
return input
|
|
25
|
+
.normalize('NFKD')
|
|
26
|
+
.replace(/[̀-ͯ]/g, '')
|
|
27
|
+
.toLowerCase()
|
|
28
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
29
|
+
.replace(/^-+|-+$/g, '')
|
|
30
|
+
.slice(0, 63)
|
|
31
|
+
.replace(/-+$/g, '');
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/studio-core/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAA;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAGvE,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,oCAAoC,CAAA;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;AAG5D,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AAC9C,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,KAAK;SACT,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACxB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const PACKAGE = "@elytracms/core/studio-core";
|
|
2
|
+
export * from './ids';
|
|
3
|
+
export * from './sections';
|
|
4
|
+
export * from './metadata';
|
|
5
|
+
export * from './issues';
|
|
6
|
+
export * from './validate';
|
|
7
|
+
export * from './workspace-config';
|
|
8
|
+
export * from './errors';
|
|
9
|
+
export * from './context';
|
|
10
|
+
export * from './repository';
|
|
11
|
+
export * from './fixtures';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const PACKAGE = '@elytracms/core/studio-core';
|
|
2
|
+
export * from './ids';
|
|
3
|
+
export * from './sections';
|
|
4
|
+
export * from './metadata';
|
|
5
|
+
export * from './issues';
|
|
6
|
+
export * from './validate';
|
|
7
|
+
export * from './workspace-config';
|
|
8
|
+
export * from './errors';
|
|
9
|
+
export * from './context';
|
|
10
|
+
export * from './repository';
|
|
11
|
+
export * from './fixtures';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/studio-core/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,6BAA6B,CAAA;AAEpD,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Stable codes for project-settings validation issues (brief §4.11, §7.7).
|
|
4
|
+
* Settings validation is first-class and non-throwing: the editing UI holds a
|
|
5
|
+
* draft and renders these issues rather than crashing.
|
|
6
|
+
*/
|
|
7
|
+
export declare const studioIssueCodeSchema: z.ZodEnum<{
|
|
8
|
+
"invalid-name": "invalid-name";
|
|
9
|
+
"invalid-slug": "invalid-slug";
|
|
10
|
+
"empty-locales": "empty-locales";
|
|
11
|
+
"duplicate-locale": "duplicate-locale";
|
|
12
|
+
"invalid-locale": "invalid-locale";
|
|
13
|
+
"default-locale-not-in-locales": "default-locale-not-in-locales";
|
|
14
|
+
"no-environments": "no-environments";
|
|
15
|
+
"duplicate-environment": "duplicate-environment";
|
|
16
|
+
"invalid-environment": "invalid-environment";
|
|
17
|
+
"missing-export-target": "missing-export-target";
|
|
18
|
+
"incomplete-section-availability": "incomplete-section-availability";
|
|
19
|
+
}>;
|
|
20
|
+
export type StudioIssueCode = z.infer<typeof studioIssueCodeSchema>;
|
|
21
|
+
export declare const studioIssueSeveritySchema: z.ZodEnum<{
|
|
22
|
+
error: "error";
|
|
23
|
+
warning: "warning";
|
|
24
|
+
}>;
|
|
25
|
+
export type StudioIssueSeverity = z.infer<typeof studioIssueSeveritySchema>;
|
|
26
|
+
/** A structured project-settings issue carrying a field path. */
|
|
27
|
+
export declare const studioIssueSchema: z.ZodObject<{
|
|
28
|
+
code: z.ZodEnum<{
|
|
29
|
+
"invalid-name": "invalid-name";
|
|
30
|
+
"invalid-slug": "invalid-slug";
|
|
31
|
+
"empty-locales": "empty-locales";
|
|
32
|
+
"duplicate-locale": "duplicate-locale";
|
|
33
|
+
"invalid-locale": "invalid-locale";
|
|
34
|
+
"default-locale-not-in-locales": "default-locale-not-in-locales";
|
|
35
|
+
"no-environments": "no-environments";
|
|
36
|
+
"duplicate-environment": "duplicate-environment";
|
|
37
|
+
"invalid-environment": "invalid-environment";
|
|
38
|
+
"missing-export-target": "missing-export-target";
|
|
39
|
+
"incomplete-section-availability": "incomplete-section-availability";
|
|
40
|
+
}>;
|
|
41
|
+
severity: z.ZodEnum<{
|
|
42
|
+
error: "error";
|
|
43
|
+
warning: "warning";
|
|
44
|
+
}>;
|
|
45
|
+
message: z.ZodString;
|
|
46
|
+
path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
export type StudioIssue = z.infer<typeof studioIssueSchema>;
|
|
49
|
+
/** True when no error-severity issues are present (warnings are tolerated). */
|
|
50
|
+
export declare function isSettingsValid(issues: readonly StudioIssue[]): boolean;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Stable codes for project-settings validation issues (brief §4.11, §7.7).
|
|
4
|
+
* Settings validation is first-class and non-throwing: the editing UI holds a
|
|
5
|
+
* draft and renders these issues rather than crashing.
|
|
6
|
+
*/
|
|
7
|
+
export const studioIssueCodeSchema = z.enum([
|
|
8
|
+
'invalid-name',
|
|
9
|
+
'invalid-slug',
|
|
10
|
+
'empty-locales',
|
|
11
|
+
'duplicate-locale',
|
|
12
|
+
'invalid-locale',
|
|
13
|
+
'default-locale-not-in-locales',
|
|
14
|
+
'no-environments',
|
|
15
|
+
'duplicate-environment',
|
|
16
|
+
'invalid-environment',
|
|
17
|
+
'missing-export-target',
|
|
18
|
+
'incomplete-section-availability',
|
|
19
|
+
]);
|
|
20
|
+
export const studioIssueSeveritySchema = z.enum(['error', 'warning']);
|
|
21
|
+
/** A structured project-settings issue carrying a field path. */
|
|
22
|
+
export const studioIssueSchema = z.object({
|
|
23
|
+
code: studioIssueCodeSchema,
|
|
24
|
+
severity: studioIssueSeveritySchema,
|
|
25
|
+
message: z.string(),
|
|
26
|
+
/** Field path into the settings object, e.g. ['defaultLocale'] or ['locales', 1]. */
|
|
27
|
+
path: z.array(z.union([z.string(), z.number()])),
|
|
28
|
+
});
|
|
29
|
+
/** True when no error-severity issues are present (warnings are tolerated). */
|
|
30
|
+
export function isSettingsValid(issues) {
|
|
31
|
+
return !issues.some((issue) => issue.severity === 'error');
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/studio-core/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,cAAc;IACd,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,+BAA+B;IAC/B,iBAAiB;IACjB,uBAAuB;IACvB,qBAAqB;IACrB,uBAAuB;IACvB,iCAAiC;CAClC,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;AAGrE,iEAAiE;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,qBAAqB;IAC3B,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,qFAAqF;IACrF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CACjD,CAAC,CAAA;AAGF,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,MAA8B;IAC5D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** A named deployment environment, e.g. production / preview (brief §7.7). */
|
|
3
|
+
export declare const environmentSchema: z.ZodObject<{
|
|
4
|
+
key: z.ZodString;
|
|
5
|
+
label: z.ZodString;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type Environment = z.infer<typeof environmentSchema>;
|
|
8
|
+
/**
|
|
9
|
+
* Export target for generated code. Next.js App Router is the initial (and
|
|
10
|
+
* currently only) target (brief §6, §7.7).
|
|
11
|
+
*/
|
|
12
|
+
export declare const exportTargetSchema: z.ZodEnum<{
|
|
13
|
+
"next-app-router": "next-app-router";
|
|
14
|
+
}>;
|
|
15
|
+
export type ExportTarget = z.infer<typeof exportTargetSchema>;
|
|
16
|
+
/**
|
|
17
|
+
* ISO-8601 timestamp string. Kept as a plain string (the repository owns the
|
|
18
|
+
* clock) so fixtures stay byte-for-byte deterministic across runs.
|
|
19
|
+
*/
|
|
20
|
+
export declare const timestampSchema: z.ZodString;
|
|
21
|
+
export type Timestamp = z.infer<typeof timestampSchema>;
|
|
22
|
+
/**
|
|
23
|
+
* Project settings — configuration that is separate from the canonical project
|
|
24
|
+
* graph (brief §7.7, §8.7). Field shapes are validated here; cross-field rules
|
|
25
|
+
* (e.g. default-locale ∈ locales) live in `validate.ts` so the editing UI can
|
|
26
|
+
* hold a temporarily-invalid draft and surface issues instead of throwing.
|
|
27
|
+
*/
|
|
28
|
+
export declare const projectSettingsSchema: z.ZodObject<{
|
|
29
|
+
locales: z.ZodArray<z.ZodString>;
|
|
30
|
+
defaultLocale: z.ZodString;
|
|
31
|
+
environments: z.ZodArray<z.ZodObject<{
|
|
32
|
+
key: z.ZodString;
|
|
33
|
+
label: z.ZodString;
|
|
34
|
+
}, z.core.$strip>>;
|
|
35
|
+
exportTarget: z.ZodEnum<{
|
|
36
|
+
"next-app-router": "next-app-router";
|
|
37
|
+
}>;
|
|
38
|
+
sectionAvailability: z.ZodRecord<z.ZodEnum<{
|
|
39
|
+
components: "components";
|
|
40
|
+
assets: "assets";
|
|
41
|
+
cms: "cms";
|
|
42
|
+
extensions: "extensions";
|
|
43
|
+
settings: "settings";
|
|
44
|
+
}>, z.ZodEnum<{
|
|
45
|
+
available: "available";
|
|
46
|
+
planned: "planned";
|
|
47
|
+
unavailable: "unavailable";
|
|
48
|
+
}>>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
export type ProjectSettings = z.infer<typeof projectSettingsSchema>;
|
|
51
|
+
/**
|
|
52
|
+
* Project metadata — identity, distinct from settings and from the project graph
|
|
53
|
+
* (brief §7.7). `createdAt`/`updatedAt` are optional: backend-stored projects
|
|
54
|
+
* carry them, but config-derived projects (identity owned by `elytra.config.ts`)
|
|
55
|
+
* have no backend timestamps.
|
|
56
|
+
*/
|
|
57
|
+
export declare const projectMetadataSchema: z.ZodObject<{
|
|
58
|
+
id: z.ZodString;
|
|
59
|
+
name: z.ZodString;
|
|
60
|
+
slug: z.ZodString;
|
|
61
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
62
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
export type ProjectMetadata = z.infer<typeof projectMetadataSchema>;
|
|
65
|
+
/** A full project record: metadata plus settings. */
|
|
66
|
+
export declare const projectSchema: z.ZodObject<{
|
|
67
|
+
id: z.ZodString;
|
|
68
|
+
name: z.ZodString;
|
|
69
|
+
slug: z.ZodString;
|
|
70
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
71
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
72
|
+
settings: z.ZodObject<{
|
|
73
|
+
locales: z.ZodArray<z.ZodString>;
|
|
74
|
+
defaultLocale: z.ZodString;
|
|
75
|
+
environments: z.ZodArray<z.ZodObject<{
|
|
76
|
+
key: z.ZodString;
|
|
77
|
+
label: z.ZodString;
|
|
78
|
+
}, z.core.$strip>>;
|
|
79
|
+
exportTarget: z.ZodEnum<{
|
|
80
|
+
"next-app-router": "next-app-router";
|
|
81
|
+
}>;
|
|
82
|
+
sectionAvailability: z.ZodRecord<z.ZodEnum<{
|
|
83
|
+
components: "components";
|
|
84
|
+
assets: "assets";
|
|
85
|
+
cms: "cms";
|
|
86
|
+
extensions: "extensions";
|
|
87
|
+
settings: "settings";
|
|
88
|
+
}>, z.ZodEnum<{
|
|
89
|
+
available: "available";
|
|
90
|
+
planned: "planned";
|
|
91
|
+
unavailable: "unavailable";
|
|
92
|
+
}>>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
}, z.core.$strip>;
|
|
95
|
+
export type Project = z.infer<typeof projectSchema>;
|
|
96
|
+
/**
|
|
97
|
+
* Lightweight projection for list views and the switcher (brief §8.1). Avoids
|
|
98
|
+
* shipping full settings where only identity is needed.
|
|
99
|
+
*/
|
|
100
|
+
export declare const projectSummarySchema: z.ZodObject<{
|
|
101
|
+
id: z.ZodString;
|
|
102
|
+
name: z.ZodString;
|
|
103
|
+
slug: z.ZodString;
|
|
104
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
105
|
+
}, z.core.$strip>;
|
|
106
|
+
export type ProjectSummary = z.infer<typeof projectSummarySchema>;
|
|
107
|
+
export declare function toSummary(project: Project): ProjectSummary;
|
|
108
|
+
/** Default environments for a freshly-created project. */
|
|
109
|
+
export declare function defaultEnvironments(): Environment[];
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { localeSchema, projectIdSchema, slugSchema } from './ids';
|
|
3
|
+
import { sectionAvailabilityMapSchema } from './sections';
|
|
4
|
+
/** A named deployment environment, e.g. production / preview (brief §7.7). */
|
|
5
|
+
export const environmentSchema = z.object({
|
|
6
|
+
key: slugSchema,
|
|
7
|
+
label: z.string().min(1),
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Export target for generated code. Next.js App Router is the initial (and
|
|
11
|
+
* currently only) target (brief §6, §7.7).
|
|
12
|
+
*/
|
|
13
|
+
export const exportTargetSchema = z.enum(['next-app-router']);
|
|
14
|
+
/**
|
|
15
|
+
* ISO-8601 timestamp string. Kept as a plain string (the repository owns the
|
|
16
|
+
* clock) so fixtures stay byte-for-byte deterministic across runs.
|
|
17
|
+
*/
|
|
18
|
+
export const timestampSchema = z.string().min(1);
|
|
19
|
+
/**
|
|
20
|
+
* Project settings — configuration that is separate from the canonical project
|
|
21
|
+
* graph (brief §7.7, §8.7). Field shapes are validated here; cross-field rules
|
|
22
|
+
* (e.g. default-locale ∈ locales) live in `validate.ts` so the editing UI can
|
|
23
|
+
* hold a temporarily-invalid draft and surface issues instead of throwing.
|
|
24
|
+
*/
|
|
25
|
+
export const projectSettingsSchema = z.object({
|
|
26
|
+
locales: z.array(localeSchema),
|
|
27
|
+
defaultLocale: localeSchema,
|
|
28
|
+
environments: z.array(environmentSchema),
|
|
29
|
+
exportTarget: exportTargetSchema,
|
|
30
|
+
sectionAvailability: sectionAvailabilityMapSchema,
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Project metadata — identity, distinct from settings and from the project graph
|
|
34
|
+
* (brief §7.7). `createdAt`/`updatedAt` are optional: backend-stored projects
|
|
35
|
+
* carry them, but config-derived projects (identity owned by `elytra.config.ts`)
|
|
36
|
+
* have no backend timestamps.
|
|
37
|
+
*/
|
|
38
|
+
export const projectMetadataSchema = z.object({
|
|
39
|
+
id: projectIdSchema,
|
|
40
|
+
name: z.string().min(1).max(120),
|
|
41
|
+
slug: slugSchema,
|
|
42
|
+
createdAt: timestampSchema.optional(),
|
|
43
|
+
updatedAt: timestampSchema.optional(),
|
|
44
|
+
});
|
|
45
|
+
/** A full project record: metadata plus settings. */
|
|
46
|
+
export const projectSchema = projectMetadataSchema.extend({
|
|
47
|
+
settings: projectSettingsSchema,
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Lightweight projection for list views and the switcher (brief §8.1). Avoids
|
|
51
|
+
* shipping full settings where only identity is needed.
|
|
52
|
+
*/
|
|
53
|
+
export const projectSummarySchema = projectMetadataSchema.pick({
|
|
54
|
+
id: true,
|
|
55
|
+
name: true,
|
|
56
|
+
slug: true,
|
|
57
|
+
updatedAt: true,
|
|
58
|
+
});
|
|
59
|
+
export function toSummary(project) {
|
|
60
|
+
return {
|
|
61
|
+
id: project.id,
|
|
62
|
+
name: project.name,
|
|
63
|
+
slug: project.slug,
|
|
64
|
+
updatedAt: project.updatedAt,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** Default environments for a freshly-created project. */
|
|
68
|
+
export function defaultEnvironments() {
|
|
69
|
+
return [
|
|
70
|
+
{ key: 'production', label: 'Production' },
|
|
71
|
+
{ key: 'preview', label: 'Preview' },
|
|
72
|
+
];
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/studio-core/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AAEzD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACzB,CAAC,CAAA;AAGF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAG7D;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAGhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IAC9B,aAAa,EAAE,YAAY;IAC3B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACxC,YAAY,EAAE,kBAAkB;IAChC,mBAAmB,EAAE,4BAA4B;CAClD,CAAC,CAAA;AAGF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAA;AAGF,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC;IACxD,QAAQ,EAAE,qBAAqB;CAChC,CAAC,CAAA;AAGF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,IAAI,CAAC;IAC7D,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,IAAI;CAChB,CAAC,CAAA;AAGF,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAA;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;QAC1C,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;KACrC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { ProjectId } from './ids';
|
|
2
|
+
import { BackendUnavailableError } from './errors';
|
|
3
|
+
import type { Project, ProjectSettings, ProjectSummary } from './metadata';
|
|
4
|
+
export interface CreateProjectInput {
|
|
5
|
+
name: string;
|
|
6
|
+
/** Derived from `name` when omitted. */
|
|
7
|
+
slug?: string;
|
|
8
|
+
settings?: Partial<ProjectSettings>;
|
|
9
|
+
}
|
|
10
|
+
export interface UpdateProjectInput {
|
|
11
|
+
name?: string;
|
|
12
|
+
slug?: string;
|
|
13
|
+
settings?: Partial<ProjectSettings>;
|
|
14
|
+
}
|
|
15
|
+
export interface DuplicateProjectInput {
|
|
16
|
+
name?: string;
|
|
17
|
+
slug?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Provider-neutral project repository contract (brief §7.7). Operations are async
|
|
21
|
+
* so a Convex-backed implementation satisfies the same interface. Failures are
|
|
22
|
+
* thrown as the `ProjectRepositoryError` taxonomy. (Project *identity* is owned by
|
|
23
|
+
* `elytra.config.ts`; this repository persists the backend project record used
|
|
24
|
+
* by CLI provisioning and playground.)
|
|
25
|
+
*/
|
|
26
|
+
export interface ProjectRepository {
|
|
27
|
+
list(): Promise<ProjectSummary[]>;
|
|
28
|
+
get(id: ProjectId): Promise<Project>;
|
|
29
|
+
create(input: CreateProjectInput): Promise<Project>;
|
|
30
|
+
update(id: ProjectId, input: UpdateProjectInput): Promise<Project>;
|
|
31
|
+
duplicate(id: ProjectId, input?: DuplicateProjectInput): Promise<Project>;
|
|
32
|
+
delete(id: ProjectId): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
/** Returns an ISO-8601 timestamp; injected so tests stay deterministic. */
|
|
35
|
+
export type Clock = () => string;
|
|
36
|
+
/**
|
|
37
|
+
* Deterministic clock for fixtures/tests: starts at `startISO` and advances a
|
|
38
|
+
* fixed step on each call, so repeated runs produce identical timestamps.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createSequentialClock(startISO?: string, stepMs?: number): Clock;
|
|
41
|
+
/** Generates stable opaque project ids; injected for determinism. */
|
|
42
|
+
export type IdFactory = () => ProjectId;
|
|
43
|
+
export declare function createSequentialIdFactory(prefix?: string): IdFactory;
|
|
44
|
+
export interface InMemoryProjectRepositoryOptions {
|
|
45
|
+
clock?: Clock;
|
|
46
|
+
idFactory?: IdFactory;
|
|
47
|
+
/** Seed projects (cloned defensively on insert). */
|
|
48
|
+
seed?: readonly Project[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* In-memory `ProjectRepository` (brief §10). Backs fixtures, tests, and browser
|
|
52
|
+
* inspection before Convex exists. Validates identity + settings on every write
|
|
53
|
+
* and enforces slug uniqueness across non-deleted projects.
|
|
54
|
+
*/
|
|
55
|
+
export declare class InMemoryProjectRepository implements ProjectRepository {
|
|
56
|
+
private readonly projects;
|
|
57
|
+
private readonly order;
|
|
58
|
+
private readonly clock;
|
|
59
|
+
private readonly nextId;
|
|
60
|
+
constructor(options?: InMemoryProjectRepositoryOptions);
|
|
61
|
+
list(): Promise<ProjectSummary[]>;
|
|
62
|
+
get(id: ProjectId): Promise<Project>;
|
|
63
|
+
create(input: CreateProjectInput): Promise<Project>;
|
|
64
|
+
update(id: ProjectId, input: UpdateProjectInput): Promise<Project>;
|
|
65
|
+
duplicate(id: ProjectId, input?: DuplicateProjectInput): Promise<Project>;
|
|
66
|
+
delete(id: ProjectId): Promise<void>;
|
|
67
|
+
private assertIdentity;
|
|
68
|
+
private assertSettings;
|
|
69
|
+
private assertSlugAvailable;
|
|
70
|
+
private deriveUniqueSlug;
|
|
71
|
+
}
|
|
72
|
+
/** Convenience guard used by callers that prefer a boolean to a thrown error. */
|
|
73
|
+
export declare function isBackendUnavailable(error: unknown): error is BackendUnavailableError;
|