@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinned-audience.js","sourceRoot":"","sources":["../../../src/audiences/collectors/pinned-audience.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG5C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA4B,EAC5B,eAA2B;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AACrE,CAAC"}
@@ -11,6 +11,7 @@ export declare const COOKIE_MAX_AGE: {
11
11
  readonly SIGNALS: 60;
12
12
  readonly VISITOR: number;
13
13
  readonly UTM: number;
14
+ readonly AUDIENCE: number;
14
15
  readonly OPTOUT: number;
15
16
  readonly KNOWN: number;
16
17
  readonly PREVIEW_INIT: 30;
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/audiences/cookies.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAA;AAEV,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAA;AAEV,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMnF;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQ1F;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBtE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;CAAE,GACrE,MAAM,CAQR"}
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/audiences/cookies.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAA;AAEV,eAAO,MAAM,cAAc;;;;;;;;CAWjB,CAAA;AAEV,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMnF;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQ1F;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBtE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;CAAE,GACrE,MAAM,CAQR"}
@@ -12,6 +12,10 @@ export const COOKIE_MAX_AGE = {
12
12
  SIGNALS: 60,
13
13
  VISITOR: 2 * 365 * 24 * 3600,
14
14
  UTM: 30 * 24 * 3600,
15
+ // The client-pinned audience persists on the same horizon as UTM attribution:
16
+ // long enough to carry a client-only resolution (behavioral / self-ID) into
17
+ // later server renders, short enough that a stale segment ages out.
18
+ AUDIENCE: 30 * 24 * 3600,
15
19
  OPTOUT: 365 * 24 * 3600,
16
20
  KNOWN: 24 * 3600,
17
21
  PREVIEW_INIT: 30,
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/audiences/cookies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/audiences/cookies.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/audiences/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAK1F,MAAM,WAAW,oBAAoB;IAAG,SAAS,EAAE,QAAQ,EAAE,CAAA;CAAE;AAC/D,MAAM,WAAW,cAAc;IAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE;AAe9F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAkBjF"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/audiences/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAM1F,MAAM,WAAW,oBAAoB;IAAG,SAAS,EAAE,QAAQ,EAAE,CAAA;CAAE;AAC/D,MAAM,WAAW,cAAc;IAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE;AAe9F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CA4BjF"}
@@ -1,6 +1,7 @@
1
1
  import { createEmptySignals } from './types.js';
2
- import { runServerCollectors } from './collectors/index.js';
2
+ import { runServerCollectors, collectPinnedAudience } from './collectors/index.js';
3
3
  import { resolveAudiences } from './evaluator/resolver.js';
4
+ import { parseCookies } from './cookies.js';
4
5
  function mergeSignals(base, partial) {
5
6
  return {
6
7
  utm: partial.utm ?? base.utm,
@@ -23,8 +24,15 @@ export function createAudienceEngine(config) {
23
24
  }
24
25
  const isOptedOut = signals.meta.isOptedOut;
25
26
  const { winningAudienceId, allMatchedIds } = resolveAudiences(config.audiences, signals);
27
+ // Prefer a client-pinned audience (kywi_audience cookie) when it names a
28
+ // currently-active audience — this carries a client-only resolution
29
+ // (behavioral / self-ID) into the server render. Opt-out still wins below,
30
+ // and `allMatchedIds` stays signal-derived (the pin overrides the winner,
31
+ // not the set of audiences the current signals matched).
32
+ const pinnedAudienceId = collectPinnedAudience(parseCookies(context.request.headers.get('cookie') ?? ''), config.audiences);
33
+ const resolvedWinner = pinnedAudienceId ?? winningAudienceId;
26
34
  return {
27
- winningAudienceId: isOptedOut ? null : winningAudienceId,
35
+ winningAudienceId: isOptedOut ? null : resolvedWinner,
28
36
  allMatchedIds,
29
37
  signals,
30
38
  isOptedOut,
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/audiences/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAK1D,SAAS,YAAY,CAAC,IAAoB,EAAE,OAAgC;IAC1E,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;QACxC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;QACjD,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE;QAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;QAC3C,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE;QACnD,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE;KACxC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA4B;IAC/D,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,OAAuB;YACpC,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1D,IAAI,OAAO,GAAG,YAAY,CAAC,kBAAkB,EAAE,EAAE,aAAa,CAAC,CAAA;YAC/D,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;YACzD,CAAC;YACD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAA;YAC1C,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACxF,OAAO;gBACL,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;gBACxD,aAAa;gBACb,OAAO;gBACP,UAAU;aACX,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/audiences/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAK3C,SAAS,YAAY,CAAC,IAAoB,EAAE,OAAgC;IAC1E,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;QACxC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;QACjD,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE;QAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;QAC3C,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE;QACnD,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE;KACxC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA4B;IAC/D,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,OAAuB;YACpC,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1D,IAAI,OAAO,GAAG,YAAY,CAAC,kBAAkB,EAAE,EAAE,aAAa,CAAC,CAAA;YAC/D,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;YACzD,CAAC;YACD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAA;YAC1C,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACxF,yEAAyE;YACzE,oEAAoE;YACpE,2EAA2E;YAC3E,0EAA0E;YAC1E,yDAAyD;YACzD,MAAM,gBAAgB,GAAG,qBAAqB,CAC5C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EACzD,MAAM,CAAC,SAAS,CACjB,CAAA;YACD,MAAM,cAAc,GAAG,gBAAgB,IAAI,iBAAiB,CAAA;YAC5D,OAAO;gBACL,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc;gBACrD,aAAa;gBACb,OAAO;gBACP,UAAU;aACX,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export * from './types.js';
2
2
  export * from './schema.js';
3
3
  export * from './cookies.js';
4
+ export { utmCookieValue, UTM_COOKIE } from './utm-persistence.js';
4
5
  export * from './engine.js';
5
6
  export * from './hmac.js';
6
7
  export { runServerCollectors } from './collectors/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audiences/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACzH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACxI,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC1I,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACxG,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,KAAK,4BAA4B,EAAE,MAAM,cAAc,CAAA;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC3H,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audiences/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAI5B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjE,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACzH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACxI,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC1I,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACxG,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,KAAK,4BAA4B,EAAE,MAAM,cAAc,CAAA;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC3H,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -1,6 +1,10 @@
1
1
  export * from './types.js';
2
2
  export * from './schema.js';
3
3
  export * from './cookies.js';
4
+ // Writer for the kywi_utm cookie collectUtm reads. Also published as a
5
+ // dependency-free leaf entry (`@kywi-software/core/audiences/utm-persistence`)
6
+ // for edge middleware that must not pull in this DB-backed barrel.
7
+ export { utmCookieValue, UTM_COOKIE } from './utm-persistence.js';
4
8
  export * from './engine.js';
5
9
  export * from './hmac.js';
6
10
  export { runServerCollectors } from './collectors/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audiences/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAiE,MAAM,yBAAyB,CAAA;AACzH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAsE,MAAM,qBAAqB,CAAA;AACxI,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAA2C,MAAM,oBAAoB,CAAA;AAC1I,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAA8B,MAAM,gBAAgB,CAAA;AACxG,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAqC,MAAM,cAAc,CAAA;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAA4B,MAAM,cAAc,CAAA;AAC3H,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAiC,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audiences/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,uEAAuE;AACvE,+EAA+E;AAC/E,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjE,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAiE,MAAM,yBAAyB,CAAA;AACzH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAsE,MAAM,qBAAqB,CAAA;AACxI,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAA2C,MAAM,oBAAoB,CAAA;AAC1I,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAA8B,MAAM,gBAAgB,CAAA;AACxG,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAqC,MAAM,cAAc,CAAA;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAA4B,MAAM,cAAc,CAAA;AAC3H,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAiC,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * UTM persistence — the *write* side of the `kywi_utm` cookie contract.
3
+ *
4
+ * `collectUtm` (the *read* side, `audiences/collectors/utm.ts`) resolves each UTM
5
+ * field from the request URL's query string, falling back to a `kywi_utm` cookie:
6
+ *
7
+ * source: url.searchParams.get('utm_source') ?? cookieUtm.source ?? null
8
+ *
9
+ * The read side shipped, but nothing wrote the cookie, so UTM-triggered
10
+ * personalization only survived on the exact request that carried the `utm_*`
11
+ * params — it was lost the moment the visitor navigated to another page
12
+ * (journey-06 TC-06.003 / "UTM params persist across internal navigation").
13
+ *
14
+ * This module is that missing writer, living next to its reader so a scaffolded
15
+ * app and the reference app share one implementation: when a public request
16
+ * carries any `utm_*` query param, the framework middleware persists them to the
17
+ * `kywi_utm` cookie (the same name + JSON shape `collectUtm` reads), so
18
+ * subsequent same-visitor page loads keep matching the campaign audience
19
+ * server-side. Pages with no `utm_*` params return `null` here so the caller
20
+ * leaves any existing cookie untouched — ordinary navigation never clobbers a
21
+ * persisted campaign.
22
+ *
23
+ * EDGE-SAFE LEAF MODULE: this file has NO imports (and therefore no transitive
24
+ * DB dependency), because it is imported from Next.js edge middleware — where
25
+ * core's DB-backed code (drizzle/postgres) cannot run. Keep it dependency-free.
26
+ * It is published as its own export entry (`@kywi-software/core/audiences/
27
+ * utm-persistence`) so importing it never drags in the DB-backed `audiences`
28
+ * barrel.
29
+ */
30
+ /**
31
+ * Cookie name `collectUtm` reads (mirrors `COOKIE_NAMES.UTM` in
32
+ * `audiences/cookies.ts`). Kept as a literal here so this leaf module imports
33
+ * nothing — the `cookies` module pulls in `jose`, which this edge-safe writer
34
+ * does not need. The core test suite asserts this stays equal to
35
+ * `COOKIE_NAMES.UTM`, so the two can never drift.
36
+ */
37
+ export declare const UTM_COOKIE = "kywi_utm";
38
+ /**
39
+ * Build the `kywi_utm` cookie value for a request URL, or `null` when the URL
40
+ * carries no `utm_*` params (so the caller leaves any existing cookie in place).
41
+ * The JSON shape mirrors what `collectUtm` parses: `{ source, medium, campaign,
42
+ * term, content }` with only the present keys. Empty `utm_*` values are treated
43
+ * as absent, and a malformed URL yields `null`.
44
+ */
45
+ export declare function utmCookieValue(url: string): string | null;
46
+ //# sourceMappingURL=utm-persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utm-persistence.d.ts","sourceRoot":"","sources":["../../src/audiences/utm-persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,aAAa,CAAA;AAUpC;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAazD"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * UTM persistence — the *write* side of the `kywi_utm` cookie contract.
3
+ *
4
+ * `collectUtm` (the *read* side, `audiences/collectors/utm.ts`) resolves each UTM
5
+ * field from the request URL's query string, falling back to a `kywi_utm` cookie:
6
+ *
7
+ * source: url.searchParams.get('utm_source') ?? cookieUtm.source ?? null
8
+ *
9
+ * The read side shipped, but nothing wrote the cookie, so UTM-triggered
10
+ * personalization only survived on the exact request that carried the `utm_*`
11
+ * params — it was lost the moment the visitor navigated to another page
12
+ * (journey-06 TC-06.003 / "UTM params persist across internal navigation").
13
+ *
14
+ * This module is that missing writer, living next to its reader so a scaffolded
15
+ * app and the reference app share one implementation: when a public request
16
+ * carries any `utm_*` query param, the framework middleware persists them to the
17
+ * `kywi_utm` cookie (the same name + JSON shape `collectUtm` reads), so
18
+ * subsequent same-visitor page loads keep matching the campaign audience
19
+ * server-side. Pages with no `utm_*` params return `null` here so the caller
20
+ * leaves any existing cookie untouched — ordinary navigation never clobbers a
21
+ * persisted campaign.
22
+ *
23
+ * EDGE-SAFE LEAF MODULE: this file has NO imports (and therefore no transitive
24
+ * DB dependency), because it is imported from Next.js edge middleware — where
25
+ * core's DB-backed code (drizzle/postgres) cannot run. Keep it dependency-free.
26
+ * It is published as its own export entry (`@kywi-software/core/audiences/
27
+ * utm-persistence`) so importing it never drags in the DB-backed `audiences`
28
+ * barrel.
29
+ */
30
+ /**
31
+ * Cookie name `collectUtm` reads (mirrors `COOKIE_NAMES.UTM` in
32
+ * `audiences/cookies.ts`). Kept as a literal here so this leaf module imports
33
+ * nothing — the `cookies` module pulls in `jose`, which this edge-safe writer
34
+ * does not need. The core test suite asserts this stays equal to
35
+ * `COOKIE_NAMES.UTM`, so the two can never drift.
36
+ */
37
+ export const UTM_COOKIE = 'kywi_utm';
38
+ const UTM_KEYS = [
39
+ ['utm_source', 'source'],
40
+ ['utm_medium', 'medium'],
41
+ ['utm_campaign', 'campaign'],
42
+ ['utm_term', 'term'],
43
+ ['utm_content', 'content'],
44
+ ];
45
+ /**
46
+ * Build the `kywi_utm` cookie value for a request URL, or `null` when the URL
47
+ * carries no `utm_*` params (so the caller leaves any existing cookie in place).
48
+ * The JSON shape mirrors what `collectUtm` parses: `{ source, medium, campaign,
49
+ * term, content }` with only the present keys. Empty `utm_*` values are treated
50
+ * as absent, and a malformed URL yields `null`.
51
+ */
52
+ export function utmCookieValue(url) {
53
+ let params;
54
+ try {
55
+ params = new URL(url).searchParams;
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ const out = {};
61
+ for (const [param, key] of UTM_KEYS) {
62
+ const value = params.get(param);
63
+ if (value !== null && value !== '')
64
+ out[key] = value;
65
+ }
66
+ return Object.keys(out).length > 0 ? JSON.stringify(out) : null;
67
+ }
68
+ //# sourceMappingURL=utm-persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utm-persistence.js","sourceRoot":"","sources":["../../src/audiences/utm-persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAA;AAEpC,MAAM,QAAQ,GAAG;IACf,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,cAAc,EAAE,UAAU,CAAC;IAC5B,CAAC,UAAU,EAAE,MAAM,CAAC;IACpB,CAAC,aAAa,EAAE,SAAS,CAAC;CAClB,CAAA;AAEV;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,MAAuB,CAAA;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACtD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/auth/tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOzF;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOvF"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/auth/tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBzF;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOvF"}
@@ -1,7 +1,20 @@
1
1
  import { SignJWT } from 'jose';
2
2
  export async function issueAccessToken(user, secret) {
3
3
  const key = new TextEncoder().encode(secret);
4
- return new SignJWT({ sub: user.id, role: user.role, groups: user.groups, type: 'access' })
4
+ // Embed per-site membership (#73) as the `sites` claim so authorization needs
5
+ // no DB round-trip per request. Omit it when undefined so a caller that never
6
+ // resolved memberships doesn't claim "zero sites" — the reader treats an
7
+ // absent claim as legacy-unrestricted, whereas an empty array is an explicit
8
+ // "zero membership rows" (also unrestricted, but a definite statement).
9
+ const claims = {
10
+ sub: user.id,
11
+ role: user.role,
12
+ groups: user.groups,
13
+ type: 'access',
14
+ };
15
+ if (user.siteMemberships !== undefined)
16
+ claims.sites = user.siteMemberships;
17
+ return new SignJWT(claims)
5
18
  .setProtectedHeader({ alg: 'HS256' })
6
19
  .setIssuedAt()
7
20
  .setExpirationTime('15m')
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/auth/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAiB,EAAE,MAAc;IACtE,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACvF,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SACpC,WAAW,EAAE;SACb,iBAAiB,CAAC,KAAK,CAAC;SACxB,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAc;IACpE,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SACjD,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SACpC,WAAW,EAAE;SACb,iBAAiB,CAAC,IAAI,CAAC;SACvB,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/auth/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAiB,EAAE,MAAc;IACtE,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5C,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,MAAM,GAA4B;QACtC,GAAG,EAAE,IAAI,CAAC,EAAE;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,QAAQ;KACf,CAAA;IACD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;QAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;IAC3E,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SACpC,WAAW,EAAE;SACb,iBAAiB,CAAC,KAAK,CAAC;SACxB,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAc;IACpE,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SACjD,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SACpC,WAAW,EAAE;SACb,iBAAiB,CAAC,IAAI,CAAC;SACvB,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC"}
@@ -2,7 +2,13 @@ import type { MediaConfig } from '../media/types.js';
2
2
  import type { AxContentNode, AxRenderContext } from '../ax/types.js';
3
3
  import type { AdapterConfig } from '../audiences/adapters/types.js';
4
4
  import type { AdminArea } from '../admin/registry.js';
5
- export type FieldType = 'text' | 'richText' | 'textarea' | 'select' | 'multiSelect' | 'relationship' | 'group' | 'image' | 'file' | 'date' | 'boolean' | 'number' | 'json' | 'color' | 'slug' | 'url' | 'email';
5
+ export type FieldType = 'text' | 'richText' | 'textarea' | 'select' | 'multiSelect' | 'relationship' | 'group' | 'image' | 'file' | 'date' | 'boolean' | 'number' | 'json' | 'color' | 'slug' | 'url' | 'email' | 'list';
6
+ /**
7
+ * The per-row type of a `list` (repeater) field. Each row is edited with the
8
+ * widget matching this type, and each stored array element is validated as the
9
+ * matching scalar (an `image` row stores a media UUID). Defaults to `'text'`.
10
+ */
11
+ export type ListItemType = 'text' | 'textarea' | 'number' | 'url' | 'email' | 'image';
6
12
  export interface FieldAccessConfig {
7
13
  read?: (ctx: {
8
14
  user: UserContext | null;
@@ -39,6 +45,8 @@ export interface FieldDefinition {
39
45
  relatedType?: string;
40
46
  /** Sub-fields when type is 'group' */
41
47
  fields?: FieldDefinition[];
48
+ /** Per-row item type when type is 'list' (repeater). Defaults to 'text'. */
49
+ itemType?: ListItemType;
42
50
  defaultValue?: unknown;
43
51
  /** Value-level validation rules (min/max/length/pattern). */
44
52
  validation?: FieldValidation;
@@ -72,6 +80,21 @@ export interface UserContext {
72
80
  id: string;
73
81
  role: string;
74
82
  groups: string[];
83
+ /**
84
+ * Site UUIDs this user is a member of (per-site API authorization, #73).
85
+ *
86
+ * Semantics — deliberately three-state:
87
+ * - `undefined` → membership is unknown (old access token minted before the
88
+ * `sites` claim existed, or a code path that never resolved memberships).
89
+ * Treated as legacy-unrestricted so old tokens are never denied.
90
+ * - `[]` → the user has ZERO membership rows. Existing single-site
91
+ * installs never created memberships, so a zero-row user is also
92
+ * legacy-unrestricted. Enforcement kicks in only at ≥1 row.
93
+ * - `[uuid…]` → the user is restricted to EXACTLY these sites.
94
+ *
95
+ * `superAdmin` bypasses this scoping regardless of the value.
96
+ */
97
+ siteMemberships?: string[];
75
98
  }
76
99
  export interface KywiContext {
77
100
  cache: {
@@ -134,6 +157,10 @@ export interface ContentTypeHooks {
134
157
  content: KywiContentNode;
135
158
  kywi: KywiContext;
136
159
  }) => Promise<void>;
160
+ afterUnpublish?: (ctx: {
161
+ content: KywiContentNode;
162
+ kywi: KywiContext;
163
+ }) => Promise<void>;
137
164
  }
138
165
  export interface RegionDefinition {
139
166
  name: string;
@@ -233,7 +260,7 @@ export interface PluginConfig {
233
260
  config: Record<string, unknown>;
234
261
  }) => void | Promise<void>;
235
262
  }
236
- export type ModulePropType = Exclude<FieldType, 'group'>;
263
+ export type ModulePropType = Exclude<FieldType, 'group' | 'list'>;
237
264
  export interface ModulePropDefinition {
238
265
  type: ModulePropType;
239
266
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAgdA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,wBAAwB,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAgfA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,wBAAwB,CAAA"}
@@ -5,6 +5,14 @@ export interface BulkCreateResult {
5
5
  created: number;
6
6
  ids: string[];
7
7
  }
8
+ /**
9
+ * The distinct set of site UUIDs the given content ids belong to (#73). Bulk
10
+ * mutation routes are keyed by id only, so before acting they call this to
11
+ * authorize each target's owning site against the caller's memberships —
12
+ * otherwise a siteAdmin of one site could bulk-edit/delete another site's rows
13
+ * by id. Missing ids simply contribute no site.
14
+ */
15
+ export declare function getSiteIdsForIds(db: KywiDb, ids: string[]): Promise<string[]>;
8
16
  /**
9
17
  * Bulk-create content items by iterating and calling createContent per item,
10
18
  * preserving slug generation and custom field splitting business logic.
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-queries.d.ts","sourceRoot":"","sources":["../../src/db/bulk-queries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAG3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,CAAA;CACd;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,EAC3C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAChC,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,CAAA;CACd;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,EAC3C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAUzC;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAUzC;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAcjB"}
1
+ {"version":3,"file":"bulk-queries.d.ts","sourceRoot":"","sources":["../../src/db/bulk-queries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAG3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,CAAA;CACd;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOnF;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,EAC3C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAChC,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,CAAA;CACd;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,EAC3C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAUzC;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAUzC;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAcjB"}
@@ -1,6 +1,22 @@
1
1
  import { inArray, sql } from 'drizzle-orm';
2
2
  import { kywiContent } from '../schema/base.js';
3
3
  import { createContent, updateContent } from './content-queries.js';
4
+ /**
5
+ * The distinct set of site UUIDs the given content ids belong to (#73). Bulk
6
+ * mutation routes are keyed by id only, so before acting they call this to
7
+ * authorize each target's owning site against the caller's memberships —
8
+ * otherwise a siteAdmin of one site could bulk-edit/delete another site's rows
9
+ * by id. Missing ids simply contribute no site.
10
+ */
11
+ export async function getSiteIdsForIds(db, ids) {
12
+ if (ids.length === 0)
13
+ return [];
14
+ const rows = await db
15
+ .select({ siteId: kywiContent.siteId })
16
+ .from(kywiContent)
17
+ .where(inArray(kywiContent.id, ids));
18
+ return [...new Set(rows.map(r => r.siteId))];
19
+ }
4
20
  /**
5
21
  * Bulk-create content items by iterating and calling createContent per item,
6
22
  * preserving slug generation and custom field splitting business logic.
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-queries.js","sourceRoot":"","sources":["../../src/db/bulk-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulk-queries.js","sourceRoot":"","sources":["../../src/db/bulk-queries.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,30 @@
1
+ import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
2
+ import type { ContentTypeConfig } from '../config/types.js';
1
3
  import type { KywiDb } from './client.js';
4
+ /** The custom (side-table) shape a content type contributes to an apply. */
5
+ export interface ResolvedChangesetType {
6
+ customTable: PgTableWithColumns<any> | null;
7
+ customFieldNames: readonly string[];
8
+ }
9
+ /**
10
+ * Resolve a content type name to its custom side-table + declared field names,
11
+ * or null when the type is unknown. Supplied by the HTTP route / scheduler
12
+ * (which hold the config-derived maps) so publish can round-trip custom fields.
13
+ */
14
+ export type ResolveChangesetType = (contentTypeName: string) => ResolvedChangesetType | null;
15
+ export interface PublishChangesetOptions {
16
+ resolveType?: ResolveChangesetType;
17
+ }
18
+ /**
19
+ * Build the single {@link ResolveChangesetType} used by every publish entry point
20
+ * (the changeset HTTP route, the scheduler HTTP route, and the handler-exposed
21
+ * resolver a host-started scheduler wires in) so a publish round-trips a content
22
+ * type's custom fields (#63). The returned closure reads the maps at call time,
23
+ * so it stays correct after a config reload mutates them in place. A known type
24
+ * yields its custom table (null if it has none) plus declared field names; an
25
+ * unknown type yields null (base-only apply).
26
+ */
27
+ export declare function buildChangesetTypeResolver(contentTypeMap: Map<string, ContentTypeConfig>, customTableMap: Map<string, PgTableWithColumns<any>>): ResolveChangesetType;
2
28
  export declare function createChangeset(db: KywiDb, data: {
3
29
  siteId: string;
4
30
  name: string;
@@ -82,6 +108,6 @@ export declare function listChangesetItems(db: KywiDb, changesetId: string): Pro
82
108
  changesetId: string;
83
109
  versionId: string | null;
84
110
  }[]>;
85
- export declare function publishChangeset(db: KywiDb, changesetId: string, publishedBy: string): Promise<any>;
111
+ export declare function publishChangeset(db: KywiDb, changesetId: string, publishedBy: string, opts?: PublishChangesetOptions): Promise<any>;
86
112
  export declare function rollbackChangeset(db: KywiDb, changesetId: string): Promise<any>;
87
113
  //# sourceMappingURL=changeset-queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"changeset-queries.d.ts","sourceRoot":"","sources":["../../src/db/changeset-queries.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;GAYhF;AAOD,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;UASzE;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;KAS/E;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,kBAAkB,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,EACnH,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;UAehB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;;;;;;;GAYrF;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;;;;;;;KAKvE;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,gBAiEpB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,gBAyCpB"}
1
+ {"version":3,"file":"changeset-queries.d.ts","sourceRoot":"","sources":["../../src/db/changeset-queries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAK3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC3C,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,qBAAqB,GAAG,IAAI,CAAA;AAE5F,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC9C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,GACnD,oBAAoB,CAStB;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;GAYhF;AAOD,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;UASzE;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;KAS/E;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,kBAAkB,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,EACnH,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;UAehB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;;;;;;;GAYrF;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;;;;;;;KAKvE;AA4BD,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,uBAAuB,gBA0E/B;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,gBAyCpB"}