@beechcms/core 0.8.0 → 0.9.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 (389) hide show
  1. package/dist/auth/account-email.d.ts +3 -0
  2. package/dist/auth/account-email.d.ts.map +1 -0
  3. package/dist/auth/account-email.js +9 -0
  4. package/dist/auth/password-reset-token.repository.d.ts +13 -2
  5. package/dist/auth/password-reset-token.repository.d.ts.map +1 -1
  6. package/dist/auth/user.repository.d.ts +69 -4
  7. package/dist/auth/user.repository.d.ts.map +1 -1
  8. package/dist/automations-grammar-words.d.ts +2 -0
  9. package/dist/automations-grammar-words.d.ts.map +1 -0
  10. package/dist/automations-grammar-words.js +8 -0
  11. package/dist/automations.repository.interface.d.ts +19 -0
  12. package/dist/automations.repository.interface.d.ts.map +1 -0
  13. package/dist/automations.repository.interface.js +3 -0
  14. package/dist/automations.runner.interface.d.ts +10 -0
  15. package/dist/automations.runner.interface.d.ts.map +1 -0
  16. package/dist/automations.runner.interface.js +3 -0
  17. package/dist/automations.runner.stub.d.ts +5 -0
  18. package/dist/automations.runner.stub.d.ts.map +1 -0
  19. package/dist/automations.runner.stub.js +7 -0
  20. package/dist/automations.types.d.ts +75 -0
  21. package/dist/automations.types.d.ts.map +1 -0
  22. package/dist/automations.types.js +3 -0
  23. package/dist/clock.d.ts +25 -0
  24. package/dist/clock.d.ts.map +1 -0
  25. package/dist/clock.js +11 -0
  26. package/dist/common/canonical-json.d.ts +31 -0
  27. package/dist/common/canonical-json.d.ts.map +1 -0
  28. package/dist/common/canonical-json.js +91 -0
  29. package/dist/content/content-scan.repository.d.ts +1 -1
  30. package/dist/content/content.repository.d.ts +154 -3
  31. package/dist/content/content.repository.d.ts.map +1 -1
  32. package/dist/content/content.repository.js +62 -0
  33. package/dist/content/deletion-ledger.d.ts +39 -0
  34. package/dist/content/deletion-ledger.d.ts.map +1 -0
  35. package/dist/content/deletion-ledger.js +3 -0
  36. package/dist/content/seed-media-purge.repository.d.ts +34 -0
  37. package/dist/content/seed-media-purge.repository.d.ts.map +1 -0
  38. package/dist/content/seed-media-purge.repository.js +3 -0
  39. package/dist/content/seed.repository.d.ts +14 -0
  40. package/dist/content/seed.repository.d.ts.map +1 -1
  41. package/dist/content-scan.repository.d.ts +9 -0
  42. package/dist/content-scan.repository.d.ts.map +1 -0
  43. package/dist/content-scan.repository.js +3 -0
  44. package/dist/content.repository.d.ts +247 -0
  45. package/dist/content.repository.d.ts.map +1 -0
  46. package/dist/content.repository.js +59 -0
  47. package/dist/dashboard-layout/content-view.d.ts +757 -0
  48. package/dist/dashboard-layout/content-view.d.ts.map +1 -0
  49. package/dist/dashboard-layout/content-view.js +285 -0
  50. package/dist/dashboard-layout/content-view.repository.d.ts +39 -0
  51. package/dist/dashboard-layout/content-view.repository.d.ts.map +1 -0
  52. package/dist/dashboard-layout/content-view.repository.js +3 -0
  53. package/dist/dashboard-layout/dashboard-layout.d.ts +5 -0
  54. package/dist/dashboard-layout/dashboard-layout.d.ts.map +1 -1
  55. package/dist/dashboard-layout/dashboard-layout.js +17 -9
  56. package/dist/dashboard-layout/kanban/kanban.d.ts +32 -18
  57. package/dist/dashboard-layout/kanban/kanban.d.ts.map +1 -1
  58. package/dist/dashboard-layout/kanban/kanban.js +45 -21
  59. package/dist/dashboard-layout/seed-layout.d.ts +22 -31
  60. package/dist/dashboard-layout/seed-layout.d.ts.map +1 -1
  61. package/dist/dashboard-layout/seed-layout.js +93 -18
  62. package/dist/dashboard-layout/seed-layout.repository.d.ts +1 -5
  63. package/dist/dashboard-layout/seed-layout.repository.d.ts.map +1 -1
  64. package/dist/dashboard-layout.d.ts +154 -0
  65. package/dist/dashboard-layout.d.ts.map +1 -0
  66. package/dist/dashboard-layout.js +186 -0
  67. package/dist/dashboard-layout.repository.d.ts +18 -0
  68. package/dist/dashboard-layout.repository.d.ts.map +1 -0
  69. package/dist/dashboard-layout.repository.js +3 -0
  70. package/dist/dashboard-permissions.d.ts +3 -0
  71. package/dist/dashboard-permissions.d.ts.map +1 -0
  72. package/dist/dashboard-permissions.js +11 -0
  73. package/dist/dashboard-scopes.d.ts +12 -0
  74. package/dist/dashboard-scopes.d.ts.map +1 -0
  75. package/dist/dashboard-scopes.js +30 -0
  76. package/dist/define-seed.d.ts +3 -0
  77. package/dist/define-seed.d.ts.map +1 -0
  78. package/dist/define-seed.js +5 -0
  79. package/dist/demo-data.repository.d.ts +5 -0
  80. package/dist/demo-data.repository.d.ts.map +1 -0
  81. package/dist/demo-data.repository.js +3 -0
  82. package/dist/email.provider.d.ts +32 -0
  83. package/dist/email.provider.d.ts.map +1 -0
  84. package/dist/email.provider.js +4 -0
  85. package/dist/engine/ddl/ddl.d.ts +247 -0
  86. package/dist/engine/ddl/ddl.d.ts.map +1 -0
  87. package/dist/engine/ddl/ddl.js +653 -0
  88. package/dist/engine/ddl/schema-mutator.d.ts +29 -0
  89. package/dist/engine/ddl/schema-mutator.d.ts.map +1 -0
  90. package/dist/engine/ddl/schema-mutator.js +3 -0
  91. package/dist/engine/ddl/seed-ddl-destructive.d.ts +40 -0
  92. package/dist/engine/ddl/seed-ddl-destructive.d.ts.map +1 -0
  93. package/dist/engine/ddl/seed-ddl-destructive.js +149 -0
  94. package/dist/engine/ddl/seed-ddl.d.ts +43 -0
  95. package/dist/engine/ddl/seed-ddl.d.ts.map +1 -0
  96. package/dist/engine/ddl/seed-ddl.js +115 -0
  97. package/dist/engine/ddl/seed-purge-guards.d.ts +7 -0
  98. package/dist/engine/ddl/seed-purge-guards.d.ts.map +1 -0
  99. package/dist/engine/ddl/seed-purge-guards.js +19 -0
  100. package/dist/engine/engine.d.ts +4 -3
  101. package/dist/engine/engine.d.ts.map +1 -1
  102. package/dist/engine/engine.js +4 -3
  103. package/dist/engine/introspection/introspection.d.ts +101 -0
  104. package/dist/engine/introspection/introspection.d.ts.map +1 -0
  105. package/dist/engine/introspection/introspection.js +127 -0
  106. package/dist/engine/introspection/relation-audit.d.ts +46 -0
  107. package/dist/engine/introspection/relation-audit.d.ts.map +1 -0
  108. package/dist/engine/introspection/relation-audit.js +103 -0
  109. package/dist/engine/introspection/schema-fingerprint.d.ts +74 -0
  110. package/dist/engine/introspection/schema-fingerprint.d.ts.map +1 -0
  111. package/dist/engine/introspection/schema-fingerprint.js +102 -0
  112. package/dist/engine/introspection.d.ts +101 -0
  113. package/dist/engine/introspection.d.ts.map +1 -0
  114. package/dist/engine/introspection.js +127 -0
  115. package/dist/engine/localization/localization.d.ts +127 -0
  116. package/dist/engine/localization/localization.d.ts.map +1 -0
  117. package/dist/engine/localization/localization.js +212 -0
  118. package/dist/engine/localization.d.ts +127 -0
  119. package/dist/engine/localization.d.ts.map +1 -0
  120. package/dist/engine/localization.js +212 -0
  121. package/dist/engine/privacy/policies.d.ts +58 -0
  122. package/dist/engine/privacy/policies.d.ts.map +1 -0
  123. package/dist/engine/privacy/policies.js +191 -0
  124. package/dist/engine/privacy/privacy.service.d.ts +78 -0
  125. package/dist/engine/privacy/privacy.service.d.ts.map +1 -0
  126. package/dist/engine/privacy/privacy.service.js +138 -0
  127. package/dist/engine/privacy.service.d.ts.map +1 -1
  128. package/dist/engine/query/active-clause.d.ts +19 -0
  129. package/dist/engine/query/active-clause.d.ts.map +1 -0
  130. package/dist/engine/query/active-clause.js +27 -0
  131. package/dist/engine/query/query.d.ts +36 -0
  132. package/dist/engine/query/query.d.ts.map +1 -0
  133. package/dist/engine/query/query.js +393 -0
  134. package/dist/engine/query/relations.d.ts +28 -0
  135. package/dist/engine/query/relations.d.ts.map +1 -0
  136. package/dist/engine/query/relations.js +25 -0
  137. package/dist/engine/query/serialize.d.ts +22 -0
  138. package/dist/engine/query/serialize.d.ts.map +1 -0
  139. package/dist/engine/query/serialize.js +175 -0
  140. package/dist/engine/schema-fingerprint.d.ts +73 -0
  141. package/dist/engine/schema-fingerprint.d.ts.map +1 -0
  142. package/dist/engine/schema-fingerprint.js +97 -0
  143. package/dist/engine/seed-registry.d.ts.map +1 -1
  144. package/dist/engine/seeds/candidate-ids.d.ts +14 -0
  145. package/dist/engine/seeds/candidate-ids.d.ts.map +1 -0
  146. package/dist/engine/seeds/candidate-ids.js +40 -0
  147. package/dist/engine/seeds/define-seed.d.ts +3 -0
  148. package/dist/engine/seeds/define-seed.d.ts.map +1 -0
  149. package/dist/engine/seeds/define-seed.js +5 -0
  150. package/dist/engine/seeds/seed-definition-diff.d.ts +38 -0
  151. package/dist/engine/seeds/seed-definition-diff.d.ts.map +1 -0
  152. package/dist/engine/seeds/seed-definition-diff.js +51 -0
  153. package/dist/engine/seeds/seed-registry.d.ts +88 -0
  154. package/dist/engine/seeds/seed-registry.d.ts.map +1 -0
  155. package/dist/engine/seeds/seed-registry.js +194 -0
  156. package/dist/engine/seeds/seed-types-generator.d.ts +25 -0
  157. package/dist/engine/seeds/seed-types-generator.d.ts.map +1 -0
  158. package/dist/engine/seeds/seed-types-generator.js +116 -0
  159. package/dist/engine/seeds/seed-validation.d.ts +35 -0
  160. package/dist/engine/seeds/seed-validation.d.ts.map +1 -0
  161. package/dist/engine/seeds/seed-validation.js +384 -0
  162. package/dist/engine/seeds/seeds.d.ts +20 -0
  163. package/dist/engine/seeds/seeds.d.ts.map +1 -0
  164. package/dist/engine/seeds/seeds.js +21 -0
  165. package/dist/engine/seeds/tag-migration.d.ts +73 -0
  166. package/dist/engine/seeds/tag-migration.d.ts.map +1 -0
  167. package/dist/engine/seeds/tag-migration.js +212 -0
  168. package/dist/engine/seeds/tag-options.d.ts +15 -0
  169. package/dist/engine/seeds/tag-options.d.ts.map +1 -0
  170. package/dist/engine/seeds/tag-options.js +111 -0
  171. package/dist/engine/seeds/tag-value.d.ts +31 -0
  172. package/dist/engine/seeds/tag-value.d.ts.map +1 -0
  173. package/dist/engine/seeds/tag-value.js +51 -0
  174. package/dist/engine/types.d.ts +59 -7
  175. package/dist/engine/types.d.ts.map +1 -1
  176. package/dist/engine/validation/cache.d.ts.map +1 -1
  177. package/dist/engine/validation/cache.js +20 -4
  178. package/dist/engine/validation/emptiness.d.ts +12 -0
  179. package/dist/engine/validation/emptiness.d.ts.map +1 -0
  180. package/dist/engine/validation/emptiness.js +33 -0
  181. package/dist/engine/validation/index.d.ts +11 -0
  182. package/dist/engine/validation/index.d.ts.map +1 -1
  183. package/dist/engine/validation/index.js +29 -33
  184. package/dist/engine/validation/primitives.d.ts +12 -0
  185. package/dist/engine/validation/primitives.d.ts.map +1 -1
  186. package/dist/engine/validation/primitives.js +22 -0
  187. package/dist/engine/validation/richtext-sanitizer.d.ts +9 -1
  188. package/dist/engine/validation/richtext-sanitizer.d.ts.map +1 -1
  189. package/dist/engine/validation/richtext-sanitizer.js +36 -7
  190. package/dist/engine/validation/schema-builders.d.ts +16 -0
  191. package/dist/engine/validation/schema-builders.d.ts.map +1 -1
  192. package/dist/engine/validation/schema-builders.js +125 -18
  193. package/dist/engine.d.ts +144 -0
  194. package/dist/engine.d.ts.map +1 -0
  195. package/dist/engine.js +741 -0
  196. package/dist/file-types.d.ts +13 -0
  197. package/dist/file-types.d.ts.map +1 -0
  198. package/dist/file-types.js +85 -0
  199. package/dist/hooks.d.ts +29 -0
  200. package/dist/hooks.d.ts.map +1 -0
  201. package/dist/hooks.js +3 -0
  202. package/dist/id-generator.d.ts +26 -0
  203. package/dist/id-generator.d.ts.map +1 -0
  204. package/dist/id-generator.js +12 -0
  205. package/dist/idempotency.repository.d.ts +13 -0
  206. package/dist/idempotency.repository.d.ts.map +1 -0
  207. package/dist/idempotency.repository.js +3 -0
  208. package/dist/index.d.ts +34 -11
  209. package/dist/index.d.ts.map +1 -1
  210. package/dist/index.js +34 -11
  211. package/dist/kanban-position.repository.d.ts +19 -0
  212. package/dist/kanban-position.repository.d.ts.map +1 -0
  213. package/dist/kanban-position.repository.js +3 -0
  214. package/dist/kanban.d.ts +75 -0
  215. package/dist/kanban.d.ts.map +1 -0
  216. package/dist/kanban.js +82 -0
  217. package/dist/layout-permissions.d.ts +3 -0
  218. package/dist/layout-permissions.d.ts.map +1 -0
  219. package/dist/layout-permissions.js +11 -0
  220. package/dist/media/file-types.d.ts +12 -0
  221. package/dist/media/file-types.d.ts.map +1 -1
  222. package/dist/media/file-types.js +24 -4
  223. package/dist/media/image-transformer.d.ts +34 -0
  224. package/dist/media/image-transformer.d.ts.map +1 -0
  225. package/dist/media/image-transformer.js +3 -0
  226. package/dist/media/magic-bytes.d.ts.map +1 -1
  227. package/dist/media/magic-bytes.js +19 -9
  228. package/dist/media/media-transform.d.ts +92 -0
  229. package/dist/media/media-transform.d.ts.map +1 -0
  230. package/dist/media/media-transform.js +197 -0
  231. package/dist/media/media.repository.d.ts +5 -0
  232. package/dist/media/media.repository.d.ts.map +1 -1
  233. package/dist/media.repository.d.ts +61 -0
  234. package/dist/media.repository.d.ts.map +1 -0
  235. package/dist/media.repository.js +3 -0
  236. package/dist/notifications/notification.repository.d.ts +11 -2
  237. package/dist/notifications/notification.repository.d.ts.map +1 -1
  238. package/dist/oauth/authorization-code.repository.d.ts +10 -5
  239. package/dist/oauth/authorization-code.repository.d.ts.map +1 -1
  240. package/dist/oauth/role-guard.d.ts +30 -11
  241. package/dist/oauth/role-guard.d.ts.map +1 -1
  242. package/dist/oauth/role-guard.js +27 -5
  243. package/dist/oauth/token.repository.d.ts +2 -0
  244. package/dist/oauth/token.repository.d.ts.map +1 -1
  245. package/dist/policies.d.ts +10 -0
  246. package/dist/policies.d.ts.map +1 -0
  247. package/dist/policies.js +33 -0
  248. package/dist/queue/queue.interface.d.ts +9 -1
  249. package/dist/queue/queue.interface.d.ts.map +1 -1
  250. package/dist/queue/queue.stub.d.ts +1 -1
  251. package/dist/queue/queue.stub.d.ts.map +1 -1
  252. package/dist/queue/queue.stub.js +2 -3
  253. package/dist/queue.interface.d.ts +39 -0
  254. package/dist/queue.interface.d.ts.map +1 -0
  255. package/dist/queue.interface.js +3 -0
  256. package/dist/queue.stub.d.ts +6 -0
  257. package/dist/queue.stub.d.ts.map +1 -0
  258. package/dist/queue.stub.js +8 -0
  259. package/dist/rate-limit/token-bucket-rate-limiter.d.ts +7 -0
  260. package/dist/rate-limit/token-bucket-rate-limiter.d.ts.map +1 -1
  261. package/dist/rate-limit/token-bucket-rate-limiter.js +66 -0
  262. package/dist/rbac/evaluate.d.ts +57 -0
  263. package/dist/rbac/evaluate.d.ts.map +1 -0
  264. package/dist/rbac/evaluate.js +113 -0
  265. package/dist/rbac/invitation.repository.d.ts +84 -0
  266. package/dist/rbac/invitation.repository.d.ts.map +1 -0
  267. package/dist/rbac/invitation.repository.js +3 -0
  268. package/dist/rbac/permissions.d.ts +39 -0
  269. package/dist/rbac/permissions.d.ts.map +1 -0
  270. package/dist/rbac/permissions.js +43 -0
  271. package/dist/rbac/types.d.ts +130 -0
  272. package/dist/rbac/types.d.ts.map +1 -0
  273. package/dist/rbac/types.js +4 -0
  274. package/dist/relations.d.ts +28 -0
  275. package/dist/relations.d.ts.map +1 -0
  276. package/dist/relations.js +25 -0
  277. package/dist/richtext-render.d.ts +11 -0
  278. package/dist/richtext-render.d.ts.map +1 -0
  279. package/dist/richtext-render.js +87 -0
  280. package/dist/richtext.d.ts +11 -0
  281. package/dist/richtext.d.ts.map +1 -0
  282. package/dist/richtext.js +13 -0
  283. package/dist/scheduler.interface.d.ts +4 -0
  284. package/dist/scheduler.interface.d.ts.map +1 -0
  285. package/dist/scheduler.interface.js +3 -0
  286. package/dist/scheduler.stub.d.ts +5 -0
  287. package/dist/scheduler.stub.d.ts.map +1 -0
  288. package/dist/scheduler.stub.js +7 -0
  289. package/dist/schema/canonical.d.ts +15 -0
  290. package/dist/schema/canonical.d.ts.map +1 -0
  291. package/dist/schema/canonical.js +37 -0
  292. package/dist/schema/define.d.ts +42 -0
  293. package/dist/schema/define.d.ts.map +1 -0
  294. package/dist/schema/define.js +56 -0
  295. package/dist/schema/emit.d.ts +14 -0
  296. package/dist/schema/emit.d.ts.map +1 -0
  297. package/dist/schema/emit.js +43 -0
  298. package/dist/schema/index.d.ts +12 -0
  299. package/dist/schema/index.d.ts.map +1 -0
  300. package/dist/schema/index.js +13 -0
  301. package/dist/schema/manifest-seeds.d.ts +12 -0
  302. package/dist/schema/manifest-seeds.d.ts.map +1 -0
  303. package/dist/schema/manifest-seeds.js +48 -0
  304. package/dist/schema/manifest-validation.d.ts +13 -0
  305. package/dist/schema/manifest-validation.d.ts.map +1 -0
  306. package/dist/schema/manifest-validation.js +41 -0
  307. package/dist/schema/manifest.types.d.ts +54 -0
  308. package/dist/schema/manifest.types.d.ts.map +1 -0
  309. package/dist/schema/manifest.types.js +7 -0
  310. package/dist/schema-mutator.d.ts +26 -0
  311. package/dist/schema-mutator.d.ts.map +1 -0
  312. package/dist/schema-mutator.js +3 -0
  313. package/dist/search/search.repository.d.ts +5 -4
  314. package/dist/search/search.repository.d.ts.map +1 -1
  315. package/dist/search/vector-extractor.d.ts.map +1 -1
  316. package/dist/search/vector-extractor.js +23 -2
  317. package/dist/search/vector.repository.d.ts +2 -1
  318. package/dist/search/vector.repository.d.ts.map +1 -1
  319. package/dist/security/time-trap-token.repository.d.ts +5 -3
  320. package/dist/security/time-trap-token.repository.d.ts.map +1 -1
  321. package/dist/seed-ddl-destructive.d.ts +40 -0
  322. package/dist/seed-ddl-destructive.d.ts.map +1 -0
  323. package/dist/seed-ddl-destructive.js +149 -0
  324. package/dist/seed-ddl.d.ts +40 -0
  325. package/dist/seed-ddl.d.ts.map +1 -0
  326. package/dist/seed-ddl.js +100 -0
  327. package/dist/seed-layout.d.ts +145 -0
  328. package/dist/seed-layout.d.ts.map +1 -0
  329. package/dist/seed-layout.js +192 -0
  330. package/dist/seed-layout.repository.d.ts +22 -0
  331. package/dist/seed-layout.repository.d.ts.map +1 -0
  332. package/dist/seed-layout.repository.js +3 -0
  333. package/dist/seed-registry.d.ts +71 -0
  334. package/dist/seed-registry.d.ts.map +1 -0
  335. package/dist/seed-registry.js +143 -0
  336. package/dist/seed-types-generator.d.ts +1 -1
  337. package/dist/seed-types-generator.d.ts.map +1 -1
  338. package/dist/seed-validation.d.ts +23 -0
  339. package/dist/seed-validation.d.ts.map +1 -0
  340. package/dist/seed-validation.js +224 -0
  341. package/dist/seed.repository.d.ts +37 -0
  342. package/dist/seed.repository.d.ts.map +1 -0
  343. package/dist/seed.repository.js +3 -0
  344. package/dist/seeds.d.ts +20 -0
  345. package/dist/seeds.d.ts.map +1 -0
  346. package/dist/seeds.js +21 -0
  347. package/dist/settings/site-settings.repository.d.ts +8 -0
  348. package/dist/settings/site-settings.repository.d.ts.map +1 -1
  349. package/dist/site-settings.repository.d.ts +16 -0
  350. package/dist/site-settings.repository.d.ts.map +1 -0
  351. package/dist/site-settings.repository.js +3 -0
  352. package/dist/slug-utils.d.ts +18 -0
  353. package/dist/slug-utils.d.ts.map +1 -0
  354. package/dist/slug-utils.js +32 -0
  355. package/dist/storage.d.ts +46 -0
  356. package/dist/storage.d.ts.map +1 -0
  357. package/dist/storage.js +3 -0
  358. package/dist/transfer/csv.d.ts +34 -0
  359. package/dist/transfer/csv.d.ts.map +1 -0
  360. package/dist/transfer/csv.js +135 -0
  361. package/dist/transfer/flat-seed.d.ts +13 -0
  362. package/dist/transfer/flat-seed.d.ts.map +1 -0
  363. package/dist/transfer/flat-seed.js +50 -0
  364. package/dist/transfer/index.d.ts +7 -0
  365. package/dist/transfer/index.d.ts.map +1 -0
  366. package/dist/transfer/index.js +8 -0
  367. package/dist/transfer/ndjson.d.ts +25 -0
  368. package/dist/transfer/ndjson.d.ts.map +1 -0
  369. package/dist/transfer/ndjson.js +62 -0
  370. package/dist/transfer/row-mapping.d.ts +36 -0
  371. package/dist/transfer/row-mapping.d.ts.map +1 -0
  372. package/dist/transfer/row-mapping.js +97 -0
  373. package/dist/transfer/transfer.constants.d.ts +20 -0
  374. package/dist/transfer/transfer.constants.d.ts.map +1 -0
  375. package/dist/transfer/transfer.constants.js +21 -0
  376. package/dist/transfer/transfer.types.d.ts +46 -0
  377. package/dist/transfer/transfer.types.d.ts.map +1 -0
  378. package/dist/transfer/transfer.types.js +6 -0
  379. package/dist/types.d.ts +243 -0
  380. package/dist/types.d.ts.map +1 -0
  381. package/dist/types.js +3 -0
  382. package/dist/validation.d.ts +50 -0
  383. package/dist/validation.d.ts.map +1 -0
  384. package/dist/validation.js +660 -0
  385. package/dist/webhook-validation.d.ts +3 -0
  386. package/dist/webhook-validation.d.ts.map +1 -0
  387. package/dist/webhook-validation.js +6 -0
  388. package/package.json +11 -6
  389. package/dist/.tsbuildinfo +0 -1
@@ -0,0 +1,757 @@
1
+ import { z } from 'zod';
2
+ import type { Seed } from '../engine/types.js';
3
+ import { type DashboardView } from './view-authorization.js';
4
+ /** Zod needs a tuple. Kept equal to AUTHORIZABLE_VIEWS by content-view.test.ts. */
5
+ export declare const VIEW_TYPE_IDS: readonly ["table", "gallery", "kanban"];
6
+ export declare const VIEW_SYSTEM_COLUMNS: readonly ["slug", "status", "created_at", "updated_at"];
7
+ export type ViewSystemColumn = (typeof VIEW_SYSTEM_COLUMNS)[number];
8
+ export declare const viewColumnRefSchema: z.ZodUnion<readonly [z.ZodEnum<{
9
+ slug: "slug";
10
+ status: "status";
11
+ created_at: "created_at";
12
+ updated_at: "updated_at";
13
+ }>, z.ZodString]>;
14
+ export type ViewColumnRef = z.infer<typeof viewColumnRefSchema>;
15
+ /** Mirrors the dashboard toolbar operator set (apps/dashboard/src/lib/filter-dsl.ts). */
16
+ export declare const VIEW_FILTER_OPERATORS: readonly ["eq", "gt", "gte", "lt", "lte", "contains", "is_empty", "is_not_empty"];
17
+ /** Mirrors MAX_CONDITIONS_PER_FILTER in the dashboard toolbar. */
18
+ export declare const MAX_VIEW_CONDITIONS = 3;
19
+ export declare const viewConditionSchema: z.ZodObject<{
20
+ op: z.ZodEnum<{
21
+ eq: "eq";
22
+ gt: "gt";
23
+ gte: "gte";
24
+ lt: "lt";
25
+ lte: "lte";
26
+ contains: "contains";
27
+ is_empty: "is_empty";
28
+ is_not_empty: "is_not_empty";
29
+ }>;
30
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
31
+ }, z.core.$strip>;
32
+ export declare const viewFilterSchema: z.ZodObject<{
33
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
34
+ slug: "slug";
35
+ status: "status";
36
+ created_at: "created_at";
37
+ updated_at: "updated_at";
38
+ }>, z.ZodString]>;
39
+ conditions: z.ZodArray<z.ZodObject<{
40
+ op: z.ZodEnum<{
41
+ eq: "eq";
42
+ gt: "gt";
43
+ gte: "gte";
44
+ lt: "lt";
45
+ lte: "lte";
46
+ contains: "contains";
47
+ is_empty: "is_empty";
48
+ is_not_empty: "is_not_empty";
49
+ }>;
50
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
51
+ }, z.core.$strip>>;
52
+ }, z.core.$strip>;
53
+ export declare const viewSortSchema: z.ZodObject<{
54
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
55
+ slug: "slug";
56
+ status: "status";
57
+ created_at: "created_at";
58
+ updated_at: "updated_at";
59
+ }>, z.ZodString]>;
60
+ desc: z.ZodBoolean;
61
+ }, z.core.$strip>;
62
+ export declare const viewGroupBySchema: z.ZodObject<{
63
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
64
+ slug: "slug";
65
+ status: "status";
66
+ created_at: "created_at";
67
+ updated_at: "updated_at";
68
+ }>, z.ZodString]>;
69
+ datePrecision: z.ZodOptional<z.ZodObject<{
70
+ year: z.ZodBoolean;
71
+ month: z.ZodBoolean;
72
+ day: z.ZodBoolean;
73
+ }, z.core.$strip>>;
74
+ }, z.core.$strip>;
75
+ export declare const VIEW_DENSITIES: readonly ["compact", "normal", "comfortable"];
76
+ export declare const viewAppearanceSchema: z.ZodObject<{
77
+ density: z.ZodOptional<z.ZodEnum<{
78
+ compact: "compact";
79
+ normal: "normal";
80
+ comfortable: "comfortable";
81
+ }>>;
82
+ hiddenColumns: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
83
+ slug: "slug";
84
+ status: "status";
85
+ created_at: "created_at";
86
+ updated_at: "updated_at";
87
+ }>, z.ZodString]>>>;
88
+ columnOrder: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
89
+ slug: "slug";
90
+ status: "status";
91
+ created_at: "created_at";
92
+ updated_at: "updated_at";
93
+ }>, z.ZodString]>>>;
94
+ pageSize: z.ZodOptional<z.ZodNumber>;
95
+ }, z.core.$strip>;
96
+ export declare const VIEW_FORMAT_TONES: readonly ["neutral", "info", "success", "warning", "danger"];
97
+ /**
98
+ * View-neutral targets: `element` is the whole row (Table) or card (Gallery/Kanban), `field` is
99
+ * the intersection element × columnRef. The dashboard's legacy `row`/`cell` map 1:1 (Sprint 2).
100
+ */
101
+ export declare const VIEW_FORMAT_TARGETS: readonly ["element", "field"];
102
+ export declare const VIEW_TEXT_STYLES: readonly ["bold", "italic", "underline"];
103
+ export declare const viewConditionalFormatSchema: z.ZodObject<{
104
+ id: z.ZodString;
105
+ enabled: z.ZodBoolean;
106
+ priority: z.ZodNumber;
107
+ label: z.ZodOptional<z.ZodString>;
108
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
109
+ slug: "slug";
110
+ status: "status";
111
+ created_at: "created_at";
112
+ updated_at: "updated_at";
113
+ }>, z.ZodString]>;
114
+ conditions: z.ZodArray<z.ZodObject<{
115
+ op: z.ZodEnum<{
116
+ eq: "eq";
117
+ gt: "gt";
118
+ gte: "gte";
119
+ lt: "lt";
120
+ lte: "lte";
121
+ contains: "contains";
122
+ is_empty: "is_empty";
123
+ is_not_empty: "is_not_empty";
124
+ }>;
125
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
126
+ }, z.core.$strip>>;
127
+ tone: z.ZodEnum<{
128
+ success: "success";
129
+ neutral: "neutral";
130
+ info: "info";
131
+ warning: "warning";
132
+ danger: "danger";
133
+ }>;
134
+ target: z.ZodEnum<{
135
+ element: "element";
136
+ field: "field";
137
+ }>;
138
+ textStyles: z.ZodDefault<z.ZodArray<z.ZodEnum<{
139
+ bold: "bold";
140
+ italic: "italic";
141
+ underline: "underline";
142
+ }>>>;
143
+ }, z.core.$strip>;
144
+ export declare const FOLDER_COLORS: readonly ["slate", "red", "orange", "amber", "green", "teal", "blue", "violet", "pink"];
145
+ export declare const FOLDER_ICONS: readonly ["Folder", "Star", "Heart", "Image", "Camera", "Calendar", "Tag", "Bookmark", "Home", "Gift", "Video", "Music", "Book", "Flag", "Briefcase", "Users", "Sun", "Crown"];
146
+ export declare const MAX_FOLDER_STYLES = 100;
147
+ /** Cosmetic override of one gallery folder. `label` and `description` are display-only: the folder's group value is untouched. */
148
+ export declare const folderStyleSchema: z.ZodObject<{
149
+ color: z.ZodOptional<z.ZodEnum<{
150
+ slate: "slate";
151
+ red: "red";
152
+ orange: "orange";
153
+ amber: "amber";
154
+ green: "green";
155
+ teal: "teal";
156
+ blue: "blue";
157
+ violet: "violet";
158
+ pink: "pink";
159
+ }>>;
160
+ icon: z.ZodOptional<z.ZodEnum<{
161
+ Folder: "Folder";
162
+ Star: "Star";
163
+ Heart: "Heart";
164
+ Image: "Image";
165
+ Camera: "Camera";
166
+ Calendar: "Calendar";
167
+ Tag: "Tag";
168
+ Bookmark: "Bookmark";
169
+ Home: "Home";
170
+ Gift: "Gift";
171
+ Video: "Video";
172
+ Music: "Music";
173
+ Book: "Book";
174
+ Flag: "Flag";
175
+ Briefcase: "Briefcase";
176
+ Users: "Users";
177
+ Sun: "Sun";
178
+ Crown: "Crown";
179
+ }>>;
180
+ label: z.ZodOptional<z.ZodString>;
181
+ description: z.ZodOptional<z.ZodString>;
182
+ }, z.core.$strip>;
183
+ export type FolderStyle = z.output<typeof folderStyleSchema>;
184
+ /**
185
+ * Persisted per-instance configuration. Every key has a default, so `{}` parses into a complete
186
+ * config, and a stored row written by an older dashboard reads back fully shaped. Unknown keys
187
+ * are stripped (zod default), never rejected.
188
+ */
189
+ export declare const contentViewConfigSchema: z.ZodObject<{
190
+ filters: z.ZodDefault<z.ZodArray<z.ZodObject<{
191
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
192
+ slug: "slug";
193
+ status: "status";
194
+ created_at: "created_at";
195
+ updated_at: "updated_at";
196
+ }>, z.ZodString]>;
197
+ conditions: z.ZodArray<z.ZodObject<{
198
+ op: z.ZodEnum<{
199
+ eq: "eq";
200
+ gt: "gt";
201
+ gte: "gte";
202
+ lt: "lt";
203
+ lte: "lte";
204
+ contains: "contains";
205
+ is_empty: "is_empty";
206
+ is_not_empty: "is_not_empty";
207
+ }>;
208
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
209
+ }, z.core.$strip>>;
210
+ }, z.core.$strip>>>;
211
+ sort: z.ZodDefault<z.ZodNullable<z.ZodObject<{
212
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
213
+ slug: "slug";
214
+ status: "status";
215
+ created_at: "created_at";
216
+ updated_at: "updated_at";
217
+ }>, z.ZodString]>;
218
+ desc: z.ZodBoolean;
219
+ }, z.core.$strip>>>;
220
+ groupBy: z.ZodDefault<z.ZodNullable<z.ZodObject<{
221
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
222
+ slug: "slug";
223
+ status: "status";
224
+ created_at: "created_at";
225
+ updated_at: "updated_at";
226
+ }>, z.ZodString]>;
227
+ datePrecision: z.ZodOptional<z.ZodObject<{
228
+ year: z.ZodBoolean;
229
+ month: z.ZodBoolean;
230
+ day: z.ZodBoolean;
231
+ }, z.core.$strip>>;
232
+ }, z.core.$strip>>>;
233
+ appearance: z.ZodDefault<z.ZodObject<{
234
+ density: z.ZodOptional<z.ZodEnum<{
235
+ compact: "compact";
236
+ normal: "normal";
237
+ comfortable: "comfortable";
238
+ }>>;
239
+ hiddenColumns: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
240
+ slug: "slug";
241
+ status: "status";
242
+ created_at: "created_at";
243
+ updated_at: "updated_at";
244
+ }>, z.ZodString]>>>;
245
+ columnOrder: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
246
+ slug: "slug";
247
+ status: "status";
248
+ created_at: "created_at";
249
+ updated_at: "updated_at";
250
+ }>, z.ZodString]>>>;
251
+ pageSize: z.ZodOptional<z.ZodNumber>;
252
+ }, z.core.$strip>>;
253
+ conditionalFormats: z.ZodDefault<z.ZodArray<z.ZodObject<{
254
+ id: z.ZodString;
255
+ enabled: z.ZodBoolean;
256
+ priority: z.ZodNumber;
257
+ label: z.ZodOptional<z.ZodString>;
258
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
259
+ slug: "slug";
260
+ status: "status";
261
+ created_at: "created_at";
262
+ updated_at: "updated_at";
263
+ }>, z.ZodString]>;
264
+ conditions: z.ZodArray<z.ZodObject<{
265
+ op: z.ZodEnum<{
266
+ eq: "eq";
267
+ gt: "gt";
268
+ gte: "gte";
269
+ lt: "lt";
270
+ lte: "lte";
271
+ contains: "contains";
272
+ is_empty: "is_empty";
273
+ is_not_empty: "is_not_empty";
274
+ }>;
275
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
276
+ }, z.core.$strip>>;
277
+ tone: z.ZodEnum<{
278
+ success: "success";
279
+ neutral: "neutral";
280
+ info: "info";
281
+ warning: "warning";
282
+ danger: "danger";
283
+ }>;
284
+ target: z.ZodEnum<{
285
+ element: "element";
286
+ field: "field";
287
+ }>;
288
+ textStyles: z.ZodDefault<z.ZodArray<z.ZodEnum<{
289
+ bold: "bold";
290
+ italic: "italic";
291
+ underline: "underline";
292
+ }>>>;
293
+ }, z.core.$strip>>>;
294
+ kanban: z.ZodOptional<z.ZodObject<{
295
+ axisBranchId: z.ZodNullable<z.ZodString>;
296
+ sort: z.ZodNullable<z.ZodObject<{
297
+ branchId: z.ZodString;
298
+ dir: z.ZodEnum<{
299
+ ASC: "ASC";
300
+ DESC: "DESC";
301
+ }>;
302
+ }, z.core.$strip>>;
303
+ hiddenColumnValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
304
+ collapsedColumnValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
305
+ }, z.core.$strip>>;
306
+ card: z.ZodOptional<z.ZodObject<{
307
+ version: z.ZodLiteral<1>;
308
+ media: z.ZodOptional<z.ZodNullable<z.ZodObject<{
309
+ branchId: z.ZodString;
310
+ }, z.core.$strip>>>;
311
+ header: z.ZodOptional<z.ZodNullable<z.ZodObject<{
312
+ branchId: z.ZodString;
313
+ }, z.core.$strip>>>;
314
+ subtitle: z.ZodOptional<z.ZodNullable<z.ZodObject<{
315
+ branchId: z.ZodString;
316
+ }, z.core.$strip>>>;
317
+ metadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
318
+ branchId: z.ZodString;
319
+ }, z.core.$strip>>>;
320
+ }, z.core.$strip>>;
321
+ folders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
322
+ color: z.ZodOptional<z.ZodEnum<{
323
+ slate: "slate";
324
+ red: "red";
325
+ orange: "orange";
326
+ amber: "amber";
327
+ green: "green";
328
+ teal: "teal";
329
+ blue: "blue";
330
+ violet: "violet";
331
+ pink: "pink";
332
+ }>>;
333
+ icon: z.ZodOptional<z.ZodEnum<{
334
+ Folder: "Folder";
335
+ Star: "Star";
336
+ Heart: "Heart";
337
+ Image: "Image";
338
+ Camera: "Camera";
339
+ Calendar: "Calendar";
340
+ Tag: "Tag";
341
+ Bookmark: "Bookmark";
342
+ Home: "Home";
343
+ Gift: "Gift";
344
+ Video: "Video";
345
+ Music: "Music";
346
+ Book: "Book";
347
+ Flag: "Flag";
348
+ Briefcase: "Briefcase";
349
+ Users: "Users";
350
+ Sun: "Sun";
351
+ Crown: "Crown";
352
+ }>>;
353
+ label: z.ZodOptional<z.ZodString>;
354
+ description: z.ZodOptional<z.ZodString>;
355
+ }, z.core.$strip>>>;
356
+ }, z.core.$strip>;
357
+ export type ContentViewConfig = z.output<typeof contentViewConfigSchema>;
358
+ export type ViewFilter = z.output<typeof viewFilterSchema>;
359
+ export type ViewConditionalFormat = z.output<typeof viewConditionalFormatSchema>;
360
+ export declare function emptyViewConfig(): ContentViewConfig;
361
+ export declare const VIEW_TITLE_MAX_LENGTH = 60;
362
+ /** Trimmed. Empty or whitespace-only collapses to null, which means "render the translated type label". */
363
+ export declare const viewTitleSchema: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
364
+ export declare const createContentViewInputSchema: z.ZodObject<{
365
+ type: z.ZodEnum<{
366
+ table: "table";
367
+ gallery: "gallery";
368
+ kanban: "kanban";
369
+ }>;
370
+ title: z.ZodOptional<z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>>;
371
+ config: z.ZodOptional<z.ZodObject<{
372
+ filters: z.ZodDefault<z.ZodArray<z.ZodObject<{
373
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
374
+ slug: "slug";
375
+ status: "status";
376
+ created_at: "created_at";
377
+ updated_at: "updated_at";
378
+ }>, z.ZodString]>;
379
+ conditions: z.ZodArray<z.ZodObject<{
380
+ op: z.ZodEnum<{
381
+ eq: "eq";
382
+ gt: "gt";
383
+ gte: "gte";
384
+ lt: "lt";
385
+ lte: "lte";
386
+ contains: "contains";
387
+ is_empty: "is_empty";
388
+ is_not_empty: "is_not_empty";
389
+ }>;
390
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
391
+ }, z.core.$strip>>;
392
+ }, z.core.$strip>>>;
393
+ sort: z.ZodDefault<z.ZodNullable<z.ZodObject<{
394
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
395
+ slug: "slug";
396
+ status: "status";
397
+ created_at: "created_at";
398
+ updated_at: "updated_at";
399
+ }>, z.ZodString]>;
400
+ desc: z.ZodBoolean;
401
+ }, z.core.$strip>>>;
402
+ groupBy: z.ZodDefault<z.ZodNullable<z.ZodObject<{
403
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
404
+ slug: "slug";
405
+ status: "status";
406
+ created_at: "created_at";
407
+ updated_at: "updated_at";
408
+ }>, z.ZodString]>;
409
+ datePrecision: z.ZodOptional<z.ZodObject<{
410
+ year: z.ZodBoolean;
411
+ month: z.ZodBoolean;
412
+ day: z.ZodBoolean;
413
+ }, z.core.$strip>>;
414
+ }, z.core.$strip>>>;
415
+ appearance: z.ZodDefault<z.ZodObject<{
416
+ density: z.ZodOptional<z.ZodEnum<{
417
+ compact: "compact";
418
+ normal: "normal";
419
+ comfortable: "comfortable";
420
+ }>>;
421
+ hiddenColumns: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
422
+ slug: "slug";
423
+ status: "status";
424
+ created_at: "created_at";
425
+ updated_at: "updated_at";
426
+ }>, z.ZodString]>>>;
427
+ columnOrder: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
428
+ slug: "slug";
429
+ status: "status";
430
+ created_at: "created_at";
431
+ updated_at: "updated_at";
432
+ }>, z.ZodString]>>>;
433
+ pageSize: z.ZodOptional<z.ZodNumber>;
434
+ }, z.core.$strip>>;
435
+ conditionalFormats: z.ZodDefault<z.ZodArray<z.ZodObject<{
436
+ id: z.ZodString;
437
+ enabled: z.ZodBoolean;
438
+ priority: z.ZodNumber;
439
+ label: z.ZodOptional<z.ZodString>;
440
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
441
+ slug: "slug";
442
+ status: "status";
443
+ created_at: "created_at";
444
+ updated_at: "updated_at";
445
+ }>, z.ZodString]>;
446
+ conditions: z.ZodArray<z.ZodObject<{
447
+ op: z.ZodEnum<{
448
+ eq: "eq";
449
+ gt: "gt";
450
+ gte: "gte";
451
+ lt: "lt";
452
+ lte: "lte";
453
+ contains: "contains";
454
+ is_empty: "is_empty";
455
+ is_not_empty: "is_not_empty";
456
+ }>;
457
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
458
+ }, z.core.$strip>>;
459
+ tone: z.ZodEnum<{
460
+ success: "success";
461
+ neutral: "neutral";
462
+ info: "info";
463
+ warning: "warning";
464
+ danger: "danger";
465
+ }>;
466
+ target: z.ZodEnum<{
467
+ element: "element";
468
+ field: "field";
469
+ }>;
470
+ textStyles: z.ZodDefault<z.ZodArray<z.ZodEnum<{
471
+ bold: "bold";
472
+ italic: "italic";
473
+ underline: "underline";
474
+ }>>>;
475
+ }, z.core.$strip>>>;
476
+ kanban: z.ZodOptional<z.ZodObject<{
477
+ axisBranchId: z.ZodNullable<z.ZodString>;
478
+ sort: z.ZodNullable<z.ZodObject<{
479
+ branchId: z.ZodString;
480
+ dir: z.ZodEnum<{
481
+ ASC: "ASC";
482
+ DESC: "DESC";
483
+ }>;
484
+ }, z.core.$strip>>;
485
+ hiddenColumnValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
486
+ collapsedColumnValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
487
+ }, z.core.$strip>>;
488
+ card: z.ZodOptional<z.ZodObject<{
489
+ version: z.ZodLiteral<1>;
490
+ media: z.ZodOptional<z.ZodNullable<z.ZodObject<{
491
+ branchId: z.ZodString;
492
+ }, z.core.$strip>>>;
493
+ header: z.ZodOptional<z.ZodNullable<z.ZodObject<{
494
+ branchId: z.ZodString;
495
+ }, z.core.$strip>>>;
496
+ subtitle: z.ZodOptional<z.ZodNullable<z.ZodObject<{
497
+ branchId: z.ZodString;
498
+ }, z.core.$strip>>>;
499
+ metadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
500
+ branchId: z.ZodString;
501
+ }, z.core.$strip>>>;
502
+ }, z.core.$strip>>;
503
+ folders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
504
+ color: z.ZodOptional<z.ZodEnum<{
505
+ slate: "slate";
506
+ red: "red";
507
+ orange: "orange";
508
+ amber: "amber";
509
+ green: "green";
510
+ teal: "teal";
511
+ blue: "blue";
512
+ violet: "violet";
513
+ pink: "pink";
514
+ }>>;
515
+ icon: z.ZodOptional<z.ZodEnum<{
516
+ Folder: "Folder";
517
+ Star: "Star";
518
+ Heart: "Heart";
519
+ Image: "Image";
520
+ Camera: "Camera";
521
+ Calendar: "Calendar";
522
+ Tag: "Tag";
523
+ Bookmark: "Bookmark";
524
+ Home: "Home";
525
+ Gift: "Gift";
526
+ Video: "Video";
527
+ Music: "Music";
528
+ Book: "Book";
529
+ Flag: "Flag";
530
+ Briefcase: "Briefcase";
531
+ Users: "Users";
532
+ Sun: "Sun";
533
+ Crown: "Crown";
534
+ }>>;
535
+ label: z.ZodOptional<z.ZodString>;
536
+ description: z.ZodOptional<z.ZodString>;
537
+ }, z.core.$strip>>>;
538
+ }, z.core.$strip>>;
539
+ }, z.core.$strip>;
540
+ export type CreateContentViewInput = z.output<typeof createContentViewInputSchema>;
541
+ export declare const updateContentViewInputSchema: z.ZodObject<{
542
+ title: z.ZodOptional<z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>>;
543
+ config: z.ZodOptional<z.ZodObject<{
544
+ filters: z.ZodDefault<z.ZodArray<z.ZodObject<{
545
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
546
+ slug: "slug";
547
+ status: "status";
548
+ created_at: "created_at";
549
+ updated_at: "updated_at";
550
+ }>, z.ZodString]>;
551
+ conditions: z.ZodArray<z.ZodObject<{
552
+ op: z.ZodEnum<{
553
+ eq: "eq";
554
+ gt: "gt";
555
+ gte: "gte";
556
+ lt: "lt";
557
+ lte: "lte";
558
+ contains: "contains";
559
+ is_empty: "is_empty";
560
+ is_not_empty: "is_not_empty";
561
+ }>;
562
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
563
+ }, z.core.$strip>>;
564
+ }, z.core.$strip>>>;
565
+ sort: z.ZodDefault<z.ZodNullable<z.ZodObject<{
566
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
567
+ slug: "slug";
568
+ status: "status";
569
+ created_at: "created_at";
570
+ updated_at: "updated_at";
571
+ }>, z.ZodString]>;
572
+ desc: z.ZodBoolean;
573
+ }, z.core.$strip>>>;
574
+ groupBy: z.ZodDefault<z.ZodNullable<z.ZodObject<{
575
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
576
+ slug: "slug";
577
+ status: "status";
578
+ created_at: "created_at";
579
+ updated_at: "updated_at";
580
+ }>, z.ZodString]>;
581
+ datePrecision: z.ZodOptional<z.ZodObject<{
582
+ year: z.ZodBoolean;
583
+ month: z.ZodBoolean;
584
+ day: z.ZodBoolean;
585
+ }, z.core.$strip>>;
586
+ }, z.core.$strip>>>;
587
+ appearance: z.ZodDefault<z.ZodObject<{
588
+ density: z.ZodOptional<z.ZodEnum<{
589
+ compact: "compact";
590
+ normal: "normal";
591
+ comfortable: "comfortable";
592
+ }>>;
593
+ hiddenColumns: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
594
+ slug: "slug";
595
+ status: "status";
596
+ created_at: "created_at";
597
+ updated_at: "updated_at";
598
+ }>, z.ZodString]>>>;
599
+ columnOrder: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
600
+ slug: "slug";
601
+ status: "status";
602
+ created_at: "created_at";
603
+ updated_at: "updated_at";
604
+ }>, z.ZodString]>>>;
605
+ pageSize: z.ZodOptional<z.ZodNumber>;
606
+ }, z.core.$strip>>;
607
+ conditionalFormats: z.ZodDefault<z.ZodArray<z.ZodObject<{
608
+ id: z.ZodString;
609
+ enabled: z.ZodBoolean;
610
+ priority: z.ZodNumber;
611
+ label: z.ZodOptional<z.ZodString>;
612
+ columnRef: z.ZodUnion<readonly [z.ZodEnum<{
613
+ slug: "slug";
614
+ status: "status";
615
+ created_at: "created_at";
616
+ updated_at: "updated_at";
617
+ }>, z.ZodString]>;
618
+ conditions: z.ZodArray<z.ZodObject<{
619
+ op: z.ZodEnum<{
620
+ eq: "eq";
621
+ gt: "gt";
622
+ gte: "gte";
623
+ lt: "lt";
624
+ lte: "lte";
625
+ contains: "contains";
626
+ is_empty: "is_empty";
627
+ is_not_empty: "is_not_empty";
628
+ }>;
629
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
630
+ }, z.core.$strip>>;
631
+ tone: z.ZodEnum<{
632
+ success: "success";
633
+ neutral: "neutral";
634
+ info: "info";
635
+ warning: "warning";
636
+ danger: "danger";
637
+ }>;
638
+ target: z.ZodEnum<{
639
+ element: "element";
640
+ field: "field";
641
+ }>;
642
+ textStyles: z.ZodDefault<z.ZodArray<z.ZodEnum<{
643
+ bold: "bold";
644
+ italic: "italic";
645
+ underline: "underline";
646
+ }>>>;
647
+ }, z.core.$strip>>>;
648
+ kanban: z.ZodOptional<z.ZodObject<{
649
+ axisBranchId: z.ZodNullable<z.ZodString>;
650
+ sort: z.ZodNullable<z.ZodObject<{
651
+ branchId: z.ZodString;
652
+ dir: z.ZodEnum<{
653
+ ASC: "ASC";
654
+ DESC: "DESC";
655
+ }>;
656
+ }, z.core.$strip>>;
657
+ hiddenColumnValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
658
+ collapsedColumnValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
659
+ }, z.core.$strip>>;
660
+ card: z.ZodOptional<z.ZodObject<{
661
+ version: z.ZodLiteral<1>;
662
+ media: z.ZodOptional<z.ZodNullable<z.ZodObject<{
663
+ branchId: z.ZodString;
664
+ }, z.core.$strip>>>;
665
+ header: z.ZodOptional<z.ZodNullable<z.ZodObject<{
666
+ branchId: z.ZodString;
667
+ }, z.core.$strip>>>;
668
+ subtitle: z.ZodOptional<z.ZodNullable<z.ZodObject<{
669
+ branchId: z.ZodString;
670
+ }, z.core.$strip>>>;
671
+ metadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
672
+ branchId: z.ZodString;
673
+ }, z.core.$strip>>>;
674
+ }, z.core.$strip>>;
675
+ folders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
676
+ color: z.ZodOptional<z.ZodEnum<{
677
+ slate: "slate";
678
+ red: "red";
679
+ orange: "orange";
680
+ amber: "amber";
681
+ green: "green";
682
+ teal: "teal";
683
+ blue: "blue";
684
+ violet: "violet";
685
+ pink: "pink";
686
+ }>>;
687
+ icon: z.ZodOptional<z.ZodEnum<{
688
+ Folder: "Folder";
689
+ Star: "Star";
690
+ Heart: "Heart";
691
+ Image: "Image";
692
+ Camera: "Camera";
693
+ Calendar: "Calendar";
694
+ Tag: "Tag";
695
+ Bookmark: "Bookmark";
696
+ Home: "Home";
697
+ Gift: "Gift";
698
+ Video: "Video";
699
+ Music: "Music";
700
+ Book: "Book";
701
+ Flag: "Flag";
702
+ Briefcase: "Briefcase";
703
+ Users: "Users";
704
+ Sun: "Sun";
705
+ Crown: "Crown";
706
+ }>>;
707
+ label: z.ZodOptional<z.ZodString>;
708
+ description: z.ZodOptional<z.ZodString>;
709
+ }, z.core.$strip>>>;
710
+ }, z.core.$strip>>;
711
+ }, z.core.$strip>;
712
+ export type UpdateContentViewInput = z.output<typeof updateContentViewInputSchema>;
713
+ export declare const reorderContentViewsInputSchema: z.ZodObject<{
714
+ ids: z.ZodArray<z.ZodString>;
715
+ }, z.core.$strip>;
716
+ /** The API shape. Timestamps are unix seconds, like every other system table. */
717
+ export interface ContentView {
718
+ id: string;
719
+ seedSlug: string;
720
+ type: DashboardView;
721
+ /** null → the client renders the translated label of `type`. */
722
+ title: string | null;
723
+ position: number;
724
+ config: ContentViewConfig;
725
+ createdAt: number;
726
+ updatedAt: number;
727
+ updatedBy: string;
728
+ }
729
+ /** Storage shape: `type` is unchecked text until projectContentView narrows it. */
730
+ export interface ContentViewRecord extends Omit<ContentView, 'type'> {
731
+ type: string;
732
+ }
733
+ /**
734
+ * Brief §2.10: `sort`, `groupBy` and `kanban.sort` may reference a `tags` branch only when it is single choice;
735
+ * `kanban.axisBranchId` may reference a `tags` branch only when it is a kanban axis candidate.
736
+ * One message per offending reference, in the order sort, groupBy, kanban axis, kanban sort; `[]` when valid.
737
+ * References to missing branches and to non-`tags` branches are not issues (cleanup handles them). Pure.
738
+ */
739
+ export declare function viewConfigChoiceIssues(config: ContentViewConfig, seed: Seed): string[];
740
+ /**
741
+ * Pure auto-cleanup, never an error: drops references to branches the seed no longer has,
742
+ * `sort`/`groupBy`/kanban sort on a multiple-choice `tags` branch,
743
+ * duplicate filters on one column, date precision on a non-date grouping, and the Kanban
744
+ * sub-config on a non-kanban instance and the card layout on a table instance. Same policy as validateCardConfigAgainstSeed.
745
+ */
746
+ export declare function validateViewConfigAgainstSeed(config: ContentViewConfig, seed: Seed, type: DashboardView): ContentViewConfig;
747
+ /** null when the seed's allow-list does not authorize the record's type (hidden, never deleted). */
748
+ export declare function projectContentView(record: ContentViewRecord, seed: Seed): ContentView | null;
749
+ /** Order-preserving. The caller passes records already sorted by position. */
750
+ export declare function projectContentViews(records: readonly ContentViewRecord[], seed: Seed): ContentView[];
751
+ /**
752
+ * The full position order of a seed's rows after its visible views were reordered. Hidden rows
753
+ * (types the allow-list currently rejects) keep their slot; visible slots are refilled in the
754
+ * requested order. Writing the result compacts positions to 0..n-1 with no duplicates.
755
+ */
756
+ export declare function mergeContentViewOrder(allIds: readonly string[], visibleOrder: readonly string[]): string[];
757
+ //# sourceMappingURL=content-view.d.ts.map