@beechcms/core 0.6.0-preview.3 → 0.6.0

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 (243) hide show
  1. package/dist/automations/automations-grammar-words.d.ts.map +1 -0
  2. package/dist/automations/automations.repository.interface.d.ts.map +1 -0
  3. package/dist/automations/automations.runner.interface.d.ts.map +1 -0
  4. package/dist/automations/automations.types.d.ts.map +1 -0
  5. package/dist/common/clock.d.ts.map +1 -0
  6. package/dist/common/email.provider.d.ts +32 -0
  7. package/dist/common/email.provider.d.ts.map +1 -0
  8. package/dist/common/email.provider.js +4 -0
  9. package/dist/{hooks.d.ts → common/hooks.d.ts} +2 -2
  10. package/dist/common/hooks.d.ts.map +1 -0
  11. package/dist/common/id-generator.d.ts.map +1 -0
  12. package/dist/common/storage.d.ts.map +1 -0
  13. package/dist/{content-scan.repository.d.ts → content/content-scan.repository.d.ts} +1 -1
  14. package/dist/content/content-scan.repository.d.ts.map +1 -0
  15. package/dist/{content.repository.d.ts → content/content.repository.d.ts} +13 -4
  16. package/dist/content/content.repository.d.ts.map +1 -0
  17. package/dist/content/demo-data.repository.d.ts.map +1 -0
  18. package/dist/content/idempotency.repository.d.ts.map +1 -0
  19. package/dist/content/richtext/richtext-render.d.ts +12 -0
  20. package/dist/content/richtext/richtext-render.d.ts.map +1 -0
  21. package/dist/{richtext-render.js → content/richtext/richtext-render.js} +7 -14
  22. package/dist/content/richtext/richtext.d.ts.map +1 -0
  23. package/dist/{seed.repository.d.ts → content/seed.repository.d.ts} +1 -1
  24. package/dist/content/seed.repository.d.ts.map +1 -0
  25. package/dist/content/slug-utils.d.ts.map +1 -0
  26. package/dist/{dashboard-layout.d.ts → dashboard-layout/dashboard-layout.d.ts} +1 -1
  27. package/dist/dashboard-layout/dashboard-layout.d.ts.map +1 -0
  28. package/dist/dashboard-layout/dashboard-layout.repository.d.ts.map +1 -0
  29. package/dist/dashboard-layout/dashboard-permissions.d.ts.map +1 -0
  30. package/dist/dashboard-layout/dashboard-scopes.d.ts.map +1 -0
  31. package/dist/dashboard-layout/kanban/kanban-position.repository.d.ts +19 -0
  32. package/dist/dashboard-layout/kanban/kanban-position.repository.d.ts.map +1 -0
  33. package/dist/dashboard-layout/kanban/kanban.d.ts +75 -0
  34. package/dist/dashboard-layout/kanban/kanban.d.ts.map +1 -0
  35. package/dist/dashboard-layout/kanban/kanban.js +82 -0
  36. package/dist/dashboard-layout/layout-permissions.d.ts.map +1 -0
  37. package/dist/{seed-layout.d.ts → dashboard-layout/seed-layout.d.ts} +77 -3
  38. package/dist/dashboard-layout/seed-layout.d.ts.map +1 -0
  39. package/dist/{seed-layout.js → dashboard-layout/seed-layout.js} +101 -8
  40. package/dist/{seed-layout.repository.d.ts → dashboard-layout/seed-layout.repository.d.ts} +5 -1
  41. package/dist/dashboard-layout/seed-layout.repository.d.ts.map +1 -0
  42. package/dist/dashboard-layout/view-authorization.d.ts +18 -0
  43. package/dist/dashboard-layout/view-authorization.d.ts.map +1 -0
  44. package/dist/dashboard-layout/view-authorization.js +28 -0
  45. package/dist/engine/ddl.d.ts +173 -0
  46. package/dist/engine/ddl.d.ts.map +1 -0
  47. package/dist/engine/ddl.js +454 -0
  48. package/dist/engine/define-seed.d.ts.map +1 -0
  49. package/dist/engine/engine.d.ts +4 -0
  50. package/dist/engine/engine.d.ts.map +1 -0
  51. package/dist/engine/engine.js +4 -0
  52. package/dist/engine/policies.d.ts.map +1 -0
  53. package/dist/engine/query.d.ts +23 -0
  54. package/dist/engine/query.d.ts.map +1 -0
  55. package/dist/engine/query.js +208 -0
  56. package/dist/engine/relations.d.ts.map +1 -0
  57. package/dist/{schema-mutator.d.ts → engine/schema-mutator.d.ts} +4 -0
  58. package/dist/engine/schema-mutator.d.ts.map +1 -0
  59. package/dist/engine/seed-ddl-destructive.d.ts.map +1 -0
  60. package/dist/engine/seed-ddl.d.ts.map +1 -0
  61. package/dist/engine/seed-registry.d.ts.map +1 -0
  62. package/dist/{seed-registry.js → engine/seed-registry.js} +1 -1
  63. package/dist/engine/seed-types-generator.d.ts +10 -0
  64. package/dist/engine/seed-types-generator.d.ts.map +1 -0
  65. package/dist/engine/seed-types-generator.js +86 -0
  66. package/dist/engine/seed-validation.d.ts.map +1 -0
  67. package/dist/{seed-validation.js → engine/seed-validation.js} +14 -1
  68. package/dist/engine/seeds.d.ts.map +1 -0
  69. package/dist/engine/serialize.d.ts +20 -0
  70. package/dist/engine/serialize.d.ts.map +1 -0
  71. package/dist/engine/serialize.js +160 -0
  72. package/dist/{types.d.ts → engine/types.d.ts} +102 -63
  73. package/dist/engine/types.d.ts.map +1 -0
  74. package/dist/engine/validation/cache.d.ts +12 -0
  75. package/dist/engine/validation/cache.d.ts.map +1 -0
  76. package/dist/engine/validation/cache.js +115 -0
  77. package/dist/engine/validation/file-branch.d.ts +48 -0
  78. package/dist/engine/validation/file-branch.d.ts.map +1 -0
  79. package/dist/engine/validation/file-branch.js +127 -0
  80. package/dist/engine/validation/index.d.ts +115 -0
  81. package/dist/engine/validation/index.d.ts.map +1 -0
  82. package/dist/engine/validation/index.js +333 -0
  83. package/dist/engine/validation/primitives.d.ts +33 -0
  84. package/dist/engine/validation/primitives.d.ts.map +1 -0
  85. package/dist/engine/validation/primitives.js +43 -0
  86. package/dist/engine/validation/richtext-sanitizer.d.ts +30 -0
  87. package/dist/engine/validation/richtext-sanitizer.d.ts.map +1 -0
  88. package/dist/engine/validation/richtext-sanitizer.js +193 -0
  89. package/dist/engine/validation/schema-builders.d.ts +12 -0
  90. package/dist/engine/validation/schema-builders.d.ts.map +1 -0
  91. package/dist/engine/validation/schema-builders.js +322 -0
  92. package/dist/index.d.ts +48 -40
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +48 -40
  95. package/dist/media/file-types.d.ts +13 -0
  96. package/dist/media/file-types.d.ts.map +1 -0
  97. package/dist/media/media.repository.d.ts.map +1 -0
  98. package/dist/queue/queue.interface.d.ts +39 -0
  99. package/dist/queue/queue.interface.d.ts.map +1 -0
  100. package/dist/queue/queue.interface.js +3 -0
  101. package/dist/queue/queue.stub.d.ts +6 -0
  102. package/dist/queue/queue.stub.d.ts.map +1 -0
  103. package/dist/queue/queue.stub.js +8 -0
  104. package/dist/queue/scheduler.interface.d.ts.map +1 -0
  105. package/dist/queue/scheduler.interface.js +3 -0
  106. package/dist/queue/scheduler.stub.d.ts.map +1 -0
  107. package/dist/queue.interface.d.ts +39 -0
  108. package/dist/queue.interface.d.ts.map +1 -0
  109. package/dist/queue.stub.d.ts +6 -0
  110. package/dist/queue.stub.d.ts.map +1 -0
  111. package/dist/queue.stub.js +8 -0
  112. package/dist/rate-limit/rate-limiter.d.ts +5 -0
  113. package/dist/rate-limit/rate-limiter.d.ts.map +1 -1
  114. package/dist/search/search.repository.d.ts +1 -1
  115. package/dist/search/search.repository.d.ts.map +1 -1
  116. package/dist/seed-types-generator.d.ts +10 -0
  117. package/dist/seed-types-generator.d.ts.map +1 -0
  118. package/dist/seed-types-generator.js +86 -0
  119. package/dist/settings/site-settings.repository.d.ts.map +1 -0
  120. package/dist/settings/site-settings.repository.js +3 -0
  121. package/dist/webhook-crypto.d.ts +8 -0
  122. package/dist/webhook-crypto.d.ts.map +1 -0
  123. package/dist/webhook-crypto.js +37 -0
  124. package/dist/webhooks/webhook-crypto.d.ts +8 -0
  125. package/dist/webhooks/webhook-crypto.d.ts.map +1 -0
  126. package/dist/webhooks/webhook-crypto.js +37 -0
  127. package/dist/webhooks/webhook-validation.d.ts.map +1 -0
  128. package/dist/widget/widget.repository.d.ts +1 -1
  129. package/dist/widget/widget.repository.d.ts.map +1 -1
  130. package/package.json +6 -1
  131. package/dist/automations-grammar-words.d.ts.map +0 -1
  132. package/dist/automations.repository.interface.d.ts.map +0 -1
  133. package/dist/automations.runner.interface.d.ts.map +0 -1
  134. package/dist/automations.runner.stub.d.ts +0 -5
  135. package/dist/automations.runner.stub.d.ts.map +0 -1
  136. package/dist/automations.runner.stub.js +0 -7
  137. package/dist/automations.types.d.ts.map +0 -1
  138. package/dist/clock.d.ts.map +0 -1
  139. package/dist/content-scan.repository.d.ts.map +0 -1
  140. package/dist/content.repository.d.ts.map +0 -1
  141. package/dist/dashboard-layout.d.ts.map +0 -1
  142. package/dist/dashboard-layout.repository.d.ts.map +0 -1
  143. package/dist/dashboard-permissions.d.ts.map +0 -1
  144. package/dist/dashboard-scopes.d.ts.map +0 -1
  145. package/dist/define-seed.d.ts.map +0 -1
  146. package/dist/demo-data.repository.d.ts.map +0 -1
  147. package/dist/engine.d.ts +0 -144
  148. package/dist/engine.d.ts.map +0 -1
  149. package/dist/engine.js +0 -723
  150. package/dist/file-types.d.ts +0 -13
  151. package/dist/file-types.d.ts.map +0 -1
  152. package/dist/hooks.d.ts.map +0 -1
  153. package/dist/id-generator.d.ts.map +0 -1
  154. package/dist/idempotency.repository.d.ts.map +0 -1
  155. package/dist/layout-permissions.d.ts.map +0 -1
  156. package/dist/media.repository.d.ts.map +0 -1
  157. package/dist/policies.d.ts.map +0 -1
  158. package/dist/relations.d.ts.map +0 -1
  159. package/dist/richtext-render.d.ts +0 -11
  160. package/dist/richtext-render.d.ts.map +0 -1
  161. package/dist/richtext.d.ts.map +0 -1
  162. package/dist/scheduler.interface.d.ts.map +0 -1
  163. package/dist/scheduler.stub.d.ts.map +0 -1
  164. package/dist/schema-mutator.d.ts.map +0 -1
  165. package/dist/seed-ddl-destructive.d.ts.map +0 -1
  166. package/dist/seed-ddl.d.ts.map +0 -1
  167. package/dist/seed-layout.d.ts.map +0 -1
  168. package/dist/seed-layout.repository.d.ts.map +0 -1
  169. package/dist/seed-registry.d.ts.map +0 -1
  170. package/dist/seed-validation.d.ts.map +0 -1
  171. package/dist/seed.repository.d.ts.map +0 -1
  172. package/dist/seeds.d.ts.map +0 -1
  173. package/dist/site-settings.repository.d.ts.map +0 -1
  174. package/dist/slug-utils.d.ts.map +0 -1
  175. package/dist/storage.d.ts.map +0 -1
  176. package/dist/types.d.ts.map +0 -1
  177. package/dist/validation.d.ts +0 -50
  178. package/dist/validation.d.ts.map +0 -1
  179. package/dist/validation.js +0 -659
  180. package/dist/webhook-validation.d.ts.map +0 -1
  181. /package/dist/{automations-grammar-words.d.ts → automations/automations-grammar-words.d.ts} +0 -0
  182. /package/dist/{automations-grammar-words.js → automations/automations-grammar-words.js} +0 -0
  183. /package/dist/{automations.repository.interface.d.ts → automations/automations.repository.interface.d.ts} +0 -0
  184. /package/dist/{automations.repository.interface.js → automations/automations.repository.interface.js} +0 -0
  185. /package/dist/{automations.runner.interface.d.ts → automations/automations.runner.interface.d.ts} +0 -0
  186. /package/dist/{automations.runner.interface.js → automations/automations.runner.interface.js} +0 -0
  187. /package/dist/{automations.types.d.ts → automations/automations.types.d.ts} +0 -0
  188. /package/dist/{automations.types.js → automations/automations.types.js} +0 -0
  189. /package/dist/{clock.d.ts → common/clock.d.ts} +0 -0
  190. /package/dist/{clock.js → common/clock.js} +0 -0
  191. /package/dist/{hooks.js → common/hooks.js} +0 -0
  192. /package/dist/{id-generator.d.ts → common/id-generator.d.ts} +0 -0
  193. /package/dist/{id-generator.js → common/id-generator.js} +0 -0
  194. /package/dist/{storage.d.ts → common/storage.d.ts} +0 -0
  195. /package/dist/{storage.js → common/storage.js} +0 -0
  196. /package/dist/{content-scan.repository.js → content/content-scan.repository.js} +0 -0
  197. /package/dist/{content.repository.js → content/content.repository.js} +0 -0
  198. /package/dist/{demo-data.repository.d.ts → content/demo-data.repository.d.ts} +0 -0
  199. /package/dist/{demo-data.repository.js → content/demo-data.repository.js} +0 -0
  200. /package/dist/{idempotency.repository.d.ts → content/idempotency.repository.d.ts} +0 -0
  201. /package/dist/{idempotency.repository.js → content/idempotency.repository.js} +0 -0
  202. /package/dist/{richtext.d.ts → content/richtext/richtext.d.ts} +0 -0
  203. /package/dist/{richtext.js → content/richtext/richtext.js} +0 -0
  204. /package/dist/{seed.repository.js → content/seed.repository.js} +0 -0
  205. /package/dist/{slug-utils.d.ts → content/slug-utils.d.ts} +0 -0
  206. /package/dist/{slug-utils.js → content/slug-utils.js} +0 -0
  207. /package/dist/{dashboard-layout.js → dashboard-layout/dashboard-layout.js} +0 -0
  208. /package/dist/{dashboard-layout.repository.d.ts → dashboard-layout/dashboard-layout.repository.d.ts} +0 -0
  209. /package/dist/{dashboard-layout.repository.js → dashboard-layout/dashboard-layout.repository.js} +0 -0
  210. /package/dist/{dashboard-permissions.d.ts → dashboard-layout/dashboard-permissions.d.ts} +0 -0
  211. /package/dist/{dashboard-permissions.js → dashboard-layout/dashboard-permissions.js} +0 -0
  212. /package/dist/{dashboard-scopes.d.ts → dashboard-layout/dashboard-scopes.d.ts} +0 -0
  213. /package/dist/{dashboard-scopes.js → dashboard-layout/dashboard-scopes.js} +0 -0
  214. /package/dist/{media.repository.js → dashboard-layout/kanban/kanban-position.repository.js} +0 -0
  215. /package/dist/{layout-permissions.d.ts → dashboard-layout/layout-permissions.d.ts} +0 -0
  216. /package/dist/{layout-permissions.js → dashboard-layout/layout-permissions.js} +0 -0
  217. /package/dist/{seed-layout.repository.js → dashboard-layout/seed-layout.repository.js} +0 -0
  218. /package/dist/{define-seed.d.ts → engine/define-seed.d.ts} +0 -0
  219. /package/dist/{define-seed.js → engine/define-seed.js} +0 -0
  220. /package/dist/{policies.d.ts → engine/policies.d.ts} +0 -0
  221. /package/dist/{policies.js → engine/policies.js} +0 -0
  222. /package/dist/{relations.d.ts → engine/relations.d.ts} +0 -0
  223. /package/dist/{relations.js → engine/relations.js} +0 -0
  224. /package/dist/{schema-mutator.js → engine/schema-mutator.js} +0 -0
  225. /package/dist/{seed-ddl-destructive.d.ts → engine/seed-ddl-destructive.d.ts} +0 -0
  226. /package/dist/{seed-ddl-destructive.js → engine/seed-ddl-destructive.js} +0 -0
  227. /package/dist/{seed-ddl.d.ts → engine/seed-ddl.d.ts} +0 -0
  228. /package/dist/{seed-ddl.js → engine/seed-ddl.js} +0 -0
  229. /package/dist/{seed-registry.d.ts → engine/seed-registry.d.ts} +0 -0
  230. /package/dist/{seed-validation.d.ts → engine/seed-validation.d.ts} +0 -0
  231. /package/dist/{seeds.d.ts → engine/seeds.d.ts} +0 -0
  232. /package/dist/{seeds.js → engine/seeds.js} +0 -0
  233. /package/dist/{types.js → engine/types.js} +0 -0
  234. /package/dist/{file-types.js → media/file-types.js} +0 -0
  235. /package/dist/{media.repository.d.ts → media/media.repository.d.ts} +0 -0
  236. /package/dist/{scheduler.interface.js → media/media.repository.js} +0 -0
  237. /package/dist/{scheduler.interface.d.ts → queue/scheduler.interface.d.ts} +0 -0
  238. /package/dist/{scheduler.stub.d.ts → queue/scheduler.stub.d.ts} +0 -0
  239. /package/dist/{scheduler.stub.js → queue/scheduler.stub.js} +0 -0
  240. /package/dist/{site-settings.repository.js → queue.interface.js} +0 -0
  241. /package/dist/{site-settings.repository.d.ts → settings/site-settings.repository.d.ts} +0 -0
  242. /package/dist/{webhook-validation.d.ts → webhooks/webhook-validation.d.ts} +0 -0
  243. /package/dist/{webhook-validation.js → webhooks/webhook-validation.js} +0 -0
package/dist/index.js CHANGED
@@ -9,21 +9,21 @@
9
9
  *
10
10
  * @module @beechcms/core
11
11
  */
12
- export * from './types.js';
13
- export * from './file-types.js';
14
- export * from './define-seed.js';
15
- export * from './seeds.js';
16
- export * from './engine.js';
17
- export * from './validation.js';
18
- export * from './richtext.js';
19
- export * from './richtext-render.js';
20
- export * from './slug-utils.js';
21
- export * from './content.repository.js';
22
- export * from './hooks.js';
23
- export * from './idempotency.repository.js';
24
- export * from './media.repository.js';
25
- export * from './storage.js';
26
- export * from './policies.js';
12
+ export * from './engine/types.js';
13
+ export * from './media/file-types.js';
14
+ export * from './engine/define-seed.js';
15
+ export * from './engine/seeds.js';
16
+ export * from './engine/engine.js';
17
+ export * from './engine/validation/index.js';
18
+ export * from './content/richtext/richtext.js';
19
+ export * from './content/richtext/richtext-render.js';
20
+ export * from './content/slug-utils.js';
21
+ export * from './content/content.repository.js';
22
+ export * from './common/hooks.js';
23
+ export * from './content/idempotency.repository.js';
24
+ export * from './media/media.repository.js';
25
+ export * from './common/storage.js';
26
+ export * from './engine/policies.js';
27
27
  export * from './auth/hash-provider.js';
28
28
  export * from './auth/token-service.js';
29
29
  export * from './auth/user.repository.js';
@@ -37,28 +37,36 @@ export * from './notifications/notification.repository.js';
37
37
  export * from './notifications/notification-service.js';
38
38
  export * from './widget/widget.repository.js';
39
39
  export * from './search/search.repository.js';
40
- export * from './content-scan.repository.js';
41
- export * from './clock.js';
42
- export * from './id-generator.js';
43
- export * from './seed-registry.js';
44
- export * from './automations.types.js';
45
- export * from './automations-grammar-words.js';
46
- export * from './automations.runner.interface.js';
47
- export * from './automations.repository.interface.js';
48
- export * from './scheduler.interface.js';
49
- export * from './scheduler.stub.js';
50
- export * from './webhook-validation.js';
51
- export * from './relations.js';
52
- export * from './site-settings.repository.js';
53
- export * from './demo-data.repository.js';
54
- export * from './seed-layout.js';
55
- export * from './seed-layout.repository.js';
56
- export * from './layout-permissions.js';
57
- export * from './dashboard-layout.js';
58
- export * from './dashboard-scopes.js';
59
- export * from './dashboard-permissions.js';
60
- export * from './dashboard-layout.repository.js';
61
- export * from './seed.repository.js';
62
- export * from './seed-validation.js';
63
- export * from './seed-ddl.js';
64
- export * from './schema-mutator.js';
40
+ export * from './content/content-scan.repository.js';
41
+ export * from './common/clock.js';
42
+ export * from './common/id-generator.js';
43
+ export * from './engine/seed-registry.js';
44
+ export * from './automations/automations.types.js';
45
+ export * from './automations/automations-grammar-words.js';
46
+ export * from './automations/automations.runner.interface.js';
47
+ export * from './automations/automations.repository.interface.js';
48
+ export * from './queue/scheduler.interface.js';
49
+ export * from './queue/scheduler.stub.js';
50
+ export * from './queue/queue.interface.js';
51
+ export * from './queue/queue.stub.js';
52
+ export * from './webhooks/webhook-validation.js';
53
+ export * from './engine/relations.js';
54
+ export * from './settings/site-settings.repository.js';
55
+ export * from './content/demo-data.repository.js';
56
+ export * from './dashboard-layout/seed-layout.js';
57
+ export * from './dashboard-layout/seed-layout.repository.js';
58
+ export * from './dashboard-layout/layout-permissions.js';
59
+ export * from './dashboard-layout/dashboard-layout.js';
60
+ export * from './dashboard-layout/dashboard-scopes.js';
61
+ export * from './dashboard-layout/dashboard-permissions.js';
62
+ export * from './dashboard-layout/dashboard-layout.repository.js';
63
+ export * from './content/seed.repository.js';
64
+ export * from './engine/seed-validation.js';
65
+ export * from './engine/seed-ddl.js';
66
+ export * from './engine/schema-mutator.js';
67
+ export * from './engine/seed-types-generator.js';
68
+ export * from './webhooks/webhook-crypto.js';
69
+ export * from './dashboard-layout/kanban/kanban.js';
70
+ export * from './dashboard-layout/view-authorization.js';
71
+ export * from './dashboard-layout/kanban/kanban-position.repository.js';
72
+ export * from './common/email.provider.js';
@@ -0,0 +1,13 @@
1
+ export type FileAccept = 'image' | 'document' | 'any';
2
+ export declare const IMAGE_EXTENSIONS: Set<string>;
3
+ export declare const BLOCKED_IMAGE_EXTENSIONS: Set<string>;
4
+ export declare const DOCUMENT_EXTENSIONS: Set<string>;
5
+ export declare const ARCHIVE_EXTENSIONS: Set<string>;
6
+ export declare const IMAGE_MIME_TYPES: readonly ['image/jpeg', 'image/png', 'image/gif', 'image/webp', 'image/avif', 'image/bmp', 'image/x-icon', 'image/vnd.microsoft.icon'];
7
+ export declare const BLOCKED_IMAGE_MIME_TYPES: readonly ['image/svg+xml', 'image/svg'];
8
+ export declare const DOCUMENT_MIME_TYPES: readonly ['application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'text/plain', 'text/csv', 'text/markdown'];
9
+ export declare const ARCHIVE_MIME_TYPES: readonly ['application/zip', 'application/x-zip-compressed', 'application/x-7z-compressed', 'application/x-tar', 'application/gzip', 'application/json'];
10
+ export declare function extensionFromUrl(url: string): string | null;
11
+ export declare function isExtensionAccepted(ext: string | null, accept: FileAccept): boolean;
12
+ export declare function isMimeAccepted(mime: string, accept: FileAccept): boolean;
13
+ //# sourceMappingURL=file-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-types.d.ts","sourceRoot":"","sources":["../../src/media/file-types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAA;AAKrD,eAAO,MAAM,gBAAgB,aAAuE,CAAA;AACpG,eAAO,MAAM,wBAAwB,aAA2B,CAAA;AAChE,eAAO,MAAM,mBAAmB,aAAoF,CAAA;AACpH,eAAO,MAAM,kBAAkB,aAA8C,CAAA;AAI7E,eAAO,MAAM,gBAAgB,YAC3B,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,0BAA0B,CAClB,CAAA;AAGV,eAAO,MAAM,wBAAwB,YAAI,eAAe,EAAE,WAAW,CAAU,CAAA;AAC/E,eAAO,MAAM,mBAAmB,YAC9B,iBAAiB,EACjB,oBAAoB,EACpB,yEAAyE,EACzE,0BAA0B,EAC1B,mEAAmE,EACnE,+BAA+B,EAC/B,2EAA2E,EAC3E,YAAY,EACZ,UAAU,EACV,eAAe,CACP,CAAA;AACV,eAAO,MAAM,kBAAkB,YAC7B,iBAAiB,EACjB,8BAA8B,EAC9B,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,CACV,CAAA;AAEV,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS3D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAMnF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAcxE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.repository.d.ts","sourceRoot":"","sources":["../../src/media/media.repository.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAEnD;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEnG;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACpC"}
@@ -0,0 +1,39 @@
1
+ import type { ContentRepository } from '../content/content.repository.js';
2
+ import type { BeechBucket } from '../common/storage.js';
3
+ import type { IClock } from '../common/clock.js';
4
+ import type { IIdGenerator } from '../common/id-generator.js';
5
+ /**
6
+ * The envelope put on the wire / queue. `name` selects the handler from the
7
+ * JobRegistry; `payload` is the developer-supplied, JSON-serializable body.
8
+ */
9
+ export interface QueueMessage<T = unknown> {
10
+ name: string;
11
+ payload: T;
12
+ }
13
+ /**
14
+ * Execution context handed to every job. Botanical Invariant: jobs receive the
15
+ * engine-mediated repository, NEVER a raw D1Database. `env` is a read-only,
16
+ * stringly-typed view of bindings/secrets for things like fetch targets — it
17
+ * deliberately does not expose `DB`.
18
+ */
19
+ export interface JobContext {
20
+ repository: ContentRepository;
21
+ bucket: BeechBucket;
22
+ clock: IClock;
23
+ idGenerator: IIdGenerator;
24
+ env: Record<string, string | undefined>;
25
+ }
26
+ /** A single background worker. Receives the decoded payload + context. */
27
+ export type JobHandler<T = unknown> = (payload: T, context: JobContext) => Promise<void>;
28
+ /** Name -> handler map, supplied via BeechConfig.jobs. */
29
+ export type JobRegistry = Record<string, JobHandler<any>>;
30
+ /**
31
+ * Producer port. `enqueue` schedules deferred work and returns once the message
32
+ * is accepted by the transport. Like INotificationService, implementations MUST
33
+ * decide their own fire-and-forget vs inline semantics and MUST NOT let a
34
+ * transport failure crash the request that called enqueue.
35
+ */
36
+ export interface IQueueService {
37
+ enqueue<T>(name: string, payload: T): Promise<void>;
38
+ }
39
+ //# sourceMappingURL=queue.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.interface.d.ts","sourceRoot":"","sources":["../../src/queue/queue.interface.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAA;CACX;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,iBAAiB,CAAA;IAC7B,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,YAAY,CAAA;IACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CACxC;AAED,0EAA0E;AAC1E,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,CACpC,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,UAAU,KAChB,OAAO,CAAC,IAAI,CAAC,CAAA;AAElB,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD"}
@@ -0,0 +1,3 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) 2024–2026 Flavio De Musso
3
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { IQueueService } from './queue.interface.js';
2
+ /** Safe no-op producer (e.g. unit tests that don't assert on enqueue). */
3
+ export declare class NoOpQueueService implements IQueueService {
4
+ enqueue<T>(_name: string, _payload: T): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=queue.stub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.stub.d.ts","sourceRoot":"","sources":["../../src/queue/queue.stub.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,0EAA0E;AAC1E,qBAAa,gBAAiB,YAAW,aAAa;IAC9C,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;CACF"}
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) 2024–2026 Flavio De Musso
3
+ /** Safe no-op producer (e.g. unit tests that don't assert on enqueue). */
4
+ export class NoOpQueueService {
5
+ async enqueue(_name, _payload) {
6
+ // intentionally empty
7
+ }
8
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.interface.d.ts","sourceRoot":"","sources":["../../src/queue/scheduler.interface.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;CAC3C"}
@@ -0,0 +1,3 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) 2024–2026 Flavio De Musso
3
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.stub.d.ts","sourceRoot":"","sources":["../../src/queue/scheduler.stub.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,qBAAa,aAAc,YAAW,UAAU;IAC9C,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAE1C;CACF"}
@@ -0,0 +1,39 @@
1
+ import type { ContentRepository } from './content/content.repository.js';
2
+ import type { BeechBucket } from './common/storage.js';
3
+ import type { IClock } from './common/clock.js';
4
+ import type { IIdGenerator } from './common/id-generator.js';
5
+ /**
6
+ * The envelope put on the wire / queue. `name` selects the handler from the
7
+ * JobRegistry; `payload` is the developer-supplied, JSON-serializable body.
8
+ */
9
+ export interface QueueMessage<T = unknown> {
10
+ name: string;
11
+ payload: T;
12
+ }
13
+ /**
14
+ * Execution context handed to every job. Botanical Invariant: jobs receive the
15
+ * engine-mediated repository, NEVER a raw D1Database. `env` is a read-only,
16
+ * stringly-typed view of bindings/secrets for things like fetch targets — it
17
+ * deliberately does not expose `DB`.
18
+ */
19
+ export interface JobContext {
20
+ repository: ContentRepository;
21
+ bucket: BeechBucket;
22
+ clock: IClock;
23
+ idGenerator: IIdGenerator;
24
+ env: Record<string, string | undefined>;
25
+ }
26
+ /** A single background worker. Receives the decoded payload + context. */
27
+ export type JobHandler<T = unknown> = (payload: T, context: JobContext) => Promise<void>;
28
+ /** Name -> handler map, supplied via BeechConfig.jobs. */
29
+ export type JobRegistry = Record<string, JobHandler<any>>;
30
+ /**
31
+ * Producer port. `enqueue` schedules deferred work and returns once the message
32
+ * is accepted by the transport. Like INotificationService, implementations MUST
33
+ * decide their own fire-and-forget vs inline semantics and MUST NOT let a
34
+ * transport failure crash the request that called enqueue.
35
+ */
36
+ export interface IQueueService {
37
+ enqueue<T>(name: string, payload: T): Promise<void>;
38
+ }
39
+ //# sourceMappingURL=queue.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.interface.d.ts","sourceRoot":"","sources":["../src/queue.interface.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAA;CACX;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,iBAAiB,CAAA;IAC7B,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,YAAY,CAAA;IACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CACxC;AAED,0EAA0E;AAC1E,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,CACpC,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,UAAU,KAChB,OAAO,CAAC,IAAI,CAAC,CAAA;AAElB,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD"}
@@ -0,0 +1,6 @@
1
+ import type { IQueueService } from './queue.interface.js';
2
+ /** Safe no-op producer (e.g. unit tests that don't assert on enqueue). */
3
+ export declare class NoOpQueueService implements IQueueService {
4
+ enqueue<T>(_name: string, _payload: T): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=queue.stub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.stub.d.ts","sourceRoot":"","sources":["../src/queue.stub.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,0EAA0E;AAC1E,qBAAa,gBAAiB,YAAW,aAAa;IAC9C,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;CACF"}
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) 2024–2026 Flavio De Musso
3
+ /** Safe no-op producer (e.g. unit tests that don't assert on enqueue). */
4
+ export class NoOpQueueService {
5
+ async enqueue(_name, _payload) {
6
+ // intentionally empty
7
+ }
8
+ }
@@ -1,5 +1,10 @@
1
1
  export interface RateLimitResult {
2
2
  isAllowed: boolean;
3
+ /**
4
+ * The number of seconds after which the client may retry the request.
5
+ * Note: This field is optional and may not be supported by all implementations
6
+ * (e.g. Cloudflare Rate Limit binding does not return retry-after information).
7
+ */
3
8
  retryAfterSeconds?: number;
4
9
  }
5
10
  export interface IRateLimiter {
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/rate-limit/rate-limiter.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CAClD"}
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/rate-limit/rate-limiter.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CAClD"}
@@ -1,4 +1,4 @@
1
- import type { Seed } from '../types.js';
1
+ import type { Seed } from '../engine/types.js';
2
2
  export interface SearchQueryOptions {
3
3
  queryText: string;
4
4
  schemaSlug: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"search.repository.d.ts","sourceRoot":"","sources":["../../src/search/search.repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IAE9E;;;;OAIG;IACH,KAAK,CACH,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,QAAQ,CAAC,EACrD,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAC9B"}
1
+ {"version":3,"file":"search.repository.d.ts","sourceRoot":"","sources":["../../src/search/search.repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAE9C,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IAE9E;;;;OAIG;IACH,KAAK,CACH,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,QAAQ,CAAC,EACrD,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAC9B"}
@@ -0,0 +1,10 @@
1
+ import type { Seed, Branch } from './engine/types.js';
2
+ /** slug/alias → PascalCase identifier. 'blog-posts' → 'BlogPosts'. */
3
+ export declare function pascalCase(input: string): string;
4
+ /** Maps a single Branch to its TypeScript type expression (no optional marker). */
5
+ export declare function tsTypeForBranch(branch: Branch): string;
6
+ /** Emits one exported interface for a single Seed. */
7
+ export declare function interfaceForSeed(seed: Seed): string;
8
+ /** Pure entry point. Deterministic: sorts seeds by slug for stable diffs. */
9
+ export declare function generateSeedTypes(seeds: Seed[]): string;
10
+ //# sourceMappingURL=seed-types-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-types-generator.d.ts","sourceRoot":"","sources":["../src/seed-types-generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAerD,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAMD,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoCtD;AAWD,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAYnD;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CASvD"}
@@ -0,0 +1,86 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) 2024–2026 Flavio De Musso
3
+ const HEADER = '// Questo file è generato automaticamente da BeechCMS CLI. Non modificarlo direttamente.\n';
4
+ /** System columns emitted by generateCreateTable — always present, never optional. */
5
+ const SYSTEM_FIELDS = ` id: string\n` +
6
+ ` slug: string\n` +
7
+ ` status: 'draft' | 'review' | 'published' | 'archived'\n`;
8
+ const SYSTEM_TIMESTAMPS = ` created_at: number\n` +
9
+ ` updated_at: number\n`;
10
+ /** slug/alias → PascalCase identifier. 'blog-posts' → 'BlogPosts'. */
11
+ export function pascalCase(input) {
12
+ return input
13
+ .split(/[^A-Za-z0-9]+/)
14
+ .filter(Boolean)
15
+ .map(w => w.charAt(0).toUpperCase() + w.slice(1))
16
+ .join('');
17
+ }
18
+ function literalUnion(options) {
19
+ return options.map(o => `'${o.replace(/'/g, "\\'")}'`).join(' | ');
20
+ }
21
+ /** Maps a single Branch to its TypeScript type expression (no optional marker). */
22
+ export function tsTypeForBranch(branch) {
23
+ switch (branch.type) {
24
+ case 'number':
25
+ case 'date':
26
+ return 'number';
27
+ case 'boolean':
28
+ return 'boolean';
29
+ case 'json':
30
+ return 'unknown';
31
+ case 'text':
32
+ case 'richtext':
33
+ case 'file': {
34
+ const base = branch.type === 'text' && branch.options?.length
35
+ ? literalUnion(branch.options)
36
+ : 'string';
37
+ return branch.type === 'file' && branch.multiple ? `${base}[]` : base;
38
+ }
39
+ case 'tags': {
40
+ const base = branch.options?.length ? `(${literalUnion(branch.options)})` : 'string';
41
+ return `${base}[]`;
42
+ }
43
+ case 'relation':
44
+ return branch.multiple ? 'string[]' : 'string';
45
+ case 'repeater': {
46
+ const inner = (branch.fields ?? [])
47
+ .map(f => `${propName(f)}${optional(f)}: ${tsTypeForBranch(f)}`)
48
+ .join('; ');
49
+ return `Array<{ ${inner} }>`;
50
+ }
51
+ default: {
52
+ // Exhaustiveness guard — fails the build if BranchType gains a member.
53
+ const _never = branch.type;
54
+ return _never;
55
+ }
56
+ }
57
+ }
58
+ function optional(branch) {
59
+ return branch.requiredOnCreate ? '' : '?';
60
+ }
61
+ function propName(branch) {
62
+ // alias is a valid SQL column; quote only if not a plain identifier.
63
+ return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(branch.alias) ? branch.alias : `'${branch.alias}'`;
64
+ }
65
+ /** Emits one exported interface for a single Seed. */
66
+ export function interfaceForSeed(seed) {
67
+ const name = pascalCase(seed.slug);
68
+ const props = seed.branches
69
+ .map(b => ` ${propName(b)}${optional(b)}: ${tsTypeForBranch(b)}`)
70
+ .join('\n');
71
+ return (`export interface ${name} {\n` +
72
+ SYSTEM_FIELDS +
73
+ (props ? props + '\n' : '') +
74
+ SYSTEM_TIMESTAMPS +
75
+ `}\n`);
76
+ }
77
+ /** Pure entry point. Deterministic: sorts seeds by slug for stable diffs. */
78
+ export function generateSeedTypes(seeds) {
79
+ const sorted = [...seeds].sort((a, b) => a.slug.localeCompare(b.slug));
80
+ const interfaces = sorted.map(interfaceForSeed).join('\n');
81
+ const registry = `export interface SeedRegistryTypes {\n` +
82
+ sorted.map(s => ` ${propName({ alias: s.slug })}: ${pascalCase(s.slug)}`).join('\n') +
83
+ (sorted.length ? '\n' : '') +
84
+ `}\n`;
85
+ return `${HEADER}\n${interfaces}\n${registry}`;
86
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-settings.repository.d.ts","sourceRoot":"","sources":["../../src/settings/site-settings.repository.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IAC/B,kFAAkF;IAClF,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtD"}
@@ -0,0 +1,3 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) 2024–2026 Flavio De Musso
3
+ export {};
@@ -0,0 +1,8 @@
1
+ /** Signs a raw request body. Returns `sha256=<hex>`. */
2
+ export declare function signWebhookBody(body: string, secret: string): Promise<string>;
3
+ /**
4
+ * Verifies an inbound signature against the recomputed HMAC.
5
+ * Accepts the `sha256=` prefix on the provided signature (optional).
6
+ */
7
+ export declare function verifyWebhookSignature(body: string, signature: string | null | undefined, secret: string): Promise<boolean>;
8
+ //# sourceMappingURL=webhook-crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-crypto.d.ts","sourceRoot":"","sources":["../src/webhook-crypto.ts"],"names":[],"mappings":"AAqBA,wDAAwD;AACxD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInF;AAUD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAKlB"}
@@ -0,0 +1,37 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) 2024–2026 Flavio De Musso
3
+ const SIG_PREFIX = 'sha256=';
4
+ function toHex(buf) {
5
+ return Array.from(new Uint8Array(buf))
6
+ .map((b) => b.toString(16).padStart(2, '0'))
7
+ .join('');
8
+ }
9
+ async function hmacKey(secret) {
10
+ return crypto.subtle.importKey('raw', new TextEncoder().encode(secret), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
11
+ }
12
+ /** Signs a raw request body. Returns `sha256=<hex>`. */
13
+ export async function signWebhookBody(body, secret) {
14
+ const key = await hmacKey(secret);
15
+ const sig = await crypto.subtle.sign('HMAC', key, new TextEncoder().encode(body));
16
+ return SIG_PREFIX + toHex(sig);
17
+ }
18
+ /** Constant-time comparison of two equal-or-unequal-length hex strings. */
19
+ function timingSafeEqual(a, b) {
20
+ if (a.length !== b.length)
21
+ return false;
22
+ let mismatch = 0;
23
+ for (let i = 0; i < a.length; i++)
24
+ mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);
25
+ return mismatch === 0;
26
+ }
27
+ /**
28
+ * Verifies an inbound signature against the recomputed HMAC.
29
+ * Accepts the `sha256=` prefix on the provided signature (optional).
30
+ */
31
+ export async function verifyWebhookSignature(body, signature, secret) {
32
+ if (!signature || !secret)
33
+ return false;
34
+ const expected = await signWebhookBody(body, secret);
35
+ const provided = signature.startsWith(SIG_PREFIX) ? signature : SIG_PREFIX + signature;
36
+ return timingSafeEqual(expected, provided);
37
+ }
@@ -0,0 +1,8 @@
1
+ /** Signs a raw request body. Returns `sha256=<hex>`. */
2
+ export declare function signWebhookBody(body: string, secret: string): Promise<string>;
3
+ /**
4
+ * Verifies an inbound signature against the recomputed HMAC.
5
+ * Accepts the `sha256=` prefix on the provided signature (optional).
6
+ */
7
+ export declare function verifyWebhookSignature(body: string, signature: string | null | undefined, secret: string): Promise<boolean>;
8
+ //# sourceMappingURL=webhook-crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-crypto.d.ts","sourceRoot":"","sources":["../../src/webhooks/webhook-crypto.ts"],"names":[],"mappings":"AAqBA,wDAAwD;AACxD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInF;AAUD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAKlB"}
@@ -0,0 +1,37 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) 2024–2026 Flavio De Musso
3
+ const SIG_PREFIX = 'sha256=';
4
+ function toHex(buf) {
5
+ return Array.from(new Uint8Array(buf))
6
+ .map((b) => b.toString(16).padStart(2, '0'))
7
+ .join('');
8
+ }
9
+ async function hmacKey(secret) {
10
+ return crypto.subtle.importKey('raw', new TextEncoder().encode(secret), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
11
+ }
12
+ /** Signs a raw request body. Returns `sha256=<hex>`. */
13
+ export async function signWebhookBody(body, secret) {
14
+ const key = await hmacKey(secret);
15
+ const sig = await crypto.subtle.sign('HMAC', key, new TextEncoder().encode(body));
16
+ return SIG_PREFIX + toHex(sig);
17
+ }
18
+ /** Constant-time comparison of two equal-or-unequal-length hex strings. */
19
+ function timingSafeEqual(a, b) {
20
+ if (a.length !== b.length)
21
+ return false;
22
+ let mismatch = 0;
23
+ for (let i = 0; i < a.length; i++)
24
+ mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);
25
+ return mismatch === 0;
26
+ }
27
+ /**
28
+ * Verifies an inbound signature against the recomputed HMAC.
29
+ * Accepts the `sha256=` prefix on the provided signature (optional).
30
+ */
31
+ export async function verifyWebhookSignature(body, signature, secret) {
32
+ if (!signature || !secret)
33
+ return false;
34
+ const expected = await signWebhookBody(body, secret);
35
+ const provided = signature.startsWith(SIG_PREFIX) ? signature : SIG_PREFIX + signature;
36
+ return timingSafeEqual(expected, provided);
37
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-validation.d.ts","sourceRoot":"","sources":["../../src/webhooks/webhook-validation.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,QAC0H,CAAA;AAEzJ,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD"}
@@ -1,4 +1,4 @@
1
- import type { Seed } from '../types.js';
1
+ import type { Seed } from '../engine/types.js';
2
2
  /**
3
3
  * Discriminated union describing the aggregate to compute over a content table.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"widget.repository.d.ts","sourceRoot":"","sources":["../../src/widget/widget.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget.repository.d.ts","sourceRoot":"","sources":["../../src/widget/widget.repository.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beechcms/core",
3
- "version": "0.6.0-preview.3",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -12,9 +12,14 @@
12
12
  ".": {
13
13
  "import": "./dist/index.js",
14
14
  "types": "./dist/index.d.ts"
15
+ },
16
+ "./webhook-crypto": {
17
+ "import": "./dist/webhooks/webhook-crypto.js",
18
+ "types": "./dist/webhooks/webhook-crypto.d.ts"
15
19
  }
16
20
  },
17
21
  "devDependencies": {
22
+ "@types/node": "^24.10.1",
18
23
  "@vitest/coverage-v8": "^4.1.0",
19
24
  "vitest": "^4.1.0"
20
25
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"automations-grammar-words.d.ts","sourceRoot":"","sources":["../src/automations-grammar-words.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,aAKpC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"automations.repository.interface.d.ts","sourceRoot":"","sources":["../src/automations.repository.interface.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAE/H,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B,kBAAkB,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnC,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAElE,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACrD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;CACnF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"automations.runner.interface.d.ts","sourceRoot":"","sources":["../src/automations.runner.interface.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAEpE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,sBAAsB,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD"}
@@ -1,5 +0,0 @@
1
- import type { IAutomationRunner, AutomationEventPayload } from './automations.runner.interface.js';
2
- export declare class NoOpAutomationRunner implements IAutomationRunner {
3
- run(_payload: AutomationEventPayload): Promise<void>;
4
- }
5
- //# sourceMappingURL=automations.runner.stub.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"automations.runner.stub.d.ts","sourceRoot":"","sources":["../src/automations.runner.stub.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAElG,qBAAa,oBAAqB,YAAW,iBAAiB;IACtD,GAAG,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3D"}
@@ -1,7 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- // Copyright (c) 2024–2026 Flavio De Musso
3
- export class NoOpAutomationRunner {
4
- async run(_payload) {
5
- // intentionally empty
6
- }
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"automations.types.d.ts","sourceRoot":"","sources":["../src/automations.types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAE5E,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,sBAAsB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAAA;IACtE,KAAK,EAAE,OAAO,CAAA;CACf;AAMD,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhC,MAAM,MAAM,MAAM,GACd,IAAI,GAAG,KAAK,GACZ,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAC3B,UAAU,GAAG,YAAY,GAAG,UAAU,GACtC,IAAI,GAAG,OAAO,GACd,SAAS,GAAG,YAAY,GACxB,SAAS,CAAA;AAEb,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,WAAW,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,EAAE,EAAE,KAAK,GAAG,IAAI,CAAA;IAChB,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAA;AAEhD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAC/B;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAM,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAChI;IAAE,IAAI,EAAE,WAAW,CAAC;IAAI,EAAE,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9E,iBAAiB,CAAA;AAErB,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B,kBAAkB,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnC,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../src/clock.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,GAAG,IAAI,MAAM,CAAA;IAEb;;;;OAIG;IACH,UAAU,IAAI,MAAM,CAAA;CACrB;AAID;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAGzB,CAAA"}