@elytracms/core 0.0.8 → 0.0.9
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/dist/clipboard/build.js.map +1 -1
- package/dist/clipboard/clipboard.js.map +1 -1
- package/dist/clipboard/fragment.js.map +1 -1
- package/dist/clipboard/html.js.map +1 -1
- package/dist/clipboard/index.js.map +1 -1
- package/dist/clipboard/references.js.map +1 -1
- package/dist/clipboard/serialize.js.map +1 -1
- package/dist/cms-core/collection-shape.d.ts +43 -0
- package/dist/cms-core/collection-shape.js +129 -0
- package/dist/cms-core/collection-shape.js.map +1 -0
- package/dist/cms-core/collections.d.ts +5 -6
- package/dist/cms-core/collections.js +26 -13
- package/dist/cms-core/collections.js.map +1 -1
- package/dist/cms-core/documents.d.ts +1 -0
- package/dist/cms-core/documents.js +10 -0
- package/dist/cms-core/documents.js.map +1 -1
- package/dist/cms-core/envelopes.js.map +1 -1
- package/dist/cms-core/fields.js.map +1 -1
- package/dist/cms-core/fixtures.js.map +1 -1
- package/dist/cms-core/hierarchy.js.map +1 -1
- package/dist/cms-core/index.d.ts +1 -0
- package/dist/cms-core/index.js +1 -0
- package/dist/cms-core/index.js.map +1 -1
- package/dist/cms-core/infer.js.map +1 -1
- package/dist/cms-core/issues.d.ts +8 -0
- package/dist/cms-core/issues.js +10 -0
- package/dist/cms-core/issues.js.map +1 -1
- package/dist/cms-core/json-schema.js.map +1 -1
- package/dist/cms-core/localization.js.map +1 -1
- package/dist/cms-core/nesting-depth.js.map +1 -1
- package/dist/cms-core/routes.js.map +1 -1
- package/dist/cms-core/self-type.js.map +1 -1
- package/dist/cms-core/url-for-document.js.map +1 -1
- package/dist/cms-core/validate-document.js.map +1 -1
- package/dist/cms-core/versions.d.ts +1 -0
- package/dist/cms-core/versions.js.map +1 -1
- package/dist/collaboration/approval.js.map +1 -1
- package/dist/collaboration/collaboration.js.map +1 -1
- package/dist/collaboration/comments.js.map +1 -1
- package/dist/collaboration/core.js.map +1 -1
- package/dist/collaboration/index.js.map +1 -1
- package/dist/collaboration/presence.js.map +1 -1
- package/dist/collaboration/publishing.js.map +1 -1
- package/dist/collaboration/versions.js.map +1 -1
- package/dist/component-registry/index.js.map +1 -1
- package/dist/component-registry/issues.js.map +1 -1
- package/dist/component-registry/manifest.js.map +1 -1
- package/dist/component-registry/registry.js.map +1 -1
- package/dist/content/__fixtures__/filterable-collections.js.map +1 -1
- package/dist/content/__fixtures__/sample-accessor-types.js.map +1 -1
- package/dist/content/__fixtures__/sample-delivery-types.js.map +1 -1
- package/dist/content/assets.js.map +1 -1
- package/dist/content/binding-sources.js.map +1 -1
- package/dist/content/client.js.map +1 -1
- package/dist/content/codegen.js.map +1 -1
- package/dist/content/context.js.map +1 -1
- package/dist/content/cursor.js.map +1 -1
- package/dist/content/index.js.map +1 -1
- package/dist/content/locale.js.map +1 -1
- package/dist/content/perspective.js.map +1 -1
- package/dist/content/populate.js.map +1 -1
- package/dist/content/query.js.map +1 -1
- package/dist/content/raw.js.map +1 -1
- package/dist/content/resolve.js.map +1 -1
- package/dist/content/serialize.js.map +1 -1
- package/dist/content/tags.js.map +1 -1
- package/dist/data-binding/fixtures.js.map +1 -1
- package/dist/data-binding/index.js.map +1 -1
- package/dist/data-binding/issues.js.map +1 -1
- package/dist/data-binding/resolve.js.map +1 -1
- package/dist/data-binding/sample.js.map +1 -1
- package/dist/data-binding/sources.js.map +1 -1
- package/dist/data-binding/tokens.js.map +1 -1
- package/dist/design-tokens/css.js.map +1 -1
- package/dist/design-tokens/index.js.map +1 -1
- package/dist/design-tokens/style-guide.js.map +1 -1
- package/dist/design-tokens/tokens.js.map +1 -1
- package/dist/export-sync/builder-source.d.ts +1 -0
- package/dist/export-sync/builder-source.js.map +1 -1
- package/dist/export-sync/check.js.map +1 -1
- package/dist/export-sync/cli.js.map +1 -1
- package/dist/export-sync/core.js.map +1 -1
- package/dist/export-sync/eject.js.map +1 -1
- package/dist/export-sync/fixtures.js.map +1 -1
- package/dist/export-sync/generate.js.map +1 -1
- package/dist/export-sync/index.js.map +1 -1
- package/dist/export-sync/init.js.map +1 -1
- package/dist/export-sync/manifest-host.js.map +1 -1
- package/dist/export-sync/node.js.map +1 -1
- package/dist/export-sync/push.js.map +1 -1
- package/dist/export-sync/registry-sync-client.js.map +1 -1
- package/dist/export-sync/sync.js.map +1 -1
- package/dist/export-sync/typegen.js.map +1 -1
- package/dist/export-sync/validate.js.map +1 -1
- package/dist/export-sync/watch.js.map +1 -1
- package/dist/operations/assets.js.map +1 -1
- package/dist/operations/authorization.js.map +1 -1
- package/dist/operations/changesets.js.map +1 -1
- package/dist/operations/client.js.map +1 -1
- package/dist/operations/core.js.map +1 -1
- package/dist/operations/documents.d.ts +21 -0
- package/dist/operations/documents.js.map +1 -1
- package/dist/operations/graph.js.map +1 -1
- package/dist/operations/index.js.map +1 -1
- package/dist/operations/members.js.map +1 -1
- package/dist/operations/publishing.js.map +1 -1
- package/dist/operations/references.js.map +1 -1
- package/dist/operations/schema.d.ts +18 -0
- package/dist/operations/schema.js.map +1 -1
- package/dist/operations/tokens.js.map +1 -1
- package/dist/persistence/adapter.js.map +1 -1
- package/dist/persistence/assets.js.map +1 -1
- package/dist/persistence/backend-validation.js.map +1 -1
- package/dist/persistence/cli-tokens.js.map +1 -1
- package/dist/persistence/cms.d.ts +3 -0
- package/dist/persistence/cms.js.map +1 -1
- package/dist/persistence/contract-scenarios.js.map +1 -1
- package/dist/persistence/core.js.map +1 -1
- package/dist/persistence/graph.js.map +1 -1
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/members.js.map +1 -1
- package/dist/persistence/publishing.js.map +1 -1
- package/dist/persistence/reference-extraction.js.map +1 -1
- package/dist/persistence/reference-indexing.js.map +1 -1
- package/dist/persistence/references.js.map +1 -1
- package/dist/persistence/seed.js.map +1 -1
- package/dist/persistence/self-maintaining-adapter.js.map +1 -1
- package/dist/plugins/asset-storage.js.map +1 -1
- package/dist/plugins/component-package.js.map +1 -1
- package/dist/plugins/data-sources.js.map +1 -1
- package/dist/plugins/examples.js.map +1 -1
- package/dist/plugins/export-targets.js.map +1 -1
- package/dist/plugins/field-types.js.map +1 -1
- package/dist/plugins/hooks.js.map +1 -1
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/marketplace.js.map +1 -1
- package/dist/plugins/plugin.js.map +1 -1
- package/dist/plugins/templates.js.map +1 -1
- package/dist/project-graph/binding.js.map +1 -1
- package/dist/project-graph/container.js.map +1 -1
- package/dist/project-graph/edit.js.map +1 -1
- package/dist/project-graph/fixtures.js.map +1 -1
- package/dist/project-graph/ids.js.map +1 -1
- package/dist/project-graph/index.js.map +1 -1
- package/dist/project-graph/issues.js.map +1 -1
- package/dist/project-graph/json.js.map +1 -1
- package/dist/project-graph/node.js.map +1 -1
- package/dist/project-graph/normalize.js.map +1 -1
- package/dist/project-graph/serialize.js.map +1 -1
- package/dist/project-graph/structure.js.map +1 -1
- package/dist/project-graph/validate.js.map +1 -1
- package/dist/rich-text/adapter.js.map +1 -1
- package/dist/rich-text/dom-editor.js.map +1 -1
- package/dist/rich-text/embed.js.map +1 -1
- package/dist/rich-text/fixtures.js.map +1 -1
- package/dist/rich-text/html.js.map +1 -1
- package/dist/rich-text/index.js.map +1 -1
- package/dist/rich-text/markdown.js.map +1 -1
- package/dist/rich-text/portable-text.js.map +1 -1
- package/dist/rich-text/registry.js.map +1 -1
- package/dist/rich-text/render.js.map +1 -1
- package/dist/rich-text/schema.js.map +1 -1
- package/dist/rich-text/test-support.js.map +1 -1
- package/dist/runtime-renderer/client.js.map +1 -1
- package/dist/runtime-renderer/condition.js.map +1 -1
- package/dist/runtime-renderer/content-client.js.map +1 -1
- package/dist/runtime-renderer/context.js.map +1 -1
- package/dist/runtime-renderer/fallback.js.map +1 -1
- package/dist/runtime-renderer/index.js.map +1 -1
- package/dist/runtime-renderer/primitives.js.map +1 -1
- package/dist/runtime-renderer/render.js.map +1 -1
- package/dist/runtime-renderer/rich-text.js.map +1 -1
- package/dist/starter-kits/index.js.map +1 -1
- package/dist/starter-kits/instantiate.js.map +1 -1
- package/dist/starter-kits/kit.js.map +1 -1
- package/dist/starter-kits/kits.js.map +1 -1
- package/dist/starter-kits/manifests.js.map +1 -1
- package/dist/starter-kits/upgrade.js.map +1 -1
- package/dist/starter-kits/validate.js.map +1 -1
- package/dist/studio-core/context.js.map +1 -1
- package/dist/studio-core/errors.js.map +1 -1
- package/dist/studio-core/fixtures.js.map +1 -1
- package/dist/studio-core/ids.js.map +1 -1
- package/dist/studio-core/index.js.map +1 -1
- package/dist/studio-core/issues.js.map +1 -1
- package/dist/studio-core/metadata.js.map +1 -1
- package/dist/studio-core/repository.js.map +1 -1
- package/dist/studio-core/sections.d.ts +1 -1
- package/dist/studio-core/sections.js.map +1 -1
- package/dist/studio-core/validate.js.map +1 -1
- package/dist/studio-core/workspace-config.d.ts +4 -0
- package/dist/studio-core/workspace-config.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/project-graph/fixtures.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/project-graph/fixtures.ts"],"names":[],"mappings":"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","sourcesContent":["import { OUTLET_SLOT } from './ids'\nimport type { ComponentNode } from './node'\nimport type { ProjectGraph } from './structure'\nimport { PROJECT_GRAPH_SCHEMA_VERSION } from './structure'\nimport type { ManifestView } from './validate'\nimport {\n containerAlignmentSchema,\n gridColumnsSchema,\n gridContainerNode,\n isSpacingTokenName,\n stackContainerNode,\n stackDirectionSchema,\n} from './container'\n\nconst isGapValue = (v: unknown): boolean =>\n isSpacingTokenName(v) || (typeof v === 'number' && Number.isInteger(v) && v >= 0)\n\n/**\n * Minimal manifest views for the primitives used by the sample graphs. Lets the graph\n * package validate its own fixtures without depending on the component registry. The\n * registry's real manifests satisfy the same `ManifestView` shape.\n */\nexport const sampleManifestViews: Record<string, ManifestView> = {\n 'base.primitives.Stack': {\n id: 'base.primitives.Stack',\n props: {\n // Token name (canonical) or legacy non-negative integer (EC-161).\n gap: { bindable: true, validate: isGapValue },\n direction: { bindable: false, validate: (v) => stackDirectionSchema.safeParse(v).success },\n align: { bindable: false, validate: (v) => containerAlignmentSchema.safeParse(v).success },\n },\n slots: [{ name: 'children' }],\n },\n 'base.primitives.Grid': {\n id: 'base.primitives.Grid',\n props: {\n columns: { bindable: true, validate: (v) => gridColumnsSchema.safeParse(v).success },\n gap: { bindable: true, validate: isGapValue },\n align: { bindable: false, validate: (v) => containerAlignmentSchema.safeParse(v).success },\n },\n slots: [{ name: 'children' }],\n },\n 'base.primitives.Heading': {\n id: 'base.primitives.Heading',\n props: {\n level: { bindable: false, validate: (v) => typeof v === 'number' && v >= 1 && v <= 6 },\n text: { bindable: true, validate: (v) => typeof v === 'string' },\n },\n },\n 'base.primitives.Text': {\n id: 'base.primitives.Text',\n props: { value: { bindable: true, validate: (v) => typeof v === 'string' } },\n },\n 'base.primitives.Repeater': {\n id: 'base.primitives.Repeater',\n props: { items: { bindable: true } },\n slots: [{ name: 'item', required: true }],\n },\n 'base.primitives.Container': {\n id: 'base.primitives.Container',\n // The outlet is filled by the renderer (composition injection), so it is not authored-required.\n slots: [{ name: OUTLET_SLOT }],\n },\n}\n\nexport const sampleKnownSourceIds: ReadonlySet<string> = new Set(['cms.posts'])\n\nconst mainLayoutRoot: ComponentNode = {\n id: 'n-layout-root',\n componentId: 'base.primitives.Container',\n slots: { [OUTLET_SLOT]: [] },\n}\n\n/**\n * A sample composition (EC-187): the home page's `body` field value — an ordered\n * list of component nodes the renderer composes into a layout outlet. This is the\n * page content that used to live on `validSampleGraph.pages[0].root`; the graph is\n * now layouts-only, so the page body lives here (and, at delivery, in a `page`\n * collection document — see `@elytracms/core/cms-core` `samplePageDocuments`).\n */\nexport const sampleHomeComposition: ComponentNode[] = [\n {\n id: 'n-heading',\n componentId: 'base.primitives.Heading',\n props: {\n level: { kind: 'static', value: 1 },\n text: { kind: 'static', value: 'Welcome to Elytra' },\n },\n },\n {\n id: 'n-intro',\n componentId: 'base.primitives.Text',\n props: { value: { kind: 'static', value: 'A code-first website builder.' } },\n },\n {\n id: 'n-repeater',\n componentId: 'base.primitives.Repeater',\n props: { items: { kind: 'binding', binding: { sourceId: 'cms.posts', token: '/', mode: 'value' } } },\n slots: {\n item: [\n {\n id: 'n-post-title',\n componentId: 'base.primitives.Text',\n props: {\n value: { kind: 'binding', binding: { sourceId: 'cms.posts', token: '/title', mode: 'repeaterItem' } },\n },\n },\n ],\n },\n },\n]\n\n/** A valid sample project graph (brief §10 / Phase 1) — LAYOUTS-ONLY (EC-187). */\nexport const validSampleGraph: ProjectGraph = {\n id: 'proj-sample',\n schemaVersion: PROJECT_GRAPH_SCHEMA_VERSION,\n metadata: { name: 'Sample Project' },\n layouts: [{ id: 'layout.main', name: 'Main', root: mainLayoutRoot }],\n}\n\n// ---- Invalid-state fixtures (each isolates exactly one issue) ----\n//\n// EC-187: `validateProjectGraph` walks LAYOUTS only — a page is a composition\n// field value validated by `validateCompositionValue`. So each invalid-state\n// fixture places its single defect on a LAYOUT root, and the matching bare\n// `ComponentNode` is also exported for tests that validate a composition value\n// directly (`validateComponentNode` / `validateCompositionValue`).\n\n/** A layouts-only graph wrapping one defective root as a layout. */\nfunction layoutGraph(id: string, root: ComponentNode): ProjectGraph {\n return {\n id,\n schemaVersion: PROJECT_GRAPH_SCHEMA_VERSION,\n layouts: [{ id: `${id}.layout`, name: 'Layout', root }],\n }\n}\n\nexport const nodeWithInvalidComponentName: ComponentNode = {\n id: 'n-bad',\n componentId: 'NotNamespaced',\n props: {},\n}\nexport const graphWithInvalidComponentName: ProjectGraph = layoutGraph(\n 'proj-bad-name',\n nodeWithInvalidComponentName,\n)\n\nexport const nodeWithUnknownComponent: ComponentNode = {\n id: 'n-missing',\n componentId: 'project.DoesNotExist',\n}\nexport const graphWithUnknownComponent: ProjectGraph = layoutGraph(\n 'proj-unknown',\n nodeWithUnknownComponent,\n)\n\nexport const nodeWithMissingRequiredSlot: ComponentNode = {\n id: 'n-empty-repeater',\n componentId: 'base.primitives.Repeater',\n props: {},\n slots: {},\n}\nexport const graphWithMissingRequiredSlot: ProjectGraph = layoutGraph(\n 'proj-missing-slot',\n nodeWithMissingRequiredSlot,\n)\n\nexport const nodeWithUnresolvedBinding: ComponentNode = {\n id: 'n-text',\n componentId: 'base.primitives.Text',\n props: { value: { kind: 'binding', binding: { sourceId: 'missing.source', token: '/x', mode: 'value' } } },\n}\nexport const graphWithUnresolvedBinding: ProjectGraph = layoutGraph(\n 'proj-unresolved',\n nodeWithUnresolvedBinding,\n)\n\nexport const nodeWithDuplicateIds: ComponentNode = {\n id: 'dup',\n componentId: 'base.primitives.Stack',\n slots: { children: [{ id: 'dup', componentId: 'base.primitives.Text', props: { value: { kind: 'static', value: 'x' } } }] },\n}\nexport const graphWithDuplicateIds: ProjectGraph = layoutGraph('proj-dupe', nodeWithDuplicateIds)\n\n/** A simple in-memory `ComponentLookup` over the sample manifest views. */\nexport const sampleComponentLookup = {\n has: (id: string) => id in sampleManifestViews,\n get: (id: string) => sampleManifestViews[id],\n}\n\n// ---- Layout-container fixtures (EC-161) ----\n\nconst textNode = (id: string, value: string): ComponentNode => ({\n id,\n componentId: 'base.primitives.Text',\n props: { value: { kind: 'static', value } },\n})\n\nfunction containerGraph(id: string, root: ComponentNode): ProjectGraph {\n return {\n id,\n schemaVersion: PROJECT_GRAPH_SCHEMA_VERSION,\n layouts: [{ id: `${id}.layout`, name: 'Layout', root }],\n }\n}\n\n/**\n * A valid container graph with every canonical prop token-bound: a vertical Stack\n * (gap `4`, align `start`) holding a 2-column Grid (gap `2`) of mixed children and\n * a horizontal Stack. Round-trips losslessly through serialization.\n */\nexport const tokenizedContainersGraph: ProjectGraph = containerGraph(\n 'proj-containers',\n stackContainerNode('n-root', { direction: 'vertical', gap: '4', align: 'start' }, [\n gridContainerNode('n-grid', { columns: 2, gap: '2', align: 'stretch' }, [\n textNode('n-cell-1', 'Cell one'),\n {\n id: 'n-cell-2',\n componentId: 'base.primitives.Heading',\n props: { level: { kind: 'static', value: 2 }, text: { kind: 'static', value: 'Cell two' } },\n },\n ]),\n stackContainerNode('n-row', { direction: 'horizontal', gap: '2', align: 'center' }, [\n textNode('n-row-a', 'Left'),\n textNode('n-row-b', 'Right'),\n ]),\n ]),\n)\n\n/**\n * Degenerate \"wrapper soup\": single-child Stack chains, an empty Grid, and a\n * container-of-containers — the canonical input for normalization tests.\n * `normalizeContainers` collapses it to a root Stack with two Text children.\n */\nexport const wrapperSoupGraph: ProjectGraph = containerGraph(\n 'proj-soup',\n stackContainerNode('n-root', { gap: '4' }, [\n stackContainerNode('n-wrap-1', { gap: '2' }, [\n stackContainerNode('n-wrap-2', {}, [\n gridContainerNode('n-wrap-3', { columns: 2 }, [textNode('n-deep', 'Deeply wrapped')]),\n ]),\n ]),\n gridContainerNode('n-empty-grid', { columns: 3, gap: '2' }, []),\n textNode('n-plain', 'Plain sibling'),\n ]),\n)\n\n// Malformed-container fixtures — each isolates exactly one issue.\n\nexport const graphWithInvalidContainerDirection: ProjectGraph = containerGraph('proj-bad-direction', {\n id: 'n-bad-direction',\n componentId: 'base.primitives.Stack',\n props: { direction: { kind: 'static', value: 'diagonal' } },\n slots: { children: [textNode('n-d1', 'a'), textNode('n-d2', 'b')] },\n})\n\nexport const graphWithInvalidContainerGap: ProjectGraph = containerGraph('proj-bad-gap', {\n id: 'n-bad-gap',\n componentId: 'base.primitives.Stack',\n props: { gap: { kind: 'static', value: '17rem' } },\n slots: { children: [textNode('n-g1', 'a'), textNode('n-g2', 'b')] },\n})\n\nexport const graphWithInvalidContainerColumns: ProjectGraph = containerGraph('proj-bad-columns', {\n id: 'n-bad-columns',\n componentId: 'base.primitives.Grid',\n props: { columns: { kind: 'static', value: 0 } },\n slots: { children: [textNode('n-c1', 'a'), textNode('n-c2', 'b')] },\n})\n\nexport const graphWithInvalidContainerAlignment: ProjectGraph = containerGraph('proj-bad-align', {\n id: 'n-bad-align',\n componentId: 'base.primitives.Grid',\n props: { columns: { kind: 'static', value: 2 }, align: { kind: 'static', value: 'justify' } },\n slots: { children: [textNode('n-a1', 'a'), textNode('n-a2', 'b')] },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/project-graph/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,gFAAgF;AAChF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAGzC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,6EAA6E,CAAA;AAE/E,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC/C,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAA;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/project-graph/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,gFAAgF;AAChF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAGzC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,6EAA6E,CAAA;AAE/E,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC/C,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAA;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAA","sourcesContent":["import { z } from 'zod'\n\n/** Generic non-empty identifier used for node / page / layout / project ids. */\nexport const idSchema = z.string().min(1)\nexport type Id = z.infer<typeof idSchema>\n\n/**\n * Namespaced component id, e.g. `base.primitives.Stack` or `project.MarketingHero`.\n *\n * NOTE: the graph schema stores component ids as plain non-empty strings so that a\n * graph referencing a badly-named or unknown component still *parses* (the renderer\n * can show a fallback and the validator can emit a structured issue). Naming is\n * checked semantically in `validate.ts`, not at parse time.\n */\nexport const COMPONENT_ID_PATTERN =\n /^(base\\.primitives|project)\\.[A-Za-z][A-Za-z0-9]*(\\.[A-Za-z][A-Za-z0-9]*)*$/\n\nexport function isValidComponentId(componentId: string): boolean {\n return COMPONENT_ID_PATTERN.test(componentId)\n}\n\n/** The reserved default-children slot name and the layout outlet slot name. */\nexport const DEFAULT_SLOT = 'children'\nexport const OUTLET_SLOT = 'outlet'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project-graph/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project-graph/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA","sourcesContent":["export * from './json'\nexport * from './ids'\nexport * from './binding'\nexport * from './node'\nexport * from './structure'\nexport * from './container'\nexport * from './normalize'\nexport * from './issues'\nexport * from './validate'\nexport * from './serialize'\nexport * from './edit'\nexport * from './fixtures'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/project-graph/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAExC,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,wBAAwB;IACxB,mBAAmB;IACnB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,qBAAqB;IACrB,oBAAoB;IACpB,uBAAuB;IACvB,cAAc;IACd,+EAA+E;IAC/E,8DAA8D;IAC9D,qBAAqB;IACrB,2EAA2E;IAC3E,2EAA2E;IAC3E,gFAAgF;IAChF,uBAAuB;IACvB,gBAAgB;IAChB,gBAAgB;IAChB,oEAAoE;IACpE,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;IACvB,2BAA2B;IAC3B,yEAAyE;IACzE,8BAA8B;CAC/B,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;AAG/D,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,mFAAmF;IACnF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChD,8CAA8C;IAC9C,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/project-graph/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAExC,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,wBAAwB;IACxB,mBAAmB;IACnB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,qBAAqB;IACrB,oBAAoB;IACpB,uBAAuB;IACvB,cAAc;IACd,+EAA+E;IAC/E,8DAA8D;IAC9D,qBAAqB;IACrB,2EAA2E;IAC3E,2EAA2E;IAC3E,gFAAgF;IAChF,uBAAuB;IACvB,gBAAgB;IAChB,gBAAgB;IAChB,oEAAoE;IACpE,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;IACvB,2BAA2B;IAC3B,yEAAyE;IACzE,8BAA8B;CAC/B,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;AAG/D,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,mFAAmF;IACnF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChD,8CAA8C;IAC9C,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { idSchema } from './ids'\nimport { jsonValueSchema } from './json'\n\n/** Stable codes for structured validation issues (brief §4.11, §7.1). */\nexport const issueCodeSchema = z.enum([\n 'invalid-component-name',\n 'unknown-component',\n 'duplicate-node-id',\n 'unknown-prop',\n 'invalid-prop',\n 'binding-not-allowed',\n 'unresolved-binding',\n 'missing-required-slot',\n 'unknown-slot',\n // Placement constraints (EC-186): a component appears where its slot's `allow`\n // vocabulary — or a composition field's `allow` — forbids it.\n 'forbidden-component',\n // Canvas-eligibility (EC-191): a server-only (RSC / non-client-renderable)\n // component was placed in an editor composition, which is client-rendered.\n // Such components belong in dev frames (page.tsx / layout.tsx), not the canvas.\n 'server-only-component',\n 'unknown-layout',\n 'route-conflict',\n // Layout containers (EC-161): malformed Stack/Grid canonical props.\n 'invalid-container-direction',\n 'invalid-container-alignment',\n 'invalid-container-gap',\n 'invalid-container-columns',\n // Responsive defaults (EC-163): malformed Grid stack-on-mobile override.\n 'invalid-container-responsive',\n])\nexport type IssueCode = z.infer<typeof issueCodeSchema>\n\nexport const issueSeveritySchema = z.enum(['error', 'warning'])\nexport type IssueSeverity = z.infer<typeof issueSeveritySchema>\n\n/** A structured validation issue carrying a JSON path into the graph. */\nexport const validationIssueSchema = z.object({\n code: issueCodeSchema,\n severity: issueSeveritySchema,\n message: z.string(),\n /** JSON path into the graph, e.g. ['pages', 0, 'root', 'slots', 'children', 1]. */\n path: z.array(z.union([z.string(), z.number()])),\n /** The offending node id, when applicable. */\n nodeId: idSchema.optional(),\n meta: z.record(z.string(), jsonValueSchema).optional(),\n})\nexport type ValidationIssue = z.infer<typeof validationIssueSchema>\n\nexport type GraphPath = ReadonlyArray<string | number>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/project-graph/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,MAAM,CAAC,MAAM,eAAe,GAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/D,CAAC,CAAC,KAAK,CAAC;IACN,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,OAAO,EAAE;IACX,CAAC,CAAC,IAAI,EAAE;IACR,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACxB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;CACtC,CAAC,CACH,CAAA"}
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/project-graph/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,MAAM,CAAC,MAAM,eAAe,GAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/D,CAAC,CAAC,KAAK,CAAC;IACN,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,OAAO,EAAE;IACX,CAAC,CAAC,IAAI,EAAE;IACR,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACxB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;CACtC,CAAC,CACH,CAAA","sourcesContent":["import { z } from 'zod'\n\n/** A JSON-serializable value. The project graph contains only these — never functions or runtime handles. */\nexport type JsonValue =\n | string\n | number\n | boolean\n | null\n | JsonValue[]\n | { [key: string]: JsonValue }\n\nexport const jsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(jsonValueSchema),\n z.record(z.string(), jsonValueSchema),\n ]),\n)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/project-graph/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAGxC,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC1D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC/D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;CAC1E,CAAC,CAAA;AAiBF,MAAM,CAAC,MAAM,mBAAmB,GAA6B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACvE,CAAC,CAAC,MAAM,CAAC;IACP,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,QAAQ;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpE,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;CACtC,CAAC,CACH,CAAA;AAED,gDAAgD;AAChD,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AACrC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA0B,CAAC,EAAE,KAAK,QAAQ;QAClD,OAAQ,KAAmC,CAAC,WAAW,KAAK,QAAQ,CACrE,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IAC9D,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/project-graph/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAGxC,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC1D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC/D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;CAC1E,CAAC,CAAA;AAiBF,MAAM,CAAC,MAAM,mBAAmB,GAA6B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACvE,CAAC,CAAC,MAAM,CAAC;IACP,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,QAAQ;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpE,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;CACtC,CAAC,CACH,CAAA;AAED,gDAAgD;AAChD,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AACrC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA0B,CAAC,EAAE,KAAK,QAAQ;QAClD,OAAQ,KAAmC,CAAC,WAAW,KAAK,QAAQ,CACrE,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IAC9D,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC","sourcesContent":["import { z } from 'zod'\nimport { bindingReferenceSchema, conditionSchema } from './binding'\nimport type { BindingReference, Condition } from './binding'\nimport { idSchema } from './ids'\nimport { jsonValueSchema } from './json'\nimport type { JsonValue } from './json'\n\n/** A prop value is either a static JSON value or a binding into a data source. */\nexport const propValueSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('static'), value: jsonValueSchema }),\n z.object({ kind: z.literal('binding'), binding: bindingReferenceSchema }),\n])\nexport type PropValue = z.infer<typeof propValueSchema>\n\n/**\n * An instance of a registered component. Recursive via `slots`: each named slot\n * holds an ordered list of child nodes. The reserved slot `children` is the default\n * insertion point.\n */\nexport interface ComponentNode {\n id: string\n /** Namespaced registered component id (validated semantically, not at parse time). */\n componentId: string\n props?: Record<string, PropValue>\n slots?: Record<string, ComponentNode[]>\n condition?: Condition\n}\n\nexport const componentNodeSchema: z.ZodType<ComponentNode> = z.lazy(() =>\n z.object({\n id: idSchema,\n componentId: idSchema,\n props: z.record(z.string(), propValueSchema).optional(),\n slots: z.record(z.string(), z.array(componentNodeSchema)).optional(),\n condition: conditionSchema.optional(),\n }),\n)\n\n/** Convenience constructors for prop values. */\nexport function staticProp(value: JsonValue): PropValue {\n return { kind: 'static', value }\n}\n\nexport function boundProp(binding: BindingReference): PropValue {\n return { kind: 'binding', binding }\n}\n\n/** Structural guard for a stored component node (id + componentId present). */\nexport function isComponentNode(value: unknown): value is ComponentNode {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { id?: unknown }).id === 'string' &&\n typeof (value as { componentId?: unknown }).componentId === 'string'\n )\n}\n\n/**\n * Coerce a stored blocks/composition field value into its root node list — the\n * inverse of how a `blocks` field persists (a single node for cardinality\n * `one`, an array for `many`). Non-node entries are dropped; anything else\n * yields `[]`.\n */\nexport function blockRootsOf(value: unknown): ComponentNode[] {\n if (Array.isArray(value)) return value.filter(isComponentNode)\n return isComponentNode(value) ? [value] : []\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/project-graph/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAGpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,4DAA4D;AAC5D,SAAS,qBAAqB,CAAC,IAAmB;IAChD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAC1C,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CACnE,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAmB;IACvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,qBAAqB,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA,CAAC,kCAAkC;IACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAA,CAAC,4BAA4B;IAC7E,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,kGAAkG;AAClG,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAC5B,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,KAAK,GAAoC,EAAE,CAAA;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,MAAM,IAAI,GAAoB,EAAE,CAAA;QAChC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;YACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YACzC,IAAI,UAAU,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC3E,WAAW,GAAG,IAAI,CAAA;YACpB,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;QACxB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;QAC3C,IAAI,WAAW;YAAE,OAAO,GAAG,IAAI,CAAA;IACjC,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAmB;IACrD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7C,OAAO,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,GAAG,IAAI,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AAChD,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,qBAAqB,CAAC,IAAmB;IACvD,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;AAC3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/project-graph/normalize.ts"],"names":[],"mappings":"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","sourcesContent":["import { DEFAULT_SLOT } from './ids'\nimport type { ComponentNode } from './node'\nimport type { Layout, ProjectGraph } from './structure'\nimport { isLayoutContainerNode } from './container'\n\n/**\n * Layout-container normalization (EC-161, vision §3.1 / §6).\n *\n * Pure, graph-level functions — no UI, no store coupling — that keep container\n * structure healthy after edits (\"no wrapper soup after six months of editing\"):\n *\n * 1. **Empty containers are removed.** A `Stack`/`Grid` whose `children` slot is\n * empty disappears from its parent slot.\n * 2. **Single-child containers dissolve in place.** The remaining child takes the\n * container's position in the parent slot.\n * 3. **Cascades resolve in one pass.** Normalization is bottom-up, so dissolving\n * or removing an inner container can dissolve its (now single-child or empty)\n * ancestors in the same call.\n *\n * Guard rails (deliberate non-rules):\n * - **Roots are anchors.** A page/layout root is never dissolved or removed, even\n * when it is an empty or single-child container — pages must keep a root, and\n * the root's identity is stable for selection/undo.\n * - **Conditional containers are meaningful wrappers.** A container carrying a\n * render `condition` gates its children; dissolving it would drop the gate, so\n * it is left intact.\n * - **Foreign slot content is never dropped.** A container with nodes in any slot\n * other than `children` is malformed (validation flags it) but normalization\n * refuses to silently destroy content.\n *\n * Properties (tested): deterministic, identity-preserving on already-normal input\n * (`normalize(g) === g`), and therefore idempotent\n * (`normalize(normalize(g)) === normalize(g)`).\n */\n\n/** True when any slot other than `children` holds nodes. */\nfunction hasForeignSlotContent(node: ComponentNode): boolean {\n return Object.entries(node.slots ?? {}).some(\n ([slot, children]) => slot !== DEFAULT_SLOT && children.length > 0,\n )\n}\n\n/**\n * Decide how an already-normalized child node appears in its parent slot:\n * `[]` removes it, `[child]` dissolves a single-child container in place, and\n * `[node]` keeps it as-is.\n */\nfunction resolveChild(node: ComponentNode): ComponentNode[] {\n if (!isLayoutContainerNode(node)) return [node]\n if (node.condition) return [node]\n if (hasForeignSlotContent(node)) return [node]\n const children = node.slots?.[DEFAULT_SLOT] ?? []\n if (children.length === 0) return [] // rule 1: empty container removed\n if (children.length === 1) return [children[0]!] // rule 2: dissolve in place\n return [node]\n}\n\n/** Bottom-up normalization of a node's slots. Returns the same reference when nothing changed. */\nfunction normalizeNode(node: ComponentNode): ComponentNode {\n if (!node.slots) return node\n let changed = false\n const slots: Record<string, ComponentNode[]> = {}\n for (const [slot, children] of Object.entries(node.slots)) {\n let slotChanged = false\n const next: ComponentNode[] = []\n for (const child of children) {\n const normalized = normalizeNode(child)\n const resolved = resolveChild(normalized)\n if (normalized !== child || resolved.length !== 1 || resolved[0] !== child) {\n slotChanged = true\n }\n next.push(...resolved)\n }\n slots[slot] = slotChanged ? next : children\n if (slotChanged) changed = true\n }\n return changed ? { ...node, slots } : node\n}\n\n/**\n * Normalize the container structure of a page/layout tree. The root itself is the\n * tree's anchor and is never dissolved or removed; its subtree is fully normalized.\n * Returns the same root reference when the tree is already normal.\n */\nexport function normalizeContainers(root: ComponentNode): ComponentNode {\n return normalizeNode(root)\n}\n\nfunction normalizeLayout(layout: Layout): Layout {\n const root = normalizeContainers(layout.root)\n return root === layout.root ? layout : { ...layout, root }\n}\n\n/**\n * Normalize every layout tree in a project graph (EC-187: layouts-only).\n * Identity-preserving: returns the same graph reference when nothing changed, so\n * callers (and undo histories holding normalized snapshots) can detect no-ops by\n * reference.\n */\nexport function normalizeProjectGraph(graph: ProjectGraph): ProjectGraph {\n let changed = false\n const layouts = graph.layouts.map((layout) => {\n const next = normalizeLayout(layout)\n if (next !== layout) changed = true\n return next\n })\n return changed ? { ...graph, layouts } : graph\n}\n\n/** True when a tree is already container-normal (normalization would be a no-op). */\nexport function isContainerNormalized(root: ComponentNode): boolean {\n return normalizeContainers(root) === root\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/project-graph/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAG5C;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;AAMD,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAAC,KAAuB;IACvD,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,IAAI,GAAG,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;AAC/F,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,yBAAyB,CAAC,KAAmB;IAC3D,OAAO,KAAK,CAAC,aAAa,KAAK,4BAA4B,CAAA;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAmB;IACxD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;AAMD,kGAAkG;AAClG,MAAM,UAAU,kBAAkB,CAAC,KAAuB;IACxD,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAClD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;AAC9F,CAAC"}
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/project-graph/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAG5C;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;AAMD,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAAC,KAAuB;IACvD,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,IAAI,GAAG,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;AAC/F,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,yBAAyB,CAAC,KAAmB;IAC3D,OAAO,KAAK,CAAC,aAAa,KAAK,4BAA4B,CAAA;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAmB;IACxD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;AAMD,kGAAkG;AAClG,MAAM,UAAU,kBAAkB,CAAC,KAAuB;IACxD,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAClD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;AAC9F,CAAC","sourcesContent":["import type { z } from 'zod'\nimport { PROJECT_GRAPH_SCHEMA_VERSION, projectGraphSchema } from './structure'\nimport type { ProjectGraph } from './structure'\nimport { componentNodeSchema } from './node'\nimport type { ComponentNode } from './node'\n\n/**\n * Serialize a project graph to JSON. Parsing first guarantees the output contains no\n * runtime-only values and that defaults are applied (brief §7.1).\n */\nexport function serializeProjectGraph(graph: ProjectGraph): string {\n const parsed = projectGraphSchema.parse(graph)\n return JSON.stringify(parsed)\n}\n\nexport type ParseResult =\n | { ok: true; graph: ProjectGraph }\n | { ok: false; error: z.ZodError }\n\n/** Parse a project graph from a JSON string or already-parsed value. Never throws on invalid input. */\nexport function parseProjectGraph(input: string | unknown): ParseResult {\n let json: unknown\n try {\n json = typeof input === 'string' ? JSON.parse(input) : input\n } catch {\n // Treat malformed JSON the same as a failed schema parse of `undefined`.\n json = undefined\n }\n const result = projectGraphSchema.safeParse(json)\n return result.success ? { ok: true, graph: result.data } : { ok: false, error: result.error }\n}\n\n/** True if the graph's schema version matches the version this package understands. */\nexport function isCompatibleSchemaVersion(graph: ProjectGraph): boolean {\n return graph.schemaVersion === PROJECT_GRAPH_SCHEMA_VERSION\n}\n\n/**\n * Serialize a composition **field value** (EC-186, AD-12) — a single\n * `ComponentNode` tree, not a whole graph. Parsing first applies defaults and\n * strips runtime-only values, exactly like {@link serializeProjectGraph}. A\n * field value is an untethered tree (no `schemaVersion` wrapper); revisions ride\n * the document that holds it.\n */\nexport function serializeComponentNode(node: ComponentNode): string {\n const parsed = componentNodeSchema.parse(node)\n return JSON.stringify(parsed)\n}\n\nexport type ParseNodeResult =\n | { ok: true; node: ComponentNode }\n | { ok: false; error: z.ZodError }\n\n/** Parse a composition field value from a JSON string or value. Never throws on invalid input. */\nexport function parseComponentNode(input: string | unknown): ParseNodeResult {\n let json: unknown\n try {\n json = typeof input === 'string' ? JSON.parse(input) : input\n } catch {\n json = undefined\n }\n const result = componentNodeSchema.safeParse(json)\n return result.success ? { ok: true, node: result.data } : { ok: false, error: result.error }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/project-graph/structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAA;AAGF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,QAAQ;IACZ,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9D,qDAAqD;IACrD,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3C,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/project-graph/structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAA;AAGF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,QAAQ;IACZ,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9D,qDAAqD;IACrD,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3C,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { idSchema } from './ids'\nimport { componentNodeSchema } from './node'\n\n/**\n * A shared layout wrapper. Its root tree contains an `outlet` slot where a page\n * composition renders (EC-187). Layouts are the dev-frame scaffolding — they\n * change rarely and remain in the canonical graph; pages moved OUT of the graph\n * into `page`-collection documents (their `body` is a composition field value).\n */\nexport const layoutSchema = z.object({\n id: idSchema,\n name: z.string().min(1),\n root: componentNodeSchema,\n})\nexport type Layout = z.infer<typeof layoutSchema>\n\n/**\n * Schema version 2 (EC-187): the graph is LAYOUTS-ONLY. Version 1 carried a\n * `pages` array (page-as-graph-node); v2 removes it — a page is now a document\n * in the `page` collection whose `body` composition renders into a layout via\n * `renderCompositionInLayout`. A deployment NOT reseeded to v2 serves a null\n * graph, so the host degrades to its visible fallback rather than crashing.\n */\nexport const PROJECT_GRAPH_SCHEMA_VERSION = 2\n\n/**\n * The canonical project graph — LAYOUTS-ONLY (EC-187). The single source of\n * truth for the dev-frame layout scaffolding; page content lives in the `page`\n * collection.\n */\nexport const projectGraphSchema = z.object({\n id: idSchema,\n schemaVersion: z.number().int().nonnegative(),\n metadata: z.object({ name: z.string().optional() }).optional(),\n /** Link to project settings owned by studio-core. */\n settingsRef: idSchema.optional(),\n layouts: z.array(layoutSchema).default([]),\n})\nexport type ProjectGraph = z.infer<typeof projectGraphSchema>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/project-graph/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/project-graph/validate.ts"],"names":[],"mappings":"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","sourcesContent":["import { isValidComponentId } from './ids'\nimport type { ComponentNode, PropValue } from './node'\nimport type { GraphPath, ValidationIssue } from './issues'\nimport type { ProjectGraph } from './structure'\nimport { collectContainerIssues } from './container'\n\n/**\n * Structural views of a component manifest, supplied by the registry. The graph\n * package depends only on these shapes (not on `@elytracms/core/component-registry`) so it\n * stays free of cycles. The registry's Manifest satisfies these structurally.\n */\nexport interface PropView {\n /** Whether this prop accepts a binding. Defaults to allowed when omitted. */\n bindable?: boolean\n /** Optional static-value validator (typically backed by the manifest's Zod schema). */\n validate?: (value: unknown) => boolean\n}\n\nexport interface SlotView {\n name: string\n required?: boolean\n /**\n * Allowed child component ids (EC-186). Omit to allow any registered\n * component; when present, a child whose `componentId` is not listed is a\n * `forbidden-component` error. Mirrors the registry's `SlotSpec.allow`.\n */\n allow?: readonly string[]\n}\n\nexport interface ManifestView {\n id: string\n props?: Record<string, PropView>\n slots?: SlotView[]\n /**\n * Canvas-eligibility (EC-191). `false` marks a server-only / RSC component that\n * is NOT client-renderable, so it may not appear in an editor composition (the\n * canvas is client-rendered). Omitted/true = canvas-eligible. Only enforced when\n * `requireCanvasEligible` is set (i.e. validating a composition value, not a\n * dev-authored page/layout frame).\n */\n clientRenderable?: boolean\n}\n\nexport interface ComponentLookup {\n has(componentId: string): boolean\n get(componentId: string): ManifestView | undefined\n}\n\nexport interface ValidateOptions {\n /** When provided, component existence + prop/slot rules are checked. */\n components?: ComponentLookup\n /** When provided, bindings are checked against the set of known data-source ids. */\n knownSourceIds?: ReadonlySet<string>\n /**\n * Require every node to be canvas-eligible (EC-191): a server-only component\n * (`clientRenderable === false`) is a `server-only-component` error. Set by\n * `validateCompositionValue` (editor compositions are client-rendered); off for\n * `validateProjectGraph` (dev frames may render RSC components).\n */\n requireCanvasEligible?: boolean\n}\n\nfunction issue(\n code: ValidationIssue['code'],\n severity: ValidationIssue['severity'],\n message: string,\n path: GraphPath,\n nodeId?: string,\n meta?: ValidationIssue['meta'],\n): ValidationIssue {\n return { code, severity, message, path: [...path], ...(nodeId ? { nodeId } : {}), ...(meta ? { meta } : {}) }\n}\n\nfunction checkBinding(\n prop: PropValue,\n opts: ValidateOptions,\n path: GraphPath,\n nodeId: string,\n issues: ValidationIssue[],\n): void {\n if (prop.kind !== 'binding') return\n const { knownSourceIds } = opts\n if (knownSourceIds && !knownSourceIds.has(prop.binding.sourceId)) {\n issues.push(\n issue(\n 'unresolved-binding',\n 'error',\n `Binding references unknown data source \"${prop.binding.sourceId}\".`,\n path,\n nodeId,\n { sourceId: prop.binding.sourceId },\n ),\n )\n }\n}\n\nfunction walkNode(\n node: ComponentNode,\n path: GraphPath,\n opts: ValidateOptions,\n seenIds: Map<string, GraphPath>,\n issues: ValidationIssue[],\n): void {\n // duplicate node id detection (graph-wide)\n const prior = seenIds.get(node.id)\n if (prior) {\n issues.push(\n issue('duplicate-node-id', 'error', `Duplicate node id \"${node.id}\".`, path, node.id, {\n firstSeenAt: [...prior],\n }),\n )\n } else {\n seenIds.set(node.id, path)\n }\n\n // component name well-formedness\n if (!isValidComponentId(node.componentId)) {\n issues.push(\n issue(\n 'invalid-component-name',\n 'error',\n `Component id \"${node.componentId}\" is not namespaced under base.primitives.* or project.*.`,\n [...path, 'componentId'],\n node.id,\n ),\n )\n }\n\n // Layout containers (EC-161): Stack/Grid canonical props (direction, gap,\n // alignment, columns) are graph semantics — checked intrinsically, with or\n // without a registry. Malformed values are explicit issues, never crashes.\n issues.push(...collectContainerIssues(node, path))\n\n const manifest = opts.components?.get(node.componentId)\n if (opts.components && !manifest) {\n issues.push(\n issue('unknown-component', 'error', `No registered component \"${node.componentId}\".`, path, node.id),\n )\n }\n\n // Canvas-eligibility (EC-191): a server-only component cannot live in a\n // client-rendered editor composition. Only enforced when requested.\n if (opts.requireCanvasEligible && manifest && manifest.clientRenderable === false) {\n issues.push(\n issue(\n 'server-only-component',\n 'error',\n `Component \"${node.componentId}\" is server-only (not client-renderable) and can't be placed in the canvas; use it in a dev frame (page.tsx / layout.tsx).`,\n path,\n node.id,\n ),\n )\n }\n\n // condition source binding\n if (node.condition && opts.knownSourceIds) {\n const sid = node.condition.source.sourceId\n if (!opts.knownSourceIds.has(sid)) {\n issues.push(\n issue('unresolved-binding', 'error', `Condition references unknown data source \"${sid}\".`, [...path, 'condition'], node.id, { sourceId: sid }),\n )\n }\n }\n\n // props\n if (node.props) {\n for (const [name, value] of Object.entries(node.props)) {\n const propPath: GraphPath = [...path, 'props', name]\n checkBinding(value, opts, propPath, node.id, issues)\n if (manifest) {\n const spec = manifest.props?.[name]\n if (!spec) {\n issues.push(issue('unknown-prop', 'warning', `Unknown prop \"${name}\" on \"${node.componentId}\".`, propPath, node.id))\n continue\n }\n if (value.kind === 'binding' && spec.bindable === false) {\n issues.push(issue('binding-not-allowed', 'error', `Prop \"${name}\" on \"${node.componentId}\" does not accept bindings.`, propPath, node.id))\n }\n if (value.kind === 'static' && spec.validate && !spec.validate(value.value)) {\n issues.push(issue('invalid-prop', 'error', `Invalid value for prop \"${name}\" on \"${node.componentId}\".`, propPath, node.id))\n }\n }\n }\n }\n\n // slots\n const slots = node.slots ?? {}\n if (manifest) {\n const declared = new Map((manifest.slots ?? []).map((s) => [s.name, s]))\n for (const slot of manifest.slots ?? []) {\n const children = slots[slot.name]\n if (slot.required && (!children || children.length === 0)) {\n issues.push(issue('missing-required-slot', 'error', `Missing required slot \"${slot.name}\" on \"${node.componentId}\".`, [...path, 'slots', slot.name], node.id))\n }\n }\n for (const name of Object.keys(slots)) {\n if (!declared.has(name)) {\n issues.push(issue('unknown-slot', 'warning', `Unknown slot \"${name}\" on \"${node.componentId}\".`, [...path, 'slots', name], node.id))\n }\n }\n // Slot placement vocabulary (EC-186): a slot's `allow` restricts which\n // component ids may be inserted; a child outside the set is forbidden.\n for (const slot of manifest.slots ?? []) {\n const allow = slot.allow\n if (!allow || allow.length === 0) continue\n const allowed = new Set(allow)\n ;(slots[slot.name] ?? []).forEach((child, i) => {\n if (!allowed.has(child.componentId)) {\n issues.push(\n issue(\n 'forbidden-component',\n 'error',\n `Component \"${child.componentId}\" is not allowed in slot \"${slot.name}\" of \"${node.componentId}\".`,\n [...path, 'slots', slot.name, i, 'componentId'],\n child.id,\n { slot: slot.name, allow: [...allow] },\n ),\n )\n }\n })\n }\n }\n\n for (const [slotName, children] of Object.entries(slots)) {\n children.forEach((child, i) => walkNode(child, [...path, 'slots', slotName, i], opts, seenIds, issues))\n }\n}\n\n/** Validate a project graph, returning structured issues (never throws on a parsed graph). */\nexport function validateProjectGraph(graph: ProjectGraph, opts: ValidateOptions = {}): ValidationIssue[] {\n const issues: ValidationIssue[] = []\n const seenIds = new Map<string, GraphPath>()\n\n // EC-187: the graph is LAYOUTS-ONLY — pages moved into the `page` collection\n // (their `body` is a composition field value validated by\n // `validateCompositionValue`). Layout-ref and route-conflict checks that used\n // to walk `graph.pages` no longer apply here; route conflicts are detected by\n // the CMS router (`createRouter`) over the `routes` collection.\n graph.layouts.forEach((layout, i) => {\n walkNode(layout.root, ['layouts', i, 'root'], opts, seenIds, issues)\n })\n\n return issues\n}\n\n/**\n * Validate a single component-node tree (EC-186, AD-12) — a composition **field\n * value**, not a whole graph. Reuses the exact node-tree walk\n * {@link validateProjectGraph} uses (component/prop/slot/container/binding rules\n * + slot `allow` placement), but applies none of the graph-level invariants\n * (layout refs, route conflicts). Node ids are checked for duplicates within\n * this tree only.\n */\nexport function validateComponentNode(\n node: ComponentNode,\n opts: ValidateOptions = {},\n): ValidationIssue[] {\n const issues: ValidationIssue[] = []\n walkNode(node, ['root'], opts, new Map<string, GraphPath>(), issues)\n return issues\n}\n\nexport interface CompositionValidateOptions extends ValidateOptions {\n /**\n * The composition field's allowed vocabulary (EC-186): component ids permitted\n * as TOP-LEVEL blocks of the value. Omit to allow any registered component;\n * deeper nesting is governed by slot `allow`. A top-level node outside the set\n * is a `forbidden-component` error.\n */\n allow?: readonly string[]\n}\n\n/**\n * Validate a composition **field value** (EC-186, AD-12): one root node\n * (`cardinality: 'one'`) or an ordered list (`'many'`). Each root is validated as\n * a component-node tree; the field's `allow` restricts the top-level vocabulary;\n * duplicate node ids are checked across the whole value. The registry + `allow`\n * are code (the leash); the tree is data.\n */\nexport function validateCompositionValue(\n value: ComponentNode | readonly ComponentNode[],\n opts: CompositionValidateOptions = {},\n): ValidationIssue[] {\n const roots = Array.isArray(value) ? value : [value]\n const issues: ValidationIssue[] = []\n const seenIds = new Map<string, GraphPath>()\n const allowList = opts.allow ?? []\n const allowed = allowList.length > 0 ? new Set(allowList) : undefined\n // A composition value is edited + rendered on the client canvas (EC-191), so\n // every node must be canvas-eligible — enforced regardless of the caller's opts.\n const walkOpts: ValidateOptions = { ...opts, requireCanvasEligible: true }\n roots.forEach((root, i) => {\n const path: GraphPath = ['root', i]\n if (allowed && !allowed.has(root.componentId)) {\n issues.push(\n issue(\n 'forbidden-component',\n 'error',\n `Component \"${root.componentId}\" is not in this field's allowed vocabulary.`,\n [...path, 'componentId'],\n root.id,\n { allow: [...allowList] },\n ),\n )\n }\n walkNode(root, path, walkOpts, seenIds, issues)\n })\n return issues\n}\n\n/** True if the graph has no error-severity issues. */\nexport function isGraphValid(issues: ValidationIssue[]): boolean {\n return !issues.some((i) => i.severity === 'error')\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/rich-text/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AA4ClD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAgC,EAAE;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,qBAAqB,CAAA;IAC1D,OAAO;QACL,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,mBAAmB;QAC3B,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,sBAAsB;QACjC,YAAY,EAAE,2BAA2B;QACzC,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE,EAAE,CACpC,mBAAmB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC;KAC3D,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/rich-text/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AA4ClD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAgC,EAAE;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,qBAAqB,CAAA;IAC1D,OAAO;QACL,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,mBAAmB;QAC3B,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,sBAAsB;QACjC,YAAY,EAAE,2BAA2B;QACzC,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE,EAAE,CACpC,mBAAmB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC;KAC3D,CAAA;AACH,CAAC","sourcesContent":["import type { ReactElement } from 'react'\nimport {\n RICH_TEXT_SCHEMA_VERSION,\n createRichTextValue,\n emptyRichTextValue,\n isCompatibleRichTextVersion,\n parseRichTextValue,\n serializeRichTextValue,\n} from './schema'\nimport type { ParseRichTextResult, RichTextDoc, RichTextValue } from './schema'\nimport { renderRichTextValue } from './render'\nimport type { RenderRichTextOptions, RichTextRenderIssue } from './render'\nimport { findUnknownNodes } from './render'\nimport { emptyRichTextRegistry } from './registry'\nimport type { RichTextRegistry } from './registry'\n\n/**\n * The project-owned rich-text adapter (brief §7.6, EC-025).\n *\n * This interface is the *only* surface consumers (CMS fields, the runtime\n * renderer, export) should depend on. It hides which editor produced the storage\n * JSON: the spike implements it over the directly-modelled ProseMirror format, and\n * a real TipTap-backed adapter can implement the same interface later with no\n * change to callers. Crucially, none of these methods require the editor bundle —\n * read, render, and validate are all server-safe.\n */\nexport interface RichTextAdapter {\n /** Schema version this adapter reads and writes. */\n readonly version: number\n\n /** An empty but valid versioned value. */\n empty(): RichTextValue\n\n /** Stamp a document tree with the current schema version. */\n create(doc: RichTextDoc): RichTextValue\n\n /** Parse/validate stored JSON (string or object). Never throws. */\n parse(input: string | unknown): ParseRichTextResult\n\n /** Serialize a value to canonical JSON. */\n serialize(value: RichTextValue): string\n\n /** Whether a value's stored version matches this adapter. */\n isCompatible(value: RichTextValue): boolean\n\n /** Server-safe read-only render of a value to a React element. */\n render(value: RichTextValue, options?: RenderRichTextOptions): ReactElement\n\n /** Collect unknown-node issues without rendering (pre-flight validation). */\n validate(value: RichTextValue): RichTextRenderIssue[]\n}\n\nexport interface CreateAdapterOptions {\n /** Custom block/inline renderers used by {@link RichTextAdapter.render}. */\n registry?: RichTextRegistry\n}\n\n/**\n * Build the default, project-owned adapter over the modelled storage format.\n *\n * A future TipTap-backed adapter would satisfy the same {@link RichTextAdapter}\n * interface — only its `render`/editor wiring would differ; storage stays identical.\n */\nexport function createRichTextAdapter(options: CreateAdapterOptions = {}): RichTextAdapter {\n const registry = options.registry ?? emptyRichTextRegistry\n return {\n version: RICH_TEXT_SCHEMA_VERSION,\n empty: emptyRichTextValue,\n create: createRichTextValue,\n parse: parseRichTextValue,\n serialize: serializeRichTextValue,\n isCompatible: isCompatibleRichTextVersion,\n render: (value, renderOptions = {}) =>\n renderRichTextValue(value, { registry, ...renderOptions }),\n validate: (value) => findUnknownNodes(value.doc, registry),\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-editor.js","sourceRoot":"","sources":["../../src/rich-text/dom-editor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dom-editor.js","sourceRoot":"","sources":["../../src/rich-text/dom-editor.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonValue } from '@elytracms/core/project-graph'\nimport type { RichTextDoc, RichTextMark, RichTextNode } from './schema'\n\n/**\n * Inline-editing DOM bridge (EC-159).\n *\n * The canvas edits rich text by making the *read-only rendered element itself*\n * contenteditable (the EC-158 approach — typography and layout are identical\n * between render and edit states by construction). This module owns the two\n * pure halves of that session:\n *\n * - **pairing** ({@link collectPreservedPairs}): before editing starts, walk\n * the storage tree and the rendered DOM in parallel (the renderer's mapping\n * is deterministic) and find every node that cannot be reconstructed from\n * markup — custom registry blocks/inlines, unknown nodes, images, embeds.\n * The host stamps those elements with {@link PRESERVE_NODE_ATTR} carrying\n * the node's exact JSON and `contenteditable=false`, so they render\n * correctly *inside* the live editor and survive the session byte-exact.\n *\n * - **parse-back** ({@link richTextDocFromDom}): after editing, invert the\n * renderer's markup (`render.tsx`) back into the storage tree. Stamped\n * elements restore their original node verbatim; everything else maps\n * structurally (p/h1..h6/ul/ol/li/blockquote/pre/br/hr + the built-in mark\n * tags). Never throws.\n *\n * Both halves work against minimal structural DOM interfaces so they are\n * unit-testable in a Node environment (this workspace has no DOM test env);\n * real `Element`/`Text` nodes satisfy them in the browser.\n *\n * Storage-format integrity: an untouched session must leave the stored value\n * byte-identical. The session guarantees that by *comparing*, not rewriting:\n * {@link richTextDocsEquivalent} checks the parsed-back tree against the\n * original (normalizing only DOM-induced text-run splits), and an equivalent\n * tree commits nothing — the stored bytes are never replaced by a re-serialization.\n */\n\n/** Attribute carrying a preserved node's exact storage JSON during a session. */\nexport const PRESERVE_NODE_ATTR = 'data-ec-rt-preserve'\n\n// ---------------------------------------------------------------------------\n// Structural DOM slice (real DOM nodes satisfy these).\n// ---------------------------------------------------------------------------\n\nexport const RT_ELEMENT_NODE = 1\nexport const RT_TEXT_NODE = 3\n\nexport interface RtDomText {\n readonly nodeType: number\n /** CharacterData.data — the exact text content. */\n readonly data: string\n}\n\nexport interface RtDomElement {\n readonly nodeType: number\n /** Uppercase in HTML documents; compared case-insensitively here. */\n readonly tagName: string\n readonly childNodes: ArrayLike<RtDomNode>\n getAttribute(name: string): string | null\n}\n\nexport type RtDomNode = RtDomText | RtDomElement\n\nexport function isRtElement(node: RtDomNode): node is RtDomElement {\n return node.nodeType === RT_ELEMENT_NODE\n}\n\nexport function isRtText(node: RtDomNode): node is RtDomText {\n return node.nodeType === RT_TEXT_NODE\n}\n\nfunction children(node: RtDomElement): RtDomNode[] {\n const out: RtDomNode[] = []\n for (let i = 0; i < node.childNodes.length; i++) out.push(node.childNodes[i]!)\n return out\n}\n\nfunction tag(el: RtDomElement): string {\n return el.tagName.toLowerCase()\n}\n\n// ---------------------------------------------------------------------------\n// Invertibility: which storage node types the markup parser can reconstruct.\n// ---------------------------------------------------------------------------\n\nconst INVERTIBLE_NODE_TYPES = new Set([\n 'doc',\n 'text',\n 'paragraph',\n 'heading',\n 'bulletList',\n 'orderedList',\n 'listItem',\n 'blockquote',\n 'codeBlock',\n 'hardBreak',\n 'horizontalRule',\n])\n\n/**\n * Whether a storage node type can be reconstructed from rendered markup.\n * Images, embeds, custom registry nodes, and unknown nodes are *not* — they\n * must be preserved verbatim during an editing session (atoms, not markup).\n */\nexport function isInvertibleRichTextNodeType(type: string): boolean {\n return INVERTIBLE_NODE_TYPES.has(type)\n}\n\n// ---------------------------------------------------------------------------\n// Pairing: storage nodes ↔ rendered elements (pre-edit, deterministic DOM).\n// ---------------------------------------------------------------------------\n\n/** A non-invertible storage node paired with the element that renders it. */\nexport interface PreservedPair {\n node: RichTextNode\n element: RtDomElement\n}\n\n/**\n * Walk a document tree and its rendered DOM in parallel and return every\n * non-invertible node paired with its element, so the host can stamp them\n * before the DOM becomes editable. Returns `null` when the DOM does not match\n * the renderer's deterministic mapping (the session should then refuse to\n * start rather than risk lossy parsing).\n */\nexport function collectPreservedPairs(doc: RichTextDoc, host: RtDomElement): PreservedPair[] | null {\n const pairs: PreservedPair[] = []\n return pairChildren(doc.content ?? [], children(host), pairs) ? pairs : null\n}\n\n/** Pair an ordered storage child list against an ordered DOM child list. */\nfunction pairChildren(nodes: readonly RichTextNode[], dom: RtDomNode[], out: PreservedPair[]): boolean {\n if (nodes.length !== dom.length) return false\n for (let i = 0; i < nodes.length; i++) {\n if (!pairNode(nodes[i]!, dom[i]!, out)) return false\n }\n return true\n}\n\nfunction pairNode(node: RichTextNode, dom: RtDomNode, out: PreservedPair[]): boolean {\n if (node.type === 'text') {\n // Renders as a bare text node, or as a chain of mark wrappers around one.\n return pairTextNode(node, dom)\n }\n if (!isRtElement(dom)) return false\n\n if (!isInvertibleRichTextNodeType(node.type)) {\n out.push({ node, element: dom })\n return true\n }\n\n switch (node.type) {\n case 'paragraph':\n case 'heading':\n case 'bulletList':\n case 'orderedList':\n case 'listItem':\n case 'blockquote':\n return pairChildren(node.content ?? [], children(dom), out)\n case 'codeBlock': {\n // pre > code > text — nothing preservable inside a code block.\n return tag(dom) === 'pre'\n }\n case 'hardBreak':\n return tag(dom) === 'br'\n case 'horizontalRule':\n return tag(dom) === 'hr'\n default:\n return true\n }\n}\n\n/** A text node renders as marks-nested wrappers ending in exactly one text node. */\nfunction pairTextNode(node: RichTextNode, dom: RtDomNode): boolean {\n let current: RtDomNode = dom\n let depth = 0\n const markCount = node.marks?.length ?? 0\n while (isRtElement(current)) {\n const kids = children(current)\n if (kids.length !== 1) return false\n current = kids[0]!\n depth++\n if (depth > markCount + 4) return false\n }\n return isRtText(current) && current.data === (node.text ?? '')\n}\n\n// ---------------------------------------------------------------------------\n// Parse-back: rendered (and edited) DOM → storage tree. Never throws.\n// ---------------------------------------------------------------------------\n\n/** A structured problem found while parsing edited DOM back to storage. */\nexport interface DomParseIssue {\n code: 'lossy-node'\n message: string\n /** The tag or unknown-node type that could not be fully reconstructed. */\n detail: string\n}\n\nexport interface DomToDocResult {\n doc: RichTextDoc\n issues: DomParseIssue[]\n}\n\nconst HEADING_LEVELS: Record<string, number> = { h1: 1, h2: 2, h3: 3, h4: 4, h5: 5, h6: 6 }\n\nconst MARK_BY_TAG: Record<string, string> = {\n strong: 'bold',\n b: 'bold',\n em: 'italic',\n i: 'italic',\n code: 'code',\n s: 'strike',\n strike: 'strike',\n del: 'strike',\n u: 'underline',\n}\n\nconst BLOCK_TAGS = new Set([\n 'p',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'ul',\n 'ol',\n 'li',\n 'blockquote',\n 'pre',\n 'hr',\n 'div',\n 'section',\n 'article',\n 'aside',\n 'figure',\n])\n\ninterface ParseCtx {\n issues: DomParseIssue[]\n}\n\n/** Restore a stamped element's original storage node ({@link PRESERVE_NODE_ATTR}). */\nfunction preservedNodeOf(el: RtDomElement): RichTextNode | null {\n const raw = el.getAttribute(PRESERVE_NODE_ATTR)\n if (raw === null) return null\n try {\n const parsed: unknown = JSON.parse(raw)\n if (typeof parsed === 'object' && parsed !== null && typeof (parsed as { type?: unknown }).type === 'string') {\n return parsed as RichTextNode\n }\n } catch {\n // fall through to lossy handling\n }\n return null\n}\n\nfunction textNodeOf(text: string, marks: readonly RichTextMark[]): RichTextNode {\n return marks.length > 0 ? { type: 'text', text, marks: [...marks] } : { type: 'text', text }\n}\n\n/** Parse inline content. `outerMarks` is ordered outermost→innermost. */\nfunction parseInline(nodes: RtDomNode[], outerMarks: RichTextMark[], ctx: ParseCtx): RichTextNode[] {\n const out: RichTextNode[] = []\n for (const node of nodes) {\n if (isRtText(node)) {\n if (node.data.length > 0) {\n // `outerMarks` is built by prepending on descent, so it already sits in\n // storage order: innermost-first (render wraps marks[0] innermost).\n out.push(textNodeOf(node.data, outerMarks))\n }\n continue\n }\n if (!isRtElement(node)) continue\n const preserved = preservedNodeOf(node)\n if (preserved) {\n out.push(preserved)\n continue\n }\n const t = tag(node)\n if (t === 'br') {\n out.push({ type: 'hardBreak' })\n continue\n }\n if (t === 'img') {\n out.push(imageNodeOf(node))\n continue\n }\n const mark = inlineMarkOf(node, ctx)\n if (mark) {\n out.push(...parseInline(children(node), [mark, ...outerMarks], ctx))\n continue\n }\n // Unknown inline wrapper (e.g. an editor-inserted span): descend transparently.\n out.push(...parseInline(children(node), outerMarks, ctx))\n }\n return out\n}\n\n/** The mark an inline wrapper element represents, if any. */\nfunction inlineMarkOf(el: RtDomElement, ctx: ParseCtx): RichTextMark | null {\n const t = tag(el)\n const builtin = MARK_BY_TAG[t]\n if (builtin) return { type: builtin }\n if (t === 'a') {\n const attrs: Record<string, JsonValue> = { href: el.getAttribute('href') ?? '#' }\n const target = el.getAttribute('target')\n if (target) attrs.target = target\n const rel = el.getAttribute('rel')\n // The renderer synthesizes rel=\"noopener noreferrer\" for target=_blank; do\n // not read that synthesis back into storage attrs.\n if (rel && !(target === '_blank' && rel === 'noopener noreferrer')) attrs.rel = rel\n return { type: 'link', attrs }\n }\n const unknownMark = el.getAttribute('data-unknown-mark')\n if (unknownMark) {\n ctx.issues.push({\n code: 'lossy-node',\n message: `Unknown mark \"${unknownMark}\" was reconstructed without its attributes.`,\n detail: unknownMark,\n })\n return { type: unknownMark }\n }\n return null\n}\n\nfunction imageNodeOf(el: RtDomElement): RichTextNode {\n const attrs: Record<string, JsonValue> = {\n src: el.getAttribute('src') ?? '',\n alt: el.getAttribute('alt') ?? '',\n }\n const title = el.getAttribute('title')\n if (title) attrs.title = title\n return { type: 'image', attrs }\n}\n\nfunction embedNodeOf(el: RtDomElement): RichTextNode {\n const attrs: Record<string, JsonValue> = {\n src: el.getAttribute('src') ?? '',\n title: el.getAttribute('title') ?? 'Embedded content',\n }\n const provider = el.getAttribute('data-embed-provider')\n if (provider) attrs.provider = provider\n return { type: 'embed', attrs }\n}\n\n/** Whether a DOM child list contains block-level elements. */\nfunction hasBlockChildren(nodes: RtDomNode[]): boolean {\n return nodes.some((n) => isRtElement(n) && BLOCK_TAGS.has(tag(n)))\n}\n\nfunction parseBlocks(nodes: RtDomNode[], ctx: ParseCtx): RichTextNode[] {\n const out: RichTextNode[] = []\n let looseInline: RtDomNode[] = []\n\n const flushLoose = (): void => {\n if (looseInline.length === 0) return\n const inline = parseInline(looseInline, [], ctx)\n looseInline = []\n if (inline.some((n) => n.type !== 'text' || (n.text ?? '').trim().length > 0)) {\n out.push({ type: 'paragraph', content: inline })\n }\n }\n\n for (const node of nodes) {\n if (isRtText(node)) {\n looseInline.push(node)\n continue\n }\n if (!isRtElement(node)) continue\n const preserved = preservedNodeOf(node)\n if (preserved) {\n flushLoose()\n out.push(preserved)\n continue\n }\n const t = tag(node)\n const block = parseBlockElement(node, t, ctx)\n if (block === 'inline') {\n looseInline.push(node)\n continue\n }\n flushLoose()\n if (block !== null) out.push(...block)\n }\n flushLoose()\n return out\n}\n\n/**\n * Parse one block-level element. Returns the storage nodes it maps to, `null`\n * to drop it, or `'inline'` when the element belongs to inline flow.\n */\nfunction parseBlockElement(el: RtDomElement, t: string, ctx: ParseCtx): RichTextNode[] | null | 'inline' {\n const level = HEADING_LEVELS[t]\n if (level !== undefined) {\n return [{ type: 'heading', attrs: { level }, content: parseInline(children(el), [], ctx) }]\n }\n switch (t) {\n case 'p':\n return [{ type: 'paragraph', content: parseInline(children(el), [], ctx) }]\n case 'ul':\n return [{ type: 'bulletList', content: parseListItems(el, ctx) }]\n case 'ol':\n return [{ type: 'orderedList', content: parseListItems(el, ctx) }]\n case 'blockquote':\n return [{ type: 'blockquote', content: parseBlocks(children(el), ctx) }]\n case 'pre':\n return [parseCodeBlock(el)]\n case 'hr':\n return [{ type: 'horizontalRule' }]\n case 'img':\n return [imageNodeOf(el)]\n case 'iframe':\n return [embedNodeOf(el)]\n case 'br':\n return [{ type: 'paragraph', content: [{ type: 'hardBreak' }] }]\n case 'style':\n return null\n default: {\n const unknownType = el.getAttribute('data-unknown-node')\n if (unknownType) {\n // An unknown-node fallback that was not stamped: keep the type visible,\n // but its attrs/content cannot be reconstructed from the fallback text.\n ctx.issues.push({\n code: 'lossy-node',\n message: `Unknown rich-text node \"${unknownType}\" was reconstructed without its attributes.`,\n detail: unknownType,\n })\n return [{ type: unknownType }]\n }\n if (!BLOCK_TAGS.has(t)) return 'inline'\n // Editor-inserted generic containers (e.g. Chrome's contenteditable\n // `<div>` lines): blocks descend, inline runs become a paragraph.\n const kids = children(el)\n if (hasBlockChildren(kids)) return parseBlocks(kids, ctx)\n return [{ type: 'paragraph', content: parseInline(kids, [], ctx) }]\n }\n }\n}\n\nfunction parseListItems(list: RtDomElement, ctx: ParseCtx): RichTextNode[] {\n const items: RichTextNode[] = []\n for (const node of children(list)) {\n if (!isRtElement(node)) continue\n if (tag(node) !== 'li') continue\n const kids = children(node)\n const content = hasBlockChildren(kids)\n ? parseBlocks(kids, ctx)\n : [{ type: 'paragraph', content: parseInline(kids, [], ctx) } as RichTextNode]\n items.push({ type: 'listItem', content: content.length > 0 ? content : [{ type: 'paragraph', content: [] }] })\n }\n return items\n}\n\nfunction parseCodeBlock(pre: RtDomElement): RichTextNode {\n // pre > optional code wrapper > text. Language from `language-*` className.\n let host: RtDomElement = pre\n const kids = children(pre)\n const codeEl = kids.find((n): n is RtDomElement => isRtElement(n) && tag(n) === 'code')\n if (codeEl) host = codeEl\n const language = (host.getAttribute('class') ?? '').match(/language-([\\w-]+)/)?.[1]\n const text = collectText(host)\n return {\n type: 'codeBlock',\n ...(language ? { attrs: { language } } : {}),\n content: text.length > 0 ? [{ type: 'text', text }] : [],\n }\n}\n\nfunction collectText(el: RtDomElement): string {\n let out = ''\n for (const node of children(el)) {\n if (isRtText(node)) out += node.data\n else if (isRtElement(node)) out += tag(node) === 'br' ? '\\n' : collectText(node)\n }\n return out\n}\n\n/**\n * Parse an editing host's DOM back into a storage document. Never throws;\n * anything that could not be fully reconstructed is reported as an issue (and\n * still yields a visible node, never silent loss).\n */\nexport function richTextDocFromDom(host: RtDomElement): DomToDocResult {\n const ctx: ParseCtx = { issues: [] }\n const content = parseBlocks(children(host), ctx)\n return { doc: { type: 'doc', content }, issues: ctx.issues }\n}\n\n// ---------------------------------------------------------------------------\n// Equivalence: did the session actually change the document?\n// ---------------------------------------------------------------------------\n\nfunction sameMarks(a: readonly RichTextMark[] | undefined, b: readonly RichTextMark[] | undefined): boolean {\n return canonicalJson(a ?? []) === canonicalJson(b ?? [])\n}\n\n/**\n * Normalize a tree for comparison only (never for storage): merge adjacent\n * text nodes carrying identical marks and drop empty text nodes — the splits\n * and joins a contenteditable session performs without changing content.\n */\nexport function normalizeForComparison(nodes: readonly RichTextNode[]): RichTextNode[] {\n const out: RichTextNode[] = []\n for (const node of nodes) {\n const normalized: RichTextNode = node.content\n ? { ...node, content: normalizeForComparison(node.content) }\n : { ...node }\n if (normalized.type === 'text') {\n if ((normalized.text ?? '') === '') continue\n const prev = out[out.length - 1]\n if (prev && prev.type === 'text' && sameMarks(prev.marks, normalized.marks)) {\n out[out.length - 1] = { ...prev, text: (prev.text ?? '') + (normalized.text ?? '') }\n continue\n }\n }\n out.push(normalized)\n }\n return out\n}\n\n/** Key-order-insensitive canonical JSON (object keys sorted recursively). */\nfunction canonicalJson(value: unknown): string {\n if (value === null || typeof value !== 'object') return JSON.stringify(value) ?? 'null'\n if (Array.isArray(value)) return `[${value.map(canonicalJson).join(',')}]`\n const entries = Object.entries(value as Record<string, unknown>)\n .filter(([, v]) => v !== undefined)\n .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))\n .map(([k, v]) => `${JSON.stringify(k)}:${canonicalJson(v)}`)\n return `{${entries.join(',')}}`\n}\n\n/**\n * Whether two documents carry the same content, ignoring object key order and\n * DOM-induced text-run splits. An equivalent parse-back means the editing\n * session changed nothing and must not dispatch — leaving the stored value\n * byte-identical (it is never rewritten).\n */\nexport function richTextDocsEquivalent(a: RichTextDoc, b: RichTextDoc): boolean {\n return (\n canonicalJson({ type: 'doc', content: normalizeForComparison(a.content ?? []) }) ===\n canonicalJson({ type: 'doc', content: normalizeForComparison(b.content ?? []) })\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/rich-text/embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAKnE;;;;;;;;;;;;;;;;;GAiBG;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAA;AAazD,oEAAoE;AACpE,MAAM,UAAU,oBAAoB,CAAC,IAAkB;IACrD,OAAO,IAAI,CAAC,IAAI,KAAK,yBAAyB,CAAA;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAkB;IACtD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAA;IAC5B,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAmB;IACpD,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAA4B,EAAE,EAAE,CAAA;AAC3F,CAAC;AAeD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAgB;IACrD,MAAM,GAAG,GAA8B,EAAE,CAAA;IACzC,MAAM,IAAI,GAAG,CAAC,KAA0C,EAAE,IAAY,EAAQ,EAAE;QAC9E,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,GAAG,IAAI,YAAY,CAAC,EAAE,CAAA;YACnC,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3E,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/rich-text/embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAKnE;;;;;;;;;;;;;;;;;GAiBG;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAA;AAazD,oEAAoE;AACpE,MAAM,UAAU,oBAAoB,CAAC,IAAkB;IACrD,OAAO,IAAI,CAAC,IAAI,KAAK,yBAAyB,CAAA;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAkB;IACtD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAA;IAC5B,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAmB;IACpD,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAA4B,EAAE,EAAE,CAAA;AAC3F,CAAC;AAeD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAgB;IACrD,MAAM,GAAG,GAA8B,EAAE,CAAA;IACzC,MAAM,IAAI,GAAG,CAAC,KAA0C,EAAE,IAAY,EAAQ,EAAE;QAC9E,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,GAAG,IAAI,YAAY,CAAC,EAAE,CAAA;YACnC,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3E,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,GAAG,CAAA;AACZ,CAAC","sourcesContent":["import { componentNodeSchema } from '@elytracms/core/project-graph'\nimport type { ComponentNode } from '@elytracms/core/project-graph'\nimport type { JsonValue } from '@elytracms/core/project-graph'\nimport type { RichTextDoc, RichTextNode } from './schema'\n\n/**\n * Rich-text component embeds (EC-189, AD-12).\n *\n * A `componentEmbed` is a custom *block* node in the rich-text storage format\n * whose single `attrs.node` holds a composition value — one `ComponentNode` (an\n * embedded registry component plus its static field-value props). It is the third\n * place constrained composition lives (after the page collection and `blocks`\n * fields): a registry component embedded in long-form prose, Portable-Text-style.\n *\n * The embed serializes through the EXISTING storage format with no schema change:\n * `richTextNodeSchema` keeps `type` an open string and `attrs` a plain-JSON bag, a\n * `ComponentNode` is plain JSON (Zod-validated, no runtime handles), so an embed\n * round-trips byte-for-byte through `parseRichTextValue`/`serializeRichTextValue`.\n * The helpers below give the embed a named type, a typed accessor, and a\n * constructor so consumers (renderer, extractor, validator) never reach into the\n * raw `attrs` bag. An embed whose `attrs.node` is missing or malformed degrades to\n * the renderer's visible fallback — never a crash, never silent (AGENTS.md).\n */\n\n/** The storage `node.type` for an embedded registry component. */\nexport const COMPONENT_EMBED_NODE_TYPE = 'componentEmbed'\n\n/**\n * A rich-text embed node, narrowed: a `componentEmbed` whose `attrs.node` is the\n * embedded composition value. `attrs.node` is typed `JsonValue` at the storage\n * layer (the format never carries runtime handles); read it through\n * {@link embeddedComponentNode}, which validates it as a `ComponentNode`.\n */\nexport interface ComponentEmbedNode extends RichTextNode {\n type: typeof COMPONENT_EMBED_NODE_TYPE\n attrs?: { node?: JsonValue } & Record<string, JsonValue>\n}\n\n/** Structural test for a `componentEmbed` node (by `node.type`). */\nexport function isComponentEmbedNode(node: RichTextNode): node is ComponentEmbedNode {\n return node.type === COMPONENT_EMBED_NODE_TYPE\n}\n\n/**\n * Read the embedded composition value (a single `ComponentNode`) from a\n * `componentEmbed` node, validating it via `componentNodeSchema`. Returns\n * `undefined` for an embed with no/malformed `attrs.node` (the renderer shows its\n * visible fallback; validation reports the structured issue). Never throws.\n */\nexport function embeddedComponentNode(node: RichTextNode): ComponentNode | undefined {\n if (!isComponentEmbedNode(node)) return undefined\n const raw = node.attrs?.node\n const parsed = componentNodeSchema.safeParse(raw)\n return parsed.success ? parsed.data : undefined\n}\n\n/**\n * Build a `componentEmbed` storage node wrapping a single composition root. The\n * node carries no `content` (an embed is an atom — the embedded component owns its\n * own children through the composition's slots, not the rich-text tree).\n */\nexport function componentEmbedNode(node: ComponentNode): ComponentEmbedNode {\n return { type: COMPONENT_EMBED_NODE_TYPE, attrs: { node: node as unknown as JsonValue } }\n}\n\n/**\n * One `componentEmbed` occurrence found while walking a rich-text document: the\n * raw storage node, the embedded composition value (or `undefined` when malformed),\n * and the `/`-joined content-index node path within the document tree (e.g.\n * `doc/content/2`). The path mirrors the reference-extraction encoding so validation\n * findings and where-used entries key the same location. Walks arbitrary depth.\n */\nexport interface RichTextEmbedOccurrence {\n node: ComponentEmbedNode\n embedded: ComponentNode | undefined\n nodePath: string\n}\n\n/**\n * Collect every `componentEmbed` in a rich-text document, at any nesting depth.\n * Pure + structural; never throws. The returned `nodePath` is `doc`-rooted and\n * `/`-joined (`doc/content/<i>/content/<j>/...`), matching the persistence\n * reference-extraction path convention so a validation finding's `nodePath` lines\n * up with the where-used entry for the same embed.\n */\nexport function collectComponentEmbeds(doc: RichTextDoc): RichTextEmbedOccurrence[] {\n const out: RichTextEmbedOccurrence[] = []\n const walk = (nodes: readonly RichTextNode[] | undefined, path: string): void => {\n if (!nodes) return\n nodes.forEach((node, i) => {\n const here = `${path}/content/${i}`\n if (isComponentEmbedNode(node)) {\n out.push({ node, embedded: embeddedComponentNode(node), nodePath: here })\n }\n walk(node.content, here)\n })\n }\n walk(doc.content, 'doc')\n return out\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/rich-text/fixtures.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAGnD;;;;;GAKG;AAEH,SAAS,GAAG,CAAC,KAA4B;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC/C,CAAC;AAED,6EAA6E;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAyB;IAChD,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC7B,aAAa,CACX,OAAO,EACP,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EACpF,QAAQ,CACT;CACJ,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAyB;IACjD,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACnB,aAAa,CACX,MAAM,EACN,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAChE,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAC7B;CACJ,CAAA;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAqB,sBAAsB,CAAC;IAC7E,YAAY;IACZ,aAAa;CACd,CAAC,CAAA;AAEF,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAgB;IACpC,IAAI,EAAE,KAAK;IACX,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;QACrF;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;gBAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE;gBAChD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAChE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;gBAChE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;aAC5B;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;gBAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,EAAE,CAAC,EAAE;gBAChH,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;aACxC;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE;gBACxG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE;aAC1G;SACF;QACD;YACE,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE;gBACrG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE;aACtG;SACF;QACD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE;QAC/G,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE;QAClG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QAC9E,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;QACtG;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC;SACvE;QACD;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;gBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;aAC5B;SACF;KACF;CACF,CAAA;AAED,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAkB,mBAAmB,CAAC,SAAS,CAAC,CAAA;AAEhF,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,IAAI,EAAE,KAAK;IACX,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;QACnE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAkB;QAChE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;KACnE;CACF,CAAA;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,OAAO,EAAE,wBAAwB,GAAG,CAAC;IACrC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;CACnG,CAAA"}
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/rich-text/fixtures.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createElement } from 'react'\nimport type { JsonValue } from '@elytracms/core/project-graph'\nimport { RICH_TEXT_SCHEMA_VERSION, createRichTextValue } from './schema'\nimport type { RichTextDoc, RichTextNode, RichTextValue } from './schema'\nimport { createRichTextRegistry } from './registry'\nimport type { CustomNodeDefinition, RichTextRegistry } from './registry'\n\n/**\n * Fixtures for the rich-text spike (brief §7.6: \"fixtures for every custom block\").\n *\n * Every important rendered state is reproducible from these fixtures, per the\n * determinism convention in AGENTS.md.\n */\n\nfunction str(value: JsonValue | undefined): string {\n return typeof value === 'string' ? value : ''\n}\n\n// ---- Custom block + inline definitions -----------------------------------\n\n/**\n * `callout` — a custom *block* component (e.g. surfaced from the project\n * component registry). Reads a `tone` and renders its inline children.\n */\nexport const calloutBlock: CustomNodeDefinition = {\n type: 'callout',\n group: 'block',\n render: ({ node, children }) =>\n createElement(\n 'aside',\n { className: 'callout', 'data-tone': str(node.attrs?.tone) || 'info', role: 'note' },\n children,\n ),\n}\n\n/**\n * `mention` — a custom *inline* atom (a data reference / @-mention). Renders a\n * compact badge from its `label` and `id` attrs.\n */\nexport const mentionInline: CustomNodeDefinition = {\n type: 'mention',\n group: 'inline',\n render: ({ node }) =>\n createElement(\n 'span',\n { className: 'mention', 'data-mention-id': str(node.attrs?.id) },\n `@${str(node.attrs?.label)}`,\n ),\n}\n\n/** A registry wired with the sample custom block + inline definitions. */\nexport const sampleRichTextRegistry: RichTextRegistry = createRichTextRegistry([\n calloutBlock,\n mentionInline,\n])\n\n// ---- Sample documents -----------------------------------------------------\n\n/**\n * A representative document exercising headings, marks, lists, quote, code, a\n * link, an image, an embed, plus the custom block and inline atom.\n */\nexport const sampleDoc: RichTextDoc = {\n type: 'doc',\n content: [\n { type: 'heading', attrs: { level: 1 }, content: [{ type: 'text', text: 'Elytra' }] },\n {\n type: 'paragraph',\n content: [\n { type: 'text', text: 'A ' },\n { type: 'text', text: 'code-first', marks: [{ type: 'bold' }] },\n { type: 'text', text: ' website builder with ' },\n { type: 'text', text: 'rich text', marks: [{ type: 'italic' }] },\n { type: 'text', text: ' and ' },\n { type: 'text', text: 'inline code', marks: [{ type: 'code' }] },\n { type: 'text', text: '.' },\n ],\n },\n {\n type: 'paragraph',\n content: [\n { type: 'text', text: 'See the ' },\n { type: 'text', text: 'project brief', marks: [{ type: 'link', attrs: { href: 'https://example.com/brief' } }] },\n { type: 'text', text: ' for details.' },\n ],\n },\n {\n type: 'bulletList',\n content: [\n { type: 'listItem', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'First point' }] }] },\n { type: 'listItem', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Second point' }] }] },\n ],\n },\n {\n type: 'orderedList',\n content: [\n { type: 'listItem', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Step one' }] }] },\n { type: 'listItem', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Step two' }] }] },\n ],\n },\n { type: 'blockquote', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Stay determined.' }] }] },\n { type: 'codeBlock', attrs: { language: 'ts' }, content: [{ type: 'text', text: 'const x = 1' }] },\n { type: 'image', attrs: { src: 'https://example.com/a.png', alt: 'Diagram' } },\n { type: 'embed', attrs: { src: 'https://example.com/video', provider: 'video', title: 'Demo video' } },\n {\n type: 'callout',\n attrs: { tone: 'warning' },\n content: [{ type: 'text', text: 'Heads up: this is a custom block.' }],\n },\n {\n type: 'paragraph',\n content: [\n { type: 'text', text: 'Owned by ' },\n { type: 'mention', attrs: { id: 'user-1', label: 'ada' } },\n { type: 'text', text: '.' },\n ],\n },\n ],\n}\n\n/** The same sample content as a stored, versioned value. */\nexport const sampleRichTextValue: RichTextValue = createRichTextValue(sampleDoc)\n\n/** A document containing an unknown node type, to exercise fallback rendering. */\nexport const docWithUnknownNode: RichTextDoc = {\n type: 'doc',\n content: [\n { type: 'paragraph', content: [{ type: 'text', text: 'Before.' }] },\n { type: 'mysteryWidget', attrs: { foo: 'bar' } } as RichTextNode,\n { type: 'paragraph', content: [{ type: 'text', text: 'After.' }] },\n ],\n}\n\n/** A value at a future, incompatible schema version (for version checks). */\nexport const futureVersionValue: RichTextValue = {\n version: RICH_TEXT_SCHEMA_VERSION + 1,\n doc: { type: 'doc', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'newer' }] }] },\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/rich-text/html.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/rich-text/html.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonValue } from '@elytracms/core/project-graph'\nimport type { RichTextDoc, RichTextMark, RichTextNode } from './schema'\n\n/**\n * Lossy HTML import/export helpers (brief §7.6).\n *\n * Treated as lossy by design: export serializes the built-in node/mark set to\n * semantic HTML and drops anything it does not recognise (custom blocks become a\n * commented placeholder); import parses a pragmatic subset of HTML back into the\n * storage tree. No DOM dependency — a tiny tokenizer keeps this server-safe.\n *\n * The goal is a faithful *enough* round-trip for the common cases (headings,\n * paragraphs, lists, quotes, code, links, bold/italic/code marks), not a spec-\n * complete HTML engine.\n */\n\nconst VOID_TAGS = new Set(['br', 'hr', 'img'])\n\nconst HEADING_TAGS: Record<string, number> = { h1: 1, h2: 2, h3: 3, h4: 4, h5: 5, h6: 6 }\n\nconst MARK_TAGS: Record<string, string> = {\n strong: 'bold',\n b: 'bold',\n em: 'italic',\n i: 'italic',\n code: 'code',\n s: 'strike',\n strike: 'strike',\n del: 'strike',\n u: 'underline',\n}\n\nfunction escapeHtml(text: string): string {\n return text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n}\n\nfunction escapeAttr(text: string): string {\n return escapeHtml(text).replace(/\"/g, '"')\n}\n\nfunction decodeEntities(text: string): string {\n return text\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/"/g, '\"')\n .replace(/'/g, \"'\")\n .replace(/&/g, '&')\n}\n\nfunction attr(node: RichTextNode, name: string): string | undefined {\n const v: JsonValue | undefined = node.attrs?.[name]\n return typeof v === 'string' ? v : undefined\n}\n\n// ---------------------------------------------------------------------------\n// Export: storage tree → HTML\n// ---------------------------------------------------------------------------\n\nfunction markToTag(mark: RichTextMark): { open: string; close: string } | undefined {\n switch (mark.type) {\n case 'bold':\n return { open: '<strong>', close: '</strong>' }\n case 'italic':\n return { open: '<em>', close: '</em>' }\n case 'code':\n return { open: '<code>', close: '</code>' }\n case 'strike':\n return { open: '<s>', close: '</s>' }\n case 'underline':\n return { open: '<u>', close: '</u>' }\n case 'link': {\n const href = typeof mark.attrs?.href === 'string' ? mark.attrs.href : '#'\n return { open: `<a href=\"${escapeAttr(href)}\">`, close: '</a>' }\n }\n default:\n return undefined\n }\n}\n\nfunction inlineToHtml(node: RichTextNode): string {\n if (node.type === 'hardBreak') return '<br>'\n if (node.type !== 'text') return childrenToHtml(node.content)\n let html = escapeHtml(node.text ?? '')\n for (const mark of node.marks ?? []) {\n const tag = markToTag(mark)\n if (tag) html = `${tag.open}${html}${tag.close}`\n }\n return html\n}\n\nfunction childrenToHtml(nodes: readonly RichTextNode[] | undefined): string {\n return (nodes ?? []).map(nodeToHtml).join('')\n}\n\nfunction nodeToHtml(node: RichTextNode): string {\n switch (node.type) {\n case 'paragraph':\n return `<p>${childrenToHtml(node.content)}</p>`\n case 'heading': {\n const level = typeof node.attrs?.level === 'number' ? node.attrs.level : 1\n const l = level >= 1 && level <= 6 ? level : 1\n return `<h${l}>${childrenToHtml(node.content)}</h${l}>`\n }\n case 'bulletList':\n return `<ul>${childrenToHtml(node.content)}</ul>`\n case 'orderedList':\n return `<ol>${childrenToHtml(node.content)}</ol>`\n case 'listItem':\n return `<li>${childrenToHtml(node.content)}</li>`\n case 'blockquote':\n return `<blockquote>${childrenToHtml(node.content)}</blockquote>`\n case 'codeBlock':\n return `<pre><code>${childrenToHtml(node.content)}</code></pre>`\n case 'horizontalRule':\n return '<hr>'\n case 'hardBreak':\n return '<br>'\n case 'image': {\n const src = escapeAttr(attr(node, 'src') ?? '')\n const alt = escapeAttr(attr(node, 'alt') ?? '')\n return `<img src=\"${src}\" alt=\"${alt}\">`\n }\n case 'text':\n return inlineToHtml(node)\n default:\n // Lossy: custom/unknown blocks are not representable in plain HTML. Emit a\n // comment placeholder so the loss is visible and round-trippable-ish.\n return `<!-- rich-text:${node.type} -->`\n }\n}\n\n/** Serialize a document to a lossy HTML string. */\nexport function richTextToHtml(doc: RichTextDoc): string {\n return childrenToHtml(doc.content)\n}\n\n// ---------------------------------------------------------------------------\n// Import: HTML → storage tree (pragmatic subset)\n// ---------------------------------------------------------------------------\n\ntype Token =\n | { kind: 'open'; tag: string; attrs: Record<string, string> }\n | { kind: 'close'; tag: string }\n | { kind: 'void'; tag: string; attrs: Record<string, string> }\n | { kind: 'text'; text: string }\n\nfunction parseAttrs(raw: string): Record<string, string> {\n const attrs: Record<string, string> = {}\n const re = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)\\s*=\\s*\"([^\"]*)\"/g\n let m: RegExpExecArray | null\n while ((m = re.exec(raw)) !== null) {\n const name = m[1]\n const value = m[2]\n if (name !== undefined && value !== undefined) attrs[name.toLowerCase()] = decodeEntities(value)\n }\n return attrs\n}\n\nfunction tokenize(html: string): Token[] {\n const tokens: Token[] = []\n const tagRe = /<!--[\\s\\S]*?-->|<\\/?([a-zA-Z][a-zA-Z0-9]*)((?:[^>\"']|\"[^\"]*\"|'[^']*')*)\\/?>/g\n let last = 0\n let m: RegExpExecArray | null\n while ((m = tagRe.exec(html)) !== null) {\n if (m.index > last) {\n tokens.push({ kind: 'text', text: html.slice(last, m.index) })\n }\n last = tagRe.lastIndex\n const full = m[0]\n if (full.startsWith('<!--')) continue // drop comments (incl. our placeholders)\n const tag = (m[1] ?? '').toLowerCase()\n const isClose = full.startsWith('</')\n const isSelfClose = full.endsWith('/>') || VOID_TAGS.has(tag)\n if (isClose) {\n tokens.push({ kind: 'close', tag })\n } else if (isSelfClose) {\n tokens.push({ kind: 'void', tag, attrs: parseAttrs(m[2] ?? '') })\n } else {\n tokens.push({ kind: 'open', tag, attrs: parseAttrs(m[2] ?? '') })\n }\n }\n if (last < html.length) tokens.push({ kind: 'text', text: html.slice(last) })\n return tokens\n}\n\ninterface InlineFrame {\n marks: RichTextMark[]\n}\n\nfunction textNode(text: string, marks: readonly RichTextMark[]): RichTextNode {\n return marks.length > 0 ? { type: 'text', text, marks: [...marks] } : { type: 'text', text }\n}\n\n/** Parse a run of inline tokens into text nodes, tracking active marks. */\nfunction parseInline(tokens: Token[], start: number, stopTags: Set<string>): { nodes: RichTextNode[]; next: number } {\n const nodes: RichTextNode[] = []\n const stack: InlineFrame[] = [{ marks: [] }]\n let i = start\n const activeMarks = (): RichTextMark[] => stack[stack.length - 1]?.marks ?? []\n\n for (; i < tokens.length; i++) {\n const tok = tokens[i]\n if (!tok) break\n if (tok.kind === 'close' && stopTags.has(tok.tag)) break\n if (tok.kind === 'open' && (MARK_TAGS[tok.tag] || tok.tag === 'a')) {\n const markType = tok.tag === 'a' ? 'link' : MARK_TAGS[tok.tag]\n if (markType) {\n const mark: RichTextMark = tok.tag === 'a' && tok.attrs.href ? { type: 'link', attrs: { href: tok.attrs.href } } : { type: markType }\n stack.push({ marks: [...activeMarks(), mark] })\n }\n continue\n }\n if (tok.kind === 'close' && (MARK_TAGS[tok.tag] || tok.tag === 'a')) {\n if (stack.length > 1) stack.pop()\n continue\n }\n if (tok.kind === 'void' && tok.tag === 'br') {\n nodes.push({ type: 'hardBreak' })\n continue\n }\n if (tok.kind === 'text') {\n const text = decodeEntities(tok.text)\n if (text.length > 0) nodes.push(textNode(text, activeMarks()))\n continue\n }\n // Any other tag inside inline context: stop (caller handles blocks).\n if (tok.kind === 'open' || tok.kind === 'close' || tok.kind === 'void') break\n }\n return { nodes, next: i }\n}\n\nconst BLOCK_STOP = new Set(['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li', 'blockquote', 'pre'])\n\nfunction parseBlocks(tokens: Token[], start: number, stopTag: string | undefined): { nodes: RichTextNode[]; next: number } {\n const nodes: RichTextNode[] = []\n let i = start\n while (i < tokens.length) {\n const tok = tokens[i]\n if (!tok) break\n if (tok.kind === 'close' && stopTag && tok.tag === stopTag) {\n i++\n break\n }\n if (tok.kind === 'text') {\n // Bare text outside a block — wrap loose text in a paragraph if non-empty.\n if (tok.text.trim().length > 0) nodes.push({ type: 'paragraph', content: [textNode(decodeEntities(tok.text).trim(), [])] })\n i++\n continue\n }\n if (tok.kind === 'open') {\n const tag = tok.tag\n if (HEADING_TAGS[tag] !== undefined) {\n const inline = parseInline(tokens, i + 1, new Set([tag]))\n nodes.push({ type: 'heading', attrs: { level: HEADING_TAGS[tag] }, content: inline.nodes })\n i = inline.next + 1\n continue\n }\n if (tag === 'p') {\n const inline = parseInline(tokens, i + 1, BLOCK_STOP)\n nodes.push({ type: 'paragraph', content: inline.nodes })\n i = inline.next + 1\n continue\n }\n if (tag === 'ul' || tag === 'ol') {\n const inner = parseBlocks(tokens, i + 1, tag)\n nodes.push({ type: tag === 'ul' ? 'bulletList' : 'orderedList', content: inner.nodes })\n i = inner.next\n continue\n }\n if (tag === 'li') {\n const inner = parseBlocks(tokens, i + 1, 'li')\n // Normalise: a list item always wraps its content in at least one block.\n const itemContent =\n inner.nodes.length > 0 ? inner.nodes : [{ type: 'paragraph', content: [] } as RichTextNode]\n nodes.push({ type: 'listItem', content: itemContent })\n i = inner.next\n continue\n }\n if (tag === 'blockquote') {\n const inner = parseBlocks(tokens, i + 1, 'blockquote')\n nodes.push({ type: 'blockquote', content: inner.nodes })\n i = inner.next\n continue\n }\n if (tag === 'pre') {\n // Collect raw text until </pre>, stripping an optional <code> wrapper.\n const inline = parseInline(tokens, i + 1, new Set(['pre', 'code']))\n const text = inline.nodes.map((n) => n.text ?? '').join('')\n // skip to matching </pre>\n let j = inline.next\n for (; j < tokens.length; j++) {\n const t = tokens[j]\n if (t && t.kind === 'close' && t.tag === 'pre') break\n }\n nodes.push({ type: 'codeBlock', content: text ? [{ type: 'text', text }] : [] })\n i = j + 1\n continue\n }\n if (tag === 'code') {\n // <code> at block level without <pre>: treat its run as a paragraph.\n const inline = parseInline(tokens, i, BLOCK_STOP)\n nodes.push({ type: 'paragraph', content: inline.nodes })\n i = inline.next\n continue\n }\n }\n if (tok.kind === 'void') {\n if (tok.tag === 'hr') nodes.push({ type: 'horizontalRule' })\n else if (tok.tag === 'img') nodes.push({ type: 'image', attrs: { src: tok.attrs.src ?? '', alt: tok.attrs.alt ?? '' } })\n else if (tok.tag === 'br') nodes.push({ type: 'paragraph', content: [{ type: 'hardBreak' }] })\n i++\n continue\n }\n // Unhandled token: skip.\n i++\n }\n return { nodes, next: i }\n}\n\n/** Parse a lossy HTML string into a document tree (pragmatic subset). */\nexport function htmlToRichText(html: string): RichTextDoc {\n const tokens = tokenize(html)\n const { nodes } = parseBlocks(tokens, 0, undefined)\n return { type: 'doc', content: nodes }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rich-text/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rich-text/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA","sourcesContent":["/**\n * @elytracms/rich-text — a TipTap-OSS-shaped, adapter-backed rich-text system.\n *\n * Storage is a versioned, ProseMirror-shaped JSON document; the renderer is\n * server-safe (React, no editor bundle); custom blocks and inline atoms plug in\n * through a registry; HTML/Markdown helpers provide lossy import/export. The\n * {@link RichTextAdapter} seam hides the editor so a real TipTap editor can be\n * dropped in later without changing consumers. See brief §7.6 / task EC-025.\n */\nexport * from './schema'\nexport * from './embed'\nexport * from './registry'\nexport * from './render'\nexport * from './adapter'\nexport * from './html'\nexport * from './markdown'\nexport * from './portable-text'\nexport * from './fixtures'\nexport * from './dom-editor'\n"]}
|