@kywi-software/core 0.5.0 → 0.6.1

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 (311) hide show
  1. package/README.md +44 -0
  2. package/dist/admin/app.d.ts.map +1 -1
  3. package/dist/admin/app.js.map +1 -1
  4. package/dist/admin/field-components.d.ts.map +1 -1
  5. package/dist/admin/field-components.js +55 -0
  6. package/dist/admin/field-components.js.map +1 -1
  7. package/dist/admin/form-builder.js +10 -1
  8. package/dist/admin/form-builder.js.map +1 -1
  9. package/dist/admin/form-helpers.d.ts +1 -1
  10. package/dist/admin/form-helpers.d.ts.map +1 -1
  11. package/dist/admin/form-helpers.js +21 -0
  12. package/dist/admin/form-helpers.js.map +1 -1
  13. package/dist/admin/layout-editor/component-actions.d.ts +43 -1
  14. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  15. package/dist/admin/layout-editor/component-actions.js +59 -1
  16. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  17. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  18. package/dist/admin/layout-editor/editor-canvas.js +1 -1
  19. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  20. package/dist/admin/layout-editor/editor-state.d.ts +4 -0
  21. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  22. package/dist/admin/layout-editor/editor-state.js +17 -0
  23. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  24. package/dist/admin/layout-editor/index.d.ts +1 -1
  25. package/dist/admin/layout-editor/index.d.ts.map +1 -1
  26. package/dist/admin/layout-editor/index.js +1 -1
  27. package/dist/admin/layout-editor/index.js.map +1 -1
  28. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  29. package/dist/admin/layout-editor/layout-editor.js +95 -2
  30. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  31. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  32. package/dist/admin/layout-editor/overlay-shell.js +8 -0
  33. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  34. package/dist/admin/layout-editor/props-panel.d.ts +12 -2
  35. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  36. package/dist/admin/layout-editor/props-panel.js +30 -14
  37. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  38. package/dist/admin/layout-editor/section-overlay.d.ts +6 -1
  39. package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
  40. package/dist/admin/layout-editor/section-overlay.js +11 -2
  41. package/dist/admin/layout-editor/section-overlay.js.map +1 -1
  42. package/dist/admin/layout-editor/section-template-picker.d.ts +8 -1
  43. package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
  44. package/dist/admin/layout-editor/section-template-picker.js +31 -2
  45. package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
  46. package/dist/admin/registry.d.ts +6 -6
  47. package/dist/admin/registry.d.ts.map +1 -1
  48. package/dist/admin/server.d.ts +1 -0
  49. package/dist/admin/server.d.ts.map +1 -1
  50. package/dist/admin/server.js +7 -0
  51. package/dist/admin/server.js.map +1 -1
  52. package/dist/admin/surfaces/contentTypes/content-types-designer.d.ts.map +1 -1
  53. package/dist/admin/surfaces/contentTypes/content-types-designer.js +12 -2
  54. package/dist/admin/surfaces/contentTypes/content-types-designer.js.map +1 -1
  55. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -1
  56. package/dist/admin/surfaces/dashboard/dashboard-index.js +23 -1
  57. package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -1
  58. package/dist/admin/webhook-manager.d.ts.map +1 -1
  59. package/dist/admin/webhook-manager.js +1 -0
  60. package/dist/admin/webhook-manager.js.map +1 -1
  61. package/dist/api/admin-features-routes.d.ts.map +1 -1
  62. package/dist/api/admin-features-routes.js +7 -1
  63. package/dist/api/admin-features-routes.js.map +1 -1
  64. package/dist/api/audience-preview-routes.d.ts.map +1 -1
  65. package/dist/api/audience-preview-routes.js +20 -2
  66. package/dist/api/audience-preview-routes.js.map +1 -1
  67. package/dist/api/audience-routes.d.ts.map +1 -1
  68. package/dist/api/audience-routes.js +44 -3
  69. package/dist/api/audience-routes.js.map +1 -1
  70. package/dist/api/audience-runtime-routes.d.ts.map +1 -1
  71. package/dist/api/audience-runtime-routes.js +6 -2
  72. package/dist/api/audience-runtime-routes.js.map +1 -1
  73. package/dist/api/auth-routes.d.ts.map +1 -1
  74. package/dist/api/auth-routes.js +16 -0
  75. package/dist/api/auth-routes.js.map +1 -1
  76. package/dist/api/auth.d.ts.map +1 -1
  77. package/dist/api/auth.js +34 -1
  78. package/dist/api/auth.js.map +1 -1
  79. package/dist/api/bulk-routes.d.ts.map +1 -1
  80. package/dist/api/bulk-routes.js +44 -12
  81. package/dist/api/bulk-routes.js.map +1 -1
  82. package/dist/api/category-routes.d.ts.map +1 -1
  83. package/dist/api/category-routes.js +10 -1
  84. package/dist/api/category-routes.js.map +1 -1
  85. package/dist/api/changeset-routes.d.ts +9 -0
  86. package/dist/api/changeset-routes.d.ts.map +1 -1
  87. package/dist/api/changeset-routes.js +13 -2
  88. package/dist/api/changeset-routes.js.map +1 -1
  89. package/dist/api/comment-routes.d.ts.map +1 -1
  90. package/dist/api/comment-routes.js +27 -1
  91. package/dist/api/comment-routes.js.map +1 -1
  92. package/dist/api/component-routes.d.ts.map +1 -1
  93. package/dist/api/component-routes.js +16 -1
  94. package/dist/api/component-routes.js.map +1 -1
  95. package/dist/api/content-routes.d.ts.map +1 -1
  96. package/dist/api/content-routes.js +59 -20
  97. package/dist/api/content-routes.js.map +1 -1
  98. package/dist/api/content-schemas.d.ts.map +1 -1
  99. package/dist/api/content-schemas.js +39 -0
  100. package/dist/api/content-schemas.js.map +1 -1
  101. package/dist/api/content-type-routes.d.ts.map +1 -1
  102. package/dist/api/content-type-routes.js +25 -5
  103. package/dist/api/content-type-routes.js.map +1 -1
  104. package/dist/api/dashboard-routes.d.ts.map +1 -1
  105. package/dist/api/dashboard-routes.js +4 -1
  106. package/dist/api/dashboard-routes.js.map +1 -1
  107. package/dist/api/experiment-routes.d.ts.map +1 -1
  108. package/dist/api/experiment-routes.js +24 -2
  109. package/dist/api/experiment-routes.js.map +1 -1
  110. package/dist/api/feed-routes.d.ts +4 -4
  111. package/dist/api/feed-routes.d.ts.map +1 -1
  112. package/dist/api/feed-routes.js +12 -2
  113. package/dist/api/feed-routes.js.map +1 -1
  114. package/dist/api/form-routes.d.ts +18 -0
  115. package/dist/api/form-routes.d.ts.map +1 -1
  116. package/dist/api/form-routes.js +207 -14
  117. package/dist/api/form-routes.js.map +1 -1
  118. package/dist/api/graphql/handler.d.ts +1 -1
  119. package/dist/api/graphql/handler.d.ts.map +1 -1
  120. package/dist/api/graphql/handler.js +8 -1
  121. package/dist/api/graphql/handler.js.map +1 -1
  122. package/dist/api/graphql/resolvers.d.ts +15 -6
  123. package/dist/api/graphql/resolvers.d.ts.map +1 -1
  124. package/dist/api/graphql/resolvers.js +108 -9
  125. package/dist/api/graphql/resolvers.js.map +1 -1
  126. package/dist/api/graphql/schema.d.ts +1 -1
  127. package/dist/api/graphql/schema.d.ts.map +1 -1
  128. package/dist/api/graphql/schema.js +14 -3
  129. package/dist/api/graphql/schema.js.map +1 -1
  130. package/dist/api/group-routes.d.ts.map +1 -1
  131. package/dist/api/group-routes.js +27 -0
  132. package/dist/api/group-routes.js.map +1 -1
  133. package/dist/api/index.d.ts +9 -0
  134. package/dist/api/index.d.ts.map +1 -1
  135. package/dist/api/index.js +35 -4
  136. package/dist/api/index.js.map +1 -1
  137. package/dist/api/layout-routes.d.ts.map +1 -1
  138. package/dist/api/layout-routes.js +13 -1
  139. package/dist/api/layout-routes.js.map +1 -1
  140. package/dist/api/media-routes.d.ts.map +1 -1
  141. package/dist/api/media-routes.js +19 -0
  142. package/dist/api/media-routes.js.map +1 -1
  143. package/dist/api/scheduler-routes.d.ts +10 -0
  144. package/dist/api/scheduler-routes.d.ts.map +1 -1
  145. package/dist/api/scheduler-routes.js +13 -2
  146. package/dist/api/scheduler-routes.js.map +1 -1
  147. package/dist/api/search-routes.d.ts.map +1 -1
  148. package/dist/api/search-routes.js +20 -2
  149. package/dist/api/search-routes.js.map +1 -1
  150. package/dist/api/section-template-routes.d.ts.map +1 -1
  151. package/dist/api/section-template-routes.js +16 -1
  152. package/dist/api/section-template-routes.js.map +1 -1
  153. package/dist/api/site-context.d.ts +30 -1
  154. package/dist/api/site-context.d.ts.map +1 -1
  155. package/dist/api/site-context.js +41 -0
  156. package/dist/api/site-context.js.map +1 -1
  157. package/dist/api/tag-routes.d.ts.map +1 -1
  158. package/dist/api/tag-routes.js +10 -1
  159. package/dist/api/tag-routes.js.map +1 -1
  160. package/dist/api/translation-routes.d.ts.map +1 -1
  161. package/dist/api/translation-routes.js +19 -4
  162. package/dist/api/translation-routes.js.map +1 -1
  163. package/dist/api/user-routes.d.ts.map +1 -1
  164. package/dist/api/user-routes.js +13 -0
  165. package/dist/api/user-routes.js.map +1 -1
  166. package/dist/api/version-routes.d.ts.map +1 -1
  167. package/dist/api/version-routes.js +1 -0
  168. package/dist/api/version-routes.js.map +1 -1
  169. package/dist/api/webhook-routes.d.ts.map +1 -1
  170. package/dist/api/webhook-routes.js +31 -2
  171. package/dist/api/webhook-routes.js.map +1 -1
  172. package/dist/api/workflow-routes.d.ts.map +1 -1
  173. package/dist/api/workflow-routes.js +45 -1
  174. package/dist/api/workflow-routes.js.map +1 -1
  175. package/dist/audiences/collectors/index.d.ts +1 -0
  176. package/dist/audiences/collectors/index.d.ts.map +1 -1
  177. package/dist/audiences/collectors/index.js +1 -0
  178. package/dist/audiences/collectors/index.js.map +1 -1
  179. package/dist/audiences/collectors/pinned-audience.d.ts +17 -0
  180. package/dist/audiences/collectors/pinned-audience.d.ts.map +1 -0
  181. package/dist/audiences/collectors/pinned-audience.js +22 -0
  182. package/dist/audiences/collectors/pinned-audience.js.map +1 -0
  183. package/dist/audiences/cookies.d.ts +1 -0
  184. package/dist/audiences/cookies.d.ts.map +1 -1
  185. package/dist/audiences/cookies.js +4 -0
  186. package/dist/audiences/cookies.js.map +1 -1
  187. package/dist/audiences/engine.d.ts.map +1 -1
  188. package/dist/audiences/engine.js +10 -2
  189. package/dist/audiences/engine.js.map +1 -1
  190. package/dist/audiences/index.d.ts +1 -0
  191. package/dist/audiences/index.d.ts.map +1 -1
  192. package/dist/audiences/index.js +4 -0
  193. package/dist/audiences/index.js.map +1 -1
  194. package/dist/audiences/utm-persistence.d.ts +46 -0
  195. package/dist/audiences/utm-persistence.d.ts.map +1 -0
  196. package/dist/audiences/utm-persistence.js +68 -0
  197. package/dist/audiences/utm-persistence.js.map +1 -0
  198. package/dist/auth/tokens.d.ts.map +1 -1
  199. package/dist/auth/tokens.js +14 -1
  200. package/dist/auth/tokens.js.map +1 -1
  201. package/dist/config/types.d.ts +29 -2
  202. package/dist/config/types.d.ts.map +1 -1
  203. package/dist/config/types.js.map +1 -1
  204. package/dist/db/bulk-queries.d.ts +8 -0
  205. package/dist/db/bulk-queries.d.ts.map +1 -1
  206. package/dist/db/bulk-queries.js +16 -0
  207. package/dist/db/bulk-queries.js.map +1 -1
  208. package/dist/db/changeset-queries.d.ts +27 -1
  209. package/dist/db/changeset-queries.d.ts.map +1 -1
  210. package/dist/db/changeset-queries.js +56 -2
  211. package/dist/db/changeset-queries.js.map +1 -1
  212. package/dist/db/content-permission-dedupe.d.ts +24 -0
  213. package/dist/db/content-permission-dedupe.d.ts.map +1 -0
  214. package/dist/db/content-permission-dedupe.js +69 -0
  215. package/dist/db/content-permission-dedupe.js.map +1 -0
  216. package/dist/db/content-permission-queries.d.ts +8 -0
  217. package/dist/db/content-permission-queries.d.ts.map +1 -1
  218. package/dist/db/content-permission-queries.js +29 -1
  219. package/dist/db/content-permission-queries.js.map +1 -1
  220. package/dist/db/content-queries.d.ts +7 -0
  221. package/dist/db/content-queries.d.ts.map +1 -1
  222. package/dist/db/content-queries.js +9 -0
  223. package/dist/db/content-queries.js.map +1 -1
  224. package/dist/db/content-type-queries.d.ts.map +1 -1
  225. package/dist/db/content-type-queries.js +3 -1
  226. package/dist/db/content-type-queries.js.map +1 -1
  227. package/dist/db/dynamic-schema.d.ts.map +1 -1
  228. package/dist/db/dynamic-schema.js +1 -0
  229. package/dist/db/dynamic-schema.js.map +1 -1
  230. package/dist/db/index.d.ts +1 -0
  231. package/dist/db/index.d.ts.map +1 -1
  232. package/dist/db/index.js +3 -0
  233. package/dist/db/index.js.map +1 -1
  234. package/dist/db/schema-apply.d.ts.map +1 -1
  235. package/dist/db/schema-apply.js +1 -0
  236. package/dist/db/schema-apply.js.map +1 -1
  237. package/dist/db/schema-field-queries.d.ts +2 -0
  238. package/dist/db/schema-field-queries.d.ts.map +1 -1
  239. package/dist/db/schema-field-queries.js +4 -0
  240. package/dist/db/schema-field-queries.js.map +1 -1
  241. package/dist/db/search-queries.d.ts +7 -0
  242. package/dist/db/search-queries.d.ts.map +1 -1
  243. package/dist/db/search-queries.js +3 -0
  244. package/dist/db/search-queries.js.map +1 -1
  245. package/dist/db/site-membership-queries.d.ts +6 -0
  246. package/dist/db/site-membership-queries.d.ts.map +1 -1
  247. package/dist/db/site-membership-queries.js +9 -0
  248. package/dist/db/site-membership-queries.js.map +1 -1
  249. package/dist/db/user-search.d.ts +8 -0
  250. package/dist/db/user-search.d.ts.map +1 -1
  251. package/dist/db/user-search.js +14 -8
  252. package/dist/db/user-search.js.map +1 -1
  253. package/dist/db/workflow-queries.d.ts +1 -0
  254. package/dist/db/workflow-queries.d.ts.map +1 -1
  255. package/dist/db/workflow-queries.js +24 -0
  256. package/dist/db/workflow-queries.js.map +1 -1
  257. package/dist/experiments/engine.d.ts.map +1 -1
  258. package/dist/experiments/engine.js +7 -2
  259. package/dist/experiments/engine.js.map +1 -1
  260. package/dist/forms/types.d.ts +5 -0
  261. package/dist/forms/types.d.ts.map +1 -1
  262. package/dist/forms/validation.d.ts +20 -0
  263. package/dist/forms/validation.d.ts.map +1 -1
  264. package/dist/forms/validation.js +45 -2
  265. package/dist/forms/validation.js.map +1 -1
  266. package/dist/hooks/ax-invalidation.d.ts.map +1 -1
  267. package/dist/hooks/ax-invalidation.js +1 -0
  268. package/dist/hooks/ax-invalidation.js.map +1 -1
  269. package/dist/hooks/dispatch.d.ts +1 -0
  270. package/dist/hooks/dispatch.d.ts.map +1 -1
  271. package/dist/hooks/dispatch.js +6 -0
  272. package/dist/hooks/dispatch.js.map +1 -1
  273. package/dist/hooks/webhook-dispatch.d.ts.map +1 -1
  274. package/dist/hooks/webhook-dispatch.js +1 -0
  275. package/dist/hooks/webhook-dispatch.js.map +1 -1
  276. package/dist/layout/index.d.ts +1 -1
  277. package/dist/layout/index.d.ts.map +1 -1
  278. package/dist/layout/index.js.map +1 -1
  279. package/dist/layout/renderer.d.ts +15 -2
  280. package/dist/layout/renderer.d.ts.map +1 -1
  281. package/dist/layout/renderer.js +49 -3
  282. package/dist/layout/renderer.js.map +1 -1
  283. package/dist/layout/types.d.ts +9 -0
  284. package/dist/layout/types.d.ts.map +1 -1
  285. package/dist/layout/types.js +5 -0
  286. package/dist/layout/types.js.map +1 -1
  287. package/dist/schema/base.d.ts +74 -0
  288. package/dist/schema/base.d.ts.map +1 -1
  289. package/dist/schema/base.js +16 -0
  290. package/dist/schema/base.js.map +1 -1
  291. package/dist/schema/content-permissions.d.ts.map +1 -1
  292. package/dist/schema/content-permissions.js +23 -2
  293. package/dist/schema/content-permissions.js.map +1 -1
  294. package/dist/schema/mapper.d.ts.map +1 -1
  295. package/dist/schema/mapper.js +1 -0
  296. package/dist/schema/mapper.js.map +1 -1
  297. package/dist/schema/mysql-tables.d.ts +68 -0
  298. package/dist/schema/mysql-tables.d.ts.map +1 -1
  299. package/dist/schema/mysql-tables.js +7 -0
  300. package/dist/schema/mysql-tables.js.map +1 -1
  301. package/dist/scope/kywi-form.d.ts.map +1 -1
  302. package/dist/scope/kywi-form.js +51 -6
  303. package/dist/scope/kywi-form.js.map +1 -1
  304. package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
  305. package/dist/scope/kywi-wizard-form.js +29 -3
  306. package/dist/scope/kywi-wizard-form.js.map +1 -1
  307. package/dist/versioning/scheduler.d.ts +10 -2
  308. package/dist/versioning/scheduler.d.ts.map +1 -1
  309. package/dist/versioning/scheduler.js +13 -5
  310. package/dist/versioning/scheduler.js.map +1 -1
  311. package/package.json +12 -4
@@ -4,6 +4,7 @@ function rowToFieldDef(row) {
4
4
  const options = row.options ?? undefined;
5
5
  const validation = row.validation ?? undefined;
6
6
  const relatedType = row.relatedType ?? undefined;
7
+ const itemType = row.itemType ?? undefined;
7
8
  return {
8
9
  name: row.name,
9
10
  type: row.type,
@@ -12,6 +13,7 @@ function rowToFieldDef(row) {
12
13
  ...(options !== undefined && { options }),
13
14
  ...(validation !== undefined && { validation }),
14
15
  ...(relatedType !== undefined && { relatedType }),
16
+ ...(itemType !== undefined && { itemType }),
15
17
  source: 'admin',
16
18
  };
17
19
  }
@@ -48,6 +50,7 @@ export async function saveAdminField(db, input) {
48
50
  required: input.required ?? false,
49
51
  validation: input.validation ?? null,
50
52
  relatedType: input.relatedType ?? null,
53
+ itemType: input.itemType ?? null,
51
54
  sortOrder: input.sortOrder ?? 0,
52
55
  })
53
56
  .onConflictDoUpdate({
@@ -59,6 +62,7 @@ export async function saveAdminField(db, input) {
59
62
  required: input.required ?? false,
60
63
  validation: input.validation ?? null,
61
64
  relatedType: input.relatedType ?? null,
65
+ itemType: input.itemType ?? null,
62
66
  sortOrder: input.sortOrder ?? 0,
63
67
  updatedAt: new Date(),
64
68
  },
@@ -1 +1 @@
1
- {"version":3,"file":"schema-field-queries.js","sourceRoot":"","sources":["../../src/db/schema-field-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAgBzD,SAAS,aAAa,CAAC,GAA8C;IACnE,MAAM,OAAO,GAAI,GAAG,CAAC,OAA2B,IAAI,SAAS,CAAA;IAC7D,MAAM,UAAU,GAAI,GAAG,CAAC,UAAqC,IAAI,SAAS,CAAA;IAC1E,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,SAAS,CAAA;IAChD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAA+B;QACzC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;QACzC,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;QAC/C,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;QACjD,MAAM,EAAE,OAAO;KAChB,CAAA;AACH,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAU,EACV,eAAwB;IAExB,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,qBAAqB,CAAC;aAC3B,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;aACjE,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,MAAM,EAAE;SACR,IAAI,CAAC,qBAAqB,CAAC;SAC3B,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAE3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6B,CAAA;IAChD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;QACnD,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;QACjC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAU,EAAE,KAAsB;IACrE,MAAM,EAAE;SACL,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC;QACN,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;QACjC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;KAChC,CAAC;SACD,kBAAkB,CAAC;QAClB,MAAM,EAAE,CAAC,qBAAqB,CAAC,eAAe,EAAE,qBAAqB,CAAC,IAAI,CAAC;QAC3E,GAAG,EAAE;YACH,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;YACjC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACpC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;YACtC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB;KACF,CAAC,CAAA;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAU,EACV,eAAuB,EACvB,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,qBAAqB,CAAC;SAC7B,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,qBAAqB,CAAC,eAAe,EAAE,eAAe,CAAC,EAC1D,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CACrC,CACF;SACA,SAAS,EAAE,CAAA;IACd,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAU,EAAE,eAAuB;IAChF,MAAM,EAAE;SACL,MAAM,CAAC,qBAAqB,CAAC;SAC7B,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAA;AACtE,CAAC"}
1
+ {"version":3,"file":"schema-field-queries.js","sourceRoot":"","sources":["../../src/db/schema-field-queries.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,13 @@ export interface SearchOptions {
15
15
  locale?: string | undefined;
16
16
  limit?: number | undefined;
17
17
  offset?: number | undefined;
18
+ /**
19
+ * When false (default), rows with `excludeFromSearch = true` are filtered
20
+ * out — the flag an editor sets via "Exclude from search & AX" (#82).
21
+ * Pass `true` only for an admin-authenticated caller searching for content
22
+ * to edit, where an excluded page must still be findable.
23
+ */
24
+ includeExcluded?: boolean | undefined;
18
25
  }
19
26
  /**
20
27
  * Full-text search across title, body, and summary using PostgreSQL tsvector/tsquery.
@@ -1 +1 @@
1
- {"version":3,"file":"search-queries.d.ts","sourceRoot":"","sources":["../../src/db/search-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAqErD"}
1
+ {"version":3,"file":"search-queries.d.ts","sourceRoot":"","sources":["../../src/db/search-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACtC;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAwErD"}
@@ -30,6 +30,9 @@ export async function searchContent(db, query, opts) {
30
30
  if (opts.locale) {
31
31
  conditions.push(eq(kywiContent.locale, opts.locale));
32
32
  }
33
+ if (!opts.includeExcluded) {
34
+ conditions.push(eq(kywiContent.excludeFromSearch, false));
35
+ }
33
36
  const where = and(...conditions);
34
37
  const [countRow] = await db
35
38
  .select({ value: sql `count(*)::int` })
@@ -1 +1 @@
1
- {"version":3,"file":"search-queries.js","sourceRoot":"","sources":["../../src/db/search-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-queries.js","sourceRoot":"","sources":["../../src/db/search-queries.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,12 @@ export declare function getUserSiteMemberships(db: KywiDb, userId: string): Prom
5
5
  userId: string;
6
6
  groups: unknown;
7
7
  }[]>;
8
+ /**
9
+ * The site UUIDs a user belongs to, deduped. This is the shape embedded in the
10
+ * access-token `sites` claim and populated onto `UserContext.siteMemberships`
11
+ * for per-site API authorization (#73). A user with no rows yields `[]`.
12
+ */
13
+ export declare function getUserSiteIds(db: KywiDb, userId: string): Promise<string[]>;
8
14
  export declare function getSiteMembershipForUser(db: KywiDb, userId: string, siteId: string): Promise<{
9
15
  siteId: string;
10
16
  createdAt: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"site-membership-queries.d.ts","sourceRoot":"","sources":["../../src/db/site-membership-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;KAEtE;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;UAKxF;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO;;;;;eAMpG;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAGlF"}
1
+ {"version":3,"file":"site-membership-queries.d.ts","sourceRoot":"","sources":["../../src/db/site-membership-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;KAEtE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGlF;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;UAKxF;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO;;;;;eAMpG;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAGlF"}
@@ -3,6 +3,15 @@ import { kywiSiteMemberships } from '../schema/base.js';
3
3
  export async function getUserSiteMemberships(db, userId) {
4
4
  return db.select().from(kywiSiteMemberships).where(eq(kywiSiteMemberships.userId, userId));
5
5
  }
6
+ /**
7
+ * The site UUIDs a user belongs to, deduped. This is the shape embedded in the
8
+ * access-token `sites` claim and populated onto `UserContext.siteMemberships`
9
+ * for per-site API authorization (#73). A user with no rows yields `[]`.
10
+ */
11
+ export async function getUserSiteIds(db, userId) {
12
+ const rows = await getUserSiteMemberships(db, userId);
13
+ return [...new Set(rows.map(r => r.siteId))];
14
+ }
6
15
  export async function getSiteMembershipForUser(db, userId, siteId) {
7
16
  const [row] = await db.select().from(kywiSiteMemberships)
8
17
  .where(and(eq(kywiSiteMemberships.userId, userId), eq(kywiSiteMemberships.siteId, siteId)))
@@ -1 +1 @@
1
- {"version":3,"file":"site-membership-queries.js","sourceRoot":"","sources":["../../src/db/site-membership-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAGvD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAU,EAAE,MAAc;IACrE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc;IACvF,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;SACtD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;SAC1F,KAAK,CAAC,CAAC,CAAC,CAAA;IACX,OAAO,GAAG,IAAI,IAAI,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc,EAAE,SAAmB,EAAE;IACnG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;SAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;SAClC,mBAAmB,EAAE;SACrB,SAAS,EAAE,CAAA;IACd,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc;IACjF,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;SACjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/F,CAAC"}
1
+ {"version":3,"file":"site-membership-queries.js","sourceRoot":"","sources":["../../src/db/site-membership-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAGvD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAU,EAAE,MAAc;IACrE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAU,EAAE,MAAc;IAC7D,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc;IACvF,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;SACtD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;SAC1F,KAAK,CAAC,CAAC,CAAC,CAAA;IACX,OAAO,GAAG,IAAI,IAAI,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc,EAAE,SAAmB,EAAE;IACnG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;SAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;SAClC,mBAAmB,EAAE;SACrB,SAAS,EAAE,CAAA;IACd,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc;IACjF,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;SACjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/F,CAAC"}
@@ -3,6 +3,14 @@ import type { KywiDb } from './client.js';
3
3
  /**
4
4
  * Search users by email, firstName, or lastName using case-insensitive matching.
5
5
  * Optionally filter by siteId (membership) or role.
6
+ *
7
+ * #40/#72: the siteId branch used to `innerJoin(kywiSiteMemberships, ...)` —
8
+ * correct only when a user has exactly one membership row for that site, but
9
+ * `kywi_site_memberships` has no uniqueness constraint on (userId, siteId), so
10
+ * a duplicate row fanned the join out into one kywi_users row PER membership
11
+ * row, rendering the same user multiple times in search results. Filtering by
12
+ * an `IN` subquery instead (the `listUsers` pattern in `user-queries.ts`) can
13
+ * never fan out kywi_users' own rows, no matter how many membership rows exist.
6
14
  */
7
15
  export declare function searchUsers(db: KywiDb, query: string, opts?: {
8
16
  siteId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user-search.d.ts","sourceRoot":"","sources":["../../src/db/user-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,YAAY,EAAE,CAAC,CA6BzB"}
1
+ {"version":3,"file":"user-search.d.ts","sourceRoot":"","sources":["../../src/db/user-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,YAAY,EAAE,CAAC,CA+BzB"}
@@ -1,8 +1,16 @@
1
- import { eq, or, sql, and, getTableColumns } from 'drizzle-orm';
1
+ import { eq, or, sql, and, inArray } from 'drizzle-orm';
2
2
  import { kywiUsers, kywiSiteMemberships } from '../schema/base.js';
3
3
  /**
4
4
  * Search users by email, firstName, or lastName using case-insensitive matching.
5
5
  * Optionally filter by siteId (membership) or role.
6
+ *
7
+ * #40/#72: the siteId branch used to `innerJoin(kywiSiteMemberships, ...)` —
8
+ * correct only when a user has exactly one membership row for that site, but
9
+ * `kywi_site_memberships` has no uniqueness constraint on (userId, siteId), so
10
+ * a duplicate row fanned the join out into one kywi_users row PER membership
11
+ * row, rendering the same user multiple times in search results. Filtering by
12
+ * an `IN` subquery instead (the `listUsers` pattern in `user-queries.ts`) can
13
+ * never fan out kywi_users' own rows, no matter how many membership rows exist.
6
14
  */
7
15
  export async function searchUsers(db, query, opts) {
8
16
  const pattern = `%${query}%`;
@@ -11,15 +19,13 @@ export async function searchUsers(db, query, opts) {
11
19
  if (opts?.role) {
12
20
  conditions.push(eq(kywiUsers.role, opts.role));
13
21
  }
14
- const limit = opts?.limit ?? 50;
15
22
  if (opts?.siteId) {
16
- return db
17
- .select(getTableColumns(kywiUsers))
18
- .from(kywiUsers)
19
- .innerJoin(kywiSiteMemberships, eq(kywiSiteMemberships.userId, kywiUsers.id))
20
- .where(and(...conditions, eq(kywiSiteMemberships.siteId, opts.siteId)))
21
- .limit(limit);
23
+ conditions.push(inArray(kywiUsers.id, db
24
+ .select({ userId: kywiSiteMemberships.userId })
25
+ .from(kywiSiteMemberships)
26
+ .where(eq(kywiSiteMemberships.siteId, opts.siteId))));
22
27
  }
28
+ const limit = opts?.limit ?? 50;
23
29
  return db
24
30
  .select()
25
31
  .from(kywiUsers)
@@ -1 +1 @@
1
- {"version":3,"file":"user-search.js","sourceRoot":"","sources":["../../src/db/user-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAIlE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAU,EACV,KAAa,EACb,IAAyD;IAEzD,MAAM,OAAO,GAAG,IAAI,KAAK,GAAG,CAAA;IAC5B,MAAM,eAAe,GAAG,EAAE,CACxB,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,UAAU,OAAO,EAAE,EACxC,GAAG,CAAA,GAAG,SAAS,CAAC,SAAS,UAAU,OAAO,EAAE,EAC5C,GAAG,CAAA,GAAG,SAAS,CAAC,QAAQ,UAAU,OAAO,EAAE,CAC5C,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,eAAe,CAAC,CAAA;IACpC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAA;IAE/B,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE;aACN,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;aAClC,IAAI,CAAC,SAAS,CAAC;aACf,SAAS,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;aAC5E,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACtE,KAAK,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,SAAS,CAAC;SACf,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;SACzB,KAAK,CAAC,KAAK,CAAC,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"user-search.js","sourceRoot":"","sources":["../../src/db/user-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAIlE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAU,EACV,KAAa,EACb,IAAyD;IAEzD,MAAM,OAAO,GAAG,IAAI,KAAK,GAAG,CAAA;IAC5B,MAAM,eAAe,GAAG,EAAE,CACxB,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,UAAU,OAAO,EAAE,EACxC,GAAG,CAAA,GAAG,SAAS,CAAC,SAAS,UAAU,OAAO,EAAE,EAC5C,GAAG,CAAA,GAAG,SAAS,CAAC,QAAQ,UAAU,OAAO,EAAE,CAC5C,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,eAAe,CAAC,CAAA;IACpC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,CAAC,IAAI,CACb,OAAO,CACL,SAAS,CAAC,EAAE,EACZ,EAAE;aACC,MAAM,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC;aAC9C,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CACtD,CACF,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAA;IAE/B,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,SAAS,CAAC;SACf,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;SACzB,KAAK,CAAC,KAAK,CAAC,CAAA;AACjB,CAAC"}
@@ -37,6 +37,7 @@ export declare function restoreContentVersion(db: KywiDb, opts: {
37
37
  userId: string;
38
38
  userEmail: string;
39
39
  customTable: PgTableWithColumns<any> | null;
40
+ customFieldNames?: readonly string[];
40
41
  }): Promise<{
41
42
  success: boolean;
42
43
  content?: ContentWithCustomFields;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-queries.d.ts","sourceRoot":"","sources":["../../src/db/workflow-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-queries.d.ts","sourceRoot":"","sources":["../../src/db/workflow-queries.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { canTransition } from '../versioning/state-machine.js';
4
4
  import { createVersion, getLatestVersionNumber, getVersionById } from './version-queries.js';
5
5
  import { createAuditEntry } from './audit-queries.js';
6
6
  import { getContentById } from './content-queries.js';
7
+ import { extractCustomFieldsFromSnapshot } from './apply-snapshot.js';
7
8
  /** Derive the audit action name from a status transition. */
8
9
  function deriveAction(from, to) {
9
10
  if (to === 'pending')
@@ -139,6 +140,29 @@ export async function restoreContentVersion(db, opts) {
139
140
  updatedAt: new Date(),
140
141
  })
141
142
  .where(eq(kywiContent.id, opts.contentId));
143
+ // Restore the content type's custom (side-table) fields too (#63). A
144
+ // snapshot carries them since 0.3.0, but the base-column loop above only
145
+ // rewrites kywi_content — a base-only restore silently dropped custom values.
146
+ // Mirror applyContentSnapshot's update-then-insert-fallback (a row that has
147
+ // no custom side-row yet gets one), inside this same transaction.
148
+ const customFields = extractCustomFieldsFromSnapshot(snapshot, opts.customFieldNames ?? [], opts.customTable);
149
+ if (opts.customTable && Object.keys(customFields).length > 0) {
150
+ const result = await tx
151
+ .update(opts.customTable)
152
+ .set(customFields)
153
+ .where(eq(opts.customTable.id, opts.contentId));
154
+ if (result?.rowCount === 0) {
155
+ const [row] = await tx
156
+ .select({ siteId: kywiContent.siteId })
157
+ .from(kywiContent)
158
+ .where(eq(kywiContent.id, opts.contentId));
159
+ if (row) {
160
+ await tx
161
+ .insert(opts.customTable)
162
+ .values({ id: opts.contentId, siteId: row.siteId, ...customFields });
163
+ }
164
+ }
165
+ }
142
166
  // Create a new version for the restoration
143
167
  const latestVersion = await getLatestVersionNumber(tx, opts.contentId);
144
168
  await createVersion(tx, {
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-queries.js","sourceRoot":"","sources":["../../src/db/workflow-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAQ,GAAG,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC5F,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAgC,MAAM,sBAAsB,CAAA;AAUnF,6DAA6D;AAC7D,SAAS,YAAY,CAAC,IAAY,EAAE,EAAU;IAC5C,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IACrC,IAAI,EAAE,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IACvC,IAAI,EAAE,KAAK,WAAW;QAAE,OAAO,SAAS,CAAA;IACxC,IAAI,EAAE,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,WAAW,CAAA;IAC9D,IAAI,EAAE,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IACzD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,UAAkB,EAClB,QAAgB;IAEhB,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,UAAU,UAAU,EAAE,CAAA;IACnF,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,6BAA6B,UAAU,SAAS,QAAQ,GAAG,EAAE,CAAA;IAC7G,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAA;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,EAAU,EACV,IAQC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1E,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;IAEnE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAgB,CAAA;IAC3C,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,GAAG,GAAuC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAClE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAA;QAC1D,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACnD,MAAM,EAAE,GAAG,KAA0B,CAAA;QAErC,wBAAwB;QACxB,MAAM,UAAU,GAA4B;YAC1C,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,SAAS,EAAE,IAAI,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAA;QACD,sEAAsE;QACtE,+EAA+E;QAC/E,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1D,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;QACrC,CAAC;QAED,MAAM,EAAE;aACL,MAAM,CAAC,WAAW,CAAC;aACnB,GAAG,CAAC,UAAiB,CAAC;aACtB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QAE5C,oDAAoD;QACpD,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC1D,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACtE,MAAM,WAAW,GAA4B;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,OAAO,CAAC,MAAgB;YAChC,OAAO,EAAE,aAAa,GAAG,CAAC;YAC1B,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,SAAS,EAAE,IAAI,CAAC,MAAM;SACvB,CAAA;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAC1C,CAAC;QACD,MAAM,aAAa,CAAC,EAAE,EAAE,WAAkB,CAAC,CAAA;QAE3C,kBAAkB;QAClB,MAAM,gBAAgB,CAAC,EAAE,EAAE;YACzB,MAAM,EAAE,OAAO,CAAC,MAAgB;YAChC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,MAAM,CAAC,MAAO;YACtB,UAAU;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;QAEF,OAAO,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAyD,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC7F,IAAI,OAAO,KAAK,IAAI;QAAE,aAAa,CAAC,OAAO,GAAG,OAAO,CAAA;IACrD,OAAO,aAAa,CAAA;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAU,EACV,IAMC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACxD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;IACnE,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAA;IAC7E,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAmC,CAAA;IAC5D,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACjF,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;IAE1E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACnD,MAAM,EAAE,GAAG,KAA0B,CAAA;QAErC,6DAA6D;QAC7D,6EAA6E;QAC7E,6EAA6E;QAC7E,2EAA2E;QAC3E,8EAA8E;QAC9E,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;QACvG,MAAM,aAAa,GAA4B,EAAE,CAAA;QACjD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAE,SAAQ;YACjD,MAAM,KAAK,GAAI,QAAoC,CAAC,GAAG,CAAC,CAAA;YACxD,IAAI,KAAK,IAAI,IAAI,IAAK,MAAgC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;gBACvG,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBACtC,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;YACrE,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YAC5B,CAAC;QACH,CAAC;QACD,MAAM,EAAE;aACL,MAAM,CAAC,WAAW,CAAC;aACnB,GAAG,CAAC;YACH,GAAG,aAAa;YAChB,SAAS,EAAE,IAAI,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;SACf,CAAC;aACR,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QAE5C,2CAA2C;QAC3C,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACtE,MAAM,aAAa,CAAC,EAAE,EAAE;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,cAAc,CAAC,MAAgB;YACvC,OAAO,EAAE,aAAa,GAAG,CAAC;YAC1B,QAAQ,EAAE,cAAc;YACxB,UAAU,EAAE,yBAAyB,OAAO,CAAC,OAAO,EAAE;YACtD,MAAM,EAAG,QAAQ,CAAC,MAAiB,IAAK,cAAc,CAAC,MAAiB;YACxE,SAAS,EAAE,IAAI,CAAC,MAAM;SACvB,CAAC,CAAA;QAEF,kBAAkB;QAClB,MAAM,gBAAgB,CAAC,EAAE,EAAE;YACzB,MAAM,EAAE,cAAc,CAAC,MAAgB;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,cAAc,CAAC,MAAgB;YAC3C,QAAQ,EAAG,QAAQ,CAAC,MAAiB,IAAK,cAAc,CAAC,MAAiB;YAC1E,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;QAEF,OAAO,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAyD,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC7F,IAAI,OAAO,KAAK,IAAI;QAAE,aAAa,CAAC,OAAO,GAAG,OAAO,CAAA;IACrD,OAAO,aAAa,CAAA;AACtB,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAA0B,EAC1B,OAAmF;IAEnF,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAA;QAEvD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,kDAAkD;YAClD,OAAO;gBACL,gBAAgB,EAAE,CAAC;gBACnB,MAAM,EAAE,SAAS;gBACjB,cAAc,EAAE,WAAW,CAAC,CAAC,CAAE,CAAC,OAAO;aACxC,CAAA;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO;gBACL,gBAAgB,EAAE,CAAC;gBACnB,MAAM,EAAE,UAAU;aACnB,CAAA;QACH,CAAC;QAED,0DAA0D;IAC5D,CAAC;IAED,qBAAqB;IACrB,OAAO;QACL,gBAAgB,EAAE,WAAW,CAAC,MAAM;QACpC,MAAM,EAAE,UAAU;KACnB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAU,EACV,IAIC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC;QACN,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;KACX,CAAC;SACR,SAAS,EAAE,CAAA;IACd,OAAO,GAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU,EAAE,OAAe;IAChE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,EAAE;SACR,IAAI,CAAC,kBAAkB,CAAC;SACxB,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SACzC,KAAK,CAAC,CAAC,CAAC,CAAA;IACX,OAAO,GAAG,IAAI,IAAI,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAU,EAAE,MAAc;IACjE,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,kBAAkB,CAAC;SACxB,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,EAAU,EACV,IAOC;IAED,MAAM,MAAM,GAA4B;QACtC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAA;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAE7D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,MAAa,CAAC;SACrB,SAAS,EAAE,CAAA;IACd,OAAO,GAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAU,EACV,OAAe,EACf,SAAiB;IAEjB,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,mBAAmB,CAAC;SACzB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,EACxC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAC7C,CACF;SACA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAA;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAU,EACV,OAAe,EACf,SAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAA4B,CAAA;IAEhD,OAAO,qBAAqB,CAC1B,KAAK,EACL,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,MAAM,EAAE,CAAC,CAAC,MAA8B;QACxC,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC,CAAC,CACJ,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAU,EACV,IAQC;IAED,OAAO,uBAAuB,CAAC,EAAE,EAAE;QACjC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"workflow-queries.js","sourceRoot":"","sources":["../../src/db/workflow-queries.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/experiments/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAGjB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAInB;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG5E;AAID,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,GAC/D,sBAAsB,CAYxB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA0BhG;AAID,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,mFAAmF;IACnF,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAAA;IAC7C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe,CAa1E;AAID,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAgB1C,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,CA4DxG"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/experiments/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAGjB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAInB;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG5E;AAID,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,GAC/D,sBAAsB,CAYxB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA0BhG;AAID,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,mFAAmF;IACnF,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAAA;IAC7C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe,CAa1E;AAID,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAgB1C,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,CAiExG"}
@@ -145,8 +145,13 @@ export function computeResults(experiment, aggregates) {
145
145
  isWinner: false,
146
146
  };
147
147
  });
148
- // A declared winner (completed experiment) always wins; otherwise the leading arm.
149
- const winnerId = experiment.winnerVariantId ?? leadingVariantId;
148
+ // A declared winner (completed experiment) always wins; otherwise the leading arm,
149
+ // but only when its improvement over control is actually significant — a bare
150
+ // argmax over a handful of exposures is noise, not a winner. Reuse the per-variant
151
+ // significance already computed above rather than re-running the z-test.
152
+ const leadingResult = leadingVariantId != null ? variants.find((v) => v.variantId === leadingVariantId) : undefined;
153
+ const leadingIsSignificant = leadingResult?.significance === 'significant';
154
+ const winnerId = experiment.winnerVariantId ?? (leadingIsSignificant ? leadingVariantId : null);
150
155
  for (const vr of variants)
151
156
  vr.isWinner = winnerId != null && vr.variantId === winnerId;
152
157
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/experiments/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/experiments/engine.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,11 @@ export interface FormFieldDefinition {
15
15
  pattern?: string | undefined;
16
16
  email?: boolean | undefined;
17
17
  phone?: boolean | undefined;
18
+ /** For `file` fields: allowed extensions (e.g. `.pdf`) and/or MIME types
19
+ * (e.g. `image/png`, `image/*`). Empty/absent means any type is allowed. */
20
+ accept?: string[] | undefined;
21
+ /** For `file` fields: maximum upload size in megabytes. */
22
+ maxSizeMb?: number | undefined;
18
23
  } | undefined;
19
24
  }
20
25
  export type SkipOperator = 'equals' | 'not_equals' | 'contains' | 'is_empty' | 'is_not_empty';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/forms/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAA;AAEvL,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,UAAU,CAAC,EAAE;QACX,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACxB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACxB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC3B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC5B,GAAG,SAAS,CAAA;CACd;AAID,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAA;AAE7F,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAID,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAID,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/forms/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAA;AAEvL,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,UAAU,CAAC,EAAE;QACX,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACxB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACxB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC3B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC3B;qFAC6E;QAC7E,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;QAC7B,2DAA2D;QAC3D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,GAAG,SAAS,CAAA;CACd;AAID,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAA;AAE7F,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAID,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAID,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB"}
@@ -1,6 +1,26 @@
1
1
  import { z } from 'zod';
2
2
  import type { FormFieldDefinition, SkipCondition } from './types.js';
3
3
  export declare function isValidPhone(value: string): boolean;
4
+ /** The subset of an uploaded file needed to enforce accept/maxSizeMb. */
5
+ export interface UploadedFileMeta {
6
+ name: string;
7
+ size: number;
8
+ type: string;
9
+ }
10
+ export type FileConstraintResult = {
11
+ ok: true;
12
+ } | {
13
+ ok: false;
14
+ code: 'type' | 'size';
15
+ message: string;
16
+ };
17
+ /**
18
+ * Enforce a file field's `accept` / `maxSizeMb` constraints against an uploaded
19
+ * file's metadata. Shared by the client (pre-submit) and the server (multipart
20
+ * submit) so both apply identical rules. `code` distinguishes a rejected type
21
+ * (400) from an oversize file (413) at the API boundary.
22
+ */
23
+ export declare function validateFileConstraints(field: FormFieldDefinition, file: UploadedFileMeta): FileConstraintResult;
4
24
  export declare function buildFormValidationSchema(fields: FormFieldDefinition[]): z.ZodObject<any>;
5
25
  export declare function evaluateSkipCondition(condition: SkipCondition, data: Record<string, unknown>): boolean;
6
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/forms/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAOpE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAInD;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAoEzF;AAID,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAiBT;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,aAAa,EAAE,GAAG,SAAS,EACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAGT"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/forms/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAOpE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAInD;AAID,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAoBzD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,gBAAgB,GACrB,oBAAoB,CActB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAsEzF;AAID,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAiBT;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,aAAa,EAAE,GAAG,SAAS,EACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAGT"}
@@ -9,11 +9,54 @@ export function isValidPhone(value) {
9
9
  const digitCount = value.replace(/\D/g, '').length;
10
10
  return digitCount >= PHONE_DIGIT_MIN && digitCount <= PHONE_DIGIT_MAX;
11
11
  }
12
+ /**
13
+ * True when `accept` (an extension like `.pdf`/`pdf`, a MIME type like
14
+ * `image/png`, or a MIME wildcard like `image/*`) matches the file.
15
+ */
16
+ function fileMatchesAccept(accept, file) {
17
+ const a = accept.trim().toLowerCase();
18
+ if (!a)
19
+ return false;
20
+ const type = (file.type ?? '').toLowerCase();
21
+ const name = (file.name ?? '').toLowerCase();
22
+ // MIME wildcard, e.g. "image/*" → matches "image/png"
23
+ if (a.endsWith('/*'))
24
+ return type.startsWith(a.slice(0, a.length - 1));
25
+ // Full MIME type, e.g. "image/png"
26
+ if (a.includes('/'))
27
+ return type === a;
28
+ // Extension, with or without a leading dot
29
+ const ext = a.startsWith('.') ? a : `.${a}`;
30
+ return name.endsWith(ext);
31
+ }
32
+ /**
33
+ * Enforce a file field's `accept` / `maxSizeMb` constraints against an uploaded
34
+ * file's metadata. Shared by the client (pre-submit) and the server (multipart
35
+ * submit) so both apply identical rules. `code` distinguishes a rejected type
36
+ * (400) from an oversize file (413) at the API boundary.
37
+ */
38
+ export function validateFileConstraints(field, file) {
39
+ const accept = field.validation?.accept;
40
+ if (accept && accept.length > 0) {
41
+ if (!accept.some(a => fileMatchesAccept(a, file))) {
42
+ return { ok: false, code: 'type', message: `File type not allowed. Accepted types: ${accept.join(', ')}` };
43
+ }
44
+ }
45
+ const maxSizeMb = field.validation?.maxSizeMb;
46
+ if (maxSizeMb !== undefined) {
47
+ if (file.size > maxSizeMb * 1024 * 1024) {
48
+ return { ok: false, code: 'size', message: `File exceeds the maximum size of ${maxSizeMb}MB` };
49
+ }
50
+ }
51
+ return { ok: true };
52
+ }
12
53
  export function buildFormValidationSchema(fields) {
13
54
  const shape = {};
14
55
  for (const field of fields) {
15
- if (field.type === 'html' || field.type === 'stepBreak' || field.type === 'recaptcha')
16
- continue; // display-only or meta fields
56
+ // display-only or meta fields; `file` values are multipart binaries enforced
57
+ // separately via validateFileConstraints (they never reach this text schema).
58
+ if (field.type === 'html' || field.type === 'stepBreak' || field.type === 'recaptcha' || field.type === 'file')
59
+ continue;
17
60
  let fieldSchema;
18
61
  switch (field.type) {
19
62
  case 'email':
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/forms/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,4FAA4F;AAC5F,MAAM,WAAW,GAAG,wBAAwB,CAAA;AAC5C,MAAM,eAAe,GAAG,CAAC,CAAA;AACzB,MAAM,eAAe,GAAG,EAAE,CAAA;AAE1B,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAA;IAClD,OAAO,UAAU,IAAI,eAAe,IAAI,UAAU,IAAI,eAAe,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAA6B;IACrE,MAAM,KAAK,GAAiC,EAAE,CAAA;IAE9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,SAAQ,CAAC,8BAA8B;QAE9H,IAAI,WAAyB,CAAA;QAE7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO;gBACV,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;gBAChC,MAAK;YACP,KAAK,OAAO;gBACV,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAA;gBAClF,MAAK;YACP,KAAK,UAAU;gBACb,WAAW,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;gBACzB,MAAK;YACP,KAAK,MAAM;gBACT,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA,CAAC,kBAAkB;gBAC3C,MAAK;YACP,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO;gBACV,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;gBACzF,MAAK;YACP,KAAK,aAAa;gBAChB,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;gBACjC,MAAK;YACP;gBACE,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;QAC5B,CAAC;QAED,8FAA8F;QAC9F,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;YACrF,IAAI,SAAS,GAAgB,WAAW,CAAA;YACxC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS;gBAAE,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YACrF,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS;gBAAE,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YACrF,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO;gBAAE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;YAC/F,WAAW,GAAG,SAAS,CAAA;QACzB,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,2EAA2E;QAC3E,uDAAuD;QACvD,IAAI,KAAK,CAAC,QAAQ,IAAI,WAAW,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;YACzD,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAA;QAC7G,CAAC;QAED,mCAAmC;QACnC,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAA;YAChC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,EAAE,EAAE,CAAC,CAAA;QAC5G,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAA;YAChC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,EAAE,EAAE,CAAC,CAAA;QAC5G,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;QACtC,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,qBAAqB,CACnC,SAAwB,EACxB,IAA6B;IAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAEvC,QAAQ,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAC9D,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAC9D,KAAK,UAAU;YACb,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;QACpE,KAAK,UAAU;YACb,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;QAC9G,KAAK,cAAc;YACjB,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;QAC/G;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAuC,EACvC,IAA6B;IAE7B,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACxD,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;AAC9E,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/forms/validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ax-invalidation.d.ts","sourceRoot":"","sources":["../../src/hooks/ax-invalidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAU1D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAQjG"}
1
+ {"version":3,"file":"ax-invalidation.d.ts","sourceRoot":"","sources":["../../src/hooks/ax-invalidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAW1D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAQjG"}
@@ -1,6 +1,7 @@
1
1
  /** The content lifecycle events that invalidate AX projections. */
2
2
  const AX_INVALIDATION_EVENTS = [
3
3
  'content:afterPublish',
4
+ 'content:afterUnpublish',
4
5
  'content:afterUpdate',
5
6
  'content:afterDelete',
6
7
  'content:afterCreate',
@@ -1 +1 @@
1
- {"version":3,"file":"ax-invalidation.js","sourceRoot":"","sources":["../../src/hooks/ax-invalidation.ts"],"names":[],"mappings":"AAGA,mEAAmE;AACnE,MAAM,sBAAsB,GAAG;IAC7B,sBAAsB;IACtB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;CACtB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAgC,EAAE,QAAsB;IACzF,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE,CAAC;QAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAgB,EAAE,EAAE;YAC5C,MAAM,CAAC,GAAG,OAA6C,CAAA;YACvD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;YAC9C,IAAI,MAAM;gBAAE,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,MAAM,IAAI,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ax-invalidation.js","sourceRoot":"","sources":["../../src/hooks/ax-invalidation.ts"],"names":[],"mappings":"AAGA,mEAAmE;AACnE,MAAM,sBAAsB,GAAG;IAC7B,sBAAsB;IACtB,wBAAwB;IACxB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;CACtB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAgC,EAAE,QAAsB;IACzF,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE,CAAC;QAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAgB,EAAE,EAAE;YAC5C,MAAM,CAAC,GAAG,OAA6C,CAAA;YACvD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;YAC9C,IAAI,MAAM;gBAAE,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,MAAM,IAAI,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -9,6 +9,7 @@ export interface ContentHookDispatcher {
9
9
  afterDelete(content: KywiContentNode): Promise<void>;
10
10
  beforePublish(content: KywiContentNode): Promise<void>;
11
11
  afterPublish(content: KywiContentNode): Promise<void>;
12
+ afterUnpublish(content: KywiContentNode): Promise<void>;
12
13
  beforeApprove(content: KywiContentNode): Promise<void>;
13
14
  afterApprove(content: KywiContentNode): Promise<void>;
14
15
  validate(data: Record<string, unknown>): Promise<void>;