canopycms 0.0.54 → 0.0.55

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 (205) hide show
  1. package/dist/api/assets.d.ts +14 -2
  2. package/dist/api/assets.d.ts.map +1 -1
  3. package/dist/api/assets.js +14 -3
  4. package/dist/api/assets.js.map +1 -1
  5. package/dist/api/branch-status.d.ts.map +1 -1
  6. package/dist/api/branch-status.js +8 -2
  7. package/dist/api/branch-status.js.map +1 -1
  8. package/dist/api/client.d.ts +2 -2
  9. package/dist/api/client.d.ts.map +1 -1
  10. package/dist/api/client.js +29 -14
  11. package/dist/api/client.js.map +1 -1
  12. package/dist/api/content.d.ts +2 -2
  13. package/dist/api/content.d.ts.map +1 -1
  14. package/dist/api/content.js +160 -26
  15. package/dist/api/content.js.map +1 -1
  16. package/dist/api/entries.d.ts.map +1 -1
  17. package/dist/api/entries.js +8 -4
  18. package/dist/api/entries.js.map +1 -1
  19. package/dist/api/github-sync.d.ts.map +1 -1
  20. package/dist/api/github-sync.js +21 -4
  21. package/dist/api/github-sync.js.map +1 -1
  22. package/dist/api/groups.d.ts.map +1 -1
  23. package/dist/api/groups.js +15 -5
  24. package/dist/api/groups.js.map +1 -1
  25. package/dist/api/permissions.d.ts +6 -6
  26. package/dist/api/permissions.d.ts.map +1 -1
  27. package/dist/api/permissions.js +24 -9
  28. package/dist/api/permissions.js.map +1 -1
  29. package/dist/api/request-body-hash.d.ts +33 -0
  30. package/dist/api/request-body-hash.d.ts.map +1 -0
  31. package/dist/api/request-body-hash.js +43 -0
  32. package/dist/api/request-body-hash.js.map +1 -0
  33. package/dist/api/resolve-references.d.ts.map +1 -1
  34. package/dist/api/resolve-references.js +8 -1
  35. package/dist/api/resolve-references.js.map +1 -1
  36. package/dist/api/schema.js +9 -9
  37. package/dist/api/schema.js.map +1 -1
  38. package/dist/api/settings-helpers.d.ts +14 -1
  39. package/dist/api/settings-helpers.d.ts.map +1 -1
  40. package/dist/api/settings-helpers.js +11 -2
  41. package/dist/api/settings-helpers.js.map +1 -1
  42. package/dist/api/types.d.ts +10 -0
  43. package/dist/api/types.d.ts.map +1 -1
  44. package/dist/auth/index.d.ts +1 -0
  45. package/dist/auth/index.d.ts.map +1 -1
  46. package/dist/auth/index.js +1 -0
  47. package/dist/auth/index.js.map +1 -1
  48. package/dist/auth/plugin.d.ts +26 -0
  49. package/dist/auth/plugin.d.ts.map +1 -1
  50. package/dist/auth/plugin.js +25 -1
  51. package/dist/auth/plugin.js.map +1 -1
  52. package/dist/authorization/helpers.d.ts +16 -0
  53. package/dist/authorization/helpers.d.ts.map +1 -1
  54. package/dist/authorization/helpers.js +18 -0
  55. package/dist/authorization/helpers.js.map +1 -1
  56. package/dist/authorization/index.d.ts +1 -1
  57. package/dist/authorization/index.d.ts.map +1 -1
  58. package/dist/authorization/index.js +1 -1
  59. package/dist/authorization/index.js.map +1 -1
  60. package/dist/cli/cli.d.ts.map +1 -1
  61. package/dist/cli/cli.js +2 -1
  62. package/dist/cli/cli.js.map +1 -1
  63. package/dist/cli/generate-ai-content.js +744 -349
  64. package/dist/cli/init.d.ts +1 -1
  65. package/dist/cli/init.d.ts.map +1 -1
  66. package/dist/cli/init.js +28 -9
  67. package/dist/cli/init.js.map +1 -1
  68. package/dist/cli/sync.d.ts.map +1 -1
  69. package/dist/cli/sync.js +88 -60
  70. package/dist/cli/sync.js.map +1 -1
  71. package/dist/cli/template-files/canopy.ts.template +2 -1
  72. package/dist/cli/template-files/edit-page.tsx.template +8 -1
  73. package/dist/cli/template-files/middleware.ts.template +18 -0
  74. package/dist/cli/templates.d.ts.map +1 -1
  75. package/dist/cli/templates.js +16 -4
  76. package/dist/cli/templates.js.map +1 -1
  77. package/dist/config/helpers.d.ts +9 -1
  78. package/dist/config/helpers.d.ts.map +1 -1
  79. package/dist/config/helpers.js +30 -75
  80. package/dist/config/helpers.js.map +1 -1
  81. package/dist/config/schemas/config.d.ts +5 -20
  82. package/dist/config/schemas/config.d.ts.map +1 -1
  83. package/dist/config/schemas/config.js +6 -2
  84. package/dist/config/schemas/config.js.map +1 -1
  85. package/dist/config/schemas/media.d.ts +1 -10
  86. package/dist/config/schemas/media.d.ts.map +1 -1
  87. package/dist/config/schemas/media.js +8 -6
  88. package/dist/config/schemas/media.js.map +1 -1
  89. package/dist/config/types.d.ts +0 -3
  90. package/dist/config/types.d.ts.map +1 -1
  91. package/dist/content-id-index.d.ts +12 -6
  92. package/dist/content-id-index.d.ts.map +1 -1
  93. package/dist/content-id-index.js +12 -6
  94. package/dist/content-id-index.js.map +1 -1
  95. package/dist/content-index-generation.d.ts +30 -0
  96. package/dist/content-index-generation.d.ts.map +1 -0
  97. package/dist/content-index-generation.js +131 -0
  98. package/dist/content-index-generation.js.map +1 -0
  99. package/dist/content-index-registry.d.ts +38 -0
  100. package/dist/content-index-registry.d.ts.map +1 -0
  101. package/dist/content-index-registry.js +53 -0
  102. package/dist/content-index-registry.js.map +1 -0
  103. package/dist/content-store.d.ts +130 -6
  104. package/dist/content-store.d.ts.map +1 -1
  105. package/dist/content-store.js +333 -31
  106. package/dist/content-store.js.map +1 -1
  107. package/dist/editor/Editor.d.ts.map +1 -1
  108. package/dist/editor/Editor.js +8 -4
  109. package/dist/editor/Editor.js.map +1 -1
  110. package/dist/editor/FormRenderer.d.ts +7 -0
  111. package/dist/editor/FormRenderer.d.ts.map +1 -1
  112. package/dist/editor/FormRenderer.js +12 -3
  113. package/dist/editor/FormRenderer.js.map +1 -1
  114. package/dist/editor/components/EditorHeader.d.ts.map +1 -1
  115. package/dist/editor/components/EditorHeader.js +3 -4
  116. package/dist/editor/components/EditorHeader.js.map +1 -1
  117. package/dist/editor/components/EditorSidebar.d.ts.map +1 -1
  118. package/dist/editor/components/EditorSidebar.js +2 -4
  119. package/dist/editor/components/EditorSidebar.js.map +1 -1
  120. package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
  121. package/dist/editor/fields/ReferenceField.js +19 -2
  122. package/dist/editor/fields/ReferenceField.js.map +1 -1
  123. package/dist/editor/group-manager/hooks/useGroupState.d.ts.map +1 -1
  124. package/dist/editor/group-manager/hooks/useGroupState.js +5 -2
  125. package/dist/editor/group-manager/hooks/useGroupState.js.map +1 -1
  126. package/dist/editor/hooks/useDraftManager.d.ts +8 -0
  127. package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
  128. package/dist/editor/hooks/useDraftManager.js +102 -1
  129. package/dist/editor/hooks/useDraftManager.js.map +1 -1
  130. package/dist/editor/hooks/useEntryManager.d.ts +9 -2
  131. package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
  132. package/dist/editor/hooks/useEntryManager.js +9 -3
  133. package/dist/editor/hooks/useEntryManager.js.map +1 -1
  134. package/dist/editor/hooks/useSchemaManager.d.ts.map +1 -1
  135. package/dist/editor/hooks/useSchemaManager.js +2 -1
  136. package/dist/editor/hooks/useSchemaManager.js.map +1 -1
  137. package/dist/editor/schema-editor/CollectionEditor.d.ts +4 -4
  138. package/dist/editor/schema-editor/CollectionEditor.d.ts.map +1 -1
  139. package/dist/editor/schema-editor/CollectionEditor.js +32 -12
  140. package/dist/editor/schema-editor/CollectionEditor.js.map +1 -1
  141. package/dist/entry-link-resolver.d.ts.map +1 -1
  142. package/dist/entry-link-resolver.js +5 -0
  143. package/dist/entry-link-resolver.js.map +1 -1
  144. package/dist/git-manager.d.ts +38 -3
  145. package/dist/git-manager.d.ts.map +1 -1
  146. package/dist/git-manager.js +141 -33
  147. package/dist/git-manager.js.map +1 -1
  148. package/dist/github-service.d.ts +13 -3
  149. package/dist/github-service.d.ts.map +1 -1
  150. package/dist/github-service.js +23 -7
  151. package/dist/github-service.js.map +1 -1
  152. package/dist/http/handler.d.ts +1 -1
  153. package/dist/http/handler.d.ts.map +1 -1
  154. package/dist/http/handler.js +36 -7
  155. package/dist/http/handler.js.map +1 -1
  156. package/dist/http/router.d.ts +11 -0
  157. package/dist/http/router.d.ts.map +1 -1
  158. package/dist/http/router.js +80 -16
  159. package/dist/http/router.js.map +1 -1
  160. package/dist/paths/validation.d.ts.map +1 -1
  161. package/dist/paths/validation.js +12 -0
  162. package/dist/paths/validation.js.map +1 -1
  163. package/dist/schema/schema-store.d.ts +9 -0
  164. package/dist/schema/schema-store.d.ts.map +1 -1
  165. package/dist/schema/schema-store.js +57 -8
  166. package/dist/schema/schema-store.js.map +1 -1
  167. package/dist/services.d.ts +1 -0
  168. package/dist/services.d.ts.map +1 -1
  169. package/dist/services.js +5 -2
  170. package/dist/services.js.map +1 -1
  171. package/dist/sync-core.d.ts.map +1 -1
  172. package/dist/sync-core.js +22 -9
  173. package/dist/sync-core.js.map +1 -1
  174. package/dist/user.d.ts +0 -18
  175. package/dist/user.d.ts.map +1 -1
  176. package/dist/user.js +7 -22
  177. package/dist/user.js.map +1 -1
  178. package/dist/utils/error.d.ts +8 -0
  179. package/dist/utils/error.d.ts.map +1 -1
  180. package/dist/utils/error.js +35 -7
  181. package/dist/utils/error.js.map +1 -1
  182. package/dist/validation/deletion-checker.d.ts.map +1 -1
  183. package/dist/validation/deletion-checker.js +6 -5
  184. package/dist/validation/deletion-checker.js.map +1 -1
  185. package/dist/validation/entry-validator.d.ts +67 -0
  186. package/dist/validation/entry-validator.d.ts.map +1 -0
  187. package/dist/validation/entry-validator.js +277 -0
  188. package/dist/validation/entry-validator.js.map +1 -0
  189. package/dist/validation/field-traversal.d.ts +23 -1
  190. package/dist/validation/field-traversal.d.ts.map +1 -1
  191. package/dist/validation/field-traversal.js +29 -9
  192. package/dist/validation/field-traversal.js.map +1 -1
  193. package/dist/worker/cms-worker.d.ts +67 -6
  194. package/dist/worker/cms-worker.d.ts.map +1 -1
  195. package/dist/worker/cms-worker.js +190 -67
  196. package/dist/worker/cms-worker.js.map +1 -1
  197. package/package.json +1 -2
  198. package/dist/editor/components/EditorContext.d.ts +0 -35
  199. package/dist/editor/components/EditorContext.d.ts.map +0 -1
  200. package/dist/editor/components/EditorContext.js +0 -19
  201. package/dist/editor/components/EditorContext.js.map +0 -1
  202. package/dist/editor/env.d.ts +0 -5
  203. package/dist/editor/env.d.ts.map +0 -1
  204. package/dist/editor/env.js +0 -5
  205. package/dist/editor/env.js.map +0 -1
@@ -33,7 +33,13 @@ export interface DeleteAssetBody {
33
33
  * Exported routes for router registration
34
34
  */
35
35
  export declare const ASSET_ROUTES: {
36
- readonly list: import("./route-builder").RouteDefinition<undefined, undefined, AssetsListResponse>;
36
+ readonly list: import("./route-builder").RouteDefinition<z.ZodObject<{
37
+ prefix: z.ZodOptional<z.ZodString>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ prefix?: string | undefined;
40
+ }, {
41
+ prefix?: string | undefined;
42
+ }>, undefined, AssetsListResponse>;
37
43
  readonly upload: import("./route-builder").RouteDefinition<undefined, z.ZodObject<{
38
44
  key: z.ZodString;
39
45
  contentType: z.ZodOptional<z.ZodString>;
@@ -47,6 +53,12 @@ export declare const ASSET_ROUTES: {
47
53
  data: Buffer<ArrayBufferLike> | Uint8Array<ArrayBuffer>;
48
54
  contentType?: string | undefined;
49
55
  }>, AssetUploadResponse>;
50
- readonly delete: import("./route-builder").RouteDefinition<undefined, undefined, AssetDeleteResponse>;
56
+ readonly delete: import("./route-builder").RouteDefinition<z.ZodObject<{
57
+ key: z.ZodString;
58
+ }, "strip", z.ZodTypeAny, {
59
+ key: string;
60
+ }, {
61
+ key: string;
62
+ }>, undefined, AssetDeleteResponse>;
51
63
  };
52
64
  //# sourceMappingURL=assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/api/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAA0B,WAAW,EAAE,MAAM,SAAS,CAAA;AAGlE,uCAAuC;AACvC,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;IAC3C,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACxC,CAAC,CAAA;AAEF,2CAA2C;AAC3C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrC,CAAC,CAAA;AAEF,0CAA0C;AAC1C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAYnE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ;AA0GD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;CAIf,CAAA"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/api/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAA0B,WAAW,EAAE,MAAM,SAAS,CAAA;AAGlE,uCAAuC;AACvC,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;IAC3C,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACxC,CAAC,CAAA;AAEF,2CAA2C;AAC3C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrC,CAAC,CAAA;AAEF,0CAA0C;AAC1C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAYnE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ;AAsHD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIf,CAAA"}
@@ -10,14 +10,19 @@ const uploadAssetBodySchema = z.object({
10
10
  });
11
11
  /**
12
12
  * List assets - any authenticated user can list assets.
13
+ *
14
+ * Declared as `params` (not just parsed ad hoc from req.query) so the client
15
+ * generator (scripts/generate-client.ts) sees a paramsSchema and emits a
16
+ * method that accepts and forwards `prefix` (API-H4) instead of a no-arg
17
+ * `assets.list()` that can never pass it.
13
18
  */
14
- const listAssetsQuerySchema = z.object({
19
+ const listAssetsParamsSchema = z.object({
15
20
  prefix: z.string().optional(),
16
21
  });
17
22
  const listAssetsHandler = async (ctx, req) => {
18
23
  if (!ctx.assetStore)
19
24
  return { ok: false, status: 501, error: 'Asset store not configured' };
20
- const query = listAssetsQuerySchema.safeParse(req.query ?? {});
25
+ const query = listAssetsParamsSchema.safeParse(req.query ?? {});
21
26
  if (!query.success) {
22
27
  return { ok: false, status: 400, error: query.error.message };
23
28
  }
@@ -35,11 +40,15 @@ const uploadAssetHandler = async (_gc, ctx, req, body) => {
35
40
  };
36
41
  /**
37
42
  * Delete asset - requires Admin access.
43
+ *
44
+ * Declared as `params` (see listAssetsParamsSchema above) so the generated
45
+ * client's `assets.delete()` method accepts and forwards `key` (API-H4).
38
46
  */
47
+ const deleteAssetParamsSchema = z.object({ key: z.string().min(1) });
39
48
  const deleteAssetHandler = async (_gc, ctx, req) => {
40
49
  if (!ctx.assetStore)
41
50
  return { ok: false, status: 501, error: 'Asset store not configured' };
42
- const deleteQuery = z.object({ key: z.string().min(1) }).safeParse(req.query ?? {});
51
+ const deleteQuery = deleteAssetParamsSchema.safeParse(req.query ?? {});
43
52
  if (!deleteQuery.success) {
44
53
  return { ok: false, status: 400, error: 'key query parameter required' };
45
54
  }
@@ -58,6 +67,7 @@ const listAssets = defineEndpoint({
58
67
  name: 'list',
59
68
  method: 'GET',
60
69
  path: '/assets',
70
+ params: listAssetsParamsSchema,
61
71
  responseType: 'AssetsListResponse',
62
72
  response: {},
63
73
  defaultMockData: { assets: [] },
@@ -89,6 +99,7 @@ const deleteAsset = defineEndpoint({
89
99
  name: 'delete',
90
100
  method: 'DELETE',
91
101
  path: '/assets',
102
+ params: deleteAssetParamsSchema,
92
103
  responseType: 'AssetDeleteResponse',
93
104
  response: {},
94
105
  defaultMockData: { deleted: true },
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/api/assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/api/assets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"branch-status.d.ts","sourceRoot":"","sources":["../../src/api/branch-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAU9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAwHzD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOlB,CAAA"}
1
+ {"version":3,"file":"branch-status.d.ts","sourceRoot":"","sources":["../../src/api/branch-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAW9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAgIzD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOlB,CAAA"}
@@ -6,6 +6,7 @@ import { markAsMerged } from './branch-merge.js';
6
6
  import { defineEndpoint } from './route-builder.js';
7
7
  import { canPerformWorkflowAction } from '../authorization/index.js';
8
8
  import { syncSubmitPr } from './github-sync.js';
9
+ import { getErrorMessage, redactCredentials, sanitizeErrorMessage } from '../utils/error.js';
9
10
  const getBranchStatusHandler = async (gc, _ctx, _req, _params) => {
10
11
  const { branchContext } = gc;
11
12
  return { ok: true, status: 200, data: { branch: branchContext.branch } };
@@ -27,11 +28,16 @@ const submitBranchForMergeHandler = async (gc, ctx, req, _params) => {
27
28
  await ctx.services.submitBranch({ context: branchContext });
28
29
  }
29
30
  catch (err) {
30
- const message = err instanceof Error ? err.message : 'Failed to push branch changes';
31
+ const message = getErrorMessage(err);
32
+ // Full path detail (including branchRoot, an absolute path) to server logs
33
+ // only; the client only ever sees the sanitized form (API-H2). Credentials
34
+ // (e.g. x-access-token:TOKEN@github.com in git errors) are redacted even
35
+ // from server logs — a live installation token must never persist in logs.
36
+ console.error(`CanopyCMS: Failed to push branch changes (${branchContext.branchRoot}):`, redactCredentials(message));
31
37
  return {
32
38
  ok: false,
33
39
  status: 500,
34
- error: `Failed to push branch changes (${branchContext.branchRoot}): ${message}`,
40
+ error: `Failed to push branch changes: ${sanitizeErrorMessage(message)}`,
35
41
  };
36
42
  }
37
43
  // Create or update PR (sync via githubService, or async via task queue)
@@ -1 +1 @@
1
- {"version":3,"file":"branch-status.js","sourceRoot":"","sources":["../../src/api/branch-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-status.js","sourceRoot":"","sources":["../../src/api/branch-status.ts"],"names":[],"mappings":"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"}
@@ -171,7 +171,7 @@ export declare class CanopyApiClient {
171
171
  /**
172
172
  * list - GET /assets
173
173
  */
174
- list: () => Promise<AssetsListResponse>;
174
+ list: (params: Record<string, string>) => Promise<AssetsListResponse>;
175
175
  /**
176
176
  * upload - POST /assets
177
177
  */
@@ -179,7 +179,7 @@ export declare class CanopyApiClient {
179
179
  /**
180
180
  * delete - DELETE /assets
181
181
  */
182
- delete: () => Promise<AssetDeleteResponse>;
182
+ delete: (params: Record<string, string>) => Promise<AssetDeleteResponse>;
183
183
  };
184
184
  /**
185
185
  * permissions - Auto-generated methods
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAClI,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACvL,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC7G,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACjJ,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AACtI,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AACjU,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAE9I;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAc;IAK7B;;OAEG;IACH,QAAQ,CAAC,QAAQ;QACf;;WAEG;oBACO,OAAO,CAAC,kBAAkB,CAAC;QAIrC;;WAEG;uBACY,gBAAgB,KAAG,OAAO,CAAC,cAAc,CAAC;QAIzD;;WAEG;yBACc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,oBAAoB,CAAC;QAIvE;;WAEG;+BACoB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,sBAAsB,KAAG,OAAO,CAAC,cAAc,CAAC;MAGtG;IAED;;OAEG;IACH,QAAQ,CAAC,QAAQ;QACf;;WAEG;2BACgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,cAAc,CAAC;QAInE;;WAEG;iCACsB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,cAAc,CAAC;QAIzE;;WAEG;0BACe,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,cAAc,CAAC;QAIlE;;WAEG;6BACkB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,mBAAmB,CAAC;QAI1E;;WAEG;4BACiB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,cAAc,CAAC;QAIpE;;WAEG;yBACc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,cAAc,CAAC;MAGlE;IAED;;OAEG;IACH,QAAQ,CAAC,QAAQ;QACf;;WAEG;uBACY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,gBAAgB,CAAC;QAIjE;;WAEG;sBACW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,cAAc,KAAG,OAAO,CAAC,kBAAkB,CAAC;QAIxF;;WAEG;0BACe,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,sBAAsB,CAAC;MAG3E;IAED;;OAEG;IACH,QAAQ,CAAC,OAAO;QACd;;WAEG;uBACY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,mBAAmB,CAAC;QAIpE;;WAEG;wBACa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,gBAAgB,KAAG,OAAO,CAAC,oBAAoB,CAAC;QAI9F;;WAEG;qCAC0B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,sBAAsB,KAAG,OAAO,CAAC,2BAA2B,CAAC;QAIxH;;WAEG;8BACmB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,eAAe,KAAG,OAAO,CAAC,mBAAmB,CAAC;QAIlG;;WAEG;sCAC2B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,wBAAwB,CAAC;QAIxF;;WAEG;oCACyB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,qBAAqB,KAAG,OAAO,CAAC,yBAAyB,CAAC;MAGrH;IAED;;OAEG;IACH,QAAQ,CAAC,OAAO;QACd;;WAEG;uBACY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,eAAe,CAAC;QAIhE;;WAEG;yBACc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,mBAAmB,CAAC;MAGvE;IAED;;OAEG;IACH,QAAQ,CAAC,MAAM;QACb;;WAEG;uBACY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,kBAAkB,CAAC;QAInE;;WAEG;uBACY,eAAe,KAAG,OAAO,CAAC,mBAAmB,CAAC;QAI7D;;WAEG;yBACc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,mBAAmB,CAAC;MAGvE;IAED;;OAEG;IACH,QAAQ,CAAC,WAAW;QAClB;;WAEG;mBACM,OAAO,CAAC,mBAAmB,CAAC;QAIrC;;WAEG;uBACY,qBAAqB,KAAG,OAAO,CAAC,mBAAmB,CAAC;QAInE;;WAEG;8BACmB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,mBAAmB,CAAC;QAI3E;;WAEG;0BACa,OAAO,CAAC,kBAAkB,CAAC;QAI3C;;WAEG;kCACuB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,uBAAuB,CAAC;MAGpF;IAED;;OAEG;IACH,QAAQ,CAAC,MAAM;QACb;;WAEG;2BACc,OAAO,CAAC,sBAAsB,CAAC;QAIhD;;WAEG;+BACoB,wBAAwB,KAAG,OAAO,CAAC,4BAA4B,CAAC;QAIvF;;WAEG;iCACsB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,sBAAsB,CAAC;MAGlF;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI;QACX;;WAEG;sBACS,OAAO,CAAC,gBAAgB,CAAC;MAGtC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAM;QACb;;WAEG;sBACW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,oBAAoB,CAAC;QAIpE;;WAEG;gCACqB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,wBAAwB,CAAC;QAIlF;;WAEG;mCACwB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,qBAAqB,KAAG,OAAO,CAAC,2BAA2B,CAAC;QAIrH;;WAEG;mCACwB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,qBAAqB,KAAG,OAAO,CAAC,2BAA2B,CAAC;QAIrH;;WAEG;mCACwB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,2BAA2B,CAAC;QAIxF;;WAEG;+BACoB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,oBAAoB,KAAG,OAAO,CAAC,uBAAuB,CAAC;QAI5G;;WAEG;kCACuB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,oBAAoB,KAAG,OAAO,CAAC,0BAA0B,CAAC;QAIlH;;WAEG;kCACuB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,0BAA0B,CAAC;QAItF;;WAEG;8BACmB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,eAAe,KAAG,OAAO,CAAC,sBAAsB,CAAC;QAIrG;;WAEG;wCAC6B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,gCAAgC,CAAC;MAGnG;gBAEW,OAAO,GAAE,gBAAqB;IAS1C,OAAO,CAAC,SAAS;YAmCH,OAAO;CAoDtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAE3E"}
@@ -4,6 +4,7 @@
4
4
  * AUTO-GENERATED by scripts/generate-client.ts
5
5
  * Do not edit this file manually - changes will be overwritten.
6
6
  */
7
+ import { computeContentSha256Hex } from './request-body-hash.js';
7
8
  /**
8
9
  * Lightweight typed API client for CanopyCMS.
9
10
  *
@@ -188,8 +189,8 @@ export class CanopyApiClient {
188
189
  /**
189
190
  * list - GET /assets
190
191
  */
191
- list: () => {
192
- return this.request('GET', '/assets');
192
+ list: (params) => {
193
+ return this.request('GET', this.buildPath('/assets', params));
193
194
  },
194
195
  /**
195
196
  * upload - POST /assets
@@ -200,8 +201,8 @@ export class CanopyApiClient {
200
201
  /**
201
202
  * delete - DELETE /assets
202
203
  */
203
- delete: () => {
204
- return this.request('DELETE', '/assets');
204
+ delete: (params) => {
205
+ return this.request('DELETE', this.buildPath('/assets', params));
205
206
  },
206
207
  };
207
208
  /**
@@ -381,22 +382,36 @@ export class CanopyApiClient {
381
382
  const requestHeaders = {
382
383
  ...headers,
383
384
  };
384
- if (body !== undefined && !(body instanceof FormData)) {
385
- requestHeaders['Content-Type'] = 'application/json';
386
- }
387
- const init = {
388
- method,
389
- headers: requestHeaders,
390
- };
385
+ let requestBody;
391
386
  if (body !== undefined) {
392
387
  if (body instanceof FormData) {
393
- // Don't set Content-Type for FormData - browser will set it with boundary
394
- init.body = body;
388
+ // Don't set Content-Type for FormData - browser will set it with boundary.
389
+ // NOTE: FormData bodies cannot carry an x-amz-content-sha256 hash (the
390
+ // multipart boundary is generated at send time), so requests with a
391
+ // FormData body will 403 behind the CloudFront OAC prod shape. See
392
+ // docs/deploying-to-aws.md.
393
+ requestBody = body;
395
394
  }
396
395
  else {
397
- init.body = JSON.stringify(body);
396
+ requestHeaders['Content-Type'] = 'application/json';
397
+ requestBody = JSON.stringify(body);
398
+ // CloudFront's Origin Access Control signs origin requests but never
399
+ // hashes the payload itself - the viewer request must already carry
400
+ // x-amz-content-sha256 or the OAC-protected Lambda Function URL
401
+ // rejects the request with 403. Harmless on non-AWS deployments.
402
+ const contentHash = await computeContentSha256Hex(requestBody);
403
+ if (contentHash) {
404
+ requestHeaders['x-amz-content-sha256'] = contentHash;
405
+ }
398
406
  }
399
407
  }
408
+ const init = {
409
+ method,
410
+ headers: requestHeaders,
411
+ };
412
+ if (requestBody !== undefined) {
413
+ init.body = requestBody;
414
+ }
400
415
  const response = await this.fetchFn(url, init);
401
416
  const payload = await response.json();
402
417
  // All responses use ApiResponse format: { ok, status, data?, error? }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -99,7 +99,7 @@ export declare const CONTENT_ROUTES: {
99
99
  entryType?: string | undefined;
100
100
  }>, z.ZodObject<{
101
101
  format: z.ZodEnum<["json", "md", "mdx", "yaml"]>;
102
- data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
102
+ data: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
103
103
  body: z.ZodOptional<z.ZodString>;
104
104
  expectedVersion: z.ZodOptional<z.ZodNumber>;
105
105
  }, "strip", z.ZodTypeAny, {
@@ -134,7 +134,7 @@ export declare const CONTENT_ROUTES: {
134
134
  };
135
135
  entryType?: string | undefined;
136
136
  }>, z.ZodObject<{
137
- data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
137
+ data: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
138
138
  }, "strip", z.ZodTypeAny, {
139
139
  data: Record<string, unknown>;
140
140
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/api/content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAA0B,WAAW,EAAE,MAAM,SAAS,CAAA;AAOlE,OAAO,KAAK,EAAgC,oBAAoB,EAAkB,MAAM,WAAW,CAAA;AAKnG,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,UAAU,CAAA;AAclD,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAC,CAAA;AAEF,iDAAiD;AACjD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,EAAE,EAAE,MAAM,CAAA;QACV,OAAO,EAAE,MAAM,CAAA;KAChB,CAAC,CAAA;IACF,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAA;CAC5C,CAAC,CAAA;AAEF,6CAA6C;AAC7C,MAAM,MAAM,2BAA2B,GAAG,WAAW,CAAC;IACpD,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;CACH,CAAC,CAAA;AAEF,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC,CAAA;AAEF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAA;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wHAAwH;IACxH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wEAAwE;AACxE,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAkbnE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjB,CAAA"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/api/content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAA0B,WAAW,EAAE,MAAM,SAAS,CAAA;AAQlE,OAAO,KAAK,EAAgC,oBAAoB,EAAkB,MAAM,WAAW,CAAA;AAWnG,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,UAAU,CAAA;AAclD,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAC,CAAA;AAEF,iDAAiD;AACjD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,EAAE,EAAE,MAAM,CAAA;QACV,OAAO,EAAE,MAAM,CAAA;KAChB,CAAC,CAAA;IACF,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAA;CAC5C,CAAC,CAAA;AAEF,6CAA6C;AAC7C,MAAM,MAAM,2BAA2B,GAAG,WAAW,CAAC;IACpD,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;CACH,CAAC,CAAA;AAEF,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC,CAAA;AAEF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAA;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wHAAwH;IACxH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wEAAwE;AACxE,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAwkBnE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjB,CAAA"}
@@ -1,10 +1,11 @@
1
1
  import { z } from 'zod';
2
- import { ContentStore, ContentStoreError, ContentConflictError, } from '../content-store.js';
2
+ import { ContentStore, ContentStoreError, ContentConflictError, getDefaultEntryType, } from '../content-store.js';
3
3
  import { defineEndpoint } from './route-builder.js';
4
4
  import { ReferenceValidator } from '../validation/reference-validator.js';
5
+ import { mergeBodyIntoData, normalizeReferenceValues, validateEntryData, } from '../validation/entry-validator.js';
5
6
  import { validateEntryLinks } from '../validation/entry-link-validator.js';
6
7
  import { branchNameSchema, logicalPathSchema, slugSchema } from './validators.js';
7
- import { getErrorMessage, isNotFoundError } from '../utils/error.js';
8
+ import { getErrorMessage, isNotFoundError, sanitizeErrorMessage } from '../utils/error.js';
8
9
  import { isDataOnlyFormat } from '../utils/format.js';
9
10
  /**
10
11
  * Parse an API path into logical path segments, prepending the content root if needed.
@@ -26,10 +27,26 @@ const writeContentParamsSchema = z.object({
26
27
  path: logicalPathSchema,
27
28
  entryType: z.string().optional(), // Optional entry type name for collections with multiple entry types
28
29
  });
30
+ /**
31
+ * Bounds on write/validate payload size (API-M1): content body text and
32
+ * structured field data are otherwise unbounded, letting any authenticated
33
+ * caller force arbitrarily large writes/validation work. These caps are
34
+ * generous for real content (a long MDX article, a large field-data object)
35
+ * while keeping worst-case request size bounded.
36
+ */
37
+ const MAX_CONTENT_BODY_CHARS = 2_000_000; // ~2MB of markdown/mdx body text
38
+ const MAX_CONTENT_DATA_BYTES = 2_000_000; // ~2MB of structured field data (serialized)
39
+ const boundedContentDataSchema = z
40
+ .record(z.unknown())
41
+ // TextEncoder measures actual UTF-8 bytes; String#length counts UTF-16 code
42
+ // units and undercounts multi-byte content by up to 3x.
43
+ .refine((data) => new TextEncoder().encode(JSON.stringify(data)).length <= MAX_CONTENT_DATA_BYTES, {
44
+ message: `data payload exceeds maximum size of ${MAX_CONTENT_DATA_BYTES} bytes`,
45
+ });
29
46
  const writeContentBodySchema = z.object({
30
47
  format: z.enum(['json', 'md', 'mdx', 'yaml']),
31
- data: z.record(z.unknown()).optional(),
32
- body: z.string().optional(),
48
+ data: boundedContentDataSchema.optional(),
49
+ body: z.string().max(MAX_CONTENT_BODY_CHARS).optional(),
33
50
  expectedVersion: z.number().optional(),
34
51
  });
35
52
  const validateReferencesParamsSchema = z.object({
@@ -38,7 +55,7 @@ const validateReferencesParamsSchema = z.object({
38
55
  entryType: z.string().optional(),
39
56
  });
40
57
  const validateReferencesBodySchema = z.object({
41
- data: z.record(z.unknown()),
58
+ data: boundedContentDataSchema,
42
59
  });
43
60
  const renameEntryParamsSchema = z.object({
44
61
  branch: branchNameSchema,
@@ -67,7 +84,7 @@ const readContentHandler = async (gc, ctx, req, params) => {
67
84
  }
68
85
  catch (err) {
69
86
  const message = err instanceof ContentStoreError ? err.message : 'Invalid content request';
70
- return { ok: false, status: 400, error: message };
87
+ return { ok: false, status: 400, error: sanitizeErrorMessage(message) };
71
88
  }
72
89
  const access = await ctx.services.checkContentAccess(branchContext, branchContext.branchRoot, relativePath, req.user, 'read');
73
90
  if (!access.allowed) {
@@ -104,12 +121,133 @@ const writeContentHandler = async (gc, ctx, req, params, body) => {
104
121
  }
105
122
  catch (err) {
106
123
  const message = err instanceof ContentStoreError ? err.message : 'Invalid content request';
107
- return { ok: false, status: 400, error: message };
124
+ return { ok: false, status: 400, error: sanitizeErrorMessage(message) };
108
125
  }
109
126
  const access = await ctx.services.checkContentAccess(branchContext, branchContext.branchRoot, relativePath, req.user, 'edit');
110
127
  if (!access.allowed) {
111
128
  return { ok: false, status: 403, error: 'Forbidden' };
112
129
  }
130
+ // ------------------------------------------------------------------
131
+ // Authoritative schema validation at the write boundary (COMPOUND-2).
132
+ //
133
+ // The server rejects structurally invalid entry data even when the client
134
+ // is bypassed: required fields, type/format correctness, non-empty required
135
+ // references (pure rules shared with the editor via validation/entry-validator),
136
+ // plus reference EXISTENCE (server-only: reads the content ID index) and
137
+ // EntryTypeConfig.maxItems at the create boundary (SCH-H3).
138
+ //
139
+ // One narrow carve-out: the editor's create flow scaffolds a brand-new entry
140
+ // by writing entirely empty data (`{}` and an empty body) and only then lets
141
+ // the user fill the form — so a create scaffold (target file does not exist
142
+ // yet AND the payload is completely empty) skips field validation. Any write
143
+ // carrying actual data, and every write to an existing entry, is validated.
144
+ // ------------------------------------------------------------------
145
+ // Resolve the entry-type config the store will write with (mirrors ContentStore.write)
146
+ let entryTypeConfig;
147
+ let fields = [];
148
+ let maxItems;
149
+ let entryTypeName;
150
+ if (schemaItem.type === 'entry-type') {
151
+ fields = schemaItem.schema;
152
+ maxItems = schemaItem.maxItems;
153
+ entryTypeName = schemaItem.name;
154
+ }
155
+ else {
156
+ // An entryType param naming an unknown type is always a bad request,
157
+ // regardless of whether the target entry exists yet.
158
+ if (params.entryType) {
159
+ const requestedConfig = schemaItem.entries?.find((e) => e.name === params.entryType);
160
+ if (!requestedConfig) {
161
+ return {
162
+ ok: false,
163
+ status: 400,
164
+ error: `Entry type '${params.entryType}' not found`,
165
+ };
166
+ }
167
+ }
168
+ // For an existing entry, validate against its REAL on-disk type. Entry
169
+ // filenames embed the type (`{type}.{slug}.{id}.{ext}`) and
170
+ // ContentStore.write() preserves it regardless of what's requested (see
171
+ // buildPaths in content-store.ts) — so resolving from params.entryType
172
+ // or the default here instead would let a direct API write validate a
173
+ // payload against the WRONG entry type's schema (post-review M2). The
174
+ // editor always sends the entry's real entryType, so this only changes
175
+ // behavior for non-editor callers.
176
+ const existingEntryType = await store.getExistingEntryType(schemaItem.logicalPath, slug);
177
+ if (existingEntryType) {
178
+ if (params.entryType && params.entryType !== existingEntryType) {
179
+ return {
180
+ ok: false,
181
+ status: 409,
182
+ error: `Entry type conflict: entry already exists with type '${existingEntryType}', but request specified '${params.entryType}'`,
183
+ };
184
+ }
185
+ entryTypeConfig = schemaItem.entries?.find((e) => e.name === existingEntryType);
186
+ entryTypeName = existingEntryType;
187
+ }
188
+ else if (params.entryType) {
189
+ entryTypeConfig = schemaItem.entries?.find((e) => e.name === params.entryType);
190
+ entryTypeName = entryTypeConfig?.name;
191
+ }
192
+ else {
193
+ entryTypeConfig = getDefaultEntryType(schemaItem.entries);
194
+ entryTypeName = entryTypeConfig?.name;
195
+ }
196
+ fields = entryTypeConfig?.schema ?? [];
197
+ maxItems = entryTypeConfig?.maxItems;
198
+ }
199
+ const data = body.data ?? {};
200
+ const isDataOnly = isDataOnlyFormat(body.format);
201
+ try {
202
+ const exists = await store.documentExists(schemaItem.logicalPath, slug);
203
+ // SCH-H3: enforce maxItems server-side at the create boundary. The editor
204
+ // only gates its "Add" button; a direct API create could otherwise exceed
205
+ // the cap. Best-effort under concurrency: the count-then-create below is
206
+ // not atomic, so two simultaneous creates can still race past the cap —
207
+ // the guard's real target is the single-request direct-API bypass.
208
+ if (!exists && maxItems !== undefined && entryTypeName) {
209
+ const collectionPath = schemaItem.type === 'entry-type' ? schemaItem.parentPath : schemaItem.logicalPath;
210
+ const count = await store.countEntriesOfType(collectionPath, entryTypeName);
211
+ if (count >= maxItems) {
212
+ return {
213
+ ok: false,
214
+ status: 422,
215
+ error: `Cannot create entry: type "${entryTypeName}" allows at most ${maxItems} ${maxItems === 1 ? 'entry' : 'entries'}`,
216
+ };
217
+ }
218
+ }
219
+ const isCreateScaffold = !exists && Object.keys(data).length === 0 && (isDataOnly || !body.body?.trim());
220
+ if (!isCreateScaffold) {
221
+ // Pure rules (shared with the editor). For md/mdx the body is validated
222
+ // as the schema's isBody field.
223
+ const dataForValidation = isDataOnly ? data : mergeBodyIntoData(fields, data, body.body ?? '');
224
+ const fieldErrors = validateEntryData(fields, dataForValidation);
225
+ // Reference existence (server-only: reads the content ID index). Editor
226
+ // payloads may still carry resolved `{ id, ... }` objects from a prior
227
+ // read, so collapse them to id strings before checking.
228
+ if (fieldErrors.length === 0) {
229
+ const idIndex = await store.idIndex();
230
+ const refValidator = new ReferenceValidator(idIndex, fields);
231
+ const refResult = await refValidator.validate(normalizeReferenceValues(fields, data));
232
+ fieldErrors.push(...refResult.errors.map((e) => ({ fieldPath: e.fieldPath, message: e.error })));
233
+ }
234
+ if (fieldErrors.length > 0) {
235
+ return {
236
+ ok: false,
237
+ status: 422,
238
+ // '; '-joined: the editor shows this in a notification, which collapses newlines
239
+ error: fieldErrors.map((e) => `${e.fieldPath}: ${e.message}`).join('; '),
240
+ fieldErrors,
241
+ };
242
+ }
243
+ }
244
+ }
245
+ catch (err) {
246
+ if (err instanceof ContentStoreError) {
247
+ return { ok: false, status: 400, error: sanitizeErrorMessage(err.message) };
248
+ }
249
+ throw err;
250
+ }
113
251
  // Adopter save-time validation, run BEFORE the file is written: 'error' issues
114
252
  // refuse the save (e.g. a body that would break the site's production build),
115
253
  // 'warning' issues are returned alongside the successful write.
@@ -128,7 +266,11 @@ const writeContentHandler = async (gc, ctx, req, params, body) => {
128
266
  });
129
267
  }
130
268
  catch (err) {
131
- return { ok: false, status: 500, error: `validateEntry hook failed: ${getErrorMessage(err)}` };
269
+ return {
270
+ ok: false,
271
+ status: 500,
272
+ error: `validateEntry hook failed: ${sanitizeErrorMessage(getErrorMessage(err))}`,
273
+ };
132
274
  }
133
275
  const errors = issues.filter((issue) => issue.level === 'error');
134
276
  if (errors.length > 0) {
@@ -158,20 +300,12 @@ const writeContentHandler = async (gc, ctx, req, params, body) => {
158
300
  body: body.body ?? '',
159
301
  expectedVersion: body.expectedVersion,
160
302
  };
161
- const result = await store.write(schemaItem.logicalPath, slug, writeInput, params.entryType);
162
- // Validate entry links in body content (warnings only, don't block save)
163
- // Resolve fields from schema: entry-type has .schema directly,
164
- // collections need to look up the entry type by name
165
- let fields = [];
166
- if (schemaItem.type === 'entry-type') {
167
- fields = schemaItem.schema;
168
- }
169
- else if (params.entryType) {
170
- fields = schemaItem.entries?.find((e) => e.name === params.entryType)?.schema ?? [];
171
- }
172
- else if (schemaItem.entries?.length === 1) {
173
- fields = schemaItem.entries[0].schema ?? [];
174
- }
303
+ // Pass the resolved entryTypeName (not the raw, possibly-omitted
304
+ // params.entryType) so the store's own format check agrees with the type
305
+ // we just validated against.
306
+ const result = await store.write(schemaItem.logicalPath, slug, writeInput, entryTypeName);
307
+ // Validate entry links in body content (warnings only, don't block save).
308
+ // Reuses the entry-type fields resolved above for schema validation.
175
309
  const idIndex = await store.idIndex();
176
310
  const linkValidation = validateEntryLinks(body.data ?? {}, fields, idIndex, body.body);
177
311
  const entryLinkWarnings = linkValidation.warnings.length > 0 ? linkValidation.warnings : undefined;
@@ -186,7 +320,7 @@ const writeContentHandler = async (gc, ctx, req, params, body) => {
186
320
  };
187
321
  }
188
322
  const message = err instanceof ContentStoreError ? err.message : 'Write failed';
189
- return { ok: false, status: 400, error: message };
323
+ return { ok: false, status: 400, error: sanitizeErrorMessage(message) };
190
324
  }
191
325
  };
192
326
  const validateReferencesHandler = async (gc, ctx, req, params, body) => {
@@ -207,7 +341,7 @@ const validateReferencesHandler = async (gc, ctx, req, params, body) => {
207
341
  }
208
342
  catch (err) {
209
343
  const message = err instanceof ContentStoreError ? err.message : 'Invalid content request';
210
- return { ok: false, status: 400, error: message };
344
+ return { ok: false, status: 400, error: sanitizeErrorMessage(message) };
211
345
  }
212
346
  const access = await ctx.services.checkContentAccess(branchContext, branchContext.branchRoot, relativePath, req.user, 'read');
213
347
  if (!access.allowed) {
@@ -276,7 +410,7 @@ const renameEntryHandler = async (gc, ctx, req, params, body) => {
276
410
  }
277
411
  catch (err) {
278
412
  const message = err instanceof ContentStoreError ? err.message : 'Invalid content request';
279
- return { ok: false, status: 400, error: message };
413
+ return { ok: false, status: 400, error: sanitizeErrorMessage(message) };
280
414
  }
281
415
  // Check edit permission on current path
282
416
  const access = await ctx.services.checkContentAccess(branchContext, branchContext.branchRoot, relativePath, req.user, 'edit');
@@ -290,7 +424,7 @@ const renameEntryHandler = async (gc, ctx, req, params, body) => {
290
424
  }
291
425
  catch (err) {
292
426
  const message = err instanceof ContentStoreError ? err.message : 'Rename failed';
293
- return { ok: false, status: 400, error: message };
427
+ return { ok: false, status: 400, error: sanitizeErrorMessage(message) };
294
428
  }
295
429
  };
296
430
  // ============================================================================