canopycms 0.0.67-int.90 → 0.0.67

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 (539) hide show
  1. package/README.md +30 -3
  2. package/dist/ai/generate.js +1 -27
  3. package/dist/ai/handler.d.ts +0 -4
  4. package/dist/ai/handler.js +0 -11
  5. package/dist/ai/index.d.ts +1 -8
  6. package/dist/ai/index.js +1 -8
  7. package/dist/ai/json-to-markdown.js +15 -58
  8. package/dist/ai/resolve-branch.d.ts +2 -7
  9. package/dist/ai/resolve-branch.js +2 -8
  10. package/dist/ai/strip-mdx.d.ts +5 -13
  11. package/dist/ai/strip-mdx.js +5 -17
  12. package/dist/ai/to-plain-text.d.ts +10 -28
  13. package/dist/ai/to-plain-text.js +10 -28
  14. package/dist/ai/transform-components.d.ts +2 -4
  15. package/dist/ai/transform-components.js +8 -19
  16. package/dist/ai/types.d.ts +5 -10
  17. package/dist/api/admin-branch-health.d.ts +4 -12
  18. package/dist/api/admin-branch-health.js +26 -66
  19. package/dist/api/admin.d.ts +4 -12
  20. package/dist/api/admin.js +10 -26
  21. package/dist/api/assets.d.ts +0 -25
  22. package/dist/api/assets.js +50 -91
  23. package/dist/api/branch-merge.d.ts +1 -1
  24. package/dist/api/branch-merge.js +0 -2
  25. package/dist/api/branch-review.d.ts +0 -8
  26. package/dist/api/branch-review.js +0 -13
  27. package/dist/api/branch-status.d.ts +0 -3
  28. package/dist/api/branch-status.js +8 -33
  29. package/dist/api/branch-withdraw.d.ts +0 -1
  30. package/dist/api/branch-withdraw.js +6 -9
  31. package/dist/api/branch.d.ts +7 -12
  32. package/dist/api/branch.js +7 -44
  33. package/dist/api/client.d.ts +71 -224
  34. package/dist/api/client.js +82 -233
  35. package/dist/api/comments.d.ts +2 -4
  36. package/dist/api/comments.js +0 -17
  37. package/dist/api/content.d.ts +0 -6
  38. package/dist/api/content.js +66 -142
  39. package/dist/api/entries-constants.d.ts +5 -9
  40. package/dist/api/entries-constants.js +5 -9
  41. package/dist/api/entries.d.ts +8 -13
  42. package/dist/api/entries.js +20 -51
  43. package/dist/api/github-sync.d.ts +2 -4
  44. package/dist/api/github-sync.js +4 -8
  45. package/dist/api/groups.d.ts +3 -0
  46. package/dist/api/groups.js +8 -21
  47. package/dist/api/guards.d.ts +4 -16
  48. package/dist/api/guards.js +3 -22
  49. package/dist/api/index.d.ts +4 -4
  50. package/dist/api/permissions.d.ts +2 -0
  51. package/dist/api/permissions.js +18 -40
  52. package/dist/api/reference-options.d.ts +0 -1
  53. package/dist/api/reference-options.js +3 -11
  54. package/dist/api/request-body-hash.d.ts +12 -23
  55. package/dist/api/request-body-hash.js +12 -23
  56. package/dist/api/resolve-references.d.ts +0 -1
  57. package/dist/api/resolve-references.js +13 -28
  58. package/dist/api/route-builder.d.ts +3 -7
  59. package/dist/api/route-builder.js +1 -1
  60. package/dist/api/routes.d.ts +12 -0
  61. package/dist/api/routes.js +47 -0
  62. package/dist/api/schema.d.ts +23 -33
  63. package/dist/api/schema.js +20 -74
  64. package/dist/api/settings-helpers.js +4 -5
  65. package/dist/api/types.d.ts +0 -5
  66. package/dist/api/user.js +0 -5
  67. package/dist/api/validators.d.ts +14 -52
  68. package/dist/api/validators.js +14 -52
  69. package/dist/assets/asset-prefixes.d.ts +4 -8
  70. package/dist/assets/asset-prefixes.js +4 -8
  71. package/dist/assets/asset-src.d.ts +5 -22
  72. package/dist/assets/asset-src.js +5 -21
  73. package/dist/assets/factory.d.ts +1 -2
  74. package/dist/assets/factory.js +1 -2
  75. package/dist/assets/finalize.d.ts +3 -1
  76. package/dist/assets/finalize.js +3 -1
  77. package/dist/assets/index.d.ts +3 -3
  78. package/dist/assets/index.js +1 -1
  79. package/dist/assets/keys.d.ts +5 -3
  80. package/dist/assets/keys.js +6 -3
  81. package/dist/assets/pipeline.d.ts +3 -2
  82. package/dist/assets/pipeline.js +22 -56
  83. package/dist/assets/sharp-loader.d.ts +2 -10
  84. package/dist/assets/sharp-loader.js +2 -10
  85. package/dist/assets/store-local.d.ts +1 -2
  86. package/dist/assets/store-local.js +1 -2
  87. package/dist/assets/store-s3.d.ts +3 -4
  88. package/dist/assets/svg-sanitizer.d.ts +6 -14
  89. package/dist/assets/svg-sanitizer.js +6 -14
  90. package/dist/assets/transform-directives.d.ts +3 -4
  91. package/dist/assets/transform-directives.js +1 -1
  92. package/dist/assets/transform.d.ts +19 -30
  93. package/dist/assets/transform.js +18 -31
  94. package/dist/auth/cache.d.ts +2 -3
  95. package/dist/auth/cache.js +2 -3
  96. package/dist/auth/caching-auth-plugin.d.ts +11 -22
  97. package/dist/auth/caching-auth-plugin.js +12 -14
  98. package/dist/auth/context-helpers.d.ts +6 -20
  99. package/dist/auth/context-helpers.js +5 -17
  100. package/dist/auth/file-based-auth-cache.d.ts +10 -21
  101. package/dist/auth/file-based-auth-cache.js +23 -51
  102. package/dist/auth/plugin.d.ts +29 -61
  103. package/dist/auth/plugin.js +9 -13
  104. package/dist/auth/types.d.ts +11 -20
  105. package/dist/authorization/branch.d.ts +30 -49
  106. package/dist/authorization/branch.js +16 -42
  107. package/dist/authorization/content.d.ts +11 -40
  108. package/dist/authorization/content.js +13 -45
  109. package/dist/authorization/groups/index.d.ts +0 -3
  110. package/dist/authorization/groups/index.js +0 -3
  111. package/dist/authorization/groups/loader.d.ts +14 -28
  112. package/dist/authorization/groups/loader.js +14 -38
  113. package/dist/authorization/groups/schema.d.ts +0 -6
  114. package/dist/authorization/groups/schema.js +4 -7
  115. package/dist/authorization/helpers.d.ts +9 -28
  116. package/dist/authorization/helpers.js +9 -28
  117. package/dist/authorization/index.d.ts +3 -25
  118. package/dist/authorization/index.js +3 -35
  119. package/dist/authorization/path.d.ts +6 -13
  120. package/dist/authorization/path.js +8 -25
  121. package/dist/authorization/permissions/index.d.ts +0 -3
  122. package/dist/authorization/permissions/index.js +0 -3
  123. package/dist/authorization/permissions/loader.d.ts +14 -27
  124. package/dist/authorization/permissions/loader.js +14 -32
  125. package/dist/authorization/permissions/schema.d.ts +1 -6
  126. package/dist/authorization/permissions/schema.js +6 -13
  127. package/dist/authorization/protected-branch.d.ts +36 -65
  128. package/dist/authorization/protected-branch.js +29 -41
  129. package/dist/authorization/settings-file-store.d.ts +38 -81
  130. package/dist/authorization/settings-file-store.js +38 -79
  131. package/dist/authorization/types.d.ts +4 -26
  132. package/dist/authorization/types.js +0 -6
  133. package/dist/authorization/validation.d.ts +1 -23
  134. package/dist/authorization/validation.js +1 -24
  135. package/dist/branch-health.d.ts +39 -67
  136. package/dist/branch-health.js +27 -43
  137. package/dist/branch-metadata-file.d.ts +16 -32
  138. package/dist/branch-metadata-file.js +13 -26
  139. package/dist/branch-metadata.d.ts +49 -80
  140. package/dist/branch-metadata.js +57 -87
  141. package/dist/branch-registry.d.ts +26 -64
  142. package/dist/branch-registry.js +44 -93
  143. package/dist/branch-schema-cache.d.ts +34 -124
  144. package/dist/branch-schema-cache.js +49 -155
  145. package/dist/branch-workspace.d.ts +4 -4
  146. package/dist/branch-workspace.js +15 -19
  147. package/dist/build/generate-ai-content.d.ts +1 -0
  148. package/dist/build/generate-ai-content.js +12 -25
  149. package/dist/build-canopy.d.ts +17 -27
  150. package/dist/build-canopy.js +16 -23
  151. package/dist/build-mode.d.ts +25 -27
  152. package/dist/build-mode.js +25 -29
  153. package/dist/cli/cli.d.ts +15 -26
  154. package/dist/cli/cli.js +601 -978
  155. package/dist/cli/generate-ai-content.js +351 -628
  156. package/dist/cli/github-app-manifest.d.ts +84 -0
  157. package/dist/cli/github-app-manifest.js +161 -0
  158. package/dist/cli/init-github-app.d.ts +110 -444
  159. package/dist/cli/init-github-app.js +236 -773
  160. package/dist/cli/init.js +39 -80
  161. package/dist/cli/migrate.d.ts +13 -10
  162. package/dist/cli/migrate.js +22 -30
  163. package/dist/cli/project-detect.d.ts +17 -31
  164. package/dist/cli/project-detect.js +31 -42
  165. package/dist/cli/project-root.d.ts +4 -11
  166. package/dist/cli/project-root.js +4 -11
  167. package/dist/cli/prompt.d.ts +10 -0
  168. package/dist/cli/prompt.js +67 -0
  169. package/dist/cli/sync.d.ts +0 -8
  170. package/dist/cli/sync.js +8 -28
  171. package/dist/cli/template-files/middleware.ts.template +15 -29
  172. package/dist/cli/templates.d.ts +2 -12
  173. package/dist/cli/templates.js +4 -4
  174. package/dist/client.d.ts +1 -1
  175. package/dist/comment-store.d.ts +32 -53
  176. package/dist/comment-store.js +32 -52
  177. package/dist/config/flatten.d.ts +0 -3
  178. package/dist/config/flatten.js +2 -12
  179. package/dist/config/helpers.js +2 -2
  180. package/dist/config/index.d.ts +2 -2
  181. package/dist/config/index.js +1 -4
  182. package/dist/config/schemas/collection.d.ts +0 -8
  183. package/dist/config/schemas/collection.js +0 -10
  184. package/dist/config/schemas/config.d.ts +6 -78
  185. package/dist/config/schemas/config.js +38 -54
  186. package/dist/config/schemas/field.d.ts +2 -242
  187. package/dist/config/schemas/field.js +9 -20
  188. package/dist/config/schemas/media.js +1 -1
  189. package/dist/config/schemas/permissions.js +0 -2
  190. package/dist/config/schemas/url.d.ts +5 -6
  191. package/dist/config/schemas/url.js +5 -6
  192. package/dist/config/types.d.ts +45 -33
  193. package/dist/config/types.js +0 -1
  194. package/dist/config.d.ts +1 -8
  195. package/dist/config.js +1 -9
  196. package/dist/content-id-index.d.ts +76 -188
  197. package/dist/content-id-index.js +79 -230
  198. package/dist/content-index-generation.d.ts +27 -48
  199. package/dist/content-index-generation.js +35 -84
  200. package/dist/content-index-registry.d.ts +15 -24
  201. package/dist/content-index-registry.js +5 -9
  202. package/dist/content-listing.d.ts +64 -107
  203. package/dist/content-listing.js +68 -118
  204. package/dist/content-reader.d.ts +20 -29
  205. package/dist/content-reader.js +10 -18
  206. package/dist/content-store.d.ts +210 -336
  207. package/dist/content-store.js +413 -657
  208. package/dist/content-tree.d.ts +44 -86
  209. package/dist/content-tree.js +26 -54
  210. package/dist/context.d.ts +67 -94
  211. package/dist/context.js +53 -72
  212. package/dist/dev-content-watcher.d.ts +18 -18
  213. package/dist/dev-content-watcher.js +41 -44
  214. package/dist/editor/BranchManager.d.ts +3 -6
  215. package/dist/editor/BranchManager.js +24 -44
  216. package/dist/editor/CanopyEditor.js +5 -2
  217. package/dist/editor/CommentsPanel.js +0 -2
  218. package/dist/editor/Editor.js +19 -76
  219. package/dist/editor/EditorAuthGate.d.ts +27 -0
  220. package/dist/editor/EditorAuthGate.js +140 -0
  221. package/dist/editor/EntryNavigator.js +0 -20
  222. package/dist/editor/FormRenderer.d.ts +1 -2
  223. package/dist/editor/FormRenderer.js +8 -23
  224. package/dist/editor/admin/SystemHealthPanel.js +20 -37
  225. package/dist/editor/admin/useSystemHealth.d.ts +2 -3
  226. package/dist/editor/admin/useSystemHealth.js +10 -12
  227. package/dist/editor/client-reference-resolver.d.ts +2 -5
  228. package/dist/editor/client-reference-resolver.js +2 -19
  229. package/dist/editor/comments/BranchComments.js +0 -4
  230. package/dist/editor/comments/EntryComments.js +0 -4
  231. package/dist/editor/comments/FieldWrapper.js +0 -4
  232. package/dist/editor/comments/InlineCommentThread.js +0 -2
  233. package/dist/editor/comments/ThreadCarousel.d.ts +0 -58
  234. package/dist/editor/comments/ThreadCarousel.js +0 -12
  235. package/dist/editor/components/EditorFooter.d.ts +0 -8
  236. package/dist/editor/components/EditorFooter.js +0 -5
  237. package/dist/editor/components/EditorHeader.d.ts +0 -31
  238. package/dist/editor/components/EditorHeader.js +21 -71
  239. package/dist/editor/components/EditorSidebar.d.ts +0 -19
  240. package/dist/editor/components/EditorSidebar.js +0 -16
  241. package/dist/editor/components/EntryCreateModal.d.ts +4 -4
  242. package/dist/editor/components/EntryCreateModal.js +7 -22
  243. package/dist/editor/components/RenameEntryModal.js +0 -4
  244. package/dist/editor/components/UserBadge.js +0 -10
  245. package/dist/editor/components/index.js +0 -2
  246. package/dist/editor/context/ApiClientContext.d.ts +8 -7
  247. package/dist/editor/context/ApiClientContext.js +39 -11
  248. package/dist/editor/context/AssetContext.d.ts +7 -17
  249. package/dist/editor/context/AssetContext.js +7 -17
  250. package/dist/editor/context/EditorIdentityContext.d.ts +13 -0
  251. package/dist/editor/context/EditorIdentityContext.js +7 -0
  252. package/dist/editor/context/EditorStateContext.d.ts +10 -41
  253. package/dist/editor/context/EditorStateContext.js +7 -23
  254. package/dist/editor/context/SWRProvider.d.ts +3 -6
  255. package/dist/editor/context/index.d.ts +1 -20
  256. package/dist/editor/context/index.js +1 -20
  257. package/dist/editor/editor-utils.d.ts +8 -47
  258. package/dist/editor/editor-utils.js +19 -72
  259. package/dist/editor/fields/BlockField.d.ts +2 -2
  260. package/dist/editor/fields/BlockField.js +1 -2
  261. package/dist/editor/fields/CodeField.d.ts +0 -1
  262. package/dist/editor/fields/CodeField.js +0 -1
  263. package/dist/editor/fields/DateTimeField.d.ts +15 -22
  264. package/dist/editor/fields/DateTimeField.js +17 -26
  265. package/dist/editor/fields/ImageField.d.ts +2 -2
  266. package/dist/editor/fields/ImageField.js +8 -14
  267. package/dist/editor/fields/InlineGroupField.d.ts +0 -1
  268. package/dist/editor/fields/InlineGroupField.js +0 -1
  269. package/dist/editor/fields/MarkdownField.d.ts +0 -1
  270. package/dist/editor/fields/MarkdownField.js +6 -11
  271. package/dist/editor/fields/MdxImageDialog.d.ts +1 -1
  272. package/dist/editor/fields/MdxImageDialog.js +0 -1
  273. package/dist/editor/fields/NumberField.d.ts +9 -19
  274. package/dist/editor/fields/NumberField.js +11 -22
  275. package/dist/editor/fields/NumberListField.d.ts +7 -10
  276. package/dist/editor/fields/NumberListField.js +7 -10
  277. package/dist/editor/fields/ObjectField.d.ts +5 -8
  278. package/dist/editor/fields/ObjectField.js +0 -1
  279. package/dist/editor/fields/ReferenceField.d.ts +1 -1
  280. package/dist/editor/fields/ReferenceField.js +11 -16
  281. package/dist/editor/fields/SelectField.d.ts +2 -2
  282. package/dist/editor/fields/SelectField.js +0 -1
  283. package/dist/editor/fields/StringListField.d.ts +0 -4
  284. package/dist/editor/fields/StringListField.js +4 -9
  285. package/dist/editor/fields/TextField.d.ts +0 -1
  286. package/dist/editor/fields/TextField.js +0 -1
  287. package/dist/editor/fields/ToggleField.d.ts +0 -1
  288. package/dist/editor/fields/ToggleField.js +0 -1
  289. package/dist/editor/fields/entry-link/EntryLinkContext.js +2 -4
  290. package/dist/editor/fields/entry-link/InsertEntryLink.d.ts +0 -3
  291. package/dist/editor/fields/entry-link/InsertEntryLink.js +0 -4
  292. package/dist/editor/group-manager/ExternalGroupsTab.d.ts +0 -3
  293. package/dist/editor/group-manager/ExternalGroupsTab.js +0 -1
  294. package/dist/editor/group-manager/GroupCard.d.ts +0 -3
  295. package/dist/editor/group-manager/GroupForm.d.ts +0 -3
  296. package/dist/editor/group-manager/InternalGroupsTab.d.ts +0 -3
  297. package/dist/editor/group-manager/InternalGroupsTab.js +0 -2
  298. package/dist/editor/group-manager/MemberList.d.ts +0 -3
  299. package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts +0 -3
  300. package/dist/editor/group-manager/hooks/useExternalGroupSearch.js +0 -3
  301. package/dist/editor/group-manager/hooks/useGroupState.d.ts +0 -3
  302. package/dist/editor/group-manager/hooks/useGroupState.js +0 -5
  303. package/dist/editor/group-manager/hooks/useUserSearch.d.ts +0 -3
  304. package/dist/editor/group-manager/hooks/useUserSearch.js +0 -3
  305. package/dist/editor/group-manager/index.d.ts +0 -6
  306. package/dist/editor/group-manager/index.js +0 -10
  307. package/dist/editor/group-manager/types.d.ts +2 -5
  308. package/dist/editor/group-manager/types.js +0 -3
  309. package/dist/editor/hooks/index.d.ts +6 -11
  310. package/dist/editor/hooks/index.js +6 -12
  311. package/dist/editor/hooks/useBranchActions.d.ts +0 -14
  312. package/dist/editor/hooks/useBranchActions.js +0 -22
  313. package/dist/editor/hooks/useBranchManager.d.ts +2 -48
  314. package/dist/editor/hooks/useBranchManager.js +4 -64
  315. package/dist/editor/hooks/useBranchesData.d.ts +7 -6
  316. package/dist/editor/hooks/useBranchesData.js +7 -6
  317. package/dist/editor/hooks/useCommentSystem.d.ts +0 -49
  318. package/dist/editor/hooks/useCommentSystem.js +1 -36
  319. package/dist/editor/hooks/useDraftManager.d.ts +2 -35
  320. package/dist/editor/hooks/useDraftManager.js +23 -64
  321. package/dist/editor/hooks/useEditorLayout.d.ts +0 -20
  322. package/dist/editor/hooks/useEditorLayout.js +0 -23
  323. package/dist/editor/hooks/useEntriesData.d.ts +1 -0
  324. package/dist/editor/hooks/useEntriesData.js +2 -3
  325. package/dist/editor/hooks/useEntryLinkResolution.d.ts +2 -2
  326. package/dist/editor/hooks/useEntryLinkResolution.js +2 -2
  327. package/dist/editor/hooks/useEntryManager.d.ts +2 -27
  328. package/dist/editor/hooks/useEntryManager.js +29 -78
  329. package/dist/editor/hooks/useGroupManager.d.ts +0 -21
  330. package/dist/editor/hooks/useGroupManager.js +0 -21
  331. package/dist/editor/hooks/usePermissionManager.d.ts +0 -20
  332. package/dist/editor/hooks/usePermissionManager.js +0 -20
  333. package/dist/editor/hooks/useReferenceResolution.d.ts +2 -33
  334. package/dist/editor/hooks/useReferenceResolution.js +1 -48
  335. package/dist/editor/hooks/useSchemaManager.d.ts +8 -27
  336. package/dist/editor/hooks/useSchemaManager.js +0 -19
  337. package/dist/editor/hooks/useUserContext.d.ts +2 -9
  338. package/dist/editor/hooks/useUserContext.js +10 -10
  339. package/dist/editor/hooks/useUserMetadata.d.ts +0 -2
  340. package/dist/editor/hooks/useUserMetadata.js +0 -3
  341. package/dist/editor/media/AssetCard.d.ts +0 -1
  342. package/dist/editor/media/AssetCard.js +1 -2
  343. package/dist/editor/media/CropStep.d.ts +0 -1
  344. package/dist/editor/media/CropStep.js +0 -1
  345. package/dist/editor/media/MediaLibrary.d.ts +1 -2
  346. package/dist/editor/media/MediaLibrary.js +1 -2
  347. package/dist/editor/media/MediaLibraryBody.d.ts +0 -1
  348. package/dist/editor/media/MediaLibraryBody.js +0 -1
  349. package/dist/editor/media/crop-math.d.ts +1 -1
  350. package/dist/editor/media/crop-math.js +1 -1
  351. package/dist/editor/permission-manager/GroupSelector.d.ts +0 -3
  352. package/dist/editor/permission-manager/PermissionEditor.d.ts +0 -4
  353. package/dist/editor/permission-manager/PermissionEditor.js +0 -1
  354. package/dist/editor/permission-manager/PermissionLevelBadge.d.ts +0 -7
  355. package/dist/editor/permission-manager/PermissionLevelBadge.js +0 -4
  356. package/dist/editor/permission-manager/PermissionTree.d.ts +0 -4
  357. package/dist/editor/permission-manager/UserSelector.d.ts +0 -3
  358. package/dist/editor/permission-manager/constants.d.ts +0 -3
  359. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +0 -3
  360. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +0 -10
  361. package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts +0 -14
  362. package/dist/editor/permission-manager/hooks/usePermissionTree.js +0 -11
  363. package/dist/editor/permission-manager/index.d.ts +0 -7
  364. package/dist/editor/permission-manager/index.js +0 -16
  365. package/dist/editor/permission-manager/types.d.ts +2 -12
  366. package/dist/editor/permission-manager/types.js +0 -3
  367. package/dist/editor/permission-manager/utils.d.ts +0 -28
  368. package/dist/editor/permission-manager/utils.js +9 -23
  369. package/dist/editor/preview-bridge.d.ts +5 -1
  370. package/dist/editor/preview-bridge.js +4 -4
  371. package/dist/editor/schema-editor/CollectionEditor.d.ts +0 -5
  372. package/dist/editor/schema-editor/CollectionEditor.js +9 -31
  373. package/dist/editor/schema-editor/EntryTypeEditor.d.ts +0 -6
  374. package/dist/editor/schema-editor/EntryTypeEditor.js +3 -24
  375. package/dist/editor/schema-editor/index.d.ts +0 -7
  376. package/dist/editor/schema-editor/index.js +0 -7
  377. package/dist/editor/utils/env.d.ts +3 -18
  378. package/dist/editor/utils/env.js +6 -25
  379. package/dist/entry-link-resolver.d.ts +13 -35
  380. package/dist/entry-link-resolver.js +20 -53
  381. package/dist/entry-schema-registry.d.ts +20 -60
  382. package/dist/entry-schema-registry.js +20 -69
  383. package/dist/entry-schema.d.ts +118 -223
  384. package/dist/entry-schema.js +46 -91
  385. package/dist/git-manager.d.ts +101 -200
  386. package/dist/git-manager.js +211 -384
  387. package/dist/github-service.d.ts +34 -75
  388. package/dist/github-service.js +37 -91
  389. package/dist/http/handler.d.ts +6 -37
  390. package/dist/http/handler.js +65 -120
  391. package/dist/http/router.d.ts +15 -32
  392. package/dist/http/router.js +34 -99
  393. package/dist/http/types.d.ts +15 -40
  394. package/dist/http/types.js +3 -7
  395. package/dist/id.d.ts +4 -10
  396. package/dist/id.js +4 -10
  397. package/dist/index.js +6 -9
  398. package/dist/operating-mode/client-safe-strategy.d.ts +7 -14
  399. package/dist/operating-mode/client-safe-strategy.js +8 -28
  400. package/dist/operating-mode/client-unsafe-strategy.d.ts +6 -16
  401. package/dist/operating-mode/client-unsafe-strategy.js +9 -34
  402. package/dist/operating-mode/client.d.ts +3 -10
  403. package/dist/operating-mode/client.js +3 -8
  404. package/dist/operating-mode/deployment-name-fixtures.d.ts +14 -18
  405. package/dist/operating-mode/deployment-name-fixtures.js +14 -18
  406. package/dist/operating-mode/deployment-name.d.ts +19 -29
  407. package/dist/operating-mode/deployment-name.js +29 -47
  408. package/dist/operating-mode/index.d.ts +4 -25
  409. package/dist/operating-mode/index.js +9 -31
  410. package/dist/operating-mode/mode-env.d.ts +32 -54
  411. package/dist/operating-mode/mode-env.js +36 -58
  412. package/dist/operating-mode/types.d.ts +24 -72
  413. package/dist/operating-mode/types.js +1 -7
  414. package/dist/paths/branch-name.d.ts +30 -40
  415. package/dist/paths/branch-name.js +30 -40
  416. package/dist/paths/branch.d.ts +4 -18
  417. package/dist/paths/branch.js +6 -22
  418. package/dist/paths/index.d.ts +2 -13
  419. package/dist/paths/index.js +3 -23
  420. package/dist/paths/normalize-server.d.ts +3 -15
  421. package/dist/paths/normalize-server.js +3 -15
  422. package/dist/paths/normalize.d.ts +13 -33
  423. package/dist/paths/normalize.js +13 -33
  424. package/dist/paths/resolve.d.ts +4 -17
  425. package/dist/paths/resolve.js +4 -22
  426. package/dist/paths/types.d.ts +12 -34
  427. package/dist/paths/types.js +5 -7
  428. package/dist/paths/validation.d.ts +22 -119
  429. package/dist/paths/validation.js +30 -148
  430. package/dist/reference-resolver.d.ts +0 -13
  431. package/dist/reference-resolver.js +0 -18
  432. package/dist/resolve-canopy-user.d.ts +16 -18
  433. package/dist/resolve-canopy-user.js +17 -26
  434. package/dist/resource-generation.d.ts +16 -25
  435. package/dist/resource-generation.js +34 -97
  436. package/dist/schema/meta-loader.d.ts +2 -14
  437. package/dist/schema/meta-loader.js +15 -64
  438. package/dist/schema/resolver.d.ts +1 -4
  439. package/dist/schema/resolver.js +1 -6
  440. package/dist/schema/schema-store-types.d.ts +0 -12
  441. package/dist/schema/schema-store.d.ts +61 -138
  442. package/dist/schema/schema-store.js +85 -282
  443. package/dist/schema/types.d.ts +0 -4
  444. package/dist/server.d.ts +62 -93
  445. package/dist/server.js +63 -94
  446. package/dist/services.d.ts +23 -47
  447. package/dist/services.js +55 -98
  448. package/dist/settings-workspace.d.ts +17 -30
  449. package/dist/settings-workspace.js +51 -81
  450. package/dist/static/index.d.ts +26 -52
  451. package/dist/static/index.js +33 -67
  452. package/dist/{worker/task-queue.d.ts → task-queue/cms-task-queue.d.ts} +7 -9
  453. package/dist/task-queue/cms-task-queue.js +13 -0
  454. package/dist/task-queue/task-queue-config.d.ts +3 -0
  455. package/dist/{worker → task-queue}/task-queue-config.js +1 -6
  456. package/dist/task-queue/task-queue.d.ts +16 -22
  457. package/dist/task-queue/task-queue.js +20 -44
  458. package/dist/task-queue/types.d.ts +0 -1
  459. package/dist/task-queue/worker-status.d.ts +35 -0
  460. package/dist/task-queue/worker-status.js +40 -0
  461. package/dist/types.d.ts +40 -51
  462. package/dist/url-collision.d.ts +26 -40
  463. package/dist/url-collision.js +47 -63
  464. package/dist/url-exclusivity-fixtures.d.ts +15 -20
  465. package/dist/url-exclusivity-fixtures.js +14 -19
  466. package/dist/url-path-resolver.d.ts +8 -16
  467. package/dist/url-path-resolver.js +19 -29
  468. package/dist/user.d.ts +8 -21
  469. package/dist/user.js +10 -19
  470. package/dist/utils/async-mutex.js +4 -6
  471. package/dist/utils/atomic-write.d.ts +2 -11
  472. package/dist/utils/atomic-write.js +2 -11
  473. package/dist/utils/body-field.d.ts +8 -15
  474. package/dist/utils/body-field.js +8 -15
  475. package/dist/utils/content-serialize.d.ts +18 -24
  476. package/dist/utils/content-serialize.js +109 -160
  477. package/dist/utils/content-write-lock.d.ts +51 -106
  478. package/dist/utils/content-write-lock.js +66 -111
  479. package/dist/utils/debug.d.ts +7 -23
  480. package/dist/utils/debug.js +7 -23
  481. package/dist/utils/entry-url.d.ts +11 -23
  482. package/dist/utils/entry-url.js +11 -26
  483. package/dist/utils/error.d.ts +25 -90
  484. package/dist/utils/error.js +60 -147
  485. package/dist/utils/flatten-group-fields.d.ts +5 -7
  486. package/dist/utils/flatten-group-fields.js +5 -7
  487. package/dist/utils/format.d.ts +1 -5
  488. package/dist/utils/format.js +1 -5
  489. package/dist/utils/fs.d.ts +3 -4
  490. package/dist/utils/fs.js +3 -4
  491. package/dist/utils/git.d.ts +52 -83
  492. package/dist/utils/git.js +79 -125
  493. package/dist/utils/logger.d.ts +35 -50
  494. package/dist/utils/logger.js +35 -52
  495. package/dist/utils/provisioning-lock.d.ts +23 -35
  496. package/dist/utils/provisioning-lock.js +49 -69
  497. package/dist/utils/sanitize-href.d.ts +5 -10
  498. package/dist/utils/sanitize-href.js +8 -18
  499. package/dist/utils/title-field.d.ts +17 -20
  500. package/dist/utils/title-field.js +18 -27
  501. package/dist/utils/typed-filename.d.ts +20 -48
  502. package/dist/utils/typed-filename.js +25 -61
  503. package/dist/utils/url-prefix.d.ts +3 -3
  504. package/dist/utils/url-prefix.js +3 -3
  505. package/dist/validation/block-structural-keys.d.ts +16 -31
  506. package/dist/validation/block-structural-keys.js +19 -29
  507. package/dist/validation/deletion-checker.d.ts +0 -34
  508. package/dist/validation/deletion-checker.js +1 -43
  509. package/dist/validation/entry-link-validator.d.ts +6 -13
  510. package/dist/validation/entry-link-validator.js +4 -13
  511. package/dist/validation/entry-type-reference-validator.d.ts +13 -18
  512. package/dist/validation/entry-type-reference-validator.js +13 -18
  513. package/dist/validation/entry-validator.d.ts +13 -25
  514. package/dist/validation/entry-validator.js +15 -32
  515. package/dist/validation/field-traversal.d.ts +3 -30
  516. package/dist/validation/field-traversal.js +1 -32
  517. package/dist/validation/reference-validator.d.ts +5 -24
  518. package/dist/validation/reference-validator.js +5 -30
  519. package/dist/worker/cms-worker.d.ts +172 -232
  520. package/dist/worker/cms-worker.js +241 -333
  521. package/dist/worker/git-sync.d.ts +32 -133
  522. package/dist/worker/git-sync.js +129 -191
  523. package/dist/worker/github-auth.d.ts +13 -19
  524. package/dist/worker/github-auth.js +13 -19
  525. package/dist/worker/history-rewrite.d.ts +53 -66
  526. package/dist/worker/history-rewrite.js +54 -60
  527. package/dist/worker/log.d.ts +24 -41
  528. package/dist/worker/log.js +25 -42
  529. package/dist/worker/rebase.d.ts +20 -110
  530. package/dist/worker/rebase.js +279 -354
  531. package/dist/worker/task-runner.d.ts +32 -66
  532. package/dist/worker/task-runner.js +126 -162
  533. package/dist/worker/worker-context.d.ts +41 -81
  534. package/package.json +4 -4
  535. package/dist/cli/template-files/middleware-clerk.ts.template +0 -37
  536. package/dist/worker/task-queue-config.d.ts +0 -8
  537. package/dist/worker/task-queue.js +0 -19
  538. package/dist/worker/worker-status.d.ts +0 -47
  539. package/dist/worker/worker-status.js +0 -52
@@ -14,9 +14,6 @@ import { sanitizeBranchName, RESERVED_SETTINGS_BRANCH_PREFIX, RESERVED_ROUTE_BRA
14
14
  import { GitManager } from '../git-manager.js';
15
15
  import { branchNameSchema, branchParamSchema } from './validators.js';
16
16
  const log = createDebugLogger({ prefix: 'BranchAPI' });
17
- // ============================================================================
18
- // Zod Schemas for Validation
19
- // ============================================================================
20
17
  const createBranchBodySchema = z.object({
21
18
  branch: branchNameSchema,
22
19
  title: z.string().optional(),
@@ -35,33 +32,28 @@ const updateBranchAccessBodySchema = z.object({
35
32
  import { isPrivileged, isAdmin, loadPathPermissions, getBranchProtection, getBranchWriteProtection, } from '../authorization/index.js';
36
33
  import { operatingStrategy } from '../operating-mode/index.js';
37
34
  /**
38
- * Check if a user can create branches.
39
35
  * Returns true if:
40
36
  * - User is Admin or Reviewer (privileged)
41
37
  * - User has edit access to at least one path via pathPermissions rules
42
38
  * - No path permissions are defined (open access)
39
+ * @internal Exported for tests.
43
40
  */
44
41
  export const canCreateBranch = (user, pathPermissions) => {
45
- // Admins and Reviewers can always create branches
46
42
  if (isPrivileged(user.groups)) {
47
43
  return { allowed: true, reason: 'privileged_user' };
48
44
  }
49
- // If no path permissions defined, anyone can create branches
50
45
  if (pathPermissions.length === 0) {
51
46
  return { allowed: true, reason: 'no_restrictions' };
52
47
  }
53
- // Check if user has edit access to at least one path rule
54
48
  for (const rule of pathPermissions) {
55
49
  const editTarget = rule.edit;
56
50
  if (!editTarget)
57
51
  continue;
58
- // Check if rule has no user/group constraints (open to all)
59
52
  const hasUserConstraint = !!editTarget.allowedUsers?.length;
60
53
  const hasGroupConstraint = !!editTarget.allowedGroups?.length;
61
54
  if (!hasUserConstraint && !hasGroupConstraint) {
62
55
  return { allowed: true, reason: 'open_path_rule' };
63
56
  }
64
- // Check if user matches the rule
65
57
  const matchesUser = hasUserConstraint && editTarget.allowedUsers?.includes(user.userId);
66
58
  const matchesGroup = hasGroupConstraint && user.groups?.some((gid) => editTarget.allowedGroups?.includes(gid));
67
59
  if (matchesUser || matchesGroup) {
@@ -95,6 +87,7 @@ const resolveReadOnlyMirrorPath = (ctx, strategy) => {
95
87
  process.env[remoteUrlConfig.envVarName] ??
96
88
  remoteUrlConfig.autoDetectRemotePath);
97
89
  };
90
+ /** @internal Exported for tests. */
98
91
  export const createBranchHandler = async (ctx, req, body) => {
99
92
  return log.timed('api', 'createBranch', async () => {
100
93
  const branchName = body.branch;
@@ -312,7 +305,6 @@ export const createBranchHandler = async (ctx, req, body) => {
312
305
  const operatingMode = ctx.services.config.mode;
313
306
  pathPermissions = await loadPathPermissions(baseBranchContext.branchRoot, operatingMode);
314
307
  }
315
- // Check if user can create branches
316
308
  const canCreate = canCreateBranch(req.user, pathPermissions);
317
309
  if (!canCreate.allowed) {
318
310
  log.debug('api', 'Permission denied', { reason: canCreate.reason });
@@ -336,6 +328,7 @@ export const createBranchHandler = async (ctx, req, body) => {
336
328
  return { ok: true, status: 200, data: { branch: context.branch } };
337
329
  });
338
330
  };
331
+ /** @internal Exported for tests. */
339
332
  export const listBranchesHandler = async (ctx, req) => {
340
333
  if (!ctx.services.registry) {
341
334
  return {
@@ -400,21 +393,17 @@ export const listBranchesHandler = async (ctx, req) => {
400
393
  data: { branches: visibleBranches.map(toListItem), defaultBranch },
401
394
  };
402
395
  };
403
- /**
404
- * Check if a user can delete a specific branch.
405
- * Returns true if user is Admin or the branch creator.
406
- */
396
+ /** @internal Exported for tests. */
407
397
  export const canDeleteBranch = (user, branchContext) => {
408
- // Admins can delete any branch
409
398
  if (isAdmin(user.groups)) {
410
399
  return { allowed: true, reason: 'admin' };
411
400
  }
412
- // Branch creator can delete their own branch
413
401
  if (branchContext.branch.createdBy === user.userId) {
414
402
  return { allowed: true, reason: 'creator' };
415
403
  }
416
404
  return { allowed: false, reason: 'not_authorized' };
417
405
  };
406
+ /** @internal Exported for tests. */
418
407
  export const deleteBranchHandler = async (ctx, req, params) => {
419
408
  const branchName = params.branch;
420
409
  // Disallow delete in modes that don't support branching (branch = developer's git checkout)
@@ -426,7 +415,6 @@ export const deleteBranchHandler = async (ctx, req, params) => {
426
415
  error: 'Cannot delete branches in this operating mode',
427
416
  };
428
417
  }
429
- // Get branch context
430
418
  const branchContext = await ctx.getBranchContext(branchName);
431
419
  if (!branchContext) {
432
420
  return { ok: false, status: 404, error: 'Branch not found' };
@@ -438,7 +426,6 @@ export const deleteBranchHandler = async (ctx, req, params) => {
438
426
  if (isProtected) {
439
427
  return { ok: false, status: 400, error: 'Cannot delete the base branch' };
440
428
  }
441
- // Check permission
442
429
  const canDelete = canDeleteBranch(req.user, branchContext);
443
430
  if (!canDelete.allowed) {
444
431
  return {
@@ -577,24 +564,19 @@ export const deleteBranchHandler = async (ctx, req, params) => {
577
564
  data: { deleted: true, ...(cleanupWarning && { cleanupWarning }) },
578
565
  };
579
566
  };
580
- /**
581
- * Check if a user can modify branch access.
582
- * Returns true if user is Admin or the branch creator.
583
- */
567
+ /** @internal Exported for tests. */
584
568
  export const canModifyBranchAccess = (user, branchContext) => {
585
- // Admins can modify any branch
586
569
  if (isAdmin(user.groups)) {
587
570
  return { allowed: true, reason: 'admin' };
588
571
  }
589
- // Branch creator can modify their own branch
590
572
  if (branchContext.branch.createdBy === user.userId) {
591
573
  return { allowed: true, reason: 'creator' };
592
574
  }
593
575
  return { allowed: false, reason: 'not_authorized' };
594
576
  };
577
+ /** @internal Exported for tests. */
595
578
  export const updateBranchAccessHandler = async (ctx, req, params, body) => {
596
579
  const branchName = params.branch;
597
- // Get branch context
598
580
  const branchContext = await ctx.getBranchContext(branchName);
599
581
  if (!branchContext) {
600
582
  return { ok: false, status: 404, error: 'Branch not found' };
@@ -612,7 +594,6 @@ export const updateBranchAccessHandler = async (ctx, req, params, body) => {
612
594
  error: 'The base branch does not take an access list. Create a branch to manage access.',
613
595
  };
614
596
  }
615
- // Check permission
616
597
  const canModify = canModifyBranchAccess(req.user, branchContext);
617
598
  if (!canModify.allowed) {
618
599
  return {
@@ -645,12 +626,8 @@ export const updateBranchAccessHandler = async (ctx, req, params, body) => {
645
626
  });
646
627
  return { ok: true, status: 200, data: { branch: updated.branch } };
647
628
  };
648
- // ============================================================================
649
- // Route Definitions with defineEndpoint
650
- // ============================================================================
651
629
  /**
652
630
  * List all branches visible to current user
653
- * GET /branches
654
631
  */
655
632
  const listBranches = defineEndpoint({
656
633
  namespace: 'branches',
@@ -662,10 +639,6 @@ const listBranches = defineEndpoint({
662
639
  defaultMockData: { branches: [] },
663
640
  handler: listBranchesHandler,
664
641
  });
665
- /**
666
- * Create a new branch
667
- * POST /branches
668
- */
669
642
  const createBranch = defineEndpoint({
670
643
  namespace: 'branches',
671
644
  name: 'create',
@@ -687,10 +660,6 @@ const createBranch = defineEndpoint({
687
660
  },
688
661
  handler: createBranchHandler,
689
662
  });
690
- /**
691
- * Delete a branch
692
- * DELETE /:branch
693
- */
694
663
  const deleteBranch = defineEndpoint({
695
664
  namespace: 'branches',
696
665
  name: 'delete',
@@ -703,9 +672,6 @@ const deleteBranch = defineEndpoint({
703
672
  handler: deleteBranchHandler,
704
673
  });
705
674
  /**
706
- * Update branch access control
707
- * PATCH /:branch/access
708
- *
709
675
  * No 'writableBranch' guard: this rewrites branch.json's ACL, not branch
710
676
  * content, so a submitted branch's ACL stays editable during review. The base
711
677
  * branch is a different matter and IS refused -- the handler rejects protected
@@ -735,9 +701,6 @@ const updateBranchAccess = defineEndpoint({
735
701
  },
736
702
  handler: updateBranchAccessHandler,
737
703
  });
738
- /**
739
- * Exported routes for router registration
740
- */
741
704
  export const BRANCH_ROUTES = {
742
705
  list: listBranches,
743
706
  create: createBranch,
@@ -1,8 +1,9 @@
1
1
  /**
2
- * Typed API client for CanopyCMS.
2
+ * Typed API client for CanopyCMS: one method per endpoint, each returning that
3
+ * endpoint's ApiResponse.
3
4
  *
4
- * AUTO-GENERATED by scripts/generate-client.ts
5
- * Do not edit this file manually - changes will be overwritten.
5
+ * AUTO-GENERATED by scripts/generate-client.ts; do not edit this file manually
6
+ * (changes will be overwritten), edit the generator's templates instead.
6
7
  */
7
8
  import type { BranchDeleteResponse, BranchListResponse, BranchResponse, CreateBranchBody, UpdateBranchAccessBody } from './branch.js';
8
9
  import type { BranchMergeResponse } from './branch-status.js';
@@ -18,319 +19,165 @@ import type { UserInfoResponse } from './user.js';
18
19
  import type { AddEntryTypeApiResponse, CreateCollectionApiResponse, DeleteCollectionApiResponse, GetCollectionApiResponse, GetSchemaApiResponse, InvalidateSchemaCacheApiResponse, RemoveEntryTypeApiResponse, UpdateCollectionApiResponse, UpdateEntryTypeApiResponse, UpdateOrderApiResponse, UpdateOrderBody } from './schema.js';
19
20
  import type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput } from './../schema/schema-store-types.js';
20
21
  import type { AdminDeleteTaskResponse, AdminRetryTaskResponse, AdminStatusResponse, AdminTasksResponse, BranchHealthResponse, PurgeBranchDirResponse, RepairBranchDirResponse, RepairContentDuplicatesResponse } from './admin.js';
21
- /**
22
- * Options for creating an ApiClient
23
- */
22
+ /** Options for {@link createApiClient}. */
24
23
  export interface ApiClientOptions {
25
- /**
26
- * Base URL for API requests. Defaults to '/api/canopycms'
27
- */
24
+ /** Base URL for API requests. Defaults to '/api/canopycms'. */
28
25
  baseUrl?: string;
26
+ /** Custom fetch implementation, e.g. a mock in tests. */
27
+ fetch?: typeof fetch;
29
28
  /**
30
- * Custom fetch implementation (useful for testing)
29
+ * Called whenever a response comes back 401: the credential is no longer accepted. A
30
+ * notification, not a retry; the editor's auth gate uses it to show sign-in.
31
31
  */
32
- fetch?: typeof fetch;
32
+ onUnauthorized?: () => void;
33
33
  }
34
34
  /**
35
- * Lightweight typed API client for CanopyCMS.
36
- *
37
- * Provides type-safe methods for all API endpoints with centralized
38
- * response unwrapping and error handling.
35
+ * Typed client for the CanopyCMS API: one method per endpoint, grouped by namespace, each
36
+ * returning that endpoint's ApiResponse.
39
37
  *
40
- * @example Browser usage
38
+ * @example
41
39
  * ```ts
42
- * const client = createApiClient()
43
- * const branches = await client.branches.list()
44
- * if (branches.ok) {
45
- * console.log(branches.data.branches)
46
- * }
47
- * ```
48
- *
49
- * @example Test usage
50
- * ```ts
51
- * const client = createApiClient({
52
- * fetch: mockFetch
53
- * })
40
+ * const branches = await createApiClient().branches.list()
41
+ * if (branches.ok) console.log(branches.data.branches)
54
42
  * ```
55
43
  */
56
44
  export declare class CanopyApiClient {
57
45
  private baseUrl;
58
46
  private fetchFn;
59
- /**
60
- * branches - Auto-generated methods
61
- */
47
+ private onUnauthorized;
62
48
  readonly branches: {
63
- /**
64
- * list - GET /branches
65
- */
49
+ /** GET /branches */
66
50
  list: () => Promise<BranchListResponse>;
67
- /**
68
- * create - POST /branches
69
- */
51
+ /** POST /branches */
70
52
  create: (body: CreateBranchBody) => Promise<BranchResponse>;
71
- /**
72
- * delete - DELETE /:branch
73
- */
53
+ /** DELETE /:branch */
74
54
  delete: (params: Record<string, string>) => Promise<BranchDeleteResponse>;
75
- /**
76
- * updateAccess - PATCH /:branch/access
77
- */
55
+ /** PATCH /:branch/access */
78
56
  updateAccess: (params: Record<string, string>, body: UpdateBranchAccessBody) => Promise<BranchResponse>;
79
57
  };
80
- /**
81
- * workflow - Auto-generated methods
82
- */
83
58
  readonly workflow: {
84
- /**
85
- * withdraw - POST /:branch/withdraw
86
- */
59
+ /** POST /:branch/withdraw */
87
60
  withdraw: (params: Record<string, string>) => Promise<BranchResponse>;
88
- /**
89
- * requestChanges - POST /:branch/request-changes
90
- */
61
+ /** POST /:branch/request-changes */
91
62
  requestChanges: (params: Record<string, string>) => Promise<BranchResponse>;
92
- /**
93
- * approve - POST /:branch/approve
94
- */
63
+ /** POST /:branch/approve */
95
64
  approve: (params: Record<string, string>) => Promise<BranchResponse>;
96
- /**
97
- * markMerged - POST /:branch/mark-merged
98
- */
65
+ /** POST /:branch/mark-merged */
99
66
  markMerged: (params: Record<string, string>) => Promise<BranchMergeResponse>;
100
- /**
101
- * getStatus - GET /:branch/status
102
- */
67
+ /** GET /:branch/status */
103
68
  getStatus: (params: Record<string, string>) => Promise<BranchResponse>;
104
- /**
105
- * submit - POST /:branch/submit
106
- */
69
+ /** POST /:branch/submit */
107
70
  submit: (params: Record<string, string>) => Promise<BranchResponse>;
108
71
  };
109
- /**
110
- * comments - Auto-generated methods
111
- */
112
72
  readonly comments: {
113
- /**
114
- * list - GET /:branch/comments
115
- */
73
+ /** GET /:branch/comments */
116
74
  list: (params: Record<string, string>) => Promise<CommentsResponse>;
117
- /**
118
- * add - POST /:branch/comments
119
- */
75
+ /** POST /:branch/comments */
120
76
  add: (params: Record<string, string>, body: AddCommentBody) => Promise<AddCommentResponse>;
121
- /**
122
- * resolve - POST /:branch/comments/:threadId/resolve
123
- */
77
+ /** POST /:branch/comments/:threadId/resolve */
124
78
  resolve: (params: Record<string, string>) => Promise<ResolveCommentResponse>;
125
79
  };
126
- /**
127
- * content - Auto-generated methods
128
- */
129
80
  readonly content: {
130
- /**
131
- * read - GET /:branch/content/...path
132
- */
81
+ /** GET /:branch/content/...path */
133
82
  read: (params: Record<string, string>) => Promise<ContentReadResponse>;
134
- /**
135
- * write - PUT /:branch/content/...path
136
- */
83
+ /** PUT /:branch/content/...path */
137
84
  write: (params: Record<string, string>, body: WriteContentBody) => Promise<ContentWriteResponse>;
138
- /**
139
- * validateReferences - POST /:branch/validate-references/...path
140
- */
85
+ /** POST /:branch/validate-references/...path */
141
86
  validateReferences: (params: Record<string, string>, body: ValidateReferencesBody) => Promise<ReferenceValidationResponse>;
142
- /**
143
- * renameEntry - PATCH /:branch/rename-entry/...path
144
- */
87
+ /** PATCH /:branch/rename-entry/...path */
145
88
  renameEntry: (params: Record<string, string>, body: RenameEntryBody) => Promise<RenameEntryResponse>;
146
- /**
147
- * getReferenceOptions - GET /:branch/reference-options
148
- */
89
+ /** GET /:branch/reference-options */
149
90
  getReferenceOptions: (params: Record<string, string>) => Promise<ReferenceOptionsResponse>;
150
- /**
151
- * resolveReferences - POST /:branch/resolve-references
152
- */
91
+ /** POST /:branch/resolve-references */
153
92
  resolveReferences: (params: Record<string, string>, body: ResolveReferencesBody) => Promise<ResolveReferencesResponse>;
154
93
  };
155
- /**
156
- * entries - Auto-generated methods
157
- */
158
94
  readonly entries: {
159
- /**
160
- * list - GET /:branch/entries
161
- */
95
+ /** GET /:branch/entries */
162
96
  list: (params: Record<string, string>) => Promise<EntriesResponse>;
163
- /**
164
- * delete - DELETE /:branch/entries/...entryPath
165
- */
97
+ /** DELETE /:branch/entries/...entryPath */
166
98
  delete: (params: Record<string, string>) => Promise<DeleteEntryResponse>;
167
99
  };
168
- /**
169
- * assets - Auto-generated methods
170
- */
171
100
  readonly assets: {
172
- /**
173
- * presign - POST /assets/presign
174
- */
101
+ /** POST /assets/presign */
175
102
  presign: (body: PresignAssetBody) => Promise<PresignAssetResponse>;
176
- /**
177
- * finalize - POST /assets/finalize
178
- */
103
+ /** POST /assets/finalize */
179
104
  finalize: (body: FinalizeAssetBody) => Promise<FinalizeAssetResponse>;
180
- /**
181
- * uploadProxied - POST /assets/upload (multipart/form-data - hand-written;
182
- * the generic template only knows JSON bodies, and this route accepts a file)
183
- */
105
+ /** POST /assets/upload: multipart upload, hand-written because the generic template only knows JSON bodies. */
184
106
  uploadProxied: (file: File, options?: {
185
107
  filename?: string;
186
108
  }) => Promise<FinalizeAssetResponse>;
187
- /**
188
- * list - GET /assets
189
- */
109
+ /** GET /assets */
190
110
  list: (params: Record<string, string>) => Promise<AssetsListResponse>;
191
- /**
192
- * delete - DELETE /assets
193
- */
111
+ /** DELETE /assets */
194
112
  delete: (params: Record<string, string>) => Promise<AssetDeleteResponse>;
195
113
  };
196
- /**
197
- * permissions - Auto-generated methods
198
- */
199
114
  readonly permissions: {
200
- /**
201
- * get - GET /permissions
202
- */
115
+ /** GET /permissions */
203
116
  get: () => Promise<PermissionsResponse>;
204
- /**
205
- * update - PUT /permissions
206
- */
117
+ /** PUT /permissions */
207
118
  update: (body: UpdatePermissionsBody) => Promise<PermissionsResponse>;
208
- /**
209
- * searchUsers - GET /users/search
210
- */
119
+ /** GET /users/search */
211
120
  searchUsers: (params: Record<string, string>) => Promise<SearchUsersResponse>;
212
- /**
213
- * listGroups - GET /groups
214
- */
121
+ /** GET /groups */
215
122
  listGroups: () => Promise<ListGroupsResponse>;
216
- /**
217
- * getUserMetadata - GET /users/:userId
218
- */
123
+ /** GET /users/:userId */
219
124
  getUserMetadata: (params: Record<string, string>) => Promise<GetUserMetadataResponse>;
220
125
  };
221
- /**
222
- * groups - Auto-generated methods
223
- */
224
126
  readonly groups: {
225
- /**
226
- * getInternal - GET /groups/internal
227
- */
127
+ /** GET /groups/internal */
228
128
  getInternal: () => Promise<InternalGroupsResponse>;
229
- /**
230
- * updateInternal - PUT /groups/internal
231
- */
129
+ /** PUT /groups/internal */
232
130
  updateInternal: (body: UpdateInternalGroupsBody) => Promise<UpdateInternalGroupsResponse>;
233
- /**
234
- * searchExternal - GET /groups/search
235
- */
131
+ /** GET /groups/search */
236
132
  searchExternal: (params: Record<string, string>) => Promise<ExternalGroupsResponse>;
237
133
  };
238
- /**
239
- * user - Auto-generated methods
240
- */
241
134
  readonly user: {
242
- /**
243
- * whoami - GET /whoami
244
- */
135
+ /** GET /whoami */
245
136
  whoami: () => Promise<UserInfoResponse>;
246
137
  };
247
- /**
248
- * schema - Auto-generated methods
249
- */
250
138
  readonly schema: {
251
- /**
252
- * get - GET /:branch/schema
253
- */
139
+ /** GET /:branch/schema */
254
140
  get: (params: Record<string, string>) => Promise<GetSchemaApiResponse>;
255
- /**
256
- * getCollection - GET /:branch/schema/collection/...collectionPath
257
- */
141
+ /** GET /:branch/schema/collection/...collectionPath */
258
142
  getCollection: (params: Record<string, string>) => Promise<GetCollectionApiResponse>;
259
- /**
260
- * createCollection - POST /:branch/schema/collections
261
- */
143
+ /** POST /:branch/schema/collections */
262
144
  createCollection: (params: Record<string, string>, body: CreateCollectionInput) => Promise<CreateCollectionApiResponse>;
263
- /**
264
- * updateCollection - PATCH /:branch/schema/collection/...collectionPath
265
- */
145
+ /** PATCH /:branch/schema/collection/...collectionPath */
266
146
  updateCollection: (params: Record<string, string>, body: UpdateCollectionInput) => Promise<UpdateCollectionApiResponse>;
267
- /**
268
- * deleteCollection - DELETE /:branch/schema/collection/...collectionPath
269
- */
147
+ /** DELETE /:branch/schema/collection/...collectionPath */
270
148
  deleteCollection: (params: Record<string, string>) => Promise<DeleteCollectionApiResponse>;
271
- /**
272
- * addEntryType - POST /:branch/schema/entry-types/...collectionPath
273
- */
149
+ /** POST /:branch/schema/entry-types/...collectionPath */
274
150
  addEntryType: (params: Record<string, string>, body: CreateEntryTypeInput) => Promise<AddEntryTypeApiResponse>;
275
- /**
276
- * updateEntryType - PATCH /:branch/schema/entry-types/:entryTypeName/...collectionPath
277
- */
151
+ /** PATCH /:branch/schema/entry-types/:entryTypeName/...collectionPath */
278
152
  updateEntryType: (params: Record<string, string>, body: UpdateEntryTypeInput) => Promise<UpdateEntryTypeApiResponse>;
279
- /**
280
- * removeEntryType - DELETE /:branch/schema/entry-types/:entryTypeName/...collectionPath
281
- */
153
+ /** DELETE /:branch/schema/entry-types/:entryTypeName/...collectionPath */
282
154
  removeEntryType: (params: Record<string, string>) => Promise<RemoveEntryTypeApiResponse>;
283
- /**
284
- * updateOrder - PATCH /:branch/schema/order/...collectionPath
285
- */
155
+ /** PATCH /:branch/schema/order/...collectionPath */
286
156
  updateOrder: (params: Record<string, string>, body: UpdateOrderBody) => Promise<UpdateOrderApiResponse>;
287
- /**
288
- * invalidateSchemaCache - POST /:branch/schema/invalidate-cache
289
- */
157
+ /** POST /:branch/schema/invalidate-cache */
290
158
  invalidateSchemaCache: (params: Record<string, string>) => Promise<InvalidateSchemaCacheApiResponse>;
291
159
  };
292
- /**
293
- * admin - Auto-generated methods
294
- */
295
160
  readonly admin: {
296
- /**
297
- * branchHealth - GET /admin/branch-health
298
- */
161
+ /** GET /admin/branch-health */
299
162
  branchHealth: () => Promise<BranchHealthResponse>;
300
- /**
301
- * purgeBranchDir - POST /admin/branch-dirs/:dirName/purge
302
- */
163
+ /** POST /admin/branch-dirs/:dirName/purge */
303
164
  purgeBranchDir: (params: Record<string, string>) => Promise<PurgeBranchDirResponse>;
304
- /**
305
- * repairBranchDir - POST /admin/branch-dirs/:dirName/repair-metadata
306
- */
165
+ /** POST /admin/branch-dirs/:dirName/repair-metadata */
307
166
  repairBranchDir: (params: Record<string, string>) => Promise<RepairBranchDirResponse>;
308
- /**
309
- * repairContentDuplicates - POST /admin/branch-dirs/:dirName/repair-content-duplicates
310
- */
167
+ /** POST /admin/branch-dirs/:dirName/repair-content-duplicates */
311
168
  repairContentDuplicates: (params: Record<string, string>) => Promise<RepairContentDuplicatesResponse>;
312
- /**
313
- * status - GET /admin/status
314
- */
169
+ /** GET /admin/status */
315
170
  status: () => Promise<AdminStatusResponse>;
316
- /**
317
- * listTasks - GET /admin/tasks/:status
318
- */
171
+ /** GET /admin/tasks/:status */
319
172
  listTasks: (params: Record<string, string>) => Promise<AdminTasksResponse>;
320
- /**
321
- * retryTask - POST /admin/tasks/:taskId/retry
322
- */
173
+ /** POST /admin/tasks/:taskId/retry */
323
174
  retryTask: (params: Record<string, string>) => Promise<AdminRetryTaskResponse>;
324
- /**
325
- * deleteTask - DELETE /admin/tasks/:status/:fileName
326
- */
175
+ /** DELETE /admin/tasks/:status/:fileName */
327
176
  deleteTask: (params: Record<string, string>) => Promise<AdminDeleteTaskResponse>;
328
177
  };
329
178
  constructor(options?: ApiClientOptions);
330
179
  private buildPath;
331
180
  private request;
332
181
  }
333
- /**
334
- * Create a new API client instance
335
- */
182
+ /** Create a {@link CanopyApiClient}; pass a custom fetch for tests. */
336
183
  export declare function createApiClient(options?: ApiClientOptions): CanopyApiClient;