@kywi-software/core 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/AGENT-PATTERNS.md +153 -17
  2. package/README.md +38 -12
  3. package/dist/admin/chrome.d.ts.map +1 -1
  4. package/dist/admin/chrome.js +57 -8
  5. package/dist/admin/chrome.js.map +1 -1
  6. package/dist/admin/field-components.d.ts.map +1 -1
  7. package/dist/admin/field-components.js +27 -1
  8. package/dist/admin/field-components.js.map +1 -1
  9. package/dist/admin/form-helpers.d.ts.map +1 -1
  10. package/dist/admin/form-helpers.js +6 -1
  11. package/dist/admin/form-helpers.js.map +1 -1
  12. package/dist/admin/index.d.ts +1 -1
  13. package/dist/admin/index.d.ts.map +1 -1
  14. package/dist/admin/index.js +1 -1
  15. package/dist/admin/index.js.map +1 -1
  16. package/dist/admin/layout-editor/chrome-env.d.ts +35 -0
  17. package/dist/admin/layout-editor/chrome-env.d.ts.map +1 -0
  18. package/dist/admin/layout-editor/chrome-env.js +13 -0
  19. package/dist/admin/layout-editor/chrome-env.js.map +1 -0
  20. package/dist/admin/layout-editor/component-actions.d.ts +58 -7
  21. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  22. package/dist/admin/layout-editor/component-actions.js +131 -5
  23. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  24. package/dist/admin/layout-editor/component-fork.d.ts +4 -4
  25. package/dist/admin/layout-editor/component-fork.d.ts.map +1 -1
  26. package/dist/admin/layout-editor/component-fork.js +76 -10
  27. package/dist/admin/layout-editor/component-fork.js.map +1 -1
  28. package/dist/admin/layout-editor/component-picker-field.d.ts +17 -3
  29. package/dist/admin/layout-editor/component-picker-field.d.ts.map +1 -1
  30. package/dist/admin/layout-editor/component-picker-field.js +5 -2
  31. package/dist/admin/layout-editor/component-picker-field.js.map +1 -1
  32. package/dist/admin/layout-editor/drag-feedback.d.ts +25 -1
  33. package/dist/admin/layout-editor/drag-feedback.d.ts.map +1 -1
  34. package/dist/admin/layout-editor/drag-feedback.js +9 -0
  35. package/dist/admin/layout-editor/drag-feedback.js.map +1 -1
  36. package/dist/admin/layout-editor/drag-utils.d.ts +103 -5
  37. package/dist/admin/layout-editor/drag-utils.d.ts.map +1 -1
  38. package/dist/admin/layout-editor/drag-utils.js +131 -4
  39. package/dist/admin/layout-editor/drag-utils.js.map +1 -1
  40. package/dist/admin/layout-editor/editor-canvas.d.ts +11 -0
  41. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  42. package/dist/admin/layout-editor/editor-canvas.js +134 -20
  43. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  44. package/dist/admin/layout-editor/editor-dialog.d.ts +58 -3
  45. package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -1
  46. package/dist/admin/layout-editor/editor-dialog.js +71 -9
  47. package/dist/admin/layout-editor/editor-dialog.js.map +1 -1
  48. package/dist/admin/layout-editor/editor-state.d.ts +119 -0
  49. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  50. package/dist/admin/layout-editor/editor-state.js +188 -6
  51. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  52. package/dist/admin/layout-editor/editor-toolbar.d.ts +10 -1
  53. package/dist/admin/layout-editor/editor-toolbar.d.ts.map +1 -1
  54. package/dist/admin/layout-editor/editor-toolbar.js +2 -2
  55. package/dist/admin/layout-editor/editor-toolbar.js.map +1 -1
  56. package/dist/admin/layout-editor/editor.css +216 -8
  57. package/dist/admin/layout-editor/inline-text.d.ts +15 -1
  58. package/dist/admin/layout-editor/inline-text.d.ts.map +1 -1
  59. package/dist/admin/layout-editor/inline-text.js +30 -2
  60. package/dist/admin/layout-editor/inline-text.js.map +1 -1
  61. package/dist/admin/layout-editor/layout-editor.d.ts +21 -16
  62. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  63. package/dist/admin/layout-editor/layout-editor.js +40 -17
  64. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  65. package/dist/admin/layout-editor/linked-component-notes.d.ts +88 -0
  66. package/dist/admin/layout-editor/linked-component-notes.d.ts.map +1 -0
  67. package/dist/admin/layout-editor/linked-component-notes.js +88 -0
  68. package/dist/admin/layout-editor/linked-component-notes.js.map +1 -0
  69. package/dist/admin/layout-editor/module-overlay.d.ts +23 -4
  70. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  71. package/dist/admin/layout-editor/module-overlay.js +56 -10
  72. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  73. package/dist/admin/layout-editor/module-variant-container-config.d.ts.map +1 -1
  74. package/dist/admin/layout-editor/module-variant-container-config.js +9 -2
  75. package/dist/admin/layout-editor/module-variant-container-config.js.map +1 -1
  76. package/dist/admin/layout-editor/module-variant-container-panel.d.ts +75 -0
  77. package/dist/admin/layout-editor/module-variant-container-panel.d.ts.map +1 -0
  78. package/dist/admin/layout-editor/module-variant-container-panel.js +29 -0
  79. package/dist/admin/layout-editor/module-variant-container-panel.js.map +1 -0
  80. package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
  81. package/dist/admin/layout-editor/node-lookup.js +33 -3
  82. package/dist/admin/layout-editor/node-lookup.js.map +1 -1
  83. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  84. package/dist/admin/layout-editor/overlay-shell.js +19 -4
  85. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  86. package/dist/admin/layout-editor/props-panel.d.ts +28 -11
  87. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  88. package/dist/admin/layout-editor/props-panel.js +75 -125
  89. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  90. package/dist/admin/layout-editor/section-variant-container-config.d.ts.map +1 -1
  91. package/dist/admin/layout-editor/section-variant-container-config.js +11 -2
  92. package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -1
  93. package/dist/admin/layout-editor/use-chrome-flip.d.ts +99 -11
  94. package/dist/admin/layout-editor/use-chrome-flip.d.ts.map +1 -1
  95. package/dist/admin/layout-editor/use-chrome-flip.js +268 -97
  96. package/dist/admin/layout-editor/use-chrome-flip.js.map +1 -1
  97. package/dist/admin/layout-editor/use-component-connect.d.ts +13 -0
  98. package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -1
  99. package/dist/admin/layout-editor/use-component-connect.js +116 -20
  100. package/dist/admin/layout-editor/use-component-connect.js.map +1 -1
  101. package/dist/admin/layout-editor/use-component-fork.d.ts +49 -19
  102. package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -1
  103. package/dist/admin/layout-editor/use-component-fork.js +28 -19
  104. package/dist/admin/layout-editor/use-component-fork.js.map +1 -1
  105. package/dist/admin/layout-editor/use-component-library.d.ts +4 -4
  106. package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -1
  107. package/dist/admin/layout-editor/use-component-library.js +1 -1
  108. package/dist/admin/layout-editor/use-component-library.js.map +1 -1
  109. package/dist/admin/layout-editor/use-editor-dnd.d.ts +10 -0
  110. package/dist/admin/layout-editor/use-editor-dnd.d.ts.map +1 -1
  111. package/dist/admin/layout-editor/use-editor-dnd.js +234 -14
  112. package/dist/admin/layout-editor/use-editor-dnd.js.map +1 -1
  113. package/dist/admin/layout-editor/variant-container-config.d.ts.map +1 -1
  114. package/dist/admin/layout-editor/variant-container-config.js +1 -1
  115. package/dist/admin/layout-editor/variant-container-config.js.map +1 -1
  116. package/dist/admin/layout-editor/variant-editor.d.ts +16 -15
  117. package/dist/admin/layout-editor/variant-editor.d.ts.map +1 -1
  118. package/dist/admin/layout-editor/variant-editor.js +16 -5
  119. package/dist/admin/layout-editor/variant-editor.js.map +1 -1
  120. package/dist/admin/primitives.d.ts.map +1 -1
  121. package/dist/admin/primitives.js +1 -1
  122. package/dist/admin/primitives.js.map +1 -1
  123. package/dist/admin/registry.d.ts +24 -2
  124. package/dist/admin/registry.d.ts.map +1 -1
  125. package/dist/admin/registry.js +27 -0
  126. package/dist/admin/registry.js.map +1 -1
  127. package/dist/admin/server.d.ts +10 -1
  128. package/dist/admin/server.d.ts.map +1 -1
  129. package/dist/admin/server.js +4 -1
  130. package/dist/admin/server.js.map +1 -1
  131. package/dist/admin/site-switcher.d.ts +16 -3
  132. package/dist/admin/site-switcher.d.ts.map +1 -1
  133. package/dist/admin/site-switcher.js +18 -3
  134. package/dist/admin/site-switcher.js.map +1 -1
  135. package/dist/admin/styles/admin.css +0 -3
  136. package/dist/admin/surface-matcher.d.ts +6 -2
  137. package/dist/admin/surface-matcher.d.ts.map +1 -1
  138. package/dist/admin/surface-matcher.js +42 -5
  139. package/dist/admin/surface-matcher.js.map +1 -1
  140. package/dist/admin/surfaces/account/account-password.d.ts +3 -0
  141. package/dist/admin/surfaces/account/account-password.d.ts.map +1 -0
  142. package/dist/admin/surfaces/account/account-password.js +58 -0
  143. package/dist/admin/surfaces/account/account-password.js.map +1 -0
  144. package/dist/admin/surfaces/components/components-data.d.ts +31 -11
  145. package/dist/admin/surfaces/components/components-data.d.ts.map +1 -1
  146. package/dist/admin/surfaces/components/components-data.js +17 -4
  147. package/dist/admin/surfaces/components/components-data.js.map +1 -1
  148. package/dist/admin/surfaces/components/components-list.d.ts.map +1 -1
  149. package/dist/admin/surfaces/components/components-list.js +20 -7
  150. package/dist/admin/surfaces/components/components-list.js.map +1 -1
  151. package/dist/admin/surfaces/components/definition-canvas.d.ts +11 -3
  152. package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -1
  153. package/dist/admin/surfaces/components/definition-canvas.js +138 -17
  154. package/dist/admin/surfaces/components/definition-canvas.js.map +1 -1
  155. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -1
  156. package/dist/admin/surfaces/dashboard/dashboard-index.js +2 -2
  157. package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -1
  158. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
  159. package/dist/admin/surfaces/layouts/layout-editor-client.js +12 -11
  160. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
  161. package/dist/admin/surfaces/login.d.ts.map +1 -1
  162. package/dist/admin/surfaces/login.js +13 -1
  163. package/dist/admin/surfaces/login.js.map +1 -1
  164. package/dist/admin/surfaces/menus/menu-editor.d.ts.map +1 -1
  165. package/dist/admin/surfaces/menus/menu-editor.js +17 -4
  166. package/dist/admin/surfaces/menus/menu-editor.js.map +1 -1
  167. package/dist/admin/surfaces/menus/menu-tree.d.ts +18 -4
  168. package/dist/admin/surfaces/menus/menu-tree.d.ts.map +1 -1
  169. package/dist/admin/surfaces/menus/menu-tree.js +18 -3
  170. package/dist/admin/surfaces/menus/menu-tree.js.map +1 -1
  171. package/dist/admin/surfaces/menus/menus-data.d.ts +18 -0
  172. package/dist/admin/surfaces/menus/menus-data.d.ts.map +1 -1
  173. package/dist/admin/surfaces/menus/menus-data.js +4 -0
  174. package/dist/admin/surfaces/menus/menus-data.js.map +1 -1
  175. package/dist/admin/surfaces/menus/menus-list.d.ts.map +1 -1
  176. package/dist/admin/surfaces/menus/menus-list.js +2 -12
  177. package/dist/admin/surfaces/menus/menus-list.js.map +1 -1
  178. package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -1
  179. package/dist/admin/surfaces/settings/admin-features.js +12 -1
  180. package/dist/admin/surfaces/settings/admin-features.js.map +1 -1
  181. package/dist/admin/surfaces/users/users-data.d.ts +16 -0
  182. package/dist/admin/surfaces/users/users-data.d.ts.map +1 -1
  183. package/dist/admin/surfaces/users/users-data.js +19 -0
  184. package/dist/admin/surfaces/users/users-data.js.map +1 -1
  185. package/dist/admin/surfaces/users/users-detail.d.ts.map +1 -1
  186. package/dist/admin/surfaces/users/users-detail.js +87 -6
  187. package/dist/admin/surfaces/users/users-detail.js.map +1 -1
  188. package/dist/admin/surfaces/users/users-new.d.ts.map +1 -1
  189. package/dist/admin/surfaces/users/users-new.js +9 -5
  190. package/dist/admin/surfaces/users/users-new.js.map +1 -1
  191. package/dist/admin/user-form.d.ts +13 -2
  192. package/dist/admin/user-form.d.ts.map +1 -1
  193. package/dist/admin/user-form.js +3 -2
  194. package/dist/admin/user-form.js.map +1 -1
  195. package/dist/api/admin-features-routes.js +2 -2
  196. package/dist/api/admin-features-routes.js.map +1 -1
  197. package/dist/api/audience-preview-routes.d.ts +7 -0
  198. package/dist/api/audience-preview-routes.d.ts.map +1 -1
  199. package/dist/api/audience-preview-routes.js +4 -4
  200. package/dist/api/audience-preview-routes.js.map +1 -1
  201. package/dist/api/audience-routes.d.ts +7 -0
  202. package/dist/api/audience-routes.d.ts.map +1 -1
  203. package/dist/api/audience-routes.js +21 -15
  204. package/dist/api/audience-routes.js.map +1 -1
  205. package/dist/api/audience-runtime-routes.d.ts +6 -0
  206. package/dist/api/audience-runtime-routes.d.ts.map +1 -1
  207. package/dist/api/audience-runtime-routes.js +38 -3
  208. package/dist/api/audience-runtime-routes.js.map +1 -1
  209. package/dist/api/auth-routes.d.ts.map +1 -1
  210. package/dist/api/auth-routes.js +33 -4
  211. package/dist/api/auth-routes.js.map +1 -1
  212. package/dist/api/auth.d.ts +1 -0
  213. package/dist/api/auth.d.ts.map +1 -1
  214. package/dist/api/auth.js +43 -3
  215. package/dist/api/auth.js.map +1 -1
  216. package/dist/api/bulk-routes.d.ts.map +1 -1
  217. package/dist/api/bulk-routes.js +7 -7
  218. package/dist/api/bulk-routes.js.map +1 -1
  219. package/dist/api/category-routes.js +3 -3
  220. package/dist/api/category-routes.js.map +1 -1
  221. package/dist/api/comment-routes.js +8 -8
  222. package/dist/api/comment-routes.js.map +1 -1
  223. package/dist/api/component-routes.d.ts +25 -0
  224. package/dist/api/component-routes.d.ts.map +1 -1
  225. package/dist/api/component-routes.js +41 -16
  226. package/dist/api/component-routes.js.map +1 -1
  227. package/dist/api/content-routes.js +13 -13
  228. package/dist/api/content-routes.js.map +1 -1
  229. package/dist/api/dashboard-routes.js +1 -1
  230. package/dist/api/dashboard-routes.js.map +1 -1
  231. package/dist/api/experiment-routes.d.ts +7 -0
  232. package/dist/api/experiment-routes.d.ts.map +1 -1
  233. package/dist/api/experiment-routes.js +8 -8
  234. package/dist/api/experiment-routes.js.map +1 -1
  235. package/dist/api/experiment-runtime-routes.d.ts +6 -0
  236. package/dist/api/experiment-runtime-routes.d.ts.map +1 -1
  237. package/dist/api/experiment-runtime-routes.js +47 -11
  238. package/dist/api/experiment-runtime-routes.js.map +1 -1
  239. package/dist/api/feed-routes.d.ts +2 -2
  240. package/dist/api/feed-routes.js +3 -3
  241. package/dist/api/feed-routes.js.map +1 -1
  242. package/dist/api/form-routes.js +4 -4
  243. package/dist/api/form-routes.js.map +1 -1
  244. package/dist/api/graphql/resolvers.d.ts +1 -1
  245. package/dist/api/graphql/resolvers.d.ts.map +1 -1
  246. package/dist/api/graphql/resolvers.js +68 -33
  247. package/dist/api/graphql/resolvers.js.map +1 -1
  248. package/dist/api/group-routes.js +6 -6
  249. package/dist/api/group-routes.js.map +1 -1
  250. package/dist/api/index.d.ts +10 -0
  251. package/dist/api/index.d.ts.map +1 -1
  252. package/dist/api/index.js +97 -7
  253. package/dist/api/index.js.map +1 -1
  254. package/dist/api/layout-routes.d.ts.map +1 -1
  255. package/dist/api/layout-routes.js +27 -3
  256. package/dist/api/layout-routes.js.map +1 -1
  257. package/dist/api/media-routes.d.ts.map +1 -1
  258. package/dist/api/media-routes.js +50 -26
  259. package/dist/api/media-routes.js.map +1 -1
  260. package/dist/api/menu-routes.d.ts +9 -1
  261. package/dist/api/menu-routes.d.ts.map +1 -1
  262. package/dist/api/menu-routes.js +44 -10
  263. package/dist/api/menu-routes.js.map +1 -1
  264. package/dist/api/nav-routes.d.ts +6 -0
  265. package/dist/api/nav-routes.d.ts.map +1 -1
  266. package/dist/api/nav-routes.js +24 -3
  267. package/dist/api/nav-routes.js.map +1 -1
  268. package/dist/api/openapi.d.ts.map +1 -1
  269. package/dist/api/openapi.js +68 -33
  270. package/dist/api/openapi.js.map +1 -1
  271. package/dist/api/password-gate.d.ts +23 -0
  272. package/dist/api/password-gate.d.ts.map +1 -0
  273. package/dist/api/password-gate.js +41 -0
  274. package/dist/api/password-gate.js.map +1 -0
  275. package/dist/api/password-reset-routes.d.ts.map +1 -1
  276. package/dist/api/password-reset-routes.js +13 -6
  277. package/dist/api/password-reset-routes.js.map +1 -1
  278. package/dist/api/search-routes.js +2 -2
  279. package/dist/api/search-routes.js.map +1 -1
  280. package/dist/api/section-template-routes.d.ts.map +1 -1
  281. package/dist/api/section-template-routes.js +35 -18
  282. package/dist/api/section-template-routes.js.map +1 -1
  283. package/dist/api/site-admin-routes.d.ts +10 -1
  284. package/dist/api/site-admin-routes.d.ts.map +1 -1
  285. package/dist/api/site-admin-routes.js +21 -1
  286. package/dist/api/site-admin-routes.js.map +1 -1
  287. package/dist/api/site-context.d.ts +35 -5
  288. package/dist/api/site-context.d.ts.map +1 -1
  289. package/dist/api/site-context.js +21 -6
  290. package/dist/api/site-context.js.map +1 -1
  291. package/dist/api/tag-routes.js +3 -3
  292. package/dist/api/tag-routes.js.map +1 -1
  293. package/dist/api/translation-routes.js +5 -5
  294. package/dist/api/translation-routes.js.map +1 -1
  295. package/dist/api/user-routes.d.ts +4 -0
  296. package/dist/api/user-routes.d.ts.map +1 -1
  297. package/dist/api/user-routes.js +240 -17
  298. package/dist/api/user-routes.js.map +1 -1
  299. package/dist/api/webhook-routes.js +5 -5
  300. package/dist/api/webhook-routes.js.map +1 -1
  301. package/dist/api/workflow-routes.js +8 -8
  302. package/dist/api/workflow-routes.js.map +1 -1
  303. package/dist/audiences/collectors/identity.d.ts +14 -1
  304. package/dist/audiences/collectors/identity.d.ts.map +1 -1
  305. package/dist/audiences/collectors/identity.js +16 -3
  306. package/dist/audiences/collectors/identity.js.map +1 -1
  307. package/dist/audiences/collectors/index.d.ts +12 -2
  308. package/dist/audiences/collectors/index.d.ts.map +1 -1
  309. package/dist/audiences/collectors/index.js +16 -5
  310. package/dist/audiences/collectors/index.js.map +1 -1
  311. package/dist/audiences/collectors/pinned-audience.d.ts +28 -2
  312. package/dist/audiences/collectors/pinned-audience.d.ts.map +1 -1
  313. package/dist/audiences/collectors/pinned-audience.js +35 -5
  314. package/dist/audiences/collectors/pinned-audience.js.map +1 -1
  315. package/dist/audiences/collectors/utm.d.ts +15 -1
  316. package/dist/audiences/collectors/utm.d.ts.map +1 -1
  317. package/dist/audiences/collectors/utm.js +16 -2
  318. package/dist/audiences/collectors/utm.js.map +1 -1
  319. package/dist/audiences/consent-config.d.ts +21 -0
  320. package/dist/audiences/consent-config.d.ts.map +1 -0
  321. package/dist/audiences/consent-config.js +15 -0
  322. package/dist/audiences/consent-config.js.map +1 -0
  323. package/dist/audiences/consent-startup.d.ts +39 -0
  324. package/dist/audiences/consent-startup.d.ts.map +1 -0
  325. package/dist/audiences/consent-startup.js +105 -0
  326. package/dist/audiences/consent-startup.js.map +1 -0
  327. package/dist/audiences/consent.d.ts +192 -0
  328. package/dist/audiences/consent.d.ts.map +1 -0
  329. package/dist/audiences/consent.js +322 -0
  330. package/dist/audiences/consent.js.map +1 -0
  331. package/dist/audiences/engine.d.ts +7 -0
  332. package/dist/audiences/engine.d.ts.map +1 -1
  333. package/dist/audiences/engine.js +6 -2
  334. package/dist/audiences/engine.js.map +1 -1
  335. package/dist/audiences/index.d.ts +3 -0
  336. package/dist/audiences/index.d.ts.map +1 -1
  337. package/dist/audiences/index.js +6 -0
  338. package/dist/audiences/index.js.map +1 -1
  339. package/dist/audiences/server-eval.d.ts +13 -1
  340. package/dist/audiences/server-eval.d.ts.map +1 -1
  341. package/dist/audiences/server-eval.js +18 -2
  342. package/dist/audiences/server-eval.js.map +1 -1
  343. package/dist/audiences/ssr.d.ts +18 -1
  344. package/dist/audiences/ssr.d.ts.map +1 -1
  345. package/dist/audiences/ssr.js +18 -1
  346. package/dist/audiences/ssr.js.map +1 -1
  347. package/dist/audiences/utm-persistence.d.ts +20 -7
  348. package/dist/audiences/utm-persistence.d.ts.map +1 -1
  349. package/dist/audiences/utm-persistence.js +20 -7
  350. package/dist/audiences/utm-persistence.js.map +1 -1
  351. package/dist/auth/roles.d.ts +11 -0
  352. package/dist/auth/roles.d.ts.map +1 -1
  353. package/dist/auth/roles.js +13 -0
  354. package/dist/auth/roles.js.map +1 -1
  355. package/dist/auth/tokens.d.ts +7 -0
  356. package/dist/auth/tokens.d.ts.map +1 -1
  357. package/dist/auth/tokens.js +24 -2
  358. package/dist/auth/tokens.js.map +1 -1
  359. package/dist/config/types.d.ts +50 -0
  360. package/dist/config/types.d.ts.map +1 -1
  361. package/dist/config/types.js.map +1 -1
  362. package/dist/config/validate.d.ts.map +1 -1
  363. package/dist/config/validate.js +3 -0
  364. package/dist/config/validate.js.map +1 -1
  365. package/dist/db/apply-snapshot.d.ts +18 -0
  366. package/dist/db/apply-snapshot.d.ts.map +1 -1
  367. package/dist/db/apply-snapshot.js +41 -16
  368. package/dist/db/apply-snapshot.js.map +1 -1
  369. package/dist/db/component-instance-queries.d.ts +79 -19
  370. package/dist/db/component-instance-queries.d.ts.map +1 -1
  371. package/dist/db/component-instance-queries.js +266 -83
  372. package/dist/db/component-instance-queries.js.map +1 -1
  373. package/dist/db/component-queries.d.ts +1 -16
  374. package/dist/db/component-queries.d.ts.map +1 -1
  375. package/dist/db/component-queries.js +7 -56
  376. package/dist/db/component-queries.js.map +1 -1
  377. package/dist/db/content-queries.d.ts.map +1 -1
  378. package/dist/db/content-queries.js +1 -2
  379. package/dist/db/content-queries.js.map +1 -1
  380. package/dist/db/extension-queries.d.ts +2 -2
  381. package/dist/db/feed-queries.d.ts +3 -3
  382. package/dist/db/index.d.ts +1 -0
  383. package/dist/db/index.d.ts.map +1 -1
  384. package/dist/db/index.js +1 -0
  385. package/dist/db/index.js.map +1 -1
  386. package/dist/db/layout-queries.d.ts +2 -1
  387. package/dist/db/layout-queries.d.ts.map +1 -1
  388. package/dist/db/layout-queries.js +3 -3
  389. package/dist/db/layout-queries.js.map +1 -1
  390. package/dist/db/menu-queries.d.ts +69 -5
  391. package/dist/db/menu-queries.d.ts.map +1 -1
  392. package/dist/db/menu-queries.js +120 -13
  393. package/dist/db/menu-queries.js.map +1 -1
  394. package/dist/db/section-template-queries.d.ts +62 -0
  395. package/dist/db/section-template-queries.d.ts.map +1 -0
  396. package/dist/db/section-template-queries.js +178 -0
  397. package/dist/db/section-template-queries.js.map +1 -0
  398. package/dist/db/site-plugin-queries.d.ts +2 -2
  399. package/dist/db/tree-queries.d.ts.map +1 -1
  400. package/dist/db/tree-queries.js +5 -0
  401. package/dist/db/tree-queries.js.map +1 -1
  402. package/dist/db/user-queries.d.ts +28 -1
  403. package/dist/db/user-queries.d.ts.map +1 -1
  404. package/dist/db/user-queries.js +49 -1
  405. package/dist/db/user-queries.js.map +1 -1
  406. package/dist/db/webhook-queries.d.ts +3 -3
  407. package/dist/db/workflow-queries.d.ts.map +1 -1
  408. package/dist/db/workflow-queries.js +5 -20
  409. package/dist/db/workflow-queries.js.map +1 -1
  410. package/dist/experiments/runtime.d.ts +21 -3
  411. package/dist/experiments/runtime.d.ts.map +1 -1
  412. package/dist/experiments/runtime.js +21 -3
  413. package/dist/experiments/runtime.js.map +1 -1
  414. package/dist/host/index.d.ts +1 -0
  415. package/dist/host/index.d.ts.map +1 -1
  416. package/dist/host/index.js +12 -0
  417. package/dist/host/index.js.map +1 -1
  418. package/dist/layout/component-refs.d.ts +90 -2
  419. package/dist/layout/component-refs.d.ts.map +1 -1
  420. package/dist/layout/component-refs.js +293 -16
  421. package/dist/layout/component-refs.js.map +1 -1
  422. package/dist/layout/index.d.ts +4 -3
  423. package/dist/layout/index.d.ts.map +1 -1
  424. package/dist/layout/index.js +3 -2
  425. package/dist/layout/index.js.map +1 -1
  426. package/dist/layout/legacy-variant-container.d.ts +123 -0
  427. package/dist/layout/legacy-variant-container.d.ts.map +1 -0
  428. package/dist/layout/legacy-variant-container.js +397 -0
  429. package/dist/layout/legacy-variant-container.js.map +1 -0
  430. package/dist/layout/module-permissions.d.ts.map +1 -1
  431. package/dist/layout/module-permissions.js +25 -1
  432. package/dist/layout/module-permissions.js.map +1 -1
  433. package/dist/layout/modules-extended.d.ts +28 -1
  434. package/dist/layout/modules-extended.d.ts.map +1 -1
  435. package/dist/layout/modules-extended.js +73 -1
  436. package/dist/layout/modules-extended.js.map +1 -1
  437. package/dist/layout/modules.d.ts.map +1 -1
  438. package/dist/layout/modules.js +9 -1
  439. package/dist/layout/modules.js.map +1 -1
  440. package/dist/layout/personalization.d.ts +83 -0
  441. package/dist/layout/personalization.d.ts.map +1 -1
  442. package/dist/layout/personalization.js +250 -4
  443. package/dist/layout/personalization.js.map +1 -1
  444. package/dist/layout/registry.d.ts.map +1 -1
  445. package/dist/layout/registry.js +20 -0
  446. package/dist/layout/registry.js.map +1 -1
  447. package/dist/layout/renderer.d.ts +29 -2
  448. package/dist/layout/renderer.d.ts.map +1 -1
  449. package/dist/layout/renderer.js +23 -6
  450. package/dist/layout/renderer.js.map +1 -1
  451. package/dist/layout/types.d.ts +17 -0
  452. package/dist/layout/types.d.ts.map +1 -1
  453. package/dist/layout/types.js +7 -0
  454. package/dist/layout/types.js.map +1 -1
  455. package/dist/media/inline-risk.d.ts +26 -0
  456. package/dist/media/inline-risk.d.ts.map +1 -0
  457. package/dist/media/inline-risk.js +142 -0
  458. package/dist/media/inline-risk.js.map +1 -0
  459. package/dist/nav/builder.d.ts.map +1 -1
  460. package/dist/nav/builder.js +15 -3
  461. package/dist/nav/builder.js.map +1 -1
  462. package/dist/nav/index.d.ts +1 -1
  463. package/dist/nav/index.d.ts.map +1 -1
  464. package/dist/nav/index.js +1 -1
  465. package/dist/nav/index.js.map +1 -1
  466. package/dist/nav/menu-resolver.d.ts +11 -0
  467. package/dist/nav/menu-resolver.d.ts.map +1 -1
  468. package/dist/nav/menu-resolver.js +49 -9
  469. package/dist/nav/menu-resolver.js.map +1 -1
  470. package/dist/nav/paths.d.ts +37 -0
  471. package/dist/nav/paths.d.ts.map +1 -0
  472. package/dist/nav/paths.js +48 -0
  473. package/dist/nav/paths.js.map +1 -0
  474. package/dist/nav/types.d.ts +6 -0
  475. package/dist/nav/types.d.ts.map +1 -1
  476. package/dist/nav/url-resolver.d.ts +1 -5
  477. package/dist/nav/url-resolver.d.ts.map +1 -1
  478. package/dist/nav/url-resolver.js +6 -12
  479. package/dist/nav/url-resolver.js.map +1 -1
  480. package/dist/schema/base.d.ts +41 -4
  481. package/dist/schema/base.d.ts.map +1 -1
  482. package/dist/schema/base.js +23 -4
  483. package/dist/schema/base.js.map +1 -1
  484. package/dist/schema/components.d.ts +90 -9
  485. package/dist/schema/components.d.ts.map +1 -1
  486. package/dist/schema/components.js +113 -22
  487. package/dist/schema/components.js.map +1 -1
  488. package/dist/schema/mysql-tables.d.ts +5775 -48
  489. package/dist/schema/mysql-tables.d.ts.map +1 -1
  490. package/dist/schema/mysql-tables.js +621 -46
  491. package/dist/schema/mysql-tables.js.map +1 -1
  492. package/dist/scope/kywi-form.d.ts +11 -0
  493. package/dist/scope/kywi-form.d.ts.map +1 -1
  494. package/dist/scope/kywi-form.js +11 -1
  495. package/dist/scope/kywi-form.js.map +1 -1
  496. package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
  497. package/dist/scope/kywi-wizard-form.js +76 -2
  498. package/dist/scope/kywi-wizard-form.js.map +1 -1
  499. package/dist/scope/sticky-offset.d.ts +34 -13
  500. package/dist/scope/sticky-offset.d.ts.map +1 -1
  501. package/dist/scope/sticky-offset.js +236 -43
  502. package/dist/scope/sticky-offset.js.map +1 -1
  503. package/dist/site/styles.css +61 -15
  504. package/dist/versioning/scheduler.d.ts +28 -0
  505. package/dist/versioning/scheduler.d.ts.map +1 -1
  506. package/dist/versioning/scheduler.js +50 -3
  507. package/dist/versioning/scheduler.js.map +1 -1
  508. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"translation-routes.js","sourceRoot":"","sources":["../../src/api/translation-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translation-routes.js","sourceRoot":"","sources":["../../src/api/translation-routes.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import type { Router } from './router.js';
2
2
  import type { KywiDb } from '../db/client.js';
3
3
  import type { KywiConfig } from '../config/types.js';
4
+ import type { BruteForceDb, BruteForceConfig } from '../auth/brute-force.js';
4
5
  interface UserRouteContext {
5
6
  config: KywiConfig;
6
7
  db: KywiDb;
7
8
  authSecret: string;
9
+ /** Optional brute-force store, wired exactly as POST /auth/login wires it. */
10
+ bruteForceDb?: BruteForceDb;
11
+ bruteForceConfig?: BruteForceConfig;
8
12
  }
9
13
  export declare function registerUserRoutes(router: Router, ctx: UserRouteContext): void;
10
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"user-routes.d.ts","sourceRoot":"","sources":["../../src/api/user-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAqBjE,UAAU,gBAAgB;IACxB,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;CACnB;AAwBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA0M9E"}
1
+ {"version":3,"file":"user-routes.d.ts","sourceRoot":"","sources":["../../src/api/user-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAyBjE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAG5E,UAAU,gBAAgB;IACxB,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AA0ED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAwY9E"}
@@ -1,34 +1,86 @@
1
1
  import { z } from 'zod';
2
2
  import { jsonOk, jsonError, notFound, unauthorized, forbidden, validationError } from './response.js';
3
- import { getUserById, listUsers, createUser, updateUser, deleteUser, } from '../db/user-queries.js';
4
- import { resolveAuth } from './auth.js';
5
- import { hasMinRole } from '../auth/roles.js';
3
+ import { getUserById, getUserGroups, buildUserContext, listUsers, createUser, updateUser, deleteUser, changeUserPassword, } from '../db/user-queries.js';
4
+ import { verifyPassword } from '../auth/passwords.js';
5
+ import { issueAccessToken, issueRefreshToken } from '../auth/tokens.js';
6
+ import { resolveAuthForRequest } from './auth.js';
7
+ import { hasMinRole, outranks, KYWI_ROLES } from '../auth/roles.js';
6
8
  import { resolveSiteId } from '../db/site-queries.js';
7
- import { getUserSiteMemberships, addUserToSite, removeUserFromSite, } from '../db/site-membership-queries.js';
8
- import { assertSiteAccess } from './site-context.js';
9
+ import { getUserSiteMemberships, getUserSiteIds, addUserToSite, removeUserFromSite, } from '../db/site-membership-queries.js';
10
+ import { assertSiteAccess, hasSiteAccess } from './site-context.js';
11
+ import { recordStrike, isLockedOut, clearStrikes } from '../auth/brute-force.js';
9
12
  function stripPasswordHash(user) {
10
13
  const { passwordHash, ...rest } = user;
11
14
  return rest;
12
15
  }
16
+ /**
17
+ * Site scope for the PER-USER reads (`GET /users/:id`, `GET /users/:id/sites`).
18
+ *
19
+ * `GET /users` has been site-scoped since #73, but the per-user reads beside it
20
+ * were gated on ROLE only — so any siteAdmin could read any user in the
21
+ * install, including one belonging solely to a site they have no membership
22
+ * in, simply by addressing them by id. This closes that asymmetry.
23
+ *
24
+ * The rule, deliberately kept to one sentence: a non-self caller must SHARE A
25
+ * SITE with the target. `hasSiteAccess` (not a per-site `assertSiteAccess`
26
+ * loop) does the per-site test so the whole existing policy — superAdmin always
27
+ * passes, an undefined/empty caller claim is unrestricted under the lenient
28
+ * default — applies unchanged; sharing ANY one of the target's sites is enough.
29
+ *
30
+ * A target with ZERO membership rows is allowed under the lenient default, for
31
+ * the same back-compat reason `hasSiteAccess` allows a zero-row CALLER: an
32
+ * install that never seeded memberships must keep working. Under
33
+ * `strictSiteMembership` that case fails closed instead — a target belonging to
34
+ * no site shares one with nobody.
35
+ *
36
+ * Returns a ready-to-return 403, or `null` when the read may proceed.
37
+ */
38
+ function assertSharesSite(user, targetSiteIds, policy) {
39
+ if (user.role === 'superAdmin')
40
+ return null;
41
+ if (targetSiteIds.length === 0) {
42
+ return policy?.strictSiteMembership === true
43
+ ? forbidden('You do not have access to this site')
44
+ : null;
45
+ }
46
+ return targetSiteIds.some(siteId => hasSiteAccess(user, siteId, policy))
47
+ ? null
48
+ : forbidden('You do not have access to this site');
49
+ }
13
50
  const createUserSchema = z.object({
14
51
  email: z.string().email(),
15
52
  password: z.string().min(8, 'Password must be at least 8 characters'),
16
53
  firstName: z.string().optional(),
17
54
  lastName: z.string().optional(),
18
- role: z.string().optional(),
55
+ // z.enum, not z.string (kywi-cms#177): an unrecognized role maps to level 0
56
+ // in the role ladder, which fails CLOSED for the caller but OPEN for the
57
+ // target — a typo'd role would sink a user below every rank rail. Reject it
58
+ // at the edge with a 400 that names the field instead.
59
+ role: z.enum(KYWI_ROLES).optional(),
19
60
  siteId: z.string().optional(),
61
+ passwordResetRequired: z.boolean().optional(),
20
62
  });
21
63
  const updateUserSchema = z.object({
22
64
  email: z.string().email().optional(),
23
65
  firstName: z.string().optional(),
24
66
  lastName: z.string().optional(),
25
- role: z.string().optional(),
67
+ // z.enum for the same reason as createUserSchema above (kywi-cms#177).
68
+ role: z.enum(KYWI_ROLES).optional(),
26
69
  isActive: z.boolean().optional(),
70
+ passwordResetRequired: z.boolean().optional(),
71
+ });
72
+ const changePasswordSchema = z.object({
73
+ currentPassword: z.string().min(1).optional(),
74
+ newPassword: z.string().min(8, 'Password must be at least 8 characters'),
27
75
  });
28
76
  export function registerUserRoutes(router, ctx) {
29
77
  const { config, db, authSecret } = ctx;
78
+ // Goes through the per-request memo (kywi-cms#177): the forced-password-reset
79
+ // gate in `api/index.ts` has already resolved this exact Request, so without
80
+ // it every authenticated call here paid for a second JWT verification (plus a
81
+ // second round of DB reads for an API key or a pre-`sites`-claim token).
30
82
  async function authenticate(req) {
31
- return resolveAuth(req.headers.get('authorization'), authSecret, db);
83
+ return resolveAuthForRequest(req, authSecret, db);
32
84
  }
33
85
  // GET /users/me
34
86
  router.get('/users/me', async (req) => {
@@ -53,13 +105,13 @@ export function registerUserRoutes(router, ctx) {
53
105
  // site-membership rows store the site's DB UUID. Resolve so seeded users
54
106
  // (who are joined to a site by membership) are actually returned.
55
107
  const siteId = (await resolveSiteId(db, requestedSiteId)) ?? requestedSiteId;
56
- const siteDenied = assertSiteAccess(auth.user, siteId);
108
+ const siteDenied = assertSiteAccess(auth.user, siteId, config.auth);
57
109
  if (siteDenied)
58
110
  return siteDenied;
59
111
  const users = await listUsers(db, siteId);
60
112
  return jsonOk(users.map(u => stripPasswordHash(u)));
61
113
  });
62
- // GET /users/:id — requires siteAdmin OR self
114
+ // GET /users/:id — requires siteAdmin OR self, and (non-self) a shared site
63
115
  router.get('/users/:id', async (req, params) => {
64
116
  const auth = await authenticate(req);
65
117
  if (!auth.user)
@@ -71,6 +123,14 @@ export function registerUserRoutes(router, ctx) {
71
123
  const user = await getUserById(db, params.id);
72
124
  if (!user)
73
125
  return notFound('User not found');
126
+ // Site scope, mirroring GET /users (see `assertSharesSite`). Self is always
127
+ // allowed, and skipping the membership read for it keeps the common
128
+ // "load my own profile" call at one query.
129
+ if (!isSelf) {
130
+ const denied = assertSharesSite(auth.user, await getUserSiteIds(db, user.id), config.auth);
131
+ if (denied)
132
+ return denied;
133
+ }
74
134
  return jsonOk(stripPasswordHash(user));
75
135
  });
76
136
  // POST /users — requires siteAdmin
@@ -91,12 +151,21 @@ export function registerUserRoutes(router, ctx) {
91
151
  if (!parsed.success) {
92
152
  return validationError(parsed.error.errors.map(e => ({ path: e.path.join('.'), message: e.message })));
93
153
  }
94
- const { email, password, firstName, lastName, role, siteId } = parsed.data;
154
+ const { email, password, firstName, lastName, role, siteId, passwordResetRequired } = parsed.data;
155
+ // Role-GRANT ceiling. The rank rails elsewhere gate the target's CURRENT
156
+ // role; this one gates the role being HANDED OUT, which is the other half of
157
+ // the same rule and was missing (#175 review). Without it a siteAdmin could
158
+ // mint a superAdmin outright — and, since they also choose the password,
159
+ // simply log in as it. You may grant up to and INCLUDING your own rank,
160
+ // never above.
161
+ if (role !== undefined && !hasMinRole(auth.user.role, role)) {
162
+ return forbidden('You cannot grant a role above your own');
163
+ }
95
164
  const requestedSiteId = siteId ?? config.sites[0].id;
96
165
  // Resolve slug → UUID so the created membership matches how memberships are
97
166
  // stored (and so the new user shows up in the site-scoped GET /users list).
98
167
  const resolvedSiteId = (await resolveSiteId(db, requestedSiteId)) ?? requestedSiteId;
99
- const siteDenied = assertSiteAccess(auth.user, resolvedSiteId);
168
+ const siteDenied = assertSiteAccess(auth.user, resolvedSiteId, config.auth);
100
169
  if (siteDenied)
101
170
  return siteDenied;
102
171
  const user = await createUser(db, {
@@ -106,6 +175,7 @@ export function registerUserRoutes(router, ctx) {
106
175
  lastName: lastName ?? '',
107
176
  role: role ?? 'reader',
108
177
  siteId: resolvedSiteId,
178
+ passwordResetRequired: passwordResetRequired ?? false,
109
179
  });
110
180
  return jsonOk(stripPasswordHash(user), 201);
111
181
  });
@@ -129,15 +199,36 @@ export function registerUserRoutes(router, ctx) {
129
199
  if (!parsed.success) {
130
200
  return validationError(parsed.error.errors.map(e => ({ path: e.path.join('.'), message: e.message })));
131
201
  }
202
+ // Target-role rail (kywi-cms#175). PUT used to have the self rails but no
203
+ // rail on the TARGET, so a siteAdmin could force a password reset on a
204
+ // superAdmin — an account POST /users/:id/password already refuses to
205
+ // touch. An admin may edit a user of EQUAL-or-lower rank (`hasMinRole`);
206
+ // forcing a reset on a peer is deliberately allowed, since it is temporary
207
+ // and the peer clears it themselves by setting a password. Only the target
208
+ // row knows its role, so this costs one primary-key read on non-self edits.
209
+ if (!isSelf) {
210
+ const target = await getUserById(db, params.id);
211
+ if (!target)
212
+ return notFound('User not found');
213
+ if (!hasMinRole(auth.user.role, target.role)) {
214
+ return forbidden('You cannot edit a user above your own role');
215
+ }
216
+ }
132
217
  // Non-admins cannot change roles
133
218
  const rawUpdate = { ...parsed.data };
134
219
  if (!isAdmin) {
135
220
  delete rawUpdate.role;
221
+ delete rawUpdate.passwordResetRequired;
136
222
  }
137
223
  // Safety rail: an admin cannot lock themselves out. Block self-demotion
138
224
  // (changing your own role) and self-deactivation. The token's role is the
139
225
  // source of truth for "current" role, so no extra DB read is needed.
140
226
  if (isSelf) {
227
+ // siteAdmin-only flag, and never on yourself: forcing a reset on your own
228
+ // account would lock you into the set-password screen with no way back.
229
+ if (rawUpdate.passwordResetRequired !== undefined) {
230
+ return forbidden('You cannot force a reset on your own account');
231
+ }
141
232
  if (rawUpdate.role !== undefined && rawUpdate.role !== auth.user.role) {
142
233
  return forbidden('You cannot change your own role');
143
234
  }
@@ -145,6 +236,15 @@ export function registerUserRoutes(router, ctx) {
145
236
  return forbidden('You cannot deactivate your own account');
146
237
  }
147
238
  }
239
+ // The same grant ceiling POST /users applies (#175 review). The rail above
240
+ // only asks whether the caller outranks the target AS IT STANDS, which a
241
+ // reader always satisfies — so a siteAdmin could set a reader's password,
242
+ // then PUT that reader to superAdmin and log in as an account they now own.
243
+ // Checked after the non-admin strip, so a non-admin (whose `role` has
244
+ // already been dropped) can never trip it.
245
+ if (rawUpdate.role !== undefined && !hasMinRole(auth.user.role, rawUpdate.role)) {
246
+ return forbidden('You cannot grant a role above your own');
247
+ }
148
248
  // Strip undefined values to satisfy exactOptionalPropertyTypes
149
249
  const updateData = Object.fromEntries(Object.entries(rawUpdate).filter(([, v]) => v !== undefined));
150
250
  const updated = await updateUser(db, params.id, updateData);
@@ -152,23 +252,136 @@ export function registerUserRoutes(router, ctx) {
152
252
  return notFound('User not found');
153
253
  return jsonOk(stripPasswordHash(updated));
154
254
  });
155
- // DELETE /users/:id — requires siteAdmin
255
+ // POST /users/:id/passwordthe ONLY route that writes a password (kywi-cms#173).
256
+ // `password` is deliberately absent from updateUserSchema: PUT /users/:id must
257
+ // never accept one (Zod strips it), so this endpoint owns the whole lifecycle.
258
+ //
259
+ // Two callers, two rails: a user changing their OWN password must prove the
260
+ // current one (and is metered by the same brute-force lockout as login, so a
261
+ // stolen access token cannot hammer it), while a siteAdmin setting SOMEONE
262
+ // ELSE'S must STRICTLY outrank the target (kywi-cms#175).
263
+ //
264
+ // Session fallout: changing a password kills every refresh token minted before
265
+ // the change (see POST /auth/refresh). It does NOT revoke access tokens already
266
+ // in flight — other sessions keep working until their access token expires on
267
+ // its own (15 minutes). A self-change hands back a fresh pair so the caller's
268
+ // own session survives.
269
+ router.post('/users/:id/password', async (req, params) => {
270
+ const auth = await authenticate(req);
271
+ if (!auth.user)
272
+ return unauthorized();
273
+ let body;
274
+ try {
275
+ body = await req.json();
276
+ }
277
+ catch {
278
+ return jsonError('BAD_REQUEST', 'Invalid JSON body', 400);
279
+ }
280
+ const parsed = changePasswordSchema.safeParse(body);
281
+ if (!parsed.success) {
282
+ return validationError(parsed.error.errors.map(e => ({ path: e.path.join('.'), message: e.message })));
283
+ }
284
+ const isSelf = auth.user.id === params.id;
285
+ const isAdmin = hasMinRole(auth.user.role, 'siteAdmin');
286
+ if (!isSelf && !isAdmin)
287
+ return forbidden();
288
+ const target = await getUserById(db, params.id);
289
+ if (!target)
290
+ return notFound('User not found');
291
+ if (isSelf) {
292
+ // Self-service change: prove you know the current password.
293
+ if (!parsed.data.currentPassword) {
294
+ return validationError([
295
+ { path: 'currentPassword', message: 'Current password is required' },
296
+ ]);
297
+ }
298
+ // Same brute-force machinery as POST /auth/login, and for the same reason:
299
+ // without it a stolen 15-minute access token could guess `currentPassword`
300
+ // unmetered and rotate the password to make the theft permanent.
301
+ const clientIp = req.headers.get('x-forwarded-for')?.split(',')[0]?.trim() ?? 'unknown';
302
+ if (ctx.bruteForceDb && ctx.bruteForceConfig) {
303
+ const lockout = await isLockedOut(ctx.bruteForceDb, target.id, clientIp, ctx.bruteForceConfig);
304
+ if (lockout.locked) {
305
+ return jsonError('TOO_MANY_REQUESTS', 'Account temporarily locked due to too many failed attempts', 429, { retryAfter: lockout.retryAfter });
306
+ }
307
+ }
308
+ const ok = await verifyPassword(parsed.data.currentPassword, target.passwordHash);
309
+ // Deliberately generic wording — never distinguish "wrong password" from
310
+ // any other refusal to the client.
311
+ if (!ok) {
312
+ // Same guard as the lockout check above: strikes are only worth
313
+ // recording where a policy exists to read them.
314
+ if (ctx.bruteForceDb && ctx.bruteForceConfig) {
315
+ await recordStrike(ctx.bruteForceDb, target.id, clientIp);
316
+ }
317
+ return jsonError('INVALID_CURRENT_PASSWORD', 'Current password is incorrect', 403);
318
+ }
319
+ if (ctx.bruteForceDb && ctx.bruteForceConfig) {
320
+ await clearStrikes(ctx.bruteForceDb, target.id, clientIp);
321
+ }
322
+ }
323
+ else if (!outranks(auth.user.role, target.role)) {
324
+ // Strictly-greater, not `hasMinRole` (kywi-cms#175, owner decision): an
325
+ // admin may not seize an account that outranks them, AND may not seize a
326
+ // PEER's either — one siteAdmin setting another siteAdmin's password is a
327
+ // lateral takeover of an equal, which nothing in the product needs. The
328
+ // weaker "force a reset" nudge (PUT /users/:id) stays open to peers.
329
+ // `currentPassword` is ignored on this branch.
330
+ return forbidden('You cannot set the password for a user at or above your own role');
331
+ }
332
+ // Only a self-change satisfies a forced reset; an admin setting someone
333
+ // else's password leaves the flag exactly as the profile save left it.
334
+ const updated = await changeUserPassword(db, params.id, parsed.data.newPassword, {
335
+ clearResetRequired: isSelf,
336
+ });
337
+ if (!updated)
338
+ return notFound('User not found');
339
+ if (!isSelf)
340
+ return jsonOk({ changed: true });
341
+ // Self-change: hand the caller a fresh token pair so their own session
342
+ // survives the stateless invalidation in POST /auth/refresh (every refresh
343
+ // token minted before `passwordChangedAt` is now dead, including theirs).
344
+ const groups = await getUserGroups(db, updated.id);
345
+ const userCtx = buildUserContext(updated, groups);
346
+ userCtx.siteMemberships = await getUserSiteIds(db, updated.id);
347
+ const accessToken = await issueAccessToken(userCtx, authSecret);
348
+ const refreshToken = await issueRefreshToken(updated.id, authSecret);
349
+ return jsonOk({ changed: true, accessToken, refreshToken });
350
+ });
351
+ // DELETE /users/:id — requires siteAdmin AND strictly outranking the target.
156
352
  router.delete('/users/:id', async (req, params) => {
157
353
  const auth = await authenticate(req);
158
354
  if (!auth.user)
159
355
  return unauthorized();
160
356
  if (!hasMinRole(auth.user.role, 'siteAdmin'))
161
357
  return forbidden();
162
- // Safety rail: you cannot delete your own account.
358
+ // Safety rail: you cannot delete your own account. Checked before the
359
+ // target read so a self-delete costs no query.
163
360
  if (params.id === auth.user.id) {
164
361
  return forbidden('You cannot delete your own account');
165
362
  }
363
+ // Target-rank rail, mirroring POST /users/:id/password. DELETE had the
364
+ // caller rail and the self rail but NO rail on the target, so a siteAdmin
365
+ // could delete a superAdmin outright — a strictly worse outcome than the
366
+ // account takeover the password route already refuses.
367
+ //
368
+ // `outranks` (strictly-greater), not `hasMinRole`: deletion is
369
+ // irreversible, so a PEER is off limits too. One primary-key read, and it
370
+ // also gives the route a real 404 for an unknown id rather than inferring
371
+ // one from the delete's return value.
372
+ const target = await getUserById(db, params.id);
373
+ if (!target)
374
+ return notFound('User not found');
375
+ if (!outranks(auth.user.role, target.role)) {
376
+ return forbidden('You cannot delete a user at or above your own role');
377
+ }
166
378
  const deleted = await deleteUser(db, params.id);
167
379
  if (!deleted)
168
380
  return notFound('User not found');
169
381
  return jsonOk({ deleted: true });
170
382
  });
171
- // GET /users/:id/sites — site memberships for a user (siteAdmin or self)
383
+ // GET /users/:id/sites — site memberships for a user (siteAdmin or self),
384
+ // under the same shared-site rule as GET /users/:id above.
172
385
  router.get('/users/:id/sites', async (req, params) => {
173
386
  const auth = await authenticate(req);
174
387
  if (!auth.user)
@@ -178,6 +391,16 @@ export function registerUserRoutes(router, ctx) {
178
391
  if (!isSelf && !isAdmin)
179
392
  return forbidden();
180
393
  const memberships = await getUserSiteMemberships(db, params.id);
394
+ // The rows just read ARE the target's site list, so the scope check costs
395
+ // no extra query here. It is all-or-nothing rather than a filtered list:
396
+ // a caller who shares a site sees the whole membership set (which is what
397
+ // the admin user detail screen edits against), and one who shares none
398
+ // sees a 403 instead of an empty array that would read as "no memberships".
399
+ if (!isSelf) {
400
+ const denied = assertSharesSite(auth.user, memberships.map(m => m.siteId), config.auth);
401
+ if (denied)
402
+ return denied;
403
+ }
181
404
  return jsonOk(memberships);
182
405
  });
183
406
  // POST /users/:id/sites/:siteId — grant a site membership (siteAdmin)
@@ -191,7 +414,7 @@ export function registerUserRoutes(router, ctx) {
191
414
  if (!user)
192
415
  return notFound('User not found');
193
416
  const resolvedSiteId = (await resolveSiteId(db, params.siteId)) ?? params.siteId;
194
- const siteDenied = assertSiteAccess(auth.user, resolvedSiteId);
417
+ const siteDenied = assertSiteAccess(auth.user, resolvedSiteId, config.auth);
195
418
  if (siteDenied)
196
419
  return siteDenied;
197
420
  await addUserToSite(db, params.id, resolvedSiteId);
@@ -205,7 +428,7 @@ export function registerUserRoutes(router, ctx) {
205
428
  if (!hasMinRole(auth.user.role, 'siteAdmin'))
206
429
  return forbidden();
207
430
  const resolvedSiteId = (await resolveSiteId(db, params.siteId)) ?? params.siteId;
208
- const siteDenied = assertSiteAccess(auth.user, resolvedSiteId);
431
+ const siteDenied = assertSiteAccess(auth.user, resolvedSiteId, config.auth);
209
432
  if (siteDenied)
210
433
  return siteDenied;
211
434
  await removeUserFromSite(db, params.id, resolvedSiteId);
@@ -1 +1 @@
1
- {"version":3,"file":"user-routes.js","sourceRoot":"","sources":["../../src/api/user-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-routes.js","sourceRoot":"","sources":["../../src/api/user-routes.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export function registerWebhookRoutes(router, ctx) {
38
38
  return forbidden();
39
39
  const url = new URL(req.url);
40
40
  const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), config);
41
- const siteDenied = assertSiteAccess(auth.user, siteId);
41
+ const siteDenied = assertSiteAccess(auth.user, siteId, config.auth);
42
42
  if (siteDenied)
43
43
  return siteDenied;
44
44
  const endpoints = await listEndpoints(db, siteId);
@@ -64,7 +64,7 @@ export function registerWebhookRoutes(router, ctx) {
64
64
  return validationError(parsed.error.errors.map(e => ({ path: e.path.join('.'), message: e.message })));
65
65
  }
66
66
  const siteId = await toSiteUuid(db, null, config);
67
- const siteDenied = assertSiteAccess(auth.user, siteId);
67
+ const siteDenied = assertSiteAccess(auth.user, siteId, config.auth);
68
68
  if (siteDenied)
69
69
  return siteDenied;
70
70
  const endpoint = await createEndpoint(db, {
@@ -102,7 +102,7 @@ export function registerWebhookRoutes(router, ctx) {
102
102
  const existing = await getEndpointById(db, params.id);
103
103
  if (!existing)
104
104
  return notFound('Webhook endpoint not found');
105
- const siteDenied = assertSiteAccess(auth.user, existing.siteId);
105
+ const siteDenied = assertSiteAccess(auth.user, existing.siteId, config.auth);
106
106
  if (siteDenied)
107
107
  return siteDenied;
108
108
  const updated = await updateEndpoint(db, params.id, parsed.data);
@@ -122,7 +122,7 @@ export function registerWebhookRoutes(router, ctx) {
122
122
  const existing = await getEndpointById(db, params.id);
123
123
  if (!existing)
124
124
  return notFound('Webhook endpoint not found');
125
- const siteDenied = assertSiteAccess(auth.user, existing.siteId);
125
+ const siteDenied = assertSiteAccess(auth.user, existing.siteId, config.auth);
126
126
  if (siteDenied)
127
127
  return siteDenied;
128
128
  const deleted = await deleteEndpoint(db, params.id);
@@ -141,7 +141,7 @@ export function registerWebhookRoutes(router, ctx) {
141
141
  const existing = await getEndpointById(db, params.id);
142
142
  if (!existing)
143
143
  return notFound('Webhook endpoint not found');
144
- const siteDenied = assertSiteAccess(auth.user, existing.siteId);
144
+ const siteDenied = assertSiteAccess(auth.user, existing.siteId, config.auth);
145
145
  if (siteDenied)
146
146
  return siteDenied;
147
147
  const url = new URL(req.url);
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-routes.js","sourceRoot":"","sources":["../../src/api/webhook-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook-routes.js","sourceRoot":"","sources":["../../src/api/webhook-routes.ts"],"names":[],"mappings":"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"}