@elytracms/core 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/LICENSE +21 -0
  2. package/dist/clipboard/build.d.ts +77 -0
  3. package/dist/clipboard/build.js +128 -0
  4. package/dist/clipboard/build.js.map +1 -0
  5. package/dist/clipboard/clipboard.d.ts +33 -0
  6. package/dist/clipboard/clipboard.js +45 -0
  7. package/dist/clipboard/clipboard.js.map +1 -0
  8. package/dist/clipboard/fragment.d.ts +112 -0
  9. package/dist/clipboard/fragment.js +79 -0
  10. package/dist/clipboard/fragment.js.map +1 -0
  11. package/dist/clipboard/html.d.ts +26 -0
  12. package/dist/clipboard/html.js +82 -0
  13. package/dist/clipboard/html.js.map +1 -0
  14. package/dist/clipboard/index.d.ts +15 -0
  15. package/dist/clipboard/index.js +16 -0
  16. package/dist/clipboard/index.js.map +1 -0
  17. package/dist/clipboard/references.d.ts +50 -0
  18. package/dist/clipboard/references.js +0 -0
  19. package/dist/clipboard/references.js.map +1 -0
  20. package/dist/clipboard/serialize.d.ts +69 -0
  21. package/dist/clipboard/serialize.js +130 -0
  22. package/dist/clipboard/serialize.js.map +1 -0
  23. package/dist/cms-core/collections.d.ts +82 -0
  24. package/dist/cms-core/collections.js +187 -0
  25. package/dist/cms-core/collections.js.map +1 -0
  26. package/dist/cms-core/documents.d.ts +71 -0
  27. package/dist/cms-core/documents.js +67 -0
  28. package/dist/cms-core/documents.js.map +1 -0
  29. package/dist/cms-core/envelopes.d.ts +80 -0
  30. package/dist/cms-core/envelopes.js +124 -0
  31. package/dist/cms-core/envelopes.js.map +1 -0
  32. package/dist/cms-core/fields.d.ts +220 -0
  33. package/dist/cms-core/fields.js +250 -0
  34. package/dist/cms-core/fields.js.map +1 -0
  35. package/dist/cms-core/fixtures.d.ts +92 -0
  36. package/dist/cms-core/fixtures.js +357 -0
  37. package/dist/cms-core/fixtures.js.map +1 -0
  38. package/dist/cms-core/hierarchy.d.ts +113 -0
  39. package/dist/cms-core/hierarchy.js +223 -0
  40. package/dist/cms-core/hierarchy.js.map +1 -0
  41. package/dist/cms-core/index.d.ts +25 -0
  42. package/dist/cms-core/index.js +26 -0
  43. package/dist/cms-core/index.js.map +1 -0
  44. package/dist/cms-core/infer.d.ts +103 -0
  45. package/dist/cms-core/infer.js +57 -0
  46. package/dist/cms-core/infer.js.map +1 -0
  47. package/dist/cms-core/issues.d.ts +92 -0
  48. package/dist/cms-core/issues.js +74 -0
  49. package/dist/cms-core/issues.js.map +1 -0
  50. package/dist/cms-core/json-schema.d.ts +25 -0
  51. package/dist/cms-core/json-schema.js +110 -0
  52. package/dist/cms-core/json-schema.js.map +1 -0
  53. package/dist/cms-core/localization.d.ts +51 -0
  54. package/dist/cms-core/localization.js +89 -0
  55. package/dist/cms-core/localization.js.map +1 -0
  56. package/dist/cms-core/routes.d.ts +76 -0
  57. package/dist/cms-core/routes.js +220 -0
  58. package/dist/cms-core/routes.js.map +1 -0
  59. package/dist/cms-core/self-type.d.ts +41 -0
  60. package/dist/cms-core/self-type.js +191 -0
  61. package/dist/cms-core/self-type.js.map +1 -0
  62. package/dist/cms-core/url-for-document.d.ts +39 -0
  63. package/dist/cms-core/url-for-document.js +138 -0
  64. package/dist/cms-core/url-for-document.js.map +1 -0
  65. package/dist/cms-core/validate-document.d.ts +121 -0
  66. package/dist/cms-core/validate-document.js +871 -0
  67. package/dist/cms-core/validate-document.js.map +1 -0
  68. package/dist/cms-core/versions.d.ts +75 -0
  69. package/dist/cms-core/versions.js +97 -0
  70. package/dist/cms-core/versions.js.map +1 -0
  71. package/dist/collaboration/approval.d.ts +68 -0
  72. package/dist/collaboration/approval.js +104 -0
  73. package/dist/collaboration/approval.js.map +1 -0
  74. package/dist/collaboration/collaboration.d.ts +49 -0
  75. package/dist/collaboration/collaboration.js +56 -0
  76. package/dist/collaboration/collaboration.js.map +1 -0
  77. package/dist/collaboration/comments.d.ts +72 -0
  78. package/dist/collaboration/comments.js +118 -0
  79. package/dist/collaboration/comments.js.map +1 -0
  80. package/dist/collaboration/core.d.ts +25 -0
  81. package/dist/collaboration/core.js +26 -0
  82. package/dist/collaboration/core.js.map +1 -0
  83. package/dist/collaboration/index.d.ts +14 -0
  84. package/dist/collaboration/index.js +15 -0
  85. package/dist/collaboration/index.js.map +1 -0
  86. package/dist/collaboration/presence.d.ts +62 -0
  87. package/dist/collaboration/presence.js +85 -0
  88. package/dist/collaboration/presence.js.map +1 -0
  89. package/dist/collaboration/publishing.d.ts +60 -0
  90. package/dist/collaboration/publishing.js +93 -0
  91. package/dist/collaboration/publishing.js.map +1 -0
  92. package/dist/collaboration/versions.d.ts +52 -0
  93. package/dist/collaboration/versions.js +81 -0
  94. package/dist/collaboration/versions.js.map +1 -0
  95. package/dist/component-registry/index.d.ts +3 -0
  96. package/dist/component-registry/index.js +4 -0
  97. package/dist/component-registry/index.js.map +1 -0
  98. package/dist/component-registry/issues.d.ts +6 -0
  99. package/dist/component-registry/issues.js +2 -0
  100. package/dist/component-registry/issues.js.map +1 -0
  101. package/dist/component-registry/manifest.d.ts +164 -0
  102. package/dist/component-registry/manifest.js +129 -0
  103. package/dist/component-registry/manifest.js.map +1 -0
  104. package/dist/component-registry/registry.d.ts +33 -0
  105. package/dist/component-registry/registry.js +90 -0
  106. package/dist/component-registry/registry.js.map +1 -0
  107. package/dist/content/__fixtures__/filterable-collections.d.ts +14 -0
  108. package/dist/content/__fixtures__/filterable-collections.js +15 -0
  109. package/dist/content/__fixtures__/filterable-collections.js.map +1 -0
  110. package/dist/content/__fixtures__/sample-accessor-types.d.ts +56 -0
  111. package/dist/content/__fixtures__/sample-accessor-types.js +5 -0
  112. package/dist/content/__fixtures__/sample-accessor-types.js.map +1 -0
  113. package/dist/content/__fixtures__/sample-delivery-types.d.ts +122 -0
  114. package/dist/content/__fixtures__/sample-delivery-types.js +5 -0
  115. package/dist/content/__fixtures__/sample-delivery-types.js.map +1 -0
  116. package/dist/content/assets.d.ts +53 -0
  117. package/dist/content/assets.js +38 -0
  118. package/dist/content/assets.js.map +1 -0
  119. package/dist/content/binding-sources.d.ts +53 -0
  120. package/dist/content/binding-sources.js +73 -0
  121. package/dist/content/binding-sources.js.map +1 -0
  122. package/dist/content/client.d.ts +90 -0
  123. package/dist/content/client.js +383 -0
  124. package/dist/content/client.js.map +1 -0
  125. package/dist/content/codegen.d.ts +54 -0
  126. package/dist/content/codegen.js +305 -0
  127. package/dist/content/codegen.js.map +1 -0
  128. package/dist/content/context.d.ts +38 -0
  129. package/dist/content/context.js +21 -0
  130. package/dist/content/context.js.map +1 -0
  131. package/dist/content/cursor.d.ts +33 -0
  132. package/dist/content/cursor.js +104 -0
  133. package/dist/content/cursor.js.map +1 -0
  134. package/dist/content/index.d.ts +28 -0
  135. package/dist/content/index.js +29 -0
  136. package/dist/content/index.js.map +1 -0
  137. package/dist/content/locale.d.ts +30 -0
  138. package/dist/content/locale.js +26 -0
  139. package/dist/content/locale.js.map +1 -0
  140. package/dist/content/perspective.d.ts +29 -0
  141. package/dist/content/perspective.js +31 -0
  142. package/dist/content/perspective.js.map +1 -0
  143. package/dist/content/populate.d.ts +25 -0
  144. package/dist/content/populate.js +22 -0
  145. package/dist/content/populate.js.map +1 -0
  146. package/dist/content/query.d.ts +122 -0
  147. package/dist/content/query.js +257 -0
  148. package/dist/content/query.js.map +1 -0
  149. package/dist/content/raw.d.ts +13 -0
  150. package/dist/content/raw.js +14 -0
  151. package/dist/content/raw.js.map +1 -0
  152. package/dist/content/resolve.d.ts +97 -0
  153. package/dist/content/resolve.js +261 -0
  154. package/dist/content/resolve.js.map +1 -0
  155. package/dist/content/serialize.d.ts +30 -0
  156. package/dist/content/serialize.js +57 -0
  157. package/dist/content/serialize.js.map +1 -0
  158. package/dist/content/tags.d.ts +54 -0
  159. package/dist/content/tags.js +40 -0
  160. package/dist/content/tags.js.map +1 -0
  161. package/dist/data-binding/fixtures.d.ts +20 -0
  162. package/dist/data-binding/fixtures.js +47 -0
  163. package/dist/data-binding/fixtures.js.map +1 -0
  164. package/dist/data-binding/index.d.ts +14 -0
  165. package/dist/data-binding/index.js +15 -0
  166. package/dist/data-binding/index.js.map +1 -0
  167. package/dist/data-binding/issues.d.ts +45 -0
  168. package/dist/data-binding/issues.js +46 -0
  169. package/dist/data-binding/issues.js.map +1 -0
  170. package/dist/data-binding/resolve.d.ts +87 -0
  171. package/dist/data-binding/resolve.js +204 -0
  172. package/dist/data-binding/resolve.js.map +1 -0
  173. package/dist/data-binding/sample.d.ts +21 -0
  174. package/dist/data-binding/sample.js +23 -0
  175. package/dist/data-binding/sample.js.map +1 -0
  176. package/dist/data-binding/sources.d.ts +225 -0
  177. package/dist/data-binding/sources.js +154 -0
  178. package/dist/data-binding/sources.js.map +1 -0
  179. package/dist/data-binding/tokens.d.ts +62 -0
  180. package/dist/data-binding/tokens.js +150 -0
  181. package/dist/data-binding/tokens.js.map +1 -0
  182. package/dist/design-tokens/css.d.ts +34 -0
  183. package/dist/design-tokens/css.js +51 -0
  184. package/dist/design-tokens/css.js.map +1 -0
  185. package/dist/design-tokens/index.d.ts +10 -0
  186. package/dist/design-tokens/index.js +11 -0
  187. package/dist/design-tokens/index.js.map +1 -0
  188. package/dist/design-tokens/style-guide.d.ts +30 -0
  189. package/dist/design-tokens/style-guide.js +31 -0
  190. package/dist/design-tokens/style-guide.js.map +1 -0
  191. package/dist/design-tokens/tokens.d.ts +89 -0
  192. package/dist/design-tokens/tokens.js +112 -0
  193. package/dist/design-tokens/tokens.js.map +1 -0
  194. package/dist/export-sync/builder-source.d.ts +85 -0
  195. package/dist/export-sync/builder-source.js +124 -0
  196. package/dist/export-sync/builder-source.js.map +1 -0
  197. package/dist/export-sync/check.d.ts +61 -0
  198. package/dist/export-sync/check.js +126 -0
  199. package/dist/export-sync/check.js.map +1 -0
  200. package/dist/export-sync/cli.d.ts +89 -0
  201. package/dist/export-sync/cli.js +323 -0
  202. package/dist/export-sync/cli.js.map +1 -0
  203. package/dist/export-sync/core.d.ts +58 -0
  204. package/dist/export-sync/core.js +41 -0
  205. package/dist/export-sync/core.js.map +1 -0
  206. package/dist/export-sync/eject.d.ts +28 -0
  207. package/dist/export-sync/eject.js +21 -0
  208. package/dist/export-sync/eject.js.map +1 -0
  209. package/dist/export-sync/fixtures.d.ts +25 -0
  210. package/dist/export-sync/fixtures.js +87 -0
  211. package/dist/export-sync/fixtures.js.map +1 -0
  212. package/dist/export-sync/generate.d.ts +7 -0
  213. package/dist/export-sync/generate.js +505 -0
  214. package/dist/export-sync/generate.js.map +1 -0
  215. package/dist/export-sync/index.d.ts +37 -0
  216. package/dist/export-sync/index.js +39 -0
  217. package/dist/export-sync/index.js.map +1 -0
  218. package/dist/export-sync/init.d.ts +123 -0
  219. package/dist/export-sync/init.js +234 -0
  220. package/dist/export-sync/init.js.map +1 -0
  221. package/dist/export-sync/manifest-host.d.ts +48 -0
  222. package/dist/export-sync/manifest-host.js +73 -0
  223. package/dist/export-sync/manifest-host.js.map +1 -0
  224. package/dist/export-sync/node.d.ts +20 -0
  225. package/dist/export-sync/node.js +101 -0
  226. package/dist/export-sync/node.js.map +1 -0
  227. package/dist/export-sync/push.d.ts +76 -0
  228. package/dist/export-sync/push.js +197 -0
  229. package/dist/export-sync/push.js.map +1 -0
  230. package/dist/export-sync/registry-sync-client.d.ts +59 -0
  231. package/dist/export-sync/registry-sync-client.js +97 -0
  232. package/dist/export-sync/registry-sync-client.js.map +1 -0
  233. package/dist/export-sync/sync.d.ts +47 -0
  234. package/dist/export-sync/sync.js +47 -0
  235. package/dist/export-sync/sync.js.map +1 -0
  236. package/dist/export-sync/typegen.d.ts +40 -0
  237. package/dist/export-sync/typegen.js +45 -0
  238. package/dist/export-sync/typegen.js.map +1 -0
  239. package/dist/export-sync/validate.d.ts +19 -0
  240. package/dist/export-sync/validate.js +102 -0
  241. package/dist/export-sync/validate.js.map +1 -0
  242. package/dist/export-sync/watch.d.ts +66 -0
  243. package/dist/export-sync/watch.js +70 -0
  244. package/dist/export-sync/watch.js.map +1 -0
  245. package/dist/operations/assets.d.ts +198 -0
  246. package/dist/operations/assets.js +75 -0
  247. package/dist/operations/assets.js.map +1 -0
  248. package/dist/operations/authorization.d.ts +49 -0
  249. package/dist/operations/authorization.js +128 -0
  250. package/dist/operations/authorization.js.map +1 -0
  251. package/dist/operations/changesets.d.ts +160 -0
  252. package/dist/operations/changesets.js +442 -0
  253. package/dist/operations/changesets.js.map +1 -0
  254. package/dist/operations/client.d.ts +49 -0
  255. package/dist/operations/client.js +57 -0
  256. package/dist/operations/client.js.map +1 -0
  257. package/dist/operations/core.d.ts +238 -0
  258. package/dist/operations/core.js +269 -0
  259. package/dist/operations/core.js.map +1 -0
  260. package/dist/operations/documents.d.ts +432 -0
  261. package/dist/operations/documents.js +344 -0
  262. package/dist/operations/documents.js.map +1 -0
  263. package/dist/operations/graph.d.ts +138 -0
  264. package/dist/operations/graph.js +78 -0
  265. package/dist/operations/graph.js.map +1 -0
  266. package/dist/operations/index.d.ts +19 -0
  267. package/dist/operations/index.js +20 -0
  268. package/dist/operations/index.js.map +1 -0
  269. package/dist/operations/members.d.ts +87 -0
  270. package/dist/operations/members.js +56 -0
  271. package/dist/operations/members.js.map +1 -0
  272. package/dist/operations/publishing.d.ts +89 -0
  273. package/dist/operations/publishing.js +57 -0
  274. package/dist/operations/publishing.js.map +1 -0
  275. package/dist/operations/references.d.ts +222 -0
  276. package/dist/operations/references.js +177 -0
  277. package/dist/operations/references.js.map +1 -0
  278. package/dist/operations/schema.d.ts +413 -0
  279. package/dist/operations/schema.js +138 -0
  280. package/dist/operations/schema.js.map +1 -0
  281. package/dist/operations/tokens.d.ts +79 -0
  282. package/dist/operations/tokens.js +102 -0
  283. package/dist/operations/tokens.js.map +1 -0
  284. package/dist/persistence/adapter.d.ts +79 -0
  285. package/dist/persistence/adapter.js +55 -0
  286. package/dist/persistence/adapter.js.map +1 -0
  287. package/dist/persistence/assets.d.ts +120 -0
  288. package/dist/persistence/assets.js +141 -0
  289. package/dist/persistence/assets.js.map +1 -0
  290. package/dist/persistence/backend-validation.d.ts +43 -0
  291. package/dist/persistence/backend-validation.js +57 -0
  292. package/dist/persistence/backend-validation.js.map +1 -0
  293. package/dist/persistence/cli-tokens.d.ts +50 -0
  294. package/dist/persistence/cli-tokens.js +66 -0
  295. package/dist/persistence/cli-tokens.js.map +1 -0
  296. package/dist/persistence/cms.d.ts +148 -0
  297. package/dist/persistence/cms.js +232 -0
  298. package/dist/persistence/cms.js.map +1 -0
  299. package/dist/persistence/contract-scenarios.d.ts +73 -0
  300. package/dist/persistence/contract-scenarios.js +496 -0
  301. package/dist/persistence/contract-scenarios.js.map +1 -0
  302. package/dist/persistence/core.d.ts +96 -0
  303. package/dist/persistence/core.js +110 -0
  304. package/dist/persistence/core.js.map +1 -0
  305. package/dist/persistence/graph.d.ts +61 -0
  306. package/dist/persistence/graph.js +98 -0
  307. package/dist/persistence/graph.js.map +1 -0
  308. package/dist/persistence/index.d.ts +22 -0
  309. package/dist/persistence/index.js +23 -0
  310. package/dist/persistence/index.js.map +1 -0
  311. package/dist/persistence/members.d.ts +70 -0
  312. package/dist/persistence/members.js +0 -0
  313. package/dist/persistence/members.js.map +1 -0
  314. package/dist/persistence/publishing.d.ts +59 -0
  315. package/dist/persistence/publishing.js +95 -0
  316. package/dist/persistence/publishing.js.map +1 -0
  317. package/dist/persistence/reference-extraction.d.ts +44 -0
  318. package/dist/persistence/reference-extraction.js +204 -0
  319. package/dist/persistence/reference-extraction.js.map +1 -0
  320. package/dist/persistence/reference-indexing.d.ts +68 -0
  321. package/dist/persistence/reference-indexing.js +112 -0
  322. package/dist/persistence/reference-indexing.js.map +1 -0
  323. package/dist/persistence/references.d.ts +257 -0
  324. package/dist/persistence/references.js +0 -0
  325. package/dist/persistence/references.js.map +1 -0
  326. package/dist/persistence/seed.d.ts +55 -0
  327. package/dist/persistence/seed.js +102 -0
  328. package/dist/persistence/seed.js.map +1 -0
  329. package/dist/persistence/self-maintaining-adapter.d.ts +41 -0
  330. package/dist/persistence/self-maintaining-adapter.js +79 -0
  331. package/dist/persistence/self-maintaining-adapter.js.map +1 -0
  332. package/dist/plugins/asset-storage.d.ts +76 -0
  333. package/dist/plugins/asset-storage.js +104 -0
  334. package/dist/plugins/asset-storage.js.map +1 -0
  335. package/dist/plugins/component-package.d.ts +54 -0
  336. package/dist/plugins/component-package.js +92 -0
  337. package/dist/plugins/component-package.js.map +1 -0
  338. package/dist/plugins/data-sources.d.ts +78 -0
  339. package/dist/plugins/data-sources.js +99 -0
  340. package/dist/plugins/data-sources.js.map +1 -0
  341. package/dist/plugins/examples.d.ts +47 -0
  342. package/dist/plugins/examples.js +205 -0
  343. package/dist/plugins/examples.js.map +1 -0
  344. package/dist/plugins/export-targets.d.ts +47 -0
  345. package/dist/plugins/export-targets.js +78 -0
  346. package/dist/plugins/export-targets.js.map +1 -0
  347. package/dist/plugins/field-types.d.ts +86 -0
  348. package/dist/plugins/field-types.js +93 -0
  349. package/dist/plugins/field-types.js.map +1 -0
  350. package/dist/plugins/hooks.d.ts +60 -0
  351. package/dist/plugins/hooks.js +94 -0
  352. package/dist/plugins/hooks.js.map +1 -0
  353. package/dist/plugins/index.d.ts +27 -0
  354. package/dist/plugins/index.js +28 -0
  355. package/dist/plugins/index.js.map +1 -0
  356. package/dist/plugins/marketplace.d.ts +90 -0
  357. package/dist/plugins/marketplace.js +110 -0
  358. package/dist/plugins/marketplace.js.map +1 -0
  359. package/dist/plugins/plugin.d.ts +107 -0
  360. package/dist/plugins/plugin.js +122 -0
  361. package/dist/plugins/plugin.js.map +1 -0
  362. package/dist/plugins/templates.d.ts +66 -0
  363. package/dist/plugins/templates.js +74 -0
  364. package/dist/plugins/templates.js.map +1 -0
  365. package/dist/project-graph/binding.d.ts +68 -0
  366. package/dist/project-graph/binding.js +39 -0
  367. package/dist/project-graph/binding.js.map +1 -0
  368. package/dist/project-graph/container.d.ts +126 -0
  369. package/dist/project-graph/container.js +221 -0
  370. package/dist/project-graph/container.js.map +1 -0
  371. package/dist/project-graph/edit.d.ts +66 -0
  372. package/dist/project-graph/edit.js +201 -0
  373. package/dist/project-graph/edit.js.map +1 -0
  374. package/dist/project-graph/fixtures.d.ts +51 -0
  375. package/dist/project-graph/fixtures.js +224 -0
  376. package/dist/project-graph/fixtures.js.map +1 -0
  377. package/dist/project-graph/ids.d.ts +17 -0
  378. package/dist/project-graph/ids.js +19 -0
  379. package/dist/project-graph/ids.js.map +1 -0
  380. package/dist/project-graph/index.d.ts +12 -0
  381. package/dist/project-graph/index.js +13 -0
  382. package/dist/project-graph/index.js.map +1 -0
  383. package/dist/project-graph/issues.d.ts +61 -0
  384. package/dist/project-graph/issues.js +44 -0
  385. package/dist/project-graph/issues.js.map +1 -0
  386. package/dist/project-graph/json.d.ts +6 -0
  387. package/dist/project-graph/json.js +10 -0
  388. package/dist/project-graph/json.js.map +1 -0
  389. package/dist/project-graph/node.d.ts +48 -0
  390. package/dist/project-graph/node.js +42 -0
  391. package/dist/project-graph/node.js.map +1 -0
  392. package/dist/project-graph/normalize.d.ts +17 -0
  393. package/dist/project-graph/normalize.js +110 -0
  394. package/dist/project-graph/normalize.js.map +1 -0
  395. package/dist/project-graph/serialize.d.ts +36 -0
  396. package/dist/project-graph/serialize.js +51 -0
  397. package/dist/project-graph/serialize.js.map +1 -0
  398. package/dist/project-graph/structure.d.ts +40 -0
  399. package/dist/project-graph/structure.js +36 -0
  400. package/dist/project-graph/structure.js.map +1 -0
  401. package/dist/project-graph/validate.d.ts +84 -0
  402. package/dist/project-graph/validate.js +158 -0
  403. package/dist/project-graph/validate.js.map +1 -0
  404. package/dist/rich-text/adapter.d.ts +43 -0
  405. package/dist/rich-text/adapter.js +24 -0
  406. package/dist/rich-text/adapter.js.map +1 -0
  407. package/dist/rich-text/dom-editor.d.ts +101 -0
  408. package/dist/rich-text/dom-editor.js +482 -0
  409. package/dist/rich-text/dom-editor.js.map +1 -0
  410. package/dist/rich-text/embed.d.ts +70 -0
  411. package/dist/rich-text/embed.js +70 -0
  412. package/dist/rich-text/embed.js.map +1 -0
  413. package/dist/rich-text/fixtures.d.ts +25 -0
  414. package/dist/rich-text/fixtures.js +115 -0
  415. package/dist/rich-text/fixtures.js.map +1 -0
  416. package/dist/rich-text/html.d.ts +5 -0
  417. package/dist/rich-text/html.js +309 -0
  418. package/dist/rich-text/html.js.map +1 -0
  419. package/dist/rich-text/index.d.ts +19 -0
  420. package/dist/rich-text/index.js +20 -0
  421. package/dist/rich-text/index.js.map +1 -0
  422. package/dist/rich-text/markdown.d.ts +7 -0
  423. package/dist/rich-text/markdown.js +235 -0
  424. package/dist/rich-text/markdown.js.map +1 -0
  425. package/dist/rich-text/portable-text.d.ts +50 -0
  426. package/dist/rich-text/portable-text.js +223 -0
  427. package/dist/rich-text/portable-text.js.map +1 -0
  428. package/dist/rich-text/registry.d.ts +48 -0
  429. package/dist/rich-text/registry.js +16 -0
  430. package/dist/rich-text/registry.js.map +1 -0
  431. package/dist/rich-text/render.d.ts +69 -0
  432. package/dist/rich-text/render.js +205 -0
  433. package/dist/rich-text/render.js.map +1 -0
  434. package/dist/rich-text/schema.d.ts +86 -0
  435. package/dist/rich-text/schema.js +80 -0
  436. package/dist/rich-text/schema.js.map +1 -0
  437. package/dist/rich-text/test-support.d.ts +7 -0
  438. package/dist/rich-text/test-support.js +8 -0
  439. package/dist/rich-text/test-support.js.map +1 -0
  440. package/dist/runtime-renderer/client.d.ts +14 -0
  441. package/dist/runtime-renderer/client.js +15 -0
  442. package/dist/runtime-renderer/client.js.map +1 -0
  443. package/dist/runtime-renderer/condition.d.ts +8 -0
  444. package/dist/runtime-renderer/condition.js +48 -0
  445. package/dist/runtime-renderer/condition.js.map +1 -0
  446. package/dist/runtime-renderer/content-client.d.ts +62 -0
  447. package/dist/runtime-renderer/content-client.js +37 -0
  448. package/dist/runtime-renderer/content-client.js.map +1 -0
  449. package/dist/runtime-renderer/context.d.ts +185 -0
  450. package/dist/runtime-renderer/context.js +7 -0
  451. package/dist/runtime-renderer/context.js.map +1 -0
  452. package/dist/runtime-renderer/fallback.d.ts +39 -0
  453. package/dist/runtime-renderer/fallback.js +45 -0
  454. package/dist/runtime-renderer/fallback.js.map +1 -0
  455. package/dist/runtime-renderer/index.d.ts +13 -0
  456. package/dist/runtime-renderer/index.js +13 -0
  457. package/dist/runtime-renderer/index.js.map +1 -0
  458. package/dist/runtime-renderer/primitives.d.ts +85 -0
  459. package/dist/runtime-renderer/primitives.js +442 -0
  460. package/dist/runtime-renderer/primitives.js.map +1 -0
  461. package/dist/runtime-renderer/render.d.ts +138 -0
  462. package/dist/runtime-renderer/render.js +825 -0
  463. package/dist/runtime-renderer/render.js.map +1 -0
  464. package/dist/runtime-renderer/rich-text.d.ts +26 -0
  465. package/dist/runtime-renderer/rich-text.js +113 -0
  466. package/dist/runtime-renderer/rich-text.js.map +1 -0
  467. package/dist/starter-kits/index.d.ts +13 -0
  468. package/dist/starter-kits/index.js +14 -0
  469. package/dist/starter-kits/index.js.map +1 -0
  470. package/dist/starter-kits/instantiate.d.ts +29 -0
  471. package/dist/starter-kits/instantiate.js +24 -0
  472. package/dist/starter-kits/instantiate.js.map +1 -0
  473. package/dist/starter-kits/kit.d.ts +61 -0
  474. package/dist/starter-kits/kit.js +37 -0
  475. package/dist/starter-kits/kit.js.map +1 -0
  476. package/dist/starter-kits/kits.d.ts +7 -0
  477. package/dist/starter-kits/kits.js +201 -0
  478. package/dist/starter-kits/kits.js.map +1 -0
  479. package/dist/starter-kits/manifests.d.ts +7 -0
  480. package/dist/starter-kits/manifests.js +111 -0
  481. package/dist/starter-kits/manifests.js.map +1 -0
  482. package/dist/starter-kits/upgrade.d.ts +39 -0
  483. package/dist/starter-kits/upgrade.js +54 -0
  484. package/dist/starter-kits/upgrade.js.map +1 -0
  485. package/dist/starter-kits/validate.d.ts +16 -0
  486. package/dist/starter-kits/validate.js +77 -0
  487. package/dist/starter-kits/validate.js.map +1 -0
  488. package/dist/studio-core/context.d.ts +27 -0
  489. package/dist/studio-core/context.js +44 -0
  490. package/dist/studio-core/context.js.map +1 -0
  491. package/dist/studio-core/errors.d.ts +58 -0
  492. package/dist/studio-core/errors.js +74 -0
  493. package/dist/studio-core/errors.js.map +1 -0
  494. package/dist/studio-core/fixtures.d.ts +18 -0
  495. package/dist/studio-core/fixtures.js +83 -0
  496. package/dist/studio-core/fixtures.js.map +1 -0
  497. package/dist/studio-core/ids.d.ts +22 -0
  498. package/dist/studio-core/ids.js +33 -0
  499. package/dist/studio-core/ids.js.map +1 -0
  500. package/dist/studio-core/index.d.ts +11 -0
  501. package/dist/studio-core/index.js +12 -0
  502. package/dist/studio-core/index.js.map +1 -0
  503. package/dist/studio-core/issues.d.ts +50 -0
  504. package/dist/studio-core/issues.js +33 -0
  505. package/dist/studio-core/issues.js.map +1 -0
  506. package/dist/studio-core/metadata.d.ts +109 -0
  507. package/dist/studio-core/metadata.js +74 -0
  508. package/dist/studio-core/metadata.js.map +1 -0
  509. package/dist/studio-core/repository.d.ts +73 -0
  510. package/dist/studio-core/repository.js +202 -0
  511. package/dist/studio-core/repository.js.map +1 -0
  512. package/dist/studio-core/sections.d.ts +73 -0
  513. package/dist/studio-core/sections.js +68 -0
  514. package/dist/studio-core/sections.js.map +1 -0
  515. package/dist/studio-core/validate.d.ts +15 -0
  516. package/dist/studio-core/validate.js +119 -0
  517. package/dist/studio-core/validate.js.map +1 -0
  518. package/dist/studio-core/workspace-config.d.ts +587 -0
  519. package/dist/studio-core/workspace-config.js +434 -0
  520. package/dist/studio-core/workspace-config.js.map +1 -0
  521. package/package.json +104 -0
@@ -0,0 +1,238 @@
1
+ import { z } from 'zod';
2
+ import type { PersistenceAdapter } from '@elytracms/core/persistence';
3
+ /** A structured issue carried by a validation failure (mirrors `PersistenceIssue`). */
4
+ export declare const operationIssueSchema: z.ZodObject<{
5
+ code: z.ZodString;
6
+ message: z.ZodString;
7
+ path: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
8
+ domain: z.ZodOptional<z.ZodString>;
9
+ }, z.core.$strip>;
10
+ export type OperationIssue = z.infer<typeof operationIssueSchema>;
11
+ export declare const operationErrorCodeSchema: z.ZodEnum<{
12
+ unknown: "unknown";
13
+ validation: "validation";
14
+ "not-found": "not-found";
15
+ conflict: "conflict";
16
+ "backend-unavailable": "backend-unavailable";
17
+ unauthorized: "unauthorized";
18
+ }>;
19
+ export type OperationErrorCode = z.infer<typeof operationErrorCodeSchema>;
20
+ /**
21
+ * Plain-data operation failure, discriminated on `code`. Serializable so AI
22
+ * changesets (EC-140), audit logs, and transports can carry it verbatim.
23
+ */
24
+ /**
25
+ * One document blocking a strict-reference conflict (EC-173): where the
26
+ * blocking reference lives, precisely enough for a deep link to the field.
27
+ * Serializable plain data, like the rest of the error union.
28
+ */
29
+ export interface ConflictReferrer {
30
+ readonly collection: string;
31
+ readonly id: string;
32
+ /** The strict relation field holding the reference. */
33
+ readonly field: string;
34
+ /** Reference-index path (`values/<field>/…` or `localized/<locale>/<field>/…`). */
35
+ readonly path: string;
36
+ readonly state: 'draft' | 'published';
37
+ }
38
+ export type OperationError = {
39
+ readonly code: 'validation';
40
+ readonly message: string;
41
+ readonly issues: readonly OperationIssue[];
42
+ } | {
43
+ readonly code: 'not-found';
44
+ readonly message: string;
45
+ /** What kind of entity was missing, e.g. 'project' | 'page' | 'cms-document'. */
46
+ readonly entity: string;
47
+ readonly key: string;
48
+ } | {
49
+ readonly code: 'conflict';
50
+ readonly message: string;
51
+ readonly key: string;
52
+ /**
53
+ * Present on strict-reference conflicts (EC-173): the documents whose
54
+ * strict relation fields block deleting/unpublishing `key`, with the
55
+ * exact field paths so UIs can deep-link to each referrer.
56
+ */
57
+ readonly referrers?: readonly ConflictReferrer[];
58
+ } | {
59
+ readonly code: 'backend-unavailable';
60
+ readonly message: string;
61
+ } | {
62
+ readonly code: 'unauthorized';
63
+ readonly message: string;
64
+ readonly operation: string;
65
+ } | {
66
+ readonly code: 'unknown';
67
+ readonly message: string;
68
+ };
69
+ /** Constructors so call sites stay terse and the union shape stays in one place. */
70
+ export declare function validationError(message: string, issues: readonly OperationIssue[]): OperationError;
71
+ export declare function notFoundError(entity: string, key: string, message?: string): OperationError;
72
+ export declare function conflictError(key: string, message?: string): OperationError;
73
+ /** A strict-reference conflict (EC-173): blocked by the enumerated referrers. */
74
+ export declare function strictReferenceConflictError(key: string, message: string, referrers: readonly ConflictReferrer[]): OperationError;
75
+ export declare function backendUnavailableError(message?: string): OperationError;
76
+ export declare function unauthorizedError(operation: string, reason?: string): OperationError;
77
+ export declare function unknownError(message?: string): OperationError;
78
+ /**
79
+ * Internal escape hatch for command bodies: throw a structured failure mid-mutate
80
+ * (e.g. "collection not found inside the loaded schema"). The pipeline catches it
81
+ * and returns the carried error — callers never see the exception.
82
+ */
83
+ export declare class OperationFailure extends Error {
84
+ readonly error: OperationError;
85
+ constructor(error: OperationError);
86
+ }
87
+ /**
88
+ * Normalize any thrown value (persistence taxonomy, project-repository taxonomy,
89
+ * `OperationFailure`, or anything else) onto the {@link OperationError} union.
90
+ */
91
+ export declare function toOperationError(value: unknown): OperationError;
92
+ /** Every operation resolves to a typed result; the pipeline never throws. */
93
+ export type OperationResult<T> = {
94
+ readonly ok: true;
95
+ readonly value: T;
96
+ } | {
97
+ readonly ok: false;
98
+ readonly error: OperationError;
99
+ };
100
+ export declare function ok<T>(value: T): OperationResult<T>;
101
+ export declare function err<T>(error: OperationError): OperationResult<T>;
102
+ /**
103
+ * The acting principal (EC-150). `id` is the user id memberships are keyed by
104
+ * (`projectMembers.userId`); per-project roles live in the members repository,
105
+ * NOT here. `roles` carries optional *global* flags consumed by the role hook
106
+ * in `authorization.ts` — see `GLOBAL_SYSTEM_FLAG`.
107
+ */
108
+ export interface Principal {
109
+ readonly id: string;
110
+ readonly name?: string;
111
+ /** Global (workspace-level) flags, e.g. 'system'. */
112
+ readonly roles?: readonly string[];
113
+ }
114
+ export interface AuthorizationContext {
115
+ readonly operation: string;
116
+ readonly domain: string;
117
+ readonly kind: OperationKind;
118
+ /** The already-validated command input. */
119
+ readonly input: unknown;
120
+ readonly actor?: Principal;
121
+ }
122
+ export type AuthorizationDecision = {
123
+ allow: true;
124
+ } | {
125
+ allow: false;
126
+ reason: string;
127
+ };
128
+ /** Invoked for every operation; may be sync or async. */
129
+ export type AuthorizationHook = (context: AuthorizationContext) => AuthorizationDecision | Promise<AuthorizationDecision>;
130
+ /** Pass-through default until the EC-150 role model lands. */
131
+ export declare const allowAll: AuthorizationHook;
132
+ export type OperationEventStatus = 'succeeded' | 'rejected' | 'denied' | 'failed';
133
+ export interface OperationEvent {
134
+ /** 1-based monotonically increasing per bus, for deterministic ordering. */
135
+ readonly sequence: number;
136
+ readonly operation: string;
137
+ readonly domain: string;
138
+ readonly kind: OperationKind;
139
+ /**
140
+ * `rejected` = input validation failed; `denied` = authorization refused;
141
+ * `failed` = mutation raised a structured error; `succeeded` otherwise.
142
+ */
143
+ readonly status: OperationEventStatus;
144
+ /** Short, deterministic summary of the input (never the full payload). */
145
+ readonly inputSummary: string;
146
+ readonly error?: OperationError;
147
+ /**
148
+ * Present on changeset lifecycle events (EC-140: `changesets.preview`,
149
+ * `changesets.apply`, `changesets.revert`) so subscribers can correlate the
150
+ * per-operation events of an apply/revert with the changeset that drove them.
151
+ */
152
+ readonly changesetId?: string;
153
+ }
154
+ export type OperationEventListener = (event: OperationEvent) => void;
155
+ export declare class OperationEventBus {
156
+ private readonly listeners;
157
+ private sequence;
158
+ /** Register a listener; returns an unsubscribe function. */
159
+ subscribe(listener: OperationEventListener): () => void;
160
+ unsubscribe(listener: OperationEventListener): void;
161
+ /** Synchronously dispatch to all listeners. Listener failures are isolated. */
162
+ emit(event: Omit<OperationEvent, 'sequence'>): OperationEvent;
163
+ }
164
+ export type OperationKind = 'command' | 'query';
165
+ /** What a command body may touch: persistence via the adapter interface only. */
166
+ export interface OperationContext {
167
+ readonly adapter: PersistenceAdapter;
168
+ /**
169
+ * The acting principal, when the runtime has one (EC-150). Lets commands with
170
+ * actor-dependent side effects stay inside the operations layer instead of
171
+ * leaking into each calling surface.
172
+ */
173
+ readonly actor?: Principal;
174
+ }
175
+ /**
176
+ * A typed, introspectable operation: name, domain, kind, and Zod input schema
177
+ * are runtime-accessible so AI changesets (EC-140), plugins, and the CLI can
178
+ * enumerate, describe, and batch operations.
179
+ */
180
+ export interface OperationDefinition<Schema extends z.ZodType = z.ZodType, Output = unknown> {
181
+ /** Globally unique dotted name, e.g. `documents.upsert`. */
182
+ readonly name: string;
183
+ readonly domain: string;
184
+ readonly kind: OperationKind;
185
+ readonly description: string;
186
+ readonly input: Schema;
187
+ /** Optional custom input summary for lifecycle events. */
188
+ readonly summarize?: (input: z.output<Schema>) => string;
189
+ /** The mutate/read step. May throw the persistence taxonomy or `OperationFailure`. */
190
+ readonly execute: (context: OperationContext, input: z.output<Schema>) => Promise<Output>;
191
+ }
192
+ /**
193
+ * Existential form for registries and the dynamic `execute(name, input)` path.
194
+ * `never`-typed parameters make every concrete definition assignable.
195
+ */
196
+ export interface AnyOperationDefinition {
197
+ readonly name: string;
198
+ readonly domain: string;
199
+ readonly kind: OperationKind;
200
+ readonly description: string;
201
+ readonly input: z.ZodType;
202
+ readonly summarize?: (input: never) => string;
203
+ readonly execute: (context: OperationContext, input: never) => Promise<unknown>;
204
+ }
205
+ export declare function defineCommand<Schema extends z.ZodType, Output>(definition: Omit<OperationDefinition<Schema, Output>, 'kind'>): OperationDefinition<Schema, Output>;
206
+ export declare function defineQuery<Schema extends z.ZodType, Output>(definition: Omit<OperationDefinition<Schema, Output>, 'kind'>): OperationDefinition<Schema, Output>;
207
+ /** Serializable runtime descriptor of an operation (for EC-140 changesets, docs, CLI). */
208
+ export interface OperationDescriptor {
209
+ readonly name: string;
210
+ readonly domain: string;
211
+ readonly kind: OperationKind;
212
+ readonly description: string;
213
+ /** The live Zod input schema (introspect / convert to JSON Schema as needed). */
214
+ readonly input: z.ZodType;
215
+ }
216
+ export declare function describeOperation(definition: AnyOperationDefinition): OperationDescriptor;
217
+ /** Everything the pipeline needs; built once by `createOperations`. */
218
+ export interface OperationsRuntime {
219
+ readonly adapter: PersistenceAdapter;
220
+ readonly events: OperationEventBus;
221
+ readonly authorize: AuthorizationHook;
222
+ readonly actor?: Principal;
223
+ }
224
+ /** Deterministic, size-capped input summary for lifecycle events. */
225
+ export declare function summarizeInput(input: unknown): string;
226
+ /**
227
+ * Execute one operation through the full pipeline:
228
+ * validate (Zod) → authorize (hook) → mutate via `PersistenceAdapter` → emit event.
229
+ * Always resolves to a typed result — never throws.
230
+ */
231
+ export declare function runOperation<Schema extends z.ZodType, Output>(runtime: OperationsRuntime, definition: OperationDefinition<Schema, Output>, rawInput: unknown): Promise<OperationResult<Output>>;
232
+ /** Execute an existentially-typed definition (the dynamic `execute(name, …)` path). */
233
+ export declare function runAnyOperation(runtime: OperationsRuntime, definition: AnyOperationDefinition, rawInput: unknown): Promise<OperationResult<unknown>>;
234
+ /**
235
+ * Bind a definition to a runtime as a plain async function. Inputs are typed for
236
+ * callers but still validated at runtime (dynamic callers go through `execute`).
237
+ */
238
+ export declare function bindOperation<Schema extends z.ZodType, Output>(runtime: OperationsRuntime, definition: OperationDefinition<Schema, Output>): (input: z.input<Schema>) => Promise<OperationResult<Output>>;
@@ -0,0 +1,269 @@
1
+ import { z } from 'zod';
2
+ import { PersistenceValidationError, RecordConflictError, RecordNotFoundError, isPersistenceError, } from '@elytracms/core/persistence';
3
+ import { ProjectConflictError, ProjectNotFoundError, ProjectValidationError, isProjectRepositoryError, } from '@elytracms/core/studio-core';
4
+ // --- Structured issues & error taxonomy (vision AD-7, reuses EC-029 categories) --
5
+ //
6
+ // Commands never throw raw errors: every failure mode is a plain-data
7
+ // `OperationError`, a discriminated union over the same five categories as the
8
+ // EC-029 repository taxonomy plus `unauthorized` for the permission chokepoint.
9
+ /** A structured issue carried by a validation failure (mirrors `PersistenceIssue`). */
10
+ export const operationIssueSchema = z.object({
11
+ code: z.string(),
12
+ message: z.string(),
13
+ path: z.array(z.union([z.string(), z.number()])).optional(),
14
+ /** Originating domain, e.g. 'graph' | 'cms' | 'settings'. */
15
+ domain: z.string().optional(),
16
+ });
17
+ export const operationErrorCodeSchema = z.enum([
18
+ 'validation',
19
+ 'not-found',
20
+ 'conflict',
21
+ 'backend-unavailable',
22
+ 'unauthorized',
23
+ 'unknown',
24
+ ]);
25
+ /** Constructors so call sites stay terse and the union shape stays in one place. */
26
+ export function validationError(message, issues) {
27
+ return { code: 'validation', message, issues };
28
+ }
29
+ export function notFoundError(entity, key, message) {
30
+ return { code: 'not-found', message: message ?? `No ${entity} found for “${key}”.`, entity, key };
31
+ }
32
+ export function conflictError(key, message) {
33
+ return {
34
+ code: 'conflict',
35
+ message: message ?? `“${key}” conflicts with an existing record.`,
36
+ key,
37
+ };
38
+ }
39
+ /** A strict-reference conflict (EC-173): blocked by the enumerated referrers. */
40
+ export function strictReferenceConflictError(key, message, referrers) {
41
+ return { code: 'conflict', message, key, referrers };
42
+ }
43
+ export function backendUnavailableError(message = 'The persistence backend is unavailable.') {
44
+ return { code: 'backend-unavailable', message };
45
+ }
46
+ export function unauthorizedError(operation, reason) {
47
+ return {
48
+ code: 'unauthorized',
49
+ message: reason ?? `Operation “${operation}” was denied by the authorization hook.`,
50
+ operation,
51
+ };
52
+ }
53
+ export function unknownError(message = 'An unknown operation failure occurred.') {
54
+ return { code: 'unknown', message };
55
+ }
56
+ /**
57
+ * Internal escape hatch for command bodies: throw a structured failure mid-mutate
58
+ * (e.g. "collection not found inside the loaded schema"). The pipeline catches it
59
+ * and returns the carried error — callers never see the exception.
60
+ */
61
+ export class OperationFailure extends Error {
62
+ error;
63
+ constructor(error) {
64
+ super(error.message);
65
+ this.error = error;
66
+ this.name = 'OperationFailure';
67
+ }
68
+ }
69
+ function mapPersistenceIssues(issues) {
70
+ return issues.map((issue) => ({
71
+ code: issue.code,
72
+ message: issue.message,
73
+ ...(issue.path ? { path: issue.path } : {}),
74
+ ...(issue.domain ? { domain: issue.domain } : {}),
75
+ }));
76
+ }
77
+ function mapStudioIssues(issues) {
78
+ return issues.map((issue) => ({
79
+ code: issue.code,
80
+ message: issue.message,
81
+ path: issue.path,
82
+ domain: 'settings',
83
+ }));
84
+ }
85
+ function mapZodIssues(error) {
86
+ return error.issues.map((issue) => ({
87
+ code: issue.code,
88
+ message: issue.message,
89
+ path: issue.path.map((p) => (typeof p === 'symbol' ? String(p) : p)),
90
+ }));
91
+ }
92
+ /**
93
+ * Normalize any thrown value (persistence taxonomy, project-repository taxonomy,
94
+ * `OperationFailure`, or anything else) onto the {@link OperationError} union.
95
+ */
96
+ export function toOperationError(value) {
97
+ if (value instanceof OperationFailure)
98
+ return value.error;
99
+ if (isPersistenceError(value)) {
100
+ if (value instanceof PersistenceValidationError) {
101
+ return validationError(value.message, mapPersistenceIssues(value.issues));
102
+ }
103
+ if (value instanceof RecordNotFoundError) {
104
+ return notFoundError(value.kind, value.key, value.message);
105
+ }
106
+ if (value instanceof RecordConflictError) {
107
+ return conflictError(value.key, value.message);
108
+ }
109
+ if (value.code === 'backend-unavailable')
110
+ return backendUnavailableError(value.message);
111
+ return unknownError(value.message);
112
+ }
113
+ if (isProjectRepositoryError(value)) {
114
+ if (value instanceof ProjectValidationError) {
115
+ return validationError(value.message, mapStudioIssues(value.issues));
116
+ }
117
+ if (value instanceof ProjectNotFoundError) {
118
+ return notFoundError('project', value.projectId, value.message);
119
+ }
120
+ if (value instanceof ProjectConflictError) {
121
+ return conflictError(value.conflictingSlug, value.message);
122
+ }
123
+ if (value.code === 'backend-unavailable')
124
+ return backendUnavailableError(value.message);
125
+ return unknownError(value.message);
126
+ }
127
+ if (value instanceof Error)
128
+ return unknownError(value.message);
129
+ return unknownError(String(value));
130
+ }
131
+ export function ok(value) {
132
+ return { ok: true, value };
133
+ }
134
+ export function err(error) {
135
+ return { ok: false, error };
136
+ }
137
+ /** Pass-through default until the EC-150 role model lands. */
138
+ export const allowAll = () => ({ allow: true });
139
+ export class OperationEventBus {
140
+ listeners = new Set();
141
+ sequence = 0;
142
+ /** Register a listener; returns an unsubscribe function. */
143
+ subscribe(listener) {
144
+ this.listeners.add(listener);
145
+ return () => this.unsubscribe(listener);
146
+ }
147
+ unsubscribe(listener) {
148
+ this.listeners.delete(listener);
149
+ }
150
+ /** Synchronously dispatch to all listeners. Listener failures are isolated. */
151
+ emit(event) {
152
+ this.sequence += 1;
153
+ const full = { ...event, sequence: this.sequence };
154
+ for (const listener of [...this.listeners]) {
155
+ try {
156
+ listener(full);
157
+ }
158
+ catch {
159
+ // A misbehaving subscriber (audit log, plugin) must never break the
160
+ // command pipeline or the other subscribers.
161
+ }
162
+ }
163
+ return full;
164
+ }
165
+ }
166
+ export function defineCommand(definition) {
167
+ return { ...definition, kind: 'command' };
168
+ }
169
+ export function defineQuery(definition) {
170
+ return { ...definition, kind: 'query' };
171
+ }
172
+ export function describeOperation(definition) {
173
+ return {
174
+ name: definition.name,
175
+ domain: definition.domain,
176
+ kind: definition.kind,
177
+ description: definition.description,
178
+ input: definition.input,
179
+ };
180
+ }
181
+ const SUMMARY_MAX_LENGTH = 160;
182
+ /** Deterministic, size-capped input summary for lifecycle events. */
183
+ export function summarizeInput(input) {
184
+ let text;
185
+ try {
186
+ text = JSON.stringify(input) ?? String(input);
187
+ }
188
+ catch {
189
+ text = String(input);
190
+ }
191
+ return text.length > SUMMARY_MAX_LENGTH ? `${text.slice(0, SUMMARY_MAX_LENGTH - 1)}…` : text;
192
+ }
193
+ async function runAny(runtime, definition, rawInput) {
194
+ const emit = (status, inputSummary, error) => {
195
+ runtime.events.emit({
196
+ operation: definition.name,
197
+ domain: definition.domain,
198
+ kind: definition.kind,
199
+ status,
200
+ inputSummary,
201
+ ...(error ? { error } : {}),
202
+ });
203
+ };
204
+ // 1. Validate (Zod) — reject with structured issues, never raw throws.
205
+ const parsed = definition.input.safeParse(rawInput);
206
+ if (!parsed.success) {
207
+ const error = validationError(`Input for “${definition.name}” is invalid.`, mapZodIssues(parsed.error));
208
+ emit('rejected', summarizeInput(rawInput), error);
209
+ return err(error);
210
+ }
211
+ const input = parsed.data;
212
+ const inputSummary = definition.summarize
213
+ ? definition.summarize(input)
214
+ : summarizeInput(input);
215
+ // 2. Authorize — the single permission chokepoint (pass-through until EC-150).
216
+ let decision;
217
+ try {
218
+ decision = await runtime.authorize({
219
+ operation: definition.name,
220
+ domain: definition.domain,
221
+ kind: definition.kind,
222
+ input,
223
+ ...(runtime.actor ? { actor: runtime.actor } : {}),
224
+ });
225
+ }
226
+ catch (cause) {
227
+ const error = toOperationError(cause);
228
+ emit('failed', inputSummary, error);
229
+ return err(error);
230
+ }
231
+ if (!decision.allow) {
232
+ const error = unauthorizedError(definition.name, decision.reason);
233
+ emit('denied', inputSummary, error);
234
+ return err(error);
235
+ }
236
+ // 3. Mutate via the persistence adapter; 4. emit the lifecycle event.
237
+ try {
238
+ const value = await definition.execute({ adapter: runtime.adapter, ...(runtime.actor ? { actor: runtime.actor } : {}) }, input);
239
+ emit('succeeded', inputSummary);
240
+ return ok(value);
241
+ }
242
+ catch (cause) {
243
+ const error = toOperationError(cause);
244
+ emit('failed', inputSummary, error);
245
+ return err(error);
246
+ }
247
+ }
248
+ /**
249
+ * Execute one operation through the full pipeline:
250
+ * validate (Zod) → authorize (hook) → mutate via `PersistenceAdapter` → emit event.
251
+ * Always resolves to a typed result — never throws.
252
+ */
253
+ export async function runOperation(runtime, definition, rawInput) {
254
+ // Safe: `runAny` only ever resolves with values produced by this definition's
255
+ // `execute`, whose return type is `Output`.
256
+ return runAny(runtime, definition, rawInput);
257
+ }
258
+ /** Execute an existentially-typed definition (the dynamic `execute(name, …)` path). */
259
+ export function runAnyOperation(runtime, definition, rawInput) {
260
+ return runAny(runtime, definition, rawInput);
261
+ }
262
+ /**
263
+ * Bind a definition to a runtime as a plain async function. Inputs are typed for
264
+ * callers but still validated at runtime (dynamic callers go through `execute`).
265
+ */
266
+ export function bindOperation(runtime, definition) {
267
+ return (input) => runOperation(runtime, definition, input);
268
+ }
269
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/operations/core.ts"],"names":[],"mappings":"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"}