canopycms 0.0.61-int.75 → 0.0.62

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 (369) hide show
  1. package/dist/ai/handler.js +1 -1
  2. package/dist/ai/handler.js.map +1 -1
  3. package/dist/ai/json-to-markdown.js +1 -2
  4. package/dist/ai/json-to-markdown.js.map +1 -1
  5. package/dist/api/__test__/mock-client.d.ts +5 -1
  6. package/dist/api/__test__/mock-client.d.ts.map +1 -1
  7. package/dist/api/__test__/mock-client.js +9 -2
  8. package/dist/api/__test__/mock-client.js.map +1 -1
  9. package/dist/api/admin-branch-health.d.ts +36 -1
  10. package/dist/api/admin-branch-health.d.ts.map +1 -1
  11. package/dist/api/admin-branch-health.js +176 -2
  12. package/dist/api/admin-branch-health.js.map +1 -1
  13. package/dist/api/admin.d.ts +8 -1
  14. package/dist/api/admin.d.ts.map +1 -1
  15. package/dist/api/admin.js.map +1 -1
  16. package/dist/api/assets.d.ts.map +1 -1
  17. package/dist/api/assets.js +36 -4
  18. package/dist/api/assets.js.map +1 -1
  19. package/dist/api/branch-status.d.ts.map +1 -1
  20. package/dist/api/branch-status.js +56 -0
  21. package/dist/api/branch-status.js.map +1 -1
  22. package/dist/api/branch-withdraw.d.ts.map +1 -1
  23. package/dist/api/branch-withdraw.js +14 -3
  24. package/dist/api/branch-withdraw.js.map +1 -1
  25. package/dist/api/branch.d.ts +31 -2
  26. package/dist/api/branch.d.ts.map +1 -1
  27. package/dist/api/branch.js +268 -15
  28. package/dist/api/branch.js.map +1 -1
  29. package/dist/api/client.d.ts +5 -1
  30. package/dist/api/client.d.ts.map +1 -1
  31. package/dist/api/client.js +6 -0
  32. package/dist/api/client.js.map +1 -1
  33. package/dist/api/comments.d.ts +2 -2
  34. package/dist/api/content.d.ts +11 -5
  35. package/dist/api/content.d.ts.map +1 -1
  36. package/dist/api/content.js +91 -10
  37. package/dist/api/content.js.map +1 -1
  38. package/dist/api/entries.d.ts +10 -0
  39. package/dist/api/entries.d.ts.map +1 -1
  40. package/dist/api/entries.js +51 -24
  41. package/dist/api/entries.js.map +1 -1
  42. package/dist/api/guards.d.ts.map +1 -1
  43. package/dist/api/guards.js +12 -5
  44. package/dist/api/guards.js.map +1 -1
  45. package/dist/api/permissions.d.ts +2 -2
  46. package/dist/api/permissions.d.ts.map +1 -1
  47. package/dist/api/permissions.js +51 -3
  48. package/dist/api/permissions.js.map +1 -1
  49. package/dist/api/reference-options.d.ts.map +1 -1
  50. package/dist/api/reference-options.js +10 -17
  51. package/dist/api/reference-options.js.map +1 -1
  52. package/dist/api/resolve-references.d.ts.map +1 -1
  53. package/dist/api/resolve-references.js +3 -1
  54. package/dist/api/resolve-references.js.map +1 -1
  55. package/dist/api/schema.d.ts +4 -4
  56. package/dist/api/schema.d.ts.map +1 -1
  57. package/dist/api/schema.js +16 -15
  58. package/dist/api/schema.js.map +1 -1
  59. package/dist/api/settings-helpers.d.ts.map +1 -1
  60. package/dist/api/settings-helpers.js +6 -5
  61. package/dist/api/settings-helpers.js.map +1 -1
  62. package/dist/assets/pipeline.d.ts +11 -2
  63. package/dist/assets/pipeline.d.ts.map +1 -1
  64. package/dist/assets/pipeline.js +114 -2
  65. package/dist/assets/pipeline.js.map +1 -1
  66. package/dist/assets/transform-directives.d.ts +18 -0
  67. package/dist/assets/transform-directives.d.ts.map +1 -1
  68. package/dist/assets/transform-directives.js +18 -0
  69. package/dist/assets/transform-directives.js.map +1 -1
  70. package/dist/assets/transform.d.ts.map +1 -1
  71. package/dist/assets/transform.js +20 -16
  72. package/dist/assets/transform.js.map +1 -1
  73. package/dist/auth/types.d.ts +29 -0
  74. package/dist/auth/types.d.ts.map +1 -1
  75. package/dist/authorization/index.d.ts +1 -1
  76. package/dist/authorization/index.d.ts.map +1 -1
  77. package/dist/authorization/index.js +1 -1
  78. package/dist/authorization/index.js.map +1 -1
  79. package/dist/authorization/protected-branch.d.ts +75 -0
  80. package/dist/authorization/protected-branch.d.ts.map +1 -1
  81. package/dist/authorization/protected-branch.js +39 -0
  82. package/dist/authorization/protected-branch.js.map +1 -1
  83. package/dist/branch-health.d.ts +13 -0
  84. package/dist/branch-health.d.ts.map +1 -1
  85. package/dist/branch-health.js +23 -0
  86. package/dist/branch-health.js.map +1 -1
  87. package/dist/branch-registry.d.ts.map +1 -1
  88. package/dist/branch-registry.js +5 -1
  89. package/dist/branch-registry.js.map +1 -1
  90. package/dist/branch-schema-cache.d.ts.map +1 -1
  91. package/dist/branch-schema-cache.js +9 -0
  92. package/dist/branch-schema-cache.js.map +1 -1
  93. package/dist/build/generate-ai-content.js +1 -1
  94. package/dist/build/generate-ai-content.js.map +1 -1
  95. package/dist/cli/cli.js +2215 -1280
  96. package/dist/cli/generate-ai-content.js +1158 -585
  97. package/dist/cli/init.d.ts +8 -2
  98. package/dist/cli/init.d.ts.map +1 -1
  99. package/dist/cli/init.js +459 -152
  100. package/dist/cli/init.js.map +1 -1
  101. package/dist/cli/project-detect.d.ts +89 -0
  102. package/dist/cli/project-detect.d.ts.map +1 -0
  103. package/dist/cli/project-detect.js +240 -0
  104. package/dist/cli/project-detect.js.map +1 -0
  105. package/dist/cli/template-files/Dockerfile.cms.template +30 -7
  106. package/dist/cli/template-files/canopycms.config.ts.template +7 -0
  107. package/dist/cli/template-files/cdk-app.ts.template +82 -0
  108. package/dist/cli/template-files/cdk.json.template +9 -0
  109. package/dist/cli/template-files/cms-stack.ts.template +130 -0
  110. package/dist/cli/template-files/deploy-cms.yml.template +125 -13
  111. package/dist/cli/template-files/dockerignore.template +2 -1
  112. package/dist/cli/templates.d.ts +26 -2
  113. package/dist/cli/templates.d.ts.map +1 -1
  114. package/dist/cli/templates.js +36 -4
  115. package/dist/cli/templates.js.map +1 -1
  116. package/dist/client.d.ts +1 -0
  117. package/dist/client.d.ts.map +1 -1
  118. package/dist/client.js.map +1 -1
  119. package/dist/config/schemas/config.d.ts +2 -3
  120. package/dist/config/schemas/config.d.ts.map +1 -1
  121. package/dist/config/schemas/config.js +21 -1
  122. package/dist/config/schemas/config.js.map +1 -1
  123. package/dist/config/schemas/field.d.ts +15 -15
  124. package/dist/config/types.d.ts +2 -2
  125. package/dist/config/types.d.ts.map +1 -1
  126. package/dist/config/types.js +0 -1
  127. package/dist/config/types.js.map +1 -1
  128. package/dist/config/validation.d.ts +18 -0
  129. package/dist/config/validation.d.ts.map +1 -1
  130. package/dist/config/validation.js +36 -12
  131. package/dist/config/validation.js.map +1 -1
  132. package/dist/content-id-index.d.ts +97 -5
  133. package/dist/content-id-index.d.ts.map +1 -1
  134. package/dist/content-id-index.js +170 -18
  135. package/dist/content-id-index.js.map +1 -1
  136. package/dist/content-reader.js +1 -1
  137. package/dist/content-reader.js.map +1 -1
  138. package/dist/content-store.d.ts +92 -7
  139. package/dist/content-store.d.ts.map +1 -1
  140. package/dist/content-store.js +445 -259
  141. package/dist/content-store.js.map +1 -1
  142. package/dist/dev-content-watcher.d.ts.map +1 -1
  143. package/dist/dev-content-watcher.js +4 -1
  144. package/dist/dev-content-watcher.js.map +1 -1
  145. package/dist/editor/BranchManager.d.ts +15 -0
  146. package/dist/editor/BranchManager.d.ts.map +1 -1
  147. package/dist/editor/BranchManager.js +61 -15
  148. package/dist/editor/BranchManager.js.map +1 -1
  149. package/dist/editor/CanopyEditor.d.ts.map +1 -1
  150. package/dist/editor/CanopyEditor.js +3 -3
  151. package/dist/editor/CanopyEditor.js.map +1 -1
  152. package/dist/editor/CanopyEditorPage.d.ts +9 -1
  153. package/dist/editor/CanopyEditorPage.d.ts.map +1 -1
  154. package/dist/editor/CanopyEditorPage.js +9 -2
  155. package/dist/editor/CanopyEditorPage.js.map +1 -1
  156. package/dist/editor/Editor.d.ts +9 -1
  157. package/dist/editor/Editor.d.ts.map +1 -1
  158. package/dist/editor/Editor.js +156 -60
  159. package/dist/editor/Editor.js.map +1 -1
  160. package/dist/editor/FormRenderer.d.ts.map +1 -1
  161. package/dist/editor/FormRenderer.js +12 -0
  162. package/dist/editor/FormRenderer.js.map +1 -1
  163. package/dist/editor/admin/SystemHealthPanel.d.ts.map +1 -1
  164. package/dist/editor/admin/SystemHealthPanel.js +14 -9
  165. package/dist/editor/admin/SystemHealthPanel.js.map +1 -1
  166. package/dist/editor/components/EditorHeader.d.ts +6 -0
  167. package/dist/editor/components/EditorHeader.d.ts.map +1 -1
  168. package/dist/editor/components/EditorHeader.js +76 -23
  169. package/dist/editor/components/EditorHeader.js.map +1 -1
  170. package/dist/editor/components/EntryCreateModal.d.ts +9 -1
  171. package/dist/editor/components/EntryCreateModal.d.ts.map +1 -1
  172. package/dist/editor/components/EntryCreateModal.js +25 -7
  173. package/dist/editor/components/EntryCreateModal.js.map +1 -1
  174. package/dist/editor/context/SWRProvider.d.ts +31 -0
  175. package/dist/editor/context/SWRProvider.d.ts.map +1 -0
  176. package/dist/editor/context/SWRProvider.js +12 -0
  177. package/dist/editor/context/SWRProvider.js.map +1 -0
  178. package/dist/editor/context/index.d.ts +3 -0
  179. package/dist/editor/context/index.d.ts.map +1 -1
  180. package/dist/editor/context/index.js +3 -0
  181. package/dist/editor/context/index.js.map +1 -1
  182. package/dist/editor/editor-utils.d.ts.map +1 -1
  183. package/dist/editor/editor-utils.js +8 -2
  184. package/dist/editor/editor-utils.js.map +1 -1
  185. package/dist/editor/fields/DateTimeField.d.ts +46 -0
  186. package/dist/editor/fields/DateTimeField.d.ts.map +1 -0
  187. package/dist/editor/fields/DateTimeField.js +66 -0
  188. package/dist/editor/fields/DateTimeField.js.map +1 -0
  189. package/dist/editor/fields/ImageField.d.ts.map +1 -1
  190. package/dist/editor/fields/ImageField.js +27 -3
  191. package/dist/editor/fields/ImageField.js.map +1 -1
  192. package/dist/editor/fields/NumberField.d.ts +34 -0
  193. package/dist/editor/fields/NumberField.d.ts.map +1 -0
  194. package/dist/editor/fields/NumberField.js +53 -0
  195. package/dist/editor/fields/NumberField.js.map +1 -0
  196. package/dist/editor/fields/NumberListField.d.ts +25 -0
  197. package/dist/editor/fields/NumberListField.d.ts.map +1 -0
  198. package/dist/editor/fields/NumberListField.js +53 -0
  199. package/dist/editor/fields/NumberListField.js.map +1 -0
  200. package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
  201. package/dist/editor/fields/ReferenceField.js +52 -31
  202. package/dist/editor/fields/ReferenceField.js.map +1 -1
  203. package/dist/editor/hooks/__test__/test-utils.d.ts +38 -3
  204. package/dist/editor/hooks/__test__/test-utils.d.ts.map +1 -1
  205. package/dist/editor/hooks/__test__/test-utils.js +50 -4
  206. package/dist/editor/hooks/__test__/test-utils.js.map +1 -1
  207. package/dist/editor/hooks/index.d.ts +4 -1
  208. package/dist/editor/hooks/index.d.ts.map +1 -1
  209. package/dist/editor/hooks/index.js +4 -1
  210. package/dist/editor/hooks/index.js.map +1 -1
  211. package/dist/editor/hooks/useBranchManager.d.ts +21 -1
  212. package/dist/editor/hooks/useBranchManager.d.ts.map +1 -1
  213. package/dist/editor/hooks/useBranchManager.js +183 -58
  214. package/dist/editor/hooks/useBranchManager.js.map +1 -1
  215. package/dist/editor/hooks/useBranchesData.d.ts +57 -0
  216. package/dist/editor/hooks/useBranchesData.d.ts.map +1 -0
  217. package/dist/editor/hooks/useBranchesData.js +69 -0
  218. package/dist/editor/hooks/useBranchesData.js.map +1 -0
  219. package/dist/editor/hooks/useCommentSystem.d.ts.map +1 -1
  220. package/dist/editor/hooks/useCommentSystem.js +24 -22
  221. package/dist/editor/hooks/useCommentSystem.js.map +1 -1
  222. package/dist/editor/hooks/useCommentsData.d.ts +29 -0
  223. package/dist/editor/hooks/useCommentsData.d.ts.map +1 -0
  224. package/dist/editor/hooks/useCommentsData.js +40 -0
  225. package/dist/editor/hooks/useCommentsData.js.map +1 -0
  226. package/dist/editor/hooks/useDraftManager.d.ts +8 -0
  227. package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
  228. package/dist/editor/hooks/useDraftManager.js +290 -36
  229. package/dist/editor/hooks/useDraftManager.js.map +1 -1
  230. package/dist/editor/hooks/useEntriesData.d.ts +35 -0
  231. package/dist/editor/hooks/useEntriesData.d.ts.map +1 -0
  232. package/dist/editor/hooks/useEntriesData.js +96 -0
  233. package/dist/editor/hooks/useEntriesData.js.map +1 -0
  234. package/dist/editor/hooks/useEntryManager.d.ts +29 -15
  235. package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
  236. package/dist/editor/hooks/useEntryManager.js +284 -119
  237. package/dist/editor/hooks/useEntryManager.js.map +1 -1
  238. package/dist/editor/hooks/usePermissionManager.d.ts +2 -2
  239. package/dist/editor/hooks/usePermissionManager.d.ts.map +1 -1
  240. package/dist/editor/hooks/usePermissionManager.js +11 -9
  241. package/dist/editor/hooks/usePermissionManager.js.map +1 -1
  242. package/dist/editor/hooks/useReferenceResolution.d.ts.map +1 -1
  243. package/dist/editor/hooks/useReferenceResolution.js +24 -1
  244. package/dist/editor/hooks/useReferenceResolution.js.map +1 -1
  245. package/dist/editor/media/MediaLibraryBody.d.ts.map +1 -1
  246. package/dist/editor/media/MediaLibraryBody.js +12 -2
  247. package/dist/editor/media/MediaLibraryBody.js.map +1 -1
  248. package/dist/editor/permission-manager/GroupSelector.d.ts.map +1 -1
  249. package/dist/editor/permission-manager/GroupSelector.js +7 -2
  250. package/dist/editor/permission-manager/GroupSelector.js.map +1 -1
  251. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +3 -3
  252. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts.map +1 -1
  253. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +1 -0
  254. package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js.map +1 -1
  255. package/dist/editor/permission-manager/types.d.ts +6 -4
  256. package/dist/editor/permission-manager/types.d.ts.map +1 -1
  257. package/dist/editor/test-setup.js +8 -0
  258. package/dist/editor/test-setup.js.map +1 -1
  259. package/dist/editor/theme.d.ts +8 -8
  260. package/dist/git-manager.d.ts +175 -14
  261. package/dist/git-manager.d.ts.map +1 -1
  262. package/dist/git-manager.js +354 -39
  263. package/dist/git-manager.js.map +1 -1
  264. package/dist/github-service.d.ts.map +1 -1
  265. package/dist/github-service.js +13 -7
  266. package/dist/github-service.js.map +1 -1
  267. package/dist/http/handler.d.ts.map +1 -1
  268. package/dist/http/handler.js +78 -29
  269. package/dist/http/handler.js.map +1 -1
  270. package/dist/http/router.d.ts.map +1 -1
  271. package/dist/http/router.js +40 -3
  272. package/dist/http/router.js.map +1 -1
  273. package/dist/operating-mode/client-unsafe-strategy.d.ts.map +1 -1
  274. package/dist/operating-mode/client-unsafe-strategy.js +7 -8
  275. package/dist/operating-mode/client-unsafe-strategy.js.map +1 -1
  276. package/dist/operating-mode/deployment-name-fixtures.d.ts +29 -0
  277. package/dist/operating-mode/deployment-name-fixtures.d.ts.map +1 -0
  278. package/dist/operating-mode/deployment-name-fixtures.js +55 -0
  279. package/dist/operating-mode/deployment-name-fixtures.js.map +1 -0
  280. package/dist/operating-mode/deployment-name.d.ts +37 -0
  281. package/dist/operating-mode/deployment-name.d.ts.map +1 -0
  282. package/dist/operating-mode/deployment-name.js +86 -0
  283. package/dist/operating-mode/deployment-name.js.map +1 -0
  284. package/dist/operating-mode/index.d.ts +6 -1
  285. package/dist/operating-mode/index.d.ts.map +1 -1
  286. package/dist/operating-mode/index.js +10 -1
  287. package/dist/operating-mode/index.js.map +1 -1
  288. package/dist/operating-mode/mode-env.d.ts +58 -0
  289. package/dist/operating-mode/mode-env.d.ts.map +1 -0
  290. package/dist/operating-mode/mode-env.js +97 -0
  291. package/dist/operating-mode/mode-env.js.map +1 -0
  292. package/dist/operating-mode/types.d.ts +13 -3
  293. package/dist/operating-mode/types.d.ts.map +1 -1
  294. package/dist/paths/branch-name.d.ts +38 -0
  295. package/dist/paths/branch-name.d.ts.map +1 -1
  296. package/dist/paths/branch-name.js +46 -0
  297. package/dist/paths/branch-name.js.map +1 -1
  298. package/dist/paths/index.d.ts +1 -1
  299. package/dist/paths/index.d.ts.map +1 -1
  300. package/dist/paths/index.js +1 -1
  301. package/dist/paths/index.js.map +1 -1
  302. package/dist/reference-resolver.d.ts +6 -2
  303. package/dist/reference-resolver.d.ts.map +1 -1
  304. package/dist/reference-resolver.js +8 -1
  305. package/dist/reference-resolver.js.map +1 -1
  306. package/dist/resolve-canopy-user.d.ts +34 -0
  307. package/dist/resolve-canopy-user.d.ts.map +1 -0
  308. package/dist/resolve-canopy-user.js +55 -0
  309. package/dist/resolve-canopy-user.js.map +1 -0
  310. package/dist/schema/meta-loader.d.ts.map +1 -1
  311. package/dist/schema/meta-loader.js +10 -2
  312. package/dist/schema/meta-loader.js.map +1 -1
  313. package/dist/schema/schema-store.d.ts +64 -4
  314. package/dist/schema/schema-store.d.ts.map +1 -1
  315. package/dist/schema/schema-store.js +113 -30
  316. package/dist/schema/schema-store.js.map +1 -1
  317. package/dist/server.d.ts +9 -0
  318. package/dist/server.d.ts.map +1 -1
  319. package/dist/server.js +9 -0
  320. package/dist/server.js.map +1 -1
  321. package/dist/services.d.ts.map +1 -1
  322. package/dist/services.js +40 -6
  323. package/dist/services.js.map +1 -1
  324. package/dist/settings-workspace.d.ts +27 -2
  325. package/dist/settings-workspace.d.ts.map +1 -1
  326. package/dist/settings-workspace.js +142 -58
  327. package/dist/settings-workspace.js.map +1 -1
  328. package/dist/types.d.ts +73 -2
  329. package/dist/types.d.ts.map +1 -1
  330. package/dist/utils/content-write-lock.d.ts +127 -0
  331. package/dist/utils/content-write-lock.d.ts.map +1 -0
  332. package/dist/utils/content-write-lock.js +170 -0
  333. package/dist/utils/content-write-lock.js.map +1 -0
  334. package/dist/utils/debug.d.ts +11 -0
  335. package/dist/utils/debug.d.ts.map +1 -1
  336. package/dist/utils/debug.js +12 -1
  337. package/dist/utils/debug.js.map +1 -1
  338. package/dist/utils/error.d.ts +1 -1
  339. package/dist/utils/error.js +1 -1
  340. package/dist/utils/git.d.ts +54 -0
  341. package/dist/utils/git.d.ts.map +1 -1
  342. package/dist/utils/git.js +91 -0
  343. package/dist/utils/git.js.map +1 -1
  344. package/dist/utils/logger.d.ts +71 -0
  345. package/dist/utils/logger.d.ts.map +1 -0
  346. package/dist/utils/logger.js +85 -0
  347. package/dist/utils/logger.js.map +1 -0
  348. package/dist/utils/sanitize-href.d.ts +28 -3
  349. package/dist/utils/sanitize-href.d.ts.map +1 -1
  350. package/dist/utils/sanitize-href.js +64 -6
  351. package/dist/utils/sanitize-href.js.map +1 -1
  352. package/dist/validation/entry-link-validator.d.ts +1 -1
  353. package/dist/validation/entry-link-validator.js +3 -3
  354. package/dist/validation/entry-link-validator.js.map +1 -1
  355. package/dist/validation/entry-type-reference-validator.d.ts +33 -0
  356. package/dist/validation/entry-type-reference-validator.d.ts.map +1 -0
  357. package/dist/validation/entry-type-reference-validator.js +110 -0
  358. package/dist/validation/entry-type-reference-validator.js.map +1 -0
  359. package/dist/validation/entry-validator.js +1 -1
  360. package/dist/validation/entry-validator.js.map +1 -1
  361. package/dist/worker/cms-worker.d.ts +245 -3
  362. package/dist/worker/cms-worker.d.ts.map +1 -1
  363. package/dist/worker/cms-worker.js +1084 -253
  364. package/dist/worker/cms-worker.js.map +1 -1
  365. package/dist/worker/log.d.ts +61 -0
  366. package/dist/worker/log.d.ts.map +1 -0
  367. package/dist/worker/log.js +74 -0
  368. package/dist/worker/log.js.map +1 -0
  369. package/package.json +4 -2
@@ -0,0 +1,130 @@
1
+ /**
2
+ * CanopyCMS infrastructure: VPC + EFS + CMS Lambda + EC2 worker, and
3
+ * optionally CloudFront + Route53 in front of the Lambda's Function URL.
4
+ *
5
+ * This file is yours to edit -- `canopycms init-deploy aws` will not overwrite
6
+ * it without `--force`. The comments below mark the settings that have a
7
+ * silent-failure mode; the rest is ordinary CDK.
8
+ *
9
+ * See docs/deploying-to-aws.md for the full walkthrough, including the media
10
+ * (AssetSupport) and multi-deployment cases.
11
+ */
12
+
13
+ import { Stack, StackProps } from 'aws-cdk-lib'
14
+ import { Construct } from 'constructs'
15
+ import * as lambda from 'aws-cdk-lib/aws-lambda'
16
+ import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'
17
+ import { Platform } from 'aws-cdk-lib/aws-ecr-assets'
18
+ import { CanopyCmsService, CanopyCmsDistribution } from 'canopycms-cdk'
19
+
20
+ export interface CmsStackProps extends StackProps {
21
+ /** GitHub repository the EC2 worker pushes branches and opens PRs against. */
22
+ githubOwner: string
23
+ githubRepo: string
24
+ /** FULL Secrets Manager ARN, including the random six-character suffix. */
25
+ githubTokenSecretArn: string
26
+ /** FULL Secrets Manager ARN, including the random six-character suffix. */
27
+ clerkSecretKeySecretArn: string
28
+ /** Clerk's public JWKS PEM, for networkless session verification. */
29
+ clerkJwtKey: string
30
+ /** Clerk publishable key, baked into the client bundle at image-build time. */
31
+ clerkPublishableKey: string
32
+ /** Comma-separated Clerk user IDs granted admin on first boot. */
33
+ bootstrapAdminIds: string
34
+ /** Namespaces this deployment's settings branch (`canopycms-settings-{name}`). */
35
+ deploymentName: string
36
+ /** Optional CloudFront domain, e.g. 'cms.docs.example.org'. */
37
+ domainName?: string
38
+ /** Optional Route53 hosted zone domain, e.g. 'example.org'. */
39
+ hostedZoneDomain?: string
40
+ }
41
+
42
+ export class CmsStack extends Stack {
43
+ constructor(scope: Construct, id: string, props: CmsStackProps) {
44
+ super(scope, id, props)
45
+
46
+ // fromSecretCompleteArn, NOT fromSecretNameV2: `secretsArns` below is
47
+ // written verbatim into the worker's IAM policy, so a partial or
48
+ // name-based ARN never matches the real secret and the worker fails with
49
+ // AccessDenied at boot rather than at deploy.
50
+ const githubToken = secretsmanager.Secret.fromSecretCompleteArn(
51
+ this,
52
+ 'GitHubToken',
53
+ props.githubTokenSecretArn,
54
+ )
55
+ const clerkSecretKey = secretsmanager.Secret.fromSecretCompleteArn(
56
+ this,
57
+ 'ClerkSecret',
58
+ props.clerkSecretKeySecretArn,
59
+ )
60
+
61
+ const cmsService = new CanopyCmsService(this, 'CmsService', {
62
+ // `cdk deploy` builds this image and publishes it to the CDK bootstrap
63
+ // assets repository -- it is the ONLY thing that ships CMS code. Do not
64
+ // pair it with a separate ECR push plus `aws lambda
65
+ // update-function-code`: that builds the image twice and leaves the
66
+ // function's image URI out of sync with CloudFormation, so the next
67
+ // `cdk deploy` touching the function silently reverts your code.
68
+ cmsDockerImage: lambda.DockerImageCode.fromImageAsset('.', {
69
+ file: 'Dockerfile.cms',
70
+ // The image platform and the Lambda architecture must agree, or the
71
+ // function fails at invoke with an exec-format error. Building on
72
+ // Apple Silicon defaults to arm64, so arm64 is the pairing that works
73
+ // both locally and on an x86 CI runner.
74
+ platform: Platform.LINUX_ARM64,
75
+ // Next.js inlines NEXT_PUBLIC_* into the CLIENT bundle during
76
+ // `next build`, so these have to reach the image BUILD. A Lambda
77
+ // environment variable would be far too late.
78
+ buildArgs: {
79
+ NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: props.clerkPublishableKey,
80
+ // The browser half of the operating mode. The server half is the
81
+ // Lambda's CANOPY_MODE, set by CanopyCmsService; this one decides
82
+ // what the editor bundle believes (Clerk auth rather than dev auth,
83
+ // and the prod feature flags). The image's own `next build` stays in
84
+ // dev mode either way -- see Dockerfile.cms.
85
+ NEXT_PUBLIC_CANOPY_MODE: 'prod',
86
+ },
87
+ }),
88
+ architecture: lambda.Architecture.ARM_64,
89
+
90
+ githubOwner: props.githubOwner,
91
+ githubRepo: props.githubRepo,
92
+ deploymentName: props.deploymentName,
93
+
94
+ // Secrets the EC2 worker reads. The Lambda needs none of them.
95
+ secretsArns: [githubToken.secretArn, clerkSecretKey.secretArn],
96
+ githubTokenSecretArn: githubToken.secretArn,
97
+ clerkSecretKeySecretArn: clerkSecretKey.secretArn,
98
+
99
+ // Lambda environment: public config only, never secrets.
100
+ environment: {
101
+ CANOPY_AUTH_MODE: 'clerk',
102
+ CLERK_JWT_KEY: props.clerkJwtKey,
103
+ CANOPY_BOOTSTRAP_ADMIN_IDS: props.bootstrapAdminIds,
104
+ },
105
+
106
+ memorySize: 2048,
107
+ reservedConcurrency: 10,
108
+ })
109
+
110
+ // Media support (uploads, on-demand image transforms). Uncomment to give
111
+ // the deployed editor an asset backend, pass `assetBucket:
112
+ // assetSupport.bucket` to CanopyCmsService above, and wire
113
+ // `assetSupport.cloudFrontBehaviors` into the distribution below. See the
114
+ // assets section of docs/deploying-to-aws.md.
115
+ //
116
+ // const assetSupport = new AssetSupport(this, 'Assets', {})
117
+
118
+ // CloudFront + Route53, only when a domain is configured. Skipping this
119
+ // leaves `cmsService.functionUrl` as the entry point, which is enough to
120
+ // exercise the editor and is what keeps a credential-free `cdk synth`
121
+ // working -- HostedZone.fromLookup below needs real AWS context.
122
+ if (props.domainName && props.hostedZoneDomain) {
123
+ new CanopyCmsDistribution(this, 'CmsDist', {
124
+ functionUrl: cmsService.functionUrl,
125
+ domainName: props.domainName,
126
+ hostedZoneDomain: props.hostedZoneDomain,
127
+ })
128
+ }
129
+ }
130
+ }
@@ -1,35 +1,147 @@
1
- # CanopyCMS deployment workflow
2
- # Customize this for your CI/CD setup
1
+ # CanopyCMS deployment workflow.
2
+ #
3
+ # `cdk deploy` is the ONLY thing that ships code here, deliberately.
4
+ #
5
+ # The generated CDK stack passes the CMS image to CanopyCmsService as
6
+ # `lambda.DockerImageCode.fromImageAsset('.', { file: 'Dockerfile.cms' })` -- a
7
+ # CDK-built asset. `cdk deploy` builds that image, publishes it to the CDK
8
+ # bootstrap assets repository, and points the Lambda at it as part of the
9
+ # CloudFormation change set.
10
+ #
11
+ # So do NOT add a separate `docker build` + push to your own ECR repo followed
12
+ # by `aws lambda update-function-code`. That builds the image twice and leaves
13
+ # the function's image URI out of sync with CloudFormation's view of it -- the
14
+ # next `cdk deploy` that touches the function silently reverts your code to the
15
+ # CDK asset. If you want to control the image tag yourself, switch the stack to
16
+ # `DockerImageCode.fromEcr(repo, { tagOrDigest })` and keep `cdk deploy` as the
17
+ # single deployer; don't run both mechanisms.
18
+ #
19
+ # `cdk deploy` also rolls the EC2 worker (CanopyCmsService gives its Auto
20
+ # Scaling Group a rolling UpdatePolicy), so a worker code change reaches the
21
+ # running instance. Expect a short worker outage during the replacement; the
22
+ # task queue and branch workspaces live on EFS and are picked up on boot.
23
+ #
24
+ # This workflow deploys the stack BY NAME rather than with `--all`. If you keep
25
+ # other CDK stacks in this repository, `--all` would deploy those too, on every
26
+ # content merge -- so if you rename the stack in infrastructure/bin/app.ts,
27
+ # rename it in the Deploy step below as well.
28
+ #
29
+ # Before this workflow can run:
30
+ # 1. Bootstrap CDK in the target account/region: `cdk bootstrap`.
31
+ # `cdk deploy` needs it; `aws lambda update-function-code` did not, so
32
+ # this is easy to miss when migrating from an update-only pipeline.
33
+ # 2. Create an IAM role your repo can assume via GitHub OIDC, trusted for
34
+ # this repository, able to assume the CDK bootstrap roles
35
+ # (cdk-hnb659fds-*-deploy-role, -file-publishing-role,
36
+ # -image-publishing-role, -lookup-role). This is a broader grant than an
37
+ # update-function-code pipeline needed -- `cdk deploy` mutates
38
+ # infrastructure.
39
+ # 3. Install the CDK dependencies the app entry point needs:
40
+ # `{{ADD_DEV}} canopycms-cdk aws-cdk-lib constructs tsx aws-cdk`
41
+ # 4. Set these repository secrets (Settings -> Secrets and variables ->
42
+ # Actions -> Secrets). Every one of them is read by `required()` in
43
+ # infrastructure/bin/app.ts, so a missing value fails the deploy at synth:
44
+ # AWS_DEPLOY_ROLE_ARN OIDC role ARN from step 2
45
+ # GITHUB_TOKEN_SECRET_ARN FULL Secrets Manager ARN (with suffix)
46
+ # CLERK_SECRET_KEY_SECRET_ARN FULL Secrets Manager ARN (with suffix)
47
+ # CLERK_JWT_KEY Clerk's public JWKS PEM
48
+ # 5. Set these repository variables (same page -> Variables):
49
+ # AWS_REGION e.g. us-east-1
50
+ # NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY or the editor ships unable to sign in
51
+ # CANOPY_BOOTSTRAP_ADMIN_IDS comma-separated Clerk user IDs
52
+ # Optional:
53
+ # CANOPYCMS_DEPLOYMENT_NAME defaults to 'prod'
54
+ # CMS_DOMAIN_NAME enables CloudFront + Route53
55
+ # CMS_HOSTED_ZONE_DOMAIN required alongside CMS_DOMAIN_NAME
3
56
 
4
57
  name: Deploy CMS
58
+
5
59
  on:
6
60
  push:
61
+ branches: [{{DEFAULT_BRANCH}}]
7
62
  paths:
8
63
  - 'app/**'
9
64
  - 'src/**'
10
65
  - 'content/**'
11
66
  - 'canopycms.config.ts'
12
67
  - 'Dockerfile.cms'
68
+ - 'infrastructure/**'
69
+ - 'cdk.json'
70
+ # A dependency bump alone changes what the image contains, so it has to
71
+ # trigger a deploy too -- otherwise the Lambda keeps running the old
72
+ # dependency tree until the next content change happens to ship it.
73
+ - 'package.json'
74
+ - '{{LOCKFILE}}'
13
75
  workflow_dispatch:
14
76
 
77
+ concurrency:
78
+ # Two overlapping `cdk deploy` runs against one stack fail on
79
+ # UPDATE_IN_PROGRESS. Queue rather than cancel: cancelling mid-deploy leaves
80
+ # the stack in an in-progress state that needs manual recovery.
81
+ group: deploy-cms
82
+ cancel-in-progress: false
83
+
15
84
  jobs:
16
- build-and-deploy:
85
+ deploy:
17
86
  runs-on: ubuntu-latest
87
+ permissions:
88
+ id-token: write # required for OIDC
89
+ contents: read
90
+
18
91
  steps:
19
92
  - uses: actions/checkout@v4
93
+
20
94
  - uses: actions/setup-node@v4
21
95
  with:
22
96
  node-version: 20
23
97
 
24
- # TODO: Configure your ECR login, Docker build, push, and Lambda update
25
- # See https://canopycms.dev/deploy/aws for details
98
+ - name: Install dependencies
99
+ run: {{CI_INSTALL}}
100
+
101
+ # cdk.json runs `node --import tsx infrastructure/bin/app.ts`, which
102
+ # imports canopycms-cdk, aws-cdk-lib and constructs. Missing any of them
103
+ # otherwise surfaces as an ERR_MODULE_NOT_FOUND buried in `cdk deploy`
104
+ # output, several minutes in.
26
105
  #
27
- # Dockerfile.cms declares ARG NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, baked into
28
- # the client bundle at build time — set a repository variable named
29
- # NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY (Settings -> Secrets and variables ->
30
- # Actions -> Variables) or the client ships with an empty publishable key.
31
- - name: Build CMS image
106
+ # aws-cdk is checked too even though nothing imports it: it is the CLI
107
+ # the Deploy step invokes as `npx cdk`. Absent from node_modules, npx
108
+ # silently fetches whatever version is current that day instead of
109
+ # failing -- so the deploy still runs, just not reproducibly. Keep this
110
+ # list in step with CDK_DEPENDENCIES in cli/project-detect.ts, which is
111
+ # what `canopycms init-deploy` tells adopters to install.
112
+ - name: Check CDK dependencies are installed
32
113
  run: |
33
- docker build \
34
- --build-arg NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="${{ vars.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY }}" \
35
- -f Dockerfile.cms -t cms:latest .
114
+ missing=""
115
+ for pkg in tsx aws-cdk-lib constructs canopycms-cdk aws-cdk; do
116
+ [ -e "node_modules/$pkg" ] || missing="$missing $pkg"
117
+ done
118
+ if [ -n "$missing" ]; then
119
+ echo "::error::Missing CDK dependencies:$missing"
120
+ echo "::error::Install them with: {{ADD_DEV}} canopycms-cdk aws-cdk-lib constructs tsx aws-cdk"
121
+ exit 1
122
+ fi
123
+
124
+ - name: Configure AWS credentials
125
+ uses: aws-actions/configure-aws-credentials@v4
126
+ with:
127
+ role-to-assume: ${{ secrets.AWS_DEPLOY_ROLE_ARN }}
128
+ aws-region: ${{ vars.AWS_REGION }}
129
+
130
+ # Builds the CMS image, publishes it to the CDK assets repository, and
131
+ # applies the change set -- Lambda, EFS, CloudFront and the worker ASG
132
+ # in one operation.
133
+ #
134
+ # Every variable below is consumed by infrastructure/bin/app.ts. Keep
135
+ # this block in step with the `required()` calls there: a variable added
136
+ # in one place and not the other fails the deploy at synth.
137
+ - name: Deploy
138
+ env:
139
+ GITHUB_TOKEN_SECRET_ARN: ${{ secrets.GITHUB_TOKEN_SECRET_ARN }}
140
+ CLERK_SECRET_KEY_SECRET_ARN: ${{ secrets.CLERK_SECRET_KEY_SECRET_ARN }}
141
+ CLERK_JWT_KEY: ${{ secrets.CLERK_JWT_KEY }}
142
+ NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${{ vars.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY }}
143
+ CANOPY_BOOTSTRAP_ADMIN_IDS: ${{ vars.CANOPY_BOOTSTRAP_ADMIN_IDS }}
144
+ CANOPYCMS_DEPLOYMENT_NAME: ${{ vars.CANOPYCMS_DEPLOYMENT_NAME }}
145
+ CMS_DOMAIN_NAME: ${{ vars.CMS_DOMAIN_NAME }}
146
+ CMS_HOSTED_ZONE_DOMAIN: ${{ vars.CMS_HOSTED_ZONE_DOMAIN }}
147
+ run: npx cdk deploy {{STACK_NAME}} --require-approval never
@@ -10,4 +10,5 @@ cdk.out
10
10
  .env*
11
11
 
12
12
  # Do NOT ignore vendor/ -- file: dependencies (vendored tarballs) must reach
13
- # the Docker build context, or `npm ci` will fail to resolve them.
13
+ # the Docker build context, or the install step in Dockerfile.cms will fail to
14
+ # resolve them.
@@ -28,7 +28,31 @@ export declare function middleware(options: {
28
28
  export declare function nextConfig(options: {
29
29
  staticBuild: boolean;
30
30
  }): Promise<string>;
31
- export declare function dockerfileCms(): Promise<string>;
31
+ /**
32
+ * CloudFormation stack id used by the scaffolded CDK app.
33
+ *
34
+ * Shared rather than written twice: `infrastructure/bin/app.ts` names the
35
+ * stack, and the deploy workflow deploys it BY NAME (not `--all`, which would
36
+ * also deploy any unrelated stacks an adopter keeps in the same repo). Those
37
+ * two must agree, so they read the same constant.
38
+ */
39
+ export declare const SCAFFOLD_STACK_NAME = "CanopyCms";
40
+ export declare function dockerfileCms(options: {
41
+ copy: string;
42
+ install: string;
43
+ build: string;
44
+ }): Promise<string>;
32
45
  export declare function dockerignore(): Promise<string>;
33
- export declare function githubWorkflowCms(): Promise<string>;
46
+ export declare function githubWorkflowCms(options: {
47
+ defaultBranch: string;
48
+ lockfile: string;
49
+ ciInstall: string;
50
+ addDev: string;
51
+ }): Promise<string>;
52
+ export declare function cdkJson(): Promise<string>;
53
+ export declare function cdkApp(options: {
54
+ githubOwner: string;
55
+ githubRepo: string;
56
+ }): Promise<string>;
57
+ export declare function cmsStack(): Promise<string>;
34
58
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAgClB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEvD;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjF;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlB;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAKnF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAEpD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEzD"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAgClB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEvD;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjF;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlB;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAKnF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,cAAc,CAAA;AAE9C,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAEpD;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlB;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAE/C;AAED,wBAAsB,MAAM,CAAC,OAAO,EAAE;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlB;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD"}
@@ -80,13 +80,45 @@ export async function nextConfig(options) {
80
80
  : 'next.config.ts.template';
81
81
  return readTemplate(templateName);
82
82
  }
83
- export async function dockerfileCms() {
84
- return readTemplate('Dockerfile.cms.template');
83
+ /**
84
+ * CloudFormation stack id used by the scaffolded CDK app.
85
+ *
86
+ * Shared rather than written twice: `infrastructure/bin/app.ts` names the
87
+ * stack, and the deploy workflow deploys it BY NAME (not `--all`, which would
88
+ * also deploy any unrelated stacks an adopter keeps in the same repo). Those
89
+ * two must agree, so they read the same constant.
90
+ */
91
+ export const SCAFFOLD_STACK_NAME = 'CanopyCms';
92
+ export async function dockerfileCms(options) {
93
+ const template = await readTemplate('Dockerfile.cms.template');
94
+ return template
95
+ .replace('{{DOCKER_COPY}}', options.copy)
96
+ .replace('{{DOCKER_INSTALL}}', options.install)
97
+ .replace('{{DOCKER_BUILD}}', options.build);
85
98
  }
86
99
  export async function dockerignore() {
87
100
  return readTemplate('dockerignore.template');
88
101
  }
89
- export async function githubWorkflowCms() {
90
- return readTemplate('deploy-cms.yml.template');
102
+ export async function githubWorkflowCms(options) {
103
+ const template = await readTemplate('deploy-cms.yml.template');
104
+ return template
105
+ .replace('{{DEFAULT_BRANCH}}', options.defaultBranch)
106
+ .replace('{{LOCKFILE}}', options.lockfile)
107
+ .replace('{{CI_INSTALL}}', options.ciInstall)
108
+ .replaceAll('{{ADD_DEV}}', options.addDev)
109
+ .replace('{{STACK_NAME}}', SCAFFOLD_STACK_NAME);
110
+ }
111
+ export async function cdkJson() {
112
+ return readTemplate('cdk.json.template');
113
+ }
114
+ export async function cdkApp(options) {
115
+ const template = await readTemplate('cdk-app.ts.template');
116
+ return template
117
+ .replace('{{STACK_NAME}}', SCAFFOLD_STACK_NAME)
118
+ .replace('{{GITHUB_OWNER}}', options.githubOwner)
119
+ .replace('{{GITHUB_REPO}}', options.githubRepo);
120
+ }
121
+ export async function cmsStack() {
122
+ return readTemplate('cms-stack.ts.template');
91
123
  }
92
124
  //# sourceMappingURL=templates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export type { CanopyClientConfig } from './config';
2
+ export type { CustomFieldRenderers, CustomFieldRenderProps } from './editor/FormRenderer';
2
3
  export * from './editor/EditorPanes';
3
4
  export * from './editor/EntryNavigator';
4
5
  export * from './editor/Editor';
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClD,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAClF,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClD,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACzF,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAClF,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAGZ,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA"}
@@ -197,6 +197,7 @@ export declare const CanopyConfigSchema: z.ZodObject<{
197
197
  dev?: {
198
198
  contentSync?: "off" | "warn" | undefined;
199
199
  } | undefined;
200
+ settingsBranch?: string | undefined;
200
201
  media?: {
201
202
  adapter: "local";
202
203
  publicBaseUrl?: string | undefined;
@@ -217,7 +218,6 @@ export declare const CanopyConfigSchema: z.ZodObject<{
217
218
  defaultRemoteUrl?: string | undefined;
218
219
  githubTokenEnvVar?: string | undefined;
219
220
  allowNetworkRemoteInProd?: boolean | undefined;
220
- settingsBranch?: string | undefined;
221
221
  autoCreateSettingsPR?: boolean | undefined;
222
222
  deploymentName?: string | undefined;
223
223
  sourceRoot?: string | undefined;
@@ -240,6 +240,7 @@ export declare const CanopyConfigSchema: z.ZodObject<{
240
240
  dev?: {
241
241
  contentSync?: "off" | "warn" | undefined;
242
242
  } | undefined;
243
+ settingsBranch?: string | undefined;
243
244
  media?: {
244
245
  adapter: "local";
245
246
  publicBaseUrl?: string | undefined;
@@ -267,7 +268,6 @@ export declare const CanopyConfigSchema: z.ZodObject<{
267
268
  githubTokenEnvVar?: string | undefined;
268
269
  deployedAs?: "static" | "server" | undefined;
269
270
  allowNetworkRemoteInProd?: boolean | undefined;
270
- settingsBranch?: string | undefined;
271
271
  autoCreateSettingsPR?: boolean | undefined;
272
272
  deploymentName?: string | undefined;
273
273
  contentRoot?: string | undefined;
@@ -311,7 +311,6 @@ export declare const getConfigDefaults: () => {
311
311
  branchAccess: "allow" | "deny";
312
312
  contentRoot: string;
313
313
  githubTokenEnvVar: string;
314
- deploymentName: string;
315
314
  prodWorkspace: string;
316
315
  };
317
316
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKjD,eAAO,MAAM,yBAAyB,4CAA4C,CAAA;AAClF,eAAO,MAAM,4BAA4B,8BAA4B,CAAA;AAIrE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAM/B,CAAA;AACX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;KAElB,CAAA;AAClB,eAAO,MAAM,uBAAuB,2BAA6B,CAAA;AACjE,eAAO,MAAM,uBAAuB,2BAA+B,CAAA;AACnE,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,uBAAuB,aAAqB,CAAA;AACzD,eAAO,MAAM,uBAAuB,2BAAyC,CAAA;AAC7E,eAAO,MAAM,mBAAmB,4BAA0B,CAAA;AAC1D,eAAO,MAAM,gBAAgB,+CAAiD,CAAA;AAC9E,eAAO,MAAM,iBAAiB,qHAAwC,CAAA;AACtE,eAAO,MAAM,gBAAgB,4BAA+B,CAAA;AAC5D,eAAO,MAAM,oBAAoB,2BAA6B,CAAA;AAC9D,eAAO,MAAM,oBAAoB,0CAA0C,CAAA;AAG3E,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CpB,CAAA;AAEX;;;GAGG;AACH;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAA;AAI1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAS5B,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKjD,eAAO,MAAM,yBAAyB,4CAA4C,CAAA;AAClF,eAAO,MAAM,4BAA4B,8BAA4B,CAAA;AAIrE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAM/B,CAAA;AACX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;KAElB,CAAA;AAClB,eAAO,MAAM,uBAAuB,2BAA6B,CAAA;AACjE,eAAO,MAAM,uBAAuB,2BAA+B,CAAA;AACnE,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,uBAAuB,aAAqB,CAAA;AACzD,eAAO,MAAM,uBAAuB,2BAAyC,CAAA;AAC7E,eAAO,MAAM,mBAAmB,4BAA0B,CAAA;AAC1D,eAAO,MAAM,gBAAgB,+CAAiD,CAAA;AAC9E,eAAO,MAAM,iBAAiB,qHAAwC,CAAA;AACtE,eAAO,MAAM,gBAAgB,4BAA+B,CAAA;AAC5D,eAAO,MAAM,oBAAoB,2BAA6B,CAAA;AAC9D,eAAO,MAAM,oBAAoB,0CAA0C,CAAA;AAG3E,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDpB,CAAA;AAEX;;;GAGG;AACH;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAA;AAe1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAQ5B,CAAA"}
@@ -82,6 +82,16 @@ export const CanopyConfigSchema = z
82
82
  allowNetworkRemoteInProd: z.boolean().optional(),
83
83
  settingsBranch: z.string().optional(),
84
84
  autoCreateSettingsPR: z.boolean().optional(),
85
+ // Deliberately `deploymentNameSchema.optional()`, NOT `deploymentNameSchema` alone.
86
+ // deploymentNameSchema.default('prod') would make `parse(undefined)` resolve to
87
+ // the literal 'prod' instead of staying `undefined` — collapsing the
88
+ // env > config > modeDefault precedence chain that resolveDeploymentName
89
+ // (operating-mode/deployment-name.ts) implements: config would then always
90
+ // "win" over modeDefault (masking dev's real default of 'local'), and the env
91
+ // var would just be racing config's baked-in 'prod' instead of a true absence.
92
+ // `.optional()` here is what keeps an omitted deploymentName reaching
93
+ // resolveDeploymentName as `undefined`, so it can fall through to modeDefault.
94
+ // Do not "fix" this by removing `.optional()`.
85
95
  deploymentName: deploymentNameSchema.optional(),
86
96
  contentRoot: contentRootSchema.default('content'),
87
97
  sourceRoot: sourceRootSchema.optional(),
@@ -109,6 +119,17 @@ export const CanopyConfigSchema = z
109
119
  export const DEFAULT_PROD_WORKSPACE = '/mnt/efs/workspace';
110
120
  // Note: `mode` has no default by design (SEC-C1) and is intentionally omitted here —
111
121
  // operatingModeSchema.parse(undefined) would throw.
122
+ //
123
+ // `deploymentName` is ALSO deliberately omitted here (checked every caller,
124
+ // 2026-07-30: only packages/canopycms/src/services.ts reads from this return
125
+ // value, and only `.remoteName`; nothing ever read `.deploymentName`). Unlike
126
+ // the defaults below, deploymentName's real default is mode-dependent — 'prod'
127
+ // for ProdStrategy, 'local' for DevStrategy (see
128
+ // operating-mode/client-unsafe-strategy.ts's getSettingsBranchName, which
129
+ // resolves it via resolveDeploymentName) — and this accessor has no mode to
130
+ // select between them. Emitting `deploymentNameSchema.parse(undefined)`
131
+ // ('prod') here would silently lie for dev mode; better to have no caller of
132
+ // this than a mode-blind one.
112
133
  export const getConfigDefaults = () => ({
113
134
  baseBranch: defaultBaseBranchSchema.parse(undefined),
114
135
  remoteName: defaultRemoteNameSchema.parse(undefined),
@@ -116,7 +137,6 @@ export const getConfigDefaults = () => ({
116
137
  branchAccess: defaultBranchAccessSchema.parse(undefined),
117
138
  contentRoot: contentRootSchema.parse(undefined),
118
139
  githubTokenEnvVar: githubTokenEnvVarSchema.parse(undefined),
119
- deploymentName: deploymentNameSchema.parse(undefined),
120
140
  prodWorkspace: DEFAULT_PROD_WORKSPACE,
121
141
  });
122
142
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,wBAAwB;AACxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAClF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AACrE,oFAAoF;AACpF,uFAAuF;AACvF,kEAAkE;AAClE,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,IAAI,EAAE,4BAA4B,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,4BAA4B,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,4BAA4B,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,MAAM,EAAE,CAAA;AACX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,KAAK,CAAC,CAAC,4BAA4B,EAAE,6BAA6B,CAAC,CAAC;KACpE,OAAO,CAAC,MAAM,CAAC,CAAA;AAClB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAE3E,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAA;AAEF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,uDAAuD;IACvD,cAAc,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,aAAa,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,gEAAgE;IAChE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAuB,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAA;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;IAC7B,uFAAuF;IACvF,kFAAkF;IAClF,uFAAuF;IACvF,6EAA6E;IAC7E,wFAAwF;IACxF,uFAAuF;IACvF,uFAAuF;IACvF,iEAAiE;IACjE,mBAAmB,EAAE,yBAAyB;IAC9C,iBAAiB,EAAE,uBAAuB;IAC1C,+EAA+E;IAC/E,0EAA0E;IAC1E,+DAA+D;IAC/D,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACrD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACrD,gBAAgB,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACnD,gBAAgB,EAAE,sBAAsB;IACxC,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACrD,sFAAsF;IACtF,qFAAqF;IACrF,IAAI,EAAE,mBAAmB;IACzB,UAAU,EAAE,gBAAgB,EAAE,6DAA6D;IAC3F,oFAAoF;IACpF,wFAAwF;IACxF,uFAAuF;IACvF,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5C,oFAAoF;IACpF,gFAAgF;IAChF,qEAAqE;IACrE,yEAAyE;IACzE,2EAA2E;IAC3E,8EAA8E;IAC9E,+EAA+E;IAC/E,sEAAsE;IACtE,+EAA+E;IAC/E,+CAA+C;IAC/C,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC;IACjD,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAc,CAAC,QAAQ,EAAE;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAwB,CAAC,QAAQ,EAAE;IACzD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAqB,CAAC,QAAQ,EAAE;IACvD,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,MAAM,EAAE,CAAA;AAEX;;;GAGG;AACH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAA;AAE1D,qFAAqF;AACrF,oDAAoD;AACpD,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,iDAAiD;AACjD,0EAA0E;AAC1E,4EAA4E;AAC5E,wEAAwE;AACxE,6EAA6E;AAC7E,8BAA8B;AAC9B,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC;IACtC,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC;IACpD,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC;IACpD,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC;IACpD,YAAY,EAAE,yBAAyB,CAAC,KAAK,CAAC,SAAS,CAAC;IACxD,WAAW,EAAE,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/C,iBAAiB,EAAE,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC;IAC3D,aAAa,EAAE,sBAAsB;CACtC,CAAC,CAAA"}