@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,204 @@
1
+ import { documentKey, isAssetNode, isReferenceNode } from '@elytracms/core/cms-core';
2
+ /**
3
+ * Reference extraction (EC-155, vision AD-6 — reshaped by EC-277/AD-15).
4
+ *
5
+ * Self-describing content makes extraction a **schema-free, manifest-free walk** over
6
+ * the stored value: every reference-bearing node carries an explicit `type`
7
+ * discriminator (`{ type:'reference', … }`, `{ type:'asset', … }`), and composition
8
+ * nodes self-type via `componentId`. So a single pure function reads the value and
9
+ * needs neither the collection schema nor the component manifest — which is exactly
10
+ * what lets the same walk run in the studio, the CLI, or a Convex mutation (AD-6,
11
+ * "maintained on write, every writer caught by construction").
12
+ *
13
+ * The `kind` is derived from *walk context*: a reference/asset node in a normal value
14
+ * position → `relation-field`/`asset-field`; inside a rich-text mark → `rich-text-link`;
15
+ * in a rich-text node's attrs → `rich-text-node`; a composition node's `componentId` →
16
+ * `component-usage`. Bindings are out of scope (v1 is static-only; see EC-278): a
17
+ * binding has no self-typed value, so it contributes no reference.
18
+ */
19
+ // --- Shared helpers ----------------------------------------------------------------
20
+ /** Join `/`-separated path tokens (numbers are array indices). */
21
+ export function referencePath(...segments) {
22
+ return segments.map(String).join('/');
23
+ }
24
+ function documentTarget(ref) {
25
+ return { type: 'document', id: documentKey(ref) };
26
+ }
27
+ function asRecord(value) {
28
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
29
+ ? value
30
+ : undefined;
31
+ }
32
+ function isPlainRecord(value) {
33
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
34
+ }
35
+ /**
36
+ * The rich-text storage `node.type` for an embedded registry component (EC-189).
37
+ * Defined locally so persistence stays free of an `@elytracms/core/rich-text` import
38
+ * (mirroring the structural rich-text walk) — it matches `COMPONENT_EMBED_NODE_TYPE`
39
+ * in `@elytracms/core/rich-text` by value, guarded by a test.
40
+ */
41
+ const COMPONENT_EMBED_NODE_TYPE = 'componentEmbed';
42
+ /**
43
+ * Structurally detect a stored rich-text value (`{ version, doc: { type: 'doc' } }`,
44
+ * the EC-025 storage format). Plain strings / HTML / anything else yields nothing.
45
+ */
46
+ function asRichTextValue(value) {
47
+ const record = asRecord(value);
48
+ if (!record)
49
+ return undefined;
50
+ const doc = asRecord(record.doc);
51
+ if (!doc || doc.type !== 'doc')
52
+ return undefined;
53
+ return { doc };
54
+ }
55
+ /** Structural test for a stored composition node (id + componentId). */
56
+ function isComponentNodeShape(value) {
57
+ return isPlainRecord(value) && typeof value.id === 'string' && typeof value.componentId === 'string';
58
+ }
59
+ // --- The self-typed walk -----------------------------------------------------------
60
+ /** Emit the target a self-typed reference/asset node points at (or nothing). */
61
+ function selfTypedTarget(value) {
62
+ if (isReferenceNode(value))
63
+ return documentTarget(value);
64
+ if (isAssetNode(value))
65
+ return { type: 'asset', id: value.id };
66
+ return undefined;
67
+ }
68
+ /** Walk a composition node: component usage + self-typed static props + slots. */
69
+ function walkSelfTypedComponentNode(node, basePath, out) {
70
+ out.push({
71
+ path: referencePath(basePath, 'componentId'),
72
+ target: { type: 'component', id: node.componentId },
73
+ kind: 'component-usage',
74
+ });
75
+ for (const [name, prop] of Object.entries(node.props ?? {})) {
76
+ // Only STATIC props carry self-typed values (EC-190 picked refs); bindings parked.
77
+ if (prop.kind !== 'static')
78
+ continue;
79
+ walkSelfTypedValue(prop.value, referencePath(basePath, 'props', name), out);
80
+ }
81
+ for (const [slot, children] of Object.entries(node.slots ?? {})) {
82
+ children.forEach((child, index) => {
83
+ walkSelfTypedComponentNode(child, referencePath(basePath, 'slots', slot, index), out);
84
+ });
85
+ }
86
+ }
87
+ /** Walk a rich-text node (EC-025 storage format): self-typed link/inline refs + embeds. */
88
+ function walkSelfTypedRichTextNode(node, basePath, out) {
89
+ // Inline reference / asset-pinned nodes carry the envelope under `attrs.ref`.
90
+ const nodeTarget = selfTypedTarget(asRecord(node.attrs)?.ref);
91
+ if (nodeTarget)
92
+ out.push({ path: basePath, target: nodeTarget, kind: 'rich-text-node' });
93
+ // Link (and any reference-carrying) marks carry the envelope under `attrs.ref`.
94
+ if (Array.isArray(node.marks)) {
95
+ node.marks.forEach((markValue, markIndex) => {
96
+ const markTarget = selfTypedTarget(asRecord(asRecord(markValue)?.attrs)?.ref);
97
+ if (markTarget) {
98
+ out.push({
99
+ path: referencePath(basePath, 'marks', markIndex),
100
+ target: markTarget,
101
+ kind: 'rich-text-link',
102
+ });
103
+ }
104
+ });
105
+ }
106
+ // EC-189: a `componentEmbed` embeds a single ComponentNode — walked the same way.
107
+ if (node.type === COMPONENT_EMBED_NODE_TYPE) {
108
+ const embedded = asRecord(node.attrs)?.node;
109
+ if (isComponentNodeShape(embedded)) {
110
+ walkSelfTypedComponentNode(embedded, referencePath(basePath, 'attrs', 'node'), out);
111
+ }
112
+ }
113
+ if (Array.isArray(node.content)) {
114
+ node.content.forEach((childValue, childIndex) => {
115
+ const child = asRecord(childValue);
116
+ if (child)
117
+ walkSelfTypedRichTextNode(child, referencePath(basePath, 'content', childIndex), out);
118
+ });
119
+ }
120
+ }
121
+ /**
122
+ * Recursively walk any stored value, dispatching on the self-typed shape it carries.
123
+ * Order matters: the richer typed shapes (rich-text region, composition node, typed
124
+ * envelope) are tested before the generic array/object recursion so a node is never
125
+ * double-counted as both an envelope and a plain bag.
126
+ */
127
+ function walkSelfTypedValue(value, basePath, out) {
128
+ if (value === undefined || value === null)
129
+ return;
130
+ // A rich-text region (`{ doc: { type: 'doc' } }`) — walk its node tree.
131
+ const richText = asRichTextValue(value);
132
+ if (richText) {
133
+ walkSelfTypedRichTextNode(richText.doc, referencePath(basePath, 'doc'), out);
134
+ return;
135
+ }
136
+ // A composition node (`{ id, componentId }`).
137
+ if (isComponentNodeShape(value)) {
138
+ walkSelfTypedComponentNode(value, basePath, out);
139
+ return;
140
+ }
141
+ // A self-typed reference / asset envelope.
142
+ const target = selfTypedTarget(value);
143
+ if (target) {
144
+ out.push({
145
+ path: basePath,
146
+ target,
147
+ kind: target.type === 'asset' ? 'asset-field' : 'relation-field',
148
+ });
149
+ return;
150
+ }
151
+ // A list — recurse by index (`<path>/<i>`), preserving the indexed-path taxonomy.
152
+ if (Array.isArray(value)) {
153
+ value.forEach((item, index) => walkSelfTypedValue(item, referencePath(basePath, index), out));
154
+ return;
155
+ }
156
+ // A plain object / repeater item — recurse each key (`<path>/<key>`).
157
+ if (isPlainRecord(value)) {
158
+ for (const [key, child] of Object.entries(value)) {
159
+ walkSelfTypedValue(child, referencePath(basePath, key), out);
160
+ }
161
+ }
162
+ }
163
+ /**
164
+ * Extract every outbound reference held by one self-describing CMS document — no
165
+ * schema, no manifest, no binding context (EC-277). Walks `values/<field>` and
166
+ * `localized/<locale>/<field>` (just object keys), then descends each value by its
167
+ * self-typed shape. The returned order is walk order; callers that compare must sort
168
+ * (the index repository sorts via `compareReferenceEntries`), so this stays
169
+ * drift-tolerant: a reference in a field the schema no longer declares is still found.
170
+ */
171
+ export function extractReferences(document) {
172
+ const out = [];
173
+ for (const [field, value] of Object.entries(document.values ?? {})) {
174
+ walkSelfTypedValue(value, referencePath('values', field), out);
175
+ }
176
+ for (const locale of Object.keys(document.localized ?? {}).sort()) {
177
+ const localeValues = document.localized?.[locale] ?? {};
178
+ for (const [field, value] of Object.entries(localeValues)) {
179
+ walkSelfTypedValue(value, referencePath('localized', locale, field), out);
180
+ }
181
+ }
182
+ return out;
183
+ }
184
+ /**
185
+ * Extract every outbound reference held by one self-describing layout root (EC-277).
186
+ * The graph (EC-187) is layouts-only; pages live in the `page` collection's `body`.
187
+ */
188
+ export function extractLayoutReferences(layout) {
189
+ const refs = [];
190
+ walkSelfTypedComponentNode(layout.root, 'root', refs);
191
+ return refs.map((ref) => ({ source: { type: 'layout', id: layout.id }, ...ref }));
192
+ }
193
+ /**
194
+ * Schema-free, manifest-free graph extraction (EC-277): component usage + self-typed
195
+ * static props across every layout, in deterministic (id-sorted) order.
196
+ */
197
+ export function extractSelfTypedGraphReferences(graph) {
198
+ const entries = [];
199
+ for (const layout of [...graph.layouts].sort((a, b) => (a.id < b.id ? -1 : 1))) {
200
+ entries.push(...extractLayoutReferences(layout));
201
+ }
202
+ return entries;
203
+ }
204
+ //# sourceMappingURL=reference-extraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-extraction.js","sourceRoot":"","sources":["../../src/persistence/reference-extraction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { DocumentRef } from '@elytracms/core/cms-core';
2
+ import type { PersistenceAdapter } from './adapter';
3
+ import type { ReferenceEntryRecord, ReferenceSource, ReferenceVariant } from './references';
4
+ /**
5
+ * Reference-index maintenance (EC-155): recompute-on-save routines shared by
6
+ * the operations-layer event subscriber (`@elytracms/core/operations` `references.ts`)
7
+ * and the backfill command. All writes are replace-all-for-source, so they are
8
+ * idempotent and never leave stale entries.
9
+ *
10
+ * Variant semantics:
11
+ * - **Documents** — the editable content *is* the draft variant, so a document
12
+ * always (re)indexes its draft entries; its published entries exist only
13
+ * while its version pointer (`publishedVersion`) is set. A draft-only document referencing a
14
+ * published target is therefore queryable as exactly that (the Sanity
15
+ * "hidden draft reference" failure case, vision AD-6).
16
+ * - **Graphs** — draft entries come from the latest revision; published entries
17
+ * from the revisions pinned live by the publishing states (union across
18
+ * environments, deterministic order).
19
+ */
20
+ /**
21
+ * Options for the reindex routines. EC-277: extraction is now a schema-free,
22
+ * manifest-free walk over self-describing content, so no binding-source resolver or
23
+ * manifest lookup is threaded — the interface is retained (empty) as a stable seam
24
+ * for future per-reindex options.
25
+ */
26
+ export type ReferenceIndexingOptions = Record<never, never>;
27
+ /** The index source entity for a document. */
28
+ export declare function documentReferenceSource(ref: DocumentRef): ReferenceSource;
29
+ /**
30
+ * Recompute the index entries held by one document (both variants). A missing
31
+ * document (deleted) simply drops all of its entries.
32
+ */
33
+ export declare function reindexDocumentReferences(adapter: PersistenceAdapter, projectId: string, ref: DocumentRef, options?: ReferenceIndexingOptions): Promise<void>;
34
+ /** Recompute the entries of every document in a project (deterministic order). */
35
+ export declare function reindexAllDocumentReferences(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions): Promise<void>;
36
+ /** Recompute the draft graph entries (pages + layouts) from the latest revision. */
37
+ export declare function reindexGraphDraftReferences(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions): Promise<void>;
38
+ /**
39
+ * Recompute the published graph entries from the revision pinned live by the
40
+ * deployment's publishing state (unpublishing drops all published graph
41
+ * entries). Single-environment (EC-179): one deployment pins one revision.
42
+ */
43
+ export declare function reindexGraphPublishedReferences(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions): Promise<void>;
44
+ /** Recompute both graph variants (a graph save can move what "latest" means). */
45
+ export declare function reindexGraphReferences(adapter: PersistenceAdapter, projectId: string, variant: ReferenceVariant | 'both', options?: ReferenceIndexingOptions): Promise<void>;
46
+ /**
47
+ * Backfill: rebuild the complete reference index of a project from its current
48
+ * data — every document (both variants) and the graph (draft + published).
49
+ * Deterministic and idempotent: running it twice yields identical entries.
50
+ * Returns the full resulting index for inspection/verification.
51
+ */
52
+ export declare function backfillReferenceIndex(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions): Promise<ReferenceEntryRecord[]>;
53
+ /**
54
+ * Ensure the project's reference index has been backfilled at least once
55
+ * (EC-269). The index is maintained on write, so the (clear + rebuild) backfill
56
+ * is only needed to *seed* a never-built index — a fresh import/seed. A persisted
57
+ * marker records completion; when present this is a single read with **zero
58
+ * mutations**, so opening the References panel no longer rewrites the whole index
59
+ * every session (the normal Convex case — the EC-233 import already backfilled).
60
+ *
61
+ * Pass `force: true` to ignore the marker and rebuild unconditionally (the
62
+ * explicit "rebuild index" maintenance path).
63
+ */
64
+ export declare function ensureReferenceIndexBackfilled(adapter: PersistenceAdapter, projectId: string, options?: ReferenceIndexingOptions & {
65
+ force?: boolean;
66
+ }): Promise<{
67
+ backfilled: boolean;
68
+ }>;
@@ -0,0 +1,112 @@
1
+ import { documentKey } from '@elytracms/core/cms-core';
2
+ import { extractReferences, extractSelfTypedGraphReferences } from './reference-extraction';
3
+ /** The index source entity for a document. */
4
+ export function documentReferenceSource(ref) {
5
+ return { type: 'document', id: documentKey(ref) };
6
+ }
7
+ /**
8
+ * Recompute the index entries held by one document (both variants). A missing
9
+ * document (deleted) simply drops all of its entries.
10
+ */
11
+ export async function reindexDocumentReferences(adapter, projectId, ref, options = {}) {
12
+ const source = documentReferenceSource(ref);
13
+ const record = await adapter.cms.findDocument(projectId, ref);
14
+ if (!record) {
15
+ await adapter.references.removeForSource(projectId, source);
16
+ return;
17
+ }
18
+ // EC-277: self-describing content — extraction is a schema-free, manifest-free walk
19
+ // over the stored value (no `findSchema`, no binding/manifest context). Static
20
+ // relation/asset props inside a `blocks` composition self-describe, so they are
21
+ // found without the manifest the old field-type-driven extractor required.
22
+ const references = extractReferences(record.document);
23
+ await adapter.references.replaceForSource(projectId, 'draft', source, references);
24
+ // EC-224: a document is published when its version pointer (`publishedVersion`)
25
+ // is set — mirrors delivery and the EC-173 integrity guard
26
+ // `collectStrictReferrers`. A pointer-published doc keeps its live row as the
27
+ // working draft, so published reference entries are extracted from that live
28
+ // draft (matching the guard's draft-content model), not the pinned snapshot;
29
+ // revisit only if published-reference resolution must mirror the snapshot exactly.
30
+ const referrerPublished = record.publishedVersion !== undefined;
31
+ await adapter.references.replaceForSource(projectId, 'published', source, referrerPublished ? references : []);
32
+ }
33
+ /** Recompute the entries of every document in a project (deterministic order). */
34
+ export async function reindexAllDocumentReferences(adapter, projectId, options = {}) {
35
+ const records = await adapter.cms.listDocuments(projectId);
36
+ for (const record of records) {
37
+ await reindexDocumentReferences(adapter, projectId, { collection: record.document.collection, id: record.document.id }, options);
38
+ }
39
+ }
40
+ /** Recompute the draft graph entries (pages + layouts) from the latest revision. */
41
+ export async function reindexGraphDraftReferences(adapter, projectId, options = {}) {
42
+ const hasGraph = await adapter.graphs.hasGraph(projectId);
43
+ const entries = hasGraph
44
+ ? extractSelfTypedGraphReferences((await adapter.graphs.getLatest(projectId)).graph)
45
+ : [];
46
+ await adapter.references.replaceForSourceTypes(projectId, 'draft', ['page', 'layout'], entries);
47
+ }
48
+ /**
49
+ * Recompute the published graph entries from the revision pinned live by the
50
+ * deployment's publishing state (unpublishing drops all published graph
51
+ * entries). Single-environment (EC-179): one deployment pins one revision.
52
+ */
53
+ export async function reindexGraphPublishedReferences(adapter, projectId, options = {}) {
54
+ const state = await adapter.publishing.findState(projectId);
55
+ const revisions = state?.status === 'published' && state.publishedRevision !== undefined
56
+ ? [state.publishedRevision]
57
+ : [];
58
+ const entries = [];
59
+ for (const revision of revisions) {
60
+ const loaded = await adapter.graphs.getRevision(projectId, revision);
61
+ entries.push(...extractSelfTypedGraphReferences(loaded.graph));
62
+ }
63
+ await adapter.references.replaceForSourceTypes(projectId, 'published', ['page', 'layout'], entries);
64
+ }
65
+ /** Recompute both graph variants (a graph save can move what "latest" means). */
66
+ export async function reindexGraphReferences(adapter, projectId, variant, options = {}) {
67
+ if (variant === 'draft' || variant === 'both') {
68
+ await reindexGraphDraftReferences(adapter, projectId, options);
69
+ }
70
+ if (variant === 'published' || variant === 'both') {
71
+ await reindexGraphPublishedReferences(adapter, projectId, options);
72
+ }
73
+ }
74
+ /**
75
+ * Backfill: rebuild the complete reference index of a project from its current
76
+ * data — every document (both variants) and the graph (draft + published).
77
+ * Deterministic and idempotent: running it twice yields identical entries.
78
+ * Returns the full resulting index for inspection/verification.
79
+ */
80
+ export async function backfillReferenceIndex(adapter, projectId, options = {}) {
81
+ await adapter.references.clearProject(projectId);
82
+ await reindexAllDocumentReferences(adapter, projectId, options);
83
+ await reindexGraphReferences(adapter, projectId, 'both', options);
84
+ const records = await adapter.references.listEntries(projectId);
85
+ // EC-269: record completion so the read path can skip the rebuild next time.
86
+ // `clearProject` above cleared any prior marker, so it is set exactly once the
87
+ // rebuild has fully settled — never present over a partial index.
88
+ await adapter.references.setBuildMarker(projectId, { entryCount: records.length });
89
+ return records;
90
+ }
91
+ /**
92
+ * Ensure the project's reference index has been backfilled at least once
93
+ * (EC-269). The index is maintained on write, so the (clear + rebuild) backfill
94
+ * is only needed to *seed* a never-built index — a fresh import/seed. A persisted
95
+ * marker records completion; when present this is a single read with **zero
96
+ * mutations**, so opening the References panel no longer rewrites the whole index
97
+ * every session (the normal Convex case — the EC-233 import already backfilled).
98
+ *
99
+ * Pass `force: true` to ignore the marker and rebuild unconditionally (the
100
+ * explicit "rebuild index" maintenance path).
101
+ */
102
+ export async function ensureReferenceIndexBackfilled(adapter, projectId, options = {}) {
103
+ const { force, ...indexing } = options;
104
+ if (!force) {
105
+ const marker = await adapter.references.getBuildMarker(projectId);
106
+ if (marker)
107
+ return { backfilled: false };
108
+ }
109
+ await backfillReferenceIndex(adapter, projectId, indexing);
110
+ return { backfilled: true };
111
+ }
112
+ //# sourceMappingURL=reference-indexing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-indexing.js","sourceRoot":"","sources":["../../src/persistence/reference-indexing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAA;AAiC3F,8CAA8C;AAC9C,MAAM,UAAU,uBAAuB,CAAC,GAAgB;IACtD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAA;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAA2B,EAC3B,SAAiB,EACjB,GAAgB,EAChB,UAAoC,EAAE;IAEtC,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC3D,OAAM;IACR,CAAC;IACD,oFAAoF;IACpF,+EAA+E;IAC/E,gFAAgF;IAChF,2EAA2E;IAC3E,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACrD,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IACjF,gFAAgF;IAChF,2DAA2D;IAC3D,8EAA8E;IAC9E,6EAA6E;IAC7E,6EAA6E;IAC7E,mFAAmF;IACnF,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAA;IAC/D,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,CACvC,SAAS,EACT,WAAW,EACX,MAAM,EACN,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CACpC,CAAA;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAA2B,EAC3B,SAAiB,EACjB,UAAoC,EAAE;IAEtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IAC1D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,yBAAyB,CAC7B,OAAO,EACP,SAAS,EACT,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAClE,OAAO,CACR,CAAA;IACH,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAA2B,EAC3B,SAAiB,EACjB,UAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACzD,MAAM,OAAO,GAAqB,QAAQ;QACxC,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QACpF,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;AACjG,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAA2B,EAC3B,SAAiB,EACjB,UAAoC,EAAE;IAEtC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC3D,MAAM,SAAS,GACb,KAAK,EAAE,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS;QACpE,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC3B,CAAC,CAAC,EAAE,CAAA;IACR,MAAM,OAAO,GAAqB,EAAE,CAAA;IACpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACpE,OAAO,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAC5C,SAAS,EACT,WAAW,EACX,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClB,OAAO,CACR,CAAA;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA2B,EAC3B,SAAiB,EACjB,OAAkC,EAClC,UAAoC,EAAE;IAEtC,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9C,MAAM,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAClD,MAAM,+BAA+B,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA2B,EAC3B,SAAiB,EACjB,UAAoC,EAAE;IAEtC,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/D,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACjE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAC/D,6EAA6E;IAC7E,+EAA+E;IAC/E,kEAAkE;IAClE,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAClF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAA2B,EAC3B,SAAiB,EACjB,UAA0D,EAAE;IAE5D,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAA;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QACjE,IAAI,MAAM;YAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;IAC1C,CAAC;IACD,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC1D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;AAC7B,CAAC"}