@miragon/pulse-widget-shell 0.0.0-stage → 0.22.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 +45 -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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Miragon GmbH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,165 @@
1
- # Temporary Holding Version
1
+ # @miragon/pulse-widget-shell
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Shared widget plumbing for the [Pulse](../../../README.md) MCP App widgets. It is the common base
4
+ both widget modules ([`camunda7-connector`](../../connectors/camunda/camunda7-connector), [`analytics-connector`](../../connectors/analytics/analytics-connector)) build on,
5
+ so every widget gets the same data-loading, refresh and view-composition behaviour.
6
+
7
+ Published to the public npm registry as `@miragon/pulse-widget-shell`, the foundation
8
+ package customers build their own connectors and composed servers on (see the
9
+ `composed-server` template).
10
+
11
+ ## What it provides
12
+
13
+ - **`adaptDataWidget`** (`./ui`): wraps a presentational React component into a data-aware widget:
14
+ handles the initial structured-content payload, in-widget `callTool()` refresh via the `*_data`
15
+ feeds, and loading / error states. This is what keeps widgets rename-safe and refreshable.
16
+ - **View builders** (`./server`): `buildSingleWidgetView`, `buildComposedView` and
17
+ `buildDataFeedResult` (the single implementation of the app-only `*_data` feed result), the
18
+ server-side helpers that assemble a widget tool's result: a summary for the model plus the
19
+ `structuredContent` layout its view renders. The view itself is declared on the tool by
20
+ `showToolBinding` (a `view` binding; mcp-use derives the `_meta.ui` keys from it).
21
+ - **BPMN names** (`./server`): `readBpmnNames` / `parseBpmnNames`: the one rule every module
22
+ reads a model's names by, without a DOM (a process's own name, else its Modeler pool's;
23
+ character references such as `
` and `&` decoded, space folded), so two modules never
24
+ name the same process or activity differently.
25
+ - **The `shell:*` catalogue** (`./server`): `shellDefinition` + `createShellPlugin` register the
26
+ always-on generic `shell:kpi-grid` / `shell:data-table` widgets, the standard
27
+ `render-view`/builder composition targets fed via `props.dataKey`, and the settings page.
28
+ `createShellPlugin({ profileStore, allowSave })` adds the settings triple: `shell_show_settings`
29
+ (the page: the language section, then every `<module>:settings` section the host bundles),
30
+ `shell_settings_data` (what `ProfileGate` reads the language from) and `shell_save_settings`
31
+ (pass `allowSave: frameworkWritesAllowed(boot)`). Hosts spread `shellWidgets` (`./widgets`)
32
+ into their registry. Apps own no domain UI, so the catalogue lives here.
33
+ - **Shared UI primitives** (`./widgets`): what the kit adds on top of `@miragon/mcp-toolkit-ui`
34
+ (`WidgetShell`, tables, `ListTable` + `PagedRows`, the dual-mode data hooks, formatters,
35
+ hand-offs, the BPMN viewer, `useApplyTheme`, …), reused across both widget packages.
36
+ Inline in a chat a view is a card (#396): `HostDocument`'s measured fit (`InlineFitBox`,
37
+ `useInlineRows`) caps a paged list (`usePagedViewData`) and an unpaged `ListTable` to the
38
+ rows that fit the host's height budget, measured on the rendered view, with the count and
39
+ a way to the rest (fullscreen where the host offers it); the BPMN canvas stays at 320 px,
40
+ long text in `TEXT_BLOCK_FRAME`.
41
+ Layout, states and feedback: `ListTable` scrolls inside a named, keyboard-reachable region
42
+ (column priorities via `hideBelow`, the row actions pinned with `sticky`, the sorted
43
+ column marked with `sort`, heads over adjacent columns with `groups`), `IdCell`/`IdText`
44
+ show an id shortened in Geist Mono with a copy button, `NamedId` shows a process or an
45
+ element by its name with the id quiet in mono below, `countTone`/`severityTone` are the one
46
+ severity ladder for incident and job counts, `describeError` turns an engine or
47
+ transport failure into what happened and what you can do (the toolkit's `ErrorState` in
48
+ `ViewDataState`, `QueryFallback`, `useDetailView`, raw text under "Details", retry
49
+ required), `useActionFeedback` raises the toolkit's toasts after a write (an engine
50
+ refusal's own reason quoted, a write whose answer never came flagged), `ConfirmDialog`
51
+ asks before one, `TableEmptyState` has an `empty` and a `done` variant, `KometMark` /
52
+ `AppEmptyState` carry the Miragon signature on app-level surfaces only (hidden by a brand
53
+ that sets `--brand-mark-display: none`), and the BPMN canvas reads one token module
54
+ (`BPMN_TOKENS`, `BPMN_OVERLAY_CSS`) with its height from the diagram's size at the scale
55
+ bpmn-js draws it (`diagramHeight`, read from the XML's DI before the import). The
56
+ toolkit's own components and helpers (`KpiGrid`, `StatusBadge`/`LivePill`/`CountPill`,
57
+ `FilterBar`, `WidgetHeader`, `PagedListFooter`, `SectionHeading`, the `TONE_*` maps,
58
+ `resolveTone`, `MICRO_LABEL`, `cn`, `useDebouncedValue`, …) are imported from the toolkit:
59
+ the kit neither forks nor re-exports them. Status
60
+ is a tone (the toolkit's `TONE_*` maps over the `--<tone>`, `--<tone>-soft` and `--<tone>-ink` roles: a dot,
61
+ edge or icon next to black text, black text on a tint, never a coloured number), function
62
+ icons are Lucide via `Icon`, and numbers, percentages, periods and durations render in the
63
+ view's locale (`formatNumber`, `formatPercent`, `formatPercentPoints`, `formatPeriod`,
64
+ `formatDuration`).
65
+ - **Brand gates** (`./testing`): the checks every widget package runs in its own tests:
66
+ `catalogTextFindings` (the voice rules over a message catalog), `scanTypeScale` (text on the
67
+ type scale's five steps, nothing below 13 px), `scanGlyphs` (no Unicode glyphs,
68
+ emoji, lone symbols or sparkle imports as icons), `scanColors` (role names only: no palette
69
+ classes, retired accents or raw colours, with a reasoned allow list), `stylesheetColorFindings`
70
+ (no raw colour or retired accent variable in a stylesheet's rules) and `contrastFindings` with
71
+ `toneContrastPairs()` / `ROLE_CONTRAST_PAIRS` (WCAG AA of every tone and role pair over
72
+ `toolkitThemeStylesheets()` (the toolkit's Miragon theme as installed) plus your overrides,
73
+ light and dark; `:root` and the dark scopes cascade in source order as on
74
+ `<html class="dark" data-theme="dark">`, so override a role under both). Node only;
75
+ `scanGlyphs` and `scanColors` need `typescript`.
76
+ - **Theme:** none of its own. The widgets colour through the role variables of the toolkit's
77
+ Miragon theme (`@miragon/mcp-toolkit-ui/theme.css`: the vendored `--cd-*` corporate-design
78
+ tokens and the roles on top, light and dark). Your stylesheet imports it after `tailwindcss`,
79
+ `@source`s the toolkit's `src` (and this package's `dist`), and overrides ROLE variables only.
80
+ The widgets follow the host's theme (then the OS); there is no theme preference.
81
+ - **Module composition** (`./server`): `composeModules` is the composition-root machinery every
82
+ server shares: `MCP_ACTIVE_MODULES` selection with `module:toolset` suffixes, the env-typo warner
83
+ and boot warnings. `resolveBoot(env, { authenticated })` resolves ONE concrete toolset per module
84
+ per boot and threads it into the module's `config.toolset`; pass `authenticated: true` only when
85
+ your server actually installed OAuth. `logEffectiveToolsets(boot)` prints the one boot line that
86
+ states each module's toolset and why, and `frameworkWritesAllowed(boot)` decides whether
87
+ framework writes no module toolset filters (the toolkit's dashboard builder) may be registered:
88
+ only with OAuth and no module on its read-only floor.
89
+ - **Toolset vocabularies** (`./server`): a module declares its toolsets as
90
+ `toolsets: createToolsetVocabulary(module, names, floor, { authenticatedDefault })` on its
91
+ definition; a module without one has no toolsets (a suffix is ignored with a warning). The rule
92
+ is fail-closed: no suffix →
93
+ `floor` without OAuth, `authenticatedDefault` (default: `floor`) with it; an empty or unknown
94
+ suffix → `floor` with a warning; `resolve(undefined)` → `floor`. Nothing resolves to
95
+ "everything" (a module's widest toolset is reachable only by naming it), and
96
+ `allowsDurableWrites(toolset)` is true for every toolset above the floor.
97
+ - **Server boot** (`./server`): `createComposedServer({ label, info, composition, bundle, setup,
98
+ oauth? })` is the one boot sequence every composed server shares: env-typo warnings, the HTTP
99
+ edge policy, ONE `resolveBoot` (authenticated exactly when you pass the OAuth provider you
100
+ install; build it with `oauthFromEnv({ env, label })` from `MCP_OAUTH` and spread
101
+ `OAUTH_ENV_VARS` into your known vars; it is the only caller identity), the boot log, your
102
+ `setup(boot)` (plugins + persistence), `createFrameworkApp` with
103
+ `serverInfo`/`instructions`, request context (request logging is mcp-use's own:
104
+ `MCP_USE_LOG_LEVEL`, warned at boot above `info`), `/metrics` (optional
105
+ `MCP_METRICS_TOKEN`), the Host/Origin guard, `/health/*` and the font route
106
+ (`installFontAssets`: Geist + Geist Mono as woff2 under `/fonts/geist-<version>/`, cached
107
+ immutable, any origin, behind the guard). Every view-bound tool advertises `MCP_URL`'s origin
108
+ in its view CSP `resourceDomains` and the Apps SDK `openai/widgetCSP` (`fontAssetsCsp`, applied
109
+ to every plugin by `honorWidgetMetaDefaults`); without `MCP_URL` mcp-use appends the origin
110
+ the host read the view from. `HostDocument` declares the faces from that origin
111
+ (`declareServedFonts`, `font-display: swap`), so a host that blocks it shows its own font, then
112
+ the system's. `mcp-use dev` serves the returned
113
+ `app`; production calls `listen({ handleSignals: true })`: mcp-use's `toNodeHandler` behind a
114
+ request-body cap (`MCP_MAX_BODY_BYTES`, 413 before buffering), an in-flight body budget of 4×
115
+ the cap (503) and a 30 s request timeout, plus a graceful drain (stop accepting, in-flight
116
+ requests finish, readiness 503 `draining`, then your `runtime.shutdown()`). The guard is
117
+ DNS-rebinding protection: `Host` (and a POST's `Origin`) must be localhost-class, `MCP_URL`'s or
118
+ in `MCP_ALLOWED_HOSTS`/`MCP_ALLOWED_ORIGINS` (spread `HTTP_EDGE_ENV_VARS` into your known vars);
119
+ `/health*` and `/metrics` stay reachable by IP for probes and scrapers.
120
+ - **Persistence** (`./server`): the user-profile store (in-memory / filesystem / Postgres) and the
121
+ Postgres `DashboardStore` for the toolkit's saved dashboards, plus the `createSql` client and the
122
+ `runMigrations` runner that applies each store's own `Migration[]` (`PROFILE_STORE_MIGRATIONS`,
123
+ `DASHBOARD_STORE_MIGRATIONS`) under an advisory lock. A composed server picks its backends from
124
+ its own env and injects them; it does not reimplement the stores. `postgres` is an **optional**
125
+ peer dependency: the driver is loaded through a dynamic import inside `createSql`, so servers
126
+ persisting to disk or memory never need it installed.
127
+
128
+ ## Exports
129
+
130
+ | Subpath | Contents |
131
+ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
132
+ | `./server` | `buildSingleWidgetView` / `buildComposedView` / `buildDataFeedResult`, `shellDefinition`/`createShellPlugin`, `createBuilderTexts` (the view builder's en/de names from a module's catalogs), `composeModules` / `frameworkWritesAllowed` / `createToolsetVocabulary`, `createComposedServer` and its edge pieces (incl. `installFontAssets`, `fontAssetsCsp`, `honorWidgetMetaDefaults`), `oauthFromEnv`, caller identity (`resolveProfileKey`), the profile + dashboard stores and the Postgres client/migration runner |
133
+ | `./ui` | `adaptDataWidget`, the data-aware widget wrapper |
134
+ | `./widgets` | Shared widget UI primitives incl. the generic `shell:*` components and the host app shell (`AppShellProviders`: the language as explicit profile > host context > English, the theme as host context > OS) |
135
+ | `./testing` | The brand gates for your widget package's tests: `catalogTextFindings`, `missingDisplayTexts` + `displayTextCatalog` (every widget, step and top-level props field named for the view builder in en and de) + `displayTextsSentToModel` (none of those names reaches the model), `scanGlyphs`, `scanColors`, `stylesheetColorFindings`, `parseThemeVariables` + `contrastFindings` with `toneContrastPairs()` / `ROLE_CONTRAST_PAIRS` over `toolkitThemeStylesheets()` |
136
+
137
+ The `@miragon/mcp-toolkit-*`, `react`/`react-dom`, `zod` and `@tanstack/react-query` deps are
138
+ **peer dependencies**: they must resolve to a single instance across the host bundle (see the
139
+ `dedupe` array in the server app's `vite.config.ts`), otherwise the React contexts diverge and
140
+ in-widget queries hang. They are published as ranges (`react`/`react-dom` `^19.2.0`, `zod`
141
+ `^4.4.0`, `@miragon/mcp-toolkit-*` `~2.8.1`, `lucide-react` `^0.562.0 || ^1.0.0`) so they dedupe
142
+ against your app's copy; add `lucide-react` to your `dedupe` list too. **A host bundle that dedupes
143
+ `lucide-react` needs 1.47.0 or newer** (the version `@miragon/mcp-toolkit-ui` 2.8 depends on): the
144
+ toolkit's chrome imports `LucideProvider`, which 0.x does not export, so a deduped 0.x copy fails
145
+ the bundle build with a missing export. The peer range still admits 0.562 only for this repo's own
146
+ test graph; no package manager warns you about it.
147
+
148
+ `mcp-use` is the exception: it is an **exactly pinned** peer dependency. Pin it to `mcp-use@2.7.3`
149
+ in your app. A duplicate `mcp-use` instance breaks the React context and hangs every in-widget query
150
+ on "Loading…".
151
+
152
+ ## Where it fits
153
+
154
+ ```
155
+ camunda7-connector / analytics-connector widgets
156
+ │ use
157
+ ▼
158
+ @miragon/pulse-widget-shell ── adaptDataWidget · view builders · UI primitives
159
+ │ build on
160
+ ▼
161
+ @miragon/mcp-toolkit-ui (React + react-query)
162
+ ```
163
+
164
+ See the architecture invariants in [`CLAUDE.md`](../../../CLAUDE.md) for the four-link widget
165
+ registration chain.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The `@miragon/pulse-widget-shell/ui` entry: the toolkit's data-widget adapter
3
+ * (`@miragon/mcp-toolkit-ui/app`), which the module widget registries use to
4
+ * adapt single-data components.
5
+ */
6
+ export { adaptDataWidget, type DescribeForModel } from "@miragon/mcp-toolkit-ui/app";
7
+ //# sourceMappingURL=adapt-data-widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapt-data-widget.d.ts","sourceRoot":"","sources":["../src/adapt-data-widget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The `@miragon/pulse-widget-shell/ui` entry: the toolkit's data-widget adapter
3
+ * (`@miragon/mcp-toolkit-ui/app`), which the module widget registries use to
4
+ * adapt single-data components.
5
+ */
6
+ export { adaptDataWidget } from "@miragon/mcp-toolkit-ui/app";
7
+ //# sourceMappingURL=adapt-data-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapt-data-widget.js","sourceRoot":"","sources":["../src/adapt-data-widget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAyB,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * THE rule every module names a BPMN process and its elements by (#322 U13):
3
+ * one reader for the server (no DOM) and the browser alike, so camunda7,
4
+ * analytics and the kit's heatmap never give the same process or activity two
5
+ * different names. The Camunda Modeler names the POOL of a collaboration and
6
+ * leaves the process unnamed, and it writes a line break, `&`, `"`, `<` or
7
+ * `>` in a name as a character reference (`&#10;`, `&#38;` …): a reader that
8
+ * knew only the process element or only the five named entities would show
9
+ * the key or the raw reference instead.
10
+ */
11
+ /** The names one model gives one process: its own (or its pool's) and the elements that have one. */
12
+ export interface BpmnNames {
13
+ /** The process's own name, else the name of the pool that holds it; null when neither has one. */
14
+ name: string | null;
15
+ /** Element id → name, only for elements that carry a name (no process, no pool). */
16
+ elements: Record<string, string>;
17
+ }
18
+ /** Every name one model gives, for a caller that does not yet know which process it asks about. */
19
+ export interface BpmnModelNames {
20
+ /** Process id → its name by the {@link BpmnNames.name} rule (own name, else its pool's). */
21
+ processes: Record<string, string>;
22
+ /** Element id → name, only for elements that carry a name (no process, no pool). */
23
+ elements: Record<string, string>;
24
+ }
25
+ /**
26
+ * Every name in one BPMN 2.0 XML document, read without a DOM: each
27
+ * `<process id=… name=…>` (or, when the process has no name, the name of the
28
+ * pool — `<participant processRef=…>` — that holds it) and every other
29
+ * element with an `id` and a non-empty `name`. Comments and CDATA are
30
+ * skipped, any namespace prefix is accepted. A document that is not BPMN
31
+ * yields no names, never an error.
32
+ */
33
+ export declare function readBpmnNames(xml: string): BpmnModelNames;
34
+ /** The name {@link readBpmnNames} found for process `processDefinitionKey`, or null. */
35
+ export declare function bpmnProcessNameOf(names: BpmnModelNames, processDefinitionKey: string): string | null;
36
+ /**
37
+ * The names of process `processDefinitionKey` in one BPMN 2.0 XML document:
38
+ * its own name (else its pool's) and every named element
39
+ * ({@link readBpmnNames}).
40
+ */
41
+ export declare function parseBpmnNames(xml: string, processDefinitionKey: string): BpmnNames;
42
+ //# sourceMappingURL=bpmn-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpmn-names.d.ts","sourceRoot":"","sources":["../src/bpmn-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,qGAAqG;AACrG,MAAM,WAAW,SAAS;IACxB,kGAAkG;IAClG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,mGAAmG;AACnG,MAAM,WAAW,cAAc;IAC7B,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AA+FD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAqBzD;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,cAAc,EACrB,oBAAoB,EAAE,MAAM,GAC3B,MAAM,GAAG,IAAI,CAIf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAGnF"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * THE rule every module names a BPMN process and its elements by (#322 U13):
3
+ * one reader for the server (no DOM) and the browser alike, so camunda7,
4
+ * analytics and the kit's heatmap never give the same process or activity two
5
+ * different names. The Camunda Modeler names the POOL of a collaboration and
6
+ * leaves the process unnamed, and it writes a line break, `&`, `"`, `<` or
7
+ * `>` in a name as a character reference (`&#10;`, `&#38;` …): a reader that
8
+ * knew only the process element or only the five named entities would show
9
+ * the key or the raw reference instead.
10
+ */
11
+ /** A start tag: prefix, local name, and its attributes (a quoted value may hold `>`). */
12
+ const START_TAG = /<(?:[A-Za-z_][\w.-]*:)?([A-Za-z_][\w.-]*)((?:\s+[A-Za-z_][\w:.-]*\s*=\s*(?:"[^"]*"|'[^']*'))*)\s*\/?>/g;
13
+ const ENTITIES = { amp: "&", lt: "<", gt: ">", quot: '"', apos: "'" };
14
+ /** A numeric character reference's character; one past Unicode stays as written. */
15
+ const character = (code, written) => code <= 0x10ffff ? String.fromCodePoint(code) : written;
16
+ /** An attribute value as text: entities decoded, line breaks and runs of space folded. */
17
+ function attributeText(raw) {
18
+ return raw
19
+ .replace(/&(?:#x([0-9a-f]+)|#(\d+)|(amp|lt|gt|quot|apos));/gi, (match, hex, dec, named) => {
20
+ if (hex)
21
+ return character(Number.parseInt(hex, 16), match);
22
+ if (dec)
23
+ return character(Number.parseInt(dec, 10), match);
24
+ return ENTITIES[(named ?? "").toLowerCase()] ?? match;
25
+ })
26
+ .replace(/\s+/g, " ")
27
+ .trim();
28
+ }
29
+ const isSpace = (c) => c === " " || c === "\t" || c === "\n" || c === "\r";
30
+ const NAME_CHAR = /[\w:.-]/;
31
+ const NAME_START = /^[A-Za-z_]/;
32
+ /**
33
+ * The `name="value"` / `name='value'` pairs of a start tag, read by a linear
34
+ * tokenizer: a global attribute regex rescans from every position of a run
35
+ * without `=` (CodeQL js/polynomial-redos), and the XML comes from an engine.
36
+ * Every step advances, so malformed input ends the loop too.
37
+ */
38
+ function attributesOf(raw) {
39
+ const out = {};
40
+ let at = 0;
41
+ while (at < raw.length) {
42
+ while (isSpace(raw[at]))
43
+ at++;
44
+ const start = at;
45
+ while (at < raw.length && NAME_CHAR.test(raw[at]))
46
+ at++;
47
+ const name = raw.slice(start, at);
48
+ while (isSpace(raw[at]))
49
+ at++;
50
+ if (raw[at] !== "=") {
51
+ at = Math.max(at, start + 1);
52
+ continue;
53
+ }
54
+ at++;
55
+ while (isSpace(raw[at]))
56
+ at++;
57
+ const quote = raw[at];
58
+ if (quote !== '"' && quote !== "'")
59
+ continue;
60
+ const end = raw.indexOf(quote, at + 1);
61
+ if (end === -1)
62
+ break;
63
+ if (NAME_START.test(name))
64
+ out[name] = raw.slice(at + 1, end);
65
+ at = end + 1;
66
+ }
67
+ return out;
68
+ }
69
+ const SKIPPED_SECTIONS = [
70
+ { open: "<!--", close: "-->" },
71
+ { open: "<![CDATA[", close: "]]>" },
72
+ ];
73
+ /**
74
+ * The document without its comments and CDATA sections, cut by a linear
75
+ * scan instead of a lazy regex (CodeQL js/polynomial-redos and
76
+ * js/incomplete-multi-character-sanitization: the XML comes from an engine).
77
+ * An unterminated section swallows the rest of the document, so no opener
78
+ * ever survives.
79
+ */
80
+ function withoutCommentsAndCdata(xml) {
81
+ // Each opener's next position is searched again only once the scan has
82
+ // passed it, so the whole cut stays linear in the document's length.
83
+ const nextOpen = SKIPPED_SECTIONS.map((section) => xml.indexOf(section.open));
84
+ let out = "";
85
+ let at = 0;
86
+ for (;;) {
87
+ let pick = -1;
88
+ SKIPPED_SECTIONS.forEach((section, i) => {
89
+ if (nextOpen[i] !== -1 && nextOpen[i] < at)
90
+ nextOpen[i] = xml.indexOf(section.open, at);
91
+ if (nextOpen[i] !== -1 && (pick === -1 || nextOpen[i] < nextOpen[pick]))
92
+ pick = i;
93
+ });
94
+ if (pick === -1)
95
+ return out + xml.slice(at);
96
+ const { open, close } = SKIPPED_SECTIONS[pick];
97
+ out += xml.slice(at, nextOpen[pick]);
98
+ const end = xml.indexOf(close, nextOpen[pick] + open.length);
99
+ if (end === -1)
100
+ return out;
101
+ at = end + close.length;
102
+ }
103
+ }
104
+ /**
105
+ * Every name in one BPMN 2.0 XML document, read without a DOM: each
106
+ * `<process id=… name=…>` (or, when the process has no name, the name of the
107
+ * pool — `<participant processRef=…>` — that holds it) and every other
108
+ * element with an `id` and a non-empty `name`. Comments and CDATA are
109
+ * skipped, any namespace prefix is accepted. A document that is not BPMN
110
+ * yields no names, never an error.
111
+ */
112
+ export function readBpmnNames(xml) {
113
+ const text = withoutCommentsAndCdata(xml);
114
+ const own = {};
115
+ const pools = {};
116
+ const elements = {};
117
+ for (const m of text.matchAll(START_TAG)) {
118
+ const local = m[1];
119
+ const attrs = attributesOf(m[2] ?? "");
120
+ const name = attrs.name === undefined ? "" : attributeText(attrs.name);
121
+ if (local === "participant") {
122
+ if (attrs.processRef && name)
123
+ pools[attrs.processRef] = name;
124
+ continue;
125
+ }
126
+ if (!attrs.id || !name)
127
+ continue;
128
+ if (local === "process") {
129
+ own[attrs.id] = name;
130
+ continue;
131
+ }
132
+ elements[attrs.id] = name;
133
+ }
134
+ return { processes: { ...pools, ...own }, elements };
135
+ }
136
+ /** The name {@link readBpmnNames} found for process `processDefinitionKey`, or null. */
137
+ export function bpmnProcessNameOf(names, processDefinitionKey) {
138
+ return Object.hasOwn(names.processes, processDefinitionKey)
139
+ ? names.processes[processDefinitionKey]
140
+ : null;
141
+ }
142
+ /**
143
+ * The names of process `processDefinitionKey` in one BPMN 2.0 XML document:
144
+ * its own name (else its pool's) and every named element
145
+ * ({@link readBpmnNames}).
146
+ */
147
+ export function parseBpmnNames(xml, processDefinitionKey) {
148
+ const names = readBpmnNames(xml);
149
+ return { name: bpmnProcessNameOf(names, processDefinitionKey), elements: names.elements };
150
+ }
151
+ //# sourceMappingURL=bpmn-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpmn-names.js","sourceRoot":"","sources":["../src/bpmn-names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bpmn-names.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpmn-names.test.d.ts","sourceRoot":"","sources":["../src/bpmn-names.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,143 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { bpmnProcessNameOf, parseBpmnNames, readBpmnNames } from "./bpmn-names.js";
3
+ /**
4
+ * The one naming rule for a BPMN model (#322 U13): camunda7, analytics and
5
+ * the heatmap read the same names from the same diagram.
6
+ */
7
+ const LEASING = `<?xml version="1.0" encoding="UTF-8"?>
8
+ <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" id="Defs_1">
9
+ <!-- <bpmn:userTask id="Task_Commented" name="Never shown" /> -->
10
+ <bpmn:process id="miraveloLeasing" name="Bike Leasing" isExecutable="true">
11
+ <bpmn:startEvent id="StartEvent_1" name="Application&#10;&#10; received" />
12
+ <bpmn:userTask id="Activity_Decide" name='Decide on "Leasing &amp; Co"'>
13
+ <bpmn:documentation><![CDATA[<bpmn:task id="Task_InCdata" name="Nope"/>]]></bpmn:documentation>
14
+ </bpmn:userTask>
15
+ <bpmn:exclusiveGateway id="Gateway_Amount" name="Amount &gt; 1000?" />
16
+ <bpmn:serviceTask id="Activity_Unnamed" />
17
+ <bpmn:serviceTask id="Activity_Blank" name=" " />
18
+ <bpmn:endEvent id="EndEvent_Done" name="Done &#x2713;"/>
19
+ </bpmn:process>
20
+ </bpmn:definitions>`;
21
+ /** What the Camunda Modeler writes: a named pool around an unnamed process, names with references. */
22
+ const MODELER_COLLABORATION = `<?xml version="1.0" encoding="UTF-8"?>
23
+ <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" id="Defs_2">
24
+ <bpmn:collaboration id="Collaboration_1">
25
+ <bpmn:participant id="Participant_Leasing" name="Miravelo - Bike Leasing" processRef="miraveloLeasing" />
26
+ </bpmn:collaboration>
27
+ <bpmn:process id="miraveloLeasing" isExecutable="true">
28
+ <bpmn:userTask id="Activity_Check" name="Rechnung&#10;prüfen" />
29
+ <bpmn:userTask id="Activity_Approve" name="Prüfen &#38; Freigeben" />
30
+ <bpmn:task id="Activity_Quote" name="&#34;Angebot&#34; &#60;neu&#62;" />
31
+ </bpmn:process>
32
+ </bpmn:definitions>`;
33
+ describe("parseBpmnNames", () => {
34
+ it("reads the process name and every named element, entities decoded, space folded", () => {
35
+ expect(parseBpmnNames(LEASING, "miraveloLeasing")).toEqual({
36
+ name: "Bike Leasing",
37
+ elements: {
38
+ StartEvent_1: "Application received",
39
+ Activity_Decide: 'Decide on "Leasing & Co"',
40
+ Gateway_Amount: "Amount > 1000?",
41
+ EndEvent_Done: "Done ✓",
42
+ },
43
+ });
44
+ });
45
+ it("names a Modeler collaboration's process by its pool, numeric references decoded", () => {
46
+ expect(parseBpmnNames(MODELER_COLLABORATION, "miraveloLeasing")).toEqual({
47
+ name: "Miravelo - Bike Leasing",
48
+ elements: {
49
+ Activity_Check: "Rechnung prüfen",
50
+ Activity_Approve: "Prüfen & Freigeben",
51
+ Activity_Quote: '"Angebot" <neu>',
52
+ },
53
+ });
54
+ });
55
+ it("takes the pool's name when the process has none, and the default namespace", () => {
56
+ const xml = `<definitions>
57
+ <collaboration id="Collab">
58
+ <participant id="Pool" name="Invoice handling" processRef="invoice"/>
59
+ <participant id="Pool_Other" name="Another pool" processRef="other"/>
60
+ </collaboration>
61
+ <process id="invoice"><task id="Task_A" name="Approve"/></process>
62
+ <process id="other" name="Other process"/>
63
+ </definitions>`;
64
+ // The pool is no element of the process: only the named task is. The
65
+ // pool of another process of the file never names this one.
66
+ expect(parseBpmnNames(xml, "invoice")).toEqual({
67
+ name: "Invoice handling",
68
+ elements: { Task_A: "Approve" },
69
+ });
70
+ // Another process of the same file keeps its own name.
71
+ expect(parseBpmnNames(xml, "other").name).toBe("Other process");
72
+ });
73
+ it("prefers the process's own name over its pool's, in either order", () => {
74
+ const poolFirst = `<definitions><participant processRef="p" name="Pool"/><process id="p" name="Own"/></definitions>`;
75
+ const processFirst = `<definitions><process id="p" name="Own"/><participant processRef="p" name="Pool"/></definitions>`;
76
+ expect(parseBpmnNames(poolFirst, "p").name).toBe("Own");
77
+ expect(parseBpmnNames(processFirst, "p").name).toBe("Own");
78
+ // A blank own name is no name: the pool names it.
79
+ const blank = `<definitions><participant processRef="p" name="Pool"/><process id="p" name=" &#10; "/></definitions>`;
80
+ expect(parseBpmnNames(blank, "p").name).toBe("Pool");
81
+ });
82
+ it("yields no names for a document that is not BPMN, never an error", () => {
83
+ expect(parseBpmnNames("not xml at all <<<", "x")).toEqual({ name: null, elements: {} });
84
+ expect(parseBpmnNames("", "x")).toEqual({ name: null, elements: {} });
85
+ // A character reference past Unicode stays as written instead of throwing.
86
+ const odd = `<process id="p"><task id="T" name="a &#99999999; b &#x110000; &bogus;"/></process>`;
87
+ expect(parseBpmnNames(odd, "p").elements.T).toBe("a &#99999999; b &#x110000; &bogus;");
88
+ });
89
+ });
90
+ describe("readBpmnNames — comments and CDATA are cut linearly (CodeQL js/polynomial-redos)", () => {
91
+ const doc = (inner) => `<definitions><process id="p" name="Rechnung">${inner}<task id="t" name="Prüfen"/></process></definitions>`;
92
+ it("skips comments and CDATA, also when they quote a tag", () => {
93
+ const names = readBpmnNames(doc('<!-- <task id="x" name="Kommentar"/> --><![CDATA[<task id="y" name="Daten"/>]]>'));
94
+ expect(names.elements).toEqual({ t: "Prüfen" });
95
+ expect(names.processes).toEqual({ p: "Rechnung" });
96
+ });
97
+ it("drops everything after an unterminated opener, so no opener survives", () => {
98
+ expect(readBpmnNames(doc("<!-- never closed")).elements).toEqual({});
99
+ expect(readBpmnNames(doc("<![CDATA[ never closed")).elements).toEqual({});
100
+ });
101
+ it("reads attributes with a linear tokenizer", () => {
102
+ const many = Array.from({ length: 20_000 }, (_, i) => `a${i}="${i}"`).join(" ");
103
+ const doc = (tag) => `<definitions><process id="p">${tag}</process></definitions>`;
104
+ const started = performance.now();
105
+ // A run without `=` makes the tag malformed: no names, and still fast.
106
+ expect(readBpmnNames(doc(`<task ${"A".repeat(100_000)} id="t" name="x"/>`)).elements).toEqual({});
107
+ expect(readBpmnNames(doc(`<task ${many} id="t" name='Prüfen' other = "x"/>`)).elements).toEqual({
108
+ t: "Prüfen",
109
+ });
110
+ expect(performance.now() - started).toBeLessThan(1000);
111
+ });
112
+ it("stays fast on many repeated openers", () => {
113
+ const started = performance.now();
114
+ expect(readBpmnNames(doc("<!--".repeat(100_000))).elements).toEqual({});
115
+ expect(readBpmnNames(doc("<!-- x -->".repeat(50_000))).elements).toEqual({ t: "Prüfen" });
116
+ expect(performance.now() - started).toBeLessThan(1000);
117
+ });
118
+ });
119
+ describe("readBpmnNames", () => {
120
+ it("names every process of the file by the same rule, for a caller without the key", () => {
121
+ const xml = `<definitions>
122
+ <collaboration id="Collab">
123
+ <participant id="Pool_A" name="Pool A" processRef="a"/>
124
+ <participant id="Pool_B" name="Pool B" processRef="b"/>
125
+ <participant id="Pool_Blank" name="" processRef="c"/>
126
+ <participant id="Pool_NoRef" name="Black box"/>
127
+ </collaboration>
128
+ <process id="a"><task id="Task_A" name="A task"/></process>
129
+ <process id="b" name="Process B"/>
130
+ <process id="c"/>
131
+ </definitions>`;
132
+ const names = readBpmnNames(xml);
133
+ expect(names).toEqual({
134
+ processes: { a: "Pool A", b: "Process B" },
135
+ elements: { Task_A: "A task" },
136
+ });
137
+ expect(bpmnProcessNameOf(names, "a")).toBe("Pool A");
138
+ expect(bpmnProcessNameOf(names, "c")).toBeNull();
139
+ // A key such as `constructor` is no inherited lookup.
140
+ expect(bpmnProcessNameOf(names, "constructor")).toBeNull();
141
+ });
142
+ });
143
+ //# sourceMappingURL=bpmn-names.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpmn-names.test.js","sourceRoot":"","sources":["../src/bpmn-names.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAElF;;;GAGG;AAEH,MAAM,OAAO,GAAG;;;;;;;;;;;;;oBAaI,CAAA;AAEpB,sGAAsG;AACtG,MAAM,qBAAqB,GAAG;;;;;;;;;;oBAUV,CAAA;AAEpB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;gBACR,YAAY,EAAE,sBAAsB;gBACpC,eAAe,EAAE,0BAA0B;gBAC3C,cAAc,EAAE,gBAAgB;gBAChC,aAAa,EAAE,QAAQ;aACxB;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;YACvE,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE;gBACR,cAAc,EAAE,iBAAiB;gBACjC,gBAAgB,EAAE,oBAAoB;gBACtC,cAAc,EAAE,iBAAiB;aAClC;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,GAAG,GAAG;;;;;;;mBAOG,CAAA;QACf,qEAAqE;QACrE,4DAA4D;QAC5D,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7C,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SAChC,CAAC,CAAA;QACF,uDAAuD;QACvD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,SAAS,GAAG,kGAAkG,CAAA;QACpH,MAAM,YAAY,GAAG,kGAAkG,CAAA;QACvH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvD,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1D,kDAAkD;QAClD,MAAM,KAAK,GAAG,sGAAsG,CAAA;QACpH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QACvF,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QACrE,2EAA2E;QAC3E,MAAM,GAAG,GAAG,oFAAoF,CAAA;QAChG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,kFAAkF,EAAE,GAAG,EAAE;IAChG,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAC5B,gDAAgD,KAAK,sDAAsD,CAAA;IAE7G,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,KAAK,GAAG,aAAa,CACzB,GAAG,CAAC,iFAAiF,CAAC,CACvF,CAAA;QACD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC/C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACpE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/E,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,gCAAgC,GAAG,0BAA0B,CAAA;QAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACjC,uEAAuE;QACvE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAC3F,EAAE,CACH,CAAA;QACD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,IAAI,qCAAqC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAC7F;YACE,CAAC,EAAE,QAAQ;SACZ,CACF,CAAA;QACD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACjC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACvE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzF,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,GAAG,GAAG;;;;;;;;;;mBAUG,CAAA;QACf,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE;YAC1C,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC/B,CAAC,CAAA;QACF,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;QAChD,sDAAsD;QACtD,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=build-data-feed-result.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-data-feed-result.test.d.ts","sourceRoot":"","sources":["../src/build-data-feed-result.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { parseToolResult, parseViewToolResult } from "@miragon/mcp-toolkit-ui";
3
+ import { buildDataFeedResult } from "./server.js";
4
+ /**
5
+ * The app-only `*_data` feed result (architecture invariant 5): the payload
6
+ * ONCE, as compact JSON text, and deliberately no widget `_meta` — a result
7
+ * carrying `ui.resourceUri` would be rendered by the host instead of being
8
+ * returned to the in-widget `callTool()`, which is exactly the bug this single
9
+ * shared implementation exists to prevent.
10
+ */
11
+ describe("buildDataFeedResult", () => {
12
+ const data = { rows: [{ id: "pi-1" }], total: 1 };
13
+ const result = buildDataFeedResult(data);
14
+ it("puts the payload on the text channel as compact JSON", () => {
15
+ expect(result.content).toEqual([{ type: "text", text: '{"rows":[{"id":"pi-1"}],"total":1}' }]);
16
+ });
17
+ it("is read back by the toolkit's parsers, which fall back to the JSON text", () => {
18
+ expect(parseToolResult(result)).toEqual(data);
19
+ expect(parseViewToolResult(result)).toEqual(data);
20
+ });
21
+ it("sends the payload once — no structuredContent copy, no widget _meta, no view binding", () => {
22
+ expect(Object.keys(result)).toEqual(["content"]);
23
+ });
24
+ it("stays a plain JSON envelope for an empty payload", () => {
25
+ expect(buildDataFeedResult({}).content).toEqual([{ type: "text", text: "{}" }]);
26
+ });
27
+ });
28
+ //# sourceMappingURL=build-data-feed-result.test.js.map