@elytracms/core 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/dist/clipboard/build.js.map +1 -1
  2. package/dist/clipboard/clipboard.js.map +1 -1
  3. package/dist/clipboard/fragment.js.map +1 -1
  4. package/dist/clipboard/html.js.map +1 -1
  5. package/dist/clipboard/index.js.map +1 -1
  6. package/dist/clipboard/references.js.map +1 -1
  7. package/dist/clipboard/serialize.js.map +1 -1
  8. package/dist/cms-core/collection-shape.d.ts +43 -0
  9. package/dist/cms-core/collection-shape.js +129 -0
  10. package/dist/cms-core/collection-shape.js.map +1 -0
  11. package/dist/cms-core/collections.d.ts +5 -6
  12. package/dist/cms-core/collections.js +26 -13
  13. package/dist/cms-core/collections.js.map +1 -1
  14. package/dist/cms-core/documents.d.ts +1 -0
  15. package/dist/cms-core/documents.js +10 -0
  16. package/dist/cms-core/documents.js.map +1 -1
  17. package/dist/cms-core/envelopes.js.map +1 -1
  18. package/dist/cms-core/fields.js.map +1 -1
  19. package/dist/cms-core/fixtures.js.map +1 -1
  20. package/dist/cms-core/hierarchy.js.map +1 -1
  21. package/dist/cms-core/index.d.ts +1 -0
  22. package/dist/cms-core/index.js +1 -0
  23. package/dist/cms-core/index.js.map +1 -1
  24. package/dist/cms-core/infer.js.map +1 -1
  25. package/dist/cms-core/issues.d.ts +8 -0
  26. package/dist/cms-core/issues.js +10 -0
  27. package/dist/cms-core/issues.js.map +1 -1
  28. package/dist/cms-core/json-schema.js.map +1 -1
  29. package/dist/cms-core/localization.js.map +1 -1
  30. package/dist/cms-core/nesting-depth.js.map +1 -1
  31. package/dist/cms-core/routes.js.map +1 -1
  32. package/dist/cms-core/self-type.js.map +1 -1
  33. package/dist/cms-core/url-for-document.js.map +1 -1
  34. package/dist/cms-core/validate-document.js.map +1 -1
  35. package/dist/cms-core/versions.d.ts +1 -0
  36. package/dist/cms-core/versions.js.map +1 -1
  37. package/dist/collaboration/approval.js.map +1 -1
  38. package/dist/collaboration/collaboration.js.map +1 -1
  39. package/dist/collaboration/comments.js.map +1 -1
  40. package/dist/collaboration/core.js.map +1 -1
  41. package/dist/collaboration/index.js.map +1 -1
  42. package/dist/collaboration/presence.js.map +1 -1
  43. package/dist/collaboration/publishing.js.map +1 -1
  44. package/dist/collaboration/versions.js.map +1 -1
  45. package/dist/component-registry/index.js.map +1 -1
  46. package/dist/component-registry/issues.js.map +1 -1
  47. package/dist/component-registry/manifest.js.map +1 -1
  48. package/dist/component-registry/registry.js.map +1 -1
  49. package/dist/content/__fixtures__/filterable-collections.js.map +1 -1
  50. package/dist/content/__fixtures__/sample-accessor-types.js.map +1 -1
  51. package/dist/content/__fixtures__/sample-delivery-types.js.map +1 -1
  52. package/dist/content/assets.js.map +1 -1
  53. package/dist/content/binding-sources.js.map +1 -1
  54. package/dist/content/client.js.map +1 -1
  55. package/dist/content/codegen.js.map +1 -1
  56. package/dist/content/context.js.map +1 -1
  57. package/dist/content/cursor.js.map +1 -1
  58. package/dist/content/index.js.map +1 -1
  59. package/dist/content/locale.js.map +1 -1
  60. package/dist/content/perspective.js.map +1 -1
  61. package/dist/content/populate.js.map +1 -1
  62. package/dist/content/query.js.map +1 -1
  63. package/dist/content/raw.js.map +1 -1
  64. package/dist/content/resolve.js.map +1 -1
  65. package/dist/content/serialize.js.map +1 -1
  66. package/dist/content/tags.js.map +1 -1
  67. package/dist/data-binding/fixtures.js.map +1 -1
  68. package/dist/data-binding/index.js.map +1 -1
  69. package/dist/data-binding/issues.js.map +1 -1
  70. package/dist/data-binding/resolve.js.map +1 -1
  71. package/dist/data-binding/sample.js.map +1 -1
  72. package/dist/data-binding/sources.js.map +1 -1
  73. package/dist/data-binding/tokens.js.map +1 -1
  74. package/dist/design-tokens/css.js.map +1 -1
  75. package/dist/design-tokens/index.js.map +1 -1
  76. package/dist/design-tokens/style-guide.js.map +1 -1
  77. package/dist/design-tokens/tokens.js.map +1 -1
  78. package/dist/export-sync/builder-source.d.ts +1 -0
  79. package/dist/export-sync/builder-source.js.map +1 -1
  80. package/dist/export-sync/check.js.map +1 -1
  81. package/dist/export-sync/cli.js.map +1 -1
  82. package/dist/export-sync/core.js.map +1 -1
  83. package/dist/export-sync/eject.js.map +1 -1
  84. package/dist/export-sync/fixtures.js.map +1 -1
  85. package/dist/export-sync/generate.js.map +1 -1
  86. package/dist/export-sync/index.js.map +1 -1
  87. package/dist/export-sync/init.js.map +1 -1
  88. package/dist/export-sync/manifest-host.js.map +1 -1
  89. package/dist/export-sync/node.js.map +1 -1
  90. package/dist/export-sync/push.js.map +1 -1
  91. package/dist/export-sync/registry-sync-client.js.map +1 -1
  92. package/dist/export-sync/sync.js.map +1 -1
  93. package/dist/export-sync/typegen.js.map +1 -1
  94. package/dist/export-sync/validate.js.map +1 -1
  95. package/dist/export-sync/watch.js.map +1 -1
  96. package/dist/operations/assets.js.map +1 -1
  97. package/dist/operations/authorization.js.map +1 -1
  98. package/dist/operations/changesets.js.map +1 -1
  99. package/dist/operations/client.js.map +1 -1
  100. package/dist/operations/core.js.map +1 -1
  101. package/dist/operations/documents.d.ts +21 -0
  102. package/dist/operations/documents.js.map +1 -1
  103. package/dist/operations/graph.js.map +1 -1
  104. package/dist/operations/index.js.map +1 -1
  105. package/dist/operations/members.js.map +1 -1
  106. package/dist/operations/publishing.js.map +1 -1
  107. package/dist/operations/references.js.map +1 -1
  108. package/dist/operations/schema.d.ts +18 -0
  109. package/dist/operations/schema.js.map +1 -1
  110. package/dist/operations/tokens.js.map +1 -1
  111. package/dist/persistence/adapter.js.map +1 -1
  112. package/dist/persistence/assets.js.map +1 -1
  113. package/dist/persistence/backend-validation.js.map +1 -1
  114. package/dist/persistence/cli-tokens.js.map +1 -1
  115. package/dist/persistence/cms.d.ts +3 -0
  116. package/dist/persistence/cms.js.map +1 -1
  117. package/dist/persistence/contract-scenarios.js.map +1 -1
  118. package/dist/persistence/core.js.map +1 -1
  119. package/dist/persistence/graph.js.map +1 -1
  120. package/dist/persistence/index.js.map +1 -1
  121. package/dist/persistence/members.js.map +1 -1
  122. package/dist/persistence/publishing.js.map +1 -1
  123. package/dist/persistence/reference-extraction.js.map +1 -1
  124. package/dist/persistence/reference-indexing.js.map +1 -1
  125. package/dist/persistence/references.js.map +1 -1
  126. package/dist/persistence/seed.js.map +1 -1
  127. package/dist/persistence/self-maintaining-adapter.js.map +1 -1
  128. package/dist/plugins/asset-storage.js.map +1 -1
  129. package/dist/plugins/component-package.js.map +1 -1
  130. package/dist/plugins/data-sources.js.map +1 -1
  131. package/dist/plugins/examples.js.map +1 -1
  132. package/dist/plugins/export-targets.js.map +1 -1
  133. package/dist/plugins/field-types.js.map +1 -1
  134. package/dist/plugins/hooks.js.map +1 -1
  135. package/dist/plugins/index.js.map +1 -1
  136. package/dist/plugins/marketplace.js.map +1 -1
  137. package/dist/plugins/plugin.js.map +1 -1
  138. package/dist/plugins/templates.js.map +1 -1
  139. package/dist/project-graph/binding.js.map +1 -1
  140. package/dist/project-graph/container.js.map +1 -1
  141. package/dist/project-graph/edit.js.map +1 -1
  142. package/dist/project-graph/fixtures.js.map +1 -1
  143. package/dist/project-graph/ids.js.map +1 -1
  144. package/dist/project-graph/index.js.map +1 -1
  145. package/dist/project-graph/issues.js.map +1 -1
  146. package/dist/project-graph/json.js.map +1 -1
  147. package/dist/project-graph/node.js.map +1 -1
  148. package/dist/project-graph/normalize.js.map +1 -1
  149. package/dist/project-graph/serialize.js.map +1 -1
  150. package/dist/project-graph/structure.js.map +1 -1
  151. package/dist/project-graph/validate.js.map +1 -1
  152. package/dist/rich-text/adapter.js.map +1 -1
  153. package/dist/rich-text/dom-editor.js.map +1 -1
  154. package/dist/rich-text/embed.js.map +1 -1
  155. package/dist/rich-text/fixtures.js.map +1 -1
  156. package/dist/rich-text/html.js.map +1 -1
  157. package/dist/rich-text/index.js.map +1 -1
  158. package/dist/rich-text/markdown.js.map +1 -1
  159. package/dist/rich-text/portable-text.js.map +1 -1
  160. package/dist/rich-text/registry.js.map +1 -1
  161. package/dist/rich-text/render.js.map +1 -1
  162. package/dist/rich-text/schema.js.map +1 -1
  163. package/dist/rich-text/test-support.js.map +1 -1
  164. package/dist/runtime-renderer/client.js.map +1 -1
  165. package/dist/runtime-renderer/condition.js.map +1 -1
  166. package/dist/runtime-renderer/content-client.js.map +1 -1
  167. package/dist/runtime-renderer/context.js.map +1 -1
  168. package/dist/runtime-renderer/fallback.js.map +1 -1
  169. package/dist/runtime-renderer/index.js.map +1 -1
  170. package/dist/runtime-renderer/primitives.js.map +1 -1
  171. package/dist/runtime-renderer/render.js.map +1 -1
  172. package/dist/runtime-renderer/rich-text.js.map +1 -1
  173. package/dist/starter-kits/index.js.map +1 -1
  174. package/dist/starter-kits/instantiate.js.map +1 -1
  175. package/dist/starter-kits/kit.js.map +1 -1
  176. package/dist/starter-kits/kits.js.map +1 -1
  177. package/dist/starter-kits/manifests.js.map +1 -1
  178. package/dist/starter-kits/upgrade.js.map +1 -1
  179. package/dist/starter-kits/validate.js.map +1 -1
  180. package/dist/studio-core/context.js.map +1 -1
  181. package/dist/studio-core/errors.js.map +1 -1
  182. package/dist/studio-core/fixtures.js.map +1 -1
  183. package/dist/studio-core/ids.js.map +1 -1
  184. package/dist/studio-core/index.js.map +1 -1
  185. package/dist/studio-core/issues.js.map +1 -1
  186. package/dist/studio-core/metadata.js.map +1 -1
  187. package/dist/studio-core/repository.js.map +1 -1
  188. package/dist/studio-core/sections.d.ts +1 -1
  189. package/dist/studio-core/sections.js.map +1 -1
  190. package/dist/studio-core/validate.js.map +1 -1
  191. package/dist/studio-core/workspace-config.d.ts +4 -0
  192. package/dist/studio-core/workspace-config.js.map +1 -1
  193. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/operations/assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/operations/assets.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\nimport { projectIdSchema } from '@elytracms/core/studio-core'\nimport { bindOperation, defineCommand, defineQuery } from './core'\nimport type { OperationsRuntime } from './core'\n\n/**\n * Asset metadata operations (EC-139). Metadata only — asset *bytes* live behind\n * the `BlobStorageAdapter`; a typed upload command joins when the studio grows\n * a real upload flow (Milestone B).\n */\n\nexport const upsertAssetInputSchema = z.object({\n projectId: projectIdSchema,\n asset: z.object({\n id: z.string().min(1).optional(),\n filename: z.string().min(1),\n contentType: z.string().min(1),\n byteSize: z.number().int().nonnegative(),\n width: z.number().int().positive().optional(),\n height: z.number().int().positive().optional(),\n alt: z.string().optional(),\n /** Editable display title (EC-152 asset library metadata). */\n title: z.string().optional(),\n /** Defaults to a key derived from the asset id. */\n storageKey: z.string().min(1).optional(),\n /** Resolvable serve URL for the stored bytes (EC-151 upload confirm). */\n url: z.string().min(1).optional(),\n }),\n})\n\nexport const assetRefInputSchema = z.object({\n projectId: projectIdSchema,\n assetId: z.string().min(1),\n})\n\nexport const listAssetsInputSchema = z.object({\n projectId: projectIdSchema,\n})\n\nexport const assetOperationDefinitions = {\n upsert: defineCommand({\n name: 'assets.upsert',\n domain: 'assets',\n description: 'Insert or update asset metadata (bytes live in blob storage).',\n input: upsertAssetInputSchema,\n execute: (context, input) => context.adapter.assets.upsertAsset(input.projectId, input.asset),\n }),\n remove: defineCommand({\n name: 'assets.remove',\n domain: 'assets',\n description: 'Remove an asset metadata record.',\n input: assetRefInputSchema,\n execute: async (context, input) => {\n await context.adapter.assets.removeAsset(input.projectId, input.assetId)\n return { assetId: input.assetId }\n },\n }),\n get: defineQuery({\n name: 'assets.get',\n domain: 'assets',\n description: 'Load one asset metadata record.',\n input: assetRefInputSchema,\n execute: (context, input) => context.adapter.assets.getAsset(input.projectId, input.assetId),\n }),\n list: defineQuery({\n name: 'assets.list',\n domain: 'assets',\n description: 'List asset metadata records for a project.',\n input: listAssetsInputSchema,\n execute: (context, input) => context.adapter.assets.listAssets(input.projectId),\n }),\n} as const\n\nexport function createAssetOperations(runtime: OperationsRuntime) {\n return {\n upsert: bindOperation(runtime, assetOperationDefinitions.upsert),\n remove: bindOperation(runtime, assetOperationDefinitions.remove),\n get: bindOperation(runtime, assetOperationDefinitions.get),\n list: bindOperation(runtime, assetOperationDefinitions.list),\n }\n}\n\nexport type AssetOperations = ReturnType<typeof createAssetOperations>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/operations/authorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/operations/authorization.ts"],"names":[],"mappings":"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","sourcesContent":["import { roleAtLeast } from '@elytracms/core/persistence'\nimport type { MembersRepository, ProjectRole } from '@elytracms/core/persistence'\nimport type { AuthorizationContext, AuthorizationDecision, AuthorizationHook } from './core'\n\n/**\n * Role-based authorization for the operations chokepoint (EC-150, vision AD-7).\n *\n * One hook, no UI-scattered checks: every command and query passes through\n * `createRoleAuthorization` before it may touch the persistence adapter.\n * Project scope is derived from the operation input — every project-scoped\n * input schema in this layer carries a `projectId` field — and checked against\n * the actor's membership for *that* project.\n *\n * Role rules (per project):\n *\n * | Operation | viewer | editor | admin |\n * | ------------------------------------------------ | ------ | ------ | ----- |\n * | queries (`*.get`, `*.list`, …) | ✓ | ✓ | ✓ |\n * | content commands (documents/graph/assets/schema/ | | | |\n * | publishing/registry/references) | ✗ | ✓ | ✓ |\n * | members.set / members.remove | ✗ | ✗ | ✓ |\n * | tokens.issue / tokens.revoke / tokens.list | ✗ | ✗ | ✓ |\n *\n * Operations *without* a `projectId` get these documented rules:\n * - Deployment-admin operations (CLI tokens — EC-182) carry no per-project scope\n * in single-tenant deployments; they are checked against the actor's\n * deployment membership (their role on this one-project deployment).\n * - Other queries without a project scope are allowed for any authenticated\n * principal.\n * - Any other command without a `projectId` is denied (defensive default).\n *\n * Global flags on `Principal.roles`:\n * - `system` bypasses all checks (seeding, internal tooling — never a browser\n * session).\n *\n * No actor at all means every operation is denied — unauthenticated sessions\n * never reach an operation surface (the studio's route guard redirects them),\n * and non-studio consumers (CLI, AI changesets) must supply a principal.\n */\n\n/** Principal flag that bypasses all role checks (internal tooling only). */\nexport const GLOBAL_SYSTEM_FLAG = 'system'\n\n/** Project lifecycle + administration commands an `editor` may NOT run. */\nexport const ADMIN_ONLY_OPERATIONS: ReadonlySet<string> = new Set([\n 'members.set',\n 'members.remove',\n 'tokens.issue',\n 'tokens.revoke',\n // Token *listing* is admin-only too: hashes are never returned, but token\n // metadata is an administration concern, not a content concern.\n 'tokens.list',\n])\n\n/**\n * Deployment-scoped administration ops (EC-182): single-tenant means a CLI token\n * needs no per-project scope, so these operations carry no `projectId`. They are\n * authorized against the actor's membership on this one-project deployment.\n */\nconst DEPLOYMENT_ADMIN_OPERATIONS: ReadonlySet<string> = new Set([\n 'tokens.issue',\n 'tokens.revoke',\n 'tokens.list',\n])\n\n/** Extract the project scope from a validated operation input, if present. */\nexport function projectIdFromInput(input: unknown): string | undefined {\n if (typeof input !== 'object' || input === null) return undefined\n const value = (input as Record<string, unknown>).projectId\n return typeof value === 'string' && value.length > 0 ? value : undefined\n}\n\nfunction deny(reason: string): AuthorizationDecision {\n return { allow: false, reason }\n}\n\n/** The strongest of the actor's roles (single-tenant: typically just one). */\nfunction highestRole(roles: readonly ProjectRole[]): ProjectRole | undefined {\n let best: ProjectRole | undefined\n for (const role of roles) {\n if (!best || roleAtLeast(role, best)) best = role\n }\n return best\n}\n\nconst ALLOW: AuthorizationDecision = { allow: true }\n\n/**\n * Build the role-checking {@link AuthorizationHook} over a members repository.\n * Decisions are structured denials — the pipeline maps them onto the\n * `unauthorized` {@link OperationError}, which surfaces (EC-141) render verbatim.\n */\nexport function createRoleAuthorization(members: MembersRepository): AuthorizationHook {\n return async (context: AuthorizationContext): Promise<AuthorizationDecision> => {\n const actor = context.actor\n if (!actor) {\n return deny(`Operation “${context.operation}” requires an authenticated user.`)\n }\n const flags = actor.roles ?? []\n if (flags.includes(GLOBAL_SYSTEM_FLAG)) return ALLOW\n\n const projectId = projectIdFromInput(context.input)\n if (!projectId) {\n // Deployment-admin ops (CLI tokens) are scopeless in single-tenant; check\n // the actor's deployment membership rather than a per-project one.\n if (DEPLOYMENT_ADMIN_OPERATIONS.has(context.operation)) {\n const memberships = await members.listMembershipsForUser(actor.id)\n const role = highestRole(memberships.map((m) => m.role))\n if (!role) {\n return deny(`You are not a member of this deployment.`)\n }\n return decideForRole(role, context)\n }\n if (context.kind === 'query') return ALLOW\n return deny(`Command “${context.operation}” carries no project scope and was denied.`)\n }\n\n const membership = await members.findMember(projectId, actor.id)\n if (!membership) {\n return deny(`You are not a member of project “${projectId}”.`)\n }\n return decideForRole(membership.role, context)\n }\n}\n\nfunction decideForRole(role: ProjectRole, context: AuthorizationContext): AuthorizationDecision {\n if (ADMIN_ONLY_OPERATIONS.has(context.operation)) {\n return roleAtLeast(role, 'admin')\n ? ALLOW\n : deny(`Operation “${context.operation}” requires the “admin” role (you are “${role}”).`)\n }\n if (context.kind === 'query') return ALLOW\n return roleAtLeast(role, 'editor')\n ? ALLOW\n : deny(`Viewers cannot run commands — “${context.operation}” requires the “editor” role.`)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"changesets.js","sourceRoot":"","sources":["../../src/operations/changesets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAI7F,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,GAAG,EACH,EAAE,EACF,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,QAAQ,CAAA;AAUf,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAqJlD,SAAS,aAAa,CAAkB,OAavC;IACC,wEAAwE;IACxE,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAA2B,EAC3B,SAAiB;IAEjB,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB;YAAE,OAAO,SAAS,CAAA;QAC1D,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,aAAa,CAAsC;IAC1E,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAChE,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9E,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACxB,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE;gBACE,SAAS,EAAE,YAAY;gBACvB,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE;aACvF;SACF;CACR,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,aAAa,CAAkD;IACvF,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACrE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW;IAChG,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;QACzB;YACE,SAAS,EAAE,aAAa;YACxB,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,IAAI,EAAE,EAAE;SACjE;KACF;CACF,CAAC,CAAA;AAGF,MAAM,qBAAqB,GAAG,aAAa,CAAmC;IAC5E,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpB,MAAM,EAAE,cAAc;QACtB,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;KAC5E,CAAC;IACF,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CACjC,CACE,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE;QAC9C,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;QACrC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;KACtB,CAAC,CACH,EAAE,QAAQ;IACb,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACxB,MAAM;QACJ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;QAC9F,CAAC,CAAC;YACE;gBACE,SAAS,EAAE,kBAAkB;gBAC7B,KAAK,EAAE;oBACL,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;iBACtE;aACF;SACF;CACR,CAAC,CAAA;AAGF,MAAM,qBAAqB,GAAG,aAAa,CAAgC;IACzE,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpB,MAAM,EAAE,cAAc;QACtB,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE;KAClE,CAAC;IACF,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CACjC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ;IACxE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACxB,MAAM;QACJ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;QAC9F,CAAC,CAAC,EAAE;CACT,CAAC,CAAA;AAEF;;;;;;;;GAQG;AACH,MAAM,oBAAoB,GAAG,aAAa,CAGxC;IACA,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpB,MAAM,EAAE,cAAc;QACtB,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE;KAClE,CAAC;IACF,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QACzE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3E,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAA;QACtB,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO;gBACL;oBACE,SAAS,EAAE,sBAAsB;oBACjC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE;iBACxF;aACF,CAAA;QACH,CAAC;QACD,OAAO,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACtG,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,YAAY,GAA8C,IAAI,GAAG,CAGrE;IACA,4EAA4E;IAC5E,0EAA0E;IAC1E,kCAAkC;IAClC,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAChC,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAClC,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;IAC9C,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;IAC9C,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;IACzC,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;IACzC,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IAC3C,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IAC3C,4EAA4E;IAC5E,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAC3C,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;IAC7C,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;CAC/C,CAAC,CAAA;AAEF,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AACpC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,0BAA0B;IACxC,OAAO,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACxC,CAAC;AAWD,iFAAiF;AACjF,KAAK,UAAU,mBAAmB,CAChC,MAA0B,EAC1B,MAA6B;IAE7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAe,CAAA;IACxC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC1D,MAAM,SAAS,GAAI,IAAI,CAAC,KAAiC,CAAC,SAAS,CAAA;QACnE,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAA;IAChD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC7D,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAA;YACzF,CAAC;QACH,CAAC;QACD,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YACrD,IAAI,MAAM;gBAAE,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;YACvE,KAAK,MAAM,MAAM,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/D,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAOD,KAAK,UAAU,cAAc,CAC3B,WAAwD,EACxD,OAA2B,EAC3B,SAAoB;IAEpB,MAAM,MAAM,GAAqB,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IACtD,MAAM,MAAM,GAAiB,EAAE,CAAA;IAE/B,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,QAAQ,KAAK,yBAAyB,IAAI,CAAC,SAAS,WAAW;aACzE,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,QAAQ,KAAK,MAAM,IAAI,CAAC,SAAS,gDAAgD;aAC3F,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,QAAQ,KAAK,MAAM,IAAI,CAAC,SAAS,0DAA0D;aACrG,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,QAAQ,KAAK,MAAM,IAAI,CAAC,SAAS,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,KAAK,KAAK,CAAC,OAAO,EAAE;iBACvG,CAAC,CAAA;YACJ,CAAC;YACD,OAAM;QACR,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAyB,EAAE,CAAA;IACrC,8EAA8E;IAC9E,oDAAoD;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC1D,0EAA0E;QAC1E,uDAAuD;QACvD,MAAM,OAAO,GAAsB;YACjC,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,IAAI,iBAAiB,EAAE;YAC/B,SAAS,EAAE,QAAQ;SACpB,CAAA;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,CAAC,CAAA;YACxE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;oBACjC,IAAI,EAAE,IAAI,CAAC,KAAK;oBAChB,OAAO,EAAE,QAAQ,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,kBAAkB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;iBAC9F,CAAC,CAAA;gBACF,uDAAuD;gBACvD,MAAK;YACP,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACrF,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAc,CAAC,CAAA;YAClE,MAAM,MAAM,GACV,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;YAC7E,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;gBAC/B,MAAM;gBACN,GAAG;gBACH,MAAM;gBACN,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1C,CAAC,CAAA;YACF,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI,CAAC,KAAK;oBAChB,OAAO,EAAE,QAAQ,IAAI,CAAC,KAAK,yFAAyF;iBACrH,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,IAAI,CAAC,KAAK;oBAChB,OAAO,EAAE,QAAQ,IAAI,CAAC,KAAK,6GAA6G;iBACzI,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;IACtE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAA;AAC1D,CAAC;AAkCD,SAAS,qBAAqB,CAAC,KAAqB;IAClD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,iBAAiB;QACrC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,EAAE,YAAY;KACrB,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,SAAS,WAAW,CAAC,KAAqB,EAAE,OAAe;IACzD,oEAAoE;IACpE,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAoB,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAA;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAA;IAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,uBAAuB,CAAA;IAClE,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,MAAM,IAAI,GAAG,CACX,SAA6B,EAC7B,SAAoB,EACpB,MAA2C,EAC3C,KAAsB,EAChB,EAAE;QACR,MAAM,CAAC,IAAI,CAAC;YACV,SAAS;YACT,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,SAAS,KAAK,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAC9D,MAAM;YACN,YAAY,EAAE,cAAc,CAAC;gBAC3B,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;aAC9B,CAAC;YACF,WAAW,EAAE,SAAS,CAAC,EAAE;YACzB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,MAAc,EAAkB,EAAE,CAC5E,eAAe,CAAC,cAAc,SAAS,CAAC,EAAE,QAAQ,SAAS,CAAC,KAAK,kBAAkB,MAAM,GAAG,EAAE;QAC5F;YACE,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,cAAc,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAwB,oBAAoB,SAAS,CAAC,KAAK,IAAI;YAC5H,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAA;IAEJ,OAAO;QACL,MAAM;QAEN,MAAM,CAAC,KAAK;YACV,QAAQ,IAAI,CAAC,CAAA;YACb,OAAO;gBACL,EAAE,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gBAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpF,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACjC,KAAK,EAAE,OAAO;aACf,CAAA;QACH,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,SAAS;YACrB,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACpE,OAAO,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;YAClD,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YACzE,MAAM,IAAI,GAAc,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAA;YACrE,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;YAC7C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,SAAS;YACnB,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACpE,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBAChD,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;gBACtD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;YACD,wEAAwE;YACxE,4BAA4B;YAC5B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YACjF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,eAAe,CAC3B,cAAc,SAAS,CAAC,EAAE,yDAAyD,EACnF,OAAO,CAAC,MAAM;qBACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC;qBAC7C,GAAG,CAAC,qBAAqB,CAAC,CAC9B,CAAA;gBACD,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;gBACtD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;YAED,MAAM,OAAO,GAAsB;gBACjC,OAAO;gBACP,MAAM;gBACN,SAAS;gBACT,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD,CAAA;YACD,uEAAuE;YACvE,gCAAgC;YAChC,MAAM,aAAa,GAAsB;gBACvC,OAAO;gBACP,MAAM;gBACN,SAAS,EAAE,QAAQ;gBACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD,CAAA;YAED,MAAM,OAAO,GAA0B,EAAE,CAAA;YACzC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,CAAC,CAAA;gBACxE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,qEAAqE;oBACrE,0EAA0E;oBAC1E,MAAM,gBAAgB,GAAa,EAAE,CAAA;oBACrC,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;wBACjC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;wBACxD,MAAM,QAAQ,GAAG,UAAU;4BACzB,CAAC,CAAC,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;4BACpE,CAAC,CAAC,SAAS,CAAA;wBACb,IAAI,CAAC,QAAQ;4BAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,SAAS,qBAAqB,CAAC,CAAA;6BAC7E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;4BACtB,gBAAgB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;wBAC7E,CAAC;oBACH,CAAC;oBACD,MAAM,MAAM,GACV,gBAAgB,CAAC,MAAM,KAAK,CAAC;wBAC3B,CAAC,CAAC,gDAAgD;wBAClD,CAAC,CAAC,qCAAqC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;oBACzE,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,CAAC,KAAK,EACZ,QAAQ,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,cAAc,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE,CAC3F,CAAA;oBACD,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;oBACpD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;gBACnB,CAAC;gBACD,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAc,EAAE,MAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7F,CAAC;YAED,MAAM,IAAI,GAAc,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;YAC5E,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;YAC3C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,SAAS;YACpB,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;gBACjD,IAAI,CAAC,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;gBACvD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;YACD,MAAM,aAAa,GAAsB;gBACvC,OAAO;gBACP,MAAM;gBACN,SAAS,EAAE,QAAQ;gBACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD,CAAA;YACD,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACjD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;gBACxD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,eAAe,CAC3B,wBAAwB,SAAS,CAAC,EAAE,gCAAgC,UAAU,CAAC,SAAS,IAAI,EAC5F;wBACE;4BACE,IAAI,EAAE,mBAAmB;4BACzB,OAAO,EAAE,uBAAuB,UAAU,CAAC,SAAS,WAAW;4BAC/D,MAAM,EAAE,YAAY;yBACrB;qBACF,CACF,CAAA;oBACD,IAAI,CAAC,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;oBACrD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;gBACnB,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;gBACjF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,CAAC,KAAK,EACZ,wBAAwB,SAAS,CAAC,EAAE,gBAAgB,UAAU,CAAC,SAAS,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACrG,CAAA;oBACD,IAAI,CAAC,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;oBACrD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;YACD,MAAM,IAAI,GAAc,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;YAC3D,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;YAC5C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"changesets.js","sourceRoot":"","sources":["../../src/operations/changesets.ts"],"names":[],"mappings":"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","sourcesContent":["import type { z } from 'zod'\nimport { InMemoryPersistenceAdapter, RecordNotFoundError } from '@elytracms/core/persistence'\nimport type { PersistenceAdapter } from '@elytracms/core/persistence'\nimport type { ProjectGraph } from '@elytracms/core/project-graph'\nimport type { CmsDocument, CollectionDef, DocumentRef } from '@elytracms/core/cms-core'\nimport {\n OperationEventBus,\n allowAll,\n err,\n ok,\n runAnyOperation,\n summarizeInput,\n validationError,\n} from './core'\nimport type {\n AnyOperationDefinition,\n AuthorizationHook,\n OperationError,\n OperationIssue,\n OperationResult,\n OperationsRuntime,\n Principal,\n} from './core'\nimport { allOperationDefinitions } from './client'\nimport type { documentRefInputSchema, upsertDocumentInputSchema } from './documents'\n\n/**\n * Changesets (EC-140, vision AD-7): a batch of operation invocations that can be\n * **previewed** (structured diff + validation issues, zero side effects),\n * **applied atomically** (all-or-nothing via compensation), and **reverted**\n * (inverse operations recorded at apply time). \"Review before apply\" and undo\n * are the same primitive, shared by the UI, AI proposals, and automation.\n *\n * ## Preview design (dry run with zero mutation)\n *\n * Preview executes the changeset's steps — through the real operation pipeline —\n * against a **scratch `InMemoryPersistenceAdapter` seeded from read-only reads**\n * of the live adapter (only the entities the steps touch: graph, CMS schema +\n * documents, manifest records). This was chosen over\n * re-implementing per-operation domain checks because:\n *\n * - the diff you preview is computed by the exact code that will apply,\n * - later steps see earlier steps' effects (a step may create the collection a\n * following step inserts a document into), and\n * - the live adapter is never handed a single write.\n *\n * ## Atomic apply (compensation)\n *\n * The persistence boundary has no transactions, so apply records **inverse\n * invocations** as it goes: before each step it snapshots the touched entity,\n * executes the step through the real pipeline (validate → authorize → mutate →\n * event), and derives the operations that would undo it. If a step fails, the\n * already-applied steps are rolled back in reverse order and a structured error\n * is returned — state after a failed apply equals state before. On success the\n * accumulated inverse list (already in reverse order) is kept on the changeset;\n * `revert` executes it. Rollback and revert run with a pass-through\n * authorization hook: compensation restores state the actor was already\n * authorized to change.\n *\n * Known inverse approximations (surfaced as warnings at preview time):\n * - graph revisions are append-only — reverting a graph step saves the prior\n * graph as a *new* revision; a changeset that created the very first revision\n * cannot be reverted (its inverse is empty).\n * - reverting a schema step for a project that had no schema record restores an\n * *empty* schema record rather than \"no record\".\n */\n\n// --- Model ---------------------------------------------------------------------\n\nexport type ChangesetState = 'draft' | 'previewed' | 'applied' | 'reverted'\n\nexport type ChangesetSeverity = 'error' | 'warning'\n\n/**\n * A validation issue attached to a changeset. The shared issue model: AI\n * proposal issues (EC-095) are these. Any `error`-severity issue blocks apply.\n */\nexport interface ChangesetIssue {\n readonly severity: ChangesetSeverity\n readonly message: string\n readonly code?: string\n /** 0-based index of the step the issue belongs to; absent for changeset-level issues. */\n readonly step?: number\n}\n\n/** A single operation invocation inside a changeset (EC-139 dotted name + raw input). */\nexport interface ChangesetInvocation {\n readonly operation: string\n readonly input: unknown\n}\n\nexport type ChangeKind = 'create' | 'update' | 'delete'\n\n/** One entity touched by one step: identity plus before/after snapshots. */\nexport interface ChangesetDiffEntry {\n /** 0-based index of the step that produces this change. */\n readonly step: number\n readonly operation: string\n /** Entity kind, e.g. 'graph' | 'cms-schema' | 'cms-document'. */\n readonly entity: string\n /** Entity identity, e.g. 'prj-1/post/p1'. */\n readonly key: string\n readonly change: ChangeKind\n /** Snapshot before the step (absent on create). JSON-shaped data. */\n readonly before?: unknown\n /** Snapshot after the step (absent on delete). JSON-shaped data. */\n readonly after?: unknown\n}\n\nexport interface ChangesetPreview {\n readonly diff: readonly ChangesetDiffEntry[]\n readonly issues: readonly ChangesetIssue[]\n /** True when no `error`-severity issue exists — apply is blocked otherwise. */\n readonly applicable: boolean\n}\n\n/** What a caller (AI proposal, studio flow, automation) provides to create a changeset. */\nexport interface ChangesetInput {\n readonly title: string\n readonly summary?: string\n readonly steps: readonly ChangesetInvocation[]\n /**\n * Authoring-time issues (e.g. AI generation validation), merged into every\n * preview. Error severity blocks apply — preserves the EC-095 contract.\n */\n readonly issues?: readonly ChangesetIssue[]\n}\n\nexport interface Changeset {\n readonly id: string\n readonly title: string\n readonly summary?: string\n readonly steps: readonly ChangesetInvocation[]\n /** Authoring-time issues carried from {@link ChangesetInput.issues}. */\n readonly issues: readonly ChangesetIssue[]\n readonly state: ChangesetState\n /** Result of the most recent preview (also computed internally by apply). */\n readonly preview?: ChangesetPreview\n /** Inverse invocations recorded at apply time, already in execution (reverse) order. */\n readonly inverse?: readonly ChangesetInvocation[]\n}\n\n// --- Per-operation changeset support ---------------------------------------------\n//\n// Each changeset-capable command declares how to identify, snapshot, and invert\n// the entity it touches. Snapshots feed the preview diff AND the compensation\n// log; both therefore stay in lockstep with the operation's actual semantics.\n\n/** Which state the scratch preview adapter must be seeded with. */\ntype ScratchSeed = 'graph' | 'cms'\n\n/**\n * Existential support entry (mirrors `AnyOperationDefinition`): `never`-typed\n * parameters make every concretely-typed entry assignable.\n */\nexport interface ChangesetStepSupport {\n readonly seeds: readonly ScratchSeed[]\n readonly describe: (input: never) => { entity: string; key: string }\n /**\n * Read-only snapshot of the touched entity (`undefined` = absent). For steps\n * that create records with generated ids, the post-step snapshot receives the\n * step result.\n */\n readonly snapshot: (\n adapter: PersistenceAdapter,\n input: never,\n result?: unknown,\n ) => Promise<unknown>\n /** Inverse invocations that undo the step, given the pre-step snapshot + result. */\n readonly invert: (input: never, before: never, result: unknown) => readonly ChangesetInvocation[]\n}\n\nfunction defineSupport<Input, Snapshot>(support: {\n seeds: readonly ScratchSeed[]\n describe: (input: Input) => { entity: string; key: string }\n snapshot: (\n adapter: PersistenceAdapter,\n input: Input,\n result?: unknown,\n ) => Promise<Snapshot | undefined>\n invert: (\n input: Input,\n before: Snapshot | undefined,\n result: unknown,\n ) => readonly ChangesetInvocation[]\n}): ChangesetStepSupport {\n // Parameter contravariance makes the concretely-typed entry assignable.\n return support\n}\n\nasync function latestGraphOrUndefined(\n adapter: PersistenceAdapter,\n projectId: string,\n): Promise<ProjectGraph | undefined> {\n try {\n return (await adapter.graphs.getLatest(projectId)).graph\n } catch (cause) {\n if (cause instanceof RecordNotFoundError) return undefined\n throw cause\n }\n}\n\n/**\n * Every graph command persists a new revision of the project graph, so one\n * support covers the whole domain: snapshot = latest graph, inverse = save the\n * prior graph back as a new revision. A first-revision step has no inverse\n * (revisions are append-only) — preview surfaces that as a warning.\n */\nconst graphStepSupport = defineSupport<{ projectId: string }, ProjectGraph>({\n seeds: ['graph'],\n describe: (input) => ({ entity: 'graph', key: input.projectId }),\n snapshot: (adapter, input) => latestGraphOrUndefined(adapter, input.projectId),\n invert: (input, before) =>\n before === undefined\n ? []\n : [\n {\n operation: 'graph.save',\n input: { projectId: input.projectId, graph: before, message: 'Revert changeset step' },\n },\n ],\n})\n\n/**\n * The schema domain persists one collections record per project; inverse = save\n * the prior collections back. When no schema record existed, the inverse\n * restores an empty record (observable collections are equivalent).\n */\nconst schemaStepSupport = defineSupport<{ projectId: string }, readonly CollectionDef[]>({\n seeds: ['cms'],\n describe: (input) => ({ entity: 'cms-schema', key: input.projectId }),\n snapshot: async (adapter, input) => (await adapter.cms.findSchema(input.projectId))?.collections,\n invert: (input, before) => [\n {\n operation: 'schema.save',\n input: { projectId: input.projectId, collections: before ?? [] },\n },\n ],\n})\n\ntype UpsertDocumentInput = z.output<typeof upsertDocumentInputSchema>\nconst upsertDocumentSupport = defineSupport<UpsertDocumentInput, CmsDocument>({\n seeds: ['cms'],\n describe: (input) => ({\n entity: 'cms-document',\n key: `${input.projectId}/${input.document.collection}/${input.document.id}`,\n }),\n snapshot: async (adapter, input) =>\n (\n await adapter.cms.findDocument(input.projectId, {\n collection: input.document.collection,\n id: input.document.id,\n })\n )?.document,\n invert: (input, before) =>\n before\n ? [{ operation: 'documents.upsert', input: { projectId: input.projectId, document: before } }]\n : [\n {\n operation: 'documents.delete',\n input: {\n projectId: input.projectId,\n ref: { collection: input.document.collection, id: input.document.id },\n },\n },\n ],\n})\n\ntype DocumentRefInput = z.output<typeof documentRefInputSchema>\nconst deleteDocumentSupport = defineSupport<DocumentRefInput, CmsDocument>({\n seeds: ['cms'],\n describe: (input) => ({\n entity: 'cms-document',\n key: `${input.projectId}/${input.ref.collection}/${input.ref.id}`,\n }),\n snapshot: async (adapter, input) =>\n (await adapter.cms.findDocument(input.projectId, input.ref))?.document,\n invert: (input, before) =>\n before\n ? [{ operation: 'documents.upsert', input: { projectId: input.projectId, document: before } }]\n : [],\n})\n\n/**\n * EC-224: the pointer-based publish lifecycle (`documents.publish` / `unpublish`\n * / `pinVersion`) is reversible by RESTORING THE PRIOR PIN — never by writing a\n * flat `state` flag. Snapshot the live pin (`publishedVersion`) before the step;\n * the inverse re-pins that exact version (`documents.pinVersion`), or unpublishes\n * when the document was not pinned before. This is the pointer inverse that lets\n * the flat-state `documents.setState` op + its changeset support retire (B-3c):\n * publish/unpublish over the pointer are now fully changeset-reversible.\n */\nconst pinReversibleSupport = defineSupport<\n { projectId: string; ref: DocumentRef },\n { publishedVersion: number | undefined }\n>({\n seeds: ['cms'],\n describe: (input) => ({\n entity: 'cms-document',\n key: `${input.projectId}/${input.ref.collection}/${input.ref.id}`,\n }),\n snapshot: async (adapter, input) => {\n const record = await adapter.cms.findDocument(input.projectId, input.ref)\n return record ? { publishedVersion: record.publishedVersion } : undefined\n },\n invert: (input, before) => {\n if (!before) return []\n if (before.publishedVersion !== undefined) {\n return [\n {\n operation: 'documents.pinVersion',\n input: { projectId: input.projectId, ref: input.ref, version: before.publishedVersion },\n },\n ]\n }\n return [{ operation: 'documents.unpublish', input: { projectId: input.projectId, ref: input.ref } }]\n },\n})\n\nconst stepSupports: ReadonlyMap<string, ChangesetStepSupport> = new Map<\n string,\n ChangesetStepSupport\n>([\n // EC-187: the project graph is layouts-only; node-level page-graph commands\n // are retired (page bodies are CMS document data). Only the coarse layout\n // save remains changeset-capable.\n ['graph.save', graphStepSupport],\n ['schema.save', schemaStepSupport],\n ['schema.upsertCollection', schemaStepSupport],\n ['schema.removeCollection', schemaStepSupport],\n ['schema.upsertField', schemaStepSupport],\n ['schema.removeField', schemaStepSupport],\n ['documents.upsert', upsertDocumentSupport],\n ['documents.delete', deleteDocumentSupport],\n // EC-224 pointer publish lifecycle — reversible via the prior pin (B-3c-1).\n ['documents.publish', pinReversibleSupport],\n ['documents.unpublish', pinReversibleSupport],\n ['documents.pinVersion', pinReversibleSupport],\n])\n\n/** Whether an operation can be carried by a changeset (previewable + invertible). */\nexport function isChangesetCapable(operation: string): boolean {\n return stepSupports.has(operation)\n}\n\n/** Dotted names of every changeset-capable operation (sorted, deterministic). */\nexport function changesetCapableOperations(): readonly string[] {\n return [...stepSupports.keys()].sort()\n}\n\n// --- Preview (scratch dry run) ----------------------------------------------------\n\ninterface ParsedStep {\n readonly index: number\n readonly definition: AnyOperationDefinition\n readonly support: ChangesetStepSupport\n readonly input: unknown\n}\n\n/** Seed a scratch in-memory adapter with the entities the parsed steps touch. */\nasync function buildScratchAdapter(\n source: PersistenceAdapter,\n parsed: readonly ParsedStep[],\n): Promise<PersistenceAdapter> {\n const seedKinds = new Set<ScratchSeed>()\n const projectIds = new Set<string>()\n for (const step of parsed) {\n for (const kind of step.support.seeds) seedKinds.add(kind)\n const projectId = (step.input as { projectId?: unknown }).projectId\n if (typeof projectId === 'string') projectIds.add(projectId)\n }\n\n const scratch = new InMemoryPersistenceAdapter()\n for (const projectId of projectIds) {\n if (seedKinds.has('graph')) {\n const graph = await latestGraphOrUndefined(source, projectId)\n if (graph) {\n await scratch.graphs.saveGraph(projectId, graph, { message: 'changeset-preview-seed' })\n }\n }\n if (seedKinds.has('cms')) {\n const schema = await source.cms.findSchema(projectId)\n if (schema) await scratch.cms.saveSchema(projectId, schema.collections)\n for (const record of await source.cms.listDocuments(projectId)) {\n await scratch.cms.upsertDocument(projectId, record.document)\n }\n }\n }\n return scratch\n}\n\ninterface PreviewComputation {\n readonly preview: ChangesetPreview\n readonly parsed: readonly ParsedStep[]\n}\n\nasync function computePreview(\n definitions: ReadonlyMap<string, AnyOperationDefinition>,\n adapter: PersistenceAdapter,\n changeset: Changeset,\n): Promise<PreviewComputation> {\n const issues: ChangesetIssue[] = [...changeset.issues]\n const parsed: ParsedStep[] = []\n\n changeset.steps.forEach((step, index) => {\n const definition = definitions.get(step.operation)\n if (!definition) {\n issues.push({\n severity: 'error',\n code: 'unknown-operation',\n step: index,\n message: `Step ${index}: no operation named “${step.operation}” exists.`,\n })\n return\n }\n if (definition.kind !== 'command') {\n issues.push({\n severity: 'error',\n code: 'not-a-command',\n step: index,\n message: `Step ${index}: “${step.operation}” is a query — changesets carry commands only.`,\n })\n return\n }\n const support = stepSupports.get(step.operation)\n if (!support) {\n issues.push({\n severity: 'error',\n code: 'unsupported-operation',\n step: index,\n message: `Step ${index}: “${step.operation}” is not changeset-capable (no preview/inverse support).`,\n })\n return\n }\n const result = definition.input.safeParse(step.input)\n if (!result.success) {\n for (const issue of result.error.issues) {\n issues.push({\n severity: 'error',\n code: 'invalid-input',\n step: index,\n message: `Step ${index} (“${step.operation}”): ${issue.path.join('.') || '(input)'}: ${issue.message}`,\n })\n }\n return\n }\n parsed.push({ index, definition, support, input: result.data })\n })\n\n const diff: ChangesetDiffEntry[] = []\n // Simulate only when every step parsed — partial simulation of a structurally\n // broken changeset would produce a misleading diff.\n if (parsed.length === changeset.steps.length && parsed.length > 0) {\n const scratch = await buildScratchAdapter(adapter, parsed)\n // Throwaway bus + pass-through hook: the dry run must neither emit on the\n // shared bus nor consume real authorization decisions.\n const runtime: OperationsRuntime = {\n adapter: scratch,\n events: new OperationEventBus(),\n authorize: allowAll,\n }\n for (const step of parsed) {\n const before = await step.support.snapshot(scratch, step.input as never)\n const result = await runAnyOperation(runtime, step.definition, step.input)\n if (!result.ok) {\n issues.push({\n severity: 'error',\n code: `step-${result.error.code}`,\n step: step.index,\n message: `Step ${step.index} (“${step.definition.name}”) would fail: ${result.error.message}`,\n })\n // Later steps' outcomes are unknowable once one fails.\n break\n }\n const after = await step.support.snapshot(scratch, step.input as never, result.value)\n const { entity, key } = step.support.describe(step.input as never)\n const change: ChangeKind =\n before === undefined ? 'create' : after === undefined ? 'delete' : 'update'\n diff.push({\n step: step.index,\n operation: step.definition.name,\n entity,\n key,\n change,\n ...(before !== undefined ? { before } : {}),\n ...(after !== undefined ? { after } : {}),\n })\n if (entity === 'graph' && before === undefined) {\n issues.push({\n severity: 'warning',\n code: 'no-inverse',\n step: step.index,\n message: `Step ${step.index} creates the first graph revision; revisions are append-only, so revert cannot undo it.`,\n })\n }\n if (entity === 'cms-schema' && before === undefined) {\n issues.push({\n severity: 'warning',\n code: 'approximate-inverse',\n step: step.index,\n message: `Step ${step.index} creates the project's first schema record; revert restores an empty schema record rather than removing it.`,\n })\n }\n }\n }\n\n const applicable = !issues.some((issue) => issue.severity === 'error')\n return { preview: { diff, issues, applicable }, parsed }\n}\n\n// --- Lifecycle (create → preview → apply → revert) ---------------------------------\n\nexport interface CreateChangesetsOptions {\n /** The only mutation path — the same adapter the operations client uses. */\n adapter: PersistenceAdapter\n /** Share the operations client's bus so changeset + per-operation events interleave. */\n events?: OperationEventBus\n /** Permission chokepoint for applied steps (pass-through by default, EC-150). */\n authorize?: AuthorizationHook\n actor?: Principal\n /** Operation registry; defaults to every built-in definition. */\n definitions?: ReadonlyMap<string, AnyOperationDefinition>\n}\n\nexport interface ChangesetOperations {\n readonly events: OperationEventBus\n /** Build a draft changeset from ordered operation invocations. */\n create(input: ChangesetInput): Changeset\n /** Dry-run: compute diff + issues against current state. Never mutates. */\n preview(changeset: Changeset): Promise<OperationResult<Changeset>>\n /**\n * Apply all steps atomically. Re-validates against current state first and is\n * rejected while error-severity issues exist; a mid-apply failure rolls every\n * applied step back.\n */\n apply(changeset: Changeset): Promise<OperationResult<Changeset>>\n /** Execute the inverse operations recorded at apply time, restoring prior state. */\n revert(changeset: Changeset): Promise<OperationResult<Changeset>>\n}\n\ntype ChangesetEventName = 'changesets.preview' | 'changesets.apply' | 'changesets.revert'\n\nfunction issueToOperationIssue(issue: ChangesetIssue): OperationIssue {\n return {\n code: issue.code ?? 'changeset-issue',\n message: issue.message,\n ...(issue.step !== undefined ? { path: ['steps', issue.step] } : {}),\n domain: 'changesets',\n }\n}\n\n/** Re-message a structured error without losing its discriminated shape. */\nfunction withMessage(error: OperationError, message: string): OperationError {\n // Safe: only `message` (present on every union member) is replaced.\n return { ...error, message } as OperationError\n}\n\nexport function createChangesets(options: CreateChangesetsOptions): ChangesetOperations {\n const adapter = options.adapter\n const events = options.events ?? new OperationEventBus()\n const authorize = options.authorize ?? allowAll\n const definitions = options.definitions ?? allOperationDefinitions\n let sequence = 0\n\n const emit = (\n operation: ChangesetEventName,\n changeset: Changeset,\n status: 'succeeded' | 'rejected' | 'failed',\n error?: OperationError,\n ): void => {\n events.emit({\n operation,\n domain: 'changesets',\n kind: operation === 'changesets.preview' ? 'query' : 'command',\n status,\n inputSummary: summarizeInput({\n id: changeset.id,\n title: changeset.title,\n steps: changeset.steps.length,\n }),\n changesetId: changeset.id,\n ...(error ? { error } : {}),\n })\n }\n\n const invalidState = (changeset: Changeset, action: string): OperationError =>\n validationError(`Changeset “${changeset.id}” is ${changeset.state} and cannot be ${action}.`, [\n {\n code: 'invalid-changeset-state',\n message: `Expected a ${action === 'reverted' ? \"'applied'\" : \"'draft' or 'previewed'\"} changeset, got '${changeset.state}'.`,\n domain: 'changesets',\n },\n ])\n\n return {\n events,\n\n create(input) {\n sequence += 1\n return {\n id: `cs-${String(sequence).padStart(4, '0')}`,\n title: input.title,\n ...(input.summary !== undefined ? { summary: input.summary } : {}),\n steps: input.steps.map((step) => ({ operation: step.operation, input: step.input })),\n issues: [...(input.issues ?? [])],\n state: 'draft',\n }\n },\n\n async preview(changeset) {\n if (changeset.state === 'applied' || changeset.state === 'reverted') {\n return err(invalidState(changeset, 'previewed'))\n }\n const { preview } = await computePreview(definitions, adapter, changeset)\n const next: Changeset = { ...changeset, state: 'previewed', preview }\n emit('changesets.preview', next, 'succeeded')\n return ok(next)\n },\n\n async apply(changeset) {\n if (changeset.state === 'applied' || changeset.state === 'reverted') {\n const error = invalidState(changeset, 'applied')\n emit('changesets.apply', changeset, 'rejected', error)\n return err(error)\n }\n // Always re-validate against the *current* state — a stale preview must\n // never authorize an apply.\n const { preview, parsed } = await computePreview(definitions, adapter, changeset)\n if (!preview.applicable) {\n const error = validationError(\n `Changeset “${changeset.id}” has blocking validation issues and cannot be applied.`,\n preview.issues\n .filter((issue) => issue.severity === 'error')\n .map(issueToOperationIssue),\n )\n emit('changesets.apply', changeset, 'rejected', error)\n return err(error)\n }\n\n const runtime: OperationsRuntime = {\n adapter,\n events,\n authorize,\n ...(options.actor ? { actor: options.actor } : {}),\n }\n // Compensation runs pass-through: it only restores state the actor was\n // already authorized to change.\n const systemRuntime: OperationsRuntime = {\n adapter,\n events,\n authorize: allowAll,\n ...(options.actor ? { actor: options.actor } : {}),\n }\n\n const inverse: ChangesetInvocation[] = []\n for (const step of parsed) {\n const before = await step.support.snapshot(adapter, step.input as never)\n const result = await runAnyOperation(runtime, step.definition, step.input)\n if (!result.ok) {\n // Roll back the already-applied steps in reverse order (`inverse` is\n // accumulated reversed, so plain iteration is reverse application order).\n const rollbackFailures: string[] = []\n for (const invocation of inverse) {\n const definition = definitions.get(invocation.operation)\n const rollback = definition\n ? await runAnyOperation(systemRuntime, definition, invocation.input)\n : undefined\n if (!rollback) rollbackFailures.push(`${invocation.operation}: unknown operation`)\n else if (!rollback.ok) {\n rollbackFailures.push(`${invocation.operation}: ${rollback.error.message}`)\n }\n }\n const suffix =\n rollbackFailures.length === 0\n ? 'All previously applied steps were rolled back.'\n : `Rollback additionally failed for: ${rollbackFailures.join('; ')}.`\n const error = withMessage(\n result.error,\n `Step ${step.index} (“${step.definition.name}”) failed: ${result.error.message} ${suffix}`,\n )\n emit('changesets.apply', changeset, 'failed', error)\n return err(error)\n }\n inverse.unshift(...step.support.invert(step.input as never, before as never, result.value))\n }\n\n const next: Changeset = { ...changeset, state: 'applied', preview, inverse }\n emit('changesets.apply', next, 'succeeded')\n return ok(next)\n },\n\n async revert(changeset) {\n if (changeset.state !== 'applied') {\n const error = invalidState(changeset, 'reverted')\n emit('changesets.revert', changeset, 'rejected', error)\n return err(error)\n }\n const systemRuntime: OperationsRuntime = {\n adapter,\n events,\n authorize: allowAll,\n ...(options.actor ? { actor: options.actor } : {}),\n }\n for (const invocation of changeset.inverse ?? []) {\n const definition = definitions.get(invocation.operation)\n if (!definition) {\n const error = validationError(\n `Revert of changeset “${changeset.id}” failed: unknown operation “${invocation.operation}”.`,\n [\n {\n code: 'unknown-operation',\n message: `No operation named “${invocation.operation}” exists.`,\n domain: 'changesets',\n },\n ],\n )\n emit('changesets.revert', changeset, 'failed', error)\n return err(error)\n }\n const result = await runAnyOperation(systemRuntime, definition, invocation.input)\n if (!result.ok) {\n const error = withMessage(\n result.error,\n `Revert of changeset “${changeset.id}” failed at “${invocation.operation}”: ${result.error.message}`,\n )\n emit('changesets.revert', changeset, 'failed', error)\n return err(error)\n }\n }\n const next: Changeset = { ...changeset, state: 'reverted' }\n emit('changesets.revert', next, 'succeeded')\n return ok(next)\n },\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/operations/client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,QAAQ,CAAA;AASf,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAE7E,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAEpF,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAE1E,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAE3E,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AAEzF,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAA;AAEvF,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAE9E,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAG3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAgD,IAAI,GAAG,CACzF;IACE,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC;IAC5C,GAAG,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC;IAC9C,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC;IAC3C,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC;IAC3C,GAAG,MAAM,CAAC,MAAM,CAAC,8BAA8B,CAAC;IAChD,GAAG,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC;IAC/C,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC;IAC5C,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC;CAC5C,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CACrD,CAAA;AAmCD,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,OAAO,GAAsB;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,iBAAiB,EAAE;QACjD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ;QACxC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAA;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;QACxD,UAAU,CAAC,IAAI;QACf,iBAAiB,CAAC,UAAU,CAAC;KAC9B,CAAC,CACH,CAAA;IAED,OAAO;QACL,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC;QACvC,SAAS,EAAE,wBAAwB,CAAC,OAAO,CAAC;QAC5C,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC;QACrC,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC;QACtC,UAAU,EAAE,0BAA0B,CAAC,OAAO,CAAC;QAC/C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC;QAC9C,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC;QACxC,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW;QACX,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACpD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAA;YAC/D,CAAC;YACD,OAAO,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;QACpD,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/operations/client.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PersistenceAdapter } from '@elytracms/core/persistence'\nimport {\n OperationEventBus,\n allowAll,\n describeOperation,\n notFoundError,\n runAnyOperation,\n} from './core'\nimport type {\n AnyOperationDefinition,\n AuthorizationHook,\n OperationDescriptor,\n OperationResult,\n OperationsRuntime,\n Principal,\n} from './core'\nimport { createSchemaOperations, schemaOperationDefinitions } from './schema'\nimport type { SchemaOperations } from './schema'\nimport { createDocumentOperations, documentOperationDefinitions } from './documents'\nimport type { DocumentOperations } from './documents'\nimport { createGraphOperations, graphOperationDefinitions } from './graph'\nimport type { GraphOperations } from './graph'\nimport { createAssetOperations, assetOperationDefinitions } from './assets'\nimport type { AssetOperations } from './assets'\nimport { createPublishingOperations, publishingOperationDefinitions } from './publishing'\nimport type { PublishingOperations } from './publishing'\nimport { createReferenceOperations, referenceOperationDefinitions } from './references'\nimport type { ReferenceOperations } from './references'\nimport { createMemberOperations, memberOperationDefinitions } from './members'\nimport type { MemberOperations } from './members'\nimport { createTokenOperations, tokenOperationDefinitions } from './tokens'\nimport type { TokenOperations } from './tokens'\n\n/**\n * Every operation definition in the layer, keyed by dotted name. Runtime-\n * introspectable so AI changesets (EC-140), plugins, and the CLI can enumerate,\n * describe, and batch operations without importing each domain module.\n */\nexport const allOperationDefinitions: ReadonlyMap<string, AnyOperationDefinition> = new Map(\n [\n ...Object.values(schemaOperationDefinitions),\n ...Object.values(documentOperationDefinitions),\n ...Object.values(graphOperationDefinitions),\n ...Object.values(assetOperationDefinitions),\n ...Object.values(publishingOperationDefinitions),\n ...Object.values(referenceOperationDefinitions),\n ...Object.values(memberOperationDefinitions),\n ...Object.values(tokenOperationDefinitions),\n ].map((definition) => [definition.name, definition]),\n)\n\nexport interface CreateOperationsOptions {\n /** The only mutation path. Convex- or memory-backed; the layer never knows which. */\n adapter: PersistenceAdapter\n /** Permission chokepoint, invoked per operation. Pass-through by default (EC-150). */\n authorize?: AuthorizationHook\n /** Acting principal forwarded to the authorization hook (role model lands in EC-150). */\n actor?: Principal\n /** Share an existing bus (e.g. one bus across several clients in tests). */\n events?: OperationEventBus\n}\n\n/** The typed command/query spine of the app — one seam for every consumer (AD-7). */\nexport interface OperationsClient {\n readonly schema: SchemaOperations\n readonly documents: DocumentOperations\n readonly graph: GraphOperations\n readonly assets: AssetOperations\n readonly publishing: PublishingOperations\n readonly references: ReferenceOperations\n /** Project membership management (EC-150) — admin-gated by the role hook. */\n readonly members: MemberOperations\n /** Revocable CLI sync tokens (EC-150) — admin-gated by the role hook. */\n readonly tokens: TokenOperations\n /** Lifecycle events for plugin hooks, audit logging, cache invalidation. */\n readonly events: OperationEventBus\n /** Serializable descriptors of every operation, keyed by name. */\n readonly descriptors: ReadonlyMap<string, OperationDescriptor>\n /** Look up a live definition (name, domain, kind, Zod input schema). */\n definition(name: string): AnyOperationDefinition | undefined\n /** Dynamic dispatch by name — the entry point for changesets, AI tools, CLI. */\n execute(name: string, input: unknown): Promise<OperationResult<unknown>>\n}\n\nexport function createOperations(options: CreateOperationsOptions): OperationsClient {\n const runtime: OperationsRuntime = {\n adapter: options.adapter,\n events: options.events ?? new OperationEventBus(),\n authorize: options.authorize ?? allowAll,\n ...(options.actor ? { actor: options.actor } : {}),\n }\n\n const descriptors = new Map<string, OperationDescriptor>(\n [...allOperationDefinitions.values()].map((definition) => [\n definition.name,\n describeOperation(definition),\n ]),\n )\n\n return {\n schema: createSchemaOperations(runtime),\n documents: createDocumentOperations(runtime),\n graph: createGraphOperations(runtime),\n assets: createAssetOperations(runtime),\n publishing: createPublishingOperations(runtime),\n references: createReferenceOperations(runtime),\n members: createMemberOperations(runtime),\n tokens: createTokenOperations(runtime),\n events: runtime.events,\n descriptors,\n definition: (name) => allOperationDefinitions.get(name),\n execute: async (name, input) => {\n const definition = allOperationDefinitions.get(name)\n if (!definition) {\n return { ok: false, error: notFoundError('operation', name) }\n }\n return runAnyOperation(runtime, definition, input)\n },\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/operations/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/operations/core.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\nimport {\n PersistenceValidationError,\n RecordConflictError,\n RecordNotFoundError,\n isPersistenceError,\n} from '@elytracms/core/persistence'\nimport type { PersistenceAdapter, PersistenceIssue } from '@elytracms/core/persistence'\nimport {\n ProjectConflictError,\n ProjectNotFoundError,\n ProjectValidationError,\n isProjectRepositoryError,\n} from '@elytracms/core/studio-core'\nimport type { StudioIssue } from '@elytracms/core/studio-core'\n\n// --- Structured issues & error taxonomy (vision AD-7, reuses EC-029 categories) --\n//\n// Commands never throw raw errors: every failure mode is a plain-data\n// `OperationError`, a discriminated union over the same five categories as the\n// EC-029 repository taxonomy plus `unauthorized` for the permission chokepoint.\n\n/** A structured issue carried by a validation failure (mirrors `PersistenceIssue`). */\nexport const operationIssueSchema = z.object({\n code: z.string(),\n message: z.string(),\n path: z.array(z.union([z.string(), z.number()])).optional(),\n /** Originating domain, e.g. 'graph' | 'cms' | 'settings'. */\n domain: z.string().optional(),\n})\nexport type OperationIssue = z.infer<typeof operationIssueSchema>\n\nexport const operationErrorCodeSchema = z.enum([\n 'validation',\n 'not-found',\n 'conflict',\n 'backend-unavailable',\n 'unauthorized',\n 'unknown',\n])\nexport type OperationErrorCode = z.infer<typeof operationErrorCodeSchema>\n\n/**\n * Plain-data operation failure, discriminated on `code`. Serializable so AI\n * changesets (EC-140), audit logs, and transports can carry it verbatim.\n */\n/**\n * One document blocking a strict-reference conflict (EC-173): where the\n * blocking reference lives, precisely enough for a deep link to the field.\n * Serializable plain data, like the rest of the error union.\n */\nexport interface ConflictReferrer {\n readonly collection: string\n readonly id: string\n /** The strict relation field holding the reference. */\n readonly field: string\n /** Reference-index path (`values/<field>/…` or `localized/<locale>/<field>/…`). */\n readonly path: string\n readonly state: 'draft' | 'published'\n}\n\nexport type OperationError =\n | {\n readonly code: 'validation'\n readonly message: string\n readonly issues: readonly OperationIssue[]\n }\n | {\n readonly code: 'not-found'\n readonly message: string\n /** What kind of entity was missing, e.g. 'project' | 'page' | 'cms-document'. */\n readonly entity: string\n readonly key: string\n }\n | {\n readonly code: 'conflict'\n readonly message: string\n readonly key: string\n /**\n * Present on strict-reference conflicts (EC-173): the documents whose\n * strict relation fields block deleting/unpublishing `key`, with the\n * exact field paths so UIs can deep-link to each referrer.\n */\n readonly referrers?: readonly ConflictReferrer[]\n }\n | { readonly code: 'backend-unavailable'; readonly message: string }\n | {\n readonly code: 'unauthorized'\n readonly message: string\n readonly operation: string\n }\n | { readonly code: 'unknown'; readonly message: string }\n\n/** Constructors so call sites stay terse and the union shape stays in one place. */\nexport function validationError(\n message: string,\n issues: readonly OperationIssue[],\n): OperationError {\n return { code: 'validation', message, issues }\n}\n\nexport function notFoundError(entity: string, key: string, message?: string): OperationError {\n return { code: 'not-found', message: message ?? `No ${entity} found for “${key}”.`, entity, key }\n}\n\nexport function conflictError(key: string, message?: string): OperationError {\n return {\n code: 'conflict',\n message: message ?? `“${key}” conflicts with an existing record.`,\n key,\n }\n}\n\n/** A strict-reference conflict (EC-173): blocked by the enumerated referrers. */\nexport function strictReferenceConflictError(\n key: string,\n message: string,\n referrers: readonly ConflictReferrer[],\n): OperationError {\n return { code: 'conflict', message, key, referrers }\n}\n\nexport function backendUnavailableError(\n message = 'The persistence backend is unavailable.',\n): OperationError {\n return { code: 'backend-unavailable', message }\n}\n\nexport function unauthorizedError(operation: string, reason?: string): OperationError {\n return {\n code: 'unauthorized',\n message: reason ?? `Operation “${operation}” was denied by the authorization hook.`,\n operation,\n }\n}\n\nexport function unknownError(message = 'An unknown operation failure occurred.'): OperationError {\n return { code: 'unknown', message }\n}\n\n/**\n * Internal escape hatch for command bodies: throw a structured failure mid-mutate\n * (e.g. \"collection not found inside the loaded schema\"). The pipeline catches it\n * and returns the carried error — callers never see the exception.\n */\nexport class OperationFailure extends Error {\n constructor(readonly error: OperationError) {\n super(error.message)\n this.name = 'OperationFailure'\n }\n}\n\nfunction mapPersistenceIssues(issues: readonly PersistenceIssue[]): OperationIssue[] {\n return issues.map((issue) => ({\n code: issue.code,\n message: issue.message,\n ...(issue.path ? { path: issue.path } : {}),\n ...(issue.domain ? { domain: issue.domain } : {}),\n }))\n}\n\nfunction mapStudioIssues(issues: readonly StudioIssue[]): OperationIssue[] {\n return issues.map((issue) => ({\n code: issue.code,\n message: issue.message,\n path: issue.path,\n domain: 'settings',\n }))\n}\n\nfunction mapZodIssues(error: z.ZodError): OperationIssue[] {\n return error.issues.map((issue) => ({\n code: issue.code,\n message: issue.message,\n path: issue.path.map((p) => (typeof p === 'symbol' ? String(p) : p)),\n }))\n}\n\n/**\n * Normalize any thrown value (persistence taxonomy, project-repository taxonomy,\n * `OperationFailure`, or anything else) onto the {@link OperationError} union.\n */\nexport function toOperationError(value: unknown): OperationError {\n if (value instanceof OperationFailure) return value.error\n if (isPersistenceError(value)) {\n if (value instanceof PersistenceValidationError) {\n return validationError(value.message, mapPersistenceIssues(value.issues))\n }\n if (value instanceof RecordNotFoundError) {\n return notFoundError(value.kind, value.key, value.message)\n }\n if (value instanceof RecordConflictError) {\n return conflictError(value.key, value.message)\n }\n if (value.code === 'backend-unavailable') return backendUnavailableError(value.message)\n return unknownError(value.message)\n }\n if (isProjectRepositoryError(value)) {\n if (value instanceof ProjectValidationError) {\n return validationError(value.message, mapStudioIssues(value.issues))\n }\n if (value instanceof ProjectNotFoundError) {\n return notFoundError('project', value.projectId, value.message)\n }\n if (value instanceof ProjectConflictError) {\n return conflictError(value.conflictingSlug, value.message)\n }\n if (value.code === 'backend-unavailable') return backendUnavailableError(value.message)\n return unknownError(value.message)\n }\n if (value instanceof Error) return unknownError(value.message)\n return unknownError(String(value))\n}\n\n// --- Results ----------------------------------------------------------------\n\n/** Every operation resolves to a typed result; the pipeline never throws. */\nexport type OperationResult<T> =\n | { readonly ok: true; readonly value: T }\n | { readonly ok: false; readonly error: OperationError }\n\nexport function ok<T>(value: T): OperationResult<T> {\n return { ok: true, value }\n}\n\nexport function err<T>(error: OperationError): OperationResult<T> {\n return { ok: false, error }\n}\n\n// --- Authorization hook (single permission chokepoint; roles land in EC-150) --\n\n/**\n * The acting principal (EC-150). `id` is the user id memberships are keyed by\n * (`projectMembers.userId`); per-project roles live in the members repository,\n * NOT here. `roles` carries optional *global* flags consumed by the role hook\n * in `authorization.ts` — see `GLOBAL_SYSTEM_FLAG`.\n */\nexport interface Principal {\n readonly id: string\n readonly name?: string\n /** Global (workspace-level) flags, e.g. 'system'. */\n readonly roles?: readonly string[]\n}\n\nexport interface AuthorizationContext {\n readonly operation: string\n readonly domain: string\n readonly kind: OperationKind\n /** The already-validated command input. */\n readonly input: unknown\n readonly actor?: Principal\n}\n\nexport type AuthorizationDecision = { allow: true } | { allow: false; reason: string }\n\n/** Invoked for every operation; may be sync or async. */\nexport type AuthorizationHook = (\n context: AuthorizationContext,\n) => AuthorizationDecision | Promise<AuthorizationDecision>\n\n/** Pass-through default until the EC-150 role model lands. */\nexport const allowAll: AuthorizationHook = () => ({ allow: true })\n\n// --- Lifecycle event bus ------------------------------------------------------\n//\n// Synchronous, deterministic, in-process. Consumers: plugin hooks, audit\n// logging, cache invalidation (vision AD-7).\n\nexport type OperationEventStatus = 'succeeded' | 'rejected' | 'denied' | 'failed'\n\nexport interface OperationEvent {\n /** 1-based monotonically increasing per bus, for deterministic ordering. */\n readonly sequence: number\n readonly operation: string\n readonly domain: string\n readonly kind: OperationKind\n /**\n * `rejected` = input validation failed; `denied` = authorization refused;\n * `failed` = mutation raised a structured error; `succeeded` otherwise.\n */\n readonly status: OperationEventStatus\n /** Short, deterministic summary of the input (never the full payload). */\n readonly inputSummary: string\n readonly error?: OperationError\n /**\n * Present on changeset lifecycle events (EC-140: `changesets.preview`,\n * `changesets.apply`, `changesets.revert`) so subscribers can correlate the\n * per-operation events of an apply/revert with the changeset that drove them.\n */\n readonly changesetId?: string\n}\n\nexport type OperationEventListener = (event: OperationEvent) => void\n\nexport class OperationEventBus {\n private readonly listeners = new Set<OperationEventListener>()\n private sequence = 0\n\n /** Register a listener; returns an unsubscribe function. */\n subscribe(listener: OperationEventListener): () => void {\n this.listeners.add(listener)\n return () => this.unsubscribe(listener)\n }\n\n unsubscribe(listener: OperationEventListener): void {\n this.listeners.delete(listener)\n }\n\n /** Synchronously dispatch to all listeners. Listener failures are isolated. */\n emit(event: Omit<OperationEvent, 'sequence'>): OperationEvent {\n this.sequence += 1\n const full: OperationEvent = { ...event, sequence: this.sequence }\n for (const listener of [...this.listeners]) {\n try {\n listener(full)\n } catch {\n // A misbehaving subscriber (audit log, plugin) must never break the\n // command pipeline or the other subscribers.\n }\n }\n return full\n }\n}\n\n// --- Operation definitions ------------------------------------------------------\n\nexport type OperationKind = 'command' | 'query'\n\n/** What a command body may touch: persistence via the adapter interface only. */\nexport interface OperationContext {\n readonly adapter: PersistenceAdapter\n /**\n * The acting principal, when the runtime has one (EC-150). Lets commands with\n * actor-dependent side effects stay inside the operations layer instead of\n * leaking into each calling surface.\n */\n readonly actor?: Principal\n}\n\n/**\n * A typed, introspectable operation: name, domain, kind, and Zod input schema\n * are runtime-accessible so AI changesets (EC-140), plugins, and the CLI can\n * enumerate, describe, and batch operations.\n */\nexport interface OperationDefinition<Schema extends z.ZodType = z.ZodType, Output = unknown> {\n /** Globally unique dotted name, e.g. `documents.upsert`. */\n readonly name: string\n readonly domain: string\n readonly kind: OperationKind\n readonly description: string\n readonly input: Schema\n /** Optional custom input summary for lifecycle events. */\n readonly summarize?: (input: z.output<Schema>) => string\n /** The mutate/read step. May throw the persistence taxonomy or `OperationFailure`. */\n readonly execute: (context: OperationContext, input: z.output<Schema>) => Promise<Output>\n}\n\n/**\n * Existential form for registries and the dynamic `execute(name, input)` path.\n * `never`-typed parameters make every concrete definition assignable.\n */\nexport interface AnyOperationDefinition {\n readonly name: string\n readonly domain: string\n readonly kind: OperationKind\n readonly description: string\n readonly input: z.ZodType\n readonly summarize?: (input: never) => string\n readonly execute: (context: OperationContext, input: never) => Promise<unknown>\n}\n\nexport function defineCommand<Schema extends z.ZodType, Output>(\n definition: Omit<OperationDefinition<Schema, Output>, 'kind'>,\n): OperationDefinition<Schema, Output> {\n return { ...definition, kind: 'command' }\n}\n\nexport function defineQuery<Schema extends z.ZodType, Output>(\n definition: Omit<OperationDefinition<Schema, Output>, 'kind'>,\n): OperationDefinition<Schema, Output> {\n return { ...definition, kind: 'query' }\n}\n\n/** Serializable runtime descriptor of an operation (for EC-140 changesets, docs, CLI). */\nexport interface OperationDescriptor {\n readonly name: string\n readonly domain: string\n readonly kind: OperationKind\n readonly description: string\n /** The live Zod input schema (introspect / convert to JSON Schema as needed). */\n readonly input: z.ZodType\n}\n\nexport function describeOperation(definition: AnyOperationDefinition): OperationDescriptor {\n return {\n name: definition.name,\n domain: definition.domain,\n kind: definition.kind,\n description: definition.description,\n input: definition.input,\n }\n}\n\n// --- Execution pipeline -------------------------------------------------------\n\n/** Everything the pipeline needs; built once by `createOperations`. */\nexport interface OperationsRuntime {\n readonly adapter: PersistenceAdapter\n readonly events: OperationEventBus\n readonly authorize: AuthorizationHook\n readonly actor?: Principal\n}\n\nconst SUMMARY_MAX_LENGTH = 160\n\n/** Deterministic, size-capped input summary for lifecycle events. */\nexport function summarizeInput(input: unknown): string {\n let text: string\n try {\n text = JSON.stringify(input) ?? String(input)\n } catch {\n text = String(input)\n }\n return text.length > SUMMARY_MAX_LENGTH ? `${text.slice(0, SUMMARY_MAX_LENGTH - 1)}…` : text\n}\n\nasync function runAny(\n runtime: OperationsRuntime,\n definition: AnyOperationDefinition,\n rawInput: unknown,\n): Promise<OperationResult<unknown>> {\n const emit = (\n status: OperationEventStatus,\n inputSummary: string,\n error?: OperationError,\n ): void => {\n runtime.events.emit({\n operation: definition.name,\n domain: definition.domain,\n kind: definition.kind,\n status,\n inputSummary,\n ...(error ? { error } : {}),\n })\n }\n\n // 1. Validate (Zod) — reject with structured issues, never raw throws.\n const parsed = definition.input.safeParse(rawInput)\n if (!parsed.success) {\n const error = validationError(\n `Input for “${definition.name}” is invalid.`,\n mapZodIssues(parsed.error),\n )\n emit('rejected', summarizeInput(rawInput), error)\n return err(error)\n }\n const input = parsed.data\n const inputSummary = definition.summarize\n ? definition.summarize(input as never)\n : summarizeInput(input)\n\n // 2. Authorize — the single permission chokepoint (pass-through until EC-150).\n let decision: AuthorizationDecision\n try {\n decision = await runtime.authorize({\n operation: definition.name,\n domain: definition.domain,\n kind: definition.kind,\n input,\n ...(runtime.actor ? { actor: runtime.actor } : {}),\n })\n } catch (cause) {\n const error = toOperationError(cause)\n emit('failed', inputSummary, error)\n return err(error)\n }\n if (!decision.allow) {\n const error = unauthorizedError(definition.name, decision.reason)\n emit('denied', inputSummary, error)\n return err(error)\n }\n\n // 3. Mutate via the persistence adapter; 4. emit the lifecycle event.\n try {\n const value = await definition.execute(\n { adapter: runtime.adapter, ...(runtime.actor ? { actor: runtime.actor } : {}) },\n input as never,\n )\n emit('succeeded', inputSummary)\n return ok(value)\n } catch (cause) {\n const error = toOperationError(cause)\n emit('failed', inputSummary, error)\n return err(error)\n }\n}\n\n/**\n * Execute one operation through the full pipeline:\n * validate (Zod) → authorize (hook) → mutate via `PersistenceAdapter` → emit event.\n * Always resolves to a typed result — never throws.\n */\nexport async function runOperation<Schema extends z.ZodType, Output>(\n runtime: OperationsRuntime,\n definition: OperationDefinition<Schema, Output>,\n rawInput: unknown,\n): Promise<OperationResult<Output>> {\n // Safe: `runAny` only ever resolves with values produced by this definition's\n // `execute`, whose return type is `Output`.\n return runAny(runtime, definition, rawInput) as Promise<OperationResult<Output>>\n}\n\n/** Execute an existentially-typed definition (the dynamic `execute(name, …)` path). */\nexport function runAnyOperation(\n runtime: OperationsRuntime,\n definition: AnyOperationDefinition,\n rawInput: unknown,\n): Promise<OperationResult<unknown>> {\n return runAny(runtime, definition, rawInput)\n}\n\n/**\n * Bind a definition to a runtime as a plain async function. Inputs are typed for\n * callers but still validated at runtime (dynamic callers go through `execute`).\n */\nexport function bindOperation<Schema extends z.ZodType, Output>(\n runtime: OperationsRuntime,\n definition: OperationDefinition<Schema, Output>,\n): (input: z.input<Schema>) => Promise<OperationResult<Output>> {\n return (input) => runOperation(runtime, definition, input)\n}\n"]}
@@ -5,6 +5,7 @@ export declare const upsertDocumentInputSchema: z.ZodObject<{
5
5
  document: z.ZodObject<{
6
6
  collection: z.ZodString;
7
7
  id: z.ZodString;
8
+ alias: z.ZodOptional<z.ZodString>;
8
9
  values: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
9
10
  localized: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
10
11
  defaultLocale: z.ZodOptional<z.ZodString>;
@@ -51,6 +52,7 @@ export declare const documentOperationDefinitions: {
51
52
  document: z.ZodObject<{
52
53
  collection: z.ZodString;
53
54
  id: z.ZodString;
55
+ alias: z.ZodOptional<z.ZodString>;
54
56
  values: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
55
57
  localized: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
56
58
  defaultLocale: z.ZodOptional<z.ZodString>;
@@ -63,6 +65,7 @@ export declare const documentOperationDefinitions: {
63
65
  collection: string;
64
66
  id: string;
65
67
  values: Record<string, unknown>;
68
+ alias?: string | undefined;
66
69
  localized?: Record<string, Record<string, unknown>> | undefined;
67
70
  defaultLocale?: string | undefined;
68
71
  };
@@ -94,6 +97,7 @@ export declare const documentOperationDefinitions: {
94
97
  collection: string;
95
98
  id: string;
96
99
  values: Record<string, unknown>;
100
+ alias?: string | undefined;
97
101
  localized?: Record<string, Record<string, unknown>> | undefined;
98
102
  defaultLocale?: string | undefined;
99
103
  };
@@ -110,6 +114,7 @@ export declare const documentOperationDefinitions: {
110
114
  collection: string;
111
115
  id: string;
112
116
  values: Record<string, unknown>;
117
+ alias?: string | undefined;
113
118
  localized?: Record<string, Record<string, unknown>> | undefined;
114
119
  defaultLocale?: string | undefined;
115
120
  };
@@ -131,6 +136,7 @@ export declare const documentOperationDefinitions: {
131
136
  collection: string;
132
137
  id: string;
133
138
  values: Record<string, unknown>;
139
+ alias?: string | undefined;
134
140
  localized?: Record<string, Record<string, unknown>> | undefined;
135
141
  defaultLocale?: string | undefined;
136
142
  };
@@ -152,6 +158,7 @@ export declare const documentOperationDefinitions: {
152
158
  collection: string;
153
159
  id: string;
154
160
  values: Record<string, unknown>;
161
+ alias?: string | undefined;
155
162
  localized?: Record<string, Record<string, unknown>> | undefined;
156
163
  defaultLocale?: string | undefined;
157
164
  };
@@ -173,6 +180,7 @@ export declare const documentOperationDefinitions: {
173
180
  collection: string;
174
181
  id: string;
175
182
  values: Record<string, unknown>;
183
+ alias?: string | undefined;
176
184
  localized?: Record<string, Record<string, unknown>> | undefined;
177
185
  defaultLocale?: string | undefined;
178
186
  };
@@ -192,6 +200,7 @@ export declare const documentOperationDefinitions: {
192
200
  collection: string;
193
201
  id: string;
194
202
  values: Record<string, unknown>;
203
+ alias?: string | undefined;
195
204
  localized?: Record<string, Record<string, unknown>> | undefined;
196
205
  defaultLocale?: string | undefined;
197
206
  };
@@ -211,6 +220,7 @@ export declare const documentOperationDefinitions: {
211
220
  collection: string;
212
221
  id: string;
213
222
  values: Record<string, unknown>;
223
+ alias?: string | undefined;
214
224
  localized?: Record<string, Record<string, unknown>> | undefined;
215
225
  defaultLocale?: string | undefined;
216
226
  };
@@ -231,6 +241,7 @@ export declare const documentOperationDefinitions: {
231
241
  collection: string;
232
242
  id: string;
233
243
  values: Record<string, unknown>;
244
+ alias?: string | undefined;
234
245
  localized?: Record<string, Record<string, unknown>> | undefined;
235
246
  defaultLocale?: string | undefined;
236
247
  };
@@ -243,6 +254,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
243
254
  document: {
244
255
  collection: string;
245
256
  id: string;
257
+ alias?: string | undefined;
246
258
  values?: Record<string, unknown> | undefined;
247
259
  localized?: Record<string, Record<string, unknown>> | undefined;
248
260
  defaultLocale?: string | undefined;
@@ -255,6 +267,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
255
267
  collection: string;
256
268
  id: string;
257
269
  values: Record<string, unknown>;
270
+ alias?: string | undefined;
258
271
  localized?: Record<string, Record<string, unknown>> | undefined;
259
272
  defaultLocale?: string | undefined;
260
273
  };
@@ -286,6 +299,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
286
299
  collection: string;
287
300
  id: string;
288
301
  values: Record<string, unknown>;
302
+ alias?: string | undefined;
289
303
  localized?: Record<string, Record<string, unknown>> | undefined;
290
304
  defaultLocale?: string | undefined;
291
305
  };
@@ -302,6 +316,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
302
316
  collection: string;
303
317
  id: string;
304
318
  values: Record<string, unknown>;
319
+ alias?: string | undefined;
305
320
  localized?: Record<string, Record<string, unknown>> | undefined;
306
321
  defaultLocale?: string | undefined;
307
322
  };
@@ -323,6 +338,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
323
338
  collection: string;
324
339
  id: string;
325
340
  values: Record<string, unknown>;
341
+ alias?: string | undefined;
326
342
  localized?: Record<string, Record<string, unknown>> | undefined;
327
343
  defaultLocale?: string | undefined;
328
344
  };
@@ -344,6 +360,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
344
360
  collection: string;
345
361
  id: string;
346
362
  values: Record<string, unknown>;
363
+ alias?: string | undefined;
347
364
  localized?: Record<string, Record<string, unknown>> | undefined;
348
365
  defaultLocale?: string | undefined;
349
366
  };
@@ -365,6 +382,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
365
382
  collection: string;
366
383
  id: string;
367
384
  values: Record<string, unknown>;
385
+ alias?: string | undefined;
368
386
  localized?: Record<string, Record<string, unknown>> | undefined;
369
387
  defaultLocale?: string | undefined;
370
388
  };
@@ -384,6 +402,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
384
402
  collection: string;
385
403
  id: string;
386
404
  values: Record<string, unknown>;
405
+ alias?: string | undefined;
387
406
  localized?: Record<string, Record<string, unknown>> | undefined;
388
407
  defaultLocale?: string | undefined;
389
408
  };
@@ -403,6 +422,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
403
422
  collection: string;
404
423
  id: string;
405
424
  values: Record<string, unknown>;
425
+ alias?: string | undefined;
406
426
  localized?: Record<string, Record<string, unknown>> | undefined;
407
427
  defaultLocale?: string | undefined;
408
428
  };
@@ -423,6 +443,7 @@ export declare function createDocumentOperations(runtime: OperationsRuntime): {
423
443
  collection: string;
424
444
  id: string;
425
445
  values: Record<string, unknown>;
446
+ alias?: string | undefined;
426
447
  localized?: Record<string, Record<string, unknown>> | undefined;
427
448
  defaultLocale?: string | undefined;
428
449
  };
@@ -1 +1 @@
1
- {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/operations/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/operations/documents.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\nimport {\n createCollectionRegistry,\n documentKey,\n documentRefSchema,\n documentSchema,\n selfTypeDocument,\n validateDocument,\n} from '@elytracms/core/cms-core'\nimport type { CmsDocument, CollectionDef, DocumentRef } from '@elytracms/core/cms-core'\nimport { extractReferences } from '@elytracms/core/persistence'\nimport {\n OperationFailure,\n bindOperation,\n defineCommand,\n defineQuery,\n strictReferenceConflictError,\n validationError,\n} from './core'\nimport { projectIdSchema } from '@elytracms/core/studio-core'\nimport type { ConflictReferrer, OperationContext, OperationsRuntime } from './core'\n\n/**\n * CMS document operations (EC-139). Covers the studio's document mutations —\n * create/save (upsert), delete, and draft/published transitions — plus the\n * import flow, which is upserts in a batch. Document version history (EC-224)\n * adds `snapshot` / `listVersions` / `restore` over the append-only version\n * store; publish/unpublish move to the version pointer in a later step.\n */\n\n/**\n * Enforce the collection's field rules at PUBLISH (EC-168; moved off upsert in\n * EC-225): publishing — not every draft write — is the validation gate, so the\n * continuous draft may be saved while incomplete/invalid (the Sanity model) but\n * a *published* version must satisfy required/min/max/pattern/options\n * constraints. Rejection is a standard validation `OperationError` with per-field\n * issues; the studio surfaces the same issues live. Scope (deliberate):\n *\n * - No saved schema → nothing to validate against; the write proceeds (matches\n * the persistence adapters, which only shape-check in that case).\n * - Collection not declared in config → nothing to validate against; the write\n * proceeds (EC-183, AD-11). CMS collection schemas are config-owned and the\n * backend is a data store; studio **system** collections (routes/views/\n * sources) are not declared in config, and content documents are validated by\n * the studio against the session registry pre-dispatch. The operation enforces\n * field rules only for collections the config declares.\n * - Only `error`-severity issues block. Without the studio's session context\n * there is no document store or locale config here, so relation/asset target\n * existence and per-locale completeness (warnings) stay UI/studio-validation\n * concerns — the operation rejects hard field-rule violations only.\n * - **Composition validity is studio-enforced** (EC-225): this layer has no\n * component registry, so `blocks`/`richText` composition rules (the field\n * `allow` leash) are NOT checked here — only scalar field rules. Every publish\n * path runs the composition-aware studio `validate()` first (detail editor +\n * bulk publish), which is the invariant that keeps invalid compositions\n * unpublished.\n */\n/**\n * Self-type a document's fields through the schema-as-lens before it is persisted\n * (EC-277). Document-level only — relation/asset/object — because the operations\n * layer has no component registry (EC-225); a composition's static props are\n * self-typed by the studio pre-dispatch (which holds the registry). Drift-tolerant:\n * no saved schema or an undeclared collection returns the document unchanged.\n */\nasync function selfTypeForPersist(\n context: OperationContext,\n projectId: string,\n document: CmsDocument,\n): Promise<CmsDocument> {\n const schema = await context.adapter.cms.findSchema(projectId)\n const collection = schema?.collections.find((c) => c.id === document.collection)\n return collection ? selfTypeDocument(document, collection) : document\n}\n\nasync function assertFieldRules(\n context: OperationContext,\n projectId: string,\n document: CmsDocument,\n): Promise<void> {\n const schema = await context.adapter.cms.findSchema(projectId)\n if (!schema) return\n const registry = createCollectionRegistry(schema.collections)\n // Undeclared collection (system/stray) → no config field-rules to enforce here.\n if (!registry.has(document.collection)) return\n const violations = validateDocument(registry, document).filter(\n (issue) => issue.severity === 'error',\n )\n if (violations.length === 0) return\n throw new OperationFailure(\n validationError(\n `Document “${document.collection}:${document.id}” violates its collection schema.`,\n violations.map((issue) => ({\n code: issue.code,\n message: issue.message,\n path: [...issue.path],\n domain: 'cms',\n })),\n ),\n )\n}\n\n// --- Strict referential integrity (EC-173) -----------------------------------------\n//\n// References are weak by default: deleting or unpublishing a referenced\n// document is allowed, and the breakage surfaces as explicit validation\n// issues + delivery fallbacks. A relation field declaring `strict: true`\n// inverts this for its targets: while references through that field exist,\n// `documents.delete` is blocked — and while *published* ones do,\n// `documents.unpublish` is blocked too. The failure is a structured\n// conflict error enumerating every blocking referrer (collection/id/field/\n// path/state) so UIs can deep-link to each one.\n\ntype IntegrityMode = 'delete' | 'unpublish'\n\n/** The owning field name of a reference-index path (`values/...`/`localized/...`). */\nfunction fieldNameOfReferencePath(path: string): string | undefined {\n const tokens = path.split('/')\n if (tokens[0] === 'values') return tokens[1]\n if (tokens[0] === 'localized') return tokens[2]\n return undefined\n}\n\n/** The strict relation field names per collection that target `targetCollection`. */\nfunction strictFieldsByCollection(\n collections: readonly CollectionDef[],\n targetCollection: string,\n): Map<string, Set<string>> {\n const byCollection = new Map<string, Set<string>>()\n for (const collection of collections) {\n for (const field of collection.fields) {\n if (field.type !== 'relation' || field.strict !== true) continue\n if (field.target !== targetCollection) continue\n let names = byCollection.get(collection.id)\n if (!names) {\n names = new Set()\n byCollection.set(collection.id, names)\n }\n names.add(field.name)\n }\n }\n return byCollection\n}\n\n/**\n * Enumerate the documents whose strict relation fields reference `ref`.\n * Computed directly from the live documents (not the EC-155 index, which is\n * maintained asynchronously) so enforcement can never act on a stale view.\n * For `unpublish`, only *published* referrers block — a draft-only reference\n * never serves the published site, so unpublishing stays allowed.\n */\nasync function collectStrictReferrers(\n context: OperationContext,\n projectId: string,\n ref: DocumentRef,\n mode: IntegrityMode,\n): Promise<ConflictReferrer[]> {\n const schema = await context.adapter.cms.findSchema(projectId)\n if (!schema) return []\n const strictFields = strictFieldsByCollection(schema.collections, ref.collection)\n if (strictFields.size === 0) return []\n\n const targetKey = documentKey(ref)\n const referrers: ConflictReferrer[] = []\n for (const record of await context.adapter.cms.listDocuments(projectId)) {\n const doc = record.document\n if (doc.collection === ref.collection && doc.id === ref.id) continue\n const fields = strictFields.get(doc.collection)\n if (!fields) continue\n // EC-224: \"published\" is the version pointer (`publishedVersion`). Unpublish\n // is blocked only by referrers that actually serve the published site; the\n // reported state reflects that effective publish status.\n const referrerPublished = record.publishedVersion !== undefined\n if (mode === 'unpublish' && !referrerPublished) continue\n // EC-277: the stored document self-describes, so extraction is schema-free.\n for (const outbound of extractReferences(doc)) {\n if (outbound.kind !== 'relation-field') continue\n if (outbound.target.type !== 'document' || outbound.target.id !== targetKey) continue\n const field = fieldNameOfReferencePath(outbound.path)\n if (field === undefined || !fields.has(field)) continue\n referrers.push({\n collection: doc.collection,\n id: doc.id,\n field,\n path: outbound.path,\n state: referrerPublished ? 'published' : 'draft',\n })\n }\n }\n return referrers\n}\n\n/** Throw a structured conflict (never a raw error) when strict referrers block. */\nasync function assertNoStrictReferrers(\n context: OperationContext,\n projectId: string,\n ref: DocumentRef,\n mode: IntegrityMode,\n): Promise<void> {\n const referrers = await collectStrictReferrers(context, projectId, ref, mode)\n if (referrers.length === 0) return\n const targetKey = documentKey(ref)\n const named = referrers\n .slice(0, 3)\n .map((r) => `“${r.collection}:${r.id}” (field “${r.field}”)`)\n .join(', ')\n const suffix = referrers.length > 3 ? `, and ${referrers.length - 3} more` : ''\n throw new OperationFailure(\n strictReferenceConflictError(\n targetKey,\n `Cannot ${mode} “${targetKey}”: ${referrers.length} ${\n referrers.length === 1 ? 'document references' : 'documents reference'\n } it through strict relation fields — ${named}${suffix}. Remove these references first.`,\n referrers,\n ),\n )\n}\n\nexport const upsertDocumentInputSchema = z.object({\n projectId: projectIdSchema,\n document: documentSchema,\n})\n\nexport const documentRefInputSchema = z.object({\n projectId: projectIdSchema,\n ref: documentRefSchema,\n})\n\nexport const listDocumentsInputSchema = z.object({\n projectId: projectIdSchema,\n collection: z.string().min(1).optional(),\n})\n\nexport const snapshotDocumentInputSchema = z.object({\n projectId: projectIdSchema,\n ref: documentRefSchema,\n label: z.string().min(1).optional(),\n})\n\nexport const restoreDocumentInputSchema = z.object({\n projectId: projectIdSchema,\n ref: documentRefSchema,\n /** The recorded version to restore as the new working draft. */\n version: z.number().int().positive(),\n})\n\nexport const pinVersionInputSchema = z.object({\n projectId: projectIdSchema,\n ref: documentRefSchema,\n /** The already-recorded version to pin live. */\n version: z.number().int().positive(),\n})\n\nexport const documentOperationDefinitions = {\n upsert: defineCommand({\n name: 'documents.upsert',\n domain: 'documents',\n description: 'Insert or update a CMS document (keyed by collection + id).',\n input: upsertDocumentInputSchema,\n execute: async (context, input) => {\n // EC-277: self-type document fields through the schema-as-lens before persist —\n // the spine every writer crosses, so relation/asset/object values self-describe\n // at rest (composition static props need the registry, self-typed in the studio\n // pre-dispatch). Drift-tolerant: no schema / undeclared collection → pass through.\n const document = await selfTypeForPersist(context, input.projectId, input.document)\n // EC-225: the draft store accepts in-progress (possibly invalid) drafts —\n // field-rule validation is enforced at PUBLISH, not on every write, so\n // autosave never rejects a half-finished edit. The input schema still\n // shape-checks the document; the studio surfaces field issues live.\n return context.adapter.cms.upsertDocument(input.projectId, document)\n },\n }),\n delete: defineCommand({\n name: 'documents.delete',\n domain: 'documents',\n description: 'Delete a CMS document (blocked while strict relation fields reference it).',\n input: documentRefInputSchema,\n execute: async (context, input) => {\n await assertNoStrictReferrers(context, input.projectId, input.ref, 'delete')\n await context.adapter.cms.deleteDocument(input.projectId, input.ref)\n return { ref: input.ref }\n },\n }),\n get: defineQuery({\n name: 'documents.get',\n domain: 'documents',\n description: 'Load a CMS document by collection + id.',\n input: documentRefInputSchema,\n execute: (context, input) => context.adapter.cms.getDocument(input.projectId, input.ref),\n }),\n list: defineQuery({\n name: 'documents.list',\n domain: 'documents',\n description: 'List CMS documents, optionally filtered to one collection.',\n input: listDocumentsInputSchema,\n execute: (context, input) =>\n context.adapter.cms.listDocuments(input.projectId, input.collection),\n }),\n // --- Version history (EC-224) ----------------------------------------------\n snapshot: defineCommand({\n name: 'documents.snapshot',\n domain: 'documents',\n description: 'Record the current draft as a new version without publishing.',\n input: snapshotDocumentInputSchema,\n execute: async (context, input) => {\n const current = await context.adapter.cms.getDocument(input.projectId, input.ref)\n return context.adapter.cms.saveDocumentVersion(\n input.projectId,\n current.document,\n input.label ? { label: input.label } : {},\n )\n },\n }),\n listVersions: defineQuery({\n name: 'documents.listVersions',\n domain: 'documents',\n description: 'List a document’s recorded versions, newest first.',\n input: documentRefInputSchema,\n execute: (context, input) =>\n context.adapter.cms.listDocumentVersions(input.projectId, input.ref),\n }),\n restore: defineCommand({\n name: 'documents.restore',\n domain: 'documents',\n description:\n 'Restore a recorded version as the new working draft (snapshots the current draft first so the rollback is itself undoable).',\n input: restoreDocumentInputSchema,\n execute: async (context, input) => {\n // Fail fast if the target version is unknown (RecordNotFoundError → not-found).\n const target = await context.adapter.cms.getDocumentVersion(\n input.projectId,\n input.ref,\n input.version,\n )\n // Snapshot the current draft first so the restore is itself undoable (EC-224).\n const current = await context.adapter.cms.getDocument(input.projectId, input.ref)\n await context.adapter.cms.saveDocumentVersion(input.projectId, current.document, {\n label: 'pre-restore',\n })\n // Load the recorded snapshot as the new working draft (the live row is\n // always the draft now — EC-224 — so no flag to set).\n return context.adapter.cms.upsertDocument(input.projectId, target.snapshot)\n },\n }),\n // --- Publish lifecycle over the version pointer (EC-224) --------------------\n // The Sanity model: publish snapshots the current draft as a new version and\n // pins it live; unpublish clears the pin (draft + history untouched). These\n // replace `documents.setState` as the studio's publish path.\n publish: defineCommand({\n name: 'documents.publish',\n domain: 'documents',\n description: 'Publish a document: snapshot the current draft as a new version and pin it live.',\n input: documentRefInputSchema,\n execute: async (context, input) => {\n const current = await context.adapter.cms.getDocument(input.projectId, input.ref)\n // EC-225: publish is the validation gate — a published version must satisfy\n // the collection's field rules even though the draft may be saved invalid.\n await assertFieldRules(context, input.projectId, current.document)\n // Record the current draft verbatim as the published version and pin it.\n // The published perspective serves this recorded snapshot through the\n // version pointer (`DocumentHistory.published`) — independent of any flat\n // `state` flag — so the A1a `state:'published'` stamp is gone (EC-224 B-1):\n // every published reader (the host wrap, the in-Convex kit, the Next\n // adapter) now resolves a pinned row identically, by the pointer.\n const version = await context.adapter.cms.saveDocumentVersion(\n input.projectId,\n current.document,\n { label: 'published' },\n )\n return context.adapter.cms.publishDocumentVersion(input.projectId, input.ref, version.version)\n },\n }),\n unpublish: defineCommand({\n name: 'documents.unpublish',\n domain: 'documents',\n description:\n 'Unpublish a document: clear the live version pin (blocked while strict relation fields published-reference it).',\n input: documentRefInputSchema,\n execute: async (context, input) => {\n const existing = await context.adapter.cms.findDocument(input.projectId, input.ref)\n if (existing === undefined) {\n // No record — let the persister raise the canonical not-found.\n return context.adapter.cms.unpublishDocument(input.projectId, input.ref)\n }\n // EC-224: published-ness is the version pointer, full stop. A document is\n // published iff its pin is set.\n if (existing.publishedVersion === undefined) {\n // Already unpublished (no pin): an idempotent no-op.\n return existing\n }\n // Unpublish (EC-173): blocked only while *published* documents hold strict\n // references to this one. Clearing the pin is the whole operation — the\n // live row is already the working draft (no flag to reset).\n await assertNoStrictReferrers(context, input.projectId, input.ref, 'unpublish')\n return context.adapter.cms.unpublishDocument(input.projectId, input.ref)\n },\n }),\n pinVersion: defineCommand({\n name: 'documents.pinVersion',\n domain: 'documents',\n description:\n 'Pin an EXISTING recorded version live without re-snapshotting (EC-224). The exact pointer inverse of unpublish/republish — the primitive changeset revert uses to restore a prior pin without a flat `state` flag.',\n input: pinVersionInputSchema,\n execute: async (context, input) => {\n // Publishing (here, re-pinning) is never blocked — only unpublish is\n // (EC-173). `publishDocumentVersion` validates the version exists\n // (RecordNotFoundError → not-found), so a stale pin target fails cleanly.\n return context.adapter.cms.publishDocumentVersion(input.projectId, input.ref, input.version)\n },\n }),\n} as const\n\nexport function createDocumentOperations(runtime: OperationsRuntime) {\n return {\n upsert: bindOperation(runtime, documentOperationDefinitions.upsert),\n delete: bindOperation(runtime, documentOperationDefinitions.delete),\n get: bindOperation(runtime, documentOperationDefinitions.get),\n list: bindOperation(runtime, documentOperationDefinitions.list),\n snapshot: bindOperation(runtime, documentOperationDefinitions.snapshot),\n listVersions: bindOperation(runtime, documentOperationDefinitions.listVersions),\n restore: bindOperation(runtime, documentOperationDefinitions.restore),\n publish: bindOperation(runtime, documentOperationDefinitions.publish),\n unpublish: bindOperation(runtime, documentOperationDefinitions.unpublish),\n pinVersion: bindOperation(runtime, documentOperationDefinitions.pinVersion),\n }\n}\n\nexport type DocumentOperations = ReturnType<typeof createDocumentOperations>\n"]}