@miragon/pulse-widget-shell 0.0.0-stage → 0.21.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 (831) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -2
  3. package/dist/adapt-data-widget.d.ts +7 -0
  4. package/dist/adapt-data-widget.d.ts.map +1 -0
  5. package/dist/adapt-data-widget.js +7 -0
  6. package/dist/adapt-data-widget.js.map +1 -0
  7. package/dist/bpmn-names.d.ts +42 -0
  8. package/dist/bpmn-names.d.ts.map +1 -0
  9. package/dist/bpmn-names.js +151 -0
  10. package/dist/bpmn-names.js.map +1 -0
  11. package/dist/bpmn-names.test.d.ts +2 -0
  12. package/dist/bpmn-names.test.d.ts.map +1 -0
  13. package/dist/bpmn-names.test.js +143 -0
  14. package/dist/bpmn-names.test.js.map +1 -0
  15. package/dist/build-data-feed-result.test.d.ts +2 -0
  16. package/dist/build-data-feed-result.test.d.ts.map +1 -0
  17. package/dist/build-data-feed-result.test.js +28 -0
  18. package/dist/build-data-feed-result.test.js.map +1 -0
  19. package/dist/build-single-widget-view.test.d.ts +2 -0
  20. package/dist/build-single-widget-view.test.d.ts.map +1 -0
  21. package/dist/build-single-widget-view.test.js +136 -0
  22. package/dist/build-single-widget-view.test.js.map +1 -0
  23. package/dist/builder-texts.d.ts +27 -0
  24. package/dist/builder-texts.d.ts.map +1 -0
  25. package/dist/builder-texts.js +32 -0
  26. package/dist/builder-texts.js.map +1 -0
  27. package/dist/builder-texts.test.d.ts +2 -0
  28. package/dist/builder-texts.test.d.ts.map +1 -0
  29. package/dist/builder-texts.test.js +54 -0
  30. package/dist/builder-texts.test.js.map +1 -0
  31. package/dist/catalogue-sync.d.ts +18 -0
  32. package/dist/catalogue-sync.d.ts.map +1 -0
  33. package/dist/catalogue-sync.js +31 -0
  34. package/dist/catalogue-sync.js.map +1 -0
  35. package/dist/catalogue-sync.test.d.ts +2 -0
  36. package/dist/catalogue-sync.test.d.ts.map +1 -0
  37. package/dist/catalogue-sync.test.js +22 -0
  38. package/dist/catalogue-sync.test.js.map +1 -0
  39. package/dist/composed-server.d.ts +110 -0
  40. package/dist/composed-server.d.ts.map +1 -0
  41. package/dist/composed-server.edge.test.d.ts +2 -0
  42. package/dist/composed-server.edge.test.d.ts.map +1 -0
  43. package/dist/composed-server.edge.test.js +184 -0
  44. package/dist/composed-server.edge.test.js.map +1 -0
  45. package/dist/composed-server.fonts.test.d.ts +2 -0
  46. package/dist/composed-server.fonts.test.d.ts.map +1 -0
  47. package/dist/composed-server.fonts.test.js +186 -0
  48. package/dist/composed-server.fonts.test.js.map +1 -0
  49. package/dist/composed-server.js +260 -0
  50. package/dist/composed-server.js.map +1 -0
  51. package/dist/composed-server.test.d.ts +2 -0
  52. package/dist/composed-server.test.d.ts.map +1 -0
  53. package/dist/composed-server.test.js +332 -0
  54. package/dist/composed-server.test.js.map +1 -0
  55. package/dist/composition.d.ts +155 -0
  56. package/dist/composition.d.ts.map +1 -0
  57. package/dist/composition.js +163 -0
  58. package/dist/composition.js.map +1 -0
  59. package/dist/composition.test.d.ts +2 -0
  60. package/dist/composition.test.d.ts.map +1 -0
  61. package/dist/composition.test.js +275 -0
  62. package/dist/composition.test.js.map +1 -0
  63. package/dist/dashboard-store-postgres.d.ts +43 -0
  64. package/dist/dashboard-store-postgres.d.ts.map +1 -0
  65. package/dist/dashboard-store-postgres.js +225 -0
  66. package/dist/dashboard-store-postgres.js.map +1 -0
  67. package/dist/dashboard-store-postgres.test.d.ts +2 -0
  68. package/dist/dashboard-store-postgres.test.d.ts.map +1 -0
  69. package/dist/dashboard-store-postgres.test.js +272 -0
  70. package/dist/dashboard-store-postgres.test.js.map +1 -0
  71. package/dist/font-assets.d.ts +47 -0
  72. package/dist/font-assets.d.ts.map +1 -0
  73. package/dist/font-assets.js +93 -0
  74. package/dist/font-assets.js.map +1 -0
  75. package/dist/font-assets.test.d.ts +2 -0
  76. package/dist/font-assets.test.d.ts.map +1 -0
  77. package/dist/font-assets.test.js +123 -0
  78. package/dist/font-assets.test.js.map +1 -0
  79. package/dist/health.d.ts +59 -0
  80. package/dist/health.d.ts.map +1 -0
  81. package/dist/health.js +74 -0
  82. package/dist/health.js.map +1 -0
  83. package/dist/health.test.d.ts +2 -0
  84. package/dist/health.test.d.ts.map +1 -0
  85. package/dist/health.test.js +140 -0
  86. package/dist/health.test.js.map +1 -0
  87. package/dist/host-boot.d.ts +56 -0
  88. package/dist/host-boot.d.ts.map +1 -0
  89. package/dist/host-boot.js +64 -0
  90. package/dist/host-boot.js.map +1 -0
  91. package/dist/host-boot.test.d.ts +2 -0
  92. package/dist/host-boot.test.d.ts.map +1 -0
  93. package/dist/host-boot.test.js +59 -0
  94. package/dist/host-boot.test.js.map +1 -0
  95. package/dist/http-edge.d.ts +117 -0
  96. package/dist/http-edge.d.ts.map +1 -0
  97. package/dist/http-edge.js +219 -0
  98. package/dist/http-edge.js.map +1 -0
  99. package/dist/http-edge.test.d.ts +2 -0
  100. package/dist/http-edge.test.d.ts.map +1 -0
  101. package/dist/http-edge.test.js +255 -0
  102. package/dist/http-edge.test.js.map +1 -0
  103. package/dist/metrics.d.ts +48 -0
  104. package/dist/metrics.d.ts.map +1 -0
  105. package/dist/metrics.js +124 -0
  106. package/dist/metrics.js.map +1 -0
  107. package/dist/metrics.test.d.ts +2 -0
  108. package/dist/metrics.test.d.ts.map +1 -0
  109. package/dist/metrics.test.js +154 -0
  110. package/dist/metrics.test.js.map +1 -0
  111. package/dist/node-listener.d.ts +61 -0
  112. package/dist/node-listener.d.ts.map +1 -0
  113. package/dist/node-listener.js +165 -0
  114. package/dist/node-listener.js.map +1 -0
  115. package/dist/node-listener.test.d.ts +2 -0
  116. package/dist/node-listener.test.d.ts.map +1 -0
  117. package/dist/node-listener.test.js +331 -0
  118. package/dist/node-listener.test.js.map +1 -0
  119. package/dist/oauth-env.d.ts +42 -0
  120. package/dist/oauth-env.d.ts.map +1 -0
  121. package/dist/oauth-env.js +78 -0
  122. package/dist/oauth-env.js.map +1 -0
  123. package/dist/oauth-env.test.d.ts +2 -0
  124. package/dist/oauth-env.test.d.ts.map +1 -0
  125. package/dist/oauth-env.test.js +76 -0
  126. package/dist/oauth-env.test.js.map +1 -0
  127. package/dist/postgres.d.ts +59 -0
  128. package/dist/postgres.d.ts.map +1 -0
  129. package/dist/postgres.js +80 -0
  130. package/dist/postgres.js.map +1 -0
  131. package/dist/profile-advisory.d.ts +19 -0
  132. package/dist/profile-advisory.d.ts.map +1 -0
  133. package/dist/profile-advisory.js +48 -0
  134. package/dist/profile-advisory.js.map +1 -0
  135. package/dist/profile-advisory.test.d.ts +2 -0
  136. package/dist/profile-advisory.test.d.ts.map +1 -0
  137. package/dist/profile-advisory.test.js +53 -0
  138. package/dist/profile-advisory.test.js.map +1 -0
  139. package/dist/profile-constants.d.ts +37 -0
  140. package/dist/profile-constants.d.ts.map +1 -0
  141. package/dist/profile-constants.js +37 -0
  142. package/dist/profile-constants.js.map +1 -0
  143. package/dist/profile-migrations.d.ts +71 -0
  144. package/dist/profile-migrations.d.ts.map +1 -0
  145. package/dist/profile-migrations.js +88 -0
  146. package/dist/profile-migrations.js.map +1 -0
  147. package/dist/profile-migrations.test.d.ts +2 -0
  148. package/dist/profile-migrations.test.d.ts.map +1 -0
  149. package/dist/profile-migrations.test.js +200 -0
  150. package/dist/profile-migrations.test.js.map +1 -0
  151. package/dist/profile-record.d.ts +60 -0
  152. package/dist/profile-record.d.ts.map +1 -0
  153. package/dist/profile-record.js +78 -0
  154. package/dist/profile-record.js.map +1 -0
  155. package/dist/profile-slice.d.ts +53 -0
  156. package/dist/profile-slice.d.ts.map +1 -0
  157. package/dist/profile-slice.js +73 -0
  158. package/dist/profile-slice.js.map +1 -0
  159. package/dist/profile-slice.test.d.ts +2 -0
  160. package/dist/profile-slice.test.d.ts.map +1 -0
  161. package/dist/profile-slice.test.js +73 -0
  162. package/dist/profile-slice.test.js.map +1 -0
  163. package/dist/profile-store-env.d.ts +34 -0
  164. package/dist/profile-store-env.d.ts.map +1 -0
  165. package/dist/profile-store-env.js +44 -0
  166. package/dist/profile-store-env.js.map +1 -0
  167. package/dist/profile-store-env.test.d.ts +2 -0
  168. package/dist/profile-store-env.test.d.ts.map +1 -0
  169. package/dist/profile-store-env.test.js +69 -0
  170. package/dist/profile-store-env.test.js.map +1 -0
  171. package/dist/profile-store-postgres.d.ts +33 -0
  172. package/dist/profile-store-postgres.d.ts.map +1 -0
  173. package/dist/profile-store-postgres.js +87 -0
  174. package/dist/profile-store-postgres.js.map +1 -0
  175. package/dist/profile-store-raw.test.d.ts +2 -0
  176. package/dist/profile-store-raw.test.d.ts.map +1 -0
  177. package/dist/profile-store-raw.test.js +185 -0
  178. package/dist/profile-store-raw.test.js.map +1 -0
  179. package/dist/profile-store.d.ts +85 -0
  180. package/dist/profile-store.d.ts.map +1 -0
  181. package/dist/profile-store.js +182 -0
  182. package/dist/profile-store.js.map +1 -0
  183. package/dist/profile-store.test.d.ts +2 -0
  184. package/dist/profile-store.test.d.ts.map +1 -0
  185. package/dist/profile-store.test.js +353 -0
  186. package/dist/profile-store.test.js.map +1 -0
  187. package/dist/profile.d.ts +75 -0
  188. package/dist/profile.d.ts.map +1 -0
  189. package/dist/profile.js +85 -0
  190. package/dist/profile.js.map +1 -0
  191. package/dist/profile.test.d.ts +2 -0
  192. package/dist/profile.test.d.ts.map +1 -0
  193. package/dist/profile.test.js +71 -0
  194. package/dist/profile.test.js.map +1 -0
  195. package/dist/request-context.d.ts +47 -0
  196. package/dist/request-context.d.ts.map +1 -0
  197. package/dist/request-context.js +85 -0
  198. package/dist/request-context.js.map +1 -0
  199. package/dist/request-context.test.d.ts +2 -0
  200. package/dist/request-context.test.d.ts.map +1 -0
  201. package/dist/request-context.test.js +107 -0
  202. package/dist/request-context.test.js.map +1 -0
  203. package/dist/served-fonts.d.ts +38 -0
  204. package/dist/served-fonts.d.ts.map +1 -0
  205. package/dist/served-fonts.js +51 -0
  206. package/dist/served-fonts.js.map +1 -0
  207. package/dist/served-fonts.test.d.ts +2 -0
  208. package/dist/served-fonts.test.d.ts.map +1 -0
  209. package/dist/served-fonts.test.js +30 -0
  210. package/dist/served-fonts.test.js.map +1 -0
  211. package/dist/server-locale.d.ts +58 -0
  212. package/dist/server-locale.d.ts.map +1 -0
  213. package/dist/server-locale.js +64 -0
  214. package/dist/server-locale.js.map +1 -0
  215. package/dist/server-locale.test.d.ts +2 -0
  216. package/dist/server-locale.test.d.ts.map +1 -0
  217. package/dist/server-locale.test.js +90 -0
  218. package/dist/server-locale.test.js.map +1 -0
  219. package/dist/server.d.ts +43 -0
  220. package/dist/server.d.ts.map +1 -0
  221. package/dist/server.js +34 -0
  222. package/dist/server.js.map +1 -0
  223. package/dist/shell-catalogue.d.ts +12 -0
  224. package/dist/shell-catalogue.d.ts.map +1 -0
  225. package/dist/shell-catalogue.js +142 -0
  226. package/dist/shell-catalogue.js.map +1 -0
  227. package/dist/shell-settings-contract.d.ts +34 -0
  228. package/dist/shell-settings-contract.d.ts.map +1 -0
  229. package/dist/shell-settings-contract.js +21 -0
  230. package/dist/shell-settings-contract.js.map +1 -0
  231. package/dist/shell-settings.d.ts +24 -0
  232. package/dist/shell-settings.d.ts.map +1 -0
  233. package/dist/shell-settings.js +148 -0
  234. package/dist/shell-settings.js.map +1 -0
  235. package/dist/shell-settings.test.d.ts +2 -0
  236. package/dist/shell-settings.test.d.ts.map +1 -0
  237. package/dist/shell-settings.test.js +115 -0
  238. package/dist/shell-settings.test.js.map +1 -0
  239. package/dist/testing/catalog-text.d.ts +53 -0
  240. package/dist/testing/catalog-text.d.ts.map +1 -0
  241. package/dist/testing/catalog-text.js +146 -0
  242. package/dist/testing/catalog-text.js.map +1 -0
  243. package/dist/testing/catalog-text.test.d.ts +2 -0
  244. package/dist/testing/catalog-text.test.d.ts.map +1 -0
  245. package/dist/testing/catalog-text.test.js +137 -0
  246. package/dist/testing/catalog-text.test.js.map +1 -0
  247. package/dist/testing/colors.d.ts +34 -0
  248. package/dist/testing/colors.d.ts.map +1 -0
  249. package/dist/testing/colors.js +124 -0
  250. package/dist/testing/colors.js.map +1 -0
  251. package/dist/testing/colors.test.d.ts +2 -0
  252. package/dist/testing/colors.test.d.ts.map +1 -0
  253. package/dist/testing/colors.test.js +166 -0
  254. package/dist/testing/colors.test.js.map +1 -0
  255. package/dist/testing/contrast.d.ts +77 -0
  256. package/dist/testing/contrast.d.ts.map +1 -0
  257. package/dist/testing/contrast.js +382 -0
  258. package/dist/testing/contrast.js.map +1 -0
  259. package/dist/testing/contrast.test.d.ts +2 -0
  260. package/dist/testing/contrast.test.d.ts.map +1 -0
  261. package/dist/testing/contrast.test.js +230 -0
  262. package/dist/testing/contrast.test.js.map +1 -0
  263. package/dist/testing/display-texts.d.ts +23 -0
  264. package/dist/testing/display-texts.d.ts.map +1 -0
  265. package/dist/testing/display-texts.js +88 -0
  266. package/dist/testing/display-texts.js.map +1 -0
  267. package/dist/testing/display-texts.test.d.ts +2 -0
  268. package/dist/testing/display-texts.test.d.ts.map +1 -0
  269. package/dist/testing/display-texts.test.js +169 -0
  270. package/dist/testing/display-texts.test.js.map +1 -0
  271. package/dist/testing/glossary.d.ts +52 -0
  272. package/dist/testing/glossary.d.ts.map +1 -0
  273. package/dist/testing/glossary.js +135 -0
  274. package/dist/testing/glossary.js.map +1 -0
  275. package/dist/testing/glossary.test.d.ts +2 -0
  276. package/dist/testing/glossary.test.d.ts.map +1 -0
  277. package/dist/testing/glossary.test.js +78 -0
  278. package/dist/testing/glossary.test.js.map +1 -0
  279. package/dist/testing/glyphs.d.ts +27 -0
  280. package/dist/testing/glyphs.d.ts.map +1 -0
  281. package/dist/testing/glyphs.js +130 -0
  282. package/dist/testing/glyphs.js.map +1 -0
  283. package/dist/testing/glyphs.test.d.ts +2 -0
  284. package/dist/testing/glyphs.test.d.ts.map +1 -0
  285. package/dist/testing/glyphs.test.js +146 -0
  286. package/dist/testing/glyphs.test.js.map +1 -0
  287. package/dist/testing/icon-sizes.d.ts +22 -0
  288. package/dist/testing/icon-sizes.d.ts.map +1 -0
  289. package/dist/testing/icon-sizes.js +39 -0
  290. package/dist/testing/icon-sizes.js.map +1 -0
  291. package/dist/testing/icon-sizes.test.d.ts +2 -0
  292. package/dist/testing/icon-sizes.test.d.ts.map +1 -0
  293. package/dist/testing/icon-sizes.test.js +36 -0
  294. package/dist/testing/icon-sizes.test.js.map +1 -0
  295. package/dist/testing/index.d.ts +40 -0
  296. package/dist/testing/index.d.ts.map +1 -0
  297. package/dist/testing/index.js +40 -0
  298. package/dist/testing/index.js.map +1 -0
  299. package/dist/testing/source-scan.d.ts +16 -0
  300. package/dist/testing/source-scan.d.ts.map +1 -0
  301. package/dist/testing/source-scan.js +57 -0
  302. package/dist/testing/source-scan.js.map +1 -0
  303. package/dist/testing/tone-pairs.d.ts +20 -0
  304. package/dist/testing/tone-pairs.d.ts.map +1 -0
  305. package/dist/testing/tone-pairs.js +154 -0
  306. package/dist/testing/tone-pairs.js.map +1 -0
  307. package/dist/testing/type-scale.d.ts +40 -0
  308. package/dist/testing/type-scale.d.ts.map +1 -0
  309. package/dist/testing/type-scale.js +55 -0
  310. package/dist/testing/type-scale.js.map +1 -0
  311. package/dist/testing/type-scale.test.d.ts +2 -0
  312. package/dist/testing/type-scale.test.d.ts.map +1 -0
  313. package/dist/testing/type-scale.test.js +61 -0
  314. package/dist/testing/type-scale.test.js.map +1 -0
  315. package/dist/tool-schema-trim.d.ts +24 -0
  316. package/dist/tool-schema-trim.d.ts.map +1 -0
  317. package/dist/tool-schema-trim.js +49 -0
  318. package/dist/tool-schema-trim.js.map +1 -0
  319. package/dist/tool-schema-trim.test.d.ts +2 -0
  320. package/dist/tool-schema-trim.test.d.ts.map +1 -0
  321. package/dist/tool-schema-trim.test.js +53 -0
  322. package/dist/tool-schema-trim.test.js.map +1 -0
  323. package/dist/toolsets.d.ts +76 -0
  324. package/dist/toolsets.d.ts.map +1 -0
  325. package/dist/toolsets.js +41 -0
  326. package/dist/toolsets.js.map +1 -0
  327. package/dist/toolsets.test.d.ts +2 -0
  328. package/dist/toolsets.test.d.ts.map +1 -0
  329. package/dist/toolsets.test.js +86 -0
  330. package/dist/toolsets.test.js.map +1 -0
  331. package/dist/ui/action-feedback.d.ts +33 -0
  332. package/dist/ui/action-feedback.d.ts.map +1 -0
  333. package/dist/ui/action-feedback.js +51 -0
  334. package/dist/ui/action-feedback.js.map +1 -0
  335. package/dist/ui/action-feedback.test.d.ts +2 -0
  336. package/dist/ui/action-feedback.test.d.ts.map +1 -0
  337. package/dist/ui/action-feedback.test.js +77 -0
  338. package/dist/ui/action-feedback.test.js.map +1 -0
  339. package/dist/ui/app-shell-providers.d.ts +18 -0
  340. package/dist/ui/app-shell-providers.d.ts.map +1 -0
  341. package/dist/ui/app-shell-providers.js +19 -0
  342. package/dist/ui/app-shell-providers.js.map +1 -0
  343. package/dist/ui/app-shell-providers.test.d.ts +2 -0
  344. package/dist/ui/app-shell-providers.test.d.ts.map +1 -0
  345. package/dist/ui/app-shell-providers.test.js +249 -0
  346. package/dist/ui/app-shell-providers.test.js.map +1 -0
  347. package/dist/ui/ask-ai-button.d.ts +56 -0
  348. package/dist/ui/ask-ai-button.d.ts.map +1 -0
  349. package/dist/ui/ask-ai-button.js +36 -0
  350. package/dist/ui/ask-ai-button.js.map +1 -0
  351. package/dist/ui/ask-ai-button.test.d.ts +2 -0
  352. package/dist/ui/ask-ai-button.test.d.ts.map +1 -0
  353. package/dist/ui/ask-ai-button.test.js +103 -0
  354. package/dist/ui/ask-ai-button.test.js.map +1 -0
  355. package/dist/ui/ask-ai-prompt.d.ts +115 -0
  356. package/dist/ui/ask-ai-prompt.d.ts.map +1 -0
  357. package/dist/ui/ask-ai-prompt.js +174 -0
  358. package/dist/ui/ask-ai-prompt.js.map +1 -0
  359. package/dist/ui/ask-ai-prompt.test.d.ts +2 -0
  360. package/dist/ui/ask-ai-prompt.test.d.ts.map +1 -0
  361. package/dist/ui/ask-ai-prompt.test.js +240 -0
  362. package/dist/ui/ask-ai-prompt.test.js.map +1 -0
  363. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts +2 -0
  364. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts.map +1 -0
  365. package/dist/ui/bpmn-heatmap/heat-ramp.test.js +174 -0
  366. package/dist/ui/bpmn-heatmap/heat-ramp.test.js.map +1 -0
  367. package/dist/ui/bpmn-heatmap/heat-utils.d.ts +119 -0
  368. package/dist/ui/bpmn-heatmap/heat-utils.d.ts.map +1 -0
  369. package/dist/ui/bpmn-heatmap/heat-utils.js +231 -0
  370. package/dist/ui/bpmn-heatmap/heat-utils.js.map +1 -0
  371. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts +2 -0
  372. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts.map +1 -0
  373. package/dist/ui/bpmn-heatmap/heat-utils.test.js +59 -0
  374. package/dist/ui/bpmn-heatmap/heat-utils.test.js.map +1 -0
  375. package/dist/ui/bpmn-heatmap-labels.d.ts +46 -0
  376. package/dist/ui/bpmn-heatmap-labels.d.ts.map +1 -0
  377. package/dist/ui/bpmn-heatmap-labels.js +16 -0
  378. package/dist/ui/bpmn-heatmap-labels.js.map +1 -0
  379. package/dist/ui/bpmn-heatmap-widget.d.ts +38 -0
  380. package/dist/ui/bpmn-heatmap-widget.d.ts.map +1 -0
  381. package/dist/ui/bpmn-heatmap-widget.js +65 -0
  382. package/dist/ui/bpmn-heatmap-widget.js.map +1 -0
  383. package/dist/ui/bpmn-heatmap-widget.test.d.ts +2 -0
  384. package/dist/ui/bpmn-heatmap-widget.test.d.ts.map +1 -0
  385. package/dist/ui/bpmn-heatmap-widget.test.js +173 -0
  386. package/dist/ui/bpmn-heatmap-widget.test.js.map +1 -0
  387. package/dist/ui/bpmn-heatmap.d.ts +61 -0
  388. package/dist/ui/bpmn-heatmap.d.ts.map +1 -0
  389. package/dist/ui/bpmn-heatmap.js +119 -0
  390. package/dist/ui/bpmn-heatmap.js.map +1 -0
  391. package/dist/ui/bpmn-tokens.d.ts +81 -0
  392. package/dist/ui/bpmn-tokens.d.ts.map +1 -0
  393. package/dist/ui/bpmn-tokens.js +114 -0
  394. package/dist/ui/bpmn-tokens.js.map +1 -0
  395. package/dist/ui/bpmn-tokens.test.d.ts +2 -0
  396. package/dist/ui/bpmn-tokens.test.d.ts.map +1 -0
  397. package/dist/ui/bpmn-tokens.test.js +98 -0
  398. package/dist/ui/bpmn-tokens.test.js.map +1 -0
  399. package/dist/ui/bpmn-zoom-controls.d.ts +30 -0
  400. package/dist/ui/bpmn-zoom-controls.d.ts.map +1 -0
  401. package/dist/ui/bpmn-zoom-controls.js +29 -0
  402. package/dist/ui/bpmn-zoom-controls.js.map +1 -0
  403. package/dist/ui/brand-gates.test.d.ts +2 -0
  404. package/dist/ui/brand-gates.test.d.ts.map +1 -0
  405. package/dist/ui/brand-gates.test.js +131 -0
  406. package/dist/ui/brand-gates.test.js.map +1 -0
  407. package/dist/ui/brand-mark.d.ts +37 -0
  408. package/dist/ui/brand-mark.d.ts.map +1 -0
  409. package/dist/ui/brand-mark.js +33 -0
  410. package/dist/ui/brand-mark.js.map +1 -0
  411. package/dist/ui/brand-mark.test.d.ts +2 -0
  412. package/dist/ui/brand-mark.test.d.ts.map +1 -0
  413. package/dist/ui/brand-mark.test.js +111 -0
  414. package/dist/ui/brand-mark.test.js.map +1 -0
  415. package/dist/ui/confirm-dialog.d.ts +55 -0
  416. package/dist/ui/confirm-dialog.d.ts.map +1 -0
  417. package/dist/ui/confirm-dialog.js +59 -0
  418. package/dist/ui/confirm-dialog.js.map +1 -0
  419. package/dist/ui/confirm-dialog.test.d.ts +2 -0
  420. package/dist/ui/confirm-dialog.test.d.ts.map +1 -0
  421. package/dist/ui/confirm-dialog.test.js +115 -0
  422. package/dist/ui/confirm-dialog.test.js.map +1 -0
  423. package/dist/ui/count-tone.d.ts +20 -0
  424. package/dist/ui/count-tone.d.ts.map +1 -0
  425. package/dist/ui/count-tone.js +27 -0
  426. package/dist/ui/count-tone.js.map +1 -0
  427. package/dist/ui/count-tone.test.d.ts +2 -0
  428. package/dist/ui/count-tone.test.d.ts.map +1 -0
  429. package/dist/ui/count-tone.test.js +27 -0
  430. package/dist/ui/count-tone.test.js.map +1 -0
  431. package/dist/ui/create-use-t.d.ts +15 -0
  432. package/dist/ui/create-use-t.d.ts.map +1 -0
  433. package/dist/ui/create-use-t.js +17 -0
  434. package/dist/ui/create-use-t.js.map +1 -0
  435. package/dist/ui/declare-served-fonts.d.ts +14 -0
  436. package/dist/ui/declare-served-fonts.d.ts.map +1 -0
  437. package/dist/ui/declare-served-fonts.js +38 -0
  438. package/dist/ui/declare-served-fonts.js.map +1 -0
  439. package/dist/ui/declare-served-fonts.test.d.ts +2 -0
  440. package/dist/ui/declare-served-fonts.test.d.ts.map +1 -0
  441. package/dist/ui/declare-served-fonts.test.js +44 -0
  442. package/dist/ui/declare-served-fonts.test.js.map +1 -0
  443. package/dist/ui/describe-error.d.ts +71 -0
  444. package/dist/ui/describe-error.d.ts.map +1 -0
  445. package/dist/ui/describe-error.js +175 -0
  446. package/dist/ui/describe-error.js.map +1 -0
  447. package/dist/ui/describe-error.test.d.ts +2 -0
  448. package/dist/ui/describe-error.test.d.ts.map +1 -0
  449. package/dist/ui/describe-error.test.js +274 -0
  450. package/dist/ui/describe-error.test.js.map +1 -0
  451. package/dist/ui/display-mode-toggle.d.ts +32 -0
  452. package/dist/ui/display-mode-toggle.d.ts.map +1 -0
  453. package/dist/ui/display-mode-toggle.js +39 -0
  454. package/dist/ui/display-mode-toggle.js.map +1 -0
  455. package/dist/ui/error-labels.d.ts +65 -0
  456. package/dist/ui/error-labels.d.ts.map +1 -0
  457. package/dist/ui/error-labels.js +111 -0
  458. package/dist/ui/error-labels.js.map +1 -0
  459. package/dist/ui/format.d.ts +81 -0
  460. package/dist/ui/format.d.ts.map +1 -0
  461. package/dist/ui/format.js +189 -0
  462. package/dist/ui/format.js.map +1 -0
  463. package/dist/ui/format.test.d.ts +2 -0
  464. package/dist/ui/format.test.d.ts.map +1 -0
  465. package/dist/ui/format.test.js +181 -0
  466. package/dist/ui/format.test.js.map +1 -0
  467. package/dist/ui/generic-widgets.d.ts +15 -0
  468. package/dist/ui/generic-widgets.d.ts.map +1 -0
  469. package/dist/ui/generic-widgets.js +122 -0
  470. package/dist/ui/generic-widgets.js.map +1 -0
  471. package/dist/ui/generic-widgets.test.d.ts +2 -0
  472. package/dist/ui/generic-widgets.test.d.ts.map +1 -0
  473. package/dist/ui/generic-widgets.test.js +139 -0
  474. package/dist/ui/generic-widgets.test.js.map +1 -0
  475. package/dist/ui/hand-off-button.d.ts +44 -0
  476. package/dist/ui/hand-off-button.d.ts.map +1 -0
  477. package/dist/ui/hand-off-button.js +44 -0
  478. package/dist/ui/hand-off-button.js.map +1 -0
  479. package/dist/ui/hand-off-button.test.d.ts +2 -0
  480. package/dist/ui/hand-off-button.test.d.ts.map +1 -0
  481. package/dist/ui/hand-off-button.test.js +78 -0
  482. package/dist/ui/hand-off-button.test.js.map +1 -0
  483. package/dist/ui/host-context.d.ts +66 -0
  484. package/dist/ui/host-context.d.ts.map +1 -0
  485. package/dist/ui/host-context.js +122 -0
  486. package/dist/ui/host-context.js.map +1 -0
  487. package/dist/ui/host-context.test.d.ts +2 -0
  488. package/dist/ui/host-context.test.d.ts.map +1 -0
  489. package/dist/ui/host-context.test.js +160 -0
  490. package/dist/ui/host-context.test.js.map +1 -0
  491. package/dist/ui/host-document.d.ts +25 -0
  492. package/dist/ui/host-document.d.ts.map +1 -0
  493. package/dist/ui/host-document.js +93 -0
  494. package/dist/ui/host-document.js.map +1 -0
  495. package/dist/ui/host-document.test.d.ts +2 -0
  496. package/dist/ui/host-document.test.d.ts.map +1 -0
  497. package/dist/ui/host-document.test.js +112 -0
  498. package/dist/ui/host-document.test.js.map +1 -0
  499. package/dist/ui/host-widgets.d.ts +8 -0
  500. package/dist/ui/host-widgets.d.ts.map +1 -0
  501. package/dist/ui/host-widgets.js +18 -0
  502. package/dist/ui/host-widgets.js.map +1 -0
  503. package/dist/ui/humanize-key.d.ts +11 -0
  504. package/dist/ui/humanize-key.d.ts.map +1 -0
  505. package/dist/ui/humanize-key.js +26 -0
  506. package/dist/ui/humanize-key.js.map +1 -0
  507. package/dist/ui/humanize-key.test.d.ts +2 -0
  508. package/dist/ui/humanize-key.test.d.ts.map +1 -0
  509. package/dist/ui/humanize-key.test.js +42 -0
  510. package/dist/ui/humanize-key.test.js.map +1 -0
  511. package/dist/ui/icon.d.ts +37 -0
  512. package/dist/ui/icon.d.ts.map +1 -0
  513. package/dist/ui/icon.js +32 -0
  514. package/dist/ui/icon.js.map +1 -0
  515. package/dist/ui/id-breaks.d.ts +17 -0
  516. package/dist/ui/id-breaks.d.ts.map +1 -0
  517. package/dist/ui/id-breaks.js +36 -0
  518. package/dist/ui/id-breaks.js.map +1 -0
  519. package/dist/ui/id-breaks.test.d.ts +2 -0
  520. package/dist/ui/id-breaks.test.d.ts.map +1 -0
  521. package/dist/ui/id-breaks.test.js +37 -0
  522. package/dist/ui/id-breaks.test.js.map +1 -0
  523. package/dist/ui/id-text.d.ts +29 -0
  524. package/dist/ui/id-text.d.ts.map +1 -0
  525. package/dist/ui/id-text.js +103 -0
  526. package/dist/ui/id-text.js.map +1 -0
  527. package/dist/ui/id-text.test.d.ts +2 -0
  528. package/dist/ui/id-text.test.d.ts.map +1 -0
  529. package/dist/ui/id-text.test.js +122 -0
  530. package/dist/ui/id-text.test.js.map +1 -0
  531. package/dist/ui/index.d.ts +57 -0
  532. package/dist/ui/index.d.ts.map +1 -0
  533. package/dist/ui/index.js +65 -0
  534. package/dist/ui/index.js.map +1 -0
  535. package/dist/ui/index.test.d.ts +2 -0
  536. package/dist/ui/index.test.d.ts.map +1 -0
  537. package/dist/ui/index.test.js +34 -0
  538. package/dist/ui/index.test.js.map +1 -0
  539. package/dist/ui/inline-budget.d.ts +35 -0
  540. package/dist/ui/inline-budget.d.ts.map +1 -0
  541. package/dist/ui/inline-budget.js +27 -0
  542. package/dist/ui/inline-budget.js.map +1 -0
  543. package/dist/ui/inline-fit-registry.d.ts +56 -0
  544. package/dist/ui/inline-fit-registry.d.ts.map +1 -0
  545. package/dist/ui/inline-fit-registry.js +114 -0
  546. package/dist/ui/inline-fit-registry.js.map +1 -0
  547. package/dist/ui/inline-fit-solve.d.ts +50 -0
  548. package/dist/ui/inline-fit-solve.d.ts.map +1 -0
  549. package/dist/ui/inline-fit-solve.js +83 -0
  550. package/dist/ui/inline-fit-solve.js.map +1 -0
  551. package/dist/ui/inline-fit-solve.test.d.ts +2 -0
  552. package/dist/ui/inline-fit-solve.test.d.ts.map +1 -0
  553. package/dist/ui/inline-fit-solve.test.js +108 -0
  554. package/dist/ui/inline-fit-solve.test.js.map +1 -0
  555. package/dist/ui/inline-fit-time.test.d.ts +2 -0
  556. package/dist/ui/inline-fit-time.test.d.ts.map +1 -0
  557. package/dist/ui/inline-fit-time.test.js +110 -0
  558. package/dist/ui/inline-fit-time.test.js.map +1 -0
  559. package/dist/ui/inline-fit.d.ts +77 -0
  560. package/dist/ui/inline-fit.d.ts.map +1 -0
  561. package/dist/ui/inline-fit.js +242 -0
  562. package/dist/ui/inline-fit.js.map +1 -0
  563. package/dist/ui/inline-fit.test-support.d.ts +26 -0
  564. package/dist/ui/inline-fit.test-support.d.ts.map +1 -0
  565. package/dist/ui/inline-fit.test-support.js +34 -0
  566. package/dist/ui/inline-fit.test-support.js.map +1 -0
  567. package/dist/ui/inline-fit.test.d.ts +2 -0
  568. package/dist/ui/inline-fit.test.d.ts.map +1 -0
  569. package/dist/ui/inline-fit.test.js +159 -0
  570. package/dist/ui/inline-fit.test.js.map +1 -0
  571. package/dist/ui/kit-labels.d.ts +80 -0
  572. package/dist/ui/kit-labels.d.ts.map +1 -0
  573. package/dist/ui/kit-labels.js +110 -0
  574. package/dist/ui/kit-labels.js.map +1 -0
  575. package/dist/ui/kit-labels.test.d.ts +2 -0
  576. package/dist/ui/kit-labels.test.d.ts.map +1 -0
  577. package/dist/ui/kit-labels.test.js +98 -0
  578. package/dist/ui/kit-labels.test.js.map +1 -0
  579. package/dist/ui/kit-type-roles.test.d.ts +2 -0
  580. package/dist/ui/kit-type-roles.test.d.ts.map +1 -0
  581. package/dist/ui/kit-type-roles.test.js +122 -0
  582. package/dist/ui/kit-type-roles.test.js.map +1 -0
  583. package/dist/ui/komet-svg.d.ts +15 -0
  584. package/dist/ui/komet-svg.d.ts.map +1 -0
  585. package/dist/ui/komet-svg.js +21 -0
  586. package/dist/ui/komet-svg.js.map +1 -0
  587. package/dist/ui/list-table.d.ts +108 -0
  588. package/dist/ui/list-table.d.ts.map +1 -0
  589. package/dist/ui/list-table.js +161 -0
  590. package/dist/ui/list-table.js.map +1 -0
  591. package/dist/ui/list-table.test.d.ts +2 -0
  592. package/dist/ui/list-table.test.d.ts.map +1 -0
  593. package/dist/ui/list-table.test.js +169 -0
  594. package/dist/ui/list-table.test.js.map +1 -0
  595. package/dist/ui/localized-app-view.d.ts +40 -0
  596. package/dist/ui/localized-app-view.d.ts.map +1 -0
  597. package/dist/ui/localized-app-view.js +71 -0
  598. package/dist/ui/localized-app-view.js.map +1 -0
  599. package/dist/ui/log-text.d.ts +24 -0
  600. package/dist/ui/log-text.d.ts.map +1 -0
  601. package/dist/ui/log-text.js +31 -0
  602. package/dist/ui/log-text.js.map +1 -0
  603. package/dist/ui/menu-item.d.ts +12 -0
  604. package/dist/ui/menu-item.d.ts.map +1 -0
  605. package/dist/ui/menu-item.js +13 -0
  606. package/dist/ui/menu-item.js.map +1 -0
  607. package/dist/ui/named-id.d.ts +23 -0
  608. package/dist/ui/named-id.d.ts.map +1 -0
  609. package/dist/ui/named-id.js +21 -0
  610. package/dist/ui/named-id.js.map +1 -0
  611. package/dist/ui/named-id.test.d.ts +2 -0
  612. package/dist/ui/named-id.test.d.ts.map +1 -0
  613. package/dist/ui/named-id.test.js +57 -0
  614. package/dist/ui/named-id.test.js.map +1 -0
  615. package/dist/ui/native-select.d.ts +17 -0
  616. package/dist/ui/native-select.d.ts.map +1 -0
  617. package/dist/ui/native-select.js +20 -0
  618. package/dist/ui/native-select.js.map +1 -0
  619. package/dist/ui/navigation-focus.d.ts +20 -0
  620. package/dist/ui/navigation-focus.d.ts.map +1 -0
  621. package/dist/ui/navigation-focus.js +25 -0
  622. package/dist/ui/navigation-focus.js.map +1 -0
  623. package/dist/ui/navigation-focus.test.d.ts +2 -0
  624. package/dist/ui/navigation-focus.test.d.ts.map +1 -0
  625. package/dist/ui/navigation-focus.test.js +28 -0
  626. package/dist/ui/navigation-focus.test.js.map +1 -0
  627. package/dist/ui/open-in-cockpit-link.d.ts +28 -0
  628. package/dist/ui/open-in-cockpit-link.d.ts.map +1 -0
  629. package/dist/ui/open-in-cockpit-link.js +41 -0
  630. package/dist/ui/open-in-cockpit-link.js.map +1 -0
  631. package/dist/ui/paged-list-footer.test.d.ts +2 -0
  632. package/dist/ui/paged-list-footer.test.d.ts.map +1 -0
  633. package/dist/ui/paged-list-footer.test.js +128 -0
  634. package/dist/ui/paged-list-footer.test.js.map +1 -0
  635. package/dist/ui/paged-rows.d.ts +24 -0
  636. package/dist/ui/paged-rows.d.ts.map +1 -0
  637. package/dist/ui/paged-rows.js +25 -0
  638. package/dist/ui/paged-rows.js.map +1 -0
  639. package/dist/ui/parse-tool-result.test.d.ts +2 -0
  640. package/dist/ui/parse-tool-result.test.d.ts.map +1 -0
  641. package/dist/ui/parse-tool-result.test.js +88 -0
  642. package/dist/ui/parse-tool-result.test.js.map +1 -0
  643. package/dist/ui/profile-gate.d.ts +37 -0
  644. package/dist/ui/profile-gate.d.ts.map +1 -0
  645. package/dist/ui/profile-gate.js +126 -0
  646. package/dist/ui/profile-gate.js.map +1 -0
  647. package/dist/ui/profile-gate.test.d.ts +2 -0
  648. package/dist/ui/profile-gate.test.d.ts.map +1 -0
  649. package/dist/ui/profile-gate.test.js +246 -0
  650. package/dist/ui/profile-gate.test.js.map +1 -0
  651. package/dist/ui/query-fallback.d.ts +27 -0
  652. package/dist/ui/query-fallback.d.ts.map +1 -0
  653. package/dist/ui/query-fallback.js +30 -0
  654. package/dist/ui/query-fallback.js.map +1 -0
  655. package/dist/ui/query-fallback.test.d.ts +2 -0
  656. package/dist/ui/query-fallback.test.d.ts.map +1 -0
  657. package/dist/ui/query-fallback.test.js +49 -0
  658. package/dist/ui/query-fallback.test.js.map +1 -0
  659. package/dist/ui/row-card.d.ts +13 -0
  660. package/dist/ui/row-card.d.ts.map +1 -0
  661. package/dist/ui/row-card.js +11 -0
  662. package/dist/ui/row-card.js.map +1 -0
  663. package/dist/ui/section.d.ts +18 -0
  664. package/dist/ui/section.d.ts.map +1 -0
  665. package/dist/ui/section.js +14 -0
  666. package/dist/ui/section.js.map +1 -0
  667. package/dist/ui/segmented-control.d.ts +25 -0
  668. package/dist/ui/segmented-control.d.ts.map +1 -0
  669. package/dist/ui/segmented-control.js +22 -0
  670. package/dist/ui/segmented-control.js.map +1 -0
  671. package/dist/ui/settings-labels.d.ts +33 -0
  672. package/dist/ui/settings-labels.d.ts.map +1 -0
  673. package/dist/ui/settings-labels.js +50 -0
  674. package/dist/ui/settings-labels.js.map +1 -0
  675. package/dist/ui/settings-layout.d.ts +29 -0
  676. package/dist/ui/settings-layout.d.ts.map +1 -0
  677. package/dist/ui/settings-layout.js +49 -0
  678. package/dist/ui/settings-layout.js.map +1 -0
  679. package/dist/ui/settings-layout.test.d.ts +2 -0
  680. package/dist/ui/settings-layout.test.d.ts.map +1 -0
  681. package/dist/ui/settings-layout.test.js +73 -0
  682. package/dist/ui/settings-layout.test.js.map +1 -0
  683. package/dist/ui/settings.d.ts +47 -0
  684. package/dist/ui/settings.d.ts.map +1 -0
  685. package/dist/ui/settings.js +48 -0
  686. package/dist/ui/settings.js.map +1 -0
  687. package/dist/ui/settings.test.d.ts +2 -0
  688. package/dist/ui/settings.test.d.ts.map +1 -0
  689. package/dist/ui/settings.test.js +38 -0
  690. package/dist/ui/settings.test.js.map +1 -0
  691. package/dist/ui/shell-host.d.ts +46 -0
  692. package/dist/ui/shell-host.d.ts.map +1 -0
  693. package/dist/ui/shell-host.js +56 -0
  694. package/dist/ui/shell-host.js.map +1 -0
  695. package/dist/ui/shell-settings.d.ts +31 -0
  696. package/dist/ui/shell-settings.d.ts.map +1 -0
  697. package/dist/ui/shell-settings.js +97 -0
  698. package/dist/ui/shell-settings.js.map +1 -0
  699. package/dist/ui/shell-settings.test.d.ts +2 -0
  700. package/dist/ui/shell-settings.test.d.ts.map +1 -0
  701. package/dist/ui/shell-settings.test.js +108 -0
  702. package/dist/ui/shell-settings.test.js.map +1 -0
  703. package/dist/ui/shell-widgets.d.ts +14 -0
  704. package/dist/ui/shell-widgets.d.ts.map +1 -0
  705. package/dist/ui/shell-widgets.js +18 -0
  706. package/dist/ui/shell-widgets.js.map +1 -0
  707. package/dist/ui/table.d.ts +61 -0
  708. package/dist/ui/table.d.ts.map +1 -0
  709. package/dist/ui/table.js +43 -0
  710. package/dist/ui/table.js.map +1 -0
  711. package/dist/ui/tone-components.test.d.ts +2 -0
  712. package/dist/ui/tone-components.test.d.ts.map +1 -0
  713. package/dist/ui/tone-components.test.js +145 -0
  714. package/dist/ui/tone-components.test.js.map +1 -0
  715. package/dist/ui/tone-contrast.test.d.ts +2 -0
  716. package/dist/ui/tone-contrast.test.d.ts.map +1 -0
  717. package/dist/ui/tone-contrast.test.js +66 -0
  718. package/dist/ui/tone-contrast.test.js.map +1 -0
  719. package/dist/ui/toolkit-overlap.test.d.ts +2 -0
  720. package/dist/ui/toolkit-overlap.test.d.ts.map +1 -0
  721. package/dist/ui/toolkit-overlap.test.js +86 -0
  722. package/dist/ui/toolkit-overlap.test.js.map +1 -0
  723. package/dist/ui/use-apply-theme.d.ts +11 -0
  724. package/dist/ui/use-apply-theme.d.ts.map +1 -0
  725. package/dist/ui/use-apply-theme.js +37 -0
  726. package/dist/ui/use-apply-theme.js.map +1 -0
  727. package/dist/ui/use-apply-theme.test.d.ts +2 -0
  728. package/dist/ui/use-apply-theme.test.d.ts.map +1 -0
  729. package/dist/ui/use-apply-theme.test.js +102 -0
  730. package/dist/ui/use-apply-theme.test.js.map +1 -0
  731. package/dist/ui/use-bpmn-viewer.d.ts +135 -0
  732. package/dist/ui/use-bpmn-viewer.d.ts.map +1 -0
  733. package/dist/ui/use-bpmn-viewer.js +257 -0
  734. package/dist/ui/use-bpmn-viewer.js.map +1 -0
  735. package/dist/ui/use-bpmn-viewer.test.d.ts +2 -0
  736. package/dist/ui/use-bpmn-viewer.test.d.ts.map +1 -0
  737. package/dist/ui/use-bpmn-viewer.test.js +239 -0
  738. package/dist/ui/use-bpmn-viewer.test.js.map +1 -0
  739. package/dist/ui/use-detail-view.d.ts +49 -0
  740. package/dist/ui/use-detail-view.d.ts.map +1 -0
  741. package/dist/ui/use-detail-view.js +52 -0
  742. package/dist/ui/use-detail-view.js.map +1 -0
  743. package/dist/ui/use-detail-view.test.d.ts +2 -0
  744. package/dist/ui/use-detail-view.test.d.ts.map +1 -0
  745. package/dist/ui/use-detail-view.test.js +178 -0
  746. package/dist/ui/use-detail-view.test.js.map +1 -0
  747. package/dist/ui/use-paged-list-view.d.ts +48 -0
  748. package/dist/ui/use-paged-list-view.d.ts.map +1 -0
  749. package/dist/ui/use-paged-list-view.js +41 -0
  750. package/dist/ui/use-paged-list-view.js.map +1 -0
  751. package/dist/ui/use-paged-list-view.test.d.ts +2 -0
  752. package/dist/ui/use-paged-list-view.test.d.ts.map +1 -0
  753. package/dist/ui/use-paged-list-view.test.js +136 -0
  754. package/dist/ui/use-paged-list-view.test.js.map +1 -0
  755. package/dist/ui/use-paged-view-data.d.ts +103 -0
  756. package/dist/ui/use-paged-view-data.d.ts.map +1 -0
  757. package/dist/ui/use-paged-view-data.js +173 -0
  758. package/dist/ui/use-paged-view-data.js.map +1 -0
  759. package/dist/ui/use-paged-view-data.seeded.test.d.ts +2 -0
  760. package/dist/ui/use-paged-view-data.seeded.test.d.ts.map +1 -0
  761. package/dist/ui/use-paged-view-data.seeded.test.js +144 -0
  762. package/dist/ui/use-paged-view-data.seeded.test.js.map +1 -0
  763. package/dist/ui/use-paged-view-data.test.d.ts +2 -0
  764. package/dist/ui/use-paged-view-data.test.d.ts.map +1 -0
  765. package/dist/ui/use-paged-view-data.test.js +330 -0
  766. package/dist/ui/use-paged-view-data.test.js.map +1 -0
  767. package/dist/ui/use-reset-on-change.d.ts +22 -0
  768. package/dist/ui/use-reset-on-change.d.ts.map +1 -0
  769. package/dist/ui/use-reset-on-change.js +29 -0
  770. package/dist/ui/use-reset-on-change.js.map +1 -0
  771. package/dist/ui/use-reset-on-change.test.d.ts +2 -0
  772. package/dist/ui/use-reset-on-change.test.d.ts.map +1 -0
  773. package/dist/ui/use-reset-on-change.test.js +61 -0
  774. package/dist/ui/use-reset-on-change.test.js.map +1 -0
  775. package/dist/ui/use-view-data.seeded.test.d.ts +2 -0
  776. package/dist/ui/use-view-data.seeded.test.d.ts.map +1 -0
  777. package/dist/ui/use-view-data.seeded.test.js +168 -0
  778. package/dist/ui/use-view-data.seeded.test.js.map +1 -0
  779. package/dist/ui/view-data-state.d.ts +52 -0
  780. package/dist/ui/view-data-state.d.ts.map +1 -0
  781. package/dist/ui/view-data-state.js +54 -0
  782. package/dist/ui/view-data-state.js.map +1 -0
  783. package/dist/ui/view-data-state.test.d.ts +2 -0
  784. package/dist/ui/view-data-state.test.d.ts.map +1 -0
  785. package/dist/ui/view-data-state.test.js +62 -0
  786. package/dist/ui/view-data-state.test.js.map +1 -0
  787. package/dist/ui/view-meta.d.ts +70 -0
  788. package/dist/ui/view-meta.d.ts.map +1 -0
  789. package/dist/ui/view-meta.js +84 -0
  790. package/dist/ui/view-meta.js.map +1 -0
  791. package/dist/ui/view-meta.test.d.ts +2 -0
  792. package/dist/ui/view-meta.test.d.ts.map +1 -0
  793. package/dist/ui/view-meta.test.js +92 -0
  794. package/dist/ui/view-meta.test.js.map +1 -0
  795. package/dist/ui/view-refresh-state.d.ts +26 -0
  796. package/dist/ui/view-refresh-state.d.ts.map +1 -0
  797. package/dist/ui/view-refresh-state.js +15 -0
  798. package/dist/ui/view-refresh-state.js.map +1 -0
  799. package/dist/ui/widget-shell.d.ts +24 -0
  800. package/dist/ui/widget-shell.d.ts.map +1 -0
  801. package/dist/ui/widget-shell.js +50 -0
  802. package/dist/ui/widget-shell.js.map +1 -0
  803. package/dist/ui/widget-shell.test.d.ts +2 -0
  804. package/dist/ui/widget-shell.test.d.ts.map +1 -0
  805. package/dist/ui/widget-shell.test.js +41 -0
  806. package/dist/ui/widget-shell.test.js.map +1 -0
  807. package/dist/view-results.d.ts +42 -0
  808. package/dist/view-results.d.ts.map +1 -0
  809. package/dist/view-results.js +17 -0
  810. package/dist/view-results.js.map +1 -0
  811. package/dist/widget-meta-defaults.d.ts +48 -0
  812. package/dist/widget-meta-defaults.d.ts.map +1 -0
  813. package/dist/widget-meta-defaults.js +80 -0
  814. package/dist/widget-meta-defaults.js.map +1 -0
  815. package/dist/widget-meta-defaults.test.d.ts +2 -0
  816. package/dist/widget-meta-defaults.test.d.ts.map +1 -0
  817. package/dist/widget-meta-defaults.test.js +196 -0
  818. package/dist/widget-meta-defaults.test.js.map +1 -0
  819. package/dist/widget-tool-bindings.d.ts +71 -0
  820. package/dist/widget-tool-bindings.d.ts.map +1 -0
  821. package/dist/widget-tool-bindings.js +80 -0
  822. package/dist/widget-tool-bindings.js.map +1 -0
  823. package/dist/widget-tool-bindings.test.d.ts +2 -0
  824. package/dist/widget-tool-bindings.test.d.ts.map +1 -0
  825. package/dist/widget-tool-bindings.test.js +83 -0
  826. package/dist/widget-tool-bindings.test.js.map +1 -0
  827. package/dist/with-tool-errors.test.d.ts +2 -0
  828. package/dist/with-tool-errors.test.d.ts.map +1 -0
  829. package/dist/with-tool-errors.test.js +38 -0
  830. package/dist/with-tool-errors.test.js.map +1 -0
  831. package/package.json +113 -3
@@ -0,0 +1,42 @@
1
+ /**
2
+ * `MCP_OAUTH` → the OAuth provider a composition root installs. Every root —
3
+ * the stock server, the composed-server template, a customer fork — wires it
4
+ * the SAME way:
5
+ *
6
+ * ```ts
7
+ * const oauth = oauthFromEnv({ env, label }) // boot-time parse + warning
8
+ * createComposedServer({ …, oauth }) // installs it, decides toolsets
9
+ * const APP_ENV_VARS = [...OAUTH_ENV_VARS, …] // known to the typo warner
10
+ * ```
11
+ *
12
+ * With a provider the server is an OAuth resource server: mcp-use validates
13
+ * the bearer token on every `/mcp` request (401 + `WWW-Authenticate`
14
+ * otherwise) against the IdP's JWKS, checks the RFC 8707 resource audience
15
+ * (the server's canonical MCP URL, `MCP_URL`) and serves the `.well-known`
16
+ * discovery metadata; the server never mints tokens. It is also the ONLY
17
+ * caller-identity source: per-user settings and dashboards exist only with it
18
+ * (`resolveProfileKey`), and an installed provider raises every module's
19
+ * no-suffix toolset from the read-only floor to its standard set. A gateway
20
+ * that terminates auth in front of the server is invisible here — identity
21
+ * reaches the server only through this OAuth.
22
+ *
23
+ * Server path only (`@miragon/pulse-widget-shell/server`).
24
+ */
25
+ import type { OAuthProvider } from "mcp-use/oauth";
26
+ /** The env vars {@link oauthFromEnv} reads — spread them into the root's known-var list. */
27
+ export declare const OAUTH_ENV_VARS: readonly ["MCP_OAUTH"];
28
+ export interface OAuthFromEnvOptions {
29
+ /** Defaults to `process.env`. */
30
+ env?: NodeJS.ProcessEnv;
31
+ /** Log prefix, e.g. `pulse`. */
32
+ label?: string;
33
+ }
34
+ /**
35
+ * Builds the mcp-use OAuth provider from `MCP_OAUTH` (`keycloak` or `auth0`).
36
+ * Unset or blank → `undefined` plus ONE boot warning naming what that means:
37
+ * an unauthenticated endpoint, read-only defaults, and no saved settings.
38
+ * Invalid JSON, schema violations and stray `MCP_USE_OAUTH_*` fallbacks throw:
39
+ * a deployment that asked for auth must never silently come up without it.
40
+ */
41
+ export declare function oauthFromEnv(options?: OAuthFromEnvOptions): OAuthProvider<unknown> | undefined;
42
+ //# sourceMappingURL=oauth-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-env.d.ts","sourceRoot":"","sources":["../src/oauth-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAKlD,4FAA4F;AAC5F,eAAO,MAAM,cAAc,wBAAyB,CAAA;AA2BpD,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAaD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,GAAE,mBAAwB,GAChC,aAAa,CAAC,OAAO,CAAC,GAAG,SAAS,CA2CpC"}
@@ -0,0 +1,78 @@
1
+ import { oauthAuth0Provider } from "mcp-use/oauth/auth0";
2
+ import { oauthKeycloakProvider } from "mcp-use/oauth/keycloak";
3
+ import { z } from "zod";
4
+ /** The env vars {@link oauthFromEnv} reads — spread them into the root's known-var list. */
5
+ export const OAUTH_ENV_VARS = ["MCP_OAUTH"];
6
+ const keycloakSchema = z.strictObject({
7
+ provider: z.literal("keycloak"),
8
+ serverUrl: z.url(),
9
+ realm: z.string().min(1),
10
+ });
11
+ const auth0Schema = z.strictObject({
12
+ provider: z.literal("auth0"),
13
+ // Bare hostname, no scheme/path — the form mcp-use's provider builds the
14
+ // issuer from; a scheme-prefixed value would only 401 at the first call.
15
+ domain: z
16
+ .string()
17
+ .min(1)
18
+ .refine((d) => !d.includes("://") && !d.includes("/"), {
19
+ message: 'domain must be a bare hostname, e.g. "tenant.eu.auth0.com" (no scheme, no path)',
20
+ }),
21
+ });
22
+ /**
23
+ * Strict on purpose: a key the server does not honor (an `audience`, a
24
+ * client secret) fails the boot instead of being dropped silently — a
25
+ * deployment that asked for a check must never come up without it.
26
+ */
27
+ const oauthConfigSchema = z.discriminatedUnion("provider", [keycloakSchema, auth0Schema]);
28
+ /**
29
+ * The provider in the `unknown` user slot `createComposedServer` takes. Since
30
+ * mcp-use 2.7 the provider's optional `setup(host)` hook takes the user type
31
+ * in parameter position, which makes `OAuthProvider<TUser>` invariant — a
32
+ * Keycloak- or Auth0-typed provider no longer widens on its own. Sound: every
33
+ * user the host hands out went through the provider's own `mapAuthInfo`, and
34
+ * every consumer reads it structurally (`resolveCaller`).
35
+ */
36
+ const withUnknownUser = (provider) => provider;
37
+ /**
38
+ * Builds the mcp-use OAuth provider from `MCP_OAUTH` (`keycloak` or `auth0`).
39
+ * Unset or blank → `undefined` plus ONE boot warning naming what that means:
40
+ * an unauthenticated endpoint, read-only defaults, and no saved settings.
41
+ * Invalid JSON, schema violations and stray `MCP_USE_OAUTH_*` fallbacks throw:
42
+ * a deployment that asked for auth must never silently come up without it.
43
+ */
44
+ export function oauthFromEnv(options = {}) {
45
+ const { env = process.env, label = "oauth" } = options;
46
+ const raw = env.MCP_OAUTH?.trim();
47
+ if (!raw) {
48
+ console.warn(`[${label}] MCP_OAUTH is unset — there is no caller identity: modules without an explicit toolset run read-only, and user settings cannot be saved. Set MCP_OAUTH, or widen with MCP_ACTIVE_MODULES=<module>:<toolset> (anyone who reaches this port gets that surface).`);
49
+ return undefined;
50
+ }
51
+ let json;
52
+ try {
53
+ json = JSON.parse(raw);
54
+ }
55
+ catch {
56
+ throw new Error(`MCP_OAUTH is not valid JSON. Expected e.g. {"provider":"keycloak","serverUrl":"https://kc.example.com","realm":"my-realm"}`);
57
+ }
58
+ const parsed = oauthConfigSchema.safeParse(json);
59
+ if (!parsed.success) {
60
+ throw new Error(`MCP_OAUTH is invalid:\n${z.prettifyError(parsed.error)}`);
61
+ }
62
+ // mcp-use's provider factories silently fall back to their own
63
+ // MCP_USE_OAUTH_* variables for omitted fields — read from `process.env`,
64
+ // whatever `env` this call was handed. MCP_OAUTH is the single config
65
+ // surface: fail fast on strays.
66
+ const strays = Object.keys(process.env).filter((k) => k.startsWith("MCP_USE_OAUTH_"));
67
+ if (strays.length > 0) {
68
+ throw new Error(`MCP_OAUTH is the single OAuth config surface — unset ${strays.join(", ")} (mcp-use would silently use them as fallbacks for omitted fields).`);
69
+ }
70
+ const config = parsed.data;
71
+ switch (config.provider) {
72
+ case "keycloak":
73
+ return withUnknownUser(oauthKeycloakProvider({ serverUrl: config.serverUrl, realm: config.realm }));
74
+ case "auth0":
75
+ return withUnknownUser(oauthAuth0Provider({ domain: config.domain }));
76
+ }
77
+ }
78
+ //# sourceMappingURL=oauth-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-env.js","sourceRoot":"","sources":["../src/oauth-env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=oauth-env.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-env.test.d.ts","sourceRoot":"","sources":["../src/oauth-env.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { OAUTH_ENV_VARS, oauthFromEnv } from "./oauth-env.js";
3
+ const KEYCLOAK = { provider: "keycloak", serverUrl: "https://kc.example.com", realm: "platform" };
4
+ /** `oauthFromEnv` over a given `MCP_OAUTH` value (an object is JSON-encoded). */
5
+ const fromEnv = (raw) => oauthFromEnv({
6
+ env: { MCP_OAUTH: typeof raw === "object" ? JSON.stringify(raw) : raw },
7
+ label: "test-root",
8
+ });
9
+ afterEach(() => {
10
+ vi.unstubAllEnvs();
11
+ vi.restoreAllMocks();
12
+ });
13
+ describe("oauthFromEnv", () => {
14
+ it("names the one env var it reads", () => {
15
+ expect(OAUTH_ENV_VARS).toEqual(["MCP_OAUTH"]);
16
+ });
17
+ it("installs nothing when MCP_OAUTH is unset or blank — and says what that means, once", () => {
18
+ const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
19
+ for (const raw of [undefined, "", " "])
20
+ expect(fromEnv(raw)).toBeUndefined();
21
+ expect(warn).toHaveBeenCalledTimes(3);
22
+ expect(warn.mock.calls[0][0]).toMatch(/^\[test-root\] MCP_OAUTH is unset — there is no caller identity/);
23
+ expect(warn.mock.calls[0][0]).toContain("user settings cannot be saved");
24
+ });
25
+ it("reads process.env by default", () => {
26
+ vi.spyOn(console, "warn").mockImplementation(() => { });
27
+ vi.stubEnv("MCP_OAUTH", JSON.stringify(KEYCLOAK));
28
+ expect(oauthFromEnv()?.oauthMetadata.issuer).toBe("https://kc.example.com/realms/platform");
29
+ });
30
+ // Exact assertions on purpose: the Keycloak factory interpolates
31
+ // serverUrl/realm, so swapped arguments would still construct — only exact
32
+ // endpoint values catch that.
33
+ it("builds a Keycloak provider with the exact realm endpoints", () => {
34
+ const provider = fromEnv(KEYCLOAK);
35
+ expect(provider?.oauthMetadata.issuer).toBe("https://kc.example.com/realms/platform");
36
+ expect(provider?.oauthMetadata.authorization_endpoint).toBe("https://kc.example.com/realms/platform/protocol/openid-connect/auth");
37
+ expect(provider?.oauthMetadata.token_endpoint).toBe("https://kc.example.com/realms/platform/protocol/openid-connect/token");
38
+ });
39
+ it("maps the token subject as the caller id (`user.id`, the spelling resolveCaller reads)", () => {
40
+ const extra = fromEnv(KEYCLOAK).mapAuthInfo({
41
+ token: "t",
42
+ clientId: "c",
43
+ scopes: [],
44
+ extra: { payload: { sub: "user-123", realm_access: { roles: [] } } },
45
+ });
46
+ expect(extra.user).toMatchObject({ id: "user-123" });
47
+ expect(extra.user).not.toHaveProperty("userId");
48
+ });
49
+ it("builds an Auth0 provider from the bare tenant domain", () => {
50
+ const provider = fromEnv({ provider: "auth0", domain: "tenant.auth0.com" });
51
+ expect(provider?.oauthMetadata.issuer).toBe("https://tenant.auth0.com/");
52
+ expect(provider?.oauthMetadata.authorization_endpoint).toBe("https://tenant.auth0.com/authorize");
53
+ expect(provider?.oauthMetadata.token_endpoint).toBe("https://tenant.auth0.com/oauth/token");
54
+ });
55
+ it("rejects a scheme-prefixed auth0 domain at boot instead of 401ing later", () => {
56
+ expect(() => fromEnv({ provider: "auth0", domain: "https://tenant.auth0.com" })).toThrow(/bare hostname/);
57
+ expect(() => fromEnv({ provider: "auth0", domain: "tenant.auth0.com/x" })).toThrow(/bare hostname/);
58
+ });
59
+ it("rejects invalid JSON with an actionable message", () => {
60
+ expect(() => fromEnv("keycloak")).toThrow(/MCP_OAUTH is not valid JSON/);
61
+ });
62
+ it("rejects unknown providers, missing fields and keys it would not honor", () => {
63
+ expect(() => fromEnv({ provider: "okta" })).toThrow(/MCP_OAUTH is invalid/);
64
+ expect(() => fromEnv({ provider: "oidc", issuer: "https://idp.example.com" })).toThrow(/MCP_OAUTH is invalid/);
65
+ expect(() => fromEnv({ provider: "keycloak", serverUrl: "https://kc.example.com" })).toThrow(/realm/);
66
+ expect(() => fromEnv({ ...KEYCLOAK, serverUrl: "not a url" })).toThrow(/serverUrl/);
67
+ expect(() => fromEnv({ ...KEYCLOAK, realm: "" })).toThrow(/realm/);
68
+ // An audience mcp-use 2 cannot check must fail loudly, not be dropped.
69
+ expect(() => fromEnv({ ...KEYCLOAK, audience: "https://mcp.example.com/mcp" })).toThrow(/audience/);
70
+ });
71
+ it("fails fast when stray MCP_USE_OAUTH_* env vars could silently alter the config", () => {
72
+ vi.stubEnv("MCP_USE_OAUTH_KEYCLOAK_AUDIENCE", "https://other-api.example.com");
73
+ expect(() => fromEnv(KEYCLOAK)).toThrow(/unset MCP_USE_OAUTH_KEYCLOAK_AUDIENCE/);
74
+ });
75
+ });
76
+ //# sourceMappingURL=oauth-env.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-env.test.js","sourceRoot":"","sources":["../src/oauth-env.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type postgres from "postgres";
2
+ import type { ReadinessCheck } from "./health.js";
3
+ /**
4
+ * The Postgres infrastructure shared by every store in this package: the one
5
+ * place a postgres.js client is constructed, plus the migration runner that
6
+ * executes the DDL each store exports (`PROFILE_STORE_MIGRATIONS`,
7
+ * `DASHBOARD_STORE_MIGRATIONS`). A composed server that persists to Postgres
8
+ * needs both — exporting the migration arrays without the runner would force
9
+ * every consumer to copy it.
10
+ */
11
+ /**
12
+ * Connections are lazy (opened on first query), but a root that persists to
13
+ * Postgres runs `runMigrations` before it listens (the app's `initRuntime`),
14
+ * so an unreachable database fails the
15
+ * boot once the 10 s `connect_timeout` runs out (under a restart policy: a
16
+ * restart loop until the database answers). After boot, reconnects after a
17
+ * scale-to-zero wake need no extra handling.
18
+ *
19
+ * The driver is loaded through a DYNAMIC import and every other reference in
20
+ * this package is `import type` — deliberately, and the reason this function
21
+ * is async: `postgres` is an OPTIONAL peer dependency, but `/server`
22
+ * re-exports this module, so a static import would execute on every consumer's
23
+ * boot and crash the ones that persist to disk or memory (the composed-server
24
+ * template installs no `postgres`) with ERR_MODULE_NOT_FOUND. Never "simplify"
25
+ * it back to a top-level import.
26
+ */
27
+ export declare function createSql(databaseUrl: string): Promise<postgres.Sql>;
28
+ /**
29
+ * The `/health/ready` check for a postgres.js client: one `SELECT 1` round
30
+ * trip through the pool, so a database that goes away after boot turns the
31
+ * server not ready instead of failing the next save. Lives next to `createSql` so
32
+ * every composition root that persists to Postgres wires the same probe.
33
+ */
34
+ export declare function postgresReadinessCheck(sql: postgres.Sql): ReadinessCheck;
35
+ /**
36
+ * One named, append-only migration. Statements are plain SQL strings compiled
37
+ * into the bundle — .sql files would not survive a `pnpm deploy` + dist-copy
38
+ * packaging. Store owners export their own migrations; the composition root
39
+ * concatenates them in a fixed order.
40
+ *
41
+ * `name` is the identity recorded in `schema_migrations`, so it is a permanent
42
+ * key, not a label: renaming one re-runs it against every existing database
43
+ * (harmless only because the shipped DDL is `IF NOT EXISTS`), and reusing a
44
+ * name for different DDL silently skips it. Numeric prefixes are ordering
45
+ * hints for readers only — the array order decides.
46
+ */
47
+ export interface Migration {
48
+ name: string;
49
+ statements: readonly string[];
50
+ }
51
+ /**
52
+ * Apply all not-yet-applied migrations in order, tracked by name in
53
+ * `schema_migrations`. Runs as a single transaction under
54
+ * `pg_advisory_xact_lock`, so two instances booting against the same database
55
+ * cannot interleave DDL; the lock releases with the commit. Returns the names
56
+ * that were newly applied (for boot logging).
57
+ */
58
+ export declare function runMigrations(sql: postgres.Sql, migrations: readonly Migration[]): Promise<string[]>;
59
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../src/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAW1E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,cAAc,CAIxE;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B;AAMD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnB"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The Postgres infrastructure shared by every store in this package: the one
3
+ * place a postgres.js client is constructed, plus the migration runner that
4
+ * executes the DDL each store exports (`PROFILE_STORE_MIGRATIONS`,
5
+ * `DASHBOARD_STORE_MIGRATIONS`). A composed server that persists to Postgres
6
+ * needs both — exporting the migration arrays without the runner would force
7
+ * every consumer to copy it.
8
+ */
9
+ /**
10
+ * Connections are lazy (opened on first query), but a root that persists to
11
+ * Postgres runs `runMigrations` before it listens (the app's `initRuntime`),
12
+ * so an unreachable database fails the
13
+ * boot once the 10 s `connect_timeout` runs out (under a restart policy: a
14
+ * restart loop until the database answers). After boot, reconnects after a
15
+ * scale-to-zero wake need no extra handling.
16
+ *
17
+ * The driver is loaded through a DYNAMIC import and every other reference in
18
+ * this package is `import type` — deliberately, and the reason this function
19
+ * is async: `postgres` is an OPTIONAL peer dependency, but `/server`
20
+ * re-exports this module, so a static import would execute on every consumer's
21
+ * boot and crash the ones that persist to disk or memory (the composed-server
22
+ * template installs no `postgres`) with ERR_MODULE_NOT_FOUND. Never "simplify"
23
+ * it back to a top-level import.
24
+ */
25
+ export async function createSql(databaseUrl) {
26
+ const { default: postgres } = await import("postgres");
27
+ return postgres(databaseUrl, {
28
+ // A handful of connections is plenty: every store call is a single short
29
+ // statement or one SELECT…FOR UPDATE transaction.
30
+ max: 5,
31
+ idle_timeout: 30,
32
+ connect_timeout: 10,
33
+ // NOTICEs (e.g. from CREATE TABLE IF NOT EXISTS) are noise on the server log.
34
+ onnotice: () => { },
35
+ });
36
+ }
37
+ /**
38
+ * The `/health/ready` check for a postgres.js client: one `SELECT 1` round
39
+ * trip through the pool, so a database that goes away after boot turns the
40
+ * server not ready instead of failing the next save. Lives next to `createSql` so
41
+ * every composition root that persists to Postgres wires the same probe.
42
+ */
43
+ export function postgresReadinessCheck(sql) {
44
+ return async () => {
45
+ await sql `SELECT 1`;
46
+ };
47
+ }
48
+ // Arbitrary but stable app-wide key ("mira" in hex) for the boot-time advisory
49
+ // lock — it serializes concurrently booting instances, not tables.
50
+ const MIGRATION_LOCK_KEY = 0x6d697261;
51
+ /**
52
+ * Apply all not-yet-applied migrations in order, tracked by name in
53
+ * `schema_migrations`. Runs as a single transaction under
54
+ * `pg_advisory_xact_lock`, so two instances booting against the same database
55
+ * cannot interleave DDL; the lock releases with the commit. Returns the names
56
+ * that were newly applied (for boot logging).
57
+ */
58
+ export async function runMigrations(sql, migrations) {
59
+ return await sql.begin(async (tx) => {
60
+ await tx `SELECT pg_advisory_xact_lock(${MIGRATION_LOCK_KEY})`;
61
+ await tx.unsafe(`CREATE TABLE IF NOT EXISTS schema_migrations (
62
+ name TEXT PRIMARY KEY,
63
+ applied_at TIMESTAMPTZ NOT NULL DEFAULT now()
64
+ )`);
65
+ const appliedRows = await tx `SELECT name FROM schema_migrations`;
66
+ const applied = new Set(appliedRows.map((row) => row.name));
67
+ const newlyApplied = [];
68
+ for (const migration of migrations) {
69
+ if (applied.has(migration.name))
70
+ continue;
71
+ for (const statement of migration.statements) {
72
+ await tx.unsafe(statement);
73
+ }
74
+ await tx `INSERT INTO schema_migrations (name) VALUES (${migration.name})`;
75
+ newlyApplied.push(migration.name);
76
+ }
77
+ return newlyApplied;
78
+ });
79
+ }
80
+ //# sourceMappingURL=postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../src/postgres.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,WAAmB;IACjD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;IACtD,OAAO,QAAQ,CAAC,WAAW,EAAE;QAC3B,yEAAyE;QACzE,kDAAkD;QAClD,GAAG,EAAE,CAAC;QACN,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;QACnB,8EAA8E;QAC9E,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;KACnB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAiB;IACtD,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,GAAG,CAAA,UAAU,CAAA;IACrB,CAAC,CAAA;AACH,CAAC;AAmBD,+EAA+E;AAC/E,mEAAmE;AACnE,MAAM,kBAAkB,GAAG,UAAU,CAAA;AAErC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAiB,EACjB,UAAgC;IAEhC,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAClC,MAAM,EAAE,CAAA,gCAAgC,kBAAkB,GAAG,CAAA;QAC7D,MAAM,EAAE,CAAC,MAAM,CACb;;;QAGE,CACH,CAAA;QACD,MAAM,WAAW,GAAG,MAAM,EAAE,CAAoB,oCAAoC,CAAA;QACpF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC3D,MAAM,YAAY,GAAa,EAAE,CAAA;QACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACzC,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC7C,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC5B,CAAC;YACD,MAAM,EAAE,CAAA,gDAAgD,SAAS,CAAC,IAAI,GAAG,CAAA;YACzE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC;QACD,OAAO,YAAY,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Advisory profile reads — for paths that only PREFER the profile (the
3
+ * summary locale, a saved default engine) and must keep working without it.
4
+ *
5
+ * With `DATABASE_URL` the profile store is a network call, and a preferences
6
+ * outage must never fail a tool whose data comes from the engine or
7
+ * Prometheus — nor put the driver's error text (internal host:port) into a
8
+ * tool result. Save paths and the settings views stay strict: a write must
9
+ * fail visibly.
10
+ */
11
+ /**
12
+ * Read `key`'s record, degrading every failure to "no record": no key, or a
13
+ * store that throws (logged once per outage with a sanitized line, and once
14
+ * when it recovers). Never throws.
15
+ */
16
+ export declare function readProfileAdvisory<T>(store: {
17
+ get(key: string): Promise<T | undefined>;
18
+ }, key: string | undefined): Promise<T | undefined>;
19
+ //# sourceMappingURL=profile-advisory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-advisory.d.ts","sourceRoot":"","sources":["../src/profile-advisory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,KAAK,EAAE;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;CAAE,EACnD,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAiBxB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Advisory profile reads — for paths that only PREFER the profile (the
3
+ * summary locale, a saved default engine) and must keep working without it.
4
+ *
5
+ * With `DATABASE_URL` the profile store is a network call, and a preferences
6
+ * outage must never fail a tool whose data comes from the engine or
7
+ * Prometheus — nor put the driver's error text (internal host:port) into a
8
+ * tool result. Save paths and the settings views stay strict: a write must
9
+ * fail visibly.
10
+ */
11
+ /** Stores currently failing, so an outage logs once instead of once per call. */
12
+ const failingStores = new WeakSet();
13
+ /**
14
+ * The error's class and code only — never its message: driver messages carry
15
+ * the database host:port (and can carry user names), and this line must be
16
+ * safe for any log sink. The readiness probe logs the full error for
17
+ * operators.
18
+ */
19
+ function describeStoreError(err) {
20
+ if (!(err instanceof Error))
21
+ return typeof err;
22
+ const code = err.code;
23
+ return typeof code === "string" || typeof code === "number" ? `${err.name} ${code}` : err.name;
24
+ }
25
+ /**
26
+ * Read `key`'s record, degrading every failure to "no record": no key, or a
27
+ * store that throws (logged once per outage with a sanitized line, and once
28
+ * when it recovers). Never throws.
29
+ */
30
+ export async function readProfileAdvisory(store, key) {
31
+ if (key === undefined)
32
+ return undefined;
33
+ try {
34
+ const record = await store.get(key);
35
+ if (failingStores.delete(store)) {
36
+ console.warn("[profile-store] reachable again — saved preferences apply again");
37
+ }
38
+ return record;
39
+ }
40
+ catch (err) {
41
+ if (!failingStores.has(store)) {
42
+ failingStores.add(store);
43
+ console.warn(`[profile-store] read failed (${describeStoreError(err)}) — preference lookups fall back to defaults until the store recovers`);
44
+ }
45
+ return undefined;
46
+ }
47
+ }
48
+ //# sourceMappingURL=profile-advisory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-advisory.js","sourceRoot":"","sources":["../src/profile-advisory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iFAAiF;AACjF,MAAM,aAAa,GAAG,IAAI,OAAO,EAAU,CAAA;AAE3C;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,GAAY;IACtC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,OAAO,GAAG,CAAA;IAC9C,MAAM,IAAI,GAAI,GAA0B,CAAC,IAAI,CAAA;IAC7C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;AAChG,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAmD,EACnD,GAAuB;IAEvB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;QACjF,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACxB,OAAO,CAAC,IAAI,CACV,gCAAgC,kBAAkB,CAAC,GAAG,CAAC,uEAAuE,CAC/H,CAAA;QACH,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=profile-advisory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-advisory.test.d.ts","sourceRoot":"","sources":["../src/profile-advisory.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { readProfileAdvisory } from "./profile-advisory.js";
3
+ /** A driver-shaped outage: the message carries the database host:port. */
4
+ function driverError() {
5
+ return Object.assign(new Error("connect ECONNREFUSED 10.1.2.3:5432"), { code: "ECONNREFUSED" });
6
+ }
7
+ afterEach(() => {
8
+ vi.restoreAllMocks();
9
+ });
10
+ describe("readProfileAdvisory", () => {
11
+ it("returns the stored record", async () => {
12
+ const store = { get: (key) => Promise.resolve({ key }) };
13
+ expect(await readProfileAdvisory(store, "user-1")).toEqual({ key: "user-1" });
14
+ });
15
+ it("skips the store entirely without a key", async () => {
16
+ const get = vi.fn(() => Promise.resolve({}));
17
+ expect(await readProfileAdvisory({ get }, undefined)).toBeUndefined();
18
+ expect(get).not.toHaveBeenCalled();
19
+ });
20
+ it("degrades an outage to 'no record' and logs ONE sanitized line per outage", async () => {
21
+ const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
22
+ let down = true;
23
+ const store = {
24
+ get: () => (down ? Promise.reject(driverError()) : Promise.resolve({ language: "de" })),
25
+ };
26
+ expect(await readProfileAdvisory(store, "user-1")).toBeUndefined();
27
+ expect(await readProfileAdvisory(store, "user-1")).toBeUndefined();
28
+ expect(warn).toHaveBeenCalledTimes(1);
29
+ const line = String(warn.mock.calls[0][0]);
30
+ expect(line).toContain("Error ECONNREFUSED");
31
+ expect(line).not.toMatch(/10\.1\.2\.3|5432/);
32
+ // Recovery is announced once, and the next outage logs again.
33
+ down = false;
34
+ expect(await readProfileAdvisory(store, "user-1")).toEqual({ language: "de" });
35
+ expect(await readProfileAdvisory(store, "user-1")).toEqual({ language: "de" });
36
+ expect(warn).toHaveBeenCalledTimes(2);
37
+ expect(String(warn.mock.calls[1][0])).toContain("reachable again");
38
+ down = true;
39
+ await readProfileAdvisory(store, "user-1");
40
+ expect(warn).toHaveBeenCalledTimes(3);
41
+ });
42
+ it("names only the error class (or type) when there is no code", async () => {
43
+ const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
44
+ await readProfileAdvisory({ get: () => Promise.reject(new TypeError("at 10.1.2.3")) }, "k");
45
+ // A driver rejecting with a bare string (typed as Error only to satisfy the lint).
46
+ const bare = "10.1.2.3:5432";
47
+ await readProfileAdvisory({ get: () => Promise.reject(bare) }, "k");
48
+ expect(String(warn.mock.calls[0][0])).toContain("(TypeError)");
49
+ expect(String(warn.mock.calls[1][0])).toContain("(string)");
50
+ expect(warn.mock.calls.flat().join(" ")).not.toContain("10.1.2.3");
51
+ });
52
+ });
53
+ //# sourceMappingURL=profile-advisory.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-advisory.test.js","sourceRoot":"","sources":["../src/profile-advisory.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Enumerated profile option sets, kept in a zod-free module so widget code can
3
+ * import the runtime arrays (for select/checkbox option lists) without pulling
4
+ * zod into the UI bundle. `profile-record.ts` builds its `z.enum(...)`s from
5
+ * these, so the two never drift. Exported from BOTH `/server` and `/widgets`.
6
+ */
7
+ /** UI + summary languages. Extend deliberately — every locale needs a catalog. */
8
+ export declare const LOCALES: readonly ["en", "de"];
9
+ export type Locale = (typeof LOCALES)[number];
10
+ /**
11
+ * Language preference: an explicit locale, or `system` — follow the host's
12
+ * locale (`hostContext.locale`, normalized to a supported language), then
13
+ * English. Server-side summaries have no host locale, so `system` reads as
14
+ * English there (`explicitLocale(...) ?? "en"`).
15
+ */
16
+ export declare const LANGUAGES: readonly ["system", "en", "de"];
17
+ export type LanguagePref = (typeof LANGUAGES)[number];
18
+ /**
19
+ * The supported locale a language preference names explicitly — `undefined`
20
+ * for `system`, a missing value, or anything this build ships no catalog for.
21
+ * Loose input on purpose: profile feeds arrive untyped.
22
+ */
23
+ export declare function explicitLocale(language: string | undefined): Locale | undefined;
24
+ /**
25
+ * Bumped when the persisted profile shape changes in a migration-relevant way.
26
+ * Every bump needs a matching entry in `PROFILE_MIGRATIONS`
27
+ * (`profile-migrations.ts`) so stored records upgrade on read instead of
28
+ * losing their preferences.
29
+ *
30
+ * v3 is the migration baseline (`PROFILE_MIGRATION_BASELINE`): a
31
+ * connector-free record — language, `modules.<module>` slices + metadata —
32
+ * owned by this core package. The theme preference it once carried is gone
33
+ * (widgets follow the host's theme); a stored `theme` key stays inert in the
34
+ * raw document, so it needed no migration.
35
+ */
36
+ export declare const PROFILE_SCHEMA_VERSION = 3;
37
+ //# sourceMappingURL=profile-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-constants.d.ts","sourceRoot":"","sources":["../src/profile-constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kFAAkF;AAClF,eAAO,MAAM,OAAO,uBAAwB,CAAA;AAC5C,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,iCAAkC,CAAA;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAErD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE/E;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Enumerated profile option sets, kept in a zod-free module so widget code can
3
+ * import the runtime arrays (for select/checkbox option lists) without pulling
4
+ * zod into the UI bundle. `profile-record.ts` builds its `z.enum(...)`s from
5
+ * these, so the two never drift. Exported from BOTH `/server` and `/widgets`.
6
+ */
7
+ /** UI + summary languages. Extend deliberately — every locale needs a catalog. */
8
+ export const LOCALES = ["en", "de"];
9
+ /**
10
+ * Language preference: an explicit locale, or `system` — follow the host's
11
+ * locale (`hostContext.locale`, normalized to a supported language), then
12
+ * English. Server-side summaries have no host locale, so `system` reads as
13
+ * English there (`explicitLocale(...) ?? "en"`).
14
+ */
15
+ export const LANGUAGES = ["system", ...LOCALES];
16
+ /**
17
+ * The supported locale a language preference names explicitly — `undefined`
18
+ * for `system`, a missing value, or anything this build ships no catalog for.
19
+ * Loose input on purpose: profile feeds arrive untyped.
20
+ */
21
+ export function explicitLocale(language) {
22
+ return LOCALES.find((locale) => locale === language);
23
+ }
24
+ /**
25
+ * Bumped when the persisted profile shape changes in a migration-relevant way.
26
+ * Every bump needs a matching entry in `PROFILE_MIGRATIONS`
27
+ * (`profile-migrations.ts`) so stored records upgrade on read instead of
28
+ * losing their preferences.
29
+ *
30
+ * v3 is the migration baseline (`PROFILE_MIGRATION_BASELINE`): a
31
+ * connector-free record — language, `modules.<module>` slices + metadata —
32
+ * owned by this core package. The theme preference it once carried is gone
33
+ * (widgets follow the host's theme); a stored `theme` key stays inert in the
34
+ * raw document, so it needed no migration.
35
+ */
36
+ export const PROFILE_SCHEMA_VERSION = 3;
37
+ //# sourceMappingURL=profile-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-constants.js","sourceRoot":"","sources":["../src/profile-constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kFAAkF;AAClF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAA;AAG5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAU,CAAA;AAGxD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAA4B;IACzD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAA;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA"}