@elytracms/core 0.0.7 → 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 +2 -0
- package/dist/cms-core/index.js +2 -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 +10 -0
- package/dist/cms-core/issues.js +13 -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.d.ts +44 -0
- package/dist/cms-core/nesting-depth.js +50 -0
- package/dist/cms-core/nesting-depth.js.map +1 -0
- 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.d.ts +8 -0
- package/dist/cms-core/validate-document.js +35 -0
- 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.d.ts +14 -1
- package/dist/runtime-renderer/render.js +126 -126
- 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":"query.js","sourceRoot":"","sources":["../../src/content/query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/content/query.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CmsPath, CollectionDef, FieldDef } from '@elytracms/core/cms-core'\n\n/**\n * The closed v1 filter vocabulary (vision AD-3): equality, `in`, comparisons\n * (lt/lte/gt/gte), AND-only composition. Multiple `where` keys AND together;\n * multiple operators inside one condition AND together. There is no OR, no\n * nesting, no anything else — by design, so every query is enumerable,\n * cache-taggable, and honest about backend indexes.\n */\nexport const FILTER_OPERATORS = ['eq', 'gt', 'gte', 'in', 'lt', 'lte'] as const\nexport type FilterOperator = (typeof FILTER_OPERATORS)[number]\n\n/** A scalar a filter can compare against (relation/asset filters use the id). */\nexport type FilterScalar = string | number | boolean\n\n/** One field's filter: every present operator must hold (AND). */\nexport interface FilterCondition {\n eq?: FilterScalar\n gt?: FilterScalar\n gte?: FilterScalar\n in?: readonly FilterScalar[]\n lt?: FilterScalar\n lte?: FilterScalar\n}\n\n/**\n * The `where` input: field name → condition. A bare scalar is shorthand for\n * `{ eq: value }`. Generated per-collection types (`PostWhere`) narrow the\n * keys to the fields declared `filterable` in the schema.\n */\nexport type WhereInput = Readonly<Record<string, FilterScalar | FilterCondition | undefined>>\n\nexport type SortDirection = 'asc' | 'desc'\n\n/** Single-field sort; ties always break by document id ascending. */\nexport interface SortInput {\n field: string\n direction?: SortDirection\n}\n\n/** The full `listDocuments` query envelope (vision AD-3, rung 3). */\nexport interface ListDocumentsQuery<TWhere extends WhereInput = WhereInput> {\n where?: TWhere\n sort?: SortInput\n limit?: number\n cursor?: string\n}\n\n// ---------------------------------------------------------------------------\n// Structured query errors\n// ---------------------------------------------------------------------------\n\n/**\n * Codes for structured accessor query errors (EC-143). These describe *caller*\n * mistakes (bad filter, bad cursor), as opposed to `CmsValidationIssue`s which\n * describe content/schema problems. Accessors never throw — invalid queries\n * come back as an error result carrying these.\n */\nexport type ContentQueryErrorCode =\n | 'unknown-collection'\n | 'list-not-supported'\n | 'non-filterable-field'\n | 'invalid-filter'\n | 'invalid-sort'\n | 'invalid-limit'\n | 'invalid-cursor'\n\nexport interface ContentQueryError {\n code: ContentQueryErrorCode\n message: string\n /** Path into the query input, e.g. ['where', 'title'] or ['sort', 'field']. */\n path: CmsPath\n meta?: Record<string, unknown>\n}\n\nexport function queryError(\n code: ContentQueryErrorCode,\n message: string,\n path: CmsPath,\n meta?: Record<string, unknown>,\n): ContentQueryError {\n return { code, message, path, ...(meta ? { meta } : {}) }\n}\n\n// ---------------------------------------------------------------------------\n// Normalization\n// ---------------------------------------------------------------------------\n\n/** A condition with the `eq` shorthand expanded, operators in stable order. */\nexport type NormalizedCondition = Partial<\n Record<FilterOperator, FilterScalar | readonly FilterScalar[]>\n>\n\nexport interface NormalizedWhereEntry {\n field: string\n condition: NormalizedCondition\n}\n\nfunction isFilterScalar(value: unknown): value is FilterScalar {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean'\n}\n\nfunction isOperator(key: string): key is FilterOperator {\n return (FILTER_OPERATORS as readonly string[]).includes(key)\n}\n\n/**\n * Normalize a `where` input into entries sorted by field name, with the bare\n * scalar shorthand expanded to `{ eq: value }` and operators in the stable\n * `FILTER_OPERATORS` order. Both serialization and execution run on this\n * normal form, so `{ slug: 'x' }` and `{ slug: { eq: 'x' } }` are the same\n * query (and produce the same cache key).\n */\nexport function normalizeWhere(where: WhereInput): NormalizedWhereEntry[] {\n const entries: NormalizedWhereEntry[] = []\n for (const field of Object.keys(where).sort()) {\n const raw = where[field]\n if (raw === undefined) continue\n if (isFilterScalar(raw)) {\n entries.push({ field, condition: { eq: raw } })\n continue\n }\n const condition: NormalizedCondition = {}\n for (const op of FILTER_OPERATORS) {\n const value = (raw as Record<string, unknown>)[op]\n if (value === undefined) continue\n condition[op] = value as FilterScalar | readonly FilterScalar[]\n }\n entries.push({ field, condition })\n }\n return entries\n}\n\n// ---------------------------------------------------------------------------\n// Validation (filterable-field enforcement, EC-143)\n// ---------------------------------------------------------------------------\n\nfunction fieldByName(collection: CollectionDef, name: string): FieldDef | undefined {\n return collection.fields.find((f) => f.name === name)\n}\n\n/** The fields of a collection declared `filterable` (EC-143 schema flag). */\nexport function filterableFields(collection: CollectionDef): FieldDef[] {\n return collection.fields.filter((f) => f.filterable === true)\n}\n\n/**\n * Validate a `where` input against a collection schema. Filters are permitted\n * **only** on fields declared `filterable` — anything else is a structured\n * `non-filterable-field` error. Unknown operators and malformed operator\n * values are `invalid-filter` errors. All errors are collected (sorted by\n * field, deterministic), never thrown.\n */\nexport function validateWhere(collection: CollectionDef, where: WhereInput): ContentQueryError[] {\n const errors: ContentQueryError[] = []\n for (const field of Object.keys(where).sort()) {\n const raw = where[field]\n if (raw === undefined) continue\n const path: CmsPath = ['where', field]\n\n const def = fieldByName(collection, field)\n if (!def || def.filterable !== true) {\n errors.push(\n queryError(\n 'non-filterable-field',\n def\n ? `Field \"${field}\" on \"${collection.id}\" is not declared filterable.`\n : `Field \"${field}\" does not exist on \"${collection.id}\".`,\n path,\n { collection: collection.id, field },\n ),\n )\n continue\n }\n\n if (isFilterScalar(raw)) continue\n if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {\n errors.push(\n queryError(\n 'invalid-filter',\n `Filter for \"${field}\" must be a scalar or an operator object.`,\n path,\n ),\n )\n continue\n }\n\n const keys = Object.keys(raw).sort()\n if (keys.length === 0) {\n errors.push(queryError('invalid-filter', `Filter for \"${field}\" has no operators.`, path))\n continue\n }\n for (const key of keys) {\n const value = (raw as Record<string, unknown>)[key]\n if (value === undefined) continue\n const opPath: CmsPath = ['where', field, key]\n if (!isOperator(key)) {\n errors.push(\n queryError(\n 'invalid-filter',\n `Unknown filter operator \"${key}\" on \"${field}\" — the vocabulary is exactly ${FILTER_OPERATORS.join(', ')}.`,\n opPath,\n { operator: key },\n ),\n )\n continue\n }\n if (key === 'in') {\n if (!Array.isArray(value) || !value.every(isFilterScalar)) {\n errors.push(\n queryError(\n 'invalid-filter',\n `Operator \"in\" on \"${field}\" requires an array of scalars.`,\n opPath,\n ),\n )\n }\n continue\n }\n if (!isFilterScalar(value)) {\n errors.push(\n queryError(\n 'invalid-filter',\n `Operator \"${key}\" on \"${field}\" requires a scalar value.`,\n opPath,\n ),\n )\n }\n }\n }\n return errors\n}\n\n/**\n * Validate a sort input. Sorting uses the same `filterable` declaration as\n * filtering (same rationale: backend indexes stay honest).\n */\nexport function validateSort(collection: CollectionDef, sort: SortInput): ContentQueryError[] {\n const def = fieldByName(collection, sort.field)\n if (!def || def.filterable !== true) {\n return [\n queryError(\n 'invalid-sort',\n def\n ? `Sort field \"${sort.field}\" on \"${collection.id}\" is not declared filterable.`\n : `Sort field \"${sort.field}\" does not exist on \"${collection.id}\".`,\n ['sort', 'field'],\n { collection: collection.id, field: sort.field },\n ),\n ]\n }\n if (sort.direction !== undefined && sort.direction !== 'asc' && sort.direction !== 'desc') {\n return [\n queryError('invalid-sort', `Sort direction must be \"asc\" or \"desc\".`, ['sort', 'direction']),\n ]\n }\n return []\n}\n\n/** Validate a limit: a positive integer (or absent = no pagination). */\nexport function validateLimit(limit: number): ContentQueryError[] {\n if (!Number.isInteger(limit) || limit < 1) {\n return [queryError('invalid-limit', 'Limit must be a positive integer.', ['limit'])]\n }\n return []\n}\n\n// ---------------------------------------------------------------------------\n// Matching & ordering (pure, deterministic)\n// ---------------------------------------------------------------------------\n\n/**\n * Reduce a stored field value to the scalar filters compare against: scalars\n * pass through, relation refs compare by target id, anything else (arrays,\n * rich objects, missing) is `null` and never matches a condition.\n */\nexport function filterScalarOf(value: unknown): FilterScalar | null {\n if (isFilterScalar(value)) return value\n if (\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n typeof (value as { id?: unknown }).id === 'string'\n ) {\n return (value as { id: string }).id\n }\n return null\n}\n\n/**\n * Three-way compare, or `null` when the values are uncomparable: an UNSET field\n * (`value === null`) or a type mismatch. Callers treat `null` as \"does not\n * match\", so an unset field is EXCLUDED from every comparison operator — unset\n * never satisfies a value comparison (EC-205). Pinned by query.test.ts.\n */\nfunction compares(value: FilterScalar | null, bound: FilterScalar): number | null {\n if (value === null) return null\n if (typeof value === 'number' && typeof bound === 'number') {\n return value < bound ? -1 : value > bound ? 1 : 0\n }\n if (typeof value === 'string' && typeof bound === 'string') {\n // Code-unit comparison: deterministic across environments (no locale tables).\n return value < bound ? -1 : value > bound ? 1 : 0\n }\n return null\n}\n\n/**\n * Does a stored field value satisfy one normalized condition? Scalars and single\n * relation/asset refs reduce via {@link filterScalarOf} and match directly. An\n * ARRAY field — a `many` relation/asset (EC-255) — matches with **contains**\n * semantics: the condition holds if ANY element satisfies it, so\n * `where: { categories: catId }` lists products whose `categories` array\n * contains `catId`. An empty array matches nothing. Scalar fields keep their\n * exact prior behavior (the non-array branch is the original reduce-then-match).\n */\nexport function matchesFieldValue(value: unknown, condition: NormalizedCondition): boolean {\n if (Array.isArray(value)) {\n return value.some((element) => matchesCondition(filterScalarOf(element), condition))\n }\n return matchesCondition(filterScalarOf(value), condition)\n}\n\n/** Does a (scalar-reduced) value satisfy one normalized condition? AND-only. */\nexport function matchesCondition(\n value: FilterScalar | null,\n condition: NormalizedCondition,\n): boolean {\n for (const op of FILTER_OPERATORS) {\n const bound = condition[op]\n if (bound === undefined) continue\n switch (op) {\n case 'eq':\n if (value !== bound) return false\n break\n case 'in':\n if (value === null || !(bound as readonly FilterScalar[]).includes(value)) return false\n break\n case 'lt':\n case 'lte':\n case 'gt':\n case 'gte': {\n const cmp = compares(value, bound as FilterScalar)\n if (cmp === null) return false\n if (op === 'lt' && !(cmp < 0)) return false\n if (op === 'lte' && !(cmp <= 0)) return false\n if (op === 'gt' && !(cmp > 0)) return false\n if (op === 'gte' && !(cmp >= 0)) return false\n break\n }\n }\n }\n return true\n}\n\n/**\n * Total, deterministic order over sort values: numbers first (numeric order),\n * then strings (code-unit order), then booleans (false < true), then missing\n * values (`null`). `desc` flips this entire order; the id tiebreak stays\n * ascending either way (see `compareListEntries`).\n */\nexport function compareSortValues(a: FilterScalar | null, b: FilterScalar | null): number {\n const rank = (v: FilterScalar | null): number =>\n typeof v === 'number' ? 0 : typeof v === 'string' ? 1 : typeof v === 'boolean' ? 2 : 3\n const ra = rank(a)\n const rb = rank(b)\n if (ra !== rb) return ra - rb\n if (typeof a === 'number' && typeof b === 'number') return a < b ? -1 : a > b ? 1 : 0\n if (typeof a === 'string' && typeof b === 'string') return a < b ? -1 : a > b ? 1 : 0\n if (typeof a === 'boolean' && typeof b === 'boolean') return a === b ? 0 : a ? 1 : -1\n return 0\n}\n\n/** One row in list ordering: its id plus its (scalar-reduced) sort value. */\nexport interface ListPosition {\n id: string\n sortValue: FilterScalar | null\n}\n\n/**\n * The canonical list order (and cursor position order): sort value in the\n * requested direction, then id ascending as the unconditional tiebreak — so\n * pagination is total, stable, and reproducible from fixtures.\n */\nexport function compareListEntries(\n a: ListPosition,\n b: ListPosition,\n direction: SortDirection,\n): number {\n const byValue = compareSortValues(a.sortValue, b.sortValue)\n const directed = direction === 'desc' ? -byValue : byValue\n if (directed !== 0) return directed\n return a.id < b.id ? -1 : a.id > b.id ? 1 : 0\n}\n"]}
|
package/dist/content/raw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../../src/content/raw.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,OAAuB,EACvB,MAA6B;IAE7B,OAAO,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAC3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../../src/content/raw.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,OAAuB,EACvB,MAA6B;IAE7B,OAAO,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAC3C,CAAC","sourcesContent":["import type { CmsDocument } from '@elytracms/core/cms-core'\nimport type { ContentContext } from './context'\nimport { selectPerspective } from './perspective'\nimport type { ContentDocumentSource } from './perspective'\n\n/**\n * Escape hatch (vision AD-4, `content.raw`): the stored row, untouched — no\n * locale fallback, no relation population, no asset resolution. Relations stay\n * `DocumentRef`s, assets stay ids, localized values stay per-locale bags.\n *\n * Perspective still applies: even raw access never leaks draft content into\n * the published perspective. Returns `null` when the document is not visible\n * under the context perspective.\n */\nexport function rawDocument(\n context: ContentContext,\n source: ContentDocumentSource,\n): CmsDocument | null {\n return selectPerspective(context, source)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/content/resolve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/content/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAWhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAmEhF,SAAS,iBAAiB,CACxB,KAAe,EACf,UAAyB,EACzB,UAAkB,EAClB,IAAa,EACb,QAAgB;IAEhB,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,SAAS,UAAU,CAAC,EAAE,+BAA+B,QAAQ,GAAG;QAC7F,IAAI;QACJ,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,UAAU;QACV,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE;KACtC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAC5B,OAAuB,EACvB,MAAqB,EACrB,GAAgB,EAChB,QAAiB,EACjB,IAAa,EACb,iBAAyB,EACzB,eAAuB,EACvB,GAA0B;IAE1B,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAA;IAE9C,MAAM,OAAO,GAAG,CAAC,MAAc,EAA2B,EAAE;QAC1D,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,QAAQ,CAAC;YACP,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,oBAAoB,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,6BAA6B,MAAM,IAAI;YAC5F,IAAI;YACJ,YAAY,EAAE,iBAAiB;YAC/B,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE;SACrE,CAAC,CACH,CAAA;QACD,OAAO,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAA;IACjC,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC1D,IAAI,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAE3D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,kBAAkB,OAAO,CAAC,WAAW,cAAc,CAAC,CAAA;IAEjF,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IACtF,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,MAAM,EAAE,CAAA;AAC9D,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAuB,EACvB,MAAqB,EACrB,UAAyB,EACzB,GAAgB,EAChB,KAA8C,EAC9C,KAAc,EACd,KAAa,EACb,IAAa,EACb,GAA0B;IAE1B,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAE1D,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAA;YAC7F,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,GAAG,GAA8B,EAAE,CAAA;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,iBAAiB,CACf,KAAK,EACL,UAAU,EACV,GAAG,CAAC,EAAE,EACN,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,EAChB,gCAAgC,CACjC,CACF,CAAA;gBACD,OAAM;YACR,CAAC;YACD,GAAG,CAAC,IAAI,CACN,qBAAqB,CACnB,OAAO,EACP,MAAM,EACN,GAAG,EACH,QAAQ,EACR,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,EAChB,UAAU,CAAC,EAAE,EACb,GAAG,CAAC,EAAE,EACN,GAAG,CACJ,CACF,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,gCAAgC,CAAC,CACrF,CAAA;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAChG,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAqB,EACrB,UAAyB,EACzB,GAAgB,EAChB,KAA2C,EAC3C,KAAc,EACd,IAAa,EACb,GAA0B;IAE1B,MAAM,UAAU,GAAG,CAAC,QAAiB,EAAE,SAAkB,EAAwB,EAAE;QACjF,8EAA8E;QAC9E,0DAA0D;QAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;YACvF,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;YACpD,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,UAAU,EAAE,GAAG,CAAC,EAAE;SACnB,CAAC,CAAA;QACF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QACrC,OAAO,UAAU,CAAC,KAAK,CAAA;IACzB,CAAC,CAAA;IAED,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAA;YAC5F,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,yEAAyE;QACzE,2DAA2D;QAC3D,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;aAC1D,MAAM,CAAC,CAAC,KAAK,EAA0B,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAChC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CACzB,OAAuB,EACvB,MAAqB,EACrB,UAAyB,EACzB,GAAgB,EAChB,KAA4C,EAC5C,KAAc,EACd,KAAa,EACb,IAAa,EACb,GAA0B;IAE1B,MAAM,WAAW,GAAG,CAAC,IAAa,EAAE,QAAiB,EAAkC,EAAE;QACvF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;YACpF,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,MAAM,GAAG,IAA+B,CAAA;QAC9C,MAAM,GAAG,GAA4B,EAAE,CAAA;QACvC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAQ;YACpC,MAAM,QAAQ,GAAG,iBAAiB,CAChC,OAAO,EACP,MAAM,EACN,UAAU,EACV,GAAG,EACH,GAAG,EACH,QAAQ,EACR,KAAK,EACL,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EACvB,GAAG,CACJ,CAAA;YACD,IAAI,QAAQ,KAAK,SAAS;gBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;QACtD,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;IAED,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAA;YAC1F,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,IAAI,EAAmC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS,CAAA;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,OAAuB,EACvB,MAAqB,EACrB,UAAyB,EACzB,GAAgB,EAChB,KAAe,EACf,KAAc,EACd,KAAa,EACb,IAAa,EACb,GAA0B;IAE1B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAC/F,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAC5E,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAC7F;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,OAAuB,EACvB,MAAqB,EACrB,UAAyB,EACzB,GAAgB,EAChB,KAAa,EACb,QAAiB,EACjB,GAA0B;IAE1B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAChF,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAEjD,MAAM,GAAG,GAAgB,EAAE,CAAA;IAC3B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QAEjC,MAAM,QAAQ,GAAG,iBAAiB,CAChC,OAAO,EACP,MAAM,EACN,UAAU,EACV,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EACzB,GAAG,CACJ,CAAA;QACD,IAAI,QAAQ,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;IACxD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAuB,EACvB,MAAqB,EACrB,MAA6B;IAE7B,MAAM,GAAG,GAA0B;QACjC,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;KAC7D,CAAA;IACD,MAAM,IAAI,GAAG,GAAmB,EAAE,CAAC,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,GAAG,CAAC,SAAS;KAC/B,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAA;IAErE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACpD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,QAAQ,CAAC;YACP,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,oCAAoC,GAAG,CAAC,UAAU,IAAI;YAClF,IAAI,EAAE,CAAC,YAAY,CAAC;YACpB,YAAY,EAAE,GAAG,CAAC,UAAU;YAC5B,UAAU,EAAE,GAAG,CAAC,EAAE;SACnB,CAAC,CACH,CAAA;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAA;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IAC1E,OAAO;QACL,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,MAAM,EAAE;QAC/D,IAAI,EAAE,IAAI,EAAE;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAA;AACH,CAAC;AAcD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,MAAqB,EACrB,GAAgB;IAEhB,MAAM,GAAG,GAA0B,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAEhE,MAAM,IAAI,GAAG,CAAC,MAAc,EAA0B,EAAE;QACtD,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,QAAQ,CAAC;YACP,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,oBAAoB,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,6BAA6B,MAAM,IAAI;YAC5F,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9B,YAAY,EAAE,GAAG,CAAC,UAAU;YAC5B,UAAU,EAAE,GAAG,CAAC,EAAE;YAClB,IAAI,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE;SACrE,CAAC,CACH,CAAA;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAA;IAC/C,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC1D,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAExD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAE9C,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,kBAAkB,OAAO,CAAC,WAAW,cAAc,CAAC,CAAA;IAE9E,iFAAiF;IACjF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IACpF,OAAO;QACL,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,MAAM,EAAE;QAC/D,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAA;AACH,CAAC","sourcesContent":["import { cmsIssue, readAssetId, validateLocale } from '@elytracms/core/cms-core'\nimport type {\n CmsDocument,\n CmsPath,\n CmsValidationIssue,\n CollectionDef,\n DocumentRef,\n FieldDef,\n FieldValues,\n Locale,\n} from '@elytracms/core/cms-core'\nimport { resolveAssetValue } from './assets'\nimport type { AssetLookup, ResolvedAsset } from './assets'\nimport type { ContentContext, Perspective } from './context'\nimport { resolveLocaleValues } from './locale'\nimport type { FieldLocaleFallback } from './locale'\nimport { selectPerspective } from './perspective'\nimport type { ContentDocumentSource } from './perspective'\nimport { isPopulatedRelation, parseRelationRef, relationStub } from './populate'\n\n/**\n * Pure lookup boundary for delivery resolution (vision AD-4): the caller\n * (content kit, export, tests) pre-fetches schema, documents, and asset\n * metadata; resolution only reads through these synchronous functions. No\n * fetching, no Convex, no React at this layer.\n */\nexport interface ContentLookup extends AssetLookup {\n collection(id: string): CollectionDef | undefined\n document(ref: DocumentRef): ContentDocumentSource | undefined\n /**\n * All document sources of a collection (EC-143, additive). Required by\n * `listDocuments` and by `getDocument`'s slug fallback; a lookup without it\n * still supports plain resolution, and `listDocuments` degrades to a\n * structured `list-not-supported` error.\n */\n documents?(collectionId: string): readonly ContentDocumentSource[]\n}\n\n/**\n * A document in delivery shape: identity plus resolved field values, flat —\n * `post.title`, `post.author.name`, `post.cover.url`. The precise per-collection\n * shape is what `generateDeliveryTypes` emits (EC-142 codegen).\n */\nexport type ResolvedDocument = { id: string; collection: string } & Record<string, unknown>\n\n/**\n * The minimal structural face of any delivery-shaped document — what the typed\n * accessors (EC-143) constrain their per-collection generics against. The\n * generated interfaces from `generateDeliveryTypes` (e.g. `Post`) satisfy this\n * where they cannot satisfy `ResolvedDocument`'s index signature.\n */\nexport interface DeliveryDocument {\n id: string\n collection: string\n}\n\n/**\n * Structured information about *how* a document was resolved — most notably\n * which fields served their value via EC-018 locale fallback.\n */\nexport interface ResolutionInfo {\n locale: Locale\n perspective: Perspective\n localeFallbacks: FieldLocaleFallback[]\n}\n\nexport interface ResolveDocumentResult {\n /**\n * The delivery-shaped document, or `null` when the source is not visible in\n * the context perspective (e.g. never published) or its collection is\n * unknown. `null` plus an empty issue list simply means \"not available\n * here\" — unpublished content in the published perspective is correct\n * behavior, not an error.\n */\n document: ResolvedDocument | null\n info: ResolutionInfo\n issues: CmsValidationIssue[]\n}\n\n/** Mutable accumulator threaded through one resolution pass. */\ninterface ResolutionAccumulator {\n fallbacks: FieldLocaleFallback[]\n issues: CmsValidationIssue[]\n}\n\nfunction invalidValueIssue(\n field: FieldDef,\n collection: CollectionDef,\n documentId: string,\n path: CmsPath,\n expected: string,\n): CmsValidationIssue {\n return cmsIssue({\n code: 'invalid-field-value',\n message: `Field \"${field.name}\" on \"${collection.id}\" holds a value that is not ${expected}.`,\n path,\n collectionId: collection.id,\n documentId,\n meta: { field: field.name, expected },\n })\n}\n\n/**\n * Resolve a single relation target. At depth 0 with population enabled this\n * returns the depth-1 populated reference (`{ id, collection, ...fields }`);\n * otherwise the `{ id, collection }` stub. A missing or perspective-invisible\n * target degrades to the stub plus an `unknown-relation-target` issue — the\n * value is never a bare id string and resolution never throws.\n */\nfunction resolveRelationTarget(\n context: ContentContext,\n lookup: ContentLookup,\n ref: DocumentRef,\n populate: boolean,\n path: CmsPath,\n ownerCollectionId: string,\n ownerDocumentId: string,\n acc: ResolutionAccumulator,\n): Record<string, unknown> {\n if (!populate) return { ...relationStub(ref) }\n\n const missing = (reason: string): Record<string, unknown> => {\n acc.issues.push(\n cmsIssue({\n code: 'unknown-relation-target',\n message: `Relation target \"${ref.collection}:${ref.id}\" could not be populated (${reason}).`,\n path,\n collectionId: ownerCollectionId,\n documentId: ownerDocumentId,\n meta: { targetCollection: ref.collection, targetId: ref.id, reason },\n }),\n )\n return { ...relationStub(ref) }\n }\n\n const targetCollection = lookup.collection(ref.collection)\n if (!targetCollection) return missing('unknown collection')\n\n const source = lookup.document(ref)\n if (!source) return missing('document not found')\n\n const visible = selectPerspective(context, source)\n if (!visible) return missing(`not visible in ${context.perspective} perspective`)\n\n // Depth-1 populated reference: id + resolved fields. Relations inside it\n // stay stubs (depth > 0); assets inside it still resolve to objects.\n const fields = resolveFields(context, lookup, targetCollection, visible, 1, path, acc)\n return { id: ref.id, collection: ref.collection, ...fields }\n}\n\nfunction resolveRelationField(\n context: ContentContext,\n lookup: ContentLookup,\n collection: CollectionDef,\n doc: CmsDocument,\n field: Extract<FieldDef, { type: 'relation' }>,\n value: unknown,\n depth: number,\n path: CmsPath,\n acc: ResolutionAccumulator,\n): unknown {\n const populate = depth === 0 && isPopulatedRelation(field)\n\n if (field.cardinality === 'many') {\n if (!Array.isArray(value)) {\n acc.issues.push(invalidValueIssue(field, collection, doc.id, path, 'an array of references'))\n return undefined\n }\n const out: Record<string, unknown>[] = []\n value.forEach((entry, index) => {\n const ref = parseRelationRef(entry)\n if (!ref) {\n acc.issues.push(\n invalidValueIssue(\n field,\n collection,\n doc.id,\n [...path, index],\n 'a { collection, id } reference',\n ),\n )\n return\n }\n out.push(\n resolveRelationTarget(\n context,\n lookup,\n ref,\n populate,\n [...path, index],\n collection.id,\n doc.id,\n acc,\n ),\n )\n })\n return out\n }\n\n const ref = parseRelationRef(value)\n if (!ref) {\n acc.issues.push(\n invalidValueIssue(field, collection, doc.id, path, 'a { collection, id } reference'),\n )\n return undefined\n }\n return resolveRelationTarget(context, lookup, ref, populate, path, collection.id, doc.id, acc)\n}\n\nfunction resolveAssetField(\n lookup: ContentLookup,\n collection: CollectionDef,\n doc: CmsDocument,\n field: Extract<FieldDef, { type: 'asset' }>,\n value: unknown,\n path: CmsPath,\n acc: ResolutionAccumulator,\n): unknown {\n const resolveOne = (rawAsset: unknown, entryPath: CmsPath): ResolvedAsset | null => {\n // EC-277: asset values are self-typed (`{ type:'asset', id }`); `readAssetId`\n // unwraps that and legacy bare id strings (lazy-on-read).\n const assetId = readAssetId(rawAsset)\n if (assetId === undefined) {\n acc.issues.push(invalidValueIssue(field, collection, doc.id, entryPath, 'an asset id'))\n return null\n }\n const resolution = resolveAssetValue(lookup, assetId, {\n path: entryPath,\n collectionId: collection.id,\n documentId: doc.id,\n })\n acc.issues.push(...resolution.issues)\n return resolution.asset\n }\n\n if (field.cardinality === 'many') {\n if (!Array.isArray(value)) {\n acc.issues.push(invalidValueIssue(field, collection, doc.id, path, 'an array of asset ids'))\n return undefined\n }\n // Unresolvable entries are dropped from the array (each already reported\n // as an issue) so consumers never iterate over null holes.\n return value\n .map((entry, index) => resolveOne(entry, [...path, index]))\n .filter((asset): asset is ResolvedAsset => asset !== null)\n }\n\n return resolveOne(value, path)\n}\n\n/**\n * Resolve an `object` / repeater field value (EC-253) by resolving each item's\n * subfields at the same population depth, so a nested relation/asset subfield is\n * populated exactly as a top-level field would be (depth-1 populated at the top,\n * stubs inside a populated ref). `many` is an array of objects; `one` a single\n * object. Malformed items are reported and dropped — resolution never throws.\n */\nfunction resolveObjectField(\n context: ContentContext,\n lookup: ContentLookup,\n collection: CollectionDef,\n doc: CmsDocument,\n field: Extract<FieldDef, { type: 'object' }>,\n value: unknown,\n depth: number,\n path: CmsPath,\n acc: ResolutionAccumulator,\n): unknown {\n const resolveItem = (item: unknown, itemPath: CmsPath): Record<string, unknown> | null => {\n if (typeof item !== 'object' || item === null || Array.isArray(item)) {\n acc.issues.push(invalidValueIssue(field, collection, doc.id, itemPath, 'an object'))\n return null\n }\n const record = item as Record<string, unknown>\n const out: Record<string, unknown> = {}\n for (const sub of field.fields) {\n const subValue = record[sub.name]\n if (subValue === undefined) continue\n const resolved = resolveFieldValue(\n context,\n lookup,\n collection,\n doc,\n sub,\n subValue,\n depth,\n [...itemPath, sub.name],\n acc,\n )\n if (resolved !== undefined) out[sub.name] = resolved\n }\n return out\n }\n\n if (field.cardinality === 'many') {\n if (!Array.isArray(value)) {\n acc.issues.push(invalidValueIssue(field, collection, doc.id, path, 'an array of objects'))\n return undefined\n }\n return value\n .map((item, index) => resolveItem(item, [...path, index]))\n .filter((item): item is Record<string, unknown> => item !== null)\n }\n\n return resolveItem(value, path) ?? undefined\n}\n\n/**\n * Resolve one field value at a population depth — the switch shared by the\n * document loop and the {@link resolveObjectField} recursion (EC-253). Relation\n * population (depth-1 only) and asset resolution stay identical at every level.\n */\nfunction resolveFieldValue(\n context: ContentContext,\n lookup: ContentLookup,\n collection: CollectionDef,\n doc: CmsDocument,\n field: FieldDef,\n value: unknown,\n depth: number,\n path: CmsPath,\n acc: ResolutionAccumulator,\n): unknown {\n switch (field.type) {\n case 'relation':\n return resolveRelationField(context, lookup, collection, doc, field, value, depth, path, acc)\n case 'asset':\n return resolveAssetField(lookup, collection, doc, field, value, path, acc)\n case 'object':\n return resolveObjectField(context, lookup, collection, doc, field, value, depth, path, acc)\n default:\n return value\n }\n}\n\n/**\n * Resolve all field values of one stored row at a given population depth:\n * locale fallback first (EC-018), then relation population (depth-1 only),\n * then asset resolution. Shared by the top-level document (depth 0) and by\n * populated relation targets (depth 1, where relations stay stubs).\n */\nfunction resolveFields(\n context: ContentContext,\n lookup: ContentLookup,\n collection: CollectionDef,\n doc: CmsDocument,\n depth: number,\n basePath: CmsPath,\n acc: ResolutionAccumulator,\n): FieldValues {\n const localeResolution = resolveLocaleValues(context, collection, doc, basePath)\n acc.fallbacks.push(...localeResolution.fallbacks)\n\n const out: FieldValues = {}\n for (const field of collection.fields) {\n const value = localeResolution.values[field.name]\n if (value === undefined) continue\n\n const resolved = resolveFieldValue(\n context,\n lookup,\n collection,\n doc,\n field,\n value,\n depth,\n [...basePath, field.name],\n acc,\n )\n if (resolved !== undefined) out[field.name] = resolved\n }\n return out\n}\n\n/**\n * Resolve one document source into delivery shape (vision AD-4): locale\n * fallback applied (EC-018), draft/published perspective applied (EC-021),\n * relations populated to depth-1 as declared in schema, and assets resolved to\n * `{ url, width, height, alt, mimeType }` objects. Pure and total: invalid\n * states surface as structured issues alongside the result — never thrown.\n */\nexport function resolveDocument(\n context: ContentContext,\n lookup: ContentLookup,\n source: ContentDocumentSource,\n): ResolveDocumentResult {\n const acc: ResolutionAccumulator = {\n fallbacks: [],\n issues: [...validateLocale(context.locales, context.locale)],\n }\n const info = (): ResolutionInfo => ({\n locale: context.locale,\n perspective: context.perspective,\n localeFallbacks: acc.fallbacks,\n })\n\n const doc = selectPerspective(context, source)\n if (!doc) return { document: null, info: info(), issues: acc.issues }\n\n const collection = lookup.collection(doc.collection)\n if (!collection) {\n acc.issues.push(\n cmsIssue({\n code: 'unknown-collection',\n message: `Document \"${doc.id}\" belongs to unknown collection \"${doc.collection}\".`,\n path: ['collection'],\n collectionId: doc.collection,\n documentId: doc.id,\n }),\n )\n return { document: null, info: info(), issues: acc.issues }\n }\n\n const fields = resolveFields(context, lookup, collection, doc, 0, [], acc)\n return {\n document: { id: doc.id, collection: doc.collection, ...fields },\n info: info(),\n issues: acc.issues,\n }\n}\n\n/** Result of populating a single relation reference (EC-254). */\nexport interface PopulateRelationResult {\n /**\n * The relation target populated to depth-1 delivery shape (`{ id, collection,\n * ...fields }`), or `null` when the target's collection is unknown, the\n * document is missing, or it is not visible in the context perspective — so a\n * consuming block degrades cleanly rather than rendering a stub.\n */\n document: ResolvedDocument | null\n issues: CmsValidationIssue[]\n}\n\n/**\n * Populate a single relation reference to depth-1 delivery shape — the public\n * entry a renderer host wires as `RenderContext.resolveRelation` to populate a\n * COMPOSITION-NODE relation PROP (EC-254). This is distinct from a document\n * FIELD relation, which {@link resolveDocument} already populates inline via the\n * internal `resolveRelationTarget`: a page's `blocks` field passes through as raw\n * composition, so the relation props of the nodes inside it (e.g. a ProductGrid's\n * picked `product`s) are never touched by document resolution and need this.\n *\n * Mirrors `resolveRelationTarget`'s populated branch exactly — perspective gated\n * (EC-021), relations inside the target stay stubs (depth-1), assets inside it\n * resolve to objects — but returns `null` (not the `{ id, collection }` stub) on\n * a miss, the cleaner \"populated or nothing\" contract a prop wants. Pure and\n * total: never throws; the reason for a miss is collected as a structured issue.\n */\nexport function populateRelationRef(\n context: ContentContext,\n lookup: ContentLookup,\n ref: DocumentRef,\n): PopulateRelationResult {\n const acc: ResolutionAccumulator = { fallbacks: [], issues: [] }\n\n const miss = (reason: string): PopulateRelationResult => {\n acc.issues.push(\n cmsIssue({\n code: 'unknown-relation-target',\n message: `Relation target \"${ref.collection}:${ref.id}\" could not be populated (${reason}).`,\n path: [ref.collection, ref.id],\n collectionId: ref.collection,\n documentId: ref.id,\n meta: { targetCollection: ref.collection, targetId: ref.id, reason },\n }),\n )\n return { document: null, issues: acc.issues }\n }\n\n const targetCollection = lookup.collection(ref.collection)\n if (!targetCollection) return miss('unknown collection')\n\n const source = lookup.document(ref)\n if (!source) return miss('document not found')\n\n const visible = selectPerspective(context, source)\n if (!visible) return miss(`not visible in ${context.perspective} perspective`)\n\n // Depth-1: the target's own relations stay stubs, its assets resolve to objects.\n const fields = resolveFields(context, lookup, targetCollection, visible, 1, [], acc)\n return {\n document: { id: ref.id, collection: ref.collection, ...fields },\n issues: acc.issues,\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/content/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGxC;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAA;IACvF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACnG,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAA;IAC/C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QACjC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AAC/B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,MAAM,KAAK,GAAwC,EAAE,CAAA;IACrD,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAA;IACtC,CAAC;IACD,OAAO,eAAe,CAAC;QACrB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;QAC/F,KAAK;KACN,CAAC,CAAA;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/content/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGxC;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAA;IACvF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACnG,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAA;IAC/C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QACjC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AAC/B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,MAAM,KAAK,GAAwC,EAAE,CAAA;IACrD,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAA;IACtC,CAAC;IACD,OAAO,eAAe,CAAC;QACrB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;QAC/F,KAAK;KACN,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { normalizeWhere } from './query'\nimport type { ListDocumentsQuery, NormalizedCondition } from './query'\n\n/**\n * Deterministic query serialization (EC-143): a byte-stable string for\n * `{ where, sort, limit, cursor }`, exported for cache-key use (EC-146 keys\n * cached list fetches on it). Two semantically identical queries — regardless\n * of object-key insertion order or the `eq` shorthand — serialize to the\n * exact same bytes.\n */\n\n/**\n * JSON.stringify with object keys sorted recursively at every level. Arrays\n * keep their order (order is meaningful for `in` lists). `undefined` entries\n * are omitted, like JSON.stringify.\n */\nexport function stableStringify(value: unknown): string {\n if (value === null || typeof value !== 'object') return JSON.stringify(value) ?? 'null'\n if (Array.isArray(value)) {\n return `[${value.map((entry) => stableStringify(entry === undefined ? null : entry)).join(',')}]`\n }\n const record = value as Record<string, unknown>\n const parts: string[] = []\n for (const key of Object.keys(record).sort()) {\n const entry = record[key]\n if (entry === undefined) continue\n parts.push(`${JSON.stringify(key)}:${stableStringify(entry)}`)\n }\n return `{${parts.join(',')}}`\n}\n\n/**\n * The canonical serialization of a `listDocuments` query. Normal form:\n *\n * `{\"cursor\":<string|null>,\"limit\":<number|null>,\"sort\":{\"direction\":...,\"field\":...}|null,\"where\":{<field>:{<op>:<value>}}}`\n *\n * - `where` fields sorted by name; bare-scalar shorthand expanded to `eq`;\n * operators in alphabetical order (`eq,gt,gte,in,lt,lte`).\n * - `sort.direction` defaults to `\"asc\"` explicitly so its presence never\n * changes the key.\n * - Absent `cursor`/`limit`/`sort` serialize as `null` (fixed shape, fixed\n * key order — byte-stable).\n *\n * Compose with collection / locale / perspective externally when building a\n * full cache key (EC-146).\n */\nexport function serializeListQuery(query: ListDocumentsQuery): string {\n const where: Record<string, NormalizedCondition> = {}\n for (const entry of normalizeWhere(query.where ?? {})) {\n where[entry.field] = entry.condition\n }\n return stableStringify({\n cursor: query.cursor ?? null,\n limit: query.limit ?? null,\n sort: query.sort ? { direction: query.sort.direction ?? 'asc', field: query.sort.field } : null,\n where,\n })\n}\n"]}
|
package/dist/content/tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/content/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAiDtD,SAAS,YAAY,CAAC,MAAyB;IAC7C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CAAC,IAAmB;IAC3C,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACnC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QACjD,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACvC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAyB,EAAE,QAA0B;IACrF,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAChF,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,SAAQ;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IACE,KAAK,KAAK,IAAI;gBACd,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAQ,KAA0B,CAAC,EAAE,KAAK,QAAQ;gBAClD,OAAQ,KAAkC,CAAC,UAAU,KAAK,QAAQ,EAClE,CAAC;gBACD,MAAM,GAAG,GAAG,KAA2C,CAAA;gBACvD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/content/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAiDtD,SAAS,YAAY,CAAC,MAAyB;IAC7C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CAAC,IAAmB;IAC3C,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACnC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QACjD,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACvC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAyB,EAAE,QAA0B;IACrF,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAChF,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,SAAQ;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IACE,KAAK,KAAK,IAAI;gBACd,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAQ,KAA0B,CAAC,EAAE,KAAK,QAAQ;gBAClD,OAAQ,KAAkC,CAAC,UAAU,KAAK,QAAQ,EAClE,CAAC;gBACD,MAAM,GAAG,GAAG,KAA2C,CAAA;gBACvD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { documentKey } from '@elytracms/core/cms-core'\nimport type { CollectionDef, Locale } from '@elytracms/core/cms-core'\nimport type { ResolvedDocument } from './resolve'\n\n/**\n * Cache-tag metadata carried by every accessor result (EC-143, vision AD-5):\n * fetch-time tagging of what was *actually returned*, so EC-146 can map each\n * entry to a `revalidateTag` call. Deterministic by construction — every list\n * is sorted and deduplicated.\n */\nexport interface CacheTags {\n /**\n * Identities of every document whose content is present in the result —\n * the returned documents themselves plus their depth-1 populated relation\n * targets. Entries are `documentKey` strings (`collection:id`), sorted.\n */\n docs: string[]\n /**\n * Collections the accessor read from (the coarse membership tags of AD-5:\n * create/delete/publish in a collection sweeps them). Sorted.\n */\n collections: string[]\n /**\n * Normalized URL paths the accessor touched (`resolvePage` only): the\n * requested path, plus every hop of a redirect chain — editing any hop\n * changes the result. Sorted.\n */\n routes: string[]\n /**\n * Asset ids the result *baked* its delivery shape from (EC-227): the page's\n * page-scoped `ResolvedAsset` set (url/dimensions/alt) + its `seoOgImage`.\n * Editing the asset record (alt/dimensions/re-upload) must drop the page that\n * baked it — without this dimension the only invalidation triggers are\n * unrelated (doc/collection/project), so an asset-only edit serves stale\n * until one of those fires. Sorted.\n */\n assets: string[]\n /** The locale the result was resolved for. */\n locale: Locale\n}\n\nexport interface CacheTagsInit {\n docs?: readonly string[]\n collections?: readonly string[]\n routes?: readonly string[]\n assets?: readonly string[]\n locale: Locale\n}\n\nfunction sortedUnique(values: readonly string[]): string[] {\n return [...new Set(values)].sort()\n}\n\n/** Build a `CacheTags` with deterministic (sorted, deduplicated) entries. */\nexport function cacheTags(init: CacheTagsInit): CacheTags {\n return {\n docs: sortedUnique(init.docs ?? []),\n collections: sortedUnique(init.collections ?? []),\n routes: sortedUnique(init.routes ?? []),\n assets: sortedUnique(init.assets ?? []),\n locale: init.locale,\n }\n}\n\n/**\n * The document tags one resolved document contributes: its own identity plus\n * every relation target referenced in its top-level relation fields. Populated\n * targets had their content returned (so a change to them must invalidate);\n * stubs are included too — slightly coarse, always correct (AD-5 stance).\n */\nexport function documentCacheKeys(collection: CollectionDef, document: ResolvedDocument): string[] {\n const keys = [documentKey({ collection: document.collection, id: document.id })]\n for (const field of collection.fields) {\n if (field.type !== 'relation') continue\n const value = document[field.name]\n const entries = Array.isArray(value) ? value : [value]\n for (const entry of entries) {\n if (\n entry !== null &&\n typeof entry === 'object' &&\n typeof (entry as { id?: unknown }).id === 'string' &&\n typeof (entry as { collection?: unknown }).collection === 'string'\n ) {\n const ref = entry as { id: string; collection: string }\n keys.push(documentKey({ collection: ref.collection, id: ref.id }))\n }\n }\n }\n return keys\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/data-binding/fixtures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C;;;GAGG;AAEH,qGAAqG;AACrG,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACvG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;CACjG,CAAA;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,+BAA+B;IAC3C,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7C,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAe,aAAa,CACjD;IACE,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,EAAE,GAAG,EAAE,kCAAkC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CAC3F,EACD,kBAAkB,CACnB,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAc,aAAa,CAC/C;IACE,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE;CACzD,EACD,kBAAkB,CACnB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAiB,aAAa,CACrD;IACE,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE;CAClE,EACD,iBAAiB,CAClB,CAAA;AAED,oDAAoD;AACpD,MAAM,CAAC,MAAM,aAAa,GAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;AAEhF,gDAAgD;AAChD,MAAM,CAAC,MAAM,cAAc,GAAmB,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAEhF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAA8B;IAC3D,eAAe,EAAE,kBAAkB;IACnC,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,iBAAiB;CACjC,CAAA"}
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/data-binding/fixtures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C;;;GAGG;AAEH,qGAAqG;AACrG,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACvG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;CACjG,CAAA;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,+BAA+B;IAC3C,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7C,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAe,aAAa,CACjD;IACE,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,EAAE,GAAG,EAAE,kCAAkC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CAC3F,EACD,kBAAkB,CACnB,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAc,aAAa,CAC/C;IACE,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE;CACzD,EACD,kBAAkB,CACnB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAiB,aAAa,CACrD;IACE,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE;CAClE,EACD,iBAAiB,CAClB,CAAA;AAED,oDAAoD;AACpD,MAAM,CAAC,MAAM,aAAa,GAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;AAEhF,gDAAgD;AAChD,MAAM,CAAC,MAAM,cAAc,GAAmB,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAEhF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAA8B;IAC3D,eAAe,EAAE,kBAAkB;IACnC,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,iBAAiB;CACjC,CAAA","sourcesContent":["import type { JsonValue } from '@elytracms/core/project-graph'\nimport { captureSample } from './sample'\nimport type { CmsSource, ConvexSource, DataSource, RestSource } from './sources'\nimport { SourceRegistry } from './sources'\n\n/**\n * Shared fixtures for the data-binding tests. One representative source per kind (EC-022) plus\n * a captured sample (EC-023) so resolution (EC-024) is exercised end-to-end and deterministically.\n */\n\n/** A representative list payload: an array of post objects, mirroring the project-graph fixtures. */\nexport const samplePostsPayload: JsonValue = [\n { id: 'p1', title: 'First Post', author: { name: 'Ada' }, tags: ['a', 'b'], featured: true, views: 10 },\n { id: 'p2', title: 'Second Post', author: { name: 'Lin' }, tags: [], featured: false, views: 3 },\n]\n\n/** A representative single-document payload. */\nexport const sampleHeroPayload: JsonValue = {\n heading: 'Welcome',\n subheading: 'A code-first website builder.',\n cta: { label: 'Get started', href: '/start' },\n published: true,\n}\n\nexport const restSource: RestSource = captureSample(\n {\n kind: 'rest',\n id: 'rest.products',\n label: 'Products API',\n config: { url: 'https://api.example.com/products', method: 'GET', headers: {}, query: {} },\n },\n samplePostsPayload,\n)\n\nexport const cmsSource: CmsSource = captureSample(\n {\n kind: 'cms',\n id: 'cms.posts',\n label: 'Blog Posts',\n config: { collectionId: 'collection.posts', filter: {} },\n },\n samplePostsPayload,\n)\n\nexport const convexSource: ConvexSource = captureSample(\n {\n kind: 'convex',\n id: 'convex.hero',\n label: 'Hero document',\n config: { operation: 'query', functionRef: 'hero:get', args: {} },\n },\n sampleHeroPayload,\n)\n\n/** All three sample sources as one uniform list. */\nexport const sampleSources: DataSource[] = [restSource, cmsSource, convexSource]\n\n/** A registry over all three sample sources. */\nexport const sampleRegistry: SourceRegistry = SourceRegistry.from(sampleSources)\n\n/** A payload store keyed by source id, as the renderer would build it. */\nexport const samplePayloadStore: Record<string, JsonValue> = {\n 'rest.products': samplePostsPayload,\n 'cms.posts': samplePostsPayload,\n 'convex.hero': sampleHeroPayload,\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-binding/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,8BAA8B,CAAA;AAErD,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-binding/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,8BAA8B,CAAA;AAErD,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA","sourcesContent":["/**\n * @elytracms/data-binding — the uniform binding model shared by REST, CMS, and Convex sources\n * (brief §4.6, §7.5). Reuses `@elytracms/core/project-graph`'s BindingReference / BindingMode /\n * Condition; adds source definitions + registry (EC-022), sample capture, schema inference and\n * stable path tokens (EC-023), and binding-mode resolution with structured broken-binding\n * issues (EC-024).\n */\nexport const PACKAGE = '@elytracms/core/data-binding'\n\nexport * from './issues'\nexport * from './tokens'\nexport * from './sources'\nexport * from './sample'\nexport * from './resolve'\nexport * from './fixtures'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/data-binding/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,WAAW;CACZ,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,wDAAwD;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,8DAA8D;IAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAA;AAGF,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAC1B,IAAsB,EACtB,OAAe,EACf,SAA6E,EAAE;IAE/E,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IACxC,OAAO;QACL,IAAI;QACJ,OAAO;QACP,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/data-binding/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,WAAW;CACZ,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,wDAAwD;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,8DAA8D;IAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAA;AAGF,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAC1B,IAAsB,EACtB,OAAe,EACf,SAA6E,EAAE;IAE/E,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IACxC,OAAO;QACL,IAAI;QACJ,OAAO;QACP,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAA;AACH,CAAC","sourcesContent":["import { z } from 'zod'\nimport { jsonValueSchema } from '@elytracms/core/project-graph'\n\n/**\n * Stable codes for structured binding issues. Broken bindings are represented as data —\n * never thrown — so the renderer can show a fallback and the inspector can surface the\n * problem (brief §4.6, §7.5; AGENTS.md \"validation is first-class\").\n *\n * - `unknown-source` the binding's `sourceId` is not in the source registry\n * - `unresolved-token` the token does not resolve to a value in the payload\n * - `missing-item` a `repeaterItem` binding was resolved with no item context\n * - `invalid-spread` a `spread` binding resolved to a non-object (cannot spread)\n * - `no-sample` an operation needed a captured sample but none was present\n */\nexport const bindingIssueCodeSchema = z.enum([\n 'unknown-source',\n 'unresolved-token',\n 'missing-item',\n 'invalid-spread',\n 'no-sample',\n])\nexport type BindingIssueCode = z.infer<typeof bindingIssueCodeSchema>\n\n/**\n * A structured binding issue. Mirrors `@elytracms/core/project-graph`'s ValidationIssue shape\n * (code/message/meta) but scoped to binding resolution, where the relevant locator is the\n * source id and token rather than a graph path.\n */\nexport const bindingIssueSchema = z.object({\n code: bindingIssueCodeSchema,\n message: z.string(),\n /** The data source the binding targeted, when known. */\n sourceId: z.string().optional(),\n /** The path token that failed to resolve, when applicable. */\n token: z.string().optional(),\n meta: z.record(z.string(), jsonValueSchema).optional(),\n})\nexport type BindingIssue = z.infer<typeof bindingIssueSchema>\n\n/** Construct a {@link BindingIssue} with optional locator/meta fields omitted when absent. */\nexport function bindingIssue(\n code: BindingIssueCode,\n message: string,\n fields: { sourceId?: string; token?: string; meta?: BindingIssue['meta'] } = {},\n): BindingIssue {\n const { sourceId, token, meta } = fields\n return {\n code,\n message,\n ...(sourceId !== undefined ? { sourceId } : {}),\n ...(token !== undefined ? { token } : {}),\n ...(meta !== undefined ? { meta } : {}),\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/data-binding/resolve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/data-binding/resolve.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BindingReference, Condition, JsonValue } from '@elytracms/core/project-graph'\nimport type { BindingIssue } from './issues'\nimport { bindingIssue } from './issues'\nimport { resolveToken } from './tokens'\nimport type { SourceRegistry } from './sources'\n\n/**\n * Binding resolution (EC-024). Resolves the five binding modes against captured payloads, in a\n * form the renderer can inject directly. A binding that cannot be resolved (unknown source,\n * unresolvable token, missing repeater context, non-object spread) yields a structured\n * {@link BindingIssue} — never a throw or crash (AGENTS.md \"validation is first-class\").\n */\n\n/**\n * The repeater item context (EC-024). When the renderer is inside a repeater, each iteration\n * supplies the current `item` and its zero-based `index`. `repeaterItem` bindings resolve their\n * token relative to `item` rather than the source payload.\n */\nexport interface RepeaterItemContext {\n item: JsonValue\n index: number\n}\n\n/**\n * What the renderer needs to apply a binding. Discriminated by `kind`:\n * - `value` a single resolved value to set on a prop\n * - `props` a record of props to spread onto the component (`spread` mode)\n * - `condition` a boolean gate (`condition` mode)\n * - `issue` the binding is broken; carries the structured {@link BindingIssue}\n */\nexport type BindingResolution =\n | { kind: 'value'; value: JsonValue }\n | { kind: 'props'; props: Record<string, JsonValue> }\n | { kind: 'condition'; pass: boolean }\n | { kind: 'issue'; issue: BindingIssue }\n\n/**\n * A payload store: the resolved payload for each source id, keyed by id. The renderer builds\n * this by running each source's fetch/query (via the project adapters). Passing the registry\n * instead — or in addition — lets resolution detect *unknown* sources distinctly from sources\n * that simply have not loaded yet.\n */\nexport type PayloadStore = Readonly<Record<string, JsonValue>>\n\nexport interface ResolveContext {\n /** Resolved payloads keyed by source id. */\n payloads: PayloadStore\n /** Optional registry, used to distinguish an unknown source from one that has not loaded. */\n registry?: Pick<SourceRegistry, 'has'>\n}\n\nconst isPlainObject = (v: JsonValue): v is { [key: string]: JsonValue } =>\n typeof v === 'object' && v !== null && !Array.isArray(v)\n\n/** Look up a source's payload, returning a structured issue when the source is unknown/unloaded. */\nfunction lookupPayload(\n ref: BindingReference,\n ctx: ResolveContext,\n): { ok: true; payload: JsonValue } | { ok: false; issue: BindingIssue } {\n const known = ctx.registry ? ctx.registry.has(ref.sourceId) : ref.sourceId in ctx.payloads\n if (!known) {\n return {\n ok: false,\n issue: bindingIssue('unknown-source', `Binding references unknown data source \"${ref.sourceId}\".`, {\n sourceId: ref.sourceId,\n token: ref.token,\n }),\n }\n }\n if (!(ref.sourceId in ctx.payloads)) {\n // Known source, but no payload captured/loaded — treat as an unresolved token at the root.\n return {\n ok: false,\n issue: bindingIssue('unresolved-token', `No payload loaded for source \"${ref.sourceId}\".`, {\n sourceId: ref.sourceId,\n token: ref.token,\n }),\n }\n }\n return { ok: true, payload: ctx.payloads[ref.sourceId] as JsonValue }\n}\n\n/** Resolve a token against a base value, producing the value or an `unresolved-token` issue. */\nfunction resolveAgainst(\n base: JsonValue,\n ref: BindingReference,\n): { ok: true; value: JsonValue } | { ok: false; issue: BindingIssue } {\n const result = resolveToken(base, ref.token)\n if (!result.found) {\n return {\n ok: false,\n issue: bindingIssue('unresolved-token', `Token \"${ref.token}\" did not resolve in source \"${ref.sourceId}\".`, {\n sourceId: ref.sourceId,\n token: ref.token,\n }),\n }\n }\n return { ok: true, value: result.value }\n}\n\n/**\n * Resolve a binding reference against a payload store, suitable for the renderer to inject\n * (EC-024). The optional `itemContext` supplies the current `{ item, index }` for bindings used\n * inside a repeater.\n *\n * Mode behaviour:\n * - `value` resolve the token to a single value\n * - `object` resolve the token to an object value (same resolution as `value`; the mode\n * records authoring intent that the result is an object)\n * - `spread` resolve the token to an object and expose it as props to spread; a non-object\n * result is an `invalid-spread` issue\n * - `repeaterItem` resolve the token relative to `itemContext.item`; missing context is a\n * `missing-item` issue\n * - `condition` resolve the token to a value and coerce to a boolean gate (truthiness). Use\n * {@link resolveCondition} for full operator support.\n */\nexport function resolveBinding(\n ref: BindingReference,\n ctx: ResolveContext,\n itemContext?: RepeaterItemContext,\n): BindingResolution {\n if (ref.mode === 'repeaterItem') {\n if (!itemContext) {\n return {\n kind: 'issue',\n issue: bindingIssue('missing-item', `Binding \"${ref.token}\" requires a repeater item context.`, {\n sourceId: ref.sourceId,\n token: ref.token,\n }),\n }\n }\n const resolved = resolveAgainst(itemContext.item, ref)\n return resolved.ok ? { kind: 'value', value: resolved.value } : { kind: 'issue', issue: resolved.issue }\n }\n\n const found = lookupPayload(ref, ctx)\n if (!found.ok) return { kind: 'issue', issue: found.issue }\n\n const resolved = resolveAgainst(found.payload, ref)\n if (!resolved.ok) return { kind: 'issue', issue: resolved.issue }\n\n switch (ref.mode) {\n case 'value':\n case 'object':\n return { kind: 'value', value: resolved.value }\n case 'spread': {\n if (!isPlainObject(resolved.value)) {\n return {\n kind: 'issue',\n issue: bindingIssue('invalid-spread', `Spread binding \"${ref.token}\" did not resolve to an object.`, {\n sourceId: ref.sourceId,\n token: ref.token,\n }),\n }\n }\n return { kind: 'props', props: { ...resolved.value } }\n }\n case 'condition':\n return { kind: 'condition', pass: isTruthy(resolved.value) }\n default: {\n // Exhaustiveness guard: every BindingMode is handled above.\n const never: never = ref.mode\n return never\n }\n }\n}\n\n/** JS-style truthiness for a JSON value (empty string, 0, false, null are falsy). */\nfunction isTruthy(value: JsonValue): boolean {\n return Boolean(value)\n}\n\n/**\n * Evaluate a project-graph {@link Condition} against a payload store (EC-024). The left operand\n * is resolved from the condition's binding; the operator compares it to the condition's `value`.\n * A broken left operand yields a structured issue instead of a pass/fail so the renderer can\n * surface it. `exists` checks the token resolved at all (using a sentinel-free probe).\n */\nexport type ConditionResolution =\n | { kind: 'condition'; pass: boolean }\n | { kind: 'issue'; issue: BindingIssue }\n\nexport function resolveCondition(\n condition: Condition,\n ctx: ResolveContext,\n itemContext?: RepeaterItemContext,\n): ConditionResolution {\n const ref = condition.source\n\n // Resolve the base value the token is read from (repeater item or source payload).\n let base: JsonValue\n if (ref.mode === 'repeaterItem') {\n if (!itemContext) {\n return {\n kind: 'issue',\n issue: bindingIssue('missing-item', `Condition \"${ref.token}\" requires a repeater item context.`, {\n sourceId: ref.sourceId,\n token: ref.token,\n }),\n }\n }\n base = itemContext.item\n } else {\n const found = lookupPayload(ref, ctx)\n if (!found.ok) {\n // Unknown/unloaded source. For `exists`, that is a legitimate `false`, not an issue.\n if (condition.operator === 'exists') return { kind: 'condition', pass: false }\n return { kind: 'issue', issue: found.issue }\n }\n base = found.payload\n }\n\n const probe = resolveToken(base, ref.token)\n if (condition.operator === 'exists') {\n return { kind: 'condition', pass: probe.found }\n }\n if (!probe.found) {\n return {\n kind: 'issue',\n issue: bindingIssue('unresolved-token', `Condition token \"${ref.token}\" did not resolve in source \"${ref.sourceId}\".`, {\n sourceId: ref.sourceId,\n token: ref.token,\n }),\n }\n }\n return { kind: 'condition', pass: compare(probe.value, condition.operator, condition.value) }\n}\n\nfunction compare(left: JsonValue, operator: Condition['operator'], right: JsonValue | undefined): boolean {\n switch (operator) {\n case 'truthy':\n return isTruthy(left)\n case 'exists':\n // Handled by resolveCondition (token presence); reaching here means the token resolved.\n return true\n case 'eq':\n return deepEqual(left, right ?? null)\n case 'neq':\n return !deepEqual(left, right ?? null)\n case 'gt':\n case 'gte':\n case 'lt':\n case 'lte': {\n if (typeof left !== 'number' || typeof right !== 'number') return false\n if (operator === 'gt') return left > right\n if (operator === 'gte') return left >= right\n if (operator === 'lt') return left < right\n return left <= right\n }\n default: {\n const never: never = operator\n return never\n }\n }\n}\n\nfunction deepEqual(a: JsonValue, b: JsonValue): boolean {\n if (a === b) return true\n if (typeof a !== typeof b) return false\n if (a === null || b === null) return a === b\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false\n return a.every((item, i) => deepEqual(item, b[i] as JsonValue))\n }\n if (typeof a === 'object' && typeof b === 'object' && !Array.isArray(a) && !Array.isArray(b)) {\n const ak = Object.keys(a)\n const bk = Object.keys(b)\n if (ak.length !== bk.length) return false\n return ak.every((k) => Object.prototype.hasOwnProperty.call(b, k) && deepEqual(a[k] as JsonValue, b[k] as JsonValue))\n }\n return false\n}\n\n/** True if a resolution is a broken binding (a structured issue). Convenience for the renderer. */\nexport function isBindingIssue(\n resolution: BindingResolution | ConditionResolution,\n): resolution is { kind: 'issue'; issue: BindingIssue } {\n return resolution.kind === 'issue'\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/data-binding/sample.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQvD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAuB,MAAS,EAAE,MAAiB;IAC9E,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACxD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACnF,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/data-binding/sample.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQvD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAuB,MAAS,EAAE,MAAiB;IAC9E,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACxD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACnF,OAAO,EAAE,CAAA;AACX,CAAC","sourcesContent":["import type { JsonValue } from '@elytracms/core/project-graph'\nimport type { DataSource } from './sources'\nimport type { InferredSchema } from './tokens'\nimport { inferSchema, tokensForSchema } from './tokens'\n\n/** A source guaranteed to carry a captured sample + inferred schema. */\nexport type SampledSource<S extends DataSource = DataSource> = S & {\n sample: JsonValue\n schema: InferredSchema\n}\n\n/**\n * Sample capture (EC-023). Attach a representative payload to a source and infer its schema in\n * one step. This is deliberately pure: actually performing the REST fetch / CMS query / Convex\n * call lives behind the project-owned adapters; this package only models the captured result so\n * inference, tokens, and resolution are deterministic and testable from fixtures.\n */\nexport function captureSample<S extends DataSource>(source: S, sample: JsonValue): SampledSource<S> {\n return { ...source, sample, schema: inferSchema(sample) }\n}\n\n/**\n * The stable path tokens a source exposes, derived from its captured sample (EC-023). Returns\n * an empty list when no sample has been captured yet. Tokens are JSON Pointers that survive UI\n * label changes — see {@link tokensForSchema}.\n */\nexport function sourceTokens(source: DataSource): string[] {\n if (source.schema) return tokensForSchema(source.schema)\n if (source.sample !== undefined) return tokensForSchema(inferSchema(source.sample))\n return []\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/data-binding/sources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/data-binding/sources.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\nimport { idSchema, jsonValueSchema } from '@elytracms/core/project-graph'\nimport { inferredSchemaSchema } from './tokens'\n\n/**\n * Data sources (EC-022). One uniform shape across the three kinds the product supports\n * (brief §4.6, §7.5):\n *\n * - `rest` an HTTP fetch source (external API)\n * - `cms` an internal CMS collection query (resolved by `@elytracms/core/cms-core`)\n * - `convex` a Convex query or mutation, behind the project-owned repository adapter\n *\n * Every source shares the same envelope: a stable `id` (the binding `sourceId` addresses it),\n * a human label, the kind-specific `config`, and an optional captured `sample` + inferred\n * `schema` (EC-023). The kind-specific config differs, but resolution, sampling, inference and\n * tokenization treat all three identically.\n */\n\n/** HTTP methods permitted for a REST fetch source. */\nexport const httpMethodSchema = z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE'])\nexport type HttpMethod = z.infer<typeof httpMethodSchema>\n\n/** Per-source fetch configuration for a REST source. */\nexport const restConfigSchema = z.object({\n url: z.string().min(1),\n method: httpMethodSchema.default('GET'),\n headers: z.record(z.string(), z.string()).default({}),\n /** Static query parameters appended to the request. */\n query: z.record(z.string(), z.string()).default({}),\n /** Optional JSON request body (for POST/PUT/PATCH). */\n body: jsonValueSchema.optional(),\n})\nexport type RestConfig = z.infer<typeof restConfigSchema>\n\nexport const restSourceSchema = z.object({\n kind: z.literal('rest'),\n id: idSchema,\n label: z.string().min(1),\n config: restConfigSchema,\n})\n\n/**\n * Single-field sort of a CMS list query (EC-166 repeating sections). Matches\n * the canonical AD-3 sort shape (`@elytracms/core/content`'s `SortInput` with the\n * direction explicit); ties always break by document id ascending downstream.\n */\nexport const cmsSortSchema = z.object({\n field: z.string().min(1),\n direction: z.enum(['asc', 'desc']),\n})\nexport type CmsSort = z.infer<typeof cmsSortSchema>\n\n/** Per-source query configuration for an internal CMS collection query. */\nexport const cmsConfigSchema = z.object({\n /** Id of the CMS collection to query. */\n collectionId: idSchema,\n /** When set, fetch a single document by id; otherwise the query returns a list. */\n documentId: idSchema.optional(),\n /** Optional locale for localized content. */\n locale: z.string().optional(),\n /** Optional equality filters keyed by field name. */\n filter: z.record(z.string(), jsonValueSchema).default({}),\n /** Optional single-field sort (EC-166); absent = id order. */\n sort: cmsSortSchema.optional(),\n limit: z.number().int().positive().optional(),\n})\nexport type CmsConfig = z.infer<typeof cmsConfigSchema>\n\nexport const cmsSourceSchema = z.object({\n kind: z.literal('cms'),\n id: idSchema,\n label: z.string().min(1),\n config: cmsConfigSchema,\n})\n\n/** Whether a Convex source reads (query) or writes (mutation). */\nexport const convexOperationSchema = z.enum(['query', 'mutation'])\nexport type ConvexOperation = z.infer<typeof convexOperationSchema>\n\n/** Per-source query/mutation configuration for a Convex function reference. */\nexport const convexConfigSchema = z.object({\n operation: convexOperationSchema.default('query'),\n /** Convex function reference, e.g. `posts:list` or `posts.list`. */\n functionRef: z.string().min(1),\n /** Arguments passed to the Convex function. */\n args: z.record(z.string(), jsonValueSchema).default({}),\n})\nexport type ConvexConfig = z.infer<typeof convexConfigSchema>\n\nexport const convexSourceSchema = z.object({\n kind: z.literal('convex'),\n id: idSchema,\n label: z.string().min(1),\n config: convexConfigSchema,\n})\n\n/**\n * The captured sample (EC-023) and inferred schema are attached uniformly to any source kind.\n * Kept separate from the kind-specific union so the discriminated union stays clean and the\n * sample fields can be merged on after parse.\n */\nexport const sampleEnvelopeSchema = z.object({\n /** A representative captured payload, used for inference and the binding picker preview. */\n sample: jsonValueSchema.optional(),\n /** Structural schema inferred from {@link sample} (EC-023). */\n schema: inferredSchemaSchema.optional(),\n})\n\n/** The uniform source shape: kind-specific envelope plus the shared sample/schema fields. */\nexport const dataSourceSchema = z.intersection(\n z.discriminatedUnion('kind', [restSourceSchema, cmsSourceSchema, convexSourceSchema]),\n sampleEnvelopeSchema,\n)\nexport type DataSource = z.infer<typeof dataSourceSchema>\nexport type DataSourceKind = DataSource['kind']\n\nexport type RestSource = z.infer<typeof restSourceSchema> & z.infer<typeof sampleEnvelopeSchema>\nexport type CmsSource = z.infer<typeof cmsSourceSchema> & z.infer<typeof sampleEnvelopeSchema>\nexport type ConvexSource = z.infer<typeof convexSourceSchema> & z.infer<typeof sampleEnvelopeSchema>\n\n/** Parse an unknown value into a {@link DataSource}, applying per-config defaults. Never throws. */\nexport function parseDataSource(input: unknown): ReturnType<typeof dataSourceSchema.safeParse> {\n return dataSourceSchema.safeParse(input)\n}\n\n/**\n * A registry of data sources addressable by stable id (EC-022). Construction de-duplicates by\n * id (last write wins) and validates each entry; lookups are O(1). The registry is immutable —\n * `with`/`without` return new registries — so it can be stored in the graph/editor state safely.\n */\nexport class SourceRegistry {\n private readonly byId: ReadonlyMap<string, DataSource>\n\n private constructor(byId: ReadonlyMap<string, DataSource>) {\n this.byId = byId\n }\n\n /** Build a registry from a list of sources. Each is validated via {@link dataSourceSchema}. */\n static from(sources: Iterable<DataSource>): SourceRegistry {\n const map = new Map<string, DataSource>()\n for (const raw of sources) {\n const source = dataSourceSchema.parse(raw)\n map.set(source.id, source)\n }\n return new SourceRegistry(map)\n }\n\n /** An empty registry. */\n static empty(): SourceRegistry {\n return new SourceRegistry(new Map())\n }\n\n has(id: string): boolean {\n return this.byId.has(id)\n }\n\n get(id: string): DataSource | undefined {\n return this.byId.get(id)\n }\n\n list(): DataSource[] {\n return [...this.byId.values()]\n }\n\n ids(): string[] {\n return [...this.byId.keys()]\n }\n\n /** The set of known ids, suitable for `validateProjectGraph`'s `knownSourceIds` option. */\n knownSourceIds(): ReadonlySet<string> {\n return new Set(this.byId.keys())\n }\n\n /** Return a new registry with `source` added or replacing any existing entry with the same id. */\n with(source: DataSource): SourceRegistry {\n const next = new Map(this.byId)\n next.set(dataSourceSchema.parse(source).id, source)\n return new SourceRegistry(next)\n }\n\n /** Return a new registry without the source `id` (no-op if absent). */\n without(id: string): SourceRegistry {\n if (!this.byId.has(id)) return this\n const next = new Map(this.byId)\n next.delete(id)\n return new SourceRegistry(next)\n }\n\n get size(): number {\n return this.byId.size\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/data-binding/tokens.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/data-binding/tokens.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\nimport type { JsonValue } from '@elytracms/core/project-graph'\n\n/**\n * Path tokens (EC-023). A token is a JSON Pointer (RFC 6901), e.g. `/items/0/title`. We use\n * structural pointers — not UI labels — so a binding survives renaming a field's display\n * label: only the data shape matters. The root document is the empty pointer `\"\"` or `\"/\"`.\n *\n * Per RFC 6901, a reference token escapes `~` as `~0` and `/` as `~1` so keys containing\n * those characters remain addressable.\n */\n\nconst escapeRefToken = (key: string): string => key.replace(/~/g, '~0').replace(/\\//g, '~1')\nconst unescapeRefToken = (token: string): string => token.replace(/~1/g, '/').replace(/~0/g, '~')\n\n/**\n * Build a JSON Pointer token from a sequence of object keys / array indices.\n * `tokenFromPath([])` is the root pointer `\"/\"`; `tokenFromPath(['items', 0, 'title'])` is\n * `\"/items/0/title\"`.\n */\nexport function tokenFromPath(path: ReadonlyArray<string | number>): string {\n if (path.length === 0) return '/'\n return '/' + path.map((seg) => escapeRefToken(String(seg))).join('/')\n}\n\n/**\n * Parse a JSON Pointer token into its reference segments. The root pointer (`\"\"` or `\"/\"`)\n * yields an empty array. Returns `undefined` for syntactically invalid tokens (a non-empty\n * pointer that does not begin with `/`).\n */\nexport function pathFromToken(token: string): string[] | undefined {\n if (token === '' || token === '/') return []\n if (!token.startsWith('/')) return undefined\n return token\n .slice(1)\n .split('/')\n .map(unescapeRefToken)\n}\n\n/** Outcome of resolving a token against a payload. `found` distinguishes a real `null`/`undefined` from a miss. */\nexport type TokenResolution =\n | { found: true; value: JsonValue }\n | { found: false }\n\nconst isPlainObject = (v: unknown): v is { [key: string]: JsonValue } =>\n typeof v === 'object' && v !== null && !Array.isArray(v)\n\n/**\n * Resolve a JSON Pointer token to a value within a payload. Numeric segments index arrays;\n * string segments index objects. A miss (unknown key, out-of-range index, or traversal\n * through a primitive) yields `{ found: false }` rather than throwing.\n */\nexport function resolveToken(payload: JsonValue, token: string): TokenResolution {\n const path = pathFromToken(token)\n if (path === undefined) return { found: false }\n let current: JsonValue = payload\n for (const segment of path) {\n if (Array.isArray(current)) {\n // Array index must be a non-negative integer string with no leading zeros (RFC 6901).\n if (!/^(0|[1-9][0-9]*)$/.test(segment)) return { found: false }\n const index = Number(segment)\n if (index >= current.length) return { found: false }\n current = current[index] as JsonValue\n continue\n }\n if (isPlainObject(current)) {\n if (!Object.prototype.hasOwnProperty.call(current, segment)) return { found: false }\n current = current[segment] as JsonValue\n continue\n }\n // Cannot descend into a primitive / null.\n return { found: false }\n }\n return { found: true, value: current }\n}\n\n/**\n * An inferred schema/shape for a sample payload (EC-023). This is a lightweight structural\n * description — not a Zod schema — used to drive the binding picker and to enumerate the\n * stable tokens a source exposes.\n */\nexport type InferredSchema =\n | { kind: 'string' }\n | { kind: 'number' }\n | { kind: 'boolean' }\n | { kind: 'null' }\n | { kind: 'array'; element: InferredSchema }\n | { kind: 'object'; properties: Record<string, InferredSchema> }\n | { kind: 'unknown' }\n\nexport const inferredSchemaSchema: z.ZodType<InferredSchema> = z.lazy(() =>\n z.union([\n z.object({ kind: z.literal('string') }),\n z.object({ kind: z.literal('number') }),\n z.object({ kind: z.literal('boolean') }),\n z.object({ kind: z.literal('null') }),\n z.object({ kind: z.literal('array'), element: inferredSchemaSchema }),\n z.object({ kind: z.literal('object'), properties: z.record(z.string(), inferredSchemaSchema) }),\n z.object({ kind: z.literal('unknown') }),\n ]),\n)\n\nconst mergeSchemas = (a: InferredSchema, b: InferredSchema): InferredSchema => {\n if (a.kind === 'unknown') return b\n if (b.kind === 'unknown') return a\n if (a.kind === 'array' && b.kind === 'array') {\n return { kind: 'array', element: mergeSchemas(a.element, b.element) }\n }\n if (a.kind === 'object' && b.kind === 'object') {\n const properties: Record<string, InferredSchema> = { ...a.properties }\n for (const [key, schema] of Object.entries(b.properties)) {\n const existing = properties[key]\n properties[key] = existing ? mergeSchemas(existing, schema) : schema\n }\n return { kind: 'object', properties }\n }\n // Mixed primitive/array/object element types collapse to `unknown` so callers fall back gracefully.\n return a.kind === b.kind ? a : { kind: 'unknown' }\n}\n\n/**\n * Infer a structural schema from a sample payload (EC-023). Arrays infer their element shape\n * by merging across elements so heterogeneous samples still produce a usable union-ish shape;\n * an empty array yields an `unknown` element.\n */\nexport function inferSchema(sample: JsonValue): InferredSchema {\n if (sample === null) return { kind: 'null' }\n switch (typeof sample) {\n case 'string':\n return { kind: 'string' }\n case 'number':\n return { kind: 'number' }\n case 'boolean':\n return { kind: 'boolean' }\n default:\n break\n }\n if (Array.isArray(sample)) {\n const element = sample.reduce<InferredSchema>(\n (acc, item) => mergeSchemas(acc, inferSchema(item)),\n { kind: 'unknown' },\n )\n return { kind: 'array', element }\n }\n if (isPlainObject(sample)) {\n const properties: Record<string, InferredSchema> = {}\n for (const [key, value] of Object.entries(sample)) {\n properties[key] = inferSchema(value)\n }\n return { kind: 'object', properties }\n }\n return { kind: 'unknown' }\n}\n\n/**\n * Enumerate the stable leaf+branch tokens exposed by an inferred schema. Object properties\n * recurse; arrays expose a representative `0` index so a single concrete item is addressable\n * (e.g. for previewing a repeater item shape). The root token (`\"/\"`) is included.\n */\nexport function tokensForSchema(schema: InferredSchema): string[] {\n const tokens: string[] = []\n const walk = (node: InferredSchema, path: Array<string | number>): void => {\n tokens.push(tokenFromPath(path))\n if (node.kind === 'object') {\n for (const [key, child] of Object.entries(node.properties)) {\n walk(child, [...path, key])\n }\n } else if (node.kind === 'array') {\n walk(node.element, [...path, 0])\n }\n }\n walk(schema, [])\n return tokens\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../src/design-tokens/css.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../src/design-tokens/css.ts"],"names":[],"mappings":"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","sourcesContent":["import { colorTokens, radiusBase } from './tokens'\nimport type { ColorMode, ColorToken, TokenValue } from './tokens'\n\n/**\n * CSS-variable emission (EC-093). Turns the typed tokens into the `:root` / `.dark` custom\n * properties the Studio theme consumes and that an exported Next.js app can drop in verbatim.\n * Because both the builder's `tokens.css` and the export are produced here, they never drift.\n */\n\n/** Resolve a token value to a CSS value: a literal, or `var(--ref)` for an aliased role. */\nexport function resolveTokenValue(value: TokenValue): string {\n return 'ref' in value ? `var(--${value.ref})` : value.value\n}\n\n/**\n * Per-token colour overrides (e.g. a starter kit's brand palette). Keyed by token name; each\n * supplies a literal colour for light and/or dark that replaces the canonical value.\n */\nexport type TokenOverrides = Record<string, { light?: string; dark?: string }>\n\n/** The CSS-variable map for one colour mode, including `--radius` for the light/base mode. */\nexport function tokensToCssVariables(mode: ColorMode, overrides: TokenOverrides = {}): Record<string, string> {\n const out: Record<string, string> = {}\n for (const token of colorTokens) {\n const override = overrides[token.name]?.[mode]\n out[`--${token.name}`] = override ?? resolveTokenValue(mode === 'dark' ? token.dark : token.light)\n }\n if (mode === 'light') out['--radius'] = radiusBase\n return out\n}\n\nfunction emitBlock(selector: string, vars: Record<string, string>): string {\n const lines = Object.entries(vars).map(([name, value]) => ` ${name}: ${value};`)\n return `${selector} {\\n${lines.join('\\n')}\\n}`\n}\n\n/**\n * Emit the full token stylesheet: a `:root` block (light + `--radius`) and a `.dark` block.\n * Deterministic and stable — suitable to write to `tokens.css` and to assert against in tests.\n * Optional `overrides` apply a kit/brand palette on top of the canonical tokens (EC-117).\n */\nexport function emitTokensCss(overrides: TokenOverrides = {}): string {\n const header =\n '/* GENERATED from @elytracms/design-tokens — do not edit by hand. Run `pnpm gen:tokens`. */'\n const root = emitBlock(':root', tokensToCssVariables('light', overrides))\n const dark = emitBlock('.dark', tokensToCssVariables('dark', overrides))\n return `${header}\\n${root}\\n\\n${dark}\\n`\n}\n\n/** A single colour token resolved for a mode (used by the style guide). */\nexport interface ResolvedColor {\n name: string\n role: string\n /** The CSS value, with refs resolved to their concrete colour. */\n css: string\n variable: string\n}\n\n/** Resolve a token (following one level of ref) to a concrete colour for a mode. */\nexport function resolveColor(token: ColorToken, mode: ColorMode): ResolvedColor {\n const value = mode === 'dark' ? token.dark : token.light\n let css: string\n if ('ref' in value) {\n const target = colorTokens.find((t) => t.name === value.ref)\n const targetValue = target ? (mode === 'dark' ? target.dark : target.light) : undefined\n css = targetValue && 'value' in targetValue ? targetValue.value : `var(--${value.ref})`\n } else {\n css = value.value\n }\n return { name: token.name, role: token.role, css, variable: `--${token.name}` }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/design-tokens/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,+BAA+B,CAAA;AAEtD,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/design-tokens/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,+BAA+B,CAAA;AAEtD,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA","sourcesContent":["/**\n * @elytracms/design-tokens — the single typed source of truth for the visual system (brief §8,\n * EC-091/092/093/094). Semantic colour roles (light/dark), radius, type and spacing scales,\n * with deterministic CSS-variable emission and a style-guide model. The Studio theme, the\n * CSS-variable export, and the visual style guide all derive from here — no drift.\n */\nexport const PACKAGE = '@elytracms/core/design-tokens'\n\nexport * from './tokens'\nexport * from './css'\nexport * from './style-guide'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style-guide.js","sourceRoot":"","sources":["../../src/design-tokens/style-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAiBpC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;IAC5F,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,EAAE;IAC1G,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;IAClF,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE;IAC1E,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;CACjE,CAAA;AAOD,oDAAoD;AACpD,MAAM,UAAU,kBAAkB,CAAC,IAAe;IAChD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,MAAM;aACnB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;aACvD,MAAM,CAAC,CAAC,CAAC,EAAqC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC7C,CAAC,CAAC,CAAA;AACL,CAAC;AAUD,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,IAAe;IAC7C,OAAO;QACL,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAClC,SAAS;QACT,YAAY;QACZ,WAAW;QACX,UAAU,EAAE,WAAW,CAAC,MAAM;KAC/B,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"style-guide.js","sourceRoot":"","sources":["../../src/design-tokens/style-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAiBpC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;IAC5F,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,EAAE;IAC1G,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;IAClF,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE;IAC1E,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;CACjE,CAAA;AAOD,oDAAoD;AACpD,MAAM,UAAU,kBAAkB,CAAC,IAAe;IAChD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,MAAM;aACnB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;aACvD,MAAM,CAAC,CAAC,CAAC,EAAqC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC7C,CAAC,CAAC,CAAA;AACL,CAAC;AAUD,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,IAAe;IAC7C,OAAO;QACL,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAClC,SAAS;QACT,YAAY;QACZ,WAAW;QACX,UAAU,EAAE,WAAW,CAAC,MAAM;KAC/B,CAAA;AACH,CAAC","sourcesContent":["import { colorTokens, radiusScale, spacingScale, typeScale } from './tokens'\nimport { resolveColor } from './css'\nimport type { ColorMode, ScaleStep } from './tokens'\nimport type { ResolvedColor } from './css'\n\n/**\n * A deterministic model for the visual style guide (EC-094). It groups the tokens into the\n * sections the guide renders — colour swatches by role, the type scale, spacing and radius —\n * with both light and dark resolutions so the surface is reproducible from fixtures and\n * agent-verifiable (no live data, no randomness).\n */\n\nexport interface SwatchGroup {\n title: string\n /** Token names in this group, in display order. */\n tokens: string[]\n}\n\n/** Semantic grouping of the colour roles for the guide. */\nexport const swatchGroups: readonly SwatchGroup[] = [\n { title: 'Surfaces', tokens: ['background', 'card', 'panel', 'popover', 'muted', 'accent'] },\n { title: 'Text', tokens: ['foreground', 'muted-foreground', 'secondary-foreground', 'accent-foreground'] },\n { title: 'Brand', tokens: ['primary', 'primary-foreground', 'secondary', 'ring'] },\n { title: 'Status', tokens: ['success', 'warning', 'destructive', 'info'] },\n { title: 'Structure', tokens: ['border', 'input', 'grid-line'] },\n]\n\nexport interface SwatchSection {\n title: string\n swatches: ResolvedColor[]\n}\n\n/** Resolve every swatch group for a colour mode. */\nexport function styleGuideSwatches(mode: ColorMode): SwatchSection[] {\n return swatchGroups.map((group) => ({\n title: group.title,\n swatches: group.tokens\n .map((name) => colorTokens.find((t) => t.name === name))\n .filter((t): t is (typeof colorTokens)[number] => Boolean(t))\n .map((token) => resolveColor(token, mode)),\n }))\n}\n\nexport interface StyleGuideModel {\n swatches: SwatchSection[]\n typeScale: readonly ScaleStep[]\n spacingScale: readonly ScaleStep[]\n radiusScale: readonly ScaleStep[]\n colorCount: number\n}\n\n/** The full deterministic style-guide model for a colour mode. */\nexport function styleGuideModel(mode: ColorMode): StyleGuideModel {\n return {\n swatches: styleGuideSwatches(mode),\n typeScale,\n spacingScale,\n radiusScale,\n colorCount: colorTokens.length,\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/design-tokens/tokens.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/design-tokens/tokens.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\n\n/**\n * Canonical design tokens (brief §8, EC-091/092). One typed source of truth for the visual\n * system: semantic color roles with light/dark values, plus radius, type scale and spacing\n * scale. The Studio's Tailwind theme, the generated CSS-variable export (EC-093) and the visual\n * style guide (EC-094) all derive from these — so there is no drift between them.\n *\n * Colours are OKLCH (perceptually uniform; predictable light/dark pairs). A token value is\n * either a literal colour or a reference to another token (so `*-foreground` roles can track\n * `foreground` without duplicating its value).\n */\n\nconst colorRefSchema = z.object({ ref: z.string().min(1) })\nconst colorLiteralSchema = z.object({ value: z.string().min(1) })\nexport const tokenValueSchema = z.union([colorLiteralSchema, colorRefSchema])\nexport type TokenValue = z.infer<typeof tokenValueSchema>\n\n/** A semantic colour role with its light and dark resolutions. */\nexport const colorTokenSchema = z.object({\n name: z.string().min(1),\n /** Human description of the role — surfaced in the style guide. */\n role: z.string(),\n light: tokenValueSchema,\n dark: tokenValueSchema,\n})\nexport type ColorToken = z.infer<typeof colorTokenSchema>\n\nconst lit = (value: string): TokenValue => ({ value })\nconst ref = (name: string): TokenValue => ({ ref: name })\n\n/**\n * The semantic colour roles. Order is meaningful: it drives the emitted CSS-variable order and\n * the style-guide swatch order. Cool-slate neutrals + a confident cobalt primary; monospace and\n * status colours (success/warning/destructive/info) are first-class.\n */\nexport const colorTokens: readonly ColorToken[] = [\n { name: 'background', role: 'App canvas background', light: lit('oklch(0.985 0.002 250)'), dark: lit('oklch(0.176 0.012 264)') },\n { name: 'foreground', role: 'Primary text', light: lit('oklch(0.21 0.02 264)'), dark: lit('oklch(0.95 0.005 250)') },\n { name: 'card', role: 'Card surface', light: lit('oklch(1 0 0)'), dark: lit('oklch(0.205 0.013 264)') },\n { name: 'card-foreground', role: 'Text on cards', light: ref('foreground'), dark: ref('foreground') },\n { name: 'panel', role: 'Inspector / rail surface', light: lit('oklch(0.974 0.003 255)'), dark: lit('oklch(0.196 0.013 264)') },\n { name: 'panel-foreground', role: 'Text on panels', light: ref('foreground'), dark: ref('foreground') },\n { name: 'popover', role: 'Floating surface', light: lit('oklch(1 0 0)'), dark: lit('oklch(0.214 0.013 264)') },\n { name: 'popover-foreground', role: 'Text on popovers', light: ref('foreground'), dark: ref('foreground') },\n { name: 'muted', role: 'Subtle fill', light: lit('oklch(0.955 0.004 255)'), dark: lit('oklch(0.256 0.013 264)') },\n { name: 'muted-foreground', role: 'Secondary text', light: lit('oklch(0.5 0.018 260)'), dark: lit('oklch(0.66 0.02 258)') },\n { name: 'border', role: 'Hairline borders', light: lit('oklch(0.908 0.005 260)'), dark: lit('oklch(0.278 0.013 264)') },\n { name: 'input', role: 'Form control borders', light: lit('oklch(0.908 0.005 260)'), dark: lit('oklch(0.3 0.013 264)') },\n { name: 'ring', role: 'Focus ring', light: lit('oklch(0.55 0.17 256)'), dark: lit('oklch(0.66 0.16 256)') },\n { name: 'primary', role: 'Primary action (cobalt)', light: lit('oklch(0.55 0.17 256)'), dark: lit('oklch(0.66 0.16 256)') },\n { name: 'primary-foreground', role: 'Text on primary', light: lit('oklch(0.99 0.005 250)'), dark: lit('oklch(0.16 0.02 264)') },\n { name: 'secondary', role: 'Secondary action', light: lit('oklch(0.955 0.004 255)'), dark: lit('oklch(0.256 0.013 264)') },\n { name: 'secondary-foreground', role: 'Text on secondary', light: lit('oklch(0.3 0.02 264)'), dark: lit('oklch(0.92 0.005 250)') },\n { name: 'accent', role: 'Selected / emphasis fill', light: lit('oklch(0.95 0.022 256)'), dark: lit('oklch(0.288 0.03 256)') },\n { name: 'accent-foreground', role: 'Text on accent', light: lit('oklch(0.36 0.07 256)'), dark: lit('oklch(0.88 0.03 256)') },\n { name: 'success', role: 'Success / valid', light: lit('oklch(0.58 0.13 150)'), dark: lit('oklch(0.7 0.14 150)') },\n { name: 'success-foreground', role: 'Text on success', light: lit('oklch(0.99 0.01 150)'), dark: lit('oklch(0.16 0.03 150)') },\n { name: 'warning', role: 'Warning', light: lit('oklch(0.68 0.14 70)'), dark: lit('oklch(0.79 0.14 75)') },\n { name: 'warning-foreground', role: 'Text on warning', light: lit('oklch(0.24 0.04 70)'), dark: lit('oklch(0.2 0.04 75)') },\n { name: 'destructive', role: 'Error / destructive', light: lit('oklch(0.57 0.2 27)'), dark: lit('oklch(0.67 0.18 25)') },\n { name: 'destructive-foreground', role: 'Text on destructive', light: lit('oklch(0.99 0.01 27)'), dark: lit('oklch(0.16 0.03 25)') },\n { name: 'info', role: 'Informational / bound', light: lit('oklch(0.56 0.12 248)'), dark: lit('oklch(0.7 0.13 245)') },\n { name: 'info-foreground', role: 'Text on info', light: lit('oklch(0.99 0.01 248)'), dark: lit('oklch(0.16 0.03 245)') },\n { name: 'grid-line', role: 'Canvas grid lines', light: lit('oklch(0.8 0.01 260 / 0.5)'), dark: lit('oklch(0.5 0.012 264 / 0.32)') },\n]\n\n/** A scale step (radius, font size, spacing) — a name mapped to a CSS length. */\nexport const scaleStepSchema = z.object({\n name: z.string(),\n value: z.string(),\n /** Optional note shown in the style guide. */\n note: z.string().optional(),\n})\nexport type ScaleStep = z.infer<typeof scaleStepSchema>\n\n/** Base radius; the Tailwind theme derives sm/md/lg/xl from it. */\nexport const radiusBase = '0.5rem'\n\n/** The type scale (Tailwind's default rem steps), documented for the style guide. */\nexport const typeScale: readonly ScaleStep[] = [\n { name: 'xs', value: '0.75rem', note: 'Captions, code chips' },\n { name: 'sm', value: '0.875rem', note: 'Body small, labels' },\n { name: 'base', value: '1rem', note: 'Body' },\n { name: 'lg', value: '1.125rem', note: 'Lead' },\n { name: 'xl', value: '1.25rem', note: 'H4' },\n { name: '2xl', value: '1.5rem', note: 'H3' },\n { name: '3xl', value: '1.875rem', note: 'H2' },\n { name: '4xl', value: '2.25rem', note: 'H1' },\n { name: '5xl', value: '3rem', note: 'Display' },\n]\n\n/** The spacing scale used by the named layout primitives (Stack/Row/Grid `gap`). */\nexport const spacingScale: readonly ScaleStep[] = [\n { name: 'px', value: '1px' },\n { name: '1', value: '0.25rem' },\n { name: '2', value: '0.5rem' },\n { name: '3', value: '0.75rem' },\n { name: '4', value: '1rem' },\n { name: '6', value: '1.5rem' },\n { name: '8', value: '2rem' },\n]\n\n/** The radius scale derived from {@link radiusBase}. */\nexport const radiusScale: readonly ScaleStep[] = [\n { name: 'sm', value: 'calc(0.5rem - 4px)' },\n { name: 'md', value: 'calc(0.5rem - 2px)' },\n { name: 'lg', value: '0.5rem' },\n { name: 'xl', value: 'calc(0.5rem + 4px)' },\n]\n\n/** The fonts the system standardises on. */\nexport const fonts = {\n sans: \"'Hanken Grotesk Variable', ui-sans-serif, system-ui, sans-serif\",\n mono: \"'JetBrains Mono Variable', ui-monospace, 'SF Mono', monospace\",\n} as const\n\n/** The full token set — the single source of truth. */\nexport const designTokens = {\n colors: colorTokens,\n radiusBase,\n typeScale,\n spacingScale,\n radiusScale,\n fonts,\n} as const\n\nexport type DesignTokens = typeof designTokens\n\n/** A colour mode. */\nexport type ColorMode = 'light' | 'dark'\n"]}
|
|
@@ -42,6 +42,7 @@ export declare const builderSnapshotSchema: z.ZodObject<{
|
|
|
42
42
|
localized: z.ZodOptional<z.ZodBoolean>;
|
|
43
43
|
titleField: z.ZodOptional<z.ZodString>;
|
|
44
44
|
singleton: z.ZodOptional<z.ZodBoolean>;
|
|
45
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
45
46
|
}, z.core.$strip>>;
|
|
46
47
|
graph: z.ZodNullable<z.ZodObject<{
|
|
47
48
|
revision: z.ZodNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder-source.js","sourceRoot":"","sources":["../../src/export-sync/builder-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAGlF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAA;AAG/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpE,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACzC,iFAAiF;IACjF,KAAK,EAAE,0BAA0B,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAA;AA6BF,yFAAyF;AACzF,SAAS,cAAc,CAAC,QAAyB;IAC/C,OAAO,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,EAAE,EAAE,cAAc,MAAM,EAAE;QAC1B,OAAO,EAAE,GAAG;QACZ,MAAM;QACN,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;KAC7C,CAAC,CAAC,CAAA;AACL,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsG,EACtG,IAAgB;IAEhB,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACzE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,YAAY,CAAA;IACtD,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,QAAQ,SAAS,IAAI,gBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAA;IAC/F,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,MAAM,CAAC,SAAS,IAAI,KAAK,EACzB,GAAG,EACH,KAAK,EACL,MAAM,CAAC,KAAK,CACb,CAAA;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,0BAA0B,CAClC,yBAAyB,GAAG,kBAAkB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,GAAG,CACpG,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA+B;IACrE,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,IAAgB;YAC9B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAEzD,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,0BAA0B,CAClC,IAAI,KAAK,WAAW;oBAClB,CAAC,CAAC,YAAY,QAAQ,CAAC,SAAS,uDAAuD,QAAQ,CAAC,WAAW,8CAA8C;oBACzJ,CAAC,CAAC,YAAY,QAAQ,CAAC,SAAS,+BAA+B,CAClE,CAAA;YACH,CAAC;YACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YACrE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,MAAM,IAAI,0BAA0B,CAClC,0BAA0B,QAAQ,CAAC,KAAK,CAAC,QAAQ,qBAAqB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,GAAG,CACjI,CAAA;YACH,CAAC;YAED,+EAA+E;YAC/E,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAA;YAC1D,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;gBAC9C,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC1C,CAAC;YAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;YAC/B,4EAA4E;YAC5E,2EAA2E;YAC3E,iCAAiC;YACjC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;YACxC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YAErF,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,SAAS;gBACzD,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,SAAS;gBAClD,KAAK;gBACL,MAAM;gBACN,SAAS,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBACxC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,SAAS,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBACpC,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,SAAS,EAAE,aAAa,EAAE;gBAC1B,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;oBACvC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE;oBAC/C,CAAC,CAAC,EAAE,CAAC;aACR,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"builder-source.js","sourceRoot":"","sources":["../../src/export-sync/builder-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAGlF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAA;AAG/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpE,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACzC,iFAAiF;IACjF,KAAK,EAAE,0BAA0B,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAA;AA6BF,yFAAyF;AACzF,SAAS,cAAc,CAAC,QAAyB;IAC/C,OAAO,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,EAAE,EAAE,cAAc,MAAM,EAAE;QAC1B,OAAO,EAAE,GAAG;QACZ,MAAM;QACN,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;KAC7C,CAAC,CAAC,CAAA;AACL,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsG,EACtG,IAAgB;IAEhB,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACzE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,YAAY,CAAA;IACtD,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,QAAQ,SAAS,IAAI,gBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAA;IAC/F,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,MAAM,CAAC,SAAS,IAAI,KAAK,EACzB,GAAG,EACH,KAAK,EACL,MAAM,CAAC,KAAK,CACb,CAAA;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,0BAA0B,CAClC,yBAAyB,GAAG,kBAAkB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,GAAG,CACpG,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA+B;IACrE,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,IAAgB;YAC9B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAEzD,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,0BAA0B,CAClC,IAAI,KAAK,WAAW;oBAClB,CAAC,CAAC,YAAY,QAAQ,CAAC,SAAS,uDAAuD,QAAQ,CAAC,WAAW,8CAA8C;oBACzJ,CAAC,CAAC,YAAY,QAAQ,CAAC,SAAS,+BAA+B,CAClE,CAAA;YACH,CAAC;YACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YACrE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,MAAM,IAAI,0BAA0B,CAClC,0BAA0B,QAAQ,CAAC,KAAK,CAAC,QAAQ,qBAAqB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,GAAG,CACjI,CAAA;YACH,CAAC;YAED,+EAA+E;YAC/E,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAA;YAC1D,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;gBAC9C,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC1C,CAAC;YAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;YAC/B,4EAA4E;YAC5E,2EAA2E;YAC3E,iCAAiC;YACjC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;YACxC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YAErF,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,SAAS;gBACzD,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,SAAS;gBAClD,KAAK;gBACL,MAAM;gBACN,SAAS,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBACxC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,SAAS,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBACpC,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,SAAS,EAAE,aAAa,EAAE;gBAC1B,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;oBACvC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE;oBAC/C,CAAC,CAAC,EAAE,CAAC;aACR,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import { z } from 'zod'\nimport type { ComponentManifest } from '@elytracms/core/component-registry'\nimport { collectionDefSchema, localeConfigSchema } from '@elytracms/core/cms-core'\nimport type { RedirectRecord, RouteRecord } from '@elytracms/core/cms-core'\nimport type { DataSource } from '@elytracms/core/data-binding'\nimport { emitTokensCss } from '@elytracms/core/design-tokens'\nimport { parseProjectGraph } from '@elytracms/core/project-graph'\nimport type { ExportInput, ExportMode } from './core'\nimport {\n registrySyncEndpoints,\n registrySyncRequest,\n RegistrySyncTransportError,\n} from './registry-sync-client'\nimport type { ExportSource } from './sync'\n\n/**\n * The live builder {@link ExportSource} (EC-157): `builder typegen` and `builder check`\n * read the canonical model from the builder deployment's snapshot endpoint\n * (`GET …/registry-sync/snapshot`, Bearer CLI token) instead of a fixture. The\n * snapshot carries only what the builder persists as data: the graph revision for the\n * requested mode (published = the publishing-state-pinned revision per environment,\n * draft = latest), plus locale config as a placeholder.\n *\n * Several inputs are config-sourced / host-supplied, NOT carried by the snapshot\n * (mirroring `@elytracms/next`'s live content wiring — the backend does not persist\n * them):\n *\n * - `routes` / `redirects` — authored in `elytra.config.ts` and resolved by\n * studio-core (EC-207). They are config, never backend data: the bin feeds the\n * resolved config's `routes`/`redirects` arrays here. The snapshot no longer\n * carries a route table (its `routes`/`redirects` fields are optional/ignored).\n * - `sources` — data-source declarations bindings resolve against. Without them\n * every graph binding reports `unresolved-binding`, so a host whose graph binds\n * data MUST declare its sources.\n * - `manifests` — the component manifests are code-owned (defined in TS next to the\n * components), not persisted builder-side, so the host supplies the full set\n * (`basePrimitives().manifests` plus the project's own manifests) with their REAL\n * prop schemas. The builder snapshot no longer carries manifest records.\n *\n * Route fallback: when no config routes are supplied the source maps `/` to the\n * conventional home page document (`page/home`) for every configured locale — the\n * same convention as the example host's live content source (EC-187: pages are\n * documents). Config routes, when present, are authoritative and replace the fallback.\n */\n\nconst graphRevisionPayloadSchema = z.object({\n revision: z.number(),\n serializedGraph: z.string(),\n})\n\n/**\n * Wire shape of `GET …/registry-sync/snapshot` (served by the builder's Convex\n * deployment). EC-207: routes/redirects are config-sourced (authored in\n * `elytra.config.ts`), so the snapshot no longer carries them — the schema omits\n * them entirely and the source reads routes/redirects from the resolved config.\n */\nexport const builderSnapshotSchema = z.object({\n projectId: z.string().min(1),\n mode: z.enum(['published', 'draft']),\n environment: z.string().min(1),\n project: z.object({ name: z.string(), slug: z.string() }).nullable(),\n localeConfig: localeConfigSchema,\n collections: z.array(collectionDefSchema),\n /** `null` when the requested mode/environment has no graph revision to serve. */\n graph: graphRevisionPayloadSchema.nullable(),\n})\nexport type BuilderSnapshot = z.infer<typeof builderSnapshotSchema>\n\nexport interface HttpBuilderSourceConfig {\n /** Builder deployment origin serving the HTTP actions, e.g. `https://<name>.convex.site`. */\n baseUrl: string\n projectId: string\n /** Bearer CLI token (EC-150) — same token the registry sync client uses. */\n token?: string\n /** Publishing environment whose pinned revision serves `published` mode (default: `production`). */\n environment?: string\n /** Code-owned component manifests (primitives + project manifests) with their real schemas. */\n manifests?: readonly ComponentManifest[]\n /** Host-declared data sources (not persisted builder-side in v1). */\n sources?: readonly DataSource[]\n /**\n * Config-sourced route table (EC-207): the resolved `elytra.config.ts`\n * `routes` array. Authoritative when non-empty; when omitted/empty the source\n * synthesizes the `/` → `page/home` fallback per locale.\n */\n routes?: readonly RouteRecord[]\n /** Config-sourced redirects (EC-207): the resolved config's `redirects` array. */\n redirects?: readonly RedirectRecord[]\n /** Import specifier for the host repo's components module (eject wiring). */\n componentsImport?: string\n /** Injected for tests; defaults to global `fetch`. */\n fetchImpl?: typeof fetch\n}\n\n/** Default-route fallback when the config supplies no route records (see module doc). */\nfunction fallbackRoutes(snapshot: BuilderSnapshot): RouteRecord[] {\n return snapshot.localeConfig.locales.map((locale) => ({\n id: `route-home-${locale}`,\n pattern: '/',\n locale,\n document: { collection: 'page', id: 'home' },\n }))\n}\n\n/** Fetch + validate one snapshot. Exposed for hosts that want the raw payload. */\nexport async function fetchBuilderSnapshot(\n config: Pick<HttpBuilderSourceConfig, 'baseUrl' | 'projectId' | 'token' | 'environment' | 'fetchImpl'>,\n mode: ExportMode,\n): Promise<BuilderSnapshot> {\n const endpoints = registrySyncEndpoints(config.baseUrl, config.projectId)\n const environment = config.environment ?? 'production'\n const url = `${endpoints.snapshot}?mode=${mode}&environment=${encodeURIComponent(environment)}`\n const payload = await registrySyncRequest<unknown>(\n config.fetchImpl ?? fetch,\n url,\n 'GET',\n config.token,\n )\n const parsed = builderSnapshotSchema.safeParse(payload)\n if (!parsed.success) {\n throw new RegistrySyncTransportError(\n `Builder snapshot from ${url} is malformed: ${parsed.error.issues[0]?.message ?? 'unknown error'}.`,\n )\n }\n return parsed.data\n}\n\n/**\n * Create the HTTP-backed {@link ExportSource}. `loadInput` throws a\n * {@link RegistrySyncTransportError} with a structured message on transport/auth\n * failures, a malformed snapshot, or a mode with no graph revision to serve —\n * everything else is data the canonical validators report on.\n */\nexport function createHttpBuilderSource(config: HttpBuilderSourceConfig): ExportSource {\n return {\n async loadInput(mode: ExportMode): Promise<ExportInput> {\n const snapshot = await fetchBuilderSnapshot(config, mode)\n\n if (snapshot.graph === null) {\n throw new RegistrySyncTransportError(\n mode === 'published'\n ? `Project \"${snapshot.projectId}\" has no published revision pinned for environment \"${snapshot.environment}\" — publish first, or run with --mode draft.`\n : `Project \"${snapshot.projectId}\" has no graph revisions yet.`,\n )\n }\n const parsedGraph = parseProjectGraph(snapshot.graph.serializedGraph)\n if (!parsedGraph.ok) {\n throw new RegistrySyncTransportError(\n `Builder graph revision ${snapshot.graph.revision} failed to parse: ${parsedGraph.error.issues[0]?.message ?? 'unknown error'}.`,\n )\n }\n\n // Component manifests are code-owned and host-supplied (primitives + project).\n const manifestsById = new Map<string, ComponentManifest>()\n for (const manifest of config.manifests ?? []) {\n manifestsById.set(manifest.id, manifest)\n }\n\n const graph = parsedGraph.graph\n // EC-207: routes/redirects come from the resolved config, not the snapshot.\n // Config routes are authoritative; the `/` → page/home fallback fills only\n // when the config supplies none.\n const configRoutes = config.routes ?? []\n const routes = configRoutes.length > 0 ? [...configRoutes] : fallbackRoutes(snapshot)\n\n return {\n projectName: snapshot.project?.name ?? snapshot.projectId,\n slug: snapshot.project?.slug ?? snapshot.projectId,\n graph,\n routes,\n redirects: [...(config.redirects ?? [])],\n collections: snapshot.collections,\n manifests: [...manifestsById.values()],\n sources: [...(config.sources ?? [])],\n localeConfig: snapshot.localeConfig,\n tokensCss: emitTokensCss(),\n ...(config.componentsImport !== undefined\n ? { componentsImport: config.componentsImport }\n : {}),\n }\n },\n }\n}\n"]}
|