@kywi-software/core 0.14.0 → 0.15.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 (633) hide show
  1. package/AGENT-PATTERNS.md +200 -17
  2. package/README.md +38 -12
  3. package/dist/admin/audience-editor.d.ts +2 -0
  4. package/dist/admin/audience-editor.d.ts.map +1 -1
  5. package/dist/admin/audience-editor.js +4 -2
  6. package/dist/admin/audience-editor.js.map +1 -1
  7. package/dist/admin/chrome.d.ts.map +1 -1
  8. package/dist/admin/chrome.js +6 -7
  9. package/dist/admin/chrome.js.map +1 -1
  10. package/dist/admin/condition-builder.d.ts.map +1 -1
  11. package/dist/admin/condition-builder.js +16 -3
  12. package/dist/admin/condition-builder.js.map +1 -1
  13. package/dist/admin/field-components.d.ts.map +1 -1
  14. package/dist/admin/field-components.js +27 -1
  15. package/dist/admin/field-components.js.map +1 -1
  16. package/dist/admin/form-helpers.d.ts.map +1 -1
  17. package/dist/admin/form-helpers.js +6 -1
  18. package/dist/admin/form-helpers.js.map +1 -1
  19. package/dist/admin/layout-editor/chrome-env.d.ts +35 -0
  20. package/dist/admin/layout-editor/chrome-env.d.ts.map +1 -0
  21. package/dist/admin/layout-editor/chrome-env.js +13 -0
  22. package/dist/admin/layout-editor/chrome-env.js.map +1 -0
  23. package/dist/admin/layout-editor/component-actions.d.ts +58 -7
  24. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  25. package/dist/admin/layout-editor/component-actions.js +131 -5
  26. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  27. package/dist/admin/layout-editor/component-fork.d.ts +4 -4
  28. package/dist/admin/layout-editor/component-fork.d.ts.map +1 -1
  29. package/dist/admin/layout-editor/component-fork.js +76 -10
  30. package/dist/admin/layout-editor/component-fork.js.map +1 -1
  31. package/dist/admin/layout-editor/component-picker-field.d.ts +17 -3
  32. package/dist/admin/layout-editor/component-picker-field.d.ts.map +1 -1
  33. package/dist/admin/layout-editor/component-picker-field.js +5 -2
  34. package/dist/admin/layout-editor/component-picker-field.js.map +1 -1
  35. package/dist/admin/layout-editor/drag-feedback.d.ts +25 -1
  36. package/dist/admin/layout-editor/drag-feedback.d.ts.map +1 -1
  37. package/dist/admin/layout-editor/drag-feedback.js +9 -0
  38. package/dist/admin/layout-editor/drag-feedback.js.map +1 -1
  39. package/dist/admin/layout-editor/drag-utils.d.ts +103 -5
  40. package/dist/admin/layout-editor/drag-utils.d.ts.map +1 -1
  41. package/dist/admin/layout-editor/drag-utils.js +131 -4
  42. package/dist/admin/layout-editor/drag-utils.js.map +1 -1
  43. package/dist/admin/layout-editor/editor-canvas.d.ts +11 -0
  44. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  45. package/dist/admin/layout-editor/editor-canvas.js +134 -20
  46. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  47. package/dist/admin/layout-editor/editor-dialog.d.ts +58 -3
  48. package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -1
  49. package/dist/admin/layout-editor/editor-dialog.js +71 -9
  50. package/dist/admin/layout-editor/editor-dialog.js.map +1 -1
  51. package/dist/admin/layout-editor/editor-state.d.ts +119 -0
  52. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  53. package/dist/admin/layout-editor/editor-state.js +188 -6
  54. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  55. package/dist/admin/layout-editor/editor-toolbar.d.ts +10 -1
  56. package/dist/admin/layout-editor/editor-toolbar.d.ts.map +1 -1
  57. package/dist/admin/layout-editor/editor-toolbar.js +2 -2
  58. package/dist/admin/layout-editor/editor-toolbar.js.map +1 -1
  59. package/dist/admin/layout-editor/editor.css +216 -8
  60. package/dist/admin/layout-editor/inline-text.d.ts +15 -1
  61. package/dist/admin/layout-editor/inline-text.d.ts.map +1 -1
  62. package/dist/admin/layout-editor/inline-text.js +30 -2
  63. package/dist/admin/layout-editor/inline-text.js.map +1 -1
  64. package/dist/admin/layout-editor/layout-editor.d.ts +21 -16
  65. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  66. package/dist/admin/layout-editor/layout-editor.js +40 -17
  67. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  68. package/dist/admin/layout-editor/linked-component-notes.d.ts +88 -0
  69. package/dist/admin/layout-editor/linked-component-notes.d.ts.map +1 -0
  70. package/dist/admin/layout-editor/linked-component-notes.js +88 -0
  71. package/dist/admin/layout-editor/linked-component-notes.js.map +1 -0
  72. package/dist/admin/layout-editor/module-overlay.d.ts +23 -4
  73. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  74. package/dist/admin/layout-editor/module-overlay.js +56 -10
  75. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  76. package/dist/admin/layout-editor/module-variant-container-config.d.ts.map +1 -1
  77. package/dist/admin/layout-editor/module-variant-container-config.js +9 -2
  78. package/dist/admin/layout-editor/module-variant-container-config.js.map +1 -1
  79. package/dist/admin/layout-editor/module-variant-container-panel.d.ts +75 -0
  80. package/dist/admin/layout-editor/module-variant-container-panel.d.ts.map +1 -0
  81. package/dist/admin/layout-editor/module-variant-container-panel.js +29 -0
  82. package/dist/admin/layout-editor/module-variant-container-panel.js.map +1 -0
  83. package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
  84. package/dist/admin/layout-editor/node-lookup.js +33 -3
  85. package/dist/admin/layout-editor/node-lookup.js.map +1 -1
  86. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  87. package/dist/admin/layout-editor/overlay-shell.js +19 -4
  88. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  89. package/dist/admin/layout-editor/props-panel.d.ts +28 -11
  90. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  91. package/dist/admin/layout-editor/props-panel.js +75 -125
  92. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  93. package/dist/admin/layout-editor/section-variant-container-config.d.ts.map +1 -1
  94. package/dist/admin/layout-editor/section-variant-container-config.js +11 -2
  95. package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -1
  96. package/dist/admin/layout-editor/use-chrome-flip.d.ts +99 -11
  97. package/dist/admin/layout-editor/use-chrome-flip.d.ts.map +1 -1
  98. package/dist/admin/layout-editor/use-chrome-flip.js +268 -97
  99. package/dist/admin/layout-editor/use-chrome-flip.js.map +1 -1
  100. package/dist/admin/layout-editor/use-component-connect.d.ts +13 -0
  101. package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -1
  102. package/dist/admin/layout-editor/use-component-connect.js +116 -20
  103. package/dist/admin/layout-editor/use-component-connect.js.map +1 -1
  104. package/dist/admin/layout-editor/use-component-fork.d.ts +49 -19
  105. package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -1
  106. package/dist/admin/layout-editor/use-component-fork.js +28 -19
  107. package/dist/admin/layout-editor/use-component-fork.js.map +1 -1
  108. package/dist/admin/layout-editor/use-component-library.d.ts +4 -4
  109. package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -1
  110. package/dist/admin/layout-editor/use-component-library.js +1 -1
  111. package/dist/admin/layout-editor/use-component-library.js.map +1 -1
  112. package/dist/admin/layout-editor/use-editor-dnd.d.ts +10 -0
  113. package/dist/admin/layout-editor/use-editor-dnd.d.ts.map +1 -1
  114. package/dist/admin/layout-editor/use-editor-dnd.js +234 -14
  115. package/dist/admin/layout-editor/use-editor-dnd.js.map +1 -1
  116. package/dist/admin/layout-editor/variant-container-config.d.ts.map +1 -1
  117. package/dist/admin/layout-editor/variant-container-config.js +1 -1
  118. package/dist/admin/layout-editor/variant-container-config.js.map +1 -1
  119. package/dist/admin/layout-editor/variant-editor.d.ts +16 -15
  120. package/dist/admin/layout-editor/variant-editor.d.ts.map +1 -1
  121. package/dist/admin/layout-editor/variant-editor.js +16 -5
  122. package/dist/admin/layout-editor/variant-editor.js.map +1 -1
  123. package/dist/admin/primitives.d.ts.map +1 -1
  124. package/dist/admin/primitives.js +1 -1
  125. package/dist/admin/primitives.js.map +1 -1
  126. package/dist/admin/registry.d.ts +12 -0
  127. package/dist/admin/registry.d.ts.map +1 -1
  128. package/dist/admin/registry.js +12 -0
  129. package/dist/admin/registry.js.map +1 -1
  130. package/dist/admin/rule-tester.d.ts +1 -0
  131. package/dist/admin/rule-tester.d.ts.map +1 -1
  132. package/dist/admin/rule-tester.js +7 -4
  133. package/dist/admin/rule-tester.js.map +1 -1
  134. package/dist/admin/server.d.ts +10 -1
  135. package/dist/admin/server.d.ts.map +1 -1
  136. package/dist/admin/server.js +4 -1
  137. package/dist/admin/server.js.map +1 -1
  138. package/dist/admin/signal-options.d.ts +17 -0
  139. package/dist/admin/signal-options.d.ts.map +1 -1
  140. package/dist/admin/signal-options.js +28 -0
  141. package/dist/admin/signal-options.js.map +1 -1
  142. package/dist/admin/site-switcher.d.ts +16 -3
  143. package/dist/admin/site-switcher.d.ts.map +1 -1
  144. package/dist/admin/site-switcher.js +18 -3
  145. package/dist/admin/site-switcher.js.map +1 -1
  146. package/dist/admin/styles/admin.css +0 -3
  147. package/dist/admin/surface-matcher.d.ts +6 -2
  148. package/dist/admin/surface-matcher.d.ts.map +1 -1
  149. package/dist/admin/surface-matcher.js +42 -5
  150. package/dist/admin/surface-matcher.js.map +1 -1
  151. package/dist/admin/surfaces/audiences/audiences-data.d.ts +5 -0
  152. package/dist/admin/surfaces/audiences/audiences-data.d.ts.map +1 -1
  153. package/dist/admin/surfaces/audiences/audiences-data.js +3 -0
  154. package/dist/admin/surfaces/audiences/audiences-data.js.map +1 -1
  155. package/dist/admin/surfaces/components/components-data.d.ts +31 -11
  156. package/dist/admin/surfaces/components/components-data.d.ts.map +1 -1
  157. package/dist/admin/surfaces/components/components-data.js +17 -4
  158. package/dist/admin/surfaces/components/components-data.js.map +1 -1
  159. package/dist/admin/surfaces/components/components-list.d.ts.map +1 -1
  160. package/dist/admin/surfaces/components/components-list.js +20 -7
  161. package/dist/admin/surfaces/components/components-list.js.map +1 -1
  162. package/dist/admin/surfaces/components/definition-canvas.d.ts +11 -3
  163. package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -1
  164. package/dist/admin/surfaces/components/definition-canvas.js +138 -17
  165. package/dist/admin/surfaces/components/definition-canvas.js.map +1 -1
  166. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -1
  167. package/dist/admin/surfaces/dashboard/dashboard-index.js +2 -2
  168. package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -1
  169. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
  170. package/dist/admin/surfaces/layouts/layout-editor-client.js +12 -11
  171. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
  172. package/dist/admin/surfaces/menus/menu-editor.d.ts.map +1 -1
  173. package/dist/admin/surfaces/menus/menu-editor.js +17 -4
  174. package/dist/admin/surfaces/menus/menu-editor.js.map +1 -1
  175. package/dist/admin/surfaces/menus/menu-tree.d.ts +18 -4
  176. package/dist/admin/surfaces/menus/menu-tree.d.ts.map +1 -1
  177. package/dist/admin/surfaces/menus/menu-tree.js +18 -3
  178. package/dist/admin/surfaces/menus/menu-tree.js.map +1 -1
  179. package/dist/admin/surfaces/menus/menus-data.d.ts +18 -0
  180. package/dist/admin/surfaces/menus/menus-data.d.ts.map +1 -1
  181. package/dist/admin/surfaces/menus/menus-data.js +4 -0
  182. package/dist/admin/surfaces/menus/menus-data.js.map +1 -1
  183. package/dist/admin/surfaces/menus/menus-list.d.ts.map +1 -1
  184. package/dist/admin/surfaces/menus/menus-list.js +2 -12
  185. package/dist/admin/surfaces/menus/menus-list.js.map +1 -1
  186. package/dist/admin/surfaces/users/users-data.d.ts +14 -0
  187. package/dist/admin/surfaces/users/users-data.d.ts.map +1 -1
  188. package/dist/admin/surfaces/users/users-data.js +19 -0
  189. package/dist/admin/surfaces/users/users-data.js.map +1 -1
  190. package/dist/admin/surfaces/users/users-detail.d.ts.map +1 -1
  191. package/dist/admin/surfaces/users/users-detail.js +40 -4
  192. package/dist/admin/surfaces/users/users-detail.js.map +1 -1
  193. package/dist/admin/surfaces/users/users-new.d.ts.map +1 -1
  194. package/dist/admin/surfaces/users/users-new.js +8 -5
  195. package/dist/admin/surfaces/users/users-new.js.map +1 -1
  196. package/dist/admin/user-form.d.ts +10 -1
  197. package/dist/admin/user-form.d.ts.map +1 -1
  198. package/dist/admin/user-form.js +2 -2
  199. package/dist/admin/user-form.js.map +1 -1
  200. package/dist/api/admin-features-routes.js +2 -2
  201. package/dist/api/admin-features-routes.js.map +1 -1
  202. package/dist/api/api-key-routes.js +2 -2
  203. package/dist/api/api-key-routes.js.map +1 -1
  204. package/dist/api/audience-preview-routes.d.ts +7 -0
  205. package/dist/api/audience-preview-routes.d.ts.map +1 -1
  206. package/dist/api/audience-preview-routes.js +4 -4
  207. package/dist/api/audience-preview-routes.js.map +1 -1
  208. package/dist/api/audience-routes.d.ts +7 -0
  209. package/dist/api/audience-routes.d.ts.map +1 -1
  210. package/dist/api/audience-routes.js +31 -19
  211. package/dist/api/audience-routes.js.map +1 -1
  212. package/dist/api/audience-runtime-routes.d.ts +23 -0
  213. package/dist/api/audience-runtime-routes.d.ts.map +1 -1
  214. package/dist/api/audience-runtime-routes.js +511 -25
  215. package/dist/api/audience-runtime-routes.js.map +1 -1
  216. package/dist/api/auth-routes.d.ts.map +1 -1
  217. package/dist/api/auth-routes.js +10 -4
  218. package/dist/api/auth-routes.js.map +1 -1
  219. package/dist/api/auth.d.ts +1 -0
  220. package/dist/api/auth.d.ts.map +1 -1
  221. package/dist/api/auth.js +43 -3
  222. package/dist/api/auth.js.map +1 -1
  223. package/dist/api/ax-routes.d.ts.map +1 -1
  224. package/dist/api/ax-routes.js +7 -3
  225. package/dist/api/ax-routes.js.map +1 -1
  226. package/dist/api/bulk-routes.d.ts.map +1 -1
  227. package/dist/api/bulk-routes.js +7 -7
  228. package/dist/api/bulk-routes.js.map +1 -1
  229. package/dist/api/category-routes.js +6 -6
  230. package/dist/api/category-routes.js.map +1 -1
  231. package/dist/api/changeset-routes.js +2 -2
  232. package/dist/api/changeset-routes.js.map +1 -1
  233. package/dist/api/comment-routes.js +12 -12
  234. package/dist/api/comment-routes.js.map +1 -1
  235. package/dist/api/component-routes.d.ts +25 -0
  236. package/dist/api/component-routes.d.ts.map +1 -1
  237. package/dist/api/component-routes.js +44 -19
  238. package/dist/api/component-routes.js.map +1 -1
  239. package/dist/api/config-routes.js +4 -4
  240. package/dist/api/config-routes.js.map +1 -1
  241. package/dist/api/content-permission-routes.js +2 -2
  242. package/dist/api/content-permission-routes.js.map +1 -1
  243. package/dist/api/content-routes.d.ts.map +1 -1
  244. package/dist/api/content-routes.js +21 -16
  245. package/dist/api/content-routes.js.map +1 -1
  246. package/dist/api/content-type-routes.js +3 -3
  247. package/dist/api/content-type-routes.js.map +1 -1
  248. package/dist/api/dashboard-routes.js +1 -1
  249. package/dist/api/dashboard-routes.js.map +1 -1
  250. package/dist/api/experiment-routes.d.ts +7 -0
  251. package/dist/api/experiment-routes.d.ts.map +1 -1
  252. package/dist/api/experiment-routes.js +10 -10
  253. package/dist/api/experiment-routes.js.map +1 -1
  254. package/dist/api/experiment-runtime-routes.d.ts +6 -0
  255. package/dist/api/experiment-runtime-routes.d.ts.map +1 -1
  256. package/dist/api/experiment-runtime-routes.js +47 -11
  257. package/dist/api/experiment-runtime-routes.js.map +1 -1
  258. package/dist/api/extension-routes.js +4 -4
  259. package/dist/api/extension-routes.js.map +1 -1
  260. package/dist/api/feed-routes.d.ts +2 -2
  261. package/dist/api/feed-routes.js +5 -5
  262. package/dist/api/feed-routes.js.map +1 -1
  263. package/dist/api/form-routes.js +6 -6
  264. package/dist/api/form-routes.js.map +1 -1
  265. package/dist/api/graphql/resolvers.d.ts +1 -1
  266. package/dist/api/graphql/resolvers.d.ts.map +1 -1
  267. package/dist/api/graphql/resolvers.js +68 -33
  268. package/dist/api/graphql/resolvers.js.map +1 -1
  269. package/dist/api/group-routes.js +9 -9
  270. package/dist/api/group-routes.js.map +1 -1
  271. package/dist/api/index.d.ts +1 -0
  272. package/dist/api/index.d.ts.map +1 -1
  273. package/dist/api/index.js +43 -7
  274. package/dist/api/index.js.map +1 -1
  275. package/dist/api/layout-routes.d.ts +19 -1
  276. package/dist/api/layout-routes.d.ts.map +1 -1
  277. package/dist/api/layout-routes.js +92 -8
  278. package/dist/api/layout-routes.js.map +1 -1
  279. package/dist/api/layout-write-guard.d.ts +3 -2
  280. package/dist/api/layout-write-guard.d.ts.map +1 -1
  281. package/dist/api/layout-write-guard.js +12 -4
  282. package/dist/api/layout-write-guard.js.map +1 -1
  283. package/dist/api/media-routes.d.ts.map +1 -1
  284. package/dist/api/media-routes.js +100 -35
  285. package/dist/api/media-routes.js.map +1 -1
  286. package/dist/api/menu-routes.d.ts +9 -1
  287. package/dist/api/menu-routes.d.ts.map +1 -1
  288. package/dist/api/menu-routes.js +46 -12
  289. package/dist/api/menu-routes.js.map +1 -1
  290. package/dist/api/nav-routes.d.ts +6 -0
  291. package/dist/api/nav-routes.d.ts.map +1 -1
  292. package/dist/api/nav-routes.js +25 -4
  293. package/dist/api/nav-routes.js.map +1 -1
  294. package/dist/api/oauth-routes.js +2 -2
  295. package/dist/api/oauth-routes.js.map +1 -1
  296. package/dist/api/openapi.d.ts.map +1 -1
  297. package/dist/api/openapi.js +82 -34
  298. package/dist/api/openapi.js.map +1 -1
  299. package/dist/api/pagination.d.ts +10 -0
  300. package/dist/api/pagination.d.ts.map +1 -1
  301. package/dist/api/pagination.js +7 -1
  302. package/dist/api/pagination.js.map +1 -1
  303. package/dist/api/response.d.ts +29 -0
  304. package/dist/api/response.d.ts.map +1 -1
  305. package/dist/api/response.js +23 -3
  306. package/dist/api/response.js.map +1 -1
  307. package/dist/api/search-routes.d.ts.map +1 -1
  308. package/dist/api/search-routes.js +19 -5
  309. package/dist/api/search-routes.js.map +1 -1
  310. package/dist/api/section-template-routes.d.ts.map +1 -1
  311. package/dist/api/section-template-routes.js +37 -20
  312. package/dist/api/section-template-routes.js.map +1 -1
  313. package/dist/api/site-admin-routes.d.ts +10 -1
  314. package/dist/api/site-admin-routes.d.ts.map +1 -1
  315. package/dist/api/site-admin-routes.js +21 -1
  316. package/dist/api/site-admin-routes.js.map +1 -1
  317. package/dist/api/site-context.d.ts +35 -5
  318. package/dist/api/site-context.d.ts.map +1 -1
  319. package/dist/api/site-context.js +21 -6
  320. package/dist/api/site-context.js.map +1 -1
  321. package/dist/api/site-routes.js +2 -2
  322. package/dist/api/site-routes.js.map +1 -1
  323. package/dist/api/tag-routes.d.ts.map +1 -1
  324. package/dist/api/tag-routes.js +5 -5
  325. package/dist/api/tag-routes.js.map +1 -1
  326. package/dist/api/translation-routes.js +5 -5
  327. package/dist/api/translation-routes.js.map +1 -1
  328. package/dist/api/user-routes.d.ts.map +1 -1
  329. package/dist/api/user-routes.js +136 -21
  330. package/dist/api/user-routes.js.map +1 -1
  331. package/dist/api/version-routes.js +2 -2
  332. package/dist/api/version-routes.js.map +1 -1
  333. package/dist/api/webhook-routes.js +8 -8
  334. package/dist/api/webhook-routes.js.map +1 -1
  335. package/dist/api/workflow-routes.d.ts.map +1 -1
  336. package/dist/api/workflow-routes.js +23 -14
  337. package/dist/api/workflow-routes.js.map +1 -1
  338. package/dist/audiences/collectors/identity.d.ts +14 -1
  339. package/dist/audiences/collectors/identity.d.ts.map +1 -1
  340. package/dist/audiences/collectors/identity.js +16 -3
  341. package/dist/audiences/collectors/identity.js.map +1 -1
  342. package/dist/audiences/collectors/index.d.ts +16 -2
  343. package/dist/audiences/collectors/index.d.ts.map +1 -1
  344. package/dist/audiences/collectors/index.js +29 -5
  345. package/dist/audiences/collectors/index.js.map +1 -1
  346. package/dist/audiences/collectors/pinned-audience.d.ts +28 -2
  347. package/dist/audiences/collectors/pinned-audience.d.ts.map +1 -1
  348. package/dist/audiences/collectors/pinned-audience.js +35 -5
  349. package/dist/audiences/collectors/pinned-audience.js.map +1 -1
  350. package/dist/audiences/collectors/selfid.d.ts +25 -0
  351. package/dist/audiences/collectors/selfid.d.ts.map +1 -0
  352. package/dist/audiences/collectors/selfid.js +46 -0
  353. package/dist/audiences/collectors/selfid.js.map +1 -0
  354. package/dist/audiences/collectors/session.d.ts +41 -0
  355. package/dist/audiences/collectors/session.d.ts.map +1 -0
  356. package/dist/audiences/collectors/session.js +50 -0
  357. package/dist/audiences/collectors/session.js.map +1 -0
  358. package/dist/audiences/collectors/utm.d.ts +15 -1
  359. package/dist/audiences/collectors/utm.d.ts.map +1 -1
  360. package/dist/audiences/collectors/utm.js +16 -2
  361. package/dist/audiences/collectors/utm.js.map +1 -1
  362. package/dist/audiences/consent-config.d.ts +21 -0
  363. package/dist/audiences/consent-config.d.ts.map +1 -0
  364. package/dist/audiences/consent-config.js +15 -0
  365. package/dist/audiences/consent-config.js.map +1 -0
  366. package/dist/audiences/consent-startup.d.ts +39 -0
  367. package/dist/audiences/consent-startup.d.ts.map +1 -0
  368. package/dist/audiences/consent-startup.js +105 -0
  369. package/dist/audiences/consent-startup.js.map +1 -0
  370. package/dist/audiences/consent.d.ts +205 -0
  371. package/dist/audiences/consent.d.ts.map +1 -0
  372. package/dist/audiences/consent.js +335 -0
  373. package/dist/audiences/consent.js.map +1 -0
  374. package/dist/audiences/cookies.d.ts +21 -0
  375. package/dist/audiences/cookies.d.ts.map +1 -1
  376. package/dist/audiences/cookies.js +26 -0
  377. package/dist/audiences/cookies.js.map +1 -1
  378. package/dist/audiences/engine.d.ts +7 -0
  379. package/dist/audiences/engine.d.ts.map +1 -1
  380. package/dist/audiences/engine.js +7 -2
  381. package/dist/audiences/engine.js.map +1 -1
  382. package/dist/audiences/entry-page.d.ts +89 -0
  383. package/dist/audiences/entry-page.d.ts.map +1 -0
  384. package/dist/audiences/entry-page.js +116 -0
  385. package/dist/audiences/entry-page.js.map +1 -0
  386. package/dist/audiences/evaluator/instant-match.d.ts.map +1 -1
  387. package/dist/audiences/evaluator/instant-match.js +7 -0
  388. package/dist/audiences/evaluator/instant-match.js.map +1 -1
  389. package/dist/audiences/index.d.ts +6 -2
  390. package/dist/audiences/index.d.ts.map +1 -1
  391. package/dist/audiences/index.js +12 -2
  392. package/dist/audiences/index.js.map +1 -1
  393. package/dist/audiences/queries.d.ts +16 -0
  394. package/dist/audiences/queries.d.ts.map +1 -1
  395. package/dist/audiences/queries.js +28 -1
  396. package/dist/audiences/queries.js.map +1 -1
  397. package/dist/audiences/schema.d.ts +17 -0
  398. package/dist/audiences/schema.d.ts.map +1 -1
  399. package/dist/audiences/schema.js +7 -0
  400. package/dist/audiences/schema.js.map +1 -1
  401. package/dist/audiences/server-eval.d.ts +32 -1
  402. package/dist/audiences/server-eval.d.ts.map +1 -1
  403. package/dist/audiences/server-eval.js +35 -3
  404. package/dist/audiences/server-eval.js.map +1 -1
  405. package/dist/audiences/ssr.d.ts +18 -1
  406. package/dist/audiences/ssr.d.ts.map +1 -1
  407. package/dist/audiences/ssr.js +18 -1
  408. package/dist/audiences/ssr.js.map +1 -1
  409. package/dist/audiences/types.d.ts +22 -1
  410. package/dist/audiences/types.d.ts.map +1 -1
  411. package/dist/audiences/types.js +1 -0
  412. package/dist/audiences/types.js.map +1 -1
  413. package/dist/audiences/utm-persistence.d.ts +20 -7
  414. package/dist/audiences/utm-persistence.d.ts.map +1 -1
  415. package/dist/audiences/utm-persistence.js +20 -7
  416. package/dist/audiences/utm-persistence.js.map +1 -1
  417. package/dist/auth/roles.d.ts +11 -0
  418. package/dist/auth/roles.d.ts.map +1 -1
  419. package/dist/auth/roles.js +13 -0
  420. package/dist/auth/roles.js.map +1 -1
  421. package/dist/auth/tokens.d.ts +7 -0
  422. package/dist/auth/tokens.d.ts.map +1 -1
  423. package/dist/auth/tokens.js +24 -2
  424. package/dist/auth/tokens.js.map +1 -1
  425. package/dist/ax/content-source.d.ts +10 -2
  426. package/dist/ax/content-source.d.ts.map +1 -1
  427. package/dist/ax/content-source.js +81 -5
  428. package/dist/ax/content-source.js.map +1 -1
  429. package/dist/ax/effective-body.d.ts +28 -0
  430. package/dist/ax/effective-body.d.ts.map +1 -0
  431. package/dist/ax/effective-body.js +47 -0
  432. package/dist/ax/effective-body.js.map +1 -0
  433. package/dist/ax/index.d.ts +3 -1
  434. package/dist/ax/index.d.ts.map +1 -1
  435. package/dist/ax/index.js +2 -0
  436. package/dist/ax/index.js.map +1 -1
  437. package/dist/ax/jsonld.d.ts +31 -1
  438. package/dist/ax/jsonld.d.ts.map +1 -1
  439. package/dist/ax/jsonld.js +35 -22
  440. package/dist/ax/jsonld.js.map +1 -1
  441. package/dist/ax/layout-to-html.d.ts +127 -0
  442. package/dist/ax/layout-to-html.d.ts.map +1 -0
  443. package/dist/ax/layout-to-html.js +545 -0
  444. package/dist/ax/layout-to-html.js.map +1 -0
  445. package/dist/ax/llms-full-txt.d.ts +3 -1
  446. package/dist/ax/llms-full-txt.d.ts.map +1 -1
  447. package/dist/ax/llms-full-txt.js +5 -2
  448. package/dist/ax/llms-full-txt.js.map +1 -1
  449. package/dist/ax/page-markdown.d.ts +10 -2
  450. package/dist/ax/page-markdown.d.ts.map +1 -1
  451. package/dist/ax/page-markdown.js +16 -3
  452. package/dist/ax/page-markdown.js.map +1 -1
  453. package/dist/ax/summary.d.ts +4 -0
  454. package/dist/ax/summary.d.ts.map +1 -1
  455. package/dist/ax/summary.js +6 -1
  456. package/dist/ax/summary.js.map +1 -1
  457. package/dist/ax/types.d.ts +24 -0
  458. package/dist/ax/types.d.ts.map +1 -1
  459. package/dist/cache/content-invalidation.d.ts.map +1 -1
  460. package/dist/cache/content-invalidation.js +11 -0
  461. package/dist/cache/content-invalidation.js.map +1 -1
  462. package/dist/config/types.d.ts +43 -0
  463. package/dist/config/types.d.ts.map +1 -1
  464. package/dist/config/types.js.map +1 -1
  465. package/dist/config/validate.d.ts.map +1 -1
  466. package/dist/config/validate.js +3 -0
  467. package/dist/config/validate.js.map +1 -1
  468. package/dist/db/apply-snapshot.d.ts +25 -0
  469. package/dist/db/apply-snapshot.d.ts.map +1 -1
  470. package/dist/db/apply-snapshot.js +48 -16
  471. package/dist/db/apply-snapshot.js.map +1 -1
  472. package/dist/db/ax-queries.d.ts +6 -0
  473. package/dist/db/ax-queries.d.ts.map +1 -1
  474. package/dist/db/ax-queries.js +6 -0
  475. package/dist/db/ax-queries.js.map +1 -1
  476. package/dist/db/component-instance-queries.d.ts +79 -19
  477. package/dist/db/component-instance-queries.d.ts.map +1 -1
  478. package/dist/db/component-instance-queries.js +266 -83
  479. package/dist/db/component-instance-queries.js.map +1 -1
  480. package/dist/db/component-queries.d.ts +1 -16
  481. package/dist/db/component-queries.d.ts.map +1 -1
  482. package/dist/db/component-queries.js +7 -56
  483. package/dist/db/component-queries.js.map +1 -1
  484. package/dist/db/content-queries.d.ts.map +1 -1
  485. package/dist/db/content-queries.js +9 -2
  486. package/dist/db/content-queries.js.map +1 -1
  487. package/dist/db/extension-queries.d.ts +2 -2
  488. package/dist/db/feed-queries.d.ts +3 -3
  489. package/dist/db/index.d.ts +1 -0
  490. package/dist/db/index.d.ts.map +1 -1
  491. package/dist/db/index.js +1 -0
  492. package/dist/db/index.js.map +1 -1
  493. package/dist/db/layout-queries.d.ts +21 -3
  494. package/dist/db/layout-queries.d.ts.map +1 -1
  495. package/dist/db/layout-queries.js +14 -6
  496. package/dist/db/layout-queries.js.map +1 -1
  497. package/dist/db/menu-queries.d.ts +69 -5
  498. package/dist/db/menu-queries.d.ts.map +1 -1
  499. package/dist/db/menu-queries.js +120 -13
  500. package/dist/db/menu-queries.js.map +1 -1
  501. package/dist/db/search-queries.d.ts.map +1 -1
  502. package/dist/db/search-queries.js +24 -1
  503. package/dist/db/search-queries.js.map +1 -1
  504. package/dist/db/section-template-queries.d.ts +62 -0
  505. package/dist/db/section-template-queries.d.ts.map +1 -0
  506. package/dist/db/section-template-queries.js +178 -0
  507. package/dist/db/section-template-queries.js.map +1 -0
  508. package/dist/db/site-plugin-queries.d.ts +2 -2
  509. package/dist/db/tree-queries.d.ts.map +1 -1
  510. package/dist/db/tree-queries.js +5 -0
  511. package/dist/db/tree-queries.js.map +1 -1
  512. package/dist/db/webhook-queries.d.ts +3 -3
  513. package/dist/db/workflow-queries.d.ts.map +1 -1
  514. package/dist/db/workflow-queries.js +5 -20
  515. package/dist/db/workflow-queries.js.map +1 -1
  516. package/dist/experiments/runtime.d.ts +21 -3
  517. package/dist/experiments/runtime.d.ts.map +1 -1
  518. package/dist/experiments/runtime.js +21 -3
  519. package/dist/experiments/runtime.js.map +1 -1
  520. package/dist/hooks/ax-invalidation.d.ts.map +1 -1
  521. package/dist/hooks/ax-invalidation.js +4 -0
  522. package/dist/hooks/ax-invalidation.js.map +1 -1
  523. package/dist/layout/component-refs.d.ts +90 -2
  524. package/dist/layout/component-refs.d.ts.map +1 -1
  525. package/dist/layout/component-refs.js +293 -16
  526. package/dist/layout/component-refs.js.map +1 -1
  527. package/dist/layout/index.d.ts +7 -4
  528. package/dist/layout/index.d.ts.map +1 -1
  529. package/dist/layout/index.js +6 -3
  530. package/dist/layout/index.js.map +1 -1
  531. package/dist/layout/legacy-variant-container.d.ts +123 -0
  532. package/dist/layout/legacy-variant-container.d.ts.map +1 -0
  533. package/dist/layout/legacy-variant-container.js +397 -0
  534. package/dist/layout/legacy-variant-container.js.map +1 -0
  535. package/dist/layout/module-permissions.d.ts.map +1 -1
  536. package/dist/layout/module-permissions.js +26 -38
  537. package/dist/layout/module-permissions.js.map +1 -1
  538. package/dist/layout/modules-extended.d.ts +28 -1
  539. package/dist/layout/modules-extended.d.ts.map +1 -1
  540. package/dist/layout/modules-extended.js +73 -1
  541. package/dist/layout/modules-extended.js.map +1 -1
  542. package/dist/layout/modules.d.ts.map +1 -1
  543. package/dist/layout/modules.js +9 -1
  544. package/dist/layout/modules.js.map +1 -1
  545. package/dist/layout/personalization.d.ts +83 -0
  546. package/dist/layout/personalization.d.ts.map +1 -1
  547. package/dist/layout/personalization.js +250 -4
  548. package/dist/layout/personalization.js.map +1 -1
  549. package/dist/layout/registry.d.ts.map +1 -1
  550. package/dist/layout/registry.js +20 -0
  551. package/dist/layout/registry.js.map +1 -1
  552. package/dist/layout/renderer.d.ts +29 -2
  553. package/dist/layout/renderer.d.ts.map +1 -1
  554. package/dist/layout/renderer.js +23 -6
  555. package/dist/layout/renderer.js.map +1 -1
  556. package/dist/layout/seed-defaults.d.ts +45 -0
  557. package/dist/layout/seed-defaults.d.ts.map +1 -0
  558. package/dist/layout/seed-defaults.js +75 -0
  559. package/dist/layout/seed-defaults.js.map +1 -0
  560. package/dist/layout/types.d.ts +17 -0
  561. package/dist/layout/types.d.ts.map +1 -1
  562. package/dist/layout/types.js +7 -0
  563. package/dist/layout/types.js.map +1 -1
  564. package/dist/layout/walk.d.ts +14 -0
  565. package/dist/layout/walk.d.ts.map +1 -0
  566. package/dist/layout/walk.js +49 -0
  567. package/dist/layout/walk.js.map +1 -0
  568. package/dist/media/index.d.ts +1 -1
  569. package/dist/media/index.d.ts.map +1 -1
  570. package/dist/media/index.js +1 -1
  571. package/dist/media/index.js.map +1 -1
  572. package/dist/media/inline-risk.d.ts +26 -0
  573. package/dist/media/inline-risk.d.ts.map +1 -0
  574. package/dist/media/inline-risk.js +142 -0
  575. package/dist/media/inline-risk.js.map +1 -0
  576. package/dist/media/upload-allowlist.d.ts +23 -0
  577. package/dist/media/upload-allowlist.d.ts.map +1 -1
  578. package/dist/media/upload-allowlist.js +29 -0
  579. package/dist/media/upload-allowlist.js.map +1 -1
  580. package/dist/nav/builder.d.ts.map +1 -1
  581. package/dist/nav/builder.js +15 -3
  582. package/dist/nav/builder.js.map +1 -1
  583. package/dist/nav/index.d.ts +1 -1
  584. package/dist/nav/index.d.ts.map +1 -1
  585. package/dist/nav/index.js +1 -1
  586. package/dist/nav/index.js.map +1 -1
  587. package/dist/nav/menu-resolver.d.ts +11 -0
  588. package/dist/nav/menu-resolver.d.ts.map +1 -1
  589. package/dist/nav/menu-resolver.js +49 -9
  590. package/dist/nav/menu-resolver.js.map +1 -1
  591. package/dist/nav/paths.d.ts +37 -0
  592. package/dist/nav/paths.d.ts.map +1 -0
  593. package/dist/nav/paths.js +48 -0
  594. package/dist/nav/paths.js.map +1 -0
  595. package/dist/nav/types.d.ts +6 -0
  596. package/dist/nav/types.d.ts.map +1 -1
  597. package/dist/nav/url-resolver.d.ts +1 -5
  598. package/dist/nav/url-resolver.d.ts.map +1 -1
  599. package/dist/nav/url-resolver.js +6 -12
  600. package/dist/nav/url-resolver.js.map +1 -1
  601. package/dist/schema/base.d.ts +24 -4
  602. package/dist/schema/base.d.ts.map +1 -1
  603. package/dist/schema/base.js +17 -4
  604. package/dist/schema/base.js.map +1 -1
  605. package/dist/schema/components.d.ts +90 -9
  606. package/dist/schema/components.d.ts.map +1 -1
  607. package/dist/schema/components.js +113 -22
  608. package/dist/schema/components.js.map +1 -1
  609. package/dist/schema/mysql-tables.d.ts +5775 -48
  610. package/dist/schema/mysql-tables.d.ts.map +1 -1
  611. package/dist/schema/mysql-tables.js +622 -46
  612. package/dist/schema/mysql-tables.js.map +1 -1
  613. package/dist/scope/jsonld.d.ts +18 -3
  614. package/dist/scope/jsonld.d.ts.map +1 -1
  615. package/dist/scope/jsonld.js +6 -4
  616. package/dist/scope/jsonld.js.map +1 -1
  617. package/dist/scope/kywi-form.d.ts +11 -0
  618. package/dist/scope/kywi-form.d.ts.map +1 -1
  619. package/dist/scope/kywi-form.js +11 -1
  620. package/dist/scope/kywi-form.js.map +1 -1
  621. package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
  622. package/dist/scope/kywi-wizard-form.js +76 -2
  623. package/dist/scope/kywi-wizard-form.js.map +1 -1
  624. package/dist/scope/sticky-offset.d.ts +34 -13
  625. package/dist/scope/sticky-offset.d.ts.map +1 -1
  626. package/dist/scope/sticky-offset.js +236 -43
  627. package/dist/scope/sticky-offset.js.map +1 -1
  628. package/dist/site/styles.css +61 -15
  629. package/dist/versioning/scheduler.d.ts +28 -0
  630. package/dist/versioning/scheduler.d.ts.map +1 -1
  631. package/dist/versioning/scheduler.js +50 -3
  632. package/dist/versioning/scheduler.js.map +1 -1
  633. package/package.json +12 -2
@@ -1,4 +1,4 @@
1
- import { jsonOk, jsonError, notFound, unauthorized, forbidden, validationError } from './response.js';
1
+ import { jsonOk, jsonError, notFound, unauthorized, forbidden, validationError, listOk } from './response.js';
2
2
  import { resolveAuth } from './auth.js';
3
3
  import { toSiteUuid, assertSiteAccess } from './site-context.js';
4
4
  import { hasMinRole } from '../auth/roles.js';
@@ -8,6 +8,7 @@ import { createPendingRevision, listPendingRevisions, approvePendingRevision, re
8
8
  import { computeChangeset } from '../versioning/version-management.js';
9
9
  import { buildUpdateSchema } from './content-schemas.js';
10
10
  import { takeLayoutFromContentPayload } from './layout-write-guard.js';
11
+ import { createModuleRegistry } from '../layout/registry.js';
11
12
  import { setContentLayout } from '../db/layout-queries.js';
12
13
  import { SnapshotLayoutInvalidError } from '../db/apply-snapshot.js';
13
14
  import { getValidTransitions } from '../versioning/state-machine.js';
@@ -21,6 +22,9 @@ import { kywiContent, kywiUsers } from '../schema/base.js';
21
22
  */
22
23
  const LIVE_STATUSES = new Set(['published', 'approved']);
23
24
  export function registerWorkflowRoutes(router, ctx) {
25
+ // kywi-cms#197: same module palette the content routes seed from — a layout
26
+ // submitted for review must land with the same props an approved one would.
27
+ const moduleRegistry = createModuleRegistry(ctx.config.modules ?? []);
24
28
  const { db, authSecret, contentTypeMap, customTableMap } = ctx;
25
29
  // A workflow transition changes content status directly; invalidate its cache
26
30
  // so a subsequent read reflects the new status.
@@ -69,7 +73,7 @@ export function registerWorkflowRoutes(router, ctx) {
69
73
  return notFound('Content not found');
70
74
  // #73: this route is keyed by content id (no request-derived site), so
71
75
  // authorize against the loaded row's own site before any transition/revision.
72
- const siteDenied = assertSiteAccess(auth.user, existing.siteId);
76
+ const siteDenied = assertSiteAccess(auth.user, existing.siteId, ctx.config.auth);
73
77
  if (siteDenied)
74
78
  return siteDenied;
75
79
  const currentStatus = existing.status;
@@ -97,7 +101,7 @@ export function registerWorkflowRoutes(router, ctx) {
97
101
  // approvals queue.
98
102
  let submittedLayout;
99
103
  if (validFields !== undefined) {
100
- const gated = await takeLayoutFromContentPayload(db, auth.user.role, validFields, (existing['layout'] ?? null), existing.siteId);
104
+ const gated = await takeLayoutFromContentPayload(db, auth.user.role, validFields, (existing['layout'] ?? null), existing.siteId, moduleRegistry);
101
105
  if (!gated.ok)
102
106
  return gated.response;
103
107
  validFields = gated.write.fields;
@@ -127,6 +131,11 @@ export function registerWorkflowRoutes(router, ctx) {
127
131
  // The layout goes through the indexing write path, exactly as the content
128
132
  // PUT does, and before the transition below so the version snapshot the
129
133
  // transition records captures the saved layout.
134
+ //
135
+ // No `content:afterLayoutUpdate` here (kywi-cms#195): this route
136
+ // invalidates through `finishTransition` → `ctx.invalidateContent`, which
137
+ // clears the AX pattern along with the content/feed/nav keys. See
138
+ // `createContentCacheInvalidator`. Emitting as well would double-clear.
130
139
  if (submittedLayout !== undefined) {
131
140
  await setContentLayout(db, params.id, submittedLayout, existing.siteId);
132
141
  }
@@ -175,7 +184,7 @@ export function registerWorkflowRoutes(router, ctx) {
175
184
  const target = await getContentById(db, customTable, params.id);
176
185
  if (!target)
177
186
  return notFound('Content not found');
178
- const siteDenied = assertSiteAccess(auth.user, target.siteId);
187
+ const siteDenied = assertSiteAccess(auth.user, target.siteId, ctx.config.auth);
179
188
  if (siteDenied)
180
189
  return siteDenied;
181
190
  const result = await transitionContentStatus(db, {
@@ -215,7 +224,7 @@ export function registerWorkflowRoutes(router, ctx) {
215
224
  const target = await getContentById(db, customTable, params.id);
216
225
  if (!target)
217
226
  return notFound('Content not found');
218
- const siteDenied = assertSiteAccess(auth.user, target.siteId);
227
+ const siteDenied = assertSiteAccess(auth.user, target.siteId, ctx.config.auth);
219
228
  if (siteDenied)
220
229
  return siteDenied;
221
230
  const changeNote = reason !== undefined ? `Rejected: ${reason}` : 'Rejected';
@@ -253,7 +262,7 @@ export function registerWorkflowRoutes(router, ctx) {
253
262
  const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), ctx.config);
254
263
  if (!siteId)
255
264
  return jsonError('BAD_REQUEST', 'No site ID available', 400);
256
- const siteDenied = assertSiteAccess(auth.user, siteId);
265
+ const siteDenied = assertSiteAccess(auth.user, siteId, ctx.config.auth);
257
266
  if (siteDenied)
258
267
  return siteDenied;
259
268
  const revisions = await listPendingRevisions(db, siteId);
@@ -275,7 +284,7 @@ export function registerWorkflowRoutes(router, ctx) {
275
284
  changedFields,
276
285
  });
277
286
  }
278
- return jsonOk(out);
287
+ return listOk(out);
279
288
  });
280
289
  // POST /content/:type/:id/revisions/:versionId/approve — apply the revision to
281
290
  // the live content (publish it) and clear it from the queue.
@@ -296,7 +305,7 @@ export function registerWorkflowRoutes(router, ctx) {
296
305
  const target = await getContentById(db, customTable, params.id);
297
306
  if (!target)
298
307
  return notFound('Content not found');
299
- const siteDenied = assertSiteAccess(auth.user, target.siteId);
308
+ const siteDenied = assertSiteAccess(auth.user, target.siteId, ctx.config.auth);
300
309
  if (siteDenied)
301
310
  return siteDenied;
302
311
  let result;
@@ -351,7 +360,7 @@ export function registerWorkflowRoutes(router, ctx) {
351
360
  const target = await getContentById(db, customTable, params.id);
352
361
  if (!target)
353
362
  return notFound('Content not found');
354
- const siteDenied = assertSiteAccess(auth.user, target.siteId);
363
+ const siteDenied = assertSiteAccess(auth.user, target.siteId, ctx.config.auth);
355
364
  if (siteDenied)
356
365
  return siteDenied;
357
366
  const result = await rejectPendingRevision(db, {
@@ -377,7 +386,7 @@ export function registerWorkflowRoutes(router, ctx) {
377
386
  const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), ctx.config);
378
387
  if (!siteId)
379
388
  return jsonError('BAD_REQUEST', 'No site ID available', 400);
380
- const siteDenied = assertSiteAccess(auth.user, siteId);
389
+ const siteDenied = assertSiteAccess(auth.user, siteId, ctx.config.auth);
381
390
  if (siteDenied)
382
391
  return siteDenied;
383
392
  const rows = await db
@@ -385,7 +394,7 @@ export function registerWorkflowRoutes(router, ctx) {
385
394
  .from(kywiContent)
386
395
  .where(and(eq(kywiContent.siteId, siteId), eq(kywiContent.status, 'pending'), sql `${kywiContent.deletedAt} IS NULL`))
387
396
  .orderBy(desc(kywiContent.updatedAt));
388
- return jsonOk(rows);
397
+ return listOk(rows);
389
398
  });
390
399
  // GET /content/pending — Alias for /workflow/pending
391
400
  router.get('/content/pending', async (req) => {
@@ -398,7 +407,7 @@ export function registerWorkflowRoutes(router, ctx) {
398
407
  const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), ctx.config);
399
408
  if (!siteId)
400
409
  return jsonError('BAD_REQUEST', 'No site ID available', 400);
401
- const siteDenied = assertSiteAccess(auth.user, siteId);
410
+ const siteDenied = assertSiteAccess(auth.user, siteId, ctx.config.auth);
402
411
  if (siteDenied)
403
412
  return siteDenied;
404
413
  const rows = await db
@@ -406,7 +415,7 @@ export function registerWorkflowRoutes(router, ctx) {
406
415
  .from(kywiContent)
407
416
  .where(and(eq(kywiContent.siteId, siteId), eq(kywiContent.status, 'pending'), sql `${kywiContent.deletedAt} IS NULL`))
408
417
  .orderBy(desc(kywiContent.updatedAt));
409
- return jsonOk(rows);
418
+ return listOk(rows);
410
419
  });
411
420
  // GET /content/:type/:id/transitions — Get valid transitions for current user
412
421
  router.get('/content/:type/:id/transitions', async (req, params) => {
@@ -431,7 +440,7 @@ export function registerWorkflowRoutes(router, ctx) {
431
440
  if (!hasMinRole(auth.user.role, 'editor'))
432
441
  return forbidden();
433
442
  const entries = await listAuditEntries(db, params.id);
434
- return jsonOk(entries);
443
+ return listOk(entries);
435
444
  });
436
445
  }
437
446
  //# sourceMappingURL=workflow-routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-routes.js","sourceRoot":"","sources":["../../src/api/workflow-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-routes.js","sourceRoot":"","sources":["../../src/api/workflow-routes.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,20 @@
1
+ import { type ConsentGateOptions } from '../consent.js';
1
2
  export interface IdentitySignals {
2
3
  visitorId: string;
3
4
  isKnown: boolean;
4
5
  maLeadId: string | null;
5
6
  }
6
- export declare function collectIdentity(cookies: Map<string, string>): IdentitySignals;
7
+ /**
8
+ * Read the visitor's stored identity — the `kywi_visitor` id and the
9
+ * adapter-pushed `kywi_known` flag.
10
+ *
11
+ * Both are `personalization` cookies, so both are treated as ABSENT unless the
12
+ * visitor consents (kywi-cms#91): a visitor who rejects must stop being
13
+ * recognised, not merely stop accumulating new cookies. An empty `visitorId` is
14
+ * already the "no identity yet" value every caller handles — the request still
15
+ * resolves and renders, anonymously.
16
+ */
17
+ export declare function collectIdentity(cookies: Map<string, string>, gate?: ConsentGateOptions & {
18
+ cookieHeader?: string | null;
19
+ }): IdentitySignals;
7
20
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/audiences/collectors/identity.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,eAAe,CAa7E"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/audiences/collectors/identity.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEnG,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,IAAI,GAAE,kBAAkB,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC/D,eAAe,CAejB"}
@@ -1,7 +1,20 @@
1
1
  import { COOKIE_NAMES } from '../cookies.js';
2
- export function collectIdentity(cookies) {
3
- const visitorId = cookies.get(COOKIE_NAMES.VISITOR) ?? '';
4
- const knownRaw = cookies.get(COOKIE_NAMES.KNOWN);
2
+ import { cookieAllowed, readConsentFromCookieHeader } from '../consent.js';
3
+ /**
4
+ * Read the visitor's stored identity — the `kywi_visitor` id and the
5
+ * adapter-pushed `kywi_known` flag.
6
+ *
7
+ * Both are `personalization` cookies, so both are treated as ABSENT unless the
8
+ * visitor consents (kywi-cms#91): a visitor who rejects must stop being
9
+ * recognised, not merely stop accumulating new cookies. An empty `visitorId` is
10
+ * already the "no identity yet" value every caller handles — the request still
11
+ * resolves and renders, anonymously.
12
+ */
13
+ export function collectIdentity(cookies, gate = {}) {
14
+ const consent = readConsentFromCookieHeader(gate.cookieHeader);
15
+ const mayRead = (name) => cookieAllowed(name, consent, gate);
16
+ const visitorId = (mayRead(COOKIE_NAMES.VISITOR) ? cookies.get(COOKIE_NAMES.VISITOR) : undefined) ?? '';
17
+ const knownRaw = mayRead(COOKIE_NAMES.KNOWN) ? cookies.get(COOKIE_NAMES.KNOWN) : undefined;
5
18
  let isKnown = false;
6
19
  let maLeadId = null;
7
20
  if (knownRaw) {
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/audiences/collectors/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAQ5C,MAAM,UAAU,eAAe,CAAC,OAA4B;IAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAChD,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,QAAQ,GAAkB,IAAI,CAAA;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA0B,CAAA;YAC1D,OAAO,GAAG,IAAI,CAAA;YACd,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/audiences/collectors/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAA2B,MAAM,eAAe,CAAA;AAQnG;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA4B,EAC5B,OAA8D,EAAE;IAEhE,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACpE,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IACvG,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1F,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,QAAQ,GAAkB,IAAI,CAAA;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA0B,CAAA;YAC1D,OAAO,GAAG,IAAI,CAAA;YACd,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AACzC,CAAC"}
@@ -2,7 +2,21 @@ export { collectUtm, type UtmSignals } from './utm.js';
2
2
  export { collectReferrer, classifyReferrer, type ReferrerSignals, type ReferrerSourceType } from './referrer.js';
3
3
  export { collectIdentity, type IdentitySignals } from './identity.js';
4
4
  export { collectOptOut } from './opt-out.js';
5
- export { collectPinnedAudience } from './pinned-audience.js';
5
+ export { collectSession, collectQuery, type SessionSignals } from './session.js';
6
+ export { collectSelfId } from './selfid.js';
7
+ export { collectPinnedAudience, parseAudiencePin, buildAudiencePinValue, type AudiencePin, } from './pinned-audience.js';
6
8
  import type { VisitorSignals } from '../types.js';
7
- export declare function runServerCollectors(req: Request): Partial<VisitorSignals>;
9
+ import type { ConsentGateOptions } from '../consent.js';
10
+ /**
11
+ * Collect every server-resolvable signal off the request.
12
+ *
13
+ * The personalization-category cookies (`kywi_utm`, `kywi_visitor`,
14
+ * `kywi_known`, `kywi_entry`) are read only for a consenting visitor — pass
15
+ * `requireConsent: false` to turn that off for a site whose consent lives in
16
+ * external tooling (kywi-cms#91). Un-stored signals (this URL's `utm_*` params,
17
+ * its other query params, the referrer, and the entry-page fallback to this
18
+ * request's own path) are always collected: they are the request itself, not
19
+ * tracking carried into it.
20
+ */
21
+ export declare function runServerCollectors(req: Request, gate?: ConsentGateOptions): Partial<VisitorSignals>;
8
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audiences/collectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAChH,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAOjD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAYzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audiences/collectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAChH,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAQjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAqBzB"}
@@ -2,22 +2,46 @@ export { collectUtm } from './utm.js';
2
2
  export { collectReferrer, classifyReferrer } from './referrer.js';
3
3
  export { collectIdentity } from './identity.js';
4
4
  export { collectOptOut } from './opt-out.js';
5
- export { collectPinnedAudience } from './pinned-audience.js';
5
+ export { collectSession, collectQuery } from './session.js';
6
+ export { collectSelfId } from './selfid.js';
7
+ export { collectPinnedAudience, parseAudiencePin, buildAudiencePinValue, } from './pinned-audience.js';
6
8
  import { parseCookies } from '../cookies.js';
7
9
  import { collectUtm } from './utm.js';
8
10
  import { collectReferrer } from './referrer.js';
9
11
  import { collectIdentity } from './identity.js';
10
12
  import { collectOptOut } from './opt-out.js';
11
- export function runServerCollectors(req) {
12
- const cookies = parseCookies(req.headers.get('cookie') ?? '');
13
- const utm = collectUtm(req, cookies);
13
+ import { collectSession, collectQuery } from './session.js';
14
+ import { collectSelfId } from './selfid.js';
15
+ /**
16
+ * Collect every server-resolvable signal off the request.
17
+ *
18
+ * The personalization-category cookies (`kywi_utm`, `kywi_visitor`,
19
+ * `kywi_known`, `kywi_entry`) are read only for a consenting visitor — pass
20
+ * `requireConsent: false` to turn that off for a site whose consent lives in
21
+ * external tooling (kywi-cms#91). Un-stored signals (this URL's `utm_*` params,
22
+ * its other query params, the referrer, and the entry-page fallback to this
23
+ * request's own path) are always collected: they are the request itself, not
24
+ * tracking carried into it.
25
+ */
26
+ export function runServerCollectors(req, gate = {}) {
27
+ const cookieHeader = req.headers.get('cookie');
28
+ const cookies = parseCookies(cookieHeader ?? '');
29
+ const readGate = { ...gate, cookieHeader };
30
+ const utm = collectUtm(req, cookies, readGate);
14
31
  const referrer = collectReferrer(req, utm.medium);
15
- const identity = collectIdentity(cookies);
32
+ const identity = collectIdentity(cookies, readGate);
16
33
  const isOptedOut = collectOptOut(cookies);
34
+ // The session bag is returned whole because `mergeSignals` replaces `session`
35
+ // wholesale; the counts the server cannot know keep the empty-signal defaults
36
+ // the client runtime later fills in (kywi-cms#196).
37
+ const { entryPage } = collectSession(req, cookies, readGate);
17
38
  return {
18
39
  utm,
19
40
  referrer,
20
41
  identity,
42
+ session: { pageViewCount: 0, totalPageViews: 0, sessionDuration: 0, entryPage, pagesVisited: [] },
43
+ query: collectQuery(req),
44
+ selfId: collectSelfId(cookies, readGate),
21
45
  meta: { isOptedOut, isPreview: false, previewAudienceId: null, resolvedAt: 'server' },
22
46
  };
23
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/audiences/collectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAiD,MAAM,eAAe,CAAA;AAChH,OAAO,EAAE,eAAe,EAAwB,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACzC,OAAO;QACL,GAAG;QACH,QAAQ;QACR,QAAQ;QACR,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE;KACtF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/audiences/collectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAiD,MAAM,eAAe,CAAA;AAChH,OAAO,EAAE,eAAe,EAAwB,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,GAEtB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAY,EACZ,OAA2B,EAAE;IAE7B,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,CAAA;IAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACzC,8EAA8E;IAC9E,8EAA8E;IAC9E,oDAAoD;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5D,OAAO;QACL,GAAG;QACH,QAAQ;QACR,QAAQ;QACR,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE;QACjG,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC;QACxB,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC;QACxC,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE;KACtF,CAAA;AACH,CAAC"}
@@ -1,4 +1,27 @@
1
+ import { type ConsentGateOptions } from '../consent.js';
1
2
  import type { Audience } from '../types.js';
3
+ /**
4
+ * The `kywi_audience` cookie's value, which records HOW the pin was made.
5
+ *
6
+ * Two writes share this cookie and they carry different consent weight
7
+ * (kywi-cms#91): the runtime automatically remembering what it resolved is
8
+ * `personalization` tracking, while an audience the visitor picked by hand in
9
+ * the transparency panel is an `essential` preference. The cookie has to say
10
+ * which, or the read side cannot apply the right rule and a hand-picked audience
11
+ * would be stored and then silently ignored.
12
+ */
13
+ export interface AudiencePin {
14
+ id: string;
15
+ /** The visitor chose this deliberately, so it is an `essential` preference. */
16
+ viaSwitcher: boolean;
17
+ }
18
+ /** Encode a pin for the `kywi_audience` cookie. */
19
+ export declare function buildAudiencePinValue(id: string, viaSwitcher: boolean): string;
20
+ /**
21
+ * Decode a `kywi_audience` cookie value. A bare id — every cookie written before
22
+ * kywi-cms#91, and every boot pin since — reads as a non-switcher pin.
23
+ */
24
+ export declare function parseAudiencePin(raw: string | undefined | null): AudiencePin | null;
2
25
  /**
3
26
  * Read the client-pinned audience (`kywi_audience` cookie).
4
27
  *
@@ -11,7 +34,10 @@ import type { Audience } from '../types.js';
11
34
  * and deletes it), so the id is untrusted input: it is only honoured when it
12
35
  * names a *currently-active* audience for this render. A stale, forged, or
13
36
  * archived id is treated as absent — the caller falls through to signal-derived
14
- * resolution and the render never errors.
37
+ * resolution and the render never errors. So is a pin the visitor has not
38
+ * consented to being remembered by.
15
39
  */
16
- export declare function collectPinnedAudience(cookies: Map<string, string>, activeAudiences: Audience[]): string | null;
40
+ export declare function collectPinnedAudience(cookies: Map<string, string>, activeAudiences: Audience[], gate?: ConsentGateOptions & {
41
+ cookieHeader?: string | null;
42
+ }): string | null;
17
43
  //# sourceMappingURL=pinned-audience.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pinned-audience.d.ts","sourceRoot":"","sources":["../../../src/audiences/collectors/pinned-audience.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,eAAe,EAAE,QAAQ,EAAE,GAC1B,MAAM,GAAG,IAAI,CAIf"}
1
+ {"version":3,"file":"pinned-audience.d.ts","sourceRoot":"","sources":["../../../src/audiences/collectors/pinned-audience.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACnG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,+EAA+E;IAC/E,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,mDAAmD;AACnD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,CAK9E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAOnF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,eAAe,EAAE,QAAQ,EAAE,EAC3B,IAAI,GAAE,kBAAkB,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC/D,MAAM,GAAG,IAAI,CAYf"}
@@ -1,4 +1,25 @@
1
1
  import { COOKIE_NAMES } from '../cookies.js';
2
+ import { cookieAllowedByHeader, SWITCHER_PIN_PREFIX } from '../consent.js';
3
+ /** Encode a pin for the `kywi_audience` cookie. */
4
+ export function buildAudiencePinValue(id, viaSwitcher) {
5
+ // A plain id stays a plain id: the un-prefixed form is what every version
6
+ // before kywi-cms#91 wrote, and keeping it means an existing cookie survives
7
+ // the upgrade reading exactly as it always did (as a boot pin).
8
+ return viaSwitcher ? `${SWITCHER_PIN_PREFIX}${id}` : id;
9
+ }
10
+ /**
11
+ * Decode a `kywi_audience` cookie value. A bare id — every cookie written before
12
+ * kywi-cms#91, and every boot pin since — reads as a non-switcher pin.
13
+ */
14
+ export function parseAudiencePin(raw) {
15
+ if (!raw)
16
+ return null;
17
+ if (raw.startsWith(SWITCHER_PIN_PREFIX)) {
18
+ const id = raw.slice(SWITCHER_PIN_PREFIX.length);
19
+ return id ? { id, viaSwitcher: true } : null;
20
+ }
21
+ return { id: raw, viaSwitcher: false };
22
+ }
2
23
  /**
3
24
  * Read the client-pinned audience (`kywi_audience` cookie).
4
25
  *
@@ -11,12 +32,21 @@ import { COOKIE_NAMES } from '../cookies.js';
11
32
  * and deletes it), so the id is untrusted input: it is only honoured when it
12
33
  * names a *currently-active* audience for this render. A stale, forged, or
13
34
  * archived id is treated as absent — the caller falls through to signal-derived
14
- * resolution and the render never errors.
35
+ * resolution and the render never errors. So is a pin the visitor has not
36
+ * consented to being remembered by.
15
37
  */
16
- export function collectPinnedAudience(cookies, activeAudiences) {
17
- const pinned = cookies.get(COOKIE_NAMES.AUDIENCE);
18
- if (!pinned)
38
+ export function collectPinnedAudience(cookies, activeAudiences, gate = {}) {
39
+ const pin = parseAudiencePin(cookies.get(COOKIE_NAMES.AUDIENCE));
40
+ if (!pin)
41
+ return null;
42
+ // An automatic pin is `personalization`: a visitor who rejects stops being
43
+ // resolved from tracking they no longer consent to. A pin they set by hand is
44
+ // `essential` and is honoured either way — refusing to act on the switcher
45
+ // they just used would make the panel lie about what its buttons do
46
+ // (kywi-cms#91).
47
+ if (!pin.viaSwitcher && !cookieAllowedByHeader(COOKIE_NAMES.AUDIENCE, gate.cookieHeader, gate)) {
19
48
  return null;
20
- return activeAudiences.some((a) => a.id === pinned) ? pinned : null;
49
+ }
50
+ return activeAudiences.some((a) => a.id === pin.id) ? pin.id : null;
21
51
  }
22
52
  //# sourceMappingURL=pinned-audience.js.map
@@ -1 +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"}
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;AAC5C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAA2B,MAAM,eAAe,CAAA;AAmBnG,mDAAmD;AACnD,MAAM,UAAU,qBAAqB,CAAC,EAAU,EAAE,WAAoB;IACpE,0EAA0E;IAC1E,6EAA6E;IAC7E,gEAAgE;IAChE,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,mBAAmB,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAA8B;IAC7D,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;AACxC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA4B,EAC5B,eAA2B,EAC3B,OAA8D,EAAE;IAEhE,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,oEAAoE;IACpE,iBAAiB;IACjB,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/F,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type ConsentGateOptions } from '../consent.js';
2
+ /**
3
+ * Read the visitor's stored self-ID answers off the `kywi_selfid` cookie
4
+ * (kywi-cms#200).
5
+ *
6
+ * Self-ID used to live only in the browser — `localStorage['kywi_selfid']`, read
7
+ * by @kywi-software/js's collector — which was enough while the client could
8
+ * swap variant arms itself. Since kywi-cms#167 every arm is chosen AND PRUNED on
9
+ * the server, so an answer the server cannot see is an answer that cannot change
10
+ * the page. `POST /kywi/self-id` writes this cookie; this reads it back, so
11
+ * `selfId.*` rules resolve server-side on every later render.
12
+ *
13
+ * A `personalization` cookie, so it is treated as ABSENT unless the visitor
14
+ * consents (kywi-cms#91): the answers are stored attributes, which is exactly
15
+ * what the gate governs. The audience PIN that a submit also writes is
16
+ * `essential` and ungated, so a visitor who declined still SEES the content they
17
+ * asked for — the server just does not re-derive it from a stored profile.
18
+ *
19
+ * Malformed JSON, or JSON that is not a flat string map, reads as no answers
20
+ * rather than throwing: this is a client-writable cookie.
21
+ */
22
+ export declare function collectSelfId(cookies: Map<string, string>, gate?: ConsentGateOptions & {
23
+ cookieHeader?: string | null;
24
+ }): Record<string, string>;
25
+ //# sourceMappingURL=selfid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selfid.d.ts","sourceRoot":"","sources":["../../../src/audiences/collectors/selfid.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEnG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,IAAI,GAAE,kBAAkB,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC/D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAaxB"}
@@ -0,0 +1,46 @@
1
+ import { COOKIE_NAMES } from '../cookies.js';
2
+ import { cookieAllowed, readConsentFromCookieHeader } from '../consent.js';
3
+ /**
4
+ * Read the visitor's stored self-ID answers off the `kywi_selfid` cookie
5
+ * (kywi-cms#200).
6
+ *
7
+ * Self-ID used to live only in the browser — `localStorage['kywi_selfid']`, read
8
+ * by @kywi-software/js's collector — which was enough while the client could
9
+ * swap variant arms itself. Since kywi-cms#167 every arm is chosen AND PRUNED on
10
+ * the server, so an answer the server cannot see is an answer that cannot change
11
+ * the page. `POST /kywi/self-id` writes this cookie; this reads it back, so
12
+ * `selfId.*` rules resolve server-side on every later render.
13
+ *
14
+ * A `personalization` cookie, so it is treated as ABSENT unless the visitor
15
+ * consents (kywi-cms#91): the answers are stored attributes, which is exactly
16
+ * what the gate governs. The audience PIN that a submit also writes is
17
+ * `essential` and ungated, so a visitor who declined still SEES the content they
18
+ * asked for — the server just does not re-derive it from a stored profile.
19
+ *
20
+ * Malformed JSON, or JSON that is not a flat string map, reads as no answers
21
+ * rather than throwing: this is a client-writable cookie.
22
+ */
23
+ export function collectSelfId(cookies, gate = {}) {
24
+ const consent = readConsentFromCookieHeader(gate.cookieHeader);
25
+ if (!cookieAllowed(COOKIE_NAMES.SELFID, consent, gate))
26
+ return {};
27
+ const raw = cookies.get(COOKIE_NAMES.SELFID);
28
+ if (!raw)
29
+ return {};
30
+ let parsed;
31
+ try {
32
+ parsed = JSON.parse(raw);
33
+ }
34
+ catch {
35
+ return {};
36
+ }
37
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
38
+ return {};
39
+ const out = {};
40
+ for (const [key, value] of Object.entries(parsed)) {
41
+ if (typeof value === 'string')
42
+ out[key] = value;
43
+ }
44
+ return out;
45
+ }
46
+ //# sourceMappingURL=selfid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selfid.js","sourceRoot":"","sources":["../../../src/audiences/collectors/selfid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAA2B,MAAM,eAAe,CAAA;AAEnG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAC3B,OAA4B,EAC5B,OAA8D,EAAE;IAEhE,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC9D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAA;IAAC,CAAC;IACpD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAA;IACrF,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;QAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACjD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { type ConsentGateOptions } from '../consent.js';
2
+ /**
3
+ * The session signals a single request can resolve on its own: the entry page
4
+ * (kywi-cms#196) and this request's query parameters.
5
+ *
6
+ * Everything else in `VisitorSignals.session` (page-view counts, duration,
7
+ * pages visited) is browser state the client runtime collects; the server has no
8
+ * way to know it and leaves it at the empty defaults.
9
+ */
10
+ export interface SessionSignals {
11
+ entryPage: string;
12
+ }
13
+ /**
14
+ * Resolve the visitor's entry page: the `kywi_entry` cookie recorded on the
15
+ * first request of the session, falling back to THIS request's path + query.
16
+ *
17
+ * The cookie is a `personalization` cookie, so it is treated as absent unless
18
+ * the visitor consents (kywi-cms#91) — a stored entry page from an earlier
19
+ * "accept" must stop resolving a visitor who has since rejected.
20
+ *
21
+ * The fallback is not a degraded mode, it is the mechanism: a `Set-Cookie` only
22
+ * takes effect on the NEXT request, so the landing request — the one carrying
23
+ * `?from=marketer` — has no cookie to read and must evaluate against its own
24
+ * path. That is what lets a campaign link personalize the page it links to
25
+ * without a reload, consent or no consent.
26
+ */
27
+ export declare function collectSession(req: Request, cookies: Map<string, string>, gate?: ConsentGateOptions & {
28
+ cookieHeader?: string | null;
29
+ }): SessionSignals;
30
+ /**
31
+ * Every query parameter on this request, as the `query.<param>` signal family
32
+ * (kywi-cms#196) — so a campaign link like `/developers?from=marketer` is a
33
+ * one-line audience rule (`query.from equals marketer`) instead of a substring
34
+ * match against the entry page.
35
+ *
36
+ * Never gated: like the URL's own `utm_*` params, these are the content of the
37
+ * request being served, not tracking carried into it from an earlier visit.
38
+ * Repeated params keep the FIRST value, matching `URLSearchParams.get`.
39
+ */
40
+ export declare function collectQuery(req: Request): Record<string, string>;
41
+ //# sourceMappingURL=session.d.ts.map