canopycms 0.0.61 → 0.0.63

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 (237) hide show
  1. package/dist/ai/index.d.ts +9 -0
  2. package/dist/ai/index.d.ts.map +1 -1
  3. package/dist/ai/index.js +9 -0
  4. package/dist/ai/index.js.map +1 -1
  5. package/dist/ai/json-to-markdown.js +1 -2
  6. package/dist/ai/json-to-markdown.js.map +1 -1
  7. package/dist/ai/to-plain-text.d.ts +57 -0
  8. package/dist/ai/to-plain-text.d.ts.map +1 -0
  9. package/dist/ai/to-plain-text.js +255 -0
  10. package/dist/ai/to-plain-text.js.map +1 -0
  11. package/dist/ai/transform-components.d.ts.map +1 -1
  12. package/dist/ai/transform-components.js +70 -5
  13. package/dist/ai/transform-components.js.map +1 -1
  14. package/dist/api/__test__/mock-client.d.ts +5 -1
  15. package/dist/api/__test__/mock-client.d.ts.map +1 -1
  16. package/dist/api/__test__/mock-client.js +9 -2
  17. package/dist/api/__test__/mock-client.js.map +1 -1
  18. package/dist/api/admin-branch-health.d.ts +36 -1
  19. package/dist/api/admin-branch-health.d.ts.map +1 -1
  20. package/dist/api/admin-branch-health.js +176 -2
  21. package/dist/api/admin-branch-health.js.map +1 -1
  22. package/dist/api/admin.d.ts +8 -1
  23. package/dist/api/admin.d.ts.map +1 -1
  24. package/dist/api/admin.js.map +1 -1
  25. package/dist/api/branch.d.ts.map +1 -1
  26. package/dist/api/branch.js +16 -2
  27. package/dist/api/branch.js.map +1 -1
  28. package/dist/api/client.d.ts +5 -1
  29. package/dist/api/client.d.ts.map +1 -1
  30. package/dist/api/client.js +6 -0
  31. package/dist/api/client.js.map +1 -1
  32. package/dist/api/content.d.ts +11 -5
  33. package/dist/api/content.d.ts.map +1 -1
  34. package/dist/api/content.js +79 -6
  35. package/dist/api/content.js.map +1 -1
  36. package/dist/api/entries.d.ts +10 -0
  37. package/dist/api/entries.d.ts.map +1 -1
  38. package/dist/api/entries.js +40 -15
  39. package/dist/api/entries.js.map +1 -1
  40. package/dist/api/schema.d.ts +4 -4
  41. package/dist/api/schema.d.ts.map +1 -1
  42. package/dist/api/schema.js +13 -13
  43. package/dist/api/schema.js.map +1 -1
  44. package/dist/assets/transform.d.ts.map +1 -1
  45. package/dist/assets/transform.js +19 -6
  46. package/dist/assets/transform.js.map +1 -1
  47. package/dist/authorization/branch.d.ts +55 -3
  48. package/dist/authorization/branch.d.ts.map +1 -1
  49. package/dist/authorization/branch.js +55 -9
  50. package/dist/authorization/branch.js.map +1 -1
  51. package/dist/authorization/types.d.ts +1 -1
  52. package/dist/authorization/types.d.ts.map +1 -1
  53. package/dist/branch-health.d.ts +13 -0
  54. package/dist/branch-health.d.ts.map +1 -1
  55. package/dist/branch-health.js +23 -0
  56. package/dist/branch-health.js.map +1 -1
  57. package/dist/build-canopy.d.ts +49 -0
  58. package/dist/build-canopy.d.ts.map +1 -0
  59. package/dist/build-canopy.js +51 -0
  60. package/dist/build-canopy.js.map +1 -0
  61. package/dist/cli/cli.js +935 -562
  62. package/dist/cli/generate-ai-content.js +837 -480
  63. package/dist/cli/init.js +25 -7
  64. package/dist/cli/template-files/Dockerfile.cms.template +19 -1
  65. package/dist/cli/template-files/canopycms.config.ts.template +25 -1
  66. package/dist/cli/template-files/cms-stack.ts.template +7 -1
  67. package/dist/client.d.ts +1 -0
  68. package/dist/client.d.ts.map +1 -1
  69. package/dist/client.js.map +1 -1
  70. package/dist/config/schemas/field.d.ts +15 -15
  71. package/dist/config/types.d.ts +2 -2
  72. package/dist/config/types.d.ts.map +1 -1
  73. package/dist/config/types.js +0 -1
  74. package/dist/config/types.js.map +1 -1
  75. package/dist/config/validation.d.ts +9 -0
  76. package/dist/config/validation.d.ts.map +1 -1
  77. package/dist/config/validation.js +14 -0
  78. package/dist/config/validation.js.map +1 -1
  79. package/dist/content-id-index.d.ts +97 -5
  80. package/dist/content-id-index.d.ts.map +1 -1
  81. package/dist/content-id-index.js +170 -18
  82. package/dist/content-id-index.js.map +1 -1
  83. package/dist/content-listing.d.ts +110 -5
  84. package/dist/content-listing.d.ts.map +1 -1
  85. package/dist/content-listing.js +164 -23
  86. package/dist/content-listing.js.map +1 -1
  87. package/dist/content-reader.d.ts +41 -4
  88. package/dist/content-reader.d.ts.map +1 -1
  89. package/dist/content-reader.js +17 -4
  90. package/dist/content-reader.js.map +1 -1
  91. package/dist/content-store.d.ts +91 -8
  92. package/dist/content-store.d.ts.map +1 -1
  93. package/dist/content-store.js +443 -258
  94. package/dist/content-store.js.map +1 -1
  95. package/dist/content-tree.d.ts +31 -2
  96. package/dist/content-tree.d.ts.map +1 -1
  97. package/dist/content-tree.js +22 -5
  98. package/dist/content-tree.js.map +1 -1
  99. package/dist/context.d.ts +30 -10
  100. package/dist/context.d.ts.map +1 -1
  101. package/dist/context.js +55 -4
  102. package/dist/context.js.map +1 -1
  103. package/dist/editor/BranchManager.d.ts.map +1 -1
  104. package/dist/editor/BranchManager.js +18 -6
  105. package/dist/editor/BranchManager.js.map +1 -1
  106. package/dist/editor/CanopyEditor.d.ts.map +1 -1
  107. package/dist/editor/CanopyEditor.js +2 -2
  108. package/dist/editor/CanopyEditor.js.map +1 -1
  109. package/dist/editor/CanopyEditorPage.d.ts +9 -1
  110. package/dist/editor/CanopyEditorPage.d.ts.map +1 -1
  111. package/dist/editor/CanopyEditorPage.js +9 -2
  112. package/dist/editor/CanopyEditorPage.js.map +1 -1
  113. package/dist/editor/Editor.d.ts +9 -1
  114. package/dist/editor/Editor.d.ts.map +1 -1
  115. package/dist/editor/Editor.js +58 -24
  116. package/dist/editor/Editor.js.map +1 -1
  117. package/dist/editor/FormRenderer.d.ts.map +1 -1
  118. package/dist/editor/FormRenderer.js +12 -0
  119. package/dist/editor/FormRenderer.js.map +1 -1
  120. package/dist/editor/admin/SystemHealthPanel.js +6 -2
  121. package/dist/editor/admin/SystemHealthPanel.js.map +1 -1
  122. package/dist/editor/components/EntryCreateModal.d.ts +9 -1
  123. package/dist/editor/components/EntryCreateModal.d.ts.map +1 -1
  124. package/dist/editor/components/EntryCreateModal.js +4 -1
  125. package/dist/editor/components/EntryCreateModal.js.map +1 -1
  126. package/dist/editor/fields/DateTimeField.d.ts +46 -0
  127. package/dist/editor/fields/DateTimeField.d.ts.map +1 -0
  128. package/dist/editor/fields/DateTimeField.js +66 -0
  129. package/dist/editor/fields/DateTimeField.js.map +1 -0
  130. package/dist/editor/fields/NumberField.d.ts +34 -0
  131. package/dist/editor/fields/NumberField.d.ts.map +1 -0
  132. package/dist/editor/fields/NumberField.js +53 -0
  133. package/dist/editor/fields/NumberField.js.map +1 -0
  134. package/dist/editor/fields/NumberListField.d.ts +25 -0
  135. package/dist/editor/fields/NumberListField.d.ts.map +1 -0
  136. package/dist/editor/fields/NumberListField.js +53 -0
  137. package/dist/editor/fields/NumberListField.js.map +1 -0
  138. package/dist/editor/hooks/useBranchManager.d.ts.map +1 -1
  139. package/dist/editor/hooks/useBranchManager.js +115 -26
  140. package/dist/editor/hooks/useBranchManager.js.map +1 -1
  141. package/dist/editor/hooks/useDraftManager.d.ts +8 -0
  142. package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
  143. package/dist/editor/hooks/useDraftManager.js +261 -21
  144. package/dist/editor/hooks/useDraftManager.js.map +1 -1
  145. package/dist/editor/hooks/useEntryManager.d.ts +21 -0
  146. package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
  147. package/dist/editor/hooks/useEntryManager.js +25 -2
  148. package/dist/editor/hooks/useEntryManager.js.map +1 -1
  149. package/dist/editor/theme.d.ts +8 -8
  150. package/dist/entry-schema.d.ts +228 -8
  151. package/dist/entry-schema.d.ts.map +1 -1
  152. package/dist/entry-schema.js +124 -0
  153. package/dist/entry-schema.js.map +1 -1
  154. package/dist/git-manager.d.ts +51 -7
  155. package/dist/git-manager.d.ts.map +1 -1
  156. package/dist/git-manager.js +105 -14
  157. package/dist/git-manager.js.map +1 -1
  158. package/dist/http/handler.d.ts.map +1 -1
  159. package/dist/http/handler.js +70 -27
  160. package/dist/http/handler.js.map +1 -1
  161. package/dist/http/router.d.ts.map +1 -1
  162. package/dist/http/router.js +40 -3
  163. package/dist/http/router.js.map +1 -1
  164. package/dist/index.d.ts +1 -0
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +7 -0
  167. package/dist/index.js.map +1 -1
  168. package/dist/operating-mode/deployment-name-fixtures.d.ts +29 -0
  169. package/dist/operating-mode/deployment-name-fixtures.d.ts.map +1 -0
  170. package/dist/operating-mode/deployment-name-fixtures.js +55 -0
  171. package/dist/operating-mode/deployment-name-fixtures.js.map +1 -0
  172. package/dist/operating-mode/deployment-name.d.ts +9 -0
  173. package/dist/operating-mode/deployment-name.d.ts.map +1 -1
  174. package/dist/operating-mode/deployment-name.js +9 -1
  175. package/dist/operating-mode/deployment-name.js.map +1 -1
  176. package/dist/operating-mode/index.d.ts +2 -1
  177. package/dist/operating-mode/index.d.ts.map +1 -1
  178. package/dist/operating-mode/index.js +4 -1
  179. package/dist/operating-mode/index.js.map +1 -1
  180. package/dist/operating-mode/mode-env.d.ts +58 -0
  181. package/dist/operating-mode/mode-env.d.ts.map +1 -0
  182. package/dist/operating-mode/mode-env.js +97 -0
  183. package/dist/operating-mode/mode-env.js.map +1 -0
  184. package/dist/resolve-canopy-user.d.ts +34 -0
  185. package/dist/resolve-canopy-user.d.ts.map +1 -0
  186. package/dist/resolve-canopy-user.js +55 -0
  187. package/dist/resolve-canopy-user.js.map +1 -0
  188. package/dist/schema/schema-store.d.ts +53 -2
  189. package/dist/schema/schema-store.d.ts.map +1 -1
  190. package/dist/schema/schema-store.js +92 -21
  191. package/dist/schema/schema-store.js.map +1 -1
  192. package/dist/server.d.ts +60 -0
  193. package/dist/server.d.ts.map +1 -1
  194. package/dist/server.js +58 -0
  195. package/dist/server.js.map +1 -1
  196. package/dist/services.d.ts +1 -2
  197. package/dist/services.d.ts.map +1 -1
  198. package/dist/services.js +42 -12
  199. package/dist/services.js.map +1 -1
  200. package/dist/settings-workspace.d.ts +40 -0
  201. package/dist/settings-workspace.d.ts.map +1 -1
  202. package/dist/settings-workspace.js +139 -151
  203. package/dist/settings-workspace.js.map +1 -1
  204. package/dist/static/index.d.ts +65 -5
  205. package/dist/static/index.d.ts.map +1 -1
  206. package/dist/static/index.js +65 -12
  207. package/dist/static/index.js.map +1 -1
  208. package/dist/static/seo.d.ts +150 -0
  209. package/dist/static/seo.d.ts.map +1 -0
  210. package/dist/static/seo.js +189 -0
  211. package/dist/static/seo.js.map +1 -0
  212. package/dist/types.d.ts +10 -0
  213. package/dist/types.d.ts.map +1 -1
  214. package/dist/utils/content-write-lock.d.ts +127 -0
  215. package/dist/utils/content-write-lock.d.ts.map +1 -0
  216. package/dist/utils/content-write-lock.js +170 -0
  217. package/dist/utils/content-write-lock.js.map +1 -0
  218. package/dist/utils/error.d.ts +1 -1
  219. package/dist/utils/error.js +1 -1
  220. package/dist/utils/git.d.ts +16 -0
  221. package/dist/utils/git.d.ts.map +1 -1
  222. package/dist/utils/git.js +22 -0
  223. package/dist/utils/git.js.map +1 -1
  224. package/dist/utils/sanitize-href.d.ts +74 -3
  225. package/dist/utils/sanitize-href.d.ts.map +1 -1
  226. package/dist/utils/sanitize-href.js +125 -6
  227. package/dist/utils/sanitize-href.js.map +1 -1
  228. package/dist/validation/entry-link-validator.d.ts +1 -1
  229. package/dist/validation/entry-link-validator.js +3 -3
  230. package/dist/validation/entry-link-validator.js.map +1 -1
  231. package/dist/validation/entry-validator.js +1 -1
  232. package/dist/validation/entry-validator.js.map +1 -1
  233. package/dist/worker/cms-worker.d.ts +13 -0
  234. package/dist/worker/cms-worker.d.ts.map +1 -1
  235. package/dist/worker/cms-worker.js +326 -264
  236. package/dist/worker/cms-worker.js.map +1 -1
  237. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"branch-health.d.ts","sourceRoot":"","sources":["../src/branch-health.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAK7C;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,QAAQ,CAAA;AAExE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,gBAAgB,CAAA;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,mBAAmB;IACnB,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gGAAgG;IAChG,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CACpD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AA2BD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,GAC/B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmG9B"}
1
+ {"version":3,"file":"branch-health.d.ts","sourceRoot":"","sources":["../src/branch-health.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAI5E;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,QAAQ,CAAA;AAExE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,gBAAgB,CAAA;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,mBAAmB;IACnB,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC1C,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gGAAgG;IAChG,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CACpD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAiDD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAsG9B"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { BranchMetadataFileManager, BranchMetadataCorruptError } from './branch-metadata.js';
4
+ import { ContentIdIndex } from './content-id-index.js';
4
5
  import { sanitizeBranchName } from './paths/branch-name.js';
5
6
  import { getErrorMessage, isNodeError, isNotFoundError } from './utils/error.js';
6
7
  /**
@@ -45,6 +46,25 @@ async function readMetaMtime(branchRoot) {
45
46
  return undefined;
46
47
  }
47
48
  }
49
+ /**
50
+ * Scan a healthy branch's content tree for duplicate-embedded-ID pairs (see
51
+ * content-id-index.ts's "Duplicate-ID quarantine" section). Never throws --
52
+ * one branch's unreadable/unusual content tree must not take down the whole
53
+ * health scan (same rationale as the corrupt-metadata handling below). Costs
54
+ * a full recursive readdir of the content tree, same class of cost as the
55
+ * lazy warm-up every ContentStore already pays on first access -- acceptable
56
+ * for an admin-triggered scan, not a hot path.
57
+ */
58
+ async function scanDuplicateContentIds(branchRoot, contentRootName) {
59
+ try {
60
+ const idIndex = new ContentIdIndex(branchRoot);
61
+ await idIndex.buildFromFilenames(contentRootName);
62
+ return idIndex.getDuplicateIds();
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ }
48
68
  /**
49
69
  * Scan every directory under `baseRoot` and classify it as healthy,
50
70
  * corrupt-metadata, or orphan. Never throws for a single bad directory --
@@ -57,6 +77,7 @@ async function readMetaMtime(branchRoot) {
57
77
  export async function scanBranchHealth(baseRoot, opts) {
58
78
  const resolvedRoot = path.resolve(baseRoot);
59
79
  const sanitizedBaseBranchName = sanitizeBranchName(opts.baseBranchName);
80
+ const contentRootName = opts.contentRootName ?? 'content';
60
81
  let dirEntries;
61
82
  try {
62
83
  dirEntries = await fs.readdir(resolvedRoot, { withFileTypes: true });
@@ -118,11 +139,13 @@ export async function scanBranchHealth(baseRoot, opts) {
118
139
  continue;
119
140
  }
120
141
  if (meta) {
142
+ const duplicateContentIds = await scanDuplicateContentIds(branchRoot, contentRootName);
121
143
  entries.push({
122
144
  dirName,
123
145
  kind: 'healthy',
124
146
  ...(isBaseBranch ? { isBaseBranch } : {}),
125
147
  branch: meta.branch,
148
+ ...(duplicateContentIds.length ? { duplicateContentIds } : {}),
126
149
  });
127
150
  continue;
128
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"branch-health.js","sourceRoot":"","sources":["../src/branch-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAI5B,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AA+C7E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,OAAe;IACpE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,YAAY,CAAC,CAAA;AACrD,CAAC;AAED,mEAAmE;AACnE,KAAK,UAAU,oBAAoB,CACjC,QAAgB,EAChB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;QACnE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;IAC3F,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,0DAA0D;QAC1D,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,aAAa,CAAC,UAAkB;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAA;QAChF,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,IAAgC;IAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3C,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAEvE,IAAI,UAAoB,CAAA;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IACtE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAA;QACnC,MAAM,GAAG,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAwB,EAAE,CAAA;IAEvC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,wEAAwE;QACxE,oEAAoE;QACpE,wDAAwD;QACxD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QAEtE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QACnD,MAAM,YAAY,GAAG,OAAO,KAAK,uBAAuB,CAAA;QAExD,IAAI,IAAI,GAAmE,IAAI,CAAA;QAC/E,IAAI,OAAO,GAAY,IAAI,CAAA;QAC3B,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,GAAG,GAAG,CAAA;QACf,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,oEAAoE;YACpE,gEAAgE;YAChE,iEAAiE;YACjE,sCAAsC;YACtC,EAAE;YACF,+DAA+D;YAC/D,6DAA6D;YAC7D,kEAAkE;YAClE,8DAA8D;YAC9D,sEAAsE;YACtE,mEAAmE;YACnE,qEAAqE;YACrE,yDAAyD;YACzD,MAAM,UAAU,GACd,OAAO,YAAY,0BAA0B;gBAC3C,CAAC,CAAC,OAAO,CAAC,UAAU;gBACpB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;oBACpB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;oBAChC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACtD,aAAa,CAAC,UAAU,CAAC;gBACzB,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC;aAC5C,CAAC,CAAA;YACF,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO;gBACP,IAAI,EAAE,kBAAkB;gBACxB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,UAAU;gBACV,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO;gBACP,IAAI,EAAE,SAAS;gBACf,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QAED,8DAA8D;QAC9D,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACxD,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACrC,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC;SAC5C,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC;YACX,OAAO;YACP,IAAI,EAAE,QAAQ;YACd,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,SAAS,EAAE,UAAU,KAAK,IAAI;YAC9B,GAAG,CAAC,OAAO;gBACT,CAAC,CAAC;oBACE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;oBACrC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;iBACjD;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"branch-health.js","sourceRoot":"","sources":["../src/branch-health.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { CanopyConfig } from './config';
2
+ import type { EntrySchemaRegistry } from './schema/types';
3
+ import { type CanopyBuildContext } from './context';
4
+ export interface CreateBuildCanopyOptions {
5
+ /**
6
+ * Entry schema registry for resolving `.collection.json` references.
7
+ * Same shape as `createCanopyServices`'s option of the same name.
8
+ */
9
+ entrySchemaRegistry?: EntrySchemaRegistry;
10
+ }
11
+ /**
12
+ * One-call factory for a **build/admin** Canopy context — for standalone
13
+ * scripts that run entirely outside a Next.js request or build phase (index
14
+ * builders, content audits, codegen, ad hoc reports).
15
+ *
16
+ * **This is a build/admin context: it reads the filesystem directly as a
17
+ * synthetic admin user (`STATIC_DEPLOY_USER`) and bypasses ALL branch and
18
+ * path ACLs.** There is no per-request auth to enforce because there is no
19
+ * request. Do not reach for this from request-handling code (an API route,
20
+ * a server component rendering for a specific visitor, anything with a real
21
+ * user on the other end) — there, use `createNextCanopyContext(...)`'s
22
+ * `getCanopy()` (or its phase-selecting `read`/`readByUrlPath`), which
23
+ * enforce branch/path permissions per user. This factory mirrors the same
24
+ * `createCanopyServices` + `createCanopyContext` + `STATIC_DEPLOY_USER` boot
25
+ * sequence that `createNextCanopyContext`'s own `getCanopyForBuild()` uses
26
+ * internally, minus the Next.js pieces (no `next/headers`, no React
27
+ * `cache()`, no request-time misuse guard — there is no request phase for
28
+ * it to guard against) — so it works in a plain script run with `tsx`/`node`.
29
+ *
30
+ * Trivially stubbable by design: the boot sequence is one function call
31
+ * taking a plain config object and returning a plain context, so a script
32
+ * that calls it can be imported and exercised from a test with the config
33
+ * (or this function itself) swapped out. Contrast with a hand-rolled
34
+ * top-level-`await` boot block, which can never be imported by a test at
35
+ * all — that's the concrete problem this factory removes.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * // scripts/build-search-index.ts
40
+ * import { createBuildCanopy } from 'canopycms/server'
41
+ * import config from '../canopycms.config'
42
+ * import { entrySchemaRegistry } from '../src/schemas'
43
+ *
44
+ * const canopy = await createBuildCanopy(config.server, { entrySchemaRegistry })
45
+ * const entries = await canopy.listEntries()
46
+ * ```
47
+ */
48
+ export declare function createBuildCanopy(config: CanopyConfig, options?: CreateBuildCanopyOptions): Promise<CanopyBuildContext>;
49
+ //# sourceMappingURL=build-canopy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-canopy.d.ts","sourceRoot":"","sources":["../src/build-canopy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEzD,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGxE,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAiB7B"}
@@ -0,0 +1,51 @@
1
+ import { createCanopyServices } from './services.js';
2
+ import { createCanopyContext } from './context.js';
3
+ import { STATIC_DEPLOY_USER } from './build-mode.js';
4
+ /**
5
+ * One-call factory for a **build/admin** Canopy context — for standalone
6
+ * scripts that run entirely outside a Next.js request or build phase (index
7
+ * builders, content audits, codegen, ad hoc reports).
8
+ *
9
+ * **This is a build/admin context: it reads the filesystem directly as a
10
+ * synthetic admin user (`STATIC_DEPLOY_USER`) and bypasses ALL branch and
11
+ * path ACLs.** There is no per-request auth to enforce because there is no
12
+ * request. Do not reach for this from request-handling code (an API route,
13
+ * a server component rendering for a specific visitor, anything with a real
14
+ * user on the other end) — there, use `createNextCanopyContext(...)`'s
15
+ * `getCanopy()` (or its phase-selecting `read`/`readByUrlPath`), which
16
+ * enforce branch/path permissions per user. This factory mirrors the same
17
+ * `createCanopyServices` + `createCanopyContext` + `STATIC_DEPLOY_USER` boot
18
+ * sequence that `createNextCanopyContext`'s own `getCanopyForBuild()` uses
19
+ * internally, minus the Next.js pieces (no `next/headers`, no React
20
+ * `cache()`, no request-time misuse guard — there is no request phase for
21
+ * it to guard against) — so it works in a plain script run with `tsx`/`node`.
22
+ *
23
+ * Trivially stubbable by design: the boot sequence is one function call
24
+ * taking a plain config object and returning a plain context, so a script
25
+ * that calls it can be imported and exercised from a test with the config
26
+ * (or this function itself) swapped out. Contrast with a hand-rolled
27
+ * top-level-`await` boot block, which can never be imported by a test at
28
+ * all — that's the concrete problem this factory removes.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * // scripts/build-search-index.ts
33
+ * import { createBuildCanopy } from 'canopycms/server'
34
+ * import config from '../canopycms.config.js'
35
+ * import { entrySchemaRegistry } from '../src/schemas.js'
36
+ *
37
+ * const canopy = await createBuildCanopy(config.server, { entrySchemaRegistry })
38
+ * const entries = await canopy.listEntries()
39
+ * ```
40
+ */
41
+ export async function createBuildCanopy(config, options = {}) {
42
+ const services = await createCanopyServices(config, {
43
+ entrySchemaRegistry: options.entrySchemaRegistry,
44
+ });
45
+ const { buildContentTree, listEntries, read, readByUrlPath, services: contextServices, } = await createCanopyContext({
46
+ services,
47
+ extractUser: async () => STATIC_DEPLOY_USER,
48
+ }).getContext();
49
+ return { buildContentTree, listEntries, read, readByUrlPath, services: contextServices };
50
+ }
51
+ //# sourceMappingURL=build-canopy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-canopy.js","sourceRoot":"","sources":["../src/build-canopy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAA2B,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAUjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAoB,EACpB,UAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE;QAClD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;KACjD,CAAC,CAAA;IAEF,MAAM,EACJ,gBAAgB,EAChB,WAAW,EACX,IAAI,EACJ,aAAa,EACb,QAAQ,EAAE,eAAe,GAC1B,GAAG,MAAM,mBAAmB,CAAC;QAC5B,QAAQ;QACR,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,kBAAkB;KAC5C,CAAC,CAAC,UAAU,EAAE,CAAA;IAEf,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;AAC1F,CAAC"}