@miragon/pulse-widget-shell 0.24.2 → 0.25.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 (917) hide show
  1. package/README.md +134 -127
  2. package/dist/caller.d.ts +3 -0
  3. package/dist/caller.d.ts.map +1 -0
  4. package/dist/caller.js +18 -0
  5. package/dist/caller.js.map +1 -0
  6. package/dist/composed-server.d.ts +34 -66
  7. package/dist/composed-server.d.ts.map +1 -1
  8. package/dist/composed-server.js +130 -137
  9. package/dist/composed-server.js.map +1 -1
  10. package/dist/composition.d.ts +61 -111
  11. package/dist/composition.d.ts.map +1 -1
  12. package/dist/composition.js +120 -54
  13. package/dist/composition.js.map +1 -1
  14. package/dist/font-assets.d.ts +7 -28
  15. package/dist/font-assets.d.ts.map +1 -1
  16. package/dist/font-assets.js +11 -43
  17. package/dist/font-assets.js.map +1 -1
  18. package/dist/health.d.ts +9 -45
  19. package/dist/health.d.ts.map +1 -1
  20. package/dist/health.js +6 -24
  21. package/dist/health.js.map +1 -1
  22. package/dist/host-boot.d.ts +8 -38
  23. package/dist/host-boot.d.ts.map +1 -1
  24. package/dist/host-boot.js +10 -32
  25. package/dist/host-boot.js.map +1 -1
  26. package/dist/http-edge.d.ts +20 -76
  27. package/dist/http-edge.d.ts.map +1 -1
  28. package/dist/http-edge.js +17 -60
  29. package/dist/http-edge.js.map +1 -1
  30. package/dist/metrics.d.ts +6 -21
  31. package/dist/metrics.d.ts.map +1 -1
  32. package/dist/metrics.js +8 -36
  33. package/dist/metrics.js.map +1 -1
  34. package/dist/node-listener.d.ts +7 -39
  35. package/dist/node-listener.d.ts.map +1 -1
  36. package/dist/node-listener.js +6 -18
  37. package/dist/node-listener.js.map +1 -1
  38. package/dist/oauth-env.d.ts +15 -35
  39. package/dist/oauth-env.d.ts.map +1 -1
  40. package/dist/oauth-env.js +122 -62
  41. package/dist/oauth-env.js.map +1 -1
  42. package/dist/protocol/bpmn-names.d.ts +19 -0
  43. package/dist/protocol/bpmn-names.d.ts.map +1 -0
  44. package/dist/{bpmn-names.js → protocol/bpmn-names.js} +9 -38
  45. package/dist/protocol/bpmn-names.js.map +1 -0
  46. package/dist/protocol/served-fonts.d.ts +17 -0
  47. package/dist/protocol/served-fonts.d.ts.map +1 -0
  48. package/dist/protocol/served-fonts.js +30 -0
  49. package/dist/protocol/served-fonts.js.map +1 -0
  50. package/dist/protocol/tool-result.d.ts +24 -0
  51. package/dist/protocol/tool-result.d.ts.map +1 -0
  52. package/dist/protocol/tool-result.js +37 -0
  53. package/dist/protocol/tool-result.js.map +1 -0
  54. package/dist/protocol/translator.d.ts +14 -0
  55. package/dist/protocol/translator.d.ts.map +1 -0
  56. package/dist/protocol/translator.js +18 -0
  57. package/dist/protocol/translator.js.map +1 -0
  58. package/dist/protocol/view-name.d.ts +11 -0
  59. package/dist/protocol/view-name.d.ts.map +1 -0
  60. package/dist/protocol/view-name.js +23 -0
  61. package/dist/protocol/view-name.js.map +1 -0
  62. package/dist/request-context.d.ts +4 -33
  63. package/dist/request-context.d.ts.map +1 -1
  64. package/dist/request-context.js +11 -43
  65. package/dist/request-context.js.map +1 -1
  66. package/dist/server.d.ts +19 -39
  67. package/dist/server.d.ts.map +1 -1
  68. package/dist/server.js +28 -32
  69. package/dist/server.js.map +1 -1
  70. package/dist/testing/glossary.d.ts +4 -32
  71. package/dist/testing/glossary.d.ts.map +1 -1
  72. package/dist/testing/glossary.js +6 -30
  73. package/dist/testing/glossary.js.map +1 -1
  74. package/dist/testing/index.d.ts +1 -38
  75. package/dist/testing/index.d.ts.map +1 -1
  76. package/dist/testing/index.js +1 -38
  77. package/dist/testing/index.js.map +1 -1
  78. package/dist/tool-errors.d.ts +16 -0
  79. package/dist/tool-errors.d.ts.map +1 -0
  80. package/dist/tool-errors.js +23 -0
  81. package/dist/tool-errors.js.map +1 -0
  82. package/dist/tool-registrar.d.ts +29 -0
  83. package/dist/tool-registrar.d.ts.map +1 -0
  84. package/dist/tool-registrar.js +47 -0
  85. package/dist/tool-registrar.js.map +1 -0
  86. package/dist/tool-registration.d.ts +35 -0
  87. package/dist/tool-registration.d.ts.map +1 -0
  88. package/dist/tool-registration.js +80 -0
  89. package/dist/tool-registration.js.map +1 -0
  90. package/dist/tool-schema-trim.d.ts +1 -15
  91. package/dist/tool-schema-trim.d.ts.map +1 -1
  92. package/dist/tool-schema-trim.js +1 -16
  93. package/dist/tool-schema-trim.js.map +1 -1
  94. package/dist/toolsets.d.ts +10 -56
  95. package/dist/toolsets.d.ts.map +1 -1
  96. package/dist/toolsets.js +2 -10
  97. package/dist/toolsets.js.map +1 -1
  98. package/dist/ui/action-feedback.d.ts +4 -26
  99. package/dist/ui/action-feedback.d.ts.map +1 -1
  100. package/dist/ui/action-feedback.js +5 -19
  101. package/dist/ui/action-feedback.js.map +1 -1
  102. package/dist/ui/ask-ai-button.d.ts +6 -43
  103. package/dist/ui/ask-ai-button.d.ts.map +1 -1
  104. package/dist/ui/ask-ai-button.js +6 -18
  105. package/dist/ui/ask-ai-button.js.map +1 -1
  106. package/dist/ui/ask-ai-prompt.d.ts +6 -82
  107. package/dist/ui/ask-ai-prompt.d.ts.map +1 -1
  108. package/dist/ui/ask-ai-prompt.js +10 -77
  109. package/dist/ui/ask-ai-prompt.js.map +1 -1
  110. package/dist/ui/bpmn-tokens.d.ts +3 -48
  111. package/dist/ui/bpmn-tokens.d.ts.map +1 -1
  112. package/dist/ui/bpmn-tokens.js +3 -46
  113. package/dist/ui/bpmn-tokens.js.map +1 -1
  114. package/dist/ui/bpmn-zoom-controls.d.ts +4 -17
  115. package/dist/ui/bpmn-zoom-controls.d.ts.map +1 -1
  116. package/dist/ui/bpmn-zoom-controls.js +2 -16
  117. package/dist/ui/bpmn-zoom-controls.js.map +1 -1
  118. package/dist/ui/call-observer.d.ts +35 -0
  119. package/dist/ui/call-observer.d.ts.map +1 -0
  120. package/dist/ui/call-observer.js +86 -0
  121. package/dist/ui/call-observer.js.map +1 -0
  122. package/dist/ui/confirm-dialog.d.ts +4 -31
  123. package/dist/ui/confirm-dialog.d.ts.map +1 -1
  124. package/dist/ui/confirm-dialog.js +4 -27
  125. package/dist/ui/confirm-dialog.js.map +1 -1
  126. package/dist/ui/count-tone.d.ts +3 -17
  127. package/dist/ui/count-tone.d.ts.map +1 -1
  128. package/dist/ui/count-tone.js +2 -16
  129. package/dist/ui/count-tone.js.map +1 -1
  130. package/dist/ui/declare-served-fonts.d.ts +4 -10
  131. package/dist/ui/declare-served-fonts.d.ts.map +1 -1
  132. package/dist/ui/declare-served-fonts.js +6 -13
  133. package/dist/ui/declare-served-fonts.js.map +1 -1
  134. package/dist/ui/describe-error.d.ts +5 -47
  135. package/dist/ui/describe-error.d.ts.map +1 -1
  136. package/dist/ui/describe-error.js +8 -45
  137. package/dist/ui/describe-error.js.map +1 -1
  138. package/dist/ui/display-mode-toggle.d.ts +3 -16
  139. package/dist/ui/display-mode-toggle.d.ts.map +1 -1
  140. package/dist/ui/display-mode-toggle.js +6 -15
  141. package/dist/ui/display-mode-toggle.js.map +1 -1
  142. package/dist/ui/error-labels.d.ts +3 -19
  143. package/dist/ui/error-labels.d.ts.map +1 -1
  144. package/dist/ui/error-labels.js +0 -1
  145. package/dist/ui/error-labels.js.map +1 -1
  146. package/dist/ui/hand-off-button.d.ts +3 -18
  147. package/dist/ui/hand-off-button.d.ts.map +1 -1
  148. package/dist/ui/hand-off-button.js +3 -18
  149. package/dist/ui/hand-off-button.js.map +1 -1
  150. package/dist/ui/host-context.d.ts +13 -50
  151. package/dist/ui/host-context.d.ts.map +1 -1
  152. package/dist/ui/host-context.js +20 -51
  153. package/dist/ui/host-context.js.map +1 -1
  154. package/dist/ui/host-contexts.d.ts +19 -0
  155. package/dist/ui/host-contexts.d.ts.map +1 -0
  156. package/dist/ui/host-contexts.js +31 -0
  157. package/dist/ui/host-contexts.js.map +1 -0
  158. package/dist/ui/host-document.d.ts +3 -18
  159. package/dist/ui/host-document.d.ts.map +1 -1
  160. package/dist/ui/host-document.js +7 -25
  161. package/dist/ui/host-document.js.map +1 -1
  162. package/dist/ui/host-widgets.d.ts +21 -4
  163. package/dist/ui/host-widgets.d.ts.map +1 -1
  164. package/dist/ui/host-widgets.js +19 -11
  165. package/dist/ui/host-widgets.js.map +1 -1
  166. package/dist/ui/id-text.d.ts +1 -17
  167. package/dist/ui/id-text.d.ts.map +1 -1
  168. package/dist/ui/id-text.js +5 -26
  169. package/dist/ui/id-text.js.map +1 -1
  170. package/dist/ui/index.d.ts +24 -43
  171. package/dist/ui/index.d.ts.map +1 -1
  172. package/dist/ui/index.js +36 -51
  173. package/dist/ui/index.js.map +1 -1
  174. package/dist/ui/inline-budget.d.ts +2 -16
  175. package/dist/ui/inline-budget.d.ts.map +1 -1
  176. package/dist/ui/inline-budget.js +1 -8
  177. package/dist/ui/inline-budget.js.map +1 -1
  178. package/dist/ui/inline-fit-registry.d.ts +4 -31
  179. package/dist/ui/inline-fit-registry.d.ts.map +1 -1
  180. package/dist/ui/inline-fit-registry.js +9 -27
  181. package/dist/ui/inline-fit-registry.js.map +1 -1
  182. package/dist/ui/inline-fit-solve.d.ts +5 -27
  183. package/dist/ui/inline-fit-solve.d.ts.map +1 -1
  184. package/dist/ui/inline-fit-solve.js +4 -23
  185. package/dist/ui/inline-fit-solve.js.map +1 -1
  186. package/dist/ui/inline-fit.d.ts +4 -53
  187. package/dist/ui/inline-fit.d.ts.map +1 -1
  188. package/dist/ui/inline-fit.js +16 -62
  189. package/dist/ui/inline-fit.js.map +1 -1
  190. package/dist/ui/kit-labels.d.ts +12 -51
  191. package/dist/ui/kit-labels.d.ts.map +1 -1
  192. package/dist/ui/kit-labels.js +18 -28
  193. package/dist/ui/kit-labels.js.map +1 -1
  194. package/dist/ui/list-table.d.ts +15 -69
  195. package/dist/ui/list-table.d.ts.map +1 -1
  196. package/dist/ui/list-table.js +11 -69
  197. package/dist/ui/list-table.js.map +1 -1
  198. package/dist/ui/locale-gate.d.ts +11 -0
  199. package/dist/ui/locale-gate.d.ts.map +1 -0
  200. package/dist/ui/locale-gate.js +53 -0
  201. package/dist/ui/locale-gate.js.map +1 -0
  202. package/dist/ui/mcp-use-host.d.ts +20 -0
  203. package/dist/ui/mcp-use-host.d.ts.map +1 -0
  204. package/dist/ui/mcp-use-host.js +162 -0
  205. package/dist/ui/mcp-use-host.js.map +1 -0
  206. package/dist/ui/open-in-cockpit-link.d.ts +2 -21
  207. package/dist/ui/open-in-cockpit-link.d.ts.map +1 -1
  208. package/dist/ui/open-in-cockpit-link.js +5 -20
  209. package/dist/ui/open-in-cockpit-link.js.map +1 -1
  210. package/dist/ui/paged-rows.d.ts +3 -14
  211. package/dist/ui/paged-rows.d.ts.map +1 -1
  212. package/dist/ui/paged-rows.js +4 -14
  213. package/dist/ui/paged-rows.js.map +1 -1
  214. package/dist/ui/query-fallback.d.ts +2 -16
  215. package/dist/ui/query-fallback.d.ts.map +1 -1
  216. package/dist/ui/query-fallback.js +2 -14
  217. package/dist/ui/query-fallback.js.map +1 -1
  218. package/dist/ui/shell-host.d.ts +13 -23
  219. package/dist/ui/shell-host.d.ts.map +1 -1
  220. package/dist/ui/shell-host.js +1 -46
  221. package/dist/ui/shell-host.js.map +1 -1
  222. package/dist/ui/test-view-host.d.ts +51 -0
  223. package/dist/ui/test-view-host.d.ts.map +1 -0
  224. package/dist/ui/test-view-host.js +72 -0
  225. package/dist/ui/test-view-host.js.map +1 -0
  226. package/dist/ui/tool-query.d.ts +41 -0
  227. package/dist/ui/tool-query.d.ts.map +1 -0
  228. package/dist/ui/tool-query.js +128 -0
  229. package/dist/ui/tool-query.js.map +1 -0
  230. package/dist/ui/use-apply-theme.d.ts +1 -8
  231. package/dist/ui/use-apply-theme.d.ts.map +1 -1
  232. package/dist/ui/use-apply-theme.js +1 -8
  233. package/dist/ui/use-apply-theme.js.map +1 -1
  234. package/dist/ui/use-bpmn-viewer.d.ts +39 -73
  235. package/dist/ui/use-bpmn-viewer.d.ts.map +1 -1
  236. package/dist/ui/use-bpmn-viewer.js +18 -66
  237. package/dist/ui/use-bpmn-viewer.js.map +1 -1
  238. package/dist/ui/use-detail-view.d.ts +4 -26
  239. package/dist/ui/use-detail-view.d.ts.map +1 -1
  240. package/dist/ui/use-detail-view.js +7 -28
  241. package/dist/ui/use-detail-view.js.map +1 -1
  242. package/dist/ui/use-paged-list-view.d.ts +5 -25
  243. package/dist/ui/use-paged-list-view.d.ts.map +1 -1
  244. package/dist/ui/use-paged-list-view.js +5 -14
  245. package/dist/ui/use-paged-list-view.js.map +1 -1
  246. package/dist/ui/use-paged-view-data.d.ts +11 -66
  247. package/dist/ui/use-paged-view-data.d.ts.map +1 -1
  248. package/dist/ui/use-paged-view-data.js +20 -53
  249. package/dist/ui/use-paged-view-data.js.map +1 -1
  250. package/dist/ui/view-call.d.ts +66 -0
  251. package/dist/ui/view-call.d.ts.map +1 -0
  252. package/dist/ui/view-call.js +63 -0
  253. package/dist/ui/view-call.js.map +1 -0
  254. package/dist/ui/view-data-state.d.ts +1 -31
  255. package/dist/ui/view-data-state.d.ts.map +1 -1
  256. package/dist/ui/view-data-state.js +3 -32
  257. package/dist/ui/view-data-state.js.map +1 -1
  258. package/dist/ui/view-error-boundary.d.ts +24 -0
  259. package/dist/ui/view-error-boundary.d.ts.map +1 -0
  260. package/dist/ui/view-error-boundary.js +33 -0
  261. package/dist/ui/view-error-boundary.js.map +1 -0
  262. package/dist/ui/view-frame.d.ts +15 -0
  263. package/dist/ui/view-frame.d.ts.map +1 -0
  264. package/dist/ui/view-frame.js +72 -0
  265. package/dist/ui/view-frame.js.map +1 -0
  266. package/dist/ui/view-host.d.ts +35 -0
  267. package/dist/ui/view-host.d.ts.map +1 -0
  268. package/dist/ui/view-host.js +18 -0
  269. package/dist/ui/view-host.js.map +1 -0
  270. package/dist/ui/view-meta.d.ts +6 -29
  271. package/dist/ui/view-meta.d.ts.map +1 -1
  272. package/dist/ui/view-meta.js +2 -13
  273. package/dist/ui/view-meta.js.map +1 -1
  274. package/dist/ui/view-refresh-state.d.ts +4 -18
  275. package/dist/ui/view-refresh-state.d.ts.map +1 -1
  276. package/dist/ui/view-refresh-state.js +1 -7
  277. package/dist/ui/view-refresh-state.js.map +1 -1
  278. package/dist/ui/view-root.d.ts +26 -0
  279. package/dist/ui/view-root.d.ts.map +1 -0
  280. package/dist/ui/view-root.js +48 -0
  281. package/dist/ui/view-root.js.map +1 -0
  282. package/dist/ui/views.d.ts +17 -0
  283. package/dist/ui/views.d.ts.map +1 -0
  284. package/dist/ui/views.js +11 -0
  285. package/dist/ui/views.js.map +1 -0
  286. package/dist/ui/widget-shell.d.ts +1 -13
  287. package/dist/ui/widget-shell.d.ts.map +1 -1
  288. package/dist/ui/widget-shell.js +5 -30
  289. package/dist/ui/widget-shell.js.map +1 -1
  290. package/dist/view-bundle.d.ts +15 -0
  291. package/dist/view-bundle.d.ts.map +1 -0
  292. package/dist/view-bundle.js +23 -0
  293. package/dist/view-bundle.js.map +1 -0
  294. package/dist/view-results.d.ts +12 -23
  295. package/dist/view-results.d.ts.map +1 -1
  296. package/dist/view-results.js +14 -11
  297. package/dist/view-results.js.map +1 -1
  298. package/dist/widget-tool-bindings.d.ts +19 -48
  299. package/dist/widget-tool-bindings.d.ts.map +1 -1
  300. package/dist/widget-tool-bindings.js +21 -49
  301. package/dist/widget-tool-bindings.js.map +1 -1
  302. package/package.json +24 -36
  303. package/dist/adapt-data-widget.d.ts +0 -7
  304. package/dist/adapt-data-widget.d.ts.map +0 -1
  305. package/dist/adapt-data-widget.js +0 -7
  306. package/dist/adapt-data-widget.js.map +0 -1
  307. package/dist/bpmn-names.d.ts +0 -42
  308. package/dist/bpmn-names.d.ts.map +0 -1
  309. package/dist/bpmn-names.js.map +0 -1
  310. package/dist/bpmn-names.test.d.ts +0 -2
  311. package/dist/bpmn-names.test.d.ts.map +0 -1
  312. package/dist/bpmn-names.test.js +0 -143
  313. package/dist/bpmn-names.test.js.map +0 -1
  314. package/dist/build-data-feed-result.test.d.ts +0 -2
  315. package/dist/build-data-feed-result.test.d.ts.map +0 -1
  316. package/dist/build-data-feed-result.test.js +0 -28
  317. package/dist/build-data-feed-result.test.js.map +0 -1
  318. package/dist/build-single-widget-view.test.d.ts +0 -2
  319. package/dist/build-single-widget-view.test.d.ts.map +0 -1
  320. package/dist/build-single-widget-view.test.js +0 -136
  321. package/dist/build-single-widget-view.test.js.map +0 -1
  322. package/dist/builder-texts.d.ts +0 -27
  323. package/dist/builder-texts.d.ts.map +0 -1
  324. package/dist/builder-texts.js +0 -32
  325. package/dist/builder-texts.js.map +0 -1
  326. package/dist/builder-texts.test.d.ts +0 -2
  327. package/dist/builder-texts.test.d.ts.map +0 -1
  328. package/dist/builder-texts.test.js +0 -54
  329. package/dist/builder-texts.test.js.map +0 -1
  330. package/dist/catalogue-sync.d.ts +0 -18
  331. package/dist/catalogue-sync.d.ts.map +0 -1
  332. package/dist/catalogue-sync.js +0 -31
  333. package/dist/catalogue-sync.js.map +0 -1
  334. package/dist/catalogue-sync.test.d.ts +0 -2
  335. package/dist/catalogue-sync.test.d.ts.map +0 -1
  336. package/dist/catalogue-sync.test.js +0 -22
  337. package/dist/catalogue-sync.test.js.map +0 -1
  338. package/dist/composed-server.edge.test.d.ts +0 -2
  339. package/dist/composed-server.edge.test.d.ts.map +0 -1
  340. package/dist/composed-server.edge.test.js +0 -184
  341. package/dist/composed-server.edge.test.js.map +0 -1
  342. package/dist/composed-server.fonts.test.d.ts +0 -2
  343. package/dist/composed-server.fonts.test.d.ts.map +0 -1
  344. package/dist/composed-server.fonts.test.js +0 -186
  345. package/dist/composed-server.fonts.test.js.map +0 -1
  346. package/dist/composed-server.test.d.ts +0 -2
  347. package/dist/composed-server.test.d.ts.map +0 -1
  348. package/dist/composed-server.test.js +0 -332
  349. package/dist/composed-server.test.js.map +0 -1
  350. package/dist/composition.test.d.ts +0 -2
  351. package/dist/composition.test.d.ts.map +0 -1
  352. package/dist/composition.test.js +0 -275
  353. package/dist/composition.test.js.map +0 -1
  354. package/dist/dashboard-store-postgres.d.ts +0 -43
  355. package/dist/dashboard-store-postgres.d.ts.map +0 -1
  356. package/dist/dashboard-store-postgres.js +0 -225
  357. package/dist/dashboard-store-postgres.js.map +0 -1
  358. package/dist/dashboard-store-postgres.test.d.ts +0 -2
  359. package/dist/dashboard-store-postgres.test.d.ts.map +0 -1
  360. package/dist/dashboard-store-postgres.test.js +0 -272
  361. package/dist/dashboard-store-postgres.test.js.map +0 -1
  362. package/dist/font-assets.test.d.ts +0 -2
  363. package/dist/font-assets.test.d.ts.map +0 -1
  364. package/dist/font-assets.test.js +0 -123
  365. package/dist/font-assets.test.js.map +0 -1
  366. package/dist/health.test.d.ts +0 -2
  367. package/dist/health.test.d.ts.map +0 -1
  368. package/dist/health.test.js +0 -140
  369. package/dist/health.test.js.map +0 -1
  370. package/dist/host-boot.test.d.ts +0 -2
  371. package/dist/host-boot.test.d.ts.map +0 -1
  372. package/dist/host-boot.test.js +0 -59
  373. package/dist/host-boot.test.js.map +0 -1
  374. package/dist/http-edge.test.d.ts +0 -2
  375. package/dist/http-edge.test.d.ts.map +0 -1
  376. package/dist/http-edge.test.js +0 -255
  377. package/dist/http-edge.test.js.map +0 -1
  378. package/dist/metrics.test.d.ts +0 -2
  379. package/dist/metrics.test.d.ts.map +0 -1
  380. package/dist/metrics.test.js +0 -154
  381. package/dist/metrics.test.js.map +0 -1
  382. package/dist/node-listener.test.d.ts +0 -2
  383. package/dist/node-listener.test.d.ts.map +0 -1
  384. package/dist/node-listener.test.js +0 -331
  385. package/dist/node-listener.test.js.map +0 -1
  386. package/dist/oauth-env.test.d.ts +0 -2
  387. package/dist/oauth-env.test.d.ts.map +0 -1
  388. package/dist/oauth-env.test.js +0 -76
  389. package/dist/oauth-env.test.js.map +0 -1
  390. package/dist/postgres.d.ts +0 -59
  391. package/dist/postgres.d.ts.map +0 -1
  392. package/dist/postgres.js +0 -80
  393. package/dist/postgres.js.map +0 -1
  394. package/dist/profile-advisory.d.ts +0 -19
  395. package/dist/profile-advisory.d.ts.map +0 -1
  396. package/dist/profile-advisory.js +0 -48
  397. package/dist/profile-advisory.js.map +0 -1
  398. package/dist/profile-advisory.test.d.ts +0 -2
  399. package/dist/profile-advisory.test.d.ts.map +0 -1
  400. package/dist/profile-advisory.test.js +0 -53
  401. package/dist/profile-advisory.test.js.map +0 -1
  402. package/dist/profile-constants.d.ts +0 -37
  403. package/dist/profile-constants.d.ts.map +0 -1
  404. package/dist/profile-constants.js +0 -37
  405. package/dist/profile-constants.js.map +0 -1
  406. package/dist/profile-migrations.d.ts +0 -71
  407. package/dist/profile-migrations.d.ts.map +0 -1
  408. package/dist/profile-migrations.js +0 -88
  409. package/dist/profile-migrations.js.map +0 -1
  410. package/dist/profile-migrations.test.d.ts +0 -2
  411. package/dist/profile-migrations.test.d.ts.map +0 -1
  412. package/dist/profile-migrations.test.js +0 -200
  413. package/dist/profile-migrations.test.js.map +0 -1
  414. package/dist/profile-record.d.ts +0 -60
  415. package/dist/profile-record.d.ts.map +0 -1
  416. package/dist/profile-record.js +0 -78
  417. package/dist/profile-record.js.map +0 -1
  418. package/dist/profile-slice.d.ts +0 -53
  419. package/dist/profile-slice.d.ts.map +0 -1
  420. package/dist/profile-slice.js +0 -73
  421. package/dist/profile-slice.js.map +0 -1
  422. package/dist/profile-slice.test.d.ts +0 -2
  423. package/dist/profile-slice.test.d.ts.map +0 -1
  424. package/dist/profile-slice.test.js +0 -73
  425. package/dist/profile-slice.test.js.map +0 -1
  426. package/dist/profile-store-env.d.ts +0 -34
  427. package/dist/profile-store-env.d.ts.map +0 -1
  428. package/dist/profile-store-env.js +0 -44
  429. package/dist/profile-store-env.js.map +0 -1
  430. package/dist/profile-store-env.test.d.ts +0 -2
  431. package/dist/profile-store-env.test.d.ts.map +0 -1
  432. package/dist/profile-store-env.test.js +0 -69
  433. package/dist/profile-store-env.test.js.map +0 -1
  434. package/dist/profile-store-postgres.d.ts +0 -33
  435. package/dist/profile-store-postgres.d.ts.map +0 -1
  436. package/dist/profile-store-postgres.js +0 -87
  437. package/dist/profile-store-postgres.js.map +0 -1
  438. package/dist/profile-store-raw.test.d.ts +0 -2
  439. package/dist/profile-store-raw.test.d.ts.map +0 -1
  440. package/dist/profile-store-raw.test.js +0 -185
  441. package/dist/profile-store-raw.test.js.map +0 -1
  442. package/dist/profile-store.d.ts +0 -85
  443. package/dist/profile-store.d.ts.map +0 -1
  444. package/dist/profile-store.js +0 -182
  445. package/dist/profile-store.js.map +0 -1
  446. package/dist/profile-store.test.d.ts +0 -2
  447. package/dist/profile-store.test.d.ts.map +0 -1
  448. package/dist/profile-store.test.js +0 -353
  449. package/dist/profile-store.test.js.map +0 -1
  450. package/dist/profile.d.ts +0 -75
  451. package/dist/profile.d.ts.map +0 -1
  452. package/dist/profile.js +0 -85
  453. package/dist/profile.js.map +0 -1
  454. package/dist/profile.test.d.ts +0 -2
  455. package/dist/profile.test.d.ts.map +0 -1
  456. package/dist/profile.test.js +0 -71
  457. package/dist/profile.test.js.map +0 -1
  458. package/dist/request-context.test.d.ts +0 -2
  459. package/dist/request-context.test.d.ts.map +0 -1
  460. package/dist/request-context.test.js +0 -107
  461. package/dist/request-context.test.js.map +0 -1
  462. package/dist/served-fonts.d.ts +0 -38
  463. package/dist/served-fonts.d.ts.map +0 -1
  464. package/dist/served-fonts.js +0 -51
  465. package/dist/served-fonts.js.map +0 -1
  466. package/dist/served-fonts.test.d.ts +0 -2
  467. package/dist/served-fonts.test.d.ts.map +0 -1
  468. package/dist/served-fonts.test.js +0 -30
  469. package/dist/served-fonts.test.js.map +0 -1
  470. package/dist/server-locale.d.ts +0 -58
  471. package/dist/server-locale.d.ts.map +0 -1
  472. package/dist/server-locale.js +0 -64
  473. package/dist/server-locale.js.map +0 -1
  474. package/dist/server-locale.test.d.ts +0 -2
  475. package/dist/server-locale.test.d.ts.map +0 -1
  476. package/dist/server-locale.test.js +0 -90
  477. package/dist/server-locale.test.js.map +0 -1
  478. package/dist/shell-catalogue.d.ts +0 -12
  479. package/dist/shell-catalogue.d.ts.map +0 -1
  480. package/dist/shell-catalogue.js +0 -142
  481. package/dist/shell-catalogue.js.map +0 -1
  482. package/dist/shell-settings-contract.d.ts +0 -34
  483. package/dist/shell-settings-contract.d.ts.map +0 -1
  484. package/dist/shell-settings-contract.js +0 -21
  485. package/dist/shell-settings-contract.js.map +0 -1
  486. package/dist/shell-settings.d.ts +0 -24
  487. package/dist/shell-settings.d.ts.map +0 -1
  488. package/dist/shell-settings.js +0 -148
  489. package/dist/shell-settings.js.map +0 -1
  490. package/dist/shell-settings.test.d.ts +0 -2
  491. package/dist/shell-settings.test.d.ts.map +0 -1
  492. package/dist/shell-settings.test.js +0 -115
  493. package/dist/shell-settings.test.js.map +0 -1
  494. package/dist/testing/catalog-text.d.ts +0 -53
  495. package/dist/testing/catalog-text.d.ts.map +0 -1
  496. package/dist/testing/catalog-text.js +0 -146
  497. package/dist/testing/catalog-text.js.map +0 -1
  498. package/dist/testing/catalog-text.test.d.ts +0 -2
  499. package/dist/testing/catalog-text.test.d.ts.map +0 -1
  500. package/dist/testing/catalog-text.test.js +0 -137
  501. package/dist/testing/catalog-text.test.js.map +0 -1
  502. package/dist/testing/colors.d.ts +0 -34
  503. package/dist/testing/colors.d.ts.map +0 -1
  504. package/dist/testing/colors.js +0 -124
  505. package/dist/testing/colors.js.map +0 -1
  506. package/dist/testing/colors.test.d.ts +0 -2
  507. package/dist/testing/colors.test.d.ts.map +0 -1
  508. package/dist/testing/colors.test.js +0 -166
  509. package/dist/testing/colors.test.js.map +0 -1
  510. package/dist/testing/contrast.d.ts +0 -77
  511. package/dist/testing/contrast.d.ts.map +0 -1
  512. package/dist/testing/contrast.js +0 -382
  513. package/dist/testing/contrast.js.map +0 -1
  514. package/dist/testing/contrast.test.d.ts +0 -2
  515. package/dist/testing/contrast.test.d.ts.map +0 -1
  516. package/dist/testing/contrast.test.js +0 -230
  517. package/dist/testing/contrast.test.js.map +0 -1
  518. package/dist/testing/display-texts.d.ts +0 -23
  519. package/dist/testing/display-texts.d.ts.map +0 -1
  520. package/dist/testing/display-texts.js +0 -88
  521. package/dist/testing/display-texts.js.map +0 -1
  522. package/dist/testing/display-texts.test.d.ts +0 -2
  523. package/dist/testing/display-texts.test.d.ts.map +0 -1
  524. package/dist/testing/display-texts.test.js +0 -169
  525. package/dist/testing/display-texts.test.js.map +0 -1
  526. package/dist/testing/glossary.test.d.ts +0 -2
  527. package/dist/testing/glossary.test.d.ts.map +0 -1
  528. package/dist/testing/glossary.test.js +0 -78
  529. package/dist/testing/glossary.test.js.map +0 -1
  530. package/dist/testing/glyphs.d.ts +0 -27
  531. package/dist/testing/glyphs.d.ts.map +0 -1
  532. package/dist/testing/glyphs.js +0 -130
  533. package/dist/testing/glyphs.js.map +0 -1
  534. package/dist/testing/glyphs.test.d.ts +0 -2
  535. package/dist/testing/glyphs.test.d.ts.map +0 -1
  536. package/dist/testing/glyphs.test.js +0 -146
  537. package/dist/testing/glyphs.test.js.map +0 -1
  538. package/dist/testing/icon-sizes.d.ts +0 -22
  539. package/dist/testing/icon-sizes.d.ts.map +0 -1
  540. package/dist/testing/icon-sizes.js +0 -39
  541. package/dist/testing/icon-sizes.js.map +0 -1
  542. package/dist/testing/icon-sizes.test.d.ts +0 -2
  543. package/dist/testing/icon-sizes.test.d.ts.map +0 -1
  544. package/dist/testing/icon-sizes.test.js +0 -36
  545. package/dist/testing/icon-sizes.test.js.map +0 -1
  546. package/dist/testing/source-scan.d.ts +0 -16
  547. package/dist/testing/source-scan.d.ts.map +0 -1
  548. package/dist/testing/source-scan.js +0 -57
  549. package/dist/testing/source-scan.js.map +0 -1
  550. package/dist/testing/tone-pairs.d.ts +0 -20
  551. package/dist/testing/tone-pairs.d.ts.map +0 -1
  552. package/dist/testing/tone-pairs.js +0 -154
  553. package/dist/testing/tone-pairs.js.map +0 -1
  554. package/dist/testing/type-scale.d.ts +0 -40
  555. package/dist/testing/type-scale.d.ts.map +0 -1
  556. package/dist/testing/type-scale.js +0 -55
  557. package/dist/testing/type-scale.js.map +0 -1
  558. package/dist/testing/type-scale.test.d.ts +0 -2
  559. package/dist/testing/type-scale.test.d.ts.map +0 -1
  560. package/dist/testing/type-scale.test.js +0 -61
  561. package/dist/testing/type-scale.test.js.map +0 -1
  562. package/dist/tool-schema-trim.test.d.ts +0 -2
  563. package/dist/tool-schema-trim.test.d.ts.map +0 -1
  564. package/dist/tool-schema-trim.test.js +0 -53
  565. package/dist/tool-schema-trim.test.js.map +0 -1
  566. package/dist/toolsets.test.d.ts +0 -2
  567. package/dist/toolsets.test.d.ts.map +0 -1
  568. package/dist/toolsets.test.js +0 -86
  569. package/dist/toolsets.test.js.map +0 -1
  570. package/dist/ui/action-feedback.test.d.ts +0 -2
  571. package/dist/ui/action-feedback.test.d.ts.map +0 -1
  572. package/dist/ui/action-feedback.test.js +0 -77
  573. package/dist/ui/action-feedback.test.js.map +0 -1
  574. package/dist/ui/app-shell-providers.d.ts +0 -18
  575. package/dist/ui/app-shell-providers.d.ts.map +0 -1
  576. package/dist/ui/app-shell-providers.js +0 -19
  577. package/dist/ui/app-shell-providers.js.map +0 -1
  578. package/dist/ui/app-shell-providers.test.d.ts +0 -2
  579. package/dist/ui/app-shell-providers.test.d.ts.map +0 -1
  580. package/dist/ui/app-shell-providers.test.js +0 -249
  581. package/dist/ui/app-shell-providers.test.js.map +0 -1
  582. package/dist/ui/ask-ai-button.test.d.ts +0 -2
  583. package/dist/ui/ask-ai-button.test.d.ts.map +0 -1
  584. package/dist/ui/ask-ai-button.test.js +0 -103
  585. package/dist/ui/ask-ai-button.test.js.map +0 -1
  586. package/dist/ui/ask-ai-prompt.test.d.ts +0 -2
  587. package/dist/ui/ask-ai-prompt.test.d.ts.map +0 -1
  588. package/dist/ui/ask-ai-prompt.test.js +0 -240
  589. package/dist/ui/ask-ai-prompt.test.js.map +0 -1
  590. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts +0 -2
  591. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts.map +0 -1
  592. package/dist/ui/bpmn-heatmap/heat-ramp.test.js +0 -174
  593. package/dist/ui/bpmn-heatmap/heat-ramp.test.js.map +0 -1
  594. package/dist/ui/bpmn-heatmap/heat-utils.d.ts +0 -119
  595. package/dist/ui/bpmn-heatmap/heat-utils.d.ts.map +0 -1
  596. package/dist/ui/bpmn-heatmap/heat-utils.js +0 -231
  597. package/dist/ui/bpmn-heatmap/heat-utils.js.map +0 -1
  598. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts +0 -2
  599. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts.map +0 -1
  600. package/dist/ui/bpmn-heatmap/heat-utils.test.js +0 -59
  601. package/dist/ui/bpmn-heatmap/heat-utils.test.js.map +0 -1
  602. package/dist/ui/bpmn-heatmap-labels.d.ts +0 -46
  603. package/dist/ui/bpmn-heatmap-labels.d.ts.map +0 -1
  604. package/dist/ui/bpmn-heatmap-labels.js +0 -16
  605. package/dist/ui/bpmn-heatmap-labels.js.map +0 -1
  606. package/dist/ui/bpmn-heatmap-widget.d.ts +0 -38
  607. package/dist/ui/bpmn-heatmap-widget.d.ts.map +0 -1
  608. package/dist/ui/bpmn-heatmap-widget.js +0 -65
  609. package/dist/ui/bpmn-heatmap-widget.js.map +0 -1
  610. package/dist/ui/bpmn-heatmap-widget.test.d.ts +0 -2
  611. package/dist/ui/bpmn-heatmap-widget.test.d.ts.map +0 -1
  612. package/dist/ui/bpmn-heatmap-widget.test.js +0 -173
  613. package/dist/ui/bpmn-heatmap-widget.test.js.map +0 -1
  614. package/dist/ui/bpmn-heatmap.d.ts +0 -61
  615. package/dist/ui/bpmn-heatmap.d.ts.map +0 -1
  616. package/dist/ui/bpmn-heatmap.js +0 -119
  617. package/dist/ui/bpmn-heatmap.js.map +0 -1
  618. package/dist/ui/bpmn-tokens.test.d.ts +0 -2
  619. package/dist/ui/bpmn-tokens.test.d.ts.map +0 -1
  620. package/dist/ui/bpmn-tokens.test.js +0 -98
  621. package/dist/ui/bpmn-tokens.test.js.map +0 -1
  622. package/dist/ui/brand-gates.test.d.ts +0 -2
  623. package/dist/ui/brand-gates.test.d.ts.map +0 -1
  624. package/dist/ui/brand-gates.test.js +0 -131
  625. package/dist/ui/brand-gates.test.js.map +0 -1
  626. package/dist/ui/brand-mark.d.ts +0 -37
  627. package/dist/ui/brand-mark.d.ts.map +0 -1
  628. package/dist/ui/brand-mark.js +0 -33
  629. package/dist/ui/brand-mark.js.map +0 -1
  630. package/dist/ui/brand-mark.test.d.ts +0 -2
  631. package/dist/ui/brand-mark.test.d.ts.map +0 -1
  632. package/dist/ui/brand-mark.test.js +0 -111
  633. package/dist/ui/brand-mark.test.js.map +0 -1
  634. package/dist/ui/confirm-dialog.test.d.ts +0 -2
  635. package/dist/ui/confirm-dialog.test.d.ts.map +0 -1
  636. package/dist/ui/confirm-dialog.test.js +0 -115
  637. package/dist/ui/confirm-dialog.test.js.map +0 -1
  638. package/dist/ui/count-tone.test.d.ts +0 -2
  639. package/dist/ui/count-tone.test.d.ts.map +0 -1
  640. package/dist/ui/count-tone.test.js +0 -27
  641. package/dist/ui/count-tone.test.js.map +0 -1
  642. package/dist/ui/create-use-t.d.ts +0 -15
  643. package/dist/ui/create-use-t.d.ts.map +0 -1
  644. package/dist/ui/create-use-t.js +0 -17
  645. package/dist/ui/create-use-t.js.map +0 -1
  646. package/dist/ui/declare-served-fonts.test.d.ts +0 -2
  647. package/dist/ui/declare-served-fonts.test.d.ts.map +0 -1
  648. package/dist/ui/declare-served-fonts.test.js +0 -44
  649. package/dist/ui/declare-served-fonts.test.js.map +0 -1
  650. package/dist/ui/describe-error.test.d.ts +0 -2
  651. package/dist/ui/describe-error.test.d.ts.map +0 -1
  652. package/dist/ui/describe-error.test.js +0 -274
  653. package/dist/ui/describe-error.test.js.map +0 -1
  654. package/dist/ui/format.d.ts +0 -81
  655. package/dist/ui/format.d.ts.map +0 -1
  656. package/dist/ui/format.js +0 -189
  657. package/dist/ui/format.js.map +0 -1
  658. package/dist/ui/format.test.d.ts +0 -2
  659. package/dist/ui/format.test.d.ts.map +0 -1
  660. package/dist/ui/format.test.js +0 -181
  661. package/dist/ui/format.test.js.map +0 -1
  662. package/dist/ui/generic-widgets.d.ts +0 -15
  663. package/dist/ui/generic-widgets.d.ts.map +0 -1
  664. package/dist/ui/generic-widgets.js +0 -122
  665. package/dist/ui/generic-widgets.js.map +0 -1
  666. package/dist/ui/generic-widgets.test.d.ts +0 -2
  667. package/dist/ui/generic-widgets.test.d.ts.map +0 -1
  668. package/dist/ui/generic-widgets.test.js +0 -139
  669. package/dist/ui/generic-widgets.test.js.map +0 -1
  670. package/dist/ui/hand-off-button.test.d.ts +0 -2
  671. package/dist/ui/hand-off-button.test.d.ts.map +0 -1
  672. package/dist/ui/hand-off-button.test.js +0 -78
  673. package/dist/ui/hand-off-button.test.js.map +0 -1
  674. package/dist/ui/host-context.test.d.ts +0 -2
  675. package/dist/ui/host-context.test.d.ts.map +0 -1
  676. package/dist/ui/host-context.test.js +0 -160
  677. package/dist/ui/host-context.test.js.map +0 -1
  678. package/dist/ui/host-document.test.d.ts +0 -2
  679. package/dist/ui/host-document.test.d.ts.map +0 -1
  680. package/dist/ui/host-document.test.js +0 -112
  681. package/dist/ui/host-document.test.js.map +0 -1
  682. package/dist/ui/humanize-key.d.ts +0 -11
  683. package/dist/ui/humanize-key.d.ts.map +0 -1
  684. package/dist/ui/humanize-key.js +0 -26
  685. package/dist/ui/humanize-key.js.map +0 -1
  686. package/dist/ui/humanize-key.test.d.ts +0 -2
  687. package/dist/ui/humanize-key.test.d.ts.map +0 -1
  688. package/dist/ui/humanize-key.test.js +0 -42
  689. package/dist/ui/humanize-key.test.js.map +0 -1
  690. package/dist/ui/icon.d.ts +0 -37
  691. package/dist/ui/icon.d.ts.map +0 -1
  692. package/dist/ui/icon.js +0 -32
  693. package/dist/ui/icon.js.map +0 -1
  694. package/dist/ui/id-breaks.d.ts +0 -17
  695. package/dist/ui/id-breaks.d.ts.map +0 -1
  696. package/dist/ui/id-breaks.js +0 -36
  697. package/dist/ui/id-breaks.js.map +0 -1
  698. package/dist/ui/id-breaks.test.d.ts +0 -2
  699. package/dist/ui/id-breaks.test.d.ts.map +0 -1
  700. package/dist/ui/id-breaks.test.js +0 -37
  701. package/dist/ui/id-breaks.test.js.map +0 -1
  702. package/dist/ui/id-text.test.d.ts +0 -2
  703. package/dist/ui/id-text.test.d.ts.map +0 -1
  704. package/dist/ui/id-text.test.js +0 -122
  705. package/dist/ui/id-text.test.js.map +0 -1
  706. package/dist/ui/index.test.d.ts +0 -2
  707. package/dist/ui/index.test.d.ts.map +0 -1
  708. package/dist/ui/index.test.js +0 -34
  709. package/dist/ui/index.test.js.map +0 -1
  710. package/dist/ui/inline-fit-solve.test.d.ts +0 -2
  711. package/dist/ui/inline-fit-solve.test.d.ts.map +0 -1
  712. package/dist/ui/inline-fit-solve.test.js +0 -108
  713. package/dist/ui/inline-fit-solve.test.js.map +0 -1
  714. package/dist/ui/inline-fit-time.test.d.ts +0 -2
  715. package/dist/ui/inline-fit-time.test.d.ts.map +0 -1
  716. package/dist/ui/inline-fit-time.test.js +0 -110
  717. package/dist/ui/inline-fit-time.test.js.map +0 -1
  718. package/dist/ui/inline-fit.test-support.d.ts +0 -26
  719. package/dist/ui/inline-fit.test-support.d.ts.map +0 -1
  720. package/dist/ui/inline-fit.test-support.js +0 -34
  721. package/dist/ui/inline-fit.test-support.js.map +0 -1
  722. package/dist/ui/inline-fit.test.d.ts +0 -2
  723. package/dist/ui/inline-fit.test.d.ts.map +0 -1
  724. package/dist/ui/inline-fit.test.js +0 -159
  725. package/dist/ui/inline-fit.test.js.map +0 -1
  726. package/dist/ui/kit-labels.test.d.ts +0 -2
  727. package/dist/ui/kit-labels.test.d.ts.map +0 -1
  728. package/dist/ui/kit-labels.test.js +0 -98
  729. package/dist/ui/kit-labels.test.js.map +0 -1
  730. package/dist/ui/kit-type-roles.test.d.ts +0 -2
  731. package/dist/ui/kit-type-roles.test.d.ts.map +0 -1
  732. package/dist/ui/kit-type-roles.test.js +0 -122
  733. package/dist/ui/kit-type-roles.test.js.map +0 -1
  734. package/dist/ui/komet-svg.d.ts +0 -15
  735. package/dist/ui/komet-svg.d.ts.map +0 -1
  736. package/dist/ui/komet-svg.js +0 -21
  737. package/dist/ui/komet-svg.js.map +0 -1
  738. package/dist/ui/list-table.test.d.ts +0 -2
  739. package/dist/ui/list-table.test.d.ts.map +0 -1
  740. package/dist/ui/list-table.test.js +0 -169
  741. package/dist/ui/list-table.test.js.map +0 -1
  742. package/dist/ui/localized-app-view.d.ts +0 -40
  743. package/dist/ui/localized-app-view.d.ts.map +0 -1
  744. package/dist/ui/localized-app-view.js +0 -71
  745. package/dist/ui/localized-app-view.js.map +0 -1
  746. package/dist/ui/log-text.d.ts +0 -24
  747. package/dist/ui/log-text.d.ts.map +0 -1
  748. package/dist/ui/log-text.js +0 -31
  749. package/dist/ui/log-text.js.map +0 -1
  750. package/dist/ui/menu-item.d.ts +0 -12
  751. package/dist/ui/menu-item.d.ts.map +0 -1
  752. package/dist/ui/menu-item.js +0 -13
  753. package/dist/ui/menu-item.js.map +0 -1
  754. package/dist/ui/named-id.d.ts +0 -23
  755. package/dist/ui/named-id.d.ts.map +0 -1
  756. package/dist/ui/named-id.js +0 -21
  757. package/dist/ui/named-id.js.map +0 -1
  758. package/dist/ui/named-id.test.d.ts +0 -2
  759. package/dist/ui/named-id.test.d.ts.map +0 -1
  760. package/dist/ui/named-id.test.js +0 -57
  761. package/dist/ui/named-id.test.js.map +0 -1
  762. package/dist/ui/native-select.d.ts +0 -17
  763. package/dist/ui/native-select.d.ts.map +0 -1
  764. package/dist/ui/native-select.js +0 -20
  765. package/dist/ui/native-select.js.map +0 -1
  766. package/dist/ui/navigation-focus.d.ts +0 -20
  767. package/dist/ui/navigation-focus.d.ts.map +0 -1
  768. package/dist/ui/navigation-focus.js +0 -25
  769. package/dist/ui/navigation-focus.js.map +0 -1
  770. package/dist/ui/navigation-focus.test.d.ts +0 -2
  771. package/dist/ui/navigation-focus.test.d.ts.map +0 -1
  772. package/dist/ui/navigation-focus.test.js +0 -28
  773. package/dist/ui/navigation-focus.test.js.map +0 -1
  774. package/dist/ui/paged-list-footer.test.d.ts +0 -2
  775. package/dist/ui/paged-list-footer.test.d.ts.map +0 -1
  776. package/dist/ui/paged-list-footer.test.js +0 -128
  777. package/dist/ui/paged-list-footer.test.js.map +0 -1
  778. package/dist/ui/parse-tool-result.test.d.ts +0 -2
  779. package/dist/ui/parse-tool-result.test.d.ts.map +0 -1
  780. package/dist/ui/parse-tool-result.test.js +0 -88
  781. package/dist/ui/parse-tool-result.test.js.map +0 -1
  782. package/dist/ui/profile-gate.d.ts +0 -37
  783. package/dist/ui/profile-gate.d.ts.map +0 -1
  784. package/dist/ui/profile-gate.js +0 -126
  785. package/dist/ui/profile-gate.js.map +0 -1
  786. package/dist/ui/profile-gate.test.d.ts +0 -2
  787. package/dist/ui/profile-gate.test.d.ts.map +0 -1
  788. package/dist/ui/profile-gate.test.js +0 -246
  789. package/dist/ui/profile-gate.test.js.map +0 -1
  790. package/dist/ui/query-fallback.test.d.ts +0 -2
  791. package/dist/ui/query-fallback.test.d.ts.map +0 -1
  792. package/dist/ui/query-fallback.test.js +0 -49
  793. package/dist/ui/query-fallback.test.js.map +0 -1
  794. package/dist/ui/row-card.d.ts +0 -13
  795. package/dist/ui/row-card.d.ts.map +0 -1
  796. package/dist/ui/row-card.js +0 -11
  797. package/dist/ui/row-card.js.map +0 -1
  798. package/dist/ui/section.d.ts +0 -18
  799. package/dist/ui/section.d.ts.map +0 -1
  800. package/dist/ui/section.js +0 -14
  801. package/dist/ui/section.js.map +0 -1
  802. package/dist/ui/segmented-control.d.ts +0 -25
  803. package/dist/ui/segmented-control.d.ts.map +0 -1
  804. package/dist/ui/segmented-control.js +0 -22
  805. package/dist/ui/segmented-control.js.map +0 -1
  806. package/dist/ui/settings-labels.d.ts +0 -33
  807. package/dist/ui/settings-labels.d.ts.map +0 -1
  808. package/dist/ui/settings-labels.js +0 -50
  809. package/dist/ui/settings-labels.js.map +0 -1
  810. package/dist/ui/settings-layout.d.ts +0 -29
  811. package/dist/ui/settings-layout.d.ts.map +0 -1
  812. package/dist/ui/settings-layout.js +0 -49
  813. package/dist/ui/settings-layout.js.map +0 -1
  814. package/dist/ui/settings-layout.test.d.ts +0 -2
  815. package/dist/ui/settings-layout.test.d.ts.map +0 -1
  816. package/dist/ui/settings-layout.test.js +0 -73
  817. package/dist/ui/settings-layout.test.js.map +0 -1
  818. package/dist/ui/settings.d.ts +0 -47
  819. package/dist/ui/settings.d.ts.map +0 -1
  820. package/dist/ui/settings.js +0 -48
  821. package/dist/ui/settings.js.map +0 -1
  822. package/dist/ui/settings.test.d.ts +0 -2
  823. package/dist/ui/settings.test.d.ts.map +0 -1
  824. package/dist/ui/settings.test.js +0 -38
  825. package/dist/ui/settings.test.js.map +0 -1
  826. package/dist/ui/shell-settings.d.ts +0 -31
  827. package/dist/ui/shell-settings.d.ts.map +0 -1
  828. package/dist/ui/shell-settings.js +0 -97
  829. package/dist/ui/shell-settings.js.map +0 -1
  830. package/dist/ui/shell-settings.test.d.ts +0 -2
  831. package/dist/ui/shell-settings.test.d.ts.map +0 -1
  832. package/dist/ui/shell-settings.test.js +0 -108
  833. package/dist/ui/shell-settings.test.js.map +0 -1
  834. package/dist/ui/shell-widgets.d.ts +0 -14
  835. package/dist/ui/shell-widgets.d.ts.map +0 -1
  836. package/dist/ui/shell-widgets.js +0 -18
  837. package/dist/ui/shell-widgets.js.map +0 -1
  838. package/dist/ui/table.d.ts +0 -61
  839. package/dist/ui/table.d.ts.map +0 -1
  840. package/dist/ui/table.js +0 -43
  841. package/dist/ui/table.js.map +0 -1
  842. package/dist/ui/tone-components.test.d.ts +0 -2
  843. package/dist/ui/tone-components.test.d.ts.map +0 -1
  844. package/dist/ui/tone-components.test.js +0 -145
  845. package/dist/ui/tone-components.test.js.map +0 -1
  846. package/dist/ui/tone-contrast.test.d.ts +0 -2
  847. package/dist/ui/tone-contrast.test.d.ts.map +0 -1
  848. package/dist/ui/tone-contrast.test.js +0 -66
  849. package/dist/ui/tone-contrast.test.js.map +0 -1
  850. package/dist/ui/toolkit-overlap.test.d.ts +0 -2
  851. package/dist/ui/toolkit-overlap.test.d.ts.map +0 -1
  852. package/dist/ui/toolkit-overlap.test.js +0 -86
  853. package/dist/ui/toolkit-overlap.test.js.map +0 -1
  854. package/dist/ui/use-apply-theme.test.d.ts +0 -2
  855. package/dist/ui/use-apply-theme.test.d.ts.map +0 -1
  856. package/dist/ui/use-apply-theme.test.js +0 -102
  857. package/dist/ui/use-apply-theme.test.js.map +0 -1
  858. package/dist/ui/use-bpmn-viewer.test.d.ts +0 -2
  859. package/dist/ui/use-bpmn-viewer.test.d.ts.map +0 -1
  860. package/dist/ui/use-bpmn-viewer.test.js +0 -239
  861. package/dist/ui/use-bpmn-viewer.test.js.map +0 -1
  862. package/dist/ui/use-detail-view.test.d.ts +0 -2
  863. package/dist/ui/use-detail-view.test.d.ts.map +0 -1
  864. package/dist/ui/use-detail-view.test.js +0 -178
  865. package/dist/ui/use-detail-view.test.js.map +0 -1
  866. package/dist/ui/use-paged-list-view.test.d.ts +0 -2
  867. package/dist/ui/use-paged-list-view.test.d.ts.map +0 -1
  868. package/dist/ui/use-paged-list-view.test.js +0 -136
  869. package/dist/ui/use-paged-list-view.test.js.map +0 -1
  870. package/dist/ui/use-paged-view-data.seeded.test.d.ts +0 -2
  871. package/dist/ui/use-paged-view-data.seeded.test.d.ts.map +0 -1
  872. package/dist/ui/use-paged-view-data.seeded.test.js +0 -144
  873. package/dist/ui/use-paged-view-data.seeded.test.js.map +0 -1
  874. package/dist/ui/use-paged-view-data.test.d.ts +0 -2
  875. package/dist/ui/use-paged-view-data.test.d.ts.map +0 -1
  876. package/dist/ui/use-paged-view-data.test.js +0 -330
  877. package/dist/ui/use-paged-view-data.test.js.map +0 -1
  878. package/dist/ui/use-reset-on-change.d.ts +0 -22
  879. package/dist/ui/use-reset-on-change.d.ts.map +0 -1
  880. package/dist/ui/use-reset-on-change.js +0 -29
  881. package/dist/ui/use-reset-on-change.js.map +0 -1
  882. package/dist/ui/use-reset-on-change.test.d.ts +0 -2
  883. package/dist/ui/use-reset-on-change.test.d.ts.map +0 -1
  884. package/dist/ui/use-reset-on-change.test.js +0 -61
  885. package/dist/ui/use-reset-on-change.test.js.map +0 -1
  886. package/dist/ui/use-view-data.seeded.test.d.ts +0 -2
  887. package/dist/ui/use-view-data.seeded.test.d.ts.map +0 -1
  888. package/dist/ui/use-view-data.seeded.test.js +0 -168
  889. package/dist/ui/use-view-data.seeded.test.js.map +0 -1
  890. package/dist/ui/view-data-state.test.d.ts +0 -2
  891. package/dist/ui/view-data-state.test.d.ts.map +0 -1
  892. package/dist/ui/view-data-state.test.js +0 -62
  893. package/dist/ui/view-data-state.test.js.map +0 -1
  894. package/dist/ui/view-meta.test.d.ts +0 -2
  895. package/dist/ui/view-meta.test.d.ts.map +0 -1
  896. package/dist/ui/view-meta.test.js +0 -92
  897. package/dist/ui/view-meta.test.js.map +0 -1
  898. package/dist/ui/widget-shell.test.d.ts +0 -2
  899. package/dist/ui/widget-shell.test.d.ts.map +0 -1
  900. package/dist/ui/widget-shell.test.js +0 -41
  901. package/dist/ui/widget-shell.test.js.map +0 -1
  902. package/dist/widget-meta-defaults.d.ts +0 -48
  903. package/dist/widget-meta-defaults.d.ts.map +0 -1
  904. package/dist/widget-meta-defaults.js +0 -80
  905. package/dist/widget-meta-defaults.js.map +0 -1
  906. package/dist/widget-meta-defaults.test.d.ts +0 -2
  907. package/dist/widget-meta-defaults.test.d.ts.map +0 -1
  908. package/dist/widget-meta-defaults.test.js +0 -196
  909. package/dist/widget-meta-defaults.test.js.map +0 -1
  910. package/dist/widget-tool-bindings.test.d.ts +0 -2
  911. package/dist/widget-tool-bindings.test.d.ts.map +0 -1
  912. package/dist/widget-tool-bindings.test.js +0 -83
  913. package/dist/widget-tool-bindings.test.js.map +0 -1
  914. package/dist/with-tool-errors.test.d.ts +0 -2
  915. package/dist/with-tool-errors.test.d.ts.map +0 -1
  916. package/dist/with-tool-errors.test.js +0 -38
  917. package/dist/with-tool-errors.test.js.map +0 -1
@@ -1,182 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import fs from "node:fs/promises";
3
- import path from "node:path";
4
- import { PROFILE_SCHEMA_VERSION } from "./profile-constants.js";
5
- import { migrateStoredProfile, parseStoredProfile } from "./profile-migrations.js";
6
- import { defaultProfileRecord, projectProfileRecord, } from "./profile-record.js";
7
- function nowIso() {
8
- return new Date().toISOString();
9
- }
10
- function stripUndefined(obj) {
11
- return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
12
- }
13
- const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
14
- /**
15
- * One-level module-slice merge: each module key in the patch spreads over the
16
- * stored slice of the SAME module (non-object slices replace), other modules'
17
- * slices stay untouched. A field explicitly set to `undefined` overrides the
18
- * stored value and drops out on serialization — that is how a module's save
19
- * tool clears a field.
20
- */
21
- function mergeModuleSlices(prev, patch) {
22
- const next = { ...prev };
23
- for (const [module, slice] of Object.entries(patch ?? {})) {
24
- const stored = next[module];
25
- next[module] = isPlainObject(stored) && isPlainObject(slice) ? { ...stored, ...slice } : slice;
26
- }
27
- return next;
28
- }
29
- /**
30
- * Merge a partial save over the RAW stored document (or a fresh default),
31
- * preserving `id`/`userId`/`createdAt` and re-stamping `updatedAt`. Omitted
32
- * input fields keep their previous value so single-field updates don't wipe
33
- * the rest — and because the base is the stored JSON, not its parsed view,
34
- * nothing this build cannot read is dropped either: a locale a newer build
35
- * added, a top-level key it introduced, a whole newer-version document during
36
- * a rolling deploy (whose `schemaVersion` is never stamped down). Shared by
37
- * every store implementation (in-memory, filesystem, and the postgres sibling
38
- * in `profile-store-postgres.ts`), each calling it INSIDE its per-key
39
- * serialization, so the merge semantics stay single-sourced. Record-agnostic
40
- * on purpose — module-specific normalization (e.g. camunda7's "empty string
41
- * clears the field") happens at the owning module's save-tool boundary.
42
- */
43
- export function mergeStoredProfile(key, stored, input, now, opts) {
44
- const migrated = migrateStoredProfile(stored);
45
- const prev = migrated?.doc ?? { ...defaultProfileRecord(key) };
46
- const prevRecord = projectProfileRecord(prev, key);
47
- const document = {
48
- ...prev,
49
- ...stripUndefined(input),
50
- // Module slices merge per module key, one level deep: a save carrying
51
- // `modules.analytics` spreads over the STORED analytics slice (a field
52
- // explicitly set to `undefined` clears on serialization) and leaves other
53
- // modules' slices intact. Merging here — inside the store's per-key
54
- // serialization — rather than replacing means two concurrent saves of
55
- // DISJOINT fields in the same slice both survive, as long as each save
56
- // carries its patch alone (`saveModuleSlice`): a slice pre-read outside
57
- // this lock would carry stale values that win here.
58
- modules: mergeModuleSlices(prevRecord.modules, input.modules),
59
- id: key,
60
- // A stamped owner sticks: a later save without auth context keeps it.
61
- userId: opts?.userId ?? prevRecord.userId,
62
- createdAt: prevRecord.createdAt || now,
63
- updatedAt: now,
64
- schemaVersion: migrated?.version ?? PROFILE_SCHEMA_VERSION,
65
- };
66
- return { document, record: projectProfileRecord(document, key) };
67
- }
68
- /**
69
- * Process-local store. The default when `MCP_PROFILE_DIR` is unset — fine for
70
- * dev and single-instance deployments; everything is lost on restart, and
71
- * behind a load balancer each replica sees its own records. Each save runs
72
- * synchronously inside one microtask, so saves of the same key never
73
- * interleave.
74
- */
75
- export function createInMemoryProfileStore() {
76
- const byKey = new Map();
77
- const read = (key) => parseStoredProfile(byKey.get(key), key);
78
- return {
79
- get(key) {
80
- return Promise.resolve(read(key));
81
- },
82
- save(key, input, opts) {
83
- return Promise.resolve().then(() => {
84
- const merged = mergeStoredProfile(key, byKey.get(key), input, nowIso(), opts);
85
- byKey.set(key, merged.document);
86
- return merged.record;
87
- });
88
- },
89
- delete(key) {
90
- return Promise.resolve(byKey.delete(key));
91
- },
92
- };
93
- }
94
- /**
95
- * The tail of each file's pending operations, keyed by absolute path —
96
- * module-wide, so two store instances on the same directory (in one process)
97
- * serialize too. An entry is dropped once its chain drains.
98
- */
99
- const fileLocks = new Map();
100
- /**
101
- * Run `fn` once every earlier operation on `file` has settled — a promise
102
- * chain per file, so a read-merge-write can never interleave with another one
103
- * for the same key. A failed operation releases the lock like a successful one.
104
- */
105
- function withFileLock(file, fn) {
106
- const lockKey = path.resolve(file);
107
- const run = (fileLocks.get(lockKey) ?? Promise.resolve()).then(fn);
108
- const tail = run.then(() => undefined, () => undefined);
109
- fileLocks.set(lockKey, tail);
110
- void tail.then(() => {
111
- if (fileLocks.get(lockKey) === tail)
112
- fileLocks.delete(lockKey);
113
- });
114
- return run;
115
- }
116
- const isMissing = (err) => err.code === "ENOENT";
117
- /**
118
- * Profiles stored as one JSON file per key under `dir` (`<encodeURIComponent
119
- * (key)>.json`). Selected when `MCP_PROFILE_DIR` is set so preferences survive
120
- * restarts. Every operation on a key runs under a per-key lock, so concurrent
121
- * saves of the same key (two settings sections, two modules' save tools in one
122
- * model turn) merge one after the other instead of last-write-wins; writes are
123
- * atomic (temp file + rename in the same directory), so a crash mid-write
124
- * can't truncate a record. The lock is process-local: the store is
125
- * SINGLE-WRITER — point one server process at a directory (the postgres store
126
- * is the multi-instance answer).
127
- */
128
- export function createFileSystemProfileStore(options) {
129
- const { dir } = options;
130
- const fileFor = (key) => path.join(dir, `${encodeURIComponent(key)}.json`);
131
- /** The stored JSON, `undefined` when there is no file or it is not JSON. */
132
- const readJson = async (key) => {
133
- let raw;
134
- try {
135
- raw = await fs.readFile(fileFor(key), "utf-8");
136
- }
137
- catch (err) {
138
- if (isMissing(err))
139
- return undefined;
140
- throw err;
141
- }
142
- // A file that is not JSON at all (hand-edited, foreign) cannot be merged
143
- // over — it reads as "no record" and the next save replaces it. Valid JSON
144
- // is never discarded: unknown keys and values survive every save.
145
- try {
146
- return JSON.parse(raw);
147
- }
148
- catch {
149
- return undefined;
150
- }
151
- };
152
- return {
153
- get: async (key) => parseStoredProfile(await readJson(key), key),
154
- save(key, input, opts) {
155
- const file = fileFor(key);
156
- return withFileLock(file, async () => {
157
- const merged = mergeStoredProfile(key, await readJson(key), input, nowIso(), opts);
158
- await fs.mkdir(dir, { recursive: true });
159
- // Unique tmp name per write, renamed over the record in one step.
160
- const tmp = `${file}.${randomUUID()}.tmp`;
161
- await fs.writeFile(tmp, JSON.stringify(merged.document, null, 2), "utf-8");
162
- await fs.rename(tmp, file);
163
- return merged.record;
164
- });
165
- },
166
- delete(key) {
167
- const file = fileFor(key);
168
- return withFileLock(file, async () => {
169
- try {
170
- await fs.unlink(file);
171
- return true;
172
- }
173
- catch (err) {
174
- if (isMissing(err))
175
- return false;
176
- throw err;
177
- }
178
- });
179
- },
180
- };
181
- }
182
- //# sourceMappingURL=profile-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profile-store.js","sourceRoot":"","sources":["../src/profile-store.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=profile-store.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profile-store.test.d.ts","sourceRoot":"","sources":["../src/profile-store.test.ts"],"names":[],"mappings":""}
@@ -1,353 +0,0 @@
1
- import { mkdtemp, readFile, writeFile } from "node:fs/promises";
2
- import { tmpdir } from "node:os";
3
- import path from "node:path";
4
- import postgres from "postgres";
5
- import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest";
6
- import { createFileSystemProfileStore, createInMemoryProfileStore, } from "./profile-store.js";
7
- import { createPostgresProfileStore, PROFILE_STORE_MIGRATIONS } from "./profile-store-postgres.js";
8
- import { defaultProfileRecord } from "./profile-record.js";
9
- import { saveModuleSlice } from "./profile-slice.js";
10
- describe("defaultProfileRecord", () => {
11
- it("returns a complete, defaulted record for an unsaved key", () => {
12
- const p = defaultProfileRecord("sess-1");
13
- expect(p).toMatchObject({
14
- id: "sess-1",
15
- language: "system",
16
- modules: {},
17
- schemaVersion: 3,
18
- });
19
- expect(p.userId).toBeUndefined();
20
- expect(p.createdAt).toBe(p.updatedAt);
21
- });
22
- });
23
- /**
24
- * Behavioral contract every ProfileStore implementation must satisfy — run
25
- * against each store so the implementations cannot drift apart. `makeStore`
26
- * must return a store whose keys start out absent.
27
- */
28
- function profileStoreContract(makeStore) {
29
- it("returns undefined for an unknown key", async () => {
30
- const store = await makeStore();
31
- expect(await store.get("missing")).toBeUndefined();
32
- });
33
- it("creates, then merges partial updates without wiping other fields", async () => {
34
- const store = await makeStore();
35
- const created = await store.save("sess-1", { language: "de" });
36
- expect(created.language).toBe("de");
37
- // Untouched fields keep their defaults.
38
- expect(created.modules).toEqual({});
39
- // A single-field update must not reset language.
40
- const updated = await store.save("sess-1", { modules: { analytics: { defaultPeriod: "7d" } } });
41
- expect(updated.modules).toEqual({ analytics: { defaultPeriod: "7d" } });
42
- expect(updated.language).toBe("de");
43
- // createdAt is preserved across saves; updatedAt advances (or is unchanged).
44
- expect(updated.createdAt).toBe(created.createdAt);
45
- expect(updated.updatedAt >= created.updatedAt).toBe(true);
46
- });
47
- it("merges module slices per namespace without wiping other modules", async () => {
48
- const store = await makeStore();
49
- await store.save("sess-1", { modules: { analytics: { defaultPeriod: "30d" } } });
50
- const updated = await store.save("sess-1", { modules: { other: { flag: true } } });
51
- expect(updated.modules).toEqual({
52
- analytics: { defaultPeriod: "30d" },
53
- other: { flag: true },
54
- });
55
- // A save without `modules` leaves all slices untouched.
56
- const untouched = await store.save("sess-1", { language: "de" });
57
- expect(untouched.modules).toEqual(updated.modules);
58
- });
59
- it("merges the saved module slice one level deep, leaving siblings intact", async () => {
60
- const store = await makeStore();
61
- await store.save("sess-1", {
62
- modules: { camunda7: { defaultEngineId: "prod-a" }, analytics: { defaultPeriod: "30d" } },
63
- });
64
- const updated = await store.save("sess-1", { modules: { camunda7: { pinned: ["d1"] } } });
65
- // Per-key one-level MERGE (inside the store's lock, so concurrent saves
66
- // of disjoint fields in the SAME slice both survive); a field clears via
67
- // explicit `undefined`, tested below.
68
- expect(updated.modules).toEqual({
69
- camunda7: { defaultEngineId: "prod-a", pinned: ["d1"] },
70
- analytics: { defaultPeriod: "30d" },
71
- });
72
- });
73
- it("clears a slice field via explicit undefined and keeps merging afterwards", async () => {
74
- const store = await makeStore();
75
- await store.save("sess-1", {
76
- modules: { camunda7: { defaultEngineId: "prod-a", pinned: ["d1"] } },
77
- });
78
- const cleared = await store.save("sess-1", {
79
- modules: { camunda7: { defaultEngineId: undefined } },
80
- });
81
- expect(cleared.modules?.camunda7).toEqual({ pinned: ["d1"] });
82
- const merged = await store.save("sess-1", { modules: { camunda7: { fresh: true } } });
83
- expect(merged.modules?.camunda7).toEqual({ pinned: ["d1"], fresh: true });
84
- });
85
- it("deletes a stored profile", async () => {
86
- const store = await makeStore();
87
- await store.save("sess-1", { language: "de" });
88
- expect(await store.delete("sess-1")).toBe(true);
89
- expect(await store.get("sess-1")).toBeUndefined();
90
- expect(await store.delete("sess-1")).toBe(false);
91
- });
92
- it("keeps both of two concurrent saves of disjoint top-level fields", async () => {
93
- const store = await makeStore();
94
- // The settings page has two independent save buttons — overlapping saves
95
- // must both land: every store merges INSIDE its per-key serialization.
96
- await Promise.all([
97
- store.save("sess-1", { modules: { analytics: { defaultPeriod: "30d" } } }),
98
- store.save("sess-1", { language: "de" }),
99
- ]);
100
- const profile = await store.get("sess-1");
101
- expect(profile?.modules).toEqual({ analytics: { defaultPeriod: "30d" } });
102
- expect(profile?.language).toBe("de");
103
- });
104
- it("keeps concurrent saves from DIFFERENT modules — no module's update is lost", async () => {
105
- const store = await makeStore();
106
- // Exactly the tool paths: each module's save tool hands the store its
107
- // patch (`saveModuleSlice`); the model may fire camunda7_select_engine
108
- // and analytics_save_settings in one turn. Repeated, because an
109
- // unserialized read-merge-write loses one of them only when the two
110
- // calls interleave.
111
- for (let round = 0; round < 10; round += 1) {
112
- const key = `user-${round}`;
113
- await store.save(key, { modules: { camunda7: { pinnedDashboardIds: ["d1"] } } });
114
- await Promise.all([
115
- saveModuleSlice(store, key, "camunda7", { defaultEngineId: "prod-a" }),
116
- saveModuleSlice(store, key, "analytics", { defaultPeriod: "30d" }),
117
- store.save(key, { language: "de" }),
118
- ]);
119
- const profile = await store.get(key);
120
- expect(profile?.modules).toEqual({
121
- camunda7: { pinnedDashboardIds: ["d1"], defaultEngineId: "prod-a" },
122
- analytics: { defaultPeriod: "30d" },
123
- });
124
- expect(profile?.language).toBe("de");
125
- }
126
- });
127
- it("keeps concurrent saves of different fields in the SAME slice: a stale value never wins", async () => {
128
- const store = await makeStore();
129
- // The model fires camunda7_select_engine and camunda7_save_settings
130
- // in one turn, and the field the select changes ALREADY holds a value.
131
- // A save tool that hands the store a pre-read slice (read outside the
132
- // lock) writes that stale value back. The patch alone, merged inside the
133
- // store's per-key serialization, keeps both.
134
- for (let round = 0; round < 10; round += 1) {
135
- const key = `user-${round}`;
136
- await store.save(key, { modules: { camunda7: { defaultEngineId: "prod-a", extra: 1 } } });
137
- await Promise.all([
138
- saveModuleSlice(store, key, "camunda7", { defaultEngineId: "prod-b" }),
139
- saveModuleSlice(store, key, "camunda7", { pinnedDashboardIds: ["d1"] }),
140
- ]);
141
- expect((await store.get(key))?.modules?.camunda7).toEqual({
142
- defaultEngineId: "prod-b",
143
- pinnedDashboardIds: ["d1"],
144
- extra: 1,
145
- });
146
- }
147
- });
148
- it("saveModuleSlice clears a field patched to undefined and reports the saved slice", async () => {
149
- const store = await makeStore();
150
- await saveModuleSlice(store, "sess-1", "camunda7", { defaultEngineId: "prod-a", keep: true });
151
- const slice = await saveModuleSlice(store, "sess-1", "camunda7", { defaultEngineId: undefined });
152
- expect(slice).toEqual({ keep: true });
153
- expect((await store.get("sess-1"))?.modules?.camunda7).toEqual({ keep: true });
154
- });
155
- it("stamps the owner and keeps it on later saves without auth context", async () => {
156
- const store = await makeStore();
157
- const created = await store.save("user-1", { language: "de" }, { userId: "user-1" });
158
- expect(created.userId).toBe("user-1");
159
- const updated = await store.save("user-1", { language: "en" });
160
- expect(updated.userId).toBe("user-1");
161
- });
162
- }
163
- describe("createInMemoryProfileStore", () => {
164
- profileStoreContract(() => Promise.resolve(createInMemoryProfileStore()));
165
- });
166
- describe("createFileSystemProfileStore", () => {
167
- profileStoreContract(async () => createFileSystemProfileStore({ dir: await mkdtemp(path.join(tmpdir(), "profile-store-")) }));
168
- it("serializes saves per key across two store instances on the same directory", async () => {
169
- const dir = await mkdtemp(path.join(tmpdir(), "profile-store-"));
170
- const a = createFileSystemProfileStore({ dir });
171
- const b = createFileSystemProfileStore({ dir });
172
- await Promise.all([
173
- a.save("sess-1", { modules: { camunda7: { defaultEngineId: "prod-a" } } }),
174
- b.save("sess-1", { modules: { analytics: { defaultPeriod: "30d" } } }),
175
- ]);
176
- expect((await a.get("sess-1"))?.modules).toEqual({
177
- camunda7: { defaultEngineId: "prod-a" },
178
- analytics: { defaultPeriod: "30d" },
179
- });
180
- });
181
- it("keeps serving the key after a failed save (the lock is released on error)", async () => {
182
- const dir = await mkdtemp(path.join(tmpdir(), "profile-store-"));
183
- // A FILE where the store expects its directory: every write fails.
184
- const blocked = path.join(dir, "blocked");
185
- await writeFile(blocked, "", "utf-8");
186
- const store = createFileSystemProfileStore({ dir: blocked });
187
- await expect(store.save("sess-1", { language: "de" })).rejects.toThrow();
188
- await expect(store.save("sess-1", { language: "de" })).rejects.toThrow();
189
- });
190
- it("reads a record from before the migration baseline fail-soft and adopts it on save", async () => {
191
- const dir = await mkdtemp(path.join(tmpdir(), "profile-store-"));
192
- const store = createFileSystemProfileStore({ dir });
193
- const file = path.join(dir, "early.json");
194
- await writeFile(file, JSON.stringify(V1_RECORD), "utf-8");
195
- // No error, no reset: the fields every record carries survive; the flat
196
- // module preferences of the pre-baseline shape read as the defaults.
197
- expect(await store.get("early")).toEqual({
198
- id: "early",
199
- language: "de",
200
- modules: {},
201
- createdAt: V1_RECORD.createdAt,
202
- updatedAt: V1_RECORD.updatedAt,
203
- schemaVersion: 3,
204
- });
205
- const saved = await store.save("early", { modules: { analytics: { defaultPeriod: "7d" } } });
206
- expect(saved).toMatchObject({ language: "de", modules: { analytics: { defaultPeriod: "7d" } } });
207
- // Stamped at the baseline; the keys it does not know stay inert, raw —
208
- // the retired theme preference included.
209
- expect(JSON.parse(await readFile(file, "utf-8"))).toMatchObject({
210
- schemaVersion: 3,
211
- theme: "dark",
212
- analyticsDefaultPeriod: "30d",
213
- modules: { analytics: { defaultPeriod: "7d" } },
214
- });
215
- });
216
- it("reads a record it cannot date (the next save stamps both timestamps)", async () => {
217
- const dir = await mkdtemp(path.join(tmpdir(), "profile-store-"));
218
- const store = createFileSystemProfileStore({ dir });
219
- await writeFile(path.join(dir, "undated.json"), JSON.stringify({ schemaVersion: 3 }), "utf-8");
220
- expect(await store.get("undated")).toMatchObject({ id: "undated", updatedAt: "" });
221
- const saved = await store.save("undated", { language: "de" });
222
- expect(saved.updatedAt).not.toBe("");
223
- expect(saved.createdAt).toBe(saved.updatedAt);
224
- });
225
- it("treats a file that is not JSON as absent and replaces it on the next save", async () => {
226
- const dir = await mkdtemp(path.join(tmpdir(), "profile-store-"));
227
- const store = createFileSystemProfileStore({ dir });
228
- await writeFile(path.join(dir, "broken.json"), "{ not json", "utf-8");
229
- expect(await store.get("broken")).toBeUndefined();
230
- expect((await store.save("broken", { language: "de" })).language).toBe("de");
231
- expect((await store.get("broken"))?.language).toBe("de");
232
- });
233
- it("reads a record with the retired theme preference fail-soft and keeps the key inert", async () => {
234
- const dir = await mkdtemp(path.join(tmpdir(), "profile-store-"));
235
- const store = createFileSystemProfileStore({ dir });
236
- const file = path.join(dir, "themed.json");
237
- await writeFile(file, JSON.stringify(THEMED_RECORD), "utf-8");
238
- // The view never carries it (widgets follow the host's theme) …
239
- const read = await store.get("themed");
240
- expect(read).toMatchObject({ id: "themed", language: "de", modules: {} });
241
- expect(read).not.toHaveProperty("theme");
242
- // … and a save merges over the raw document, so it stays there, unread.
243
- const saved = await store.save("themed", { language: "en" });
244
- expect(saved).not.toHaveProperty("theme");
245
- expect(JSON.parse(await readFile(file, "utf-8"))).toMatchObject({
246
- language: "en",
247
- theme: "dark",
248
- });
249
- });
250
- });
251
- /** A current-shape record an earlier build saved with its theme preference. */
252
- const THEMED_RECORD = {
253
- id: "themed",
254
- language: "de",
255
- theme: "dark",
256
- modules: {},
257
- createdAt: "2026-09-01T00:00:00.000Z",
258
- updatedAt: "2026-09-01T00:00:00.000Z",
259
- schemaVersion: 3,
260
- };
261
- /** A record as a pre-baseline (v1) build persisted it: flat module fields. */
262
- const V1_RECORD = {
263
- id: "early",
264
- language: "de",
265
- theme: "dark",
266
- pinnedDashboardIds: [],
267
- analyticsDefaultPeriod: "30d",
268
- analyticsMinBucketSize: 25,
269
- createdAt: "2026-01-01T00:00:00.000Z",
270
- updatedAt: "2026-01-01T00:00:00.000Z",
271
- schemaVersion: 1,
272
- };
273
- // Opt-in integration slice (like test:host): needs a reachable Postgres, so it
274
- // only runs when TEST_DATABASE_URL is set — `pnpm test:pg` at the repo root
275
- // points it at the compose stack's dedicated test database. An own schema
276
- // isolates it from the other packages' suites sharing that database.
277
- const TEST_DATABASE_URL = process.env.TEST_DATABASE_URL;
278
- const TEST_SCHEMA = "widget_shell_profile_store_test";
279
- describe.skipIf(!TEST_DATABASE_URL)("createPostgresProfileStore", () => {
280
- let sql;
281
- beforeAll(async () => {
282
- sql = postgres(TEST_DATABASE_URL, {
283
- max: 2,
284
- onnotice: () => { },
285
- connection: { search_path: TEST_SCHEMA },
286
- });
287
- await sql.unsafe(`DROP SCHEMA IF EXISTS ${TEST_SCHEMA} CASCADE`);
288
- await sql.unsafe(`CREATE SCHEMA ${TEST_SCHEMA}`);
289
- for (const migration of PROFILE_STORE_MIGRATIONS) {
290
- for (const statement of migration.statements) {
291
- await sql.unsafe(statement);
292
- }
293
- }
294
- });
295
- beforeEach(async () => {
296
- await sql `DELETE FROM user_profiles`;
297
- });
298
- afterAll(async () => {
299
- await sql.end({ timeout: 5 });
300
- });
301
- profileStoreContract(() => Promise.resolve(createPostgresProfileStore({ sql })));
302
- it("reads a row missing every field best-effort and keeps it on save", async () => {
303
- const store = createPostgresProfileStore({ sql });
304
- await sql `
305
- INSERT INTO user_profiles (key, profile)
306
- VALUES ('sess-sparse', '{"schemaVersion": 999}'::jsonb)
307
- `;
308
- expect(await store.get("sess-sparse")).toMatchObject({
309
- id: "sess-sparse",
310
- language: "system",
311
- modules: {},
312
- });
313
- const saved = await store.save("sess-sparse", { language: "de" });
314
- expect(saved.language).toBe("de");
315
- expect(await store.get("sess-sparse")).toEqual(saved);
316
- });
317
- it("reads a row from before the migration baseline fail-soft and adopts it on save", async () => {
318
- const store = createPostgresProfileStore({ sql });
319
- await sql `
320
- INSERT INTO user_profiles (key, profile)
321
- VALUES ('early', ${sql.json(V1_RECORD)})
322
- `;
323
- const early = await store.get("early");
324
- expect(early).toMatchObject({ language: "de", modules: {}, schemaVersion: 3 });
325
- expect(early).not.toHaveProperty("theme");
326
- const saved = await store.save("early", { language: "en" });
327
- expect(saved).toMatchObject({ language: "en", modules: {} });
328
- expect(saved).not.toHaveProperty("theme");
329
- const rows = await sql `
330
- SELECT profile FROM user_profiles WHERE key = 'early'
331
- `;
332
- // The keys this build does not know stay inert in the row, the retired
333
- // theme preference included.
334
- expect(rows[0]?.profile).toMatchObject({
335
- schemaVersion: 3,
336
- theme: "dark",
337
- analyticsDefaultPeriod: "30d",
338
- });
339
- });
340
- it("merges concurrent saves of disjoint fields in the SAME module slice", async () => {
341
- const store = createPostgresProfileStore({ sql });
342
- // The one-level slice merge runs inside the per-key lock, so neither
343
- // field may get lost even though both writers pre-read the same (empty)
344
- // slice outside it.
345
- await Promise.all([
346
- store.save("sess-2", { modules: { camunda7: { defaultEngineId: "prod-a" } } }),
347
- store.save("sess-2", { modules: { camunda7: { pinned: ["d1"] } } }),
348
- ]);
349
- const profile = await store.get("sess-2");
350
- expect(profile?.modules?.camunda7).toEqual({ defaultEngineId: "prod-a", pinned: ["d1"] });
351
- });
352
- });
353
- //# sourceMappingURL=profile-store.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profile-store.test.js","sourceRoot":"","sources":["../src/profile-store.test.ts"],"names":[],"mappings":"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"}