canopycms 0.0.62 → 0.0.64

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 (1204) hide show
  1. package/README.md +153 -19
  2. package/dist/ai/generate.d.ts +4 -5
  3. package/dist/ai/generate.js +0 -1
  4. package/dist/ai/handler.d.ts +3 -4
  5. package/dist/ai/handler.js +0 -1
  6. package/dist/ai/index.d.ts +15 -7
  7. package/dist/ai/index.js +9 -1
  8. package/dist/ai/json-to-markdown.d.ts +1 -2
  9. package/dist/ai/json-to-markdown.js +11 -2
  10. package/dist/ai/resolve-branch.d.ts +1 -2
  11. package/dist/ai/resolve-branch.js +0 -1
  12. package/dist/ai/strip-mdx.d.ts +0 -1
  13. package/dist/ai/strip-mdx.js +0 -1
  14. package/dist/ai/to-plain-text.d.ts +60 -0
  15. package/dist/ai/to-plain-text.js +301 -0
  16. package/dist/ai/transform-components.d.ts +1 -2
  17. package/dist/ai/transform-components.js +70 -6
  18. package/dist/ai/types.d.ts +1 -2
  19. package/dist/ai/types.js +0 -1
  20. package/dist/api/admin-branch-health.d.ts +7 -8
  21. package/dist/api/admin-branch-health.js +0 -1
  22. package/dist/api/admin.d.ts +16 -17
  23. package/dist/api/admin.js +0 -1
  24. package/dist/api/assets.d.ts +8 -9
  25. package/dist/api/assets.js +0 -1
  26. package/dist/api/branch-merge.d.ts +3 -4
  27. package/dist/api/branch-merge.js +0 -1
  28. package/dist/api/branch-review.d.ts +5 -6
  29. package/dist/api/branch-review.js +0 -1
  30. package/dist/api/branch-status.d.ts +15 -16
  31. package/dist/api/branch-status.js +0 -1
  32. package/dist/api/branch-withdraw.d.ts +3 -4
  33. package/dist/api/branch-withdraw.js +0 -1
  34. package/dist/api/branch.d.ts +13 -14
  35. package/dist/api/branch.js +0 -1
  36. package/dist/api/client.d.ts +14 -15
  37. package/dist/api/client.js +0 -1
  38. package/dist/api/comments.d.ts +11 -12
  39. package/dist/api/comments.js +0 -1
  40. package/dist/api/content.d.ts +22 -24
  41. package/dist/api/content.js +132 -18
  42. package/dist/api/entries-constants.d.ts +0 -1
  43. package/dist/api/entries-constants.js +0 -1
  44. package/dist/api/entries.d.ts +12 -13
  45. package/dist/api/entries.js +12 -2
  46. package/dist/api/github-sync.d.ts +2 -3
  47. package/dist/api/github-sync.js +0 -1
  48. package/dist/api/groups.d.ts +6 -7
  49. package/dist/api/groups.js +0 -1
  50. package/dist/api/guards.d.ts +2 -3
  51. package/dist/api/guards.js +0 -1
  52. package/dist/api/index.d.ts +18 -19
  53. package/dist/api/index.js +0 -1
  54. package/dist/api/permissions.d.ts +10 -11
  55. package/dist/api/permissions.js +0 -1
  56. package/dist/api/reference-options.d.ts +3 -4
  57. package/dist/api/reference-options.js +0 -1
  58. package/dist/api/request-body-hash.d.ts +0 -1
  59. package/dist/api/request-body-hash.js +0 -1
  60. package/dist/api/resolve-references.d.ts +6 -7
  61. package/dist/api/resolve-references.js +24 -6
  62. package/dist/api/route-builder.d.ts +2 -3
  63. package/dist/api/route-builder.js +0 -1
  64. package/dist/api/schema.d.ts +43 -44
  65. package/dist/api/schema.js +0 -1
  66. package/dist/api/settings-helpers.d.ts +2 -3
  67. package/dist/api/settings-helpers.js +0 -1
  68. package/dist/api/types.d.ts +6 -7
  69. package/dist/api/types.js +0 -1
  70. package/dist/api/user.d.ts +2 -3
  71. package/dist/api/user.js +0 -1
  72. package/dist/api/validators.d.ts +3 -4
  73. package/dist/api/validators.js +0 -1
  74. package/dist/assets/asset-prefixes.d.ts +1 -2
  75. package/dist/assets/asset-prefixes.js +0 -1
  76. package/dist/assets/asset-src.d.ts +17 -5
  77. package/dist/assets/asset-src.js +15 -3
  78. package/dist/assets/asset-url.d.ts +28 -7
  79. package/dist/assets/asset-url.js +20 -15
  80. package/dist/assets/factory.d.ts +2 -3
  81. package/dist/assets/factory.js +0 -2
  82. package/dist/assets/finalize.d.ts +2 -3
  83. package/dist/assets/finalize.js +0 -1
  84. package/dist/assets/index.d.ts +12 -13
  85. package/dist/assets/index.js +0 -1
  86. package/dist/assets/keys.d.ts +1 -2
  87. package/dist/assets/keys.js +0 -1
  88. package/dist/assets/pipeline.d.ts +1 -2
  89. package/dist/assets/pipeline.js +0 -1
  90. package/dist/assets/store-local.d.ts +1 -2
  91. package/dist/assets/store-local.js +0 -1
  92. package/dist/assets/store-s3.d.ts +2 -4
  93. package/dist/assets/store-s3.js +0 -1
  94. package/dist/assets/svg-sanitizer.d.ts +0 -1
  95. package/dist/assets/svg-sanitizer.js +0 -1
  96. package/dist/assets/transform-directives.d.ts +0 -1
  97. package/dist/assets/transform-directives.js +0 -1
  98. package/dist/assets/transform.d.ts +1 -2
  99. package/dist/assets/transform.js +0 -1
  100. package/dist/assets/types.d.ts +0 -1
  101. package/dist/assets/types.js +0 -1
  102. package/dist/auth/cache.d.ts +2 -3
  103. package/dist/auth/cache.js +0 -1
  104. package/dist/auth/caching-auth-plugin.d.ts +3 -4
  105. package/dist/auth/caching-auth-plugin.js +0 -1
  106. package/dist/auth/context-helpers.d.ts +1 -2
  107. package/dist/auth/context-helpers.js +0 -1
  108. package/dist/auth/file-based-auth-cache.d.ts +3 -4
  109. package/dist/auth/file-based-auth-cache.js +0 -1
  110. package/dist/auth/index.d.ts +6 -7
  111. package/dist/auth/index.js +0 -1
  112. package/dist/auth/plugin.d.ts +3 -4
  113. package/dist/auth/plugin.js +0 -1
  114. package/dist/auth/types.d.ts +1 -2
  115. package/dist/auth/types.js +0 -1
  116. package/dist/authorization/branch.d.ts +58 -7
  117. package/dist/authorization/branch.js +55 -10
  118. package/dist/authorization/content.d.ts +6 -7
  119. package/dist/authorization/content.js +0 -1
  120. package/dist/authorization/groups/index.d.ts +2 -3
  121. package/dist/authorization/groups/index.js +0 -1
  122. package/dist/authorization/groups/loader.d.ts +3 -4
  123. package/dist/authorization/groups/loader.js +0 -1
  124. package/dist/authorization/groups/schema.d.ts +1 -2
  125. package/dist/authorization/groups/schema.js +0 -1
  126. package/dist/authorization/helpers.d.ts +0 -1
  127. package/dist/authorization/helpers.js +0 -1
  128. package/dist/authorization/index.d.ts +11 -12
  129. package/dist/authorization/index.js +0 -1
  130. package/dist/authorization/path.d.ts +4 -5
  131. package/dist/authorization/path.js +0 -1
  132. package/dist/authorization/permissions/index.d.ts +2 -3
  133. package/dist/authorization/permissions/index.js +0 -1
  134. package/dist/authorization/permissions/loader.d.ts +4 -5
  135. package/dist/authorization/permissions/loader.js +0 -1
  136. package/dist/authorization/permissions/schema.d.ts +2 -3
  137. package/dist/authorization/permissions/schema.js +0 -1
  138. package/dist/authorization/protected-branch.d.ts +2 -3
  139. package/dist/authorization/protected-branch.js +0 -1
  140. package/dist/authorization/settings-file-store.d.ts +1 -2
  141. package/dist/authorization/settings-file-store.js +0 -1
  142. package/dist/authorization/types.d.ts +7 -8
  143. package/dist/authorization/types.js +0 -1
  144. package/dist/authorization/validation.d.ts +1 -2
  145. package/dist/authorization/validation.js +0 -1
  146. package/dist/branch-health.d.ts +2 -3
  147. package/dist/branch-health.js +0 -1
  148. package/dist/branch-metadata.d.ts +2 -3
  149. package/dist/branch-metadata.js +0 -1
  150. package/dist/branch-registry.d.ts +1 -2
  151. package/dist/branch-registry.js +0 -1
  152. package/dist/branch-schema-cache.d.ts +4 -5
  153. package/dist/branch-schema-cache.js +0 -1
  154. package/dist/branch-workspace.d.ts +4 -5
  155. package/dist/branch-workspace.js +0 -1
  156. package/dist/build/generate-ai-content.d.ts +21 -5
  157. package/dist/build/generate-ai-content.js +98 -6
  158. package/dist/build/index.d.ts +2 -3
  159. package/dist/build/index.js +0 -1
  160. package/dist/build-canopy.d.ts +48 -0
  161. package/dist/build-canopy.js +50 -0
  162. package/dist/build-mode.d.ts +1 -2
  163. package/dist/build-mode.js +0 -1
  164. package/dist/cli/cli.d.ts +1 -2
  165. package/dist/cli/cli.js +1192 -495
  166. package/dist/cli/generate-ai-content.d.ts +0 -1
  167. package/dist/cli/generate-ai-content.js +1062 -370
  168. package/dist/cli/init.d.ts +1 -2
  169. package/dist/cli/init.js +12 -2
  170. package/dist/cli/migrate.d.ts +5 -3
  171. package/dist/cli/migrate.js +5 -3
  172. package/dist/cli/project-detect.d.ts +5 -2
  173. package/dist/cli/project-detect.js +5 -1
  174. package/dist/cli/project-root.d.ts +0 -1
  175. package/dist/cli/project-root.js +0 -1
  176. package/dist/cli/sync.d.ts +0 -1
  177. package/dist/cli/sync.js +0 -1
  178. package/dist/cli/template-files/canopycms.config.ts.template +18 -1
  179. package/dist/cli/template-files/deploy-cms.yml.template +8 -6
  180. package/dist/cli/templates.d.ts +0 -1
  181. package/dist/cli/templates.js +0 -1
  182. package/dist/client.d.ts +13 -14
  183. package/dist/client.js +0 -1
  184. package/dist/comment-store.d.ts +0 -1
  185. package/dist/comment-store.js +0 -1
  186. package/dist/config/flatten.d.ts +1 -2
  187. package/dist/config/flatten.js +0 -1
  188. package/dist/config/helpers.d.ts +3 -4
  189. package/dist/config/helpers.js +2 -2
  190. package/dist/config/index.d.ts +10 -11
  191. package/dist/config/index.js +0 -1
  192. package/dist/config/schemas/collection.d.ts +0 -1
  193. package/dist/config/schemas/collection.js +0 -1
  194. package/dist/config/schemas/config.d.ts +7 -4
  195. package/dist/config/schemas/config.js +12 -1
  196. package/dist/config/schemas/field.d.ts +3 -1
  197. package/dist/config/schemas/field.js +5 -1
  198. package/dist/config/schemas/media.d.ts +0 -1
  199. package/dist/config/schemas/media.js +0 -1
  200. package/dist/config/schemas/permissions.d.ts +0 -1
  201. package/dist/config/schemas/permissions.js +0 -1
  202. package/dist/config/types.d.ts +55 -9
  203. package/dist/config/types.js +0 -1
  204. package/dist/config/validation.d.ts +1 -2
  205. package/dist/config/validation.js +0 -1
  206. package/dist/config.d.ts +2 -3
  207. package/dist/config.js +0 -1
  208. package/dist/content-id-index.d.ts +1 -2
  209. package/dist/content-id-index.js +0 -1
  210. package/dist/content-index-generation.d.ts +0 -1
  211. package/dist/content-index-generation.js +0 -1
  212. package/dist/content-index-registry.d.ts +0 -1
  213. package/dist/content-index-registry.js +0 -1
  214. package/dist/content-listing.d.ts +137 -16
  215. package/dist/content-listing.js +175 -41
  216. package/dist/content-reader.d.ts +44 -8
  217. package/dist/content-reader.js +39 -7
  218. package/dist/content-store.d.ts +147 -7
  219. package/dist/content-store.js +294 -22
  220. package/dist/content-tree.d.ts +44 -5
  221. package/dist/content-tree.js +47 -11
  222. package/dist/context.d.ts +38 -15
  223. package/dist/context.js +55 -5
  224. package/dist/dev-content-watcher.d.ts +2 -3
  225. package/dist/dev-content-watcher.js +0 -1
  226. package/dist/editor/BranchManager.d.ts +4 -5
  227. package/dist/editor/BranchManager.js +0 -1
  228. package/dist/editor/CanopyEditor.d.ts +2 -3
  229. package/dist/editor/CanopyEditor.js +1 -2
  230. package/dist/editor/CanopyEditorPage.d.ts +2 -3
  231. package/dist/editor/CanopyEditorPage.js +0 -1
  232. package/dist/editor/CommentsPanel.d.ts +2 -3
  233. package/dist/editor/CommentsPanel.js +0 -1
  234. package/dist/editor/Editor.d.ts +13 -8
  235. package/dist/editor/Editor.js +4 -5
  236. package/dist/editor/EditorPanes.d.ts +0 -1
  237. package/dist/editor/EditorPanes.js +0 -1
  238. package/dist/editor/EntryNavigator.d.ts +1 -2
  239. package/dist/editor/EntryNavigator.js +0 -1
  240. package/dist/editor/FormRenderer.d.ts +2 -3
  241. package/dist/editor/FormRenderer.js +22 -3
  242. package/dist/editor/GroupManager.d.ts +2 -3
  243. package/dist/editor/GroupManager.js +0 -1
  244. package/dist/editor/PermissionManager.d.ts +2 -3
  245. package/dist/editor/PermissionManager.js +0 -1
  246. package/dist/editor/admin/SystemHealthPanel.d.ts +0 -1
  247. package/dist/editor/admin/SystemHealthPanel.js +0 -1
  248. package/dist/editor/admin/useSystemHealth.d.ts +2 -3
  249. package/dist/editor/admin/useSystemHealth.js +0 -1
  250. package/dist/editor/canopy-path.d.ts +0 -1
  251. package/dist/editor/canopy-path.js +0 -1
  252. package/dist/editor/client-reference-resolver.d.ts +13 -4
  253. package/dist/editor/client-reference-resolver.js +18 -8
  254. package/dist/editor/comments/BranchComments.d.ts +2 -3
  255. package/dist/editor/comments/BranchComments.js +0 -1
  256. package/dist/editor/comments/EntryComments.d.ts +1 -2
  257. package/dist/editor/comments/EntryComments.js +0 -1
  258. package/dist/editor/comments/FieldWrapper.d.ts +1 -2
  259. package/dist/editor/comments/FieldWrapper.js +0 -1
  260. package/dist/editor/comments/InlineCommentThread.d.ts +2 -3
  261. package/dist/editor/comments/InlineCommentThread.js +0 -1
  262. package/dist/editor/comments/ThreadCarousel.d.ts +2 -3
  263. package/dist/editor/comments/ThreadCarousel.js +0 -1
  264. package/dist/editor/components/ConfirmDeleteModal.d.ts +0 -1
  265. package/dist/editor/components/ConfirmDeleteModal.js +0 -1
  266. package/dist/editor/components/EditorFooter.d.ts +0 -1
  267. package/dist/editor/components/EditorFooter.js +0 -1
  268. package/dist/editor/components/EditorHeader.d.ts +4 -5
  269. package/dist/editor/components/EditorHeader.js +0 -1
  270. package/dist/editor/components/EditorSidebar.d.ts +1 -2
  271. package/dist/editor/components/EditorSidebar.js +0 -1
  272. package/dist/editor/components/EntryCreateModal.d.ts +0 -1
  273. package/dist/editor/components/EntryCreateModal.js +21 -10
  274. package/dist/editor/components/RenameEntryModal.d.ts +0 -1
  275. package/dist/editor/components/RenameEntryModal.js +0 -1
  276. package/dist/editor/components/UserBadge.d.ts +2 -3
  277. package/dist/editor/components/UserBadge.js +0 -1
  278. package/dist/editor/components/index.d.ts +3 -4
  279. package/dist/editor/components/index.js +0 -1
  280. package/dist/editor/context/ApiClientContext.d.ts +9 -3
  281. package/dist/editor/context/ApiClientContext.js +8 -4
  282. package/dist/editor/context/AssetContext.d.ts +26 -2
  283. package/dist/editor/context/AssetContext.js +23 -3
  284. package/dist/editor/context/EditorStateContext.d.ts +1 -2
  285. package/dist/editor/context/EditorStateContext.js +0 -1
  286. package/dist/editor/context/SWRProvider.d.ts +0 -1
  287. package/dist/editor/context/SWRProvider.js +0 -1
  288. package/dist/editor/context/index.d.ts +4 -5
  289. package/dist/editor/context/index.js +0 -1
  290. package/dist/editor/editor-config.d.ts +2 -3
  291. package/dist/editor/editor-config.js +0 -1
  292. package/dist/editor/editor-utils.d.ts +22 -10
  293. package/dist/editor/editor-utils.js +41 -10
  294. package/dist/editor/fields/BlockField.d.ts +1 -2
  295. package/dist/editor/fields/BlockField.js +0 -1
  296. package/dist/editor/fields/CodeField.d.ts +0 -1
  297. package/dist/editor/fields/CodeField.js +0 -1
  298. package/dist/editor/fields/DateTimeField.d.ts +0 -1
  299. package/dist/editor/fields/DateTimeField.js +0 -1
  300. package/dist/editor/fields/ImageField.d.ts +1 -2
  301. package/dist/editor/fields/ImageField.js +0 -1
  302. package/dist/editor/fields/InlineGroupField.d.ts +2 -3
  303. package/dist/editor/fields/InlineGroupField.js +0 -1
  304. package/dist/editor/fields/MarkdownField.d.ts +0 -1
  305. package/dist/editor/fields/MarkdownField.js +0 -1
  306. package/dist/editor/fields/MdxImageDialog.d.ts +0 -1
  307. package/dist/editor/fields/MdxImageDialog.js +0 -1
  308. package/dist/editor/fields/NumberField.d.ts +0 -1
  309. package/dist/editor/fields/NumberField.js +0 -1
  310. package/dist/editor/fields/NumberListField.d.ts +0 -1
  311. package/dist/editor/fields/NumberListField.js +0 -1
  312. package/dist/editor/fields/ObjectField.d.ts +11 -2
  313. package/dist/editor/fields/ObjectField.js +3 -4
  314. package/dist/editor/fields/ReferenceField.d.ts +0 -1
  315. package/dist/editor/fields/ReferenceField.js +8 -3
  316. package/dist/editor/fields/SelectField.d.ts +0 -1
  317. package/dist/editor/fields/SelectField.js +0 -1
  318. package/dist/editor/fields/StringListField.d.ts +0 -1
  319. package/dist/editor/fields/StringListField.js +0 -1
  320. package/dist/editor/fields/TextField.d.ts +0 -1
  321. package/dist/editor/fields/TextField.js +0 -1
  322. package/dist/editor/fields/ToggleField.d.ts +0 -1
  323. package/dist/editor/fields/ToggleField.js +0 -1
  324. package/dist/editor/fields/entry-link/EntryLinkContext.d.ts +1 -2
  325. package/dist/editor/fields/entry-link/EntryLinkContext.js +0 -1
  326. package/dist/editor/fields/entry-link/InsertEntryLink.d.ts +0 -1
  327. package/dist/editor/fields/entry-link/InsertEntryLink.js +0 -1
  328. package/dist/editor/fields/entry-link/index.d.ts +2 -3
  329. package/dist/editor/fields/entry-link/index.js +0 -1
  330. package/dist/editor/group-manager/ExternalGroupsTab.d.ts +1 -2
  331. package/dist/editor/group-manager/ExternalGroupsTab.js +0 -1
  332. package/dist/editor/group-manager/GroupCard.d.ts +1 -2
  333. package/dist/editor/group-manager/GroupCard.js +0 -1
  334. package/dist/editor/group-manager/GroupForm.d.ts +1 -2
  335. package/dist/editor/group-manager/GroupForm.js +0 -1
  336. package/dist/editor/group-manager/InternalGroupsTab.d.ts +1 -2
  337. package/dist/editor/group-manager/InternalGroupsTab.js +0 -1
  338. package/dist/editor/group-manager/MemberList.d.ts +1 -2
  339. package/dist/editor/group-manager/MemberList.js +0 -1
  340. package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts +1 -2
  341. package/dist/editor/group-manager/hooks/useExternalGroupSearch.js +0 -1
  342. package/dist/editor/group-manager/hooks/useGroupState.d.ts +1 -2
  343. package/dist/editor/group-manager/hooks/useGroupState.js +0 -1
  344. package/dist/editor/group-manager/hooks/useUserSearch.d.ts +1 -2
  345. package/dist/editor/group-manager/hooks/useUserSearch.js +0 -1
  346. package/dist/editor/group-manager/index.d.ts +5 -6
  347. package/dist/editor/group-manager/index.js +0 -1
  348. package/dist/editor/group-manager/types.d.ts +4 -5
  349. package/dist/editor/group-manager/types.js +0 -1
  350. package/dist/editor/hooks/index.d.ts +14 -15
  351. package/dist/editor/hooks/index.js +0 -1
  352. package/dist/editor/hooks/useBranchActions.d.ts +0 -1
  353. package/dist/editor/hooks/useBranchActions.js +0 -1
  354. package/dist/editor/hooks/useBranchManager.d.ts +4 -5
  355. package/dist/editor/hooks/useBranchManager.js +0 -1
  356. package/dist/editor/hooks/useBranchesData.d.ts +2 -3
  357. package/dist/editor/hooks/useBranchesData.js +0 -1
  358. package/dist/editor/hooks/useCommentSystem.d.ts +2 -3
  359. package/dist/editor/hooks/useCommentSystem.js +0 -1
  360. package/dist/editor/hooks/useCommentsData.d.ts +2 -3
  361. package/dist/editor/hooks/useCommentsData.js +0 -1
  362. package/dist/editor/hooks/useDraftManager.d.ts +3 -4
  363. package/dist/editor/hooks/useDraftManager.js +0 -1
  364. package/dist/editor/hooks/useEditorLayout.d.ts +1 -2
  365. package/dist/editor/hooks/useEditorLayout.js +0 -1
  366. package/dist/editor/hooks/useEntriesData.d.ts +3 -5
  367. package/dist/editor/hooks/useEntriesData.js +0 -3
  368. package/dist/editor/hooks/useEntryLinkResolution.d.ts +2 -3
  369. package/dist/editor/hooks/useEntryLinkResolution.js +0 -1
  370. package/dist/editor/hooks/useEntryManager.d.ts +5 -7
  371. package/dist/editor/hooks/useEntryManager.js +8 -3
  372. package/dist/editor/hooks/useGroupManager.d.ts +2 -3
  373. package/dist/editor/hooks/useGroupManager.js +0 -1
  374. package/dist/editor/hooks/usePermissionManager.d.ts +2 -3
  375. package/dist/editor/hooks/usePermissionManager.js +0 -1
  376. package/dist/editor/hooks/useReferenceResolution.d.ts +1 -2
  377. package/dist/editor/hooks/useReferenceResolution.js +8 -3
  378. package/dist/editor/hooks/useSchemaManager.d.ts +2 -3
  379. package/dist/editor/hooks/useSchemaManager.js +0 -1
  380. package/dist/editor/hooks/useUserContext.d.ts +1 -2
  381. package/dist/editor/hooks/useUserContext.js +8 -3
  382. package/dist/editor/hooks/useUserMetadata.d.ts +2 -3
  383. package/dist/editor/hooks/useUserMetadata.js +0 -1
  384. package/dist/editor/media/AssetCard.d.ts +1 -2
  385. package/dist/editor/media/AssetCard.js +0 -1
  386. package/dist/editor/media/CropStep.d.ts +1 -2
  387. package/dist/editor/media/CropStep.js +0 -1
  388. package/dist/editor/media/MediaLibrary.d.ts +1 -2
  389. package/dist/editor/media/MediaLibrary.js +0 -1
  390. package/dist/editor/media/MediaLibraryBody.d.ts +1 -2
  391. package/dist/editor/media/MediaLibraryBody.js +0 -1
  392. package/dist/editor/media/crop-math.d.ts +1 -2
  393. package/dist/editor/media/crop-math.js +0 -1
  394. package/dist/editor/media/upload-asset.d.ts +2 -3
  395. package/dist/editor/media/upload-asset.js +0 -1
  396. package/dist/editor/media/upload-constants.d.ts +0 -1
  397. package/dist/editor/media/upload-constants.js +0 -1
  398. package/dist/editor/media/useAssetUpload.d.ts +1 -2
  399. package/dist/editor/media/useAssetUpload.js +0 -1
  400. package/dist/editor/media/xhr-upload.d.ts +0 -1
  401. package/dist/editor/media/xhr-upload.js +0 -1
  402. package/dist/editor/permission-manager/GroupSelector.d.ts +1 -2
  403. package/dist/editor/permission-manager/GroupSelector.js +0 -1
  404. package/dist/editor/permission-manager/PermissionEditor.d.ts +1 -2
  405. package/dist/editor/permission-manager/PermissionEditor.js +0 -1
  406. package/dist/editor/permission-manager/PermissionLevelBadge.d.ts +1 -2
  407. package/dist/editor/permission-manager/PermissionLevelBadge.js +0 -1
  408. package/dist/editor/permission-manager/PermissionTree.d.ts +1 -2
  409. package/dist/editor/permission-manager/PermissionTree.js +0 -1
  410. package/dist/editor/permission-manager/UserSelector.d.ts +1 -2
  411. package/dist/editor/permission-manager/UserSelector.js +0 -1
  412. package/dist/editor/permission-manager/constants.d.ts +1 -2
  413. package/dist/editor/permission-manager/constants.js +0 -1
  414. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +1 -2
  415. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +0 -1
  416. package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts +2 -3
  417. package/dist/editor/permission-manager/hooks/usePermissionTree.js +0 -1
  418. package/dist/editor/permission-manager/index.d.ts +4 -5
  419. package/dist/editor/permission-manager/index.js +0 -1
  420. package/dist/editor/permission-manager/types.d.ts +3 -4
  421. package/dist/editor/permission-manager/types.js +0 -1
  422. package/dist/editor/permission-manager/utils.d.ts +2 -3
  423. package/dist/editor/permission-manager/utils.js +0 -1
  424. package/dist/editor/preview-bridge.d.ts +1 -2
  425. package/dist/editor/preview-bridge.js +0 -1
  426. package/dist/editor/relative-time.d.ts +0 -1
  427. package/dist/editor/relative-time.js +0 -1
  428. package/dist/editor/schema-editor/CollectionEditor.d.ts +4 -5
  429. package/dist/editor/schema-editor/CollectionEditor.js +0 -1
  430. package/dist/editor/schema-editor/EntryTypeEditor.d.ts +2 -3
  431. package/dist/editor/schema-editor/EntryTypeEditor.js +0 -1
  432. package/dist/editor/schema-editor/index.d.ts +2 -3
  433. package/dist/editor/schema-editor/index.js +0 -1
  434. package/dist/editor/theme.d.ts +0 -1
  435. package/dist/editor/theme.js +0 -1
  436. package/dist/editor/utils/env.d.ts +0 -1
  437. package/dist/editor/utils/env.js +0 -1
  438. package/dist/entry-link-resolver.d.ts +1 -2
  439. package/dist/entry-link-resolver.js +0 -1
  440. package/dist/entry-schema-registry.d.ts +3 -4
  441. package/dist/entry-schema-registry.js +6 -2
  442. package/dist/entry-schema.d.ts +342 -11
  443. package/dist/entry-schema.js +170 -1
  444. package/dist/git-manager.d.ts +1 -2
  445. package/dist/git-manager.js +0 -1
  446. package/dist/github-service.d.ts +1 -2
  447. package/dist/github-service.js +0 -1
  448. package/dist/http/handler.d.ts +6 -7
  449. package/dist/http/handler.js +0 -1
  450. package/dist/http/index.d.ts +6 -7
  451. package/dist/http/index.js +0 -1
  452. package/dist/http/router.d.ts +2 -3
  453. package/dist/http/router.js +0 -1
  454. package/dist/http/types.d.ts +0 -1
  455. package/dist/http/types.js +0 -1
  456. package/dist/id.d.ts +2 -3
  457. package/dist/id.js +0 -1
  458. package/dist/index.d.ts +17 -17
  459. package/dist/index.js +7 -1
  460. package/dist/operating-mode/client-safe-strategy.d.ts +1 -2
  461. package/dist/operating-mode/client-safe-strategy.js +0 -1
  462. package/dist/operating-mode/client-unsafe-strategy.d.ts +1 -2
  463. package/dist/operating-mode/client-unsafe-strategy.js +0 -1
  464. package/dist/operating-mode/client.d.ts +3 -4
  465. package/dist/operating-mode/client.js +0 -1
  466. package/dist/operating-mode/deployment-name-fixtures.d.ts +0 -1
  467. package/dist/operating-mode/deployment-name-fixtures.js +0 -1
  468. package/dist/operating-mode/deployment-name.d.ts +0 -1
  469. package/dist/operating-mode/deployment-name.js +0 -1
  470. package/dist/operating-mode/index.d.ts +5 -6
  471. package/dist/operating-mode/index.js +0 -1
  472. package/dist/operating-mode/mode-env.d.ts +1 -2
  473. package/dist/operating-mode/mode-env.js +0 -1
  474. package/dist/operating-mode/types.d.ts +2 -3
  475. package/dist/operating-mode/types.js +0 -1
  476. package/dist/paths/branch-name.d.ts +1 -2
  477. package/dist/paths/branch-name.js +0 -1
  478. package/dist/paths/branch.d.ts +3 -4
  479. package/dist/paths/branch.js +0 -1
  480. package/dist/paths/index.d.ts +8 -9
  481. package/dist/paths/index.js +0 -1
  482. package/dist/paths/normalize-server.d.ts +1 -2
  483. package/dist/paths/normalize-server.js +0 -1
  484. package/dist/paths/normalize.d.ts +1 -2
  485. package/dist/paths/normalize.js +0 -1
  486. package/dist/paths/resolve.d.ts +2 -3
  487. package/dist/paths/resolve.js +0 -1
  488. package/dist/paths/types.d.ts +0 -1
  489. package/dist/paths/types.js +0 -1
  490. package/dist/paths/validation.d.ts +1 -2
  491. package/dist/paths/validation.js +0 -1
  492. package/dist/reference-resolver.d.ts +3 -4
  493. package/dist/reference-resolver.js +0 -1
  494. package/dist/resolve-canopy-user.d.ts +3 -4
  495. package/dist/resolve-canopy-user.js +0 -1
  496. package/dist/resource-generation.d.ts +0 -1
  497. package/dist/resource-generation.js +0 -1
  498. package/dist/schema/index.d.ts +3 -4
  499. package/dist/schema/index.js +0 -1
  500. package/dist/schema/meta-loader.d.ts +3 -4
  501. package/dist/schema/meta-loader.js +3 -3
  502. package/dist/schema/resolver.d.ts +2 -3
  503. package/dist/schema/resolver.js +0 -1
  504. package/dist/schema/schema-store-types.d.ts +2 -3
  505. package/dist/schema/schema-store-types.js +0 -1
  506. package/dist/schema/schema-store.d.ts +6 -7
  507. package/dist/schema/schema-store.js +33 -1
  508. package/dist/schema/types.d.ts +1 -2
  509. package/dist/schema/types.js +0 -1
  510. package/dist/server.d.ts +97 -37
  511. package/dist/server.js +60 -3
  512. package/dist/services.d.ts +10 -12
  513. package/dist/services.js +2 -7
  514. package/dist/settings-workspace.d.ts +12 -15
  515. package/dist/settings-workspace.js +10 -13
  516. package/dist/static/index.d.ts +227 -9
  517. package/dist/static/index.js +302 -14
  518. package/dist/static/seo.d.ts +128 -0
  519. package/dist/static/seo.js +162 -0
  520. package/dist/sync-core.d.ts +0 -1
  521. package/dist/sync-core.js +0 -1
  522. package/dist/task-queue/index.d.ts +2 -3
  523. package/dist/task-queue/index.js +0 -1
  524. package/dist/task-queue/task-queue.d.ts +1 -2
  525. package/dist/task-queue/task-queue.js +0 -1
  526. package/dist/task-queue/types.d.ts +0 -1
  527. package/dist/task-queue/types.js +0 -1
  528. package/dist/types.d.ts +3 -4
  529. package/dist/types.js +0 -1
  530. package/dist/url-collision.d.ts +86 -0
  531. package/dist/url-collision.js +186 -0
  532. package/dist/url-path-resolver.d.ts +11 -2
  533. package/dist/url-path-resolver.js +37 -5
  534. package/dist/user.d.ts +3 -4
  535. package/dist/user.js +0 -1
  536. package/dist/utils/async-mutex.d.ts +0 -1
  537. package/dist/utils/async-mutex.js +0 -1
  538. package/dist/utils/atomic-write.d.ts +0 -1
  539. package/dist/utils/atomic-write.js +0 -1
  540. package/dist/utils/body-field.d.ts +12 -2
  541. package/dist/utils/body-field.js +17 -1
  542. package/dist/utils/content-serialize.d.ts +37 -0
  543. package/dist/utils/content-serialize.js +429 -0
  544. package/dist/utils/content-write-lock.d.ts +12 -16
  545. package/dist/utils/content-write-lock.js +38 -22
  546. package/dist/utils/debug.d.ts +0 -1
  547. package/dist/utils/debug.js +0 -1
  548. package/dist/utils/entry-url.d.ts +17 -1
  549. package/dist/utils/entry-url.js +21 -3
  550. package/dist/utils/error.d.ts +0 -1
  551. package/dist/utils/error.js +0 -1
  552. package/dist/utils/flatten-group-fields.d.ts +1 -2
  553. package/dist/utils/flatten-group-fields.js +0 -1
  554. package/dist/utils/format.d.ts +1 -2
  555. package/dist/utils/format.js +0 -1
  556. package/dist/utils/fs.d.ts +7 -1
  557. package/dist/utils/fs.js +16 -1
  558. package/dist/utils/git.d.ts +1 -2
  559. package/dist/utils/git.js +0 -1
  560. package/dist/utils/logger.d.ts +0 -1
  561. package/dist/utils/logger.js +0 -1
  562. package/dist/utils/occ-json-write.d.ts +0 -1
  563. package/dist/utils/occ-json-write.js +0 -1
  564. package/dist/utils/provisioning-lock.d.ts +17 -4
  565. package/dist/utils/provisioning-lock.js +94 -14
  566. package/dist/utils/sanitize-href.d.ts +46 -1
  567. package/dist/utils/sanitize-href.js +63 -3
  568. package/dist/utils/title-field.d.ts +1 -2
  569. package/dist/utils/title-field.js +0 -1
  570. package/dist/utils/typed-filename.d.ts +61 -0
  571. package/dist/utils/typed-filename.js +92 -0
  572. package/dist/utils/url-prefix.d.ts +121 -0
  573. package/dist/utils/url-prefix.js +158 -0
  574. package/dist/validation/block-structural-keys.d.ts +42 -0
  575. package/dist/validation/block-structural-keys.js +44 -0
  576. package/dist/validation/deletion-checker.d.ts +4 -5
  577. package/dist/validation/deletion-checker.js +0 -1
  578. package/dist/validation/entry-link-validator.d.ts +2 -3
  579. package/dist/validation/entry-link-validator.js +0 -1
  580. package/dist/validation/entry-type-reference-validator.d.ts +1 -2
  581. package/dist/validation/entry-type-reference-validator.js +0 -1
  582. package/dist/validation/entry-validator.d.ts +23 -2
  583. package/dist/validation/entry-validator.js +34 -2
  584. package/dist/validation/field-traversal.d.ts +28 -4
  585. package/dist/validation/field-traversal.js +24 -7
  586. package/dist/validation/reference-validator.d.ts +2 -3
  587. package/dist/validation/reference-validator.js +0 -1
  588. package/dist/worker/cms-worker.d.ts +9 -2
  589. package/dist/worker/cms-worker.js +59 -2
  590. package/dist/worker/log.d.ts +0 -1
  591. package/dist/worker/log.js +0 -1
  592. package/dist/worker/task-queue-config.d.ts +1 -2
  593. package/dist/worker/task-queue-config.js +0 -1
  594. package/dist/worker/task-queue.d.ts +3 -4
  595. package/dist/worker/task-queue.js +0 -1
  596. package/dist/worker/worker-status.d.ts +1 -2
  597. package/dist/worker/worker-status.js +0 -1
  598. package/package.json +2 -6
  599. package/dist/ai/generate.d.ts.map +0 -1
  600. package/dist/ai/generate.js.map +0 -1
  601. package/dist/ai/handler.d.ts.map +0 -1
  602. package/dist/ai/handler.js.map +0 -1
  603. package/dist/ai/index.d.ts.map +0 -1
  604. package/dist/ai/index.js.map +0 -1
  605. package/dist/ai/json-to-markdown.d.ts.map +0 -1
  606. package/dist/ai/json-to-markdown.js.map +0 -1
  607. package/dist/ai/resolve-branch.d.ts.map +0 -1
  608. package/dist/ai/resolve-branch.js.map +0 -1
  609. package/dist/ai/strip-mdx.d.ts.map +0 -1
  610. package/dist/ai/strip-mdx.js.map +0 -1
  611. package/dist/ai/transform-components.d.ts.map +0 -1
  612. package/dist/ai/transform-components.js.map +0 -1
  613. package/dist/ai/types.d.ts.map +0 -1
  614. package/dist/ai/types.js.map +0 -1
  615. package/dist/api/__test__/mock-client.d.ts +0 -231
  616. package/dist/api/__test__/mock-client.d.ts.map +0 -1
  617. package/dist/api/__test__/mock-client.js +0 -388
  618. package/dist/api/__test__/mock-client.js.map +0 -1
  619. package/dist/api/admin-branch-health.d.ts.map +0 -1
  620. package/dist/api/admin-branch-health.js.map +0 -1
  621. package/dist/api/admin.d.ts.map +0 -1
  622. package/dist/api/admin.js.map +0 -1
  623. package/dist/api/assets.d.ts.map +0 -1
  624. package/dist/api/assets.js.map +0 -1
  625. package/dist/api/branch-merge.d.ts.map +0 -1
  626. package/dist/api/branch-merge.js.map +0 -1
  627. package/dist/api/branch-review.d.ts.map +0 -1
  628. package/dist/api/branch-review.js.map +0 -1
  629. package/dist/api/branch-status.d.ts.map +0 -1
  630. package/dist/api/branch-status.js.map +0 -1
  631. package/dist/api/branch-withdraw.d.ts.map +0 -1
  632. package/dist/api/branch-withdraw.js.map +0 -1
  633. package/dist/api/branch.d.ts.map +0 -1
  634. package/dist/api/branch.js.map +0 -1
  635. package/dist/api/client.d.ts.map +0 -1
  636. package/dist/api/client.js.map +0 -1
  637. package/dist/api/comments.d.ts.map +0 -1
  638. package/dist/api/comments.js.map +0 -1
  639. package/dist/api/content.d.ts.map +0 -1
  640. package/dist/api/content.js.map +0 -1
  641. package/dist/api/entries-constants.d.ts.map +0 -1
  642. package/dist/api/entries-constants.js.map +0 -1
  643. package/dist/api/entries.d.ts.map +0 -1
  644. package/dist/api/entries.js.map +0 -1
  645. package/dist/api/github-sync.d.ts.map +0 -1
  646. package/dist/api/github-sync.js.map +0 -1
  647. package/dist/api/groups.d.ts.map +0 -1
  648. package/dist/api/groups.js.map +0 -1
  649. package/dist/api/guards.d.ts.map +0 -1
  650. package/dist/api/guards.js.map +0 -1
  651. package/dist/api/index.d.ts.map +0 -1
  652. package/dist/api/index.js.map +0 -1
  653. package/dist/api/permissions.d.ts.map +0 -1
  654. package/dist/api/permissions.js.map +0 -1
  655. package/dist/api/reference-options.d.ts.map +0 -1
  656. package/dist/api/reference-options.js.map +0 -1
  657. package/dist/api/request-body-hash.d.ts.map +0 -1
  658. package/dist/api/request-body-hash.js.map +0 -1
  659. package/dist/api/resolve-references.d.ts.map +0 -1
  660. package/dist/api/resolve-references.js.map +0 -1
  661. package/dist/api/route-builder.d.ts.map +0 -1
  662. package/dist/api/route-builder.js.map +0 -1
  663. package/dist/api/schema.d.ts.map +0 -1
  664. package/dist/api/schema.js.map +0 -1
  665. package/dist/api/settings-helpers.d.ts.map +0 -1
  666. package/dist/api/settings-helpers.js.map +0 -1
  667. package/dist/api/types.d.ts.map +0 -1
  668. package/dist/api/types.js.map +0 -1
  669. package/dist/api/user.d.ts.map +0 -1
  670. package/dist/api/user.js.map +0 -1
  671. package/dist/api/validators.d.ts.map +0 -1
  672. package/dist/api/validators.js.map +0 -1
  673. package/dist/assets/asset-prefixes.d.ts.map +0 -1
  674. package/dist/assets/asset-prefixes.js.map +0 -1
  675. package/dist/assets/asset-src.d.ts.map +0 -1
  676. package/dist/assets/asset-src.js.map +0 -1
  677. package/dist/assets/asset-url.d.ts.map +0 -1
  678. package/dist/assets/asset-url.js.map +0 -1
  679. package/dist/assets/factory.d.ts.map +0 -1
  680. package/dist/assets/factory.js.map +0 -1
  681. package/dist/assets/finalize.d.ts.map +0 -1
  682. package/dist/assets/finalize.js.map +0 -1
  683. package/dist/assets/index.d.ts.map +0 -1
  684. package/dist/assets/index.js.map +0 -1
  685. package/dist/assets/keys.d.ts.map +0 -1
  686. package/dist/assets/keys.js.map +0 -1
  687. package/dist/assets/pipeline.d.ts.map +0 -1
  688. package/dist/assets/pipeline.js.map +0 -1
  689. package/dist/assets/store-local.d.ts.map +0 -1
  690. package/dist/assets/store-local.js.map +0 -1
  691. package/dist/assets/store-s3.d.ts.map +0 -1
  692. package/dist/assets/store-s3.js.map +0 -1
  693. package/dist/assets/svg-sanitizer.d.ts.map +0 -1
  694. package/dist/assets/svg-sanitizer.js.map +0 -1
  695. package/dist/assets/transform-directives.d.ts.map +0 -1
  696. package/dist/assets/transform-directives.js.map +0 -1
  697. package/dist/assets/transform.d.ts.map +0 -1
  698. package/dist/assets/transform.js.map +0 -1
  699. package/dist/assets/types.d.ts.map +0 -1
  700. package/dist/assets/types.js.map +0 -1
  701. package/dist/auth/cache.d.ts.map +0 -1
  702. package/dist/auth/cache.js.map +0 -1
  703. package/dist/auth/caching-auth-plugin.d.ts.map +0 -1
  704. package/dist/auth/caching-auth-plugin.js.map +0 -1
  705. package/dist/auth/context-helpers.d.ts.map +0 -1
  706. package/dist/auth/context-helpers.js.map +0 -1
  707. package/dist/auth/file-based-auth-cache.d.ts.map +0 -1
  708. package/dist/auth/file-based-auth-cache.js.map +0 -1
  709. package/dist/auth/index.d.ts.map +0 -1
  710. package/dist/auth/index.js.map +0 -1
  711. package/dist/auth/plugin.d.ts.map +0 -1
  712. package/dist/auth/plugin.js.map +0 -1
  713. package/dist/auth/types.d.ts.map +0 -1
  714. package/dist/auth/types.js.map +0 -1
  715. package/dist/authorization/branch.d.ts.map +0 -1
  716. package/dist/authorization/branch.js.map +0 -1
  717. package/dist/authorization/content.d.ts.map +0 -1
  718. package/dist/authorization/content.js.map +0 -1
  719. package/dist/authorization/groups/index.d.ts.map +0 -1
  720. package/dist/authorization/groups/index.js.map +0 -1
  721. package/dist/authorization/groups/loader.d.ts.map +0 -1
  722. package/dist/authorization/groups/loader.js.map +0 -1
  723. package/dist/authorization/groups/schema.d.ts.map +0 -1
  724. package/dist/authorization/groups/schema.js.map +0 -1
  725. package/dist/authorization/helpers.d.ts.map +0 -1
  726. package/dist/authorization/helpers.js.map +0 -1
  727. package/dist/authorization/index.d.ts.map +0 -1
  728. package/dist/authorization/index.js.map +0 -1
  729. package/dist/authorization/path.d.ts.map +0 -1
  730. package/dist/authorization/path.js.map +0 -1
  731. package/dist/authorization/permissions/index.d.ts.map +0 -1
  732. package/dist/authorization/permissions/index.js.map +0 -1
  733. package/dist/authorization/permissions/loader.d.ts.map +0 -1
  734. package/dist/authorization/permissions/loader.js.map +0 -1
  735. package/dist/authorization/permissions/schema.d.ts.map +0 -1
  736. package/dist/authorization/permissions/schema.js.map +0 -1
  737. package/dist/authorization/protected-branch.d.ts.map +0 -1
  738. package/dist/authorization/protected-branch.js.map +0 -1
  739. package/dist/authorization/settings-file-store.d.ts.map +0 -1
  740. package/dist/authorization/settings-file-store.js.map +0 -1
  741. package/dist/authorization/test-utils.d.ts +0 -26
  742. package/dist/authorization/test-utils.d.ts.map +0 -1
  743. package/dist/authorization/test-utils.js +0 -23
  744. package/dist/authorization/test-utils.js.map +0 -1
  745. package/dist/authorization/types.d.ts.map +0 -1
  746. package/dist/authorization/types.js.map +0 -1
  747. package/dist/authorization/validation.d.ts.map +0 -1
  748. package/dist/authorization/validation.js.map +0 -1
  749. package/dist/branch-health.d.ts.map +0 -1
  750. package/dist/branch-health.js.map +0 -1
  751. package/dist/branch-metadata.d.ts.map +0 -1
  752. package/dist/branch-metadata.js.map +0 -1
  753. package/dist/branch-registry.d.ts.map +0 -1
  754. package/dist/branch-registry.js.map +0 -1
  755. package/dist/branch-schema-cache.d.ts.map +0 -1
  756. package/dist/branch-schema-cache.js.map +0 -1
  757. package/dist/branch-workspace.d.ts.map +0 -1
  758. package/dist/branch-workspace.js.map +0 -1
  759. package/dist/build/generate-ai-content.d.ts.map +0 -1
  760. package/dist/build/generate-ai-content.js.map +0 -1
  761. package/dist/build/index.d.ts.map +0 -1
  762. package/dist/build/index.js.map +0 -1
  763. package/dist/build-mode.d.ts.map +0 -1
  764. package/dist/build-mode.js.map +0 -1
  765. package/dist/cli/cli.d.ts.map +0 -1
  766. package/dist/cli/cli.js.map +0 -1
  767. package/dist/cli/generate-ai-content.d.ts.map +0 -1
  768. package/dist/cli/generate-ai-content.js.map +0 -1
  769. package/dist/cli/init.d.ts.map +0 -1
  770. package/dist/cli/init.js.map +0 -1
  771. package/dist/cli/migrate.d.ts.map +0 -1
  772. package/dist/cli/migrate.js.map +0 -1
  773. package/dist/cli/project-detect.d.ts.map +0 -1
  774. package/dist/cli/project-detect.js.map +0 -1
  775. package/dist/cli/project-root.d.ts.map +0 -1
  776. package/dist/cli/project-root.js.map +0 -1
  777. package/dist/cli/sync.d.ts.map +0 -1
  778. package/dist/cli/sync.js.map +0 -1
  779. package/dist/cli/templates.d.ts.map +0 -1
  780. package/dist/cli/templates.js.map +0 -1
  781. package/dist/client.d.ts.map +0 -1
  782. package/dist/client.js.map +0 -1
  783. package/dist/comment-store.d.ts.map +0 -1
  784. package/dist/comment-store.js.map +0 -1
  785. package/dist/config/flatten.d.ts.map +0 -1
  786. package/dist/config/flatten.js.map +0 -1
  787. package/dist/config/helpers.d.ts.map +0 -1
  788. package/dist/config/helpers.js.map +0 -1
  789. package/dist/config/index.d.ts.map +0 -1
  790. package/dist/config/index.js.map +0 -1
  791. package/dist/config/schemas/collection.d.ts.map +0 -1
  792. package/dist/config/schemas/collection.js.map +0 -1
  793. package/dist/config/schemas/config.d.ts.map +0 -1
  794. package/dist/config/schemas/config.js.map +0 -1
  795. package/dist/config/schemas/field.d.ts.map +0 -1
  796. package/dist/config/schemas/field.js.map +0 -1
  797. package/dist/config/schemas/media.d.ts.map +0 -1
  798. package/dist/config/schemas/media.js.map +0 -1
  799. package/dist/config/schemas/permissions.d.ts.map +0 -1
  800. package/dist/config/schemas/permissions.js.map +0 -1
  801. package/dist/config/types.d.ts.map +0 -1
  802. package/dist/config/types.js.map +0 -1
  803. package/dist/config/validation.d.ts.map +0 -1
  804. package/dist/config/validation.js.map +0 -1
  805. package/dist/config-test.d.ts +0 -20
  806. package/dist/config-test.d.ts.map +0 -1
  807. package/dist/config-test.js +0 -49
  808. package/dist/config-test.js.map +0 -1
  809. package/dist/config.d.ts.map +0 -1
  810. package/dist/config.js.map +0 -1
  811. package/dist/content-id-index.d.ts.map +0 -1
  812. package/dist/content-id-index.js.map +0 -1
  813. package/dist/content-index-generation.d.ts.map +0 -1
  814. package/dist/content-index-generation.js.map +0 -1
  815. package/dist/content-index-registry.d.ts.map +0 -1
  816. package/dist/content-index-registry.js.map +0 -1
  817. package/dist/content-listing.d.ts.map +0 -1
  818. package/dist/content-listing.js.map +0 -1
  819. package/dist/content-reader.d.ts.map +0 -1
  820. package/dist/content-reader.js.map +0 -1
  821. package/dist/content-store.d.ts.map +0 -1
  822. package/dist/content-store.js.map +0 -1
  823. package/dist/content-tree.d.ts.map +0 -1
  824. package/dist/content-tree.js.map +0 -1
  825. package/dist/context.d.ts.map +0 -1
  826. package/dist/context.js.map +0 -1
  827. package/dist/dev-content-watcher.d.ts.map +0 -1
  828. package/dist/dev-content-watcher.js.map +0 -1
  829. package/dist/editor/BranchManager.d.ts.map +0 -1
  830. package/dist/editor/BranchManager.js.map +0 -1
  831. package/dist/editor/CanopyEditor.d.ts.map +0 -1
  832. package/dist/editor/CanopyEditor.js.map +0 -1
  833. package/dist/editor/CanopyEditorPage.d.ts.map +0 -1
  834. package/dist/editor/CanopyEditorPage.js.map +0 -1
  835. package/dist/editor/CommentsPanel.d.ts.map +0 -1
  836. package/dist/editor/CommentsPanel.js.map +0 -1
  837. package/dist/editor/Editor.d.ts.map +0 -1
  838. package/dist/editor/Editor.js.map +0 -1
  839. package/dist/editor/EditorPanes.d.ts.map +0 -1
  840. package/dist/editor/EditorPanes.js.map +0 -1
  841. package/dist/editor/EntryNavigator.d.ts.map +0 -1
  842. package/dist/editor/EntryNavigator.js.map +0 -1
  843. package/dist/editor/FormRenderer.d.ts.map +0 -1
  844. package/dist/editor/FormRenderer.js.map +0 -1
  845. package/dist/editor/GroupManager.d.ts.map +0 -1
  846. package/dist/editor/GroupManager.js.map +0 -1
  847. package/dist/editor/PermissionManager.d.ts.map +0 -1
  848. package/dist/editor/PermissionManager.js.map +0 -1
  849. package/dist/editor/admin/SystemHealthPanel.d.ts.map +0 -1
  850. package/dist/editor/admin/SystemHealthPanel.js.map +0 -1
  851. package/dist/editor/admin/useSystemHealth.d.ts.map +0 -1
  852. package/dist/editor/admin/useSystemHealth.js.map +0 -1
  853. package/dist/editor/canopy-path.d.ts.map +0 -1
  854. package/dist/editor/canopy-path.js.map +0 -1
  855. package/dist/editor/client-reference-resolver.d.ts.map +0 -1
  856. package/dist/editor/client-reference-resolver.js.map +0 -1
  857. package/dist/editor/comments/BranchComments.d.ts.map +0 -1
  858. package/dist/editor/comments/BranchComments.js.map +0 -1
  859. package/dist/editor/comments/EntryComments.d.ts.map +0 -1
  860. package/dist/editor/comments/EntryComments.js.map +0 -1
  861. package/dist/editor/comments/FieldWrapper.d.ts.map +0 -1
  862. package/dist/editor/comments/FieldWrapper.js.map +0 -1
  863. package/dist/editor/comments/InlineCommentThread.d.ts.map +0 -1
  864. package/dist/editor/comments/InlineCommentThread.js.map +0 -1
  865. package/dist/editor/comments/ThreadCarousel.d.ts.map +0 -1
  866. package/dist/editor/comments/ThreadCarousel.js.map +0 -1
  867. package/dist/editor/components/ConfirmDeleteModal.d.ts.map +0 -1
  868. package/dist/editor/components/ConfirmDeleteModal.js.map +0 -1
  869. package/dist/editor/components/EditorFooter.d.ts.map +0 -1
  870. package/dist/editor/components/EditorFooter.js.map +0 -1
  871. package/dist/editor/components/EditorHeader.d.ts.map +0 -1
  872. package/dist/editor/components/EditorHeader.js.map +0 -1
  873. package/dist/editor/components/EditorSidebar.d.ts.map +0 -1
  874. package/dist/editor/components/EditorSidebar.js.map +0 -1
  875. package/dist/editor/components/EntryCreateModal.d.ts.map +0 -1
  876. package/dist/editor/components/EntryCreateModal.js.map +0 -1
  877. package/dist/editor/components/RenameEntryModal.d.ts.map +0 -1
  878. package/dist/editor/components/RenameEntryModal.js.map +0 -1
  879. package/dist/editor/components/UserBadge.d.ts.map +0 -1
  880. package/dist/editor/components/UserBadge.js.map +0 -1
  881. package/dist/editor/components/index.d.ts.map +0 -1
  882. package/dist/editor/components/index.js.map +0 -1
  883. package/dist/editor/context/ApiClientContext.d.ts.map +0 -1
  884. package/dist/editor/context/ApiClientContext.js.map +0 -1
  885. package/dist/editor/context/AssetContext.d.ts.map +0 -1
  886. package/dist/editor/context/AssetContext.js.map +0 -1
  887. package/dist/editor/context/EditorStateContext.d.ts.map +0 -1
  888. package/dist/editor/context/EditorStateContext.js.map +0 -1
  889. package/dist/editor/context/SWRProvider.d.ts.map +0 -1
  890. package/dist/editor/context/SWRProvider.js.map +0 -1
  891. package/dist/editor/context/index.d.ts.map +0 -1
  892. package/dist/editor/context/index.js.map +0 -1
  893. package/dist/editor/editor-config.d.ts.map +0 -1
  894. package/dist/editor/editor-config.js.map +0 -1
  895. package/dist/editor/editor-utils.d.ts.map +0 -1
  896. package/dist/editor/editor-utils.js.map +0 -1
  897. package/dist/editor/fields/BlockField.d.ts.map +0 -1
  898. package/dist/editor/fields/BlockField.js.map +0 -1
  899. package/dist/editor/fields/CodeField.d.ts.map +0 -1
  900. package/dist/editor/fields/CodeField.js.map +0 -1
  901. package/dist/editor/fields/DateTimeField.d.ts.map +0 -1
  902. package/dist/editor/fields/DateTimeField.js.map +0 -1
  903. package/dist/editor/fields/ImageField.d.ts.map +0 -1
  904. package/dist/editor/fields/ImageField.js.map +0 -1
  905. package/dist/editor/fields/InlineGroupField.d.ts.map +0 -1
  906. package/dist/editor/fields/InlineGroupField.js.map +0 -1
  907. package/dist/editor/fields/MarkdownField.d.ts.map +0 -1
  908. package/dist/editor/fields/MarkdownField.js.map +0 -1
  909. package/dist/editor/fields/MdxImageDialog.d.ts.map +0 -1
  910. package/dist/editor/fields/MdxImageDialog.js.map +0 -1
  911. package/dist/editor/fields/NumberField.d.ts.map +0 -1
  912. package/dist/editor/fields/NumberField.js.map +0 -1
  913. package/dist/editor/fields/NumberListField.d.ts.map +0 -1
  914. package/dist/editor/fields/NumberListField.js.map +0 -1
  915. package/dist/editor/fields/ObjectField.d.ts.map +0 -1
  916. package/dist/editor/fields/ObjectField.js.map +0 -1
  917. package/dist/editor/fields/ReferenceField.d.ts.map +0 -1
  918. package/dist/editor/fields/ReferenceField.js.map +0 -1
  919. package/dist/editor/fields/SelectField.d.ts.map +0 -1
  920. package/dist/editor/fields/SelectField.js.map +0 -1
  921. package/dist/editor/fields/StringListField.d.ts.map +0 -1
  922. package/dist/editor/fields/StringListField.js.map +0 -1
  923. package/dist/editor/fields/TextField.d.ts.map +0 -1
  924. package/dist/editor/fields/TextField.js.map +0 -1
  925. package/dist/editor/fields/ToggleField.d.ts.map +0 -1
  926. package/dist/editor/fields/ToggleField.js.map +0 -1
  927. package/dist/editor/fields/entry-link/EntryLinkContext.d.ts.map +0 -1
  928. package/dist/editor/fields/entry-link/EntryLinkContext.js.map +0 -1
  929. package/dist/editor/fields/entry-link/InsertEntryLink.d.ts.map +0 -1
  930. package/dist/editor/fields/entry-link/InsertEntryLink.js.map +0 -1
  931. package/dist/editor/fields/entry-link/index.d.ts.map +0 -1
  932. package/dist/editor/fields/entry-link/index.js.map +0 -1
  933. package/dist/editor/group-manager/ExternalGroupsTab.d.ts.map +0 -1
  934. package/dist/editor/group-manager/ExternalGroupsTab.js.map +0 -1
  935. package/dist/editor/group-manager/GroupCard.d.ts.map +0 -1
  936. package/dist/editor/group-manager/GroupCard.js.map +0 -1
  937. package/dist/editor/group-manager/GroupForm.d.ts.map +0 -1
  938. package/dist/editor/group-manager/GroupForm.js.map +0 -1
  939. package/dist/editor/group-manager/InternalGroupsTab.d.ts.map +0 -1
  940. package/dist/editor/group-manager/InternalGroupsTab.js.map +0 -1
  941. package/dist/editor/group-manager/MemberList.d.ts.map +0 -1
  942. package/dist/editor/group-manager/MemberList.js.map +0 -1
  943. package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts.map +0 -1
  944. package/dist/editor/group-manager/hooks/useExternalGroupSearch.js.map +0 -1
  945. package/dist/editor/group-manager/hooks/useGroupState.d.ts.map +0 -1
  946. package/dist/editor/group-manager/hooks/useGroupState.js.map +0 -1
  947. package/dist/editor/group-manager/hooks/useUserSearch.d.ts.map +0 -1
  948. package/dist/editor/group-manager/hooks/useUserSearch.js.map +0 -1
  949. package/dist/editor/group-manager/index.d.ts.map +0 -1
  950. package/dist/editor/group-manager/index.js.map +0 -1
  951. package/dist/editor/group-manager/types.d.ts.map +0 -1
  952. package/dist/editor/group-manager/types.js.map +0 -1
  953. package/dist/editor/hooks/__test__/test-utils.d.ts +0 -164
  954. package/dist/editor/hooks/__test__/test-utils.d.ts.map +0 -1
  955. package/dist/editor/hooks/__test__/test-utils.js +0 -203
  956. package/dist/editor/hooks/__test__/test-utils.js.map +0 -1
  957. package/dist/editor/hooks/index.d.ts.map +0 -1
  958. package/dist/editor/hooks/index.js.map +0 -1
  959. package/dist/editor/hooks/useBranchActions.d.ts.map +0 -1
  960. package/dist/editor/hooks/useBranchActions.js.map +0 -1
  961. package/dist/editor/hooks/useBranchManager.d.ts.map +0 -1
  962. package/dist/editor/hooks/useBranchManager.js.map +0 -1
  963. package/dist/editor/hooks/useBranchesData.d.ts.map +0 -1
  964. package/dist/editor/hooks/useBranchesData.js.map +0 -1
  965. package/dist/editor/hooks/useCommentSystem.d.ts.map +0 -1
  966. package/dist/editor/hooks/useCommentSystem.js.map +0 -1
  967. package/dist/editor/hooks/useCommentsData.d.ts.map +0 -1
  968. package/dist/editor/hooks/useCommentsData.js.map +0 -1
  969. package/dist/editor/hooks/useDraftManager.d.ts.map +0 -1
  970. package/dist/editor/hooks/useDraftManager.js.map +0 -1
  971. package/dist/editor/hooks/useEditorLayout.d.ts.map +0 -1
  972. package/dist/editor/hooks/useEditorLayout.js.map +0 -1
  973. package/dist/editor/hooks/useEntriesData.d.ts.map +0 -1
  974. package/dist/editor/hooks/useEntriesData.js.map +0 -1
  975. package/dist/editor/hooks/useEntryLinkResolution.d.ts.map +0 -1
  976. package/dist/editor/hooks/useEntryLinkResolution.js.map +0 -1
  977. package/dist/editor/hooks/useEntryManager.d.ts.map +0 -1
  978. package/dist/editor/hooks/useEntryManager.js.map +0 -1
  979. package/dist/editor/hooks/useGroupManager.d.ts.map +0 -1
  980. package/dist/editor/hooks/useGroupManager.js.map +0 -1
  981. package/dist/editor/hooks/usePermissionManager.d.ts.map +0 -1
  982. package/dist/editor/hooks/usePermissionManager.js.map +0 -1
  983. package/dist/editor/hooks/useReferenceResolution.d.ts.map +0 -1
  984. package/dist/editor/hooks/useReferenceResolution.js.map +0 -1
  985. package/dist/editor/hooks/useSchemaManager.d.ts.map +0 -1
  986. package/dist/editor/hooks/useSchemaManager.js.map +0 -1
  987. package/dist/editor/hooks/useUserContext.d.ts.map +0 -1
  988. package/dist/editor/hooks/useUserContext.js.map +0 -1
  989. package/dist/editor/hooks/useUserMetadata.d.ts.map +0 -1
  990. package/dist/editor/hooks/useUserMetadata.js.map +0 -1
  991. package/dist/editor/media/AssetCard.d.ts.map +0 -1
  992. package/dist/editor/media/AssetCard.js.map +0 -1
  993. package/dist/editor/media/CropStep.d.ts.map +0 -1
  994. package/dist/editor/media/CropStep.js.map +0 -1
  995. package/dist/editor/media/MediaLibrary.d.ts.map +0 -1
  996. package/dist/editor/media/MediaLibrary.js.map +0 -1
  997. package/dist/editor/media/MediaLibraryBody.d.ts.map +0 -1
  998. package/dist/editor/media/MediaLibraryBody.js.map +0 -1
  999. package/dist/editor/media/crop-math.d.ts.map +0 -1
  1000. package/dist/editor/media/crop-math.js.map +0 -1
  1001. package/dist/editor/media/upload-asset.d.ts.map +0 -1
  1002. package/dist/editor/media/upload-asset.js.map +0 -1
  1003. package/dist/editor/media/upload-constants.d.ts.map +0 -1
  1004. package/dist/editor/media/upload-constants.js.map +0 -1
  1005. package/dist/editor/media/useAssetUpload.d.ts.map +0 -1
  1006. package/dist/editor/media/useAssetUpload.js.map +0 -1
  1007. package/dist/editor/media/xhr-upload.d.ts.map +0 -1
  1008. package/dist/editor/media/xhr-upload.js.map +0 -1
  1009. package/dist/editor/permission-manager/GroupSelector.d.ts.map +0 -1
  1010. package/dist/editor/permission-manager/GroupSelector.js.map +0 -1
  1011. package/dist/editor/permission-manager/PermissionEditor.d.ts.map +0 -1
  1012. package/dist/editor/permission-manager/PermissionEditor.js.map +0 -1
  1013. package/dist/editor/permission-manager/PermissionLevelBadge.d.ts.map +0 -1
  1014. package/dist/editor/permission-manager/PermissionLevelBadge.js.map +0 -1
  1015. package/dist/editor/permission-manager/PermissionTree.d.ts.map +0 -1
  1016. package/dist/editor/permission-manager/PermissionTree.js.map +0 -1
  1017. package/dist/editor/permission-manager/UserSelector.d.ts.map +0 -1
  1018. package/dist/editor/permission-manager/UserSelector.js.map +0 -1
  1019. package/dist/editor/permission-manager/constants.d.ts.map +0 -1
  1020. package/dist/editor/permission-manager/constants.js.map +0 -1
  1021. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts.map +0 -1
  1022. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js.map +0 -1
  1023. package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts.map +0 -1
  1024. package/dist/editor/permission-manager/hooks/usePermissionTree.js.map +0 -1
  1025. package/dist/editor/permission-manager/index.d.ts.map +0 -1
  1026. package/dist/editor/permission-manager/index.js.map +0 -1
  1027. package/dist/editor/permission-manager/types.d.ts.map +0 -1
  1028. package/dist/editor/permission-manager/types.js.map +0 -1
  1029. package/dist/editor/permission-manager/utils.d.ts.map +0 -1
  1030. package/dist/editor/permission-manager/utils.js.map +0 -1
  1031. package/dist/editor/preview-bridge.d.ts.map +0 -1
  1032. package/dist/editor/preview-bridge.js.map +0 -1
  1033. package/dist/editor/relative-time.d.ts.map +0 -1
  1034. package/dist/editor/relative-time.js.map +0 -1
  1035. package/dist/editor/schema-editor/CollectionEditor.d.ts.map +0 -1
  1036. package/dist/editor/schema-editor/CollectionEditor.js.map +0 -1
  1037. package/dist/editor/schema-editor/EntryTypeEditor.d.ts.map +0 -1
  1038. package/dist/editor/schema-editor/EntryTypeEditor.js.map +0 -1
  1039. package/dist/editor/schema-editor/index.d.ts.map +0 -1
  1040. package/dist/editor/schema-editor/index.js.map +0 -1
  1041. package/dist/editor/setup-test-dom.d.ts +0 -1
  1042. package/dist/editor/setup-test-dom.d.ts.map +0 -1
  1043. package/dist/editor/setup-test-dom.js +0 -12
  1044. package/dist/editor/setup-test-dom.js.map +0 -1
  1045. package/dist/editor/test-setup.d.ts +0 -6
  1046. package/dist/editor/test-setup.d.ts.map +0 -1
  1047. package/dist/editor/test-setup.js +0 -42
  1048. package/dist/editor/test-setup.js.map +0 -1
  1049. package/dist/editor/theme.d.ts.map +0 -1
  1050. package/dist/editor/theme.js.map +0 -1
  1051. package/dist/editor/utils/env.d.ts.map +0 -1
  1052. package/dist/editor/utils/env.js.map +0 -1
  1053. package/dist/entry-link-resolver.d.ts.map +0 -1
  1054. package/dist/entry-link-resolver.js.map +0 -1
  1055. package/dist/entry-schema-registry.d.ts.map +0 -1
  1056. package/dist/entry-schema-registry.js.map +0 -1
  1057. package/dist/entry-schema.d.ts.map +0 -1
  1058. package/dist/entry-schema.js.map +0 -1
  1059. package/dist/git-manager.d.ts.map +0 -1
  1060. package/dist/git-manager.js.map +0 -1
  1061. package/dist/github-service.d.ts.map +0 -1
  1062. package/dist/github-service.js.map +0 -1
  1063. package/dist/http/handler.d.ts.map +0 -1
  1064. package/dist/http/handler.js.map +0 -1
  1065. package/dist/http/index.d.ts.map +0 -1
  1066. package/dist/http/index.js.map +0 -1
  1067. package/dist/http/router.d.ts.map +0 -1
  1068. package/dist/http/router.js.map +0 -1
  1069. package/dist/http/types.d.ts.map +0 -1
  1070. package/dist/http/types.js.map +0 -1
  1071. package/dist/id.d.ts.map +0 -1
  1072. package/dist/id.js.map +0 -1
  1073. package/dist/index.d.ts.map +0 -1
  1074. package/dist/index.js.map +0 -1
  1075. package/dist/operating-mode/client-safe-strategy.d.ts.map +0 -1
  1076. package/dist/operating-mode/client-safe-strategy.js.map +0 -1
  1077. package/dist/operating-mode/client-unsafe-strategy.d.ts.map +0 -1
  1078. package/dist/operating-mode/client-unsafe-strategy.js.map +0 -1
  1079. package/dist/operating-mode/client.d.ts.map +0 -1
  1080. package/dist/operating-mode/client.js.map +0 -1
  1081. package/dist/operating-mode/deployment-name-fixtures.d.ts.map +0 -1
  1082. package/dist/operating-mode/deployment-name-fixtures.js.map +0 -1
  1083. package/dist/operating-mode/deployment-name.d.ts.map +0 -1
  1084. package/dist/operating-mode/deployment-name.js.map +0 -1
  1085. package/dist/operating-mode/index.d.ts.map +0 -1
  1086. package/dist/operating-mode/index.js.map +0 -1
  1087. package/dist/operating-mode/mode-env.d.ts.map +0 -1
  1088. package/dist/operating-mode/mode-env.js.map +0 -1
  1089. package/dist/operating-mode/types.d.ts.map +0 -1
  1090. package/dist/operating-mode/types.js.map +0 -1
  1091. package/dist/paths/branch-name.d.ts.map +0 -1
  1092. package/dist/paths/branch-name.js.map +0 -1
  1093. package/dist/paths/branch.d.ts.map +0 -1
  1094. package/dist/paths/branch.js.map +0 -1
  1095. package/dist/paths/index.d.ts.map +0 -1
  1096. package/dist/paths/index.js.map +0 -1
  1097. package/dist/paths/normalize-server.d.ts.map +0 -1
  1098. package/dist/paths/normalize-server.js.map +0 -1
  1099. package/dist/paths/normalize.d.ts.map +0 -1
  1100. package/dist/paths/normalize.js.map +0 -1
  1101. package/dist/paths/resolve.d.ts.map +0 -1
  1102. package/dist/paths/resolve.js.map +0 -1
  1103. package/dist/paths/test-utils.d.ts +0 -22
  1104. package/dist/paths/test-utils.d.ts.map +0 -1
  1105. package/dist/paths/test-utils.js +0 -21
  1106. package/dist/paths/test-utils.js.map +0 -1
  1107. package/dist/paths/types.d.ts.map +0 -1
  1108. package/dist/paths/types.js.map +0 -1
  1109. package/dist/paths/validation.d.ts.map +0 -1
  1110. package/dist/paths/validation.js.map +0 -1
  1111. package/dist/reference-resolver.d.ts.map +0 -1
  1112. package/dist/reference-resolver.js.map +0 -1
  1113. package/dist/resolve-canopy-user.d.ts.map +0 -1
  1114. package/dist/resolve-canopy-user.js.map +0 -1
  1115. package/dist/resource-generation.d.ts.map +0 -1
  1116. package/dist/resource-generation.js.map +0 -1
  1117. package/dist/schema/index.d.ts.map +0 -1
  1118. package/dist/schema/index.js.map +0 -1
  1119. package/dist/schema/meta-loader.d.ts.map +0 -1
  1120. package/dist/schema/meta-loader.js.map +0 -1
  1121. package/dist/schema/resolver.d.ts.map +0 -1
  1122. package/dist/schema/resolver.js.map +0 -1
  1123. package/dist/schema/schema-store-types.d.ts.map +0 -1
  1124. package/dist/schema/schema-store-types.js.map +0 -1
  1125. package/dist/schema/schema-store.d.ts.map +0 -1
  1126. package/dist/schema/schema-store.js.map +0 -1
  1127. package/dist/schema/types.d.ts.map +0 -1
  1128. package/dist/schema/types.js.map +0 -1
  1129. package/dist/server.d.ts.map +0 -1
  1130. package/dist/server.js.map +0 -1
  1131. package/dist/services.d.ts.map +0 -1
  1132. package/dist/services.js.map +0 -1
  1133. package/dist/settings-workspace.d.ts.map +0 -1
  1134. package/dist/settings-workspace.js.map +0 -1
  1135. package/dist/static/index.d.ts.map +0 -1
  1136. package/dist/static/index.js.map +0 -1
  1137. package/dist/sync-core.d.ts.map +0 -1
  1138. package/dist/sync-core.js.map +0 -1
  1139. package/dist/task-queue/index.d.ts.map +0 -1
  1140. package/dist/task-queue/index.js.map +0 -1
  1141. package/dist/task-queue/task-queue.d.ts.map +0 -1
  1142. package/dist/task-queue/task-queue.js.map +0 -1
  1143. package/dist/task-queue/types.d.ts.map +0 -1
  1144. package/dist/task-queue/types.js.map +0 -1
  1145. package/dist/types.d.ts.map +0 -1
  1146. package/dist/types.js.map +0 -1
  1147. package/dist/url-path-resolver.d.ts.map +0 -1
  1148. package/dist/url-path-resolver.js.map +0 -1
  1149. package/dist/user.d.ts.map +0 -1
  1150. package/dist/user.js.map +0 -1
  1151. package/dist/utils/async-mutex.d.ts.map +0 -1
  1152. package/dist/utils/async-mutex.js.map +0 -1
  1153. package/dist/utils/atomic-write.d.ts.map +0 -1
  1154. package/dist/utils/atomic-write.js.map +0 -1
  1155. package/dist/utils/body-field.d.ts.map +0 -1
  1156. package/dist/utils/body-field.js.map +0 -1
  1157. package/dist/utils/content-write-lock.d.ts.map +0 -1
  1158. package/dist/utils/content-write-lock.js.map +0 -1
  1159. package/dist/utils/debug.d.ts.map +0 -1
  1160. package/dist/utils/debug.js.map +0 -1
  1161. package/dist/utils/entry-url.d.ts.map +0 -1
  1162. package/dist/utils/entry-url.js.map +0 -1
  1163. package/dist/utils/error.d.ts.map +0 -1
  1164. package/dist/utils/error.js.map +0 -1
  1165. package/dist/utils/flatten-group-fields.d.ts.map +0 -1
  1166. package/dist/utils/flatten-group-fields.js.map +0 -1
  1167. package/dist/utils/format.d.ts.map +0 -1
  1168. package/dist/utils/format.js.map +0 -1
  1169. package/dist/utils/fs.d.ts.map +0 -1
  1170. package/dist/utils/fs.js.map +0 -1
  1171. package/dist/utils/git.d.ts.map +0 -1
  1172. package/dist/utils/git.js.map +0 -1
  1173. package/dist/utils/logger.d.ts.map +0 -1
  1174. package/dist/utils/logger.js.map +0 -1
  1175. package/dist/utils/occ-json-write.d.ts.map +0 -1
  1176. package/dist/utils/occ-json-write.js.map +0 -1
  1177. package/dist/utils/provisioning-lock.d.ts.map +0 -1
  1178. package/dist/utils/provisioning-lock.js.map +0 -1
  1179. package/dist/utils/sanitize-href.d.ts.map +0 -1
  1180. package/dist/utils/sanitize-href.js.map +0 -1
  1181. package/dist/utils/title-field.d.ts.map +0 -1
  1182. package/dist/utils/title-field.js.map +0 -1
  1183. package/dist/validation/deletion-checker.d.ts.map +0 -1
  1184. package/dist/validation/deletion-checker.js.map +0 -1
  1185. package/dist/validation/entry-link-validator.d.ts.map +0 -1
  1186. package/dist/validation/entry-link-validator.js.map +0 -1
  1187. package/dist/validation/entry-type-reference-validator.d.ts.map +0 -1
  1188. package/dist/validation/entry-type-reference-validator.js.map +0 -1
  1189. package/dist/validation/entry-validator.d.ts.map +0 -1
  1190. package/dist/validation/entry-validator.js.map +0 -1
  1191. package/dist/validation/field-traversal.d.ts.map +0 -1
  1192. package/dist/validation/field-traversal.js.map +0 -1
  1193. package/dist/validation/reference-validator.d.ts.map +0 -1
  1194. package/dist/validation/reference-validator.js.map +0 -1
  1195. package/dist/worker/cms-worker.d.ts.map +0 -1
  1196. package/dist/worker/cms-worker.js.map +0 -1
  1197. package/dist/worker/log.d.ts.map +0 -1
  1198. package/dist/worker/log.js.map +0 -1
  1199. package/dist/worker/task-queue-config.d.ts.map +0 -1
  1200. package/dist/worker/task-queue-config.js.map +0 -1
  1201. package/dist/worker/task-queue.d.ts.map +0 -1
  1202. package/dist/worker/task-queue.js.map +0 -1
  1203. package/dist/worker/worker-status.d.ts.map +0 -1
  1204. package/dist/worker/worker-status.js.map +0 -1
@@ -7,8 +7,8 @@
7
7
  * Field schemas are defined in the entry schema registry and referenced by name
8
8
  * in .collection.json files for reusability and type safety.
9
9
  */
10
- import type { RootCollectionConfig } from '../config';
11
- import type { EntrySchemaRegistry, SchemaResolutionResult } from './types';
10
+ import type { RootCollectionConfig } from '../config/index.js';
11
+ import type { EntrySchemaRegistry, SchemaResolutionResult } from './types.js';
12
12
  /**
13
13
  * Resolve schema from .collection.json files.
14
14
  *
@@ -39,4 +39,3 @@ export declare function hasSchemaFiles(contentRoot: string): Promise<boolean>;
39
39
  * @returns true if schema is valid
40
40
  */
41
41
  export declare function isValidSchema(schema: RootCollectionConfig): boolean;
42
- //# sourceMappingURL=resolver.d.ts.map
@@ -67,4 +67,3 @@ export function isValidSchema(schema) {
67
67
  const hasCollections = !!(schema.collections && schema.collections.length > 0);
68
68
  return hasEntries || hasCollections;
69
69
  }
70
- //# sourceMappingURL=resolver.js.map
@@ -4,8 +4,8 @@
4
4
  * These types are separated from schema-store.ts to allow client-side code
5
5
  * to import them without pulling in Node.js dependencies (fs, path).
6
6
  */
7
- import type { ContentFormat } from '../config';
8
- import type { LogicalPath } from '../paths/types';
7
+ import type { ContentFormat } from '../config/index.js';
8
+ import type { LogicalPath } from '../paths/types.js';
9
9
  /**
10
10
  * Input for creating a new collection
11
11
  */
@@ -45,4 +45,3 @@ export interface UpdateEntryTypeInput {
45
45
  default?: boolean;
46
46
  maxItems?: number;
47
47
  }
48
- //# sourceMappingURL=schema-store-types.d.ts.map
@@ -5,4 +5,3 @@
5
5
  * to import them without pulling in Node.js dependencies (fs, path).
6
6
  */
7
7
  export {};
8
- //# sourceMappingURL=schema-store-types.js.map
@@ -44,12 +44,12 @@
44
44
  * ever starts).
45
45
  */
46
46
  import { z } from 'zod';
47
- import type { ContentFormat } from '../config';
48
- import type { EntrySchemaRegistry } from './types';
49
- import type { LogicalPath, ContentId } from '../paths/types';
50
- import type { CanopyServices } from '../services';
51
- export type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput, } from './schema-store-types';
52
- import type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput } from './schema-store-types';
47
+ import type { ContentFormat } from '../config/index.js';
48
+ import type { EntrySchemaRegistry } from './types.js';
49
+ import type { LogicalPath, ContentId } from '../paths/types.js';
50
+ import type { CanopyServices } from '../services.js';
51
+ export type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput, } from './schema-store-types.js';
52
+ import type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput } from './schema-store-types.js';
53
53
  /**
54
54
  * Raw collection meta as stored in .collection.json
55
55
  */
@@ -440,4 +440,3 @@ export declare class SchemaOps {
440
440
  private updateOrderInner;
441
441
  }
442
442
  export { createCollectionInputSchema, updateCollectionInputSchema, entryTypeInputSchema, updateEntryTypeInputSchema, };
443
- //# sourceMappingURL=schema-store.d.ts.map
@@ -52,6 +52,8 @@ import { createDebugLogger } from '../utils/debug.js';
52
52
  import { getErrorMessage, isNotFoundError } from '../utils/error.js';
53
53
  import { withOccFileLock, OccWriteConflictError } from '../utils/occ-json-write.js';
54
54
  import { resolveCollectionPath } from '../content-id-index.js';
55
+ import { findIndexEntryIn, findEntryBySlugIn } from '../url-collision.js';
56
+ import { isIndexSlug } from '../utils/entry-url.js';
55
57
  import { invalidateBranchContentCaches } from '../content-index-generation.js';
56
58
  import { generateId, isValidId } from '../id.js';
57
59
  import { createLogicalPath, normalizeCollectionPath as stripContentRootPrefix, validateAndNormalizePath, } from '../paths/index.js';
@@ -647,6 +649,37 @@ export class SchemaOps {
647
649
  }
648
650
  // Ignore other errors (e.g., ENOENT if parent dir doesn't exist somehow)
649
651
  }
652
+ // [URL] Contested-URL guard. Renaming a collection re-paths every entry beneath it, so
653
+ // its index entry -- the one whose URL is the collection's own path -- lands on the new
654
+ // name. If an entry with that slug already sits in the parent, the two would contest one
655
+ // URL and only one could be served. See url-collision.ts.
656
+ //
657
+ // Only the index entry can collide: the sibling-name check above has already established
658
+ // that no `{slug}.{id}` directory exists at the destination, so no descendant DEEPER than
659
+ // the index entry has anything to collide with.
660
+ //
661
+ // That holds only as far as the check above does, and it is narrower than it looks: it
662
+ // compares case-SENSITIVELY (so `guides` beside an existing `Guides.{id}` passes it) and
663
+ // it requires `parts.length === 2 && isValidId(parts[1])` (so a plain, ID-less `docs/`
664
+ // directory at the destination passes it too). Descendants CAN then contest.
665
+ // See .claude/future-tasks/collection-sibling-name-uniqueness.md, which tracks both the
666
+ // missing create-side check and this case hole.
667
+ if (await findIndexEntryIn(physicalPath)) {
668
+ // Renaming TO "index" collapses this collection onto ITS OWN new path
669
+ // (`<parentPath>/index`), not onto `<parentPath>` -- see `computeEntryUrl`. An entry in
670
+ // the parent whose slug is the literal string "index" is the PARENT's own index/landing
671
+ // entry, which collapses onto `<parentPath>` itself -- a different URL, not a collision.
672
+ // Skip the lookup in that case; see url-collision.ts's `findUrlPathClaimant` for the
673
+ // create-time version of this same false positive.
674
+ const conflicting = isIndexSlug(updates.slug)
675
+ ? null
676
+ : await findEntryBySlugIn(parentDir, updates.slug);
677
+ if (conflicting) {
678
+ throw new Error(`Renaming this collection to "${updates.slug}" would make its landing page share a ` +
679
+ `URL with the "${updates.slug}" entry already in the parent collection, and only ` +
680
+ `one of them could be served there. Rename or remove that entry first.`);
681
+ }
682
+ }
650
683
  // Atomically rename the directory — this re-paths every entry beneath
651
684
  // it, so already-loaded ID indexes (here and in other processes) must
652
685
  // be told to rebuild.
@@ -952,4 +985,3 @@ export class SchemaOps {
952
985
  // Exports
953
986
  // ============================================================================
954
987
  export { createCollectionInputSchema, updateCollectionInputSchema, entryTypeInputSchema, updateEntryTypeInputSchema, };
955
- //# sourceMappingURL=schema-store.js.map
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Types for schema loading and resolution.
3
3
  */
4
- import type { EntrySchema, RootCollectionConfig } from '../config';
4
+ import type { EntrySchema, RootCollectionConfig } from '../config/index.js';
5
5
  /**
6
6
  * Entry schema registry maps entry schema names to field definitions.
7
7
  * Used by .collection.json files to reference reusable entry schemas.
@@ -27,4 +27,3 @@ export interface SchemaResolutionResult {
27
27
  /** Information about schema sources for debugging */
28
28
  sources: SchemaSourceInfo[];
29
29
  }
30
- //# sourceMappingURL=types.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * Types for schema loading and resolution.
3
3
  */
4
4
  export {};
5
- //# sourceMappingURL=types.js.map
package/dist/server.d.ts CHANGED
@@ -1,9 +1,19 @@
1
- export * from './content-reader';
2
- export * from './services';
3
- export * from './build-mode';
4
- export * from './context';
5
- export { operatingStrategy } from './operating-mode';
6
- export * from './authorization/groups';
1
+ export * from './content-reader.js';
2
+ export * from './services.js';
3
+ export * from './build-mode.js';
4
+ export * from './context.js';
5
+ export { operatingStrategy } from './operating-mode/index.js';
6
+ export * from './authorization/groups/index.js';
7
+ /**
8
+ * One-call factory for a **build/admin** Canopy context — for standalone
9
+ * scripts that run entirely outside a Next.js request or build phase (index
10
+ * builders, content audits, codegen, ad hoc reports). Reads the filesystem
11
+ * directly as a synthetic admin user and bypasses ALL branch/path ACLs —
12
+ * never use it in request-handling code. See the source JSDoc for the full
13
+ * security note and the `createNextCanopyContext().getCanopyForBuild()`
14
+ * comparison this mirrors.
15
+ */
16
+ export { createBuildCanopy, type CreateBuildCanopyOptions } from './build-canopy.js';
7
17
  /**
8
18
  * Resolve a CanopyUser for a request: loads internal groups from the
9
19
  * settings workspace (the single source of truth — never a content branch
@@ -12,11 +22,11 @@ export * from './authorization/groups';
12
22
  * SSR wrapper so the "authenticate -> load groups -> merge" pipeline can't
13
23
  * drift between the two again.
14
24
  */
15
- export { resolveCanopyUser, type ResolveCanopyUserDeps } from './resolve-canopy-user';
16
- export * from './branch-workspace';
17
- export * from './content-store';
18
- export { loadCollectionMetaFiles, resolveCollectionReferences, watchCollectionMetaFiles, resolveSchema, } from './schema';
19
- export type { CollectionMeta, RootCollectionMeta } from './schema';
25
+ export { resolveCanopyUser, type ResolveCanopyUserDeps } from './resolve-canopy-user.js';
26
+ export * from './branch-workspace.js';
27
+ export * from './content-store.js';
28
+ export { loadCollectionMetaFiles, resolveCollectionReferences, watchCollectionMetaFiles, resolveSchema, } from './schema/index.js';
29
+ export type { CollectionMeta, RootCollectionMeta } from './schema/index.js';
20
30
  /**
21
31
  * Create a type-safe entry schema registry with runtime validation.
22
32
  *
@@ -29,24 +39,39 @@ export type { CollectionMeta, RootCollectionMeta } from './schema';
29
39
  * automatically. See `createEntrySchemaRegistry`'s source-file JSDoc for the
30
40
  * full example.
31
41
  */
32
- export { createEntrySchemaRegistry } from './entry-schema-registry';
42
+ export { createEntrySchemaRegistry } from './entry-schema-registry.js';
33
43
  /**
34
44
  * Validate that entry-schema references in `.collection.json` files exist in
35
45
  * the registry. Useful at build time to fail fast on stale references rather
36
46
  * than at request time.
37
47
  */
38
- export { validateEntrySchemaRegistry } from './entry-schema-registry';
48
+ export { validateEntrySchemaRegistry } from './entry-schema-registry.js';
39
49
  /**
40
50
  * Derive a discriminated-union entry-type map from a registry value. Pass
41
51
  * `typeof entrySchemaRegistry` as the type argument. The registry must be
42
52
  * keyed by entry-type name for the result to plug straight into
43
53
  * `buildContentTree`'s `TEntryTypes` generic.
44
54
  */
45
- export type { EntryTypesFromRegistry } from './entry-schema';
55
+ export type { EntryTypesFromRegistry } from './entry-schema.js';
56
+ /**
57
+ * Resolve a display title for an entry using the full fallback chain: a
58
+ * schema-marked `isTitle` field, then `data.title`/`data.name`, then an
59
+ * entry-type label, then a humanized slug, then `"Untitled"`. Useful
60
+ * anywhere an entry needs a display title without re-deriving this chain —
61
+ * search-document/index builders in particular, since a search UI needs a
62
+ * title for every result regardless of which field the schema uses.
63
+ *
64
+ * Client-safe (no dependencies beyond `FieldConfig`/`InlineGroupFieldConfig`
65
+ * type imports, which are erased at compile time) — also re-exported from
66
+ * the root `canopycms` entry for that reason. Exported here too because
67
+ * build/admin scripts (the primary reason this was unreachable before) are
68
+ * more likely to `import` from `canopycms/server` than the root entry.
69
+ */
70
+ export { resolveEntryTitle } from './utils/title-field.js';
46
71
  /** Generate a Canopy-format 12-character Base58 content ID. */
47
- export { generateId } from './id';
72
+ export { generateId } from './id.js';
48
73
  /** Returns true if a string is a valid 12-character Base58 Canopy ID. */
49
- export { isValidId } from './id';
74
+ export { isValidId } from './id.js';
50
75
  /**
51
76
  * Build a hierarchical tree of content nodes from the schema and filesystem.
52
77
  *
@@ -57,29 +82,65 @@ export { isValidId } from './id';
57
82
  * Adopters using `canopycms-next` typically call `canopy.buildContentTree(...)`
58
83
  * via `getCanopyForBuild()` rather than the bare function.
59
84
  */
60
- export { buildContentTree } from './content-tree';
61
- export type { ContentTreeNode, BuildContentTreeOptions, ContentTreeExtractMeta, EntryTypeMap, DefaultEntryTypes, } from './content-tree';
85
+ export { buildContentTree } from './content-tree.js';
86
+ export type { ContentTreeNode, BuildContentTreeOptions, ContentTreeExtractMeta, EntryTypeMap, DefaultEntryTypes, } from './content-tree.js';
87
+ /**
88
+ * `buildContentTree`'s default URL path builder: strips the `{contentRootName}/`
89
+ * prefix, collapses an entry's `index` slug to its parent collection's path, and
90
+ * lowercases the result. Call it from inside a custom `buildPath` to extend the
91
+ * default rather than reimplement it — `buildContentTree`'s `buildPath` option
92
+ * replaces the default outright, it does not compose with it.
93
+ */
94
+ export { defaultBuildPath } from './content-tree.js';
62
95
  /** List all content entries as a flat array. */
63
- export { listEntries } from './content-listing';
64
- export type { ListEntriesItem, ListEntriesOptions } from './content-listing';
96
+ export { listEntries } from './content-listing.js';
97
+ export type { ListEntriesItem, ListEntriesOptions } from './content-listing.js';
98
+ /**
99
+ * Parse a content filename of the form `{type}.{slug}.{id}.{ext}` into its
100
+ * `{ type, slug, id }` parts. `id` must be a valid 12-character Base58 content ID
101
+ * (excludes the ambiguous characters `0`, `O`, `I`, `l`) or the parse fails.
102
+ * Pass `entryTypes` to also require `type` to match a known entry-type name;
103
+ * omit it to parse the filename shape without that check. See the source JSDoc
104
+ * for the full filename grammar.
105
+ */
106
+ export { parseTypedFilename } from './content-listing.js';
65
107
  /**
66
108
  * Resolve a canopy entry-link to its URL. Pair with the field-walker variants
67
109
  * (`resolveEntryLinksInText`, `resolveEntryLinksInData`) when rendering MDX
68
110
  * bodies or arbitrary frontmatter that may contain link tokens.
69
111
  */
70
- export { resolveEntryUrl, resolveEntryLinksInText, resolveEntryLinksInData, extractEntryLinkIds, } from './entry-link-resolver';
71
- export type { EntryLinkUrlResolver } from './entry-link-resolver';
72
- /** Compute the canonical URL for an entry given its logical path + slug. */
73
- export { computeEntryUrl } from './utils/entry-url';
112
+ export { resolveEntryUrl, resolveEntryLinksInText, resolveEntryLinksInData, extractEntryLinkIds, } from './entry-link-resolver.js';
113
+ export type { EntryLinkUrlResolver } from './entry-link-resolver.js';
114
+ /**
115
+ * Compute the canonical URL for an entry given its logical path + slug, and the shared
116
+ * "is this the collection-index slug?" predicate that decides whether it collapses.
117
+ */
118
+ export { computeEntryUrl, isIndexSlug } from './utils/entry-url.js';
74
119
  /** Collect static paths for `generateStaticParams` / sitemap emission. */
75
- export { collectStaticPaths } from './static';
76
- export type { StaticPathEntry, CollectStaticPathsOptions } from './static';
120
+ export { collectStaticPaths } from './static/index.js';
121
+ export type { StaticPathEntry, CollectStaticPathsOptions } from './static/index.js';
122
+ /** Enumerate routable entries WITH their data — the input to sitemaps, feeds and search indexes. */
123
+ export { collectRoutableEntries } from './static/index.js';
124
+ export type { RoutableEntry, CollectRoutableEntriesOptions } from './static/index.js';
125
+ /**
126
+ * Find every URL claimed by more than one entry — the check a production build already runs
127
+ * (and fails on). Exported so a content-integrity test can assert it directly rather than
128
+ * hand-rolling the same scan over `listEntries`.
129
+ */
130
+ export { findDuplicateUrlPaths } from './static/index.js';
131
+ export type { DuplicateUrlPath } from './static/index.js';
132
+ /**
133
+ * SEO field extraction and URL shaping (framework-agnostic). `isNoindexEntry` is the single
134
+ * predicate behind both `robots: noindex` and sitemap exclusion.
135
+ */
136
+ export { DEFAULT_SEO_FIELD_NAMES, extractSeoFields, isNoindexEntry, isAbsoluteUrl, withTrailingSlash, resolveSeoUrl, stripTrailingSlashes, } from './static/index.js';
137
+ export type { SeoFields, SeoFieldNames, SeoFieldLocation, SeoOgType, SeoTwitterCard, ExtractSeoFieldsOptions, ResolveSeoUrlOptions, } from './static/index.js';
77
138
  /**
78
139
  * Start a chokidar-backed watcher that detects divergence between the dev
79
140
  * working tree and the resolved branch clone. Dev mode only.
80
141
  */
81
- export { startDevContentWatcher } from './dev-content-watcher';
82
- export type { StartDevContentWatcherOptions } from './dev-content-watcher';
142
+ export { startDevContentWatcher } from './dev-content-watcher.js';
143
+ export type { StartDevContentWatcherOptions } from './dev-content-watcher.js';
83
144
  /**
84
145
  * Instantiate the AssetStore configured by a site's `media` config
85
146
  * (`config.media`). Returns undefined when no store applies: `media` is
@@ -87,7 +148,7 @@ export type { StartDevContentWatcherOptions } from './dev-content-watcher';
87
148
  * `directory` with no fallback, or `adapter: 'lfs'` (config literal kept,
88
149
  * not yet implemented).
89
150
  */
90
- export { createAssetStore } from './assets/factory';
151
+ export { createAssetStore } from './assets/factory.js';
91
152
  /**
92
153
  * The five S3/local bucket-prefix strings (`asset-originals/`, `asset-staging/`,
93
154
  * `asset-meta/`, `assets/`, `assets/t/`). Re-exported so server-only consumers
@@ -96,9 +157,9 @@ export { createAssetStore } from './assets/factory';
96
157
  * keys through the same constants `S3AssetStore` uses, rather than
97
158
  * duplicating the literal prefix strings.
98
159
  */
99
- export { ASSET_PREFIXES, type AssetPrefixes } from './assets/keys';
160
+ export { ASSET_PREFIXES, type AssetPrefixes } from './assets/keys.js';
100
161
  /** Asset metadata sidecar shape (`asset-meta/{hash32}.json`), written by the finalize pipeline and read by the transform layer (dev-mode emulation and the prod transform Lambda). */
101
- export type { AssetMeta } from './assets/types';
162
+ export type { AssetMeta } from './assets/types.js';
102
163
  /**
103
164
  * Parse the three path segments after `assets/t/` (`{directives}/{hash32}/{slug}.{ext}`)
104
165
  * into a validated `TransformDirectives` set, or a structured parse error.
@@ -106,8 +167,8 @@ export type { AssetMeta } from './assets/types';
106
167
  * and the prod transform Lambda (`packages/canopycms-cdk/lambda/asset-transform`)
107
168
  * so the URL grammar is defined in exactly one place.
108
169
  */
109
- export { parseTransformPath } from './assets/transform-directives';
110
- export type { ParsedTransformPath, ParseTransformPathResult } from './assets/transform-directives';
170
+ export { parseTransformPath } from './assets/transform-directives.js';
171
+ export type { ParsedTransformPath, ParseTransformPathResult } from './assets/transform-directives.js';
111
172
  /**
112
173
  * Canonical string form of a `TransformDirectives` set - the cache key every
113
174
  * transform output is stored under (`assets/t/{formatDirectives(...)}/{hash32}/{slug}.{ext}`).
@@ -115,7 +176,7 @@ export type { ParsedTransformPath, ParseTransformPathResult } from './assets/tra
115
176
  * format to the same string. Reused by the prod transform Lambda so its
116
177
  * canonical writes agree with the dev-mode emulation and `assetUrl()`.
117
178
  */
118
- export { formatDirectives } from './assets/transform-directives';
179
+ export { formatDirectives } from './assets/transform-directives.js';
119
180
  /**
120
181
  * Apply a parsed `TransformDirectives` set to source image bytes with sharp:
121
182
  * resize/format/quality/crop, with EXIF stripped on every re-encode (even
@@ -123,6 +184,5 @@ export { formatDirectives } from './assets/transform-directives';
123
184
  * `/assets/t/*` emulation and the prod transform Lambda
124
185
  * (`packages/canopycms-cdk/lambda/asset-transform`).
125
186
  */
126
- export { applyTransform } from './assets/transform';
127
- export type { ApplyTransformInput, TransformResult } from './assets/transform';
128
- //# sourceMappingURL=server.d.ts.map
187
+ export { applyTransform } from './assets/transform.js';
188
+ export type { ApplyTransformInput, TransformResult } from './assets/transform.js';
package/dist/server.js CHANGED
@@ -9,6 +9,16 @@ export * from './build-mode.js';
9
9
  export * from './context.js';
10
10
  export { operatingStrategy } from './operating-mode/index.js';
11
11
  export * from './authorization/groups/index.js';
12
+ /**
13
+ * One-call factory for a **build/admin** Canopy context — for standalone
14
+ * scripts that run entirely outside a Next.js request or build phase (index
15
+ * builders, content audits, codegen, ad hoc reports). Reads the filesystem
16
+ * directly as a synthetic admin user and bypasses ALL branch/path ACLs —
17
+ * never use it in request-handling code. See the source JSDoc for the full
18
+ * security note and the `createNextCanopyContext().getCanopyForBuild()`
19
+ * comparison this mirrors.
20
+ */
21
+ export { createBuildCanopy } from './build-canopy.js';
12
22
  /**
13
23
  * Resolve a CanopyUser for a request: loads internal groups from the
14
24
  * settings workspace (the single source of truth — never a content branch
@@ -40,6 +50,21 @@ export { createEntrySchemaRegistry } from './entry-schema-registry.js';
40
50
  * than at request time.
41
51
  */
42
52
  export { validateEntrySchemaRegistry } from './entry-schema-registry.js';
53
+ /**
54
+ * Resolve a display title for an entry using the full fallback chain: a
55
+ * schema-marked `isTitle` field, then `data.title`/`data.name`, then an
56
+ * entry-type label, then a humanized slug, then `"Untitled"`. Useful
57
+ * anywhere an entry needs a display title without re-deriving this chain —
58
+ * search-document/index builders in particular, since a search UI needs a
59
+ * title for every result regardless of which field the schema uses.
60
+ *
61
+ * Client-safe (no dependencies beyond `FieldConfig`/`InlineGroupFieldConfig`
62
+ * type imports, which are erased at compile time) — also re-exported from
63
+ * the root `canopycms` entry for that reason. Exported here too because
64
+ * build/admin scripts (the primary reason this was unreachable before) are
65
+ * more likely to `import` from `canopycms/server` than the root entry.
66
+ */
67
+ export { resolveEntryTitle } from './utils/title-field.js';
43
68
  /** Generate a Canopy-format 12-character Base58 content ID. */
44
69
  export { generateId } from './id.js';
45
70
  /** Returns true if a string is a valid 12-character Base58 Canopy ID. */
@@ -55,18 +80,51 @@ export { isValidId } from './id.js';
55
80
  * via `getCanopyForBuild()` rather than the bare function.
56
81
  */
57
82
  export { buildContentTree } from './content-tree.js';
83
+ /**
84
+ * `buildContentTree`'s default URL path builder: strips the `{contentRootName}/`
85
+ * prefix, collapses an entry's `index` slug to its parent collection's path, and
86
+ * lowercases the result. Call it from inside a custom `buildPath` to extend the
87
+ * default rather than reimplement it — `buildContentTree`'s `buildPath` option
88
+ * replaces the default outright, it does not compose with it.
89
+ */
90
+ export { defaultBuildPath } from './content-tree.js';
58
91
  /** List all content entries as a flat array. */
59
92
  export { listEntries } from './content-listing.js';
93
+ /**
94
+ * Parse a content filename of the form `{type}.{slug}.{id}.{ext}` into its
95
+ * `{ type, slug, id }` parts. `id` must be a valid 12-character Base58 content ID
96
+ * (excludes the ambiguous characters `0`, `O`, `I`, `l`) or the parse fails.
97
+ * Pass `entryTypes` to also require `type` to match a known entry-type name;
98
+ * omit it to parse the filename shape without that check. See the source JSDoc
99
+ * for the full filename grammar.
100
+ */
101
+ export { parseTypedFilename } from './content-listing.js';
60
102
  /**
61
103
  * Resolve a canopy entry-link to its URL. Pair with the field-walker variants
62
104
  * (`resolveEntryLinksInText`, `resolveEntryLinksInData`) when rendering MDX
63
105
  * bodies or arbitrary frontmatter that may contain link tokens.
64
106
  */
65
107
  export { resolveEntryUrl, resolveEntryLinksInText, resolveEntryLinksInData, extractEntryLinkIds, } from './entry-link-resolver.js';
66
- /** Compute the canonical URL for an entry given its logical path + slug. */
67
- export { computeEntryUrl } from './utils/entry-url.js';
108
+ /**
109
+ * Compute the canonical URL for an entry given its logical path + slug, and the shared
110
+ * "is this the collection-index slug?" predicate that decides whether it collapses.
111
+ */
112
+ export { computeEntryUrl, isIndexSlug } from './utils/entry-url.js';
68
113
  /** Collect static paths for `generateStaticParams` / sitemap emission. */
69
114
  export { collectStaticPaths } from './static/index.js';
115
+ /** Enumerate routable entries WITH their data — the input to sitemaps, feeds and search indexes. */
116
+ export { collectRoutableEntries } from './static/index.js';
117
+ /**
118
+ * Find every URL claimed by more than one entry — the check a production build already runs
119
+ * (and fails on). Exported so a content-integrity test can assert it directly rather than
120
+ * hand-rolling the same scan over `listEntries`.
121
+ */
122
+ export { findDuplicateUrlPaths } from './static/index.js';
123
+ /**
124
+ * SEO field extraction and URL shaping (framework-agnostic). `isNoindexEntry` is the single
125
+ * predicate behind both `robots: noindex` and sitemap exclusion.
126
+ */
127
+ export { DEFAULT_SEO_FIELD_NAMES, extractSeoFields, isNoindexEntry, isAbsoluteUrl, withTrailingSlash, resolveSeoUrl, stripTrailingSlashes, } from './static/index.js';
70
128
  /**
71
129
  * Start a chokidar-backed watcher that detects divergence between the dev
72
130
  * working tree and the resolved branch clone. Dev mode only.
@@ -113,4 +171,3 @@ export { formatDirectives } from './assets/transform-directives.js';
113
171
  * (`packages/canopycms-cdk/lambda/asset-transform`).
114
172
  */
115
173
  export { applyTransform } from './assets/transform.js';
116
- //# sourceMappingURL=server.js.map
@@ -1,12 +1,12 @@
1
- import type { CanopyConfig } from './config';
2
- import type { EntrySchemaRegistry } from './schema/types';
3
- import type { BranchContext } from './types';
4
- import type { CanopyUser } from './user';
5
- import { createCheckPathAccess, createCheckBranchAccess, createCheckContentAccess, type ContentAccessChecker } from './authorization';
6
- import { GitManager } from './git-manager';
7
- import { BranchRegistry } from './branch-registry';
8
- import { type GitHubService } from './github-service';
9
- import { BranchSchemaCache } from './branch-schema-cache';
1
+ import type { CanopyConfig } from './config/index.js';
2
+ import type { EntrySchemaRegistry } from './schema/types.js';
3
+ import type { BranchContext } from './types.js';
4
+ import type { CanopyUser } from './user.js';
5
+ import { createCheckBranchAccess, createCheckContentAccess, type ContentAccessChecker } from './authorization/index.js';
6
+ import { GitManager } from './git-manager.js';
7
+ import { BranchRegistry } from './branch-registry.js';
8
+ import { type GitHubService } from './github-service.js';
9
+ import { BranchSchemaCache } from './branch-schema-cache.js';
10
10
  /**
11
11
  * Parse bootstrap admin IDs from environment variable.
12
12
  * These users are always treated as Admins regardless of group membership.
@@ -23,9 +23,8 @@ export interface CanopyServices {
23
23
  /** Entry schema registry mapping entry schema names to field definitions */
24
24
  entrySchemaRegistry: EntrySchemaRegistry;
25
25
  /** Per-branch schema cache */
26
- branchSchemaCache: import('./branch-schema-cache').BranchSchemaCache;
26
+ branchSchemaCache: import('./branch-schema-cache.js').BranchSchemaCache;
27
27
  checkBranchAccess: (context: BranchContext, user: CanopyUser) => ReturnType<ReturnType<typeof createCheckBranchAccess>>;
28
- checkPathAccess: ReturnType<typeof createCheckPathAccess>;
29
28
  checkContentAccess: ReturnType<typeof createCheckContentAccess>;
30
29
  /**
31
30
  * Build a batch content-access checker that loads permissions once and returns
@@ -110,4 +109,3 @@ export declare const createCanopyServices: (config: CanopyConfig, options?: Crea
110
109
  * @param options - Optional settings including entry schema registry
111
110
  */
112
111
  export declare const createTestCanopyServices: (config: CanopyConfig, options?: CreateCanopyServicesOptions) => Promise<CanopyServices>;
113
- //# sourceMappingURL=services.d.ts.map
package/dist/services.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getConfigDefaults } from './config/index.js';
2
- import { createCheckPathAccess, createCheckBranchAccess, createCheckContentAccess, createContentAccessChecker, loadPathPermissions, } from './authorization/index.js';
2
+ import { createCheckBranchAccess, createCheckContentAccess, createContentAccessChecker, loadPathPermissions, } from './authorization/index.js';
3
3
  import { GitManager, GitRemoteRefMissingError } from './git-manager.js';
4
4
  import { BranchRegistry } from './branch-registry.js';
5
5
  import { SettingsWorkspaceManager } from './settings-workspace.js';
@@ -116,10 +116,7 @@ async function _createCanopyServicesInternal(config, options) {
116
116
  const bootstrapAdminIds = getBootstrapAdminIds();
117
117
  // Create per-branch schema cache (or use provided one for testing)
118
118
  const branchSchemaCache = options.branchSchemaCache ?? new BranchSchemaCache(config.mode);
119
- const checkBranchAccess = createCheckBranchAccess(config.defaultBranchAccess ?? 'deny');
120
- // Path permissions are loaded dynamically from the settings branch at request time.
121
- // At the service level, we bind with empty rules for direct path checks.
122
- const checkPathAccess = createCheckPathAccess([], config.defaultPathAccess ?? 'deny');
119
+ const checkBranchAccess = createCheckBranchAccess(config.defaultBranchAccess ?? 'deny', config);
123
120
  // Content access loads permissions dynamically from the settings branch (orphan git branch)
124
121
  const getSettingsBranchRoot = options.getSettingsBranchRoot ??
125
122
  (async () => {
@@ -347,7 +344,6 @@ async function _createCanopyServicesInternal(config, options) {
347
344
  entrySchemaRegistry: options.entrySchemaRegistry ?? {},
348
345
  branchSchemaCache,
349
346
  checkBranchAccess,
350
- checkPathAccess,
351
347
  checkContentAccess,
352
348
  createContentAccessChecker: createContentAccessCheckerBound,
353
349
  createGitManagerFor,
@@ -400,4 +396,3 @@ async function _createCanopyServicesInternal(config, options) {
400
396
  };
401
397
  return services;
402
398
  }
403
- //# sourceMappingURL=services.js.map
@@ -1,5 +1,5 @@
1
- import type { CanopyConfig } from './config';
2
- import type { OperatingMode } from './operating-mode';
1
+ import type { CanopyConfig } from './config/index.js';
2
+ import type { OperatingMode } from './operating-mode/index.js';
3
3
  /**
4
4
  * Directory the cross-process init lock is anchored on — a dedicated sibling of
5
5
  * the settings root, and NOT the settings root itself.
@@ -10,18 +10,16 @@ import type { OperatingMode } from './operating-mode';
10
10
  * mkdir's its target, and `GitManager.initializeWorkspace` clones INTO the
11
11
  * settings root — `git clone` refuses a destination that already has content
12
12
  * in it. So the lock lives beside the settings root, never inside it.
13
- * 2. **It must not alias any other proper-lockfile target.** proper-lockfile
14
- * keys its module-level bookkeeping (refresh timer + release function) by the
15
- * TARGET path passed to `lock()`, not by `lockfilePath`, so two live locks in
16
- * one process that share a target clobber each other's registry entry (see
17
- * `.claude/future-tasks/proper-lockfile-hazards.md`). This target is a
18
- * dedicated dot-directory, so it collides with none of the existing targets:
19
- * the content-branches root and the bare remote's parent (provisioning locks
20
- * — note the latter IS `path.dirname(settingsRoot)`, which is precisely why
21
- * this cannot be anchored there: settings init calls into
22
- * `ensureLocalSimulatedRemote` while holding this lock), `<branchRoot>/.canopy-meta`
23
- * (content-write lock), `<workspaceRoot>/.tasks` (worker task lock), and the
24
- * individual JSON file paths used by `withOccFileLock`.
13
+ * 2. **Its marker must not collide with another lock's marker.** Since
14
+ * 2026-08-20 `acquireProvisioningLock` anchors proper-lockfile on the lock
15
+ * MARKER's own path rather than on the directory holding it, so its
16
+ * in-process registry key is the on-disk lock identity and two live locks
17
+ * can no longer clobber each other's bookkeeping (see docs/concurrency.md,
18
+ * "Anchor path matters"). A dedicated dot-directory is still the right home
19
+ * for this marker: `path.dirname(settingsRoot)` is where
20
+ * `ensureLocalSimulatedRemote` puts `.remote-init.lock`, and settings init
21
+ * calls into it while holding this lock, so keeping the two markers in
22
+ * separate directories keeps that nesting obvious rather than incidental.
25
23
  */
26
24
  export declare function settingsInitLockTarget(settingsRoot: string): string;
27
25
  export interface EnsureSettingsWorkspaceOptions {
@@ -51,4 +49,3 @@ export declare class SettingsWorkspaceManager {
51
49
  constructor(config: CanopyConfig);
52
50
  ensureGitWorkspace(options: EnsureSettingsWorkspaceOptions): Promise<void>;
53
51
  }
54
- //# sourceMappingURL=settings-workspace.d.ts.map
@@ -21,18 +21,16 @@ const SETTINGS_INIT_LOCK_NAME = 'lock';
21
21
  * mkdir's its target, and `GitManager.initializeWorkspace` clones INTO the
22
22
  * settings root — `git clone` refuses a destination that already has content
23
23
  * in it. So the lock lives beside the settings root, never inside it.
24
- * 2. **It must not alias any other proper-lockfile target.** proper-lockfile
25
- * keys its module-level bookkeeping (refresh timer + release function) by the
26
- * TARGET path passed to `lock()`, not by `lockfilePath`, so two live locks in
27
- * one process that share a target clobber each other's registry entry (see
28
- * `.claude/future-tasks/proper-lockfile-hazards.md`). This target is a
29
- * dedicated dot-directory, so it collides with none of the existing targets:
30
- * the content-branches root and the bare remote's parent (provisioning locks
31
- * — note the latter IS `path.dirname(settingsRoot)`, which is precisely why
32
- * this cannot be anchored there: settings init calls into
33
- * `ensureLocalSimulatedRemote` while holding this lock), `<branchRoot>/.canopy-meta`
34
- * (content-write lock), `<workspaceRoot>/.tasks` (worker task lock), and the
35
- * individual JSON file paths used by `withOccFileLock`.
24
+ * 2. **Its marker must not collide with another lock's marker.** Since
25
+ * 2026-08-20 `acquireProvisioningLock` anchors proper-lockfile on the lock
26
+ * MARKER's own path rather than on the directory holding it, so its
27
+ * in-process registry key is the on-disk lock identity and two live locks
28
+ * can no longer clobber each other's bookkeeping (see docs/concurrency.md,
29
+ * "Anchor path matters"). A dedicated dot-directory is still the right home
30
+ * for this marker: `path.dirname(settingsRoot)` is where
31
+ * `ensureLocalSimulatedRemote` puts `.remote-init.lock`, and settings init
32
+ * calls into it while holding this lock, so keeping the two markers in
33
+ * separate directories keeps that nesting obvious rather than incidental.
36
34
  */
37
35
  export function settingsInitLockTarget(settingsRoot) {
38
36
  return path.join(path.dirname(path.resolve(settingsRoot)), SETTINGS_INIT_LOCK_DIR);
@@ -220,4 +218,3 @@ export class SettingsWorkspaceManager {
220
218
  });
221
219
  }
222
220
  }
223
- //# sourceMappingURL=settings-workspace.js.map