@flanksource/clicky-ui 0.3.21 → 0.3.23

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 (1627) hide show
  1. package/NOTICE.md +14 -0
  2. package/README.md +8 -1
  3. package/dist/ai.cjs +10 -0
  4. package/dist/ai.cjs.map +1 -1
  5. package/dist/ai.js +10 -0
  6. package/dist/ai.js.map +1 -1
  7. package/dist/comments/MentionTextarea.cjs +1 -1
  8. package/dist/comments/MentionTextarea.cjs.map +1 -1
  9. package/dist/comments/MentionTextarea.js +1 -1
  10. package/dist/comments/MentionTextarea.js.map +1 -1
  11. package/dist/components/AccordionList.cjs +320 -0
  12. package/dist/components/AccordionList.cjs.map +1 -0
  13. package/dist/components/AccordionList.d.ts +93 -0
  14. package/dist/components/AccordionList.d.ts.map +1 -0
  15. package/dist/components/AccordionList.js +320 -0
  16. package/dist/components/AccordionList.js.map +1 -0
  17. package/dist/components/Combobox.cjs +41 -3
  18. package/dist/components/Combobox.cjs.map +1 -1
  19. package/dist/components/Combobox.d.ts.map +1 -1
  20. package/dist/components/Combobox.js +42 -4
  21. package/dist/components/Combobox.js.map +1 -1
  22. package/dist/components/ComboboxControl.cjs +6 -0
  23. package/dist/components/ComboboxControl.cjs.map +1 -1
  24. package/dist/components/ComboboxControl.d.ts +7 -3
  25. package/dist/components/ComboboxControl.d.ts.map +1 -1
  26. package/dist/components/ComboboxControl.js +6 -0
  27. package/dist/components/ComboboxControl.js.map +1 -1
  28. package/dist/components/ComboboxMenu.cjs +2 -1
  29. package/dist/components/ComboboxMenu.cjs.map +1 -1
  30. package/dist/components/ComboboxMenu.d.ts +3 -1
  31. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  32. package/dist/components/ComboboxMenu.js +2 -1
  33. package/dist/components/ComboboxMenu.js.map +1 -1
  34. package/dist/components/ComboboxTags.cjs +42 -11
  35. package/dist/components/ComboboxTags.cjs.map +1 -1
  36. package/dist/components/ComboboxTags.d.ts +5 -2
  37. package/dist/components/ComboboxTags.d.ts.map +1 -1
  38. package/dist/components/ComboboxTags.js +42 -11
  39. package/dist/components/ComboboxTags.js.map +1 -1
  40. package/dist/components/ConnectionLoggingPolicy.cjs +268 -0
  41. package/dist/components/ConnectionLoggingPolicy.cjs.map +1 -0
  42. package/dist/components/ConnectionLoggingPolicy.d.ts +3 -0
  43. package/dist/components/ConnectionLoggingPolicy.d.ts.map +1 -0
  44. package/dist/components/ConnectionLoggingPolicy.js +268 -0
  45. package/dist/components/ConnectionLoggingPolicy.js.map +1 -0
  46. package/dist/components/ConnectionLoggingPolicy.model.cjs +52 -0
  47. package/dist/components/ConnectionLoggingPolicy.model.cjs.map +1 -0
  48. package/dist/components/ConnectionLoggingPolicy.model.d.ts +35 -0
  49. package/dist/components/ConnectionLoggingPolicy.model.d.ts.map +1 -0
  50. package/dist/components/ConnectionLoggingPolicy.model.js +52 -0
  51. package/dist/components/ConnectionLoggingPolicy.model.js.map +1 -0
  52. package/dist/components/CountryFlag.cjs +55 -0
  53. package/dist/components/CountryFlag.cjs.map +1 -0
  54. package/dist/components/CountryFlag.d.ts +8 -0
  55. package/dist/components/CountryFlag.d.ts.map +1 -0
  56. package/dist/components/CountryFlag.js +38 -0
  57. package/dist/components/CountryFlag.js.map +1 -0
  58. package/dist/components/CountryPicker.cjs +35 -0
  59. package/dist/components/CountryPicker.cjs.map +1 -0
  60. package/dist/components/CountryPicker.d.ts +4 -0
  61. package/dist/components/CountryPicker.d.ts.map +1 -0
  62. package/dist/components/CountryPicker.js +35 -0
  63. package/dist/components/CountryPicker.js.map +1 -0
  64. package/dist/components/DaemonSetIcon.cjs +20 -0
  65. package/dist/components/DaemonSetIcon.cjs.map +1 -0
  66. package/dist/components/DaemonSetIcon.d.ts +8 -0
  67. package/dist/components/DaemonSetIcon.d.ts.map +1 -0
  68. package/dist/components/DaemonSetIcon.js +20 -0
  69. package/dist/components/DaemonSetIcon.js.map +1 -0
  70. package/dist/components/DateField.cjs.map +1 -1
  71. package/dist/components/DateField.d.ts +11 -3
  72. package/dist/components/DateField.d.ts.map +1 -1
  73. package/dist/components/DateField.js.map +1 -1
  74. package/dist/components/DatePicker.cjs +6 -1
  75. package/dist/components/DatePicker.cjs.map +1 -1
  76. package/dist/components/DatePicker.d.ts +11 -3
  77. package/dist/components/DatePicker.d.ts.map +1 -1
  78. package/dist/components/DatePicker.js +6 -1
  79. package/dist/components/DatePicker.js.map +1 -1
  80. package/dist/components/EndpointSelector.cjs +29 -8
  81. package/dist/components/EndpointSelector.cjs.map +1 -1
  82. package/dist/components/EndpointSelector.d.ts +1 -1
  83. package/dist/components/EndpointSelector.d.ts.map +1 -1
  84. package/dist/components/EndpointSelector.js +29 -8
  85. package/dist/components/EndpointSelector.js.map +1 -1
  86. package/dist/components/EndpointSelector.model.cjs.map +1 -1
  87. package/dist/components/EndpointSelector.model.d.ts +5 -0
  88. package/dist/components/EndpointSelector.model.d.ts.map +1 -1
  89. package/dist/components/EndpointSelector.model.js.map +1 -1
  90. package/dist/components/FilterBar.cjs +43 -19
  91. package/dist/components/FilterBar.cjs.map +1 -1
  92. package/dist/components/FilterBar.d.ts +21 -1
  93. package/dist/components/FilterBar.d.ts.map +1 -1
  94. package/dist/components/FilterBar.js +41 -17
  95. package/dist/components/FilterBar.js.map +1 -1
  96. package/dist/components/InputField.cjs +14 -2
  97. package/dist/components/InputField.cjs.map +1 -1
  98. package/dist/components/InputField.d.ts +6 -0
  99. package/dist/components/InputField.d.ts.map +1 -1
  100. package/dist/components/InputField.js +14 -2
  101. package/dist/components/InputField.js.map +1 -1
  102. package/dist/components/ItemActions.cjs +87 -0
  103. package/dist/components/ItemActions.cjs.map +1 -0
  104. package/dist/components/ItemActions.d.ts +33 -0
  105. package/dist/components/ItemActions.d.ts.map +1 -0
  106. package/dist/components/ItemActions.js +87 -0
  107. package/dist/components/ItemActions.js.map +1 -0
  108. package/dist/components/JsonSchemaForm.cjs +1 -1
  109. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  110. package/dist/components/JsonSchemaForm.js +1 -1
  111. package/dist/components/JsonSchemaForm.js.map +1 -1
  112. package/dist/components/MdxEditorCallout.cjs +108 -0
  113. package/dist/components/MdxEditorCallout.cjs.map +1 -0
  114. package/dist/components/MdxEditorCallout.d.ts +27 -0
  115. package/dist/components/MdxEditorCallout.d.ts.map +1 -0
  116. package/dist/components/MdxEditorCallout.js +108 -0
  117. package/dist/components/MdxEditorCallout.js.map +1 -0
  118. package/dist/components/MdxEditorField.cjs.map +1 -1
  119. package/dist/components/MdxEditorField.d.ts +1 -1
  120. package/dist/components/MdxEditorField.d.ts.map +1 -1
  121. package/dist/components/MdxEditorField.js.map +1 -1
  122. package/dist/components/MdxEditorToolbar.cjs +10 -2
  123. package/dist/components/MdxEditorToolbar.cjs.map +1 -1
  124. package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
  125. package/dist/components/MdxEditorToolbar.js +10 -2
  126. package/dist/components/MdxEditorToolbar.js.map +1 -1
  127. package/dist/components/MultiSelect.cjs +3 -1
  128. package/dist/components/MultiSelect.cjs.map +1 -1
  129. package/dist/components/MultiSelect.d.ts.map +1 -1
  130. package/dist/components/MultiSelect.js +3 -1
  131. package/dist/components/MultiSelect.js.map +1 -1
  132. package/dist/components/NamespacePicker.cjs +1 -0
  133. package/dist/components/NamespacePicker.cjs.map +1 -1
  134. package/dist/components/NamespacePicker.d.ts.map +1 -1
  135. package/dist/components/NamespacePicker.js +1 -0
  136. package/dist/components/NamespacePicker.js.map +1 -1
  137. package/dist/components/SplitButton.cjs +3 -2
  138. package/dist/components/SplitButton.cjs.map +1 -1
  139. package/dist/components/SplitButton.d.ts +6 -1
  140. package/dist/components/SplitButton.d.ts.map +1 -1
  141. package/dist/components/SplitButton.js +3 -2
  142. package/dist/components/SplitButton.js.map +1 -1
  143. package/dist/components/WorkloadPicker.cjs +117 -31
  144. package/dist/components/WorkloadPicker.cjs.map +1 -1
  145. package/dist/components/WorkloadPicker.d.ts +29 -5
  146. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  147. package/dist/components/WorkloadPicker.js +119 -33
  148. package/dist/components/WorkloadPicker.js.map +1 -1
  149. package/dist/components/button-variants.d.ts +1 -1
  150. package/dist/components/button.d.ts +1 -1
  151. package/dist/components/combobox-types.d.ts +13 -0
  152. package/dist/components/combobox-types.d.ts.map +1 -1
  153. package/dist/components/combobox-utils.cjs +16 -0
  154. package/dist/components/combobox-utils.cjs.map +1 -1
  155. package/dist/components/combobox-utils.d.ts +1 -0
  156. package/dist/components/combobox-utils.d.ts.map +1 -1
  157. package/dist/components/combobox-utils.js +16 -0
  158. package/dist/components/combobox-utils.js.map +1 -1
  159. package/dist/components/country-options.cjs +34 -0
  160. package/dist/components/country-options.cjs.map +1 -0
  161. package/dist/components/country-options.d.ts +8 -0
  162. package/dist/components/country-options.d.ts.map +1 -0
  163. package/dist/components/country-options.js +34 -0
  164. package/dist/components/country-options.js.map +1 -0
  165. package/dist/components/filter-bar-multi.cjs +1 -1
  166. package/dist/components/filter-bar-multi.cjs.map +1 -1
  167. package/dist/components/filter-bar-multi.js +1 -1
  168. package/dist/components/filter-bar-multi.js.map +1 -1
  169. package/dist/components/filter-bar-utils.cjs +14 -2
  170. package/dist/components/filter-bar-utils.cjs.map +1 -1
  171. package/dist/components/filter-bar-utils.d.ts +2 -1
  172. package/dist/components/filter-bar-utils.d.ts.map +1 -1
  173. package/dist/components/filter-bar-utils.js +14 -2
  174. package/dist/components/filter-bar-utils.js.map +1 -1
  175. package/dist/components/jotai-bindings-core.cjs +11 -0
  176. package/dist/components/jotai-bindings-core.cjs.map +1 -1
  177. package/dist/components/jotai-bindings-core.d.ts +3 -2
  178. package/dist/components/jotai-bindings-core.d.ts.map +1 -1
  179. package/dist/components/jotai-bindings-core.js +11 -0
  180. package/dist/components/jotai-bindings-core.js.map +1 -1
  181. package/dist/components/json-schema-form-accordion-array.cjs +54 -190
  182. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
  183. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  184. package/dist/components/json-schema-form-accordion-array.js +59 -195
  185. package/dist/components/json-schema-form-accordion-array.js.map +1 -1
  186. package/dist/components/json-schema-form-array.cjs +46 -146
  187. package/dist/components/json-schema-form-array.cjs.map +1 -1
  188. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  189. package/dist/components/json-schema-form-array.js +47 -147
  190. package/dist/components/json-schema-form-array.js.map +1 -1
  191. package/dist/components/json-schema-form-cards-array.cjs +9 -7
  192. package/dist/components/json-schema-form-cards-array.cjs.map +1 -1
  193. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
  194. package/dist/components/json-schema-form-cards-array.js +11 -9
  195. package/dist/components/json-schema-form-cards-array.js.map +1 -1
  196. package/dist/components/json-schema-form-error-display.js +1 -1
  197. package/dist/components/json-schema-form-errors.cjs +17 -4
  198. package/dist/components/json-schema-form-errors.cjs.map +1 -1
  199. package/dist/components/json-schema-form-errors.d.ts +1 -0
  200. package/dist/components/json-schema-form-errors.d.ts.map +1 -1
  201. package/dist/components/json-schema-form-errors.js +16 -3
  202. package/dist/components/json-schema-form-errors.js.map +1 -1
  203. package/dist/components/json-schema-form-fields.cjs +18 -2
  204. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  205. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  206. package/dist/components/json-schema-form-fields.js +18 -2
  207. package/dist/components/json-schema-form-fields.js.map +1 -1
  208. package/dist/components/json-schema-form-item-row.cjs +17 -46
  209. package/dist/components/json-schema-form-item-row.cjs.map +1 -1
  210. package/dist/components/json-schema-form-item-row.d.ts +3 -10
  211. package/dist/components/json-schema-form-item-row.d.ts.map +1 -1
  212. package/dist/components/json-schema-form-item-row.js +18 -47
  213. package/dist/components/json-schema-form-item-row.js.map +1 -1
  214. package/dist/components/json-schema-form-item-summary.cjs +18 -4
  215. package/dist/components/json-schema-form-item-summary.cjs.map +1 -1
  216. package/dist/components/json-schema-form-item-summary.d.ts +2 -1
  217. package/dist/components/json-schema-form-item-summary.d.ts.map +1 -1
  218. package/dist/components/json-schema-form-item-summary.js +15 -1
  219. package/dist/components/json-schema-form-item-summary.js.map +1 -1
  220. package/dist/components/json-schema-form-lookup-tree.cjs +2 -5
  221. package/dist/components/json-schema-form-lookup-tree.cjs.map +1 -1
  222. package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -1
  223. package/dist/components/json-schema-form-lookup-tree.js +2 -5
  224. package/dist/components/json-schema-form-lookup-tree.js.map +1 -1
  225. package/dist/components/json-schema-form-object.cjs +3 -2
  226. package/dist/components/json-schema-form-object.cjs.map +1 -1
  227. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  228. package/dist/components/json-schema-form-object.js +2 -1
  229. package/dist/components/json-schema-form-object.js.map +1 -1
  230. package/dist/components/json-schema-form-render.cjs +4 -1
  231. package/dist/components/json-schema-form-render.cjs.map +1 -1
  232. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  233. package/dist/components/json-schema-form-render.js +5 -2
  234. package/dist/components/json-schema-form-render.js.map +1 -1
  235. package/dist/components/json-schema-form-resolve.cjs +21 -13
  236. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  237. package/dist/components/json-schema-form-resolve.d.ts +2 -2
  238. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  239. package/dist/components/json-schema-form-resolve.js +16 -8
  240. package/dist/components/json-schema-form-resolve.js.map +1 -1
  241. package/dist/components/json-schema-form-table-array.cjs +4 -3
  242. package/dist/components/json-schema-form-table-array.cjs.map +1 -1
  243. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  244. package/dist/components/json-schema-form-table-array.js +2 -1
  245. package/dist/components/json-schema-form-table-array.js.map +1 -1
  246. package/dist/components/json-schema-form-tags-combobox.cjs +55 -0
  247. package/dist/components/json-schema-form-tags-combobox.cjs.map +1 -0
  248. package/dist/components/json-schema-form-tags-combobox.d.ts +17 -0
  249. package/dist/components/json-schema-form-tags-combobox.d.ts.map +1 -0
  250. package/dist/components/json-schema-form-tags-combobox.js +55 -0
  251. package/dist/components/json-schema-form-tags-combobox.js.map +1 -0
  252. package/dist/components/json-schema-form-types.d.ts +8 -1
  253. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  254. package/dist/components/json-schema-form-utils.cjs +5 -28
  255. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  256. package/dist/components/json-schema-form-utils.d.ts +1 -5
  257. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  258. package/dist/components/json-schema-form-utils.js +5 -28
  259. package/dist/components/json-schema-form-utils.js.map +1 -1
  260. package/dist/components/jsonPathTree.cjs +10 -3
  261. package/dist/components/jsonPathTree.cjs.map +1 -1
  262. package/dist/components/jsonPathTree.d.ts +17 -0
  263. package/dist/components/jsonPathTree.d.ts.map +1 -1
  264. package/dist/components/jsonPathTree.js +10 -3
  265. package/dist/components/jsonPathTree.js.map +1 -1
  266. package/dist/components/mdx-editor-callout-model.cjs +26 -0
  267. package/dist/components/mdx-editor-callout-model.cjs.map +1 -0
  268. package/dist/components/mdx-editor-callout-model.d.ts +14 -0
  269. package/dist/components/mdx-editor-callout-model.d.ts.map +1 -0
  270. package/dist/components/mdx-editor-callout-model.js +26 -0
  271. package/dist/components/mdx-editor-callout-model.js.map +1 -0
  272. package/dist/components/mdx-editor-callout.cjs +39 -0
  273. package/dist/components/mdx-editor-callout.cjs.map +1 -0
  274. package/dist/components/mdx-editor-callout.d.ts +27 -0
  275. package/dist/components/mdx-editor-callout.d.ts.map +1 -0
  276. package/dist/components/mdx-editor-callout.js +39 -0
  277. package/dist/components/mdx-editor-callout.js.map +1 -0
  278. package/dist/components/mdx-editor-field-plugins.cjs +14 -0
  279. package/dist/components/mdx-editor-field-plugins.cjs.map +1 -1
  280. package/dist/components/mdx-editor-field-plugins.d.ts.map +1 -1
  281. package/dist/components/mdx-editor-field-plugins.js +14 -0
  282. package/dist/components/mdx-editor-field-plugins.js.map +1 -1
  283. package/dist/components/mdx-editor-jsx-attributes.cjs +23 -0
  284. package/dist/components/mdx-editor-jsx-attributes.cjs.map +1 -0
  285. package/dist/components/mdx-editor-jsx-attributes.d.ts +29 -0
  286. package/dist/components/mdx-editor-jsx-attributes.d.ts.map +1 -0
  287. package/dist/components/mdx-editor-jsx-attributes.js +23 -0
  288. package/dist/components/mdx-editor-jsx-attributes.js.map +1 -0
  289. package/dist/components/mdx-editor-options.d.ts +79 -0
  290. package/dist/components/mdx-editor-options.d.ts.map +1 -1
  291. package/dist/components/workload-picker-utils.cjs +17 -4
  292. package/dist/components/workload-picker-utils.cjs.map +1 -1
  293. package/dist/components/workload-picker-utils.d.ts +3 -1
  294. package/dist/components/workload-picker-utils.d.ts.map +1 -1
  295. package/dist/components/workload-picker-utils.js +18 -5
  296. package/dist/components/workload-picker-utils.js.map +1 -1
  297. package/dist/components.cjs +24 -0
  298. package/dist/components.cjs.map +1 -1
  299. package/dist/components.d.ts +12 -3
  300. package/dist/components.d.ts.map +1 -1
  301. package/dist/components.js +24 -0
  302. package/dist/components.js.map +1 -1
  303. package/dist/data/Callout.cjs +48 -0
  304. package/dist/data/Callout.cjs.map +1 -0
  305. package/dist/data/Callout.d.ts +58 -0
  306. package/dist/data/Callout.d.ts.map +1 -0
  307. package/dist/data/Callout.js +48 -0
  308. package/dist/data/Callout.js.map +1 -0
  309. package/dist/data/Clicky.cjs +311 -249
  310. package/dist/data/Clicky.cjs.map +1 -1
  311. package/dist/data/Clicky.d.ts +37 -2
  312. package/dist/data/Clicky.d.ts.map +1 -1
  313. package/dist/data/Clicky.js +314 -252
  314. package/dist/data/Clicky.js.map +1 -1
  315. package/dist/data/CodeDiff.cjs +3 -18
  316. package/dist/data/CodeDiff.cjs.map +1 -1
  317. package/dist/data/CodeDiff.d.ts.map +1 -1
  318. package/dist/data/CodeDiff.js +3 -18
  319. package/dist/data/CodeDiff.js.map +1 -1
  320. package/dist/data/DataTable.cjs +420 -172
  321. package/dist/data/DataTable.cjs.map +1 -1
  322. package/dist/data/DataTable.d.ts +57 -4
  323. package/dist/data/DataTable.d.ts.map +1 -1
  324. package/dist/data/DataTable.grouping.cjs +26 -0
  325. package/dist/data/DataTable.grouping.cjs.map +1 -1
  326. package/dist/data/DataTable.grouping.d.ts +49 -1
  327. package/dist/data/DataTable.grouping.d.ts.map +1 -1
  328. package/dist/data/DataTable.grouping.js +26 -0
  329. package/dist/data/DataTable.grouping.js.map +1 -1
  330. package/dist/data/DataTable.js +423 -175
  331. package/dist/data/DataTable.js.map +1 -1
  332. package/dist/data/DataTableGroupingControls.cjs +84 -0
  333. package/dist/data/DataTableGroupingControls.cjs.map +1 -0
  334. package/dist/data/DataTableGroupingControls.d.ts +17 -0
  335. package/dist/data/DataTableGroupingControls.d.ts.map +1 -0
  336. package/dist/data/DataTableGroupingControls.js +84 -0
  337. package/dist/data/DataTableGroupingControls.js.map +1 -0
  338. package/dist/data/HighlightedTokens.cjs +21 -0
  339. package/dist/data/HighlightedTokens.cjs.map +1 -0
  340. package/dist/data/HighlightedTokens.d.ts +6 -0
  341. package/dist/data/HighlightedTokens.d.ts.map +1 -0
  342. package/dist/data/HighlightedTokens.js +21 -0
  343. package/dist/data/HighlightedTokens.js.map +1 -0
  344. package/dist/data/Markdown.cjs +31 -2
  345. package/dist/data/Markdown.cjs.map +1 -1
  346. package/dist/data/Markdown.d.ts +10 -1
  347. package/dist/data/Markdown.d.ts.map +1 -1
  348. package/dist/data/Markdown.js +31 -2
  349. package/dist/data/Markdown.js.map +1 -1
  350. package/dist/data/MarkdownEditor.cjs +1 -1
  351. package/dist/data/MarkdownEditor.cjs.map +1 -1
  352. package/dist/data/MarkdownEditor.js +1 -1
  353. package/dist/data/MarkdownEditor.js.map +1 -1
  354. package/dist/data/ObjectGraph.cjs +108 -23
  355. package/dist/data/ObjectGraph.cjs.map +1 -1
  356. package/dist/data/ObjectGraph.d.ts +28 -22
  357. package/dist/data/ObjectGraph.d.ts.map +1 -1
  358. package/dist/data/ObjectGraph.js +109 -24
  359. package/dist/data/ObjectGraph.js.map +1 -1
  360. package/dist/data/PromptBanner.cjs +1 -1
  361. package/dist/data/PromptBanner.cjs.map +1 -1
  362. package/dist/data/PromptBanner.js +1 -1
  363. package/dist/data/PromptBanner.js.map +1 -1
  364. package/dist/data/Tree.cjs +39 -35
  365. package/dist/data/Tree.cjs.map +1 -1
  366. package/dist/data/Tree.d.ts +7 -1
  367. package/dist/data/Tree.d.ts.map +1 -1
  368. package/dist/data/Tree.js +39 -35
  369. package/dist/data/Tree.js.map +1 -1
  370. package/dist/data/ai/ChatButton.cjs +26 -0
  371. package/dist/data/ai/ChatButton.cjs.map +1 -0
  372. package/dist/data/ai/ChatButton.d.ts +5 -0
  373. package/dist/data/ai/ChatButton.d.ts.map +1 -0
  374. package/dist/data/ai/ChatButton.js +26 -0
  375. package/dist/data/ai/ChatButton.js.map +1 -0
  376. package/dist/data/ai/ChatFab.cjs +11 -6
  377. package/dist/data/ai/ChatFab.cjs.map +1 -1
  378. package/dist/data/ai/ChatFab.d.ts +5 -3
  379. package/dist/data/ai/ChatFab.d.ts.map +1 -1
  380. package/dist/data/ai/ChatFab.js +11 -6
  381. package/dist/data/ai/ChatFab.js.map +1 -1
  382. package/dist/data/ai/PromptRunEditor/index.cjs +16 -4
  383. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  384. package/dist/data/ai/PromptRunEditor/index.d.ts +7 -2
  385. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  386. package/dist/data/ai/PromptRunEditor/index.js +16 -4
  387. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  388. package/dist/data/ai/SandboxConnectionsSection.cjs +71 -0
  389. package/dist/data/ai/SandboxConnectionsSection.cjs.map +1 -0
  390. package/dist/data/ai/SandboxConnectionsSection.d.ts +8 -0
  391. package/dist/data/ai/SandboxConnectionsSection.d.ts.map +1 -0
  392. package/dist/data/ai/SandboxConnectionsSection.js +71 -0
  393. package/dist/data/ai/SandboxConnectionsSection.js.map +1 -0
  394. package/dist/data/ai/SandboxCreateWizard.cjs +288 -0
  395. package/dist/data/ai/SandboxCreateWizard.cjs.map +1 -0
  396. package/dist/data/ai/SandboxCreateWizard.d.ts +11 -0
  397. package/dist/data/ai/SandboxCreateWizard.d.ts.map +1 -0
  398. package/dist/data/ai/SandboxCreateWizard.js +288 -0
  399. package/dist/data/ai/SandboxCreateWizard.js.map +1 -0
  400. package/dist/data/ai/SandboxCreateWizard.model.cjs +77 -0
  401. package/dist/data/ai/SandboxCreateWizard.model.cjs.map +1 -0
  402. package/dist/data/ai/SandboxCreateWizard.model.d.ts +32 -0
  403. package/dist/data/ai/SandboxCreateWizard.model.d.ts.map +1 -0
  404. package/dist/data/ai/SandboxCreateWizard.model.js +77 -0
  405. package/dist/data/ai/SandboxCreateWizard.model.js.map +1 -0
  406. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +6 -6
  407. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  408. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  409. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +6 -6
  410. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  411. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs +11 -8
  412. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs.map +1 -1
  413. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js +11 -8
  414. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js.map +1 -1
  415. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs +247 -0
  416. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs.map +1 -0
  417. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +12 -0
  418. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -0
  419. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js +247 -0
  420. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js.map +1 -0
  421. package/dist/data/ai/SpecRuntimeEditor/fields.cjs +31 -22
  422. package/dist/data/ai/SpecRuntimeEditor/fields.cjs.map +1 -1
  423. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +6 -4
  424. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -1
  425. package/dist/data/ai/SpecRuntimeEditor/fields.js +32 -23
  426. package/dist/data/ai/SpecRuntimeEditor/fields.js.map +1 -1
  427. package/dist/data/ai/SpecRuntimeEditor/index.cjs +15 -1
  428. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  429. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +8 -3
  430. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  431. package/dist/data/ai/SpecRuntimeEditor/index.js +15 -1
  432. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  433. package/dist/data/ai/SpecRuntimeEditor/types.cjs +11 -0
  434. package/dist/data/ai/SpecRuntimeEditor/types.cjs.map +1 -1
  435. package/dist/data/ai/SpecRuntimeEditor/types.d.ts +53 -1
  436. package/dist/data/ai/SpecRuntimeEditor/types.d.ts.map +1 -1
  437. package/dist/data/ai/SpecRuntimeEditor/types.js +11 -0
  438. package/dist/data/ai/SpecRuntimeEditor/types.js.map +1 -1
  439. package/dist/data/ai/SpecRuntimeEditor/update.cjs +23 -0
  440. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  441. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +23 -1
  442. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  443. package/dist/data/ai/SpecRuntimeEditor/update.js +23 -0
  444. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  445. package/dist/data/ai/SpecRuntimeEditor.model.cjs +28 -0
  446. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  447. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +35 -0
  448. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  449. package/dist/data/ai/SpecRuntimeEditor.model.js +28 -0
  450. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  451. package/dist/data/ai/index.d.ts +6 -2
  452. package/dist/data/ai/index.d.ts.map +1 -1
  453. package/dist/data/ai/sandbox-kind-meta.cjs +16 -0
  454. package/dist/data/ai/sandbox-kind-meta.cjs.map +1 -0
  455. package/dist/data/ai/sandbox-kind-meta.d.ts +8 -0
  456. package/dist/data/ai/sandbox-kind-meta.d.ts.map +1 -0
  457. package/dist/data/ai/sandbox-kind-meta.js +16 -0
  458. package/dist/data/ai/sandbox-kind-meta.js.map +1 -0
  459. package/dist/data/badge-variants.d.ts +1 -1
  460. package/dist/data/cache-browser/CacheTree.cjs +1 -1
  461. package/dist/data/cache-browser/CacheTree.cjs.map +1 -1
  462. package/dist/data/cache-browser/CacheTree.js +1 -1
  463. package/dist/data/cache-browser/CacheTree.js.map +1 -1
  464. package/dist/data/callout-tones.cjs +95 -0
  465. package/dist/data/callout-tones.cjs.map +1 -0
  466. package/dist/data/callout-tones.d.ts +32 -0
  467. package/dist/data/callout-tones.d.ts.map +1 -0
  468. package/dist/data/callout-tones.js +95 -0
  469. package/dist/data/callout-tones.js.map +1 -0
  470. package/dist/data/chat/PromptInput.cjs +1 -1
  471. package/dist/data/chat/PromptInput.cjs.map +1 -1
  472. package/dist/data/chat/PromptInput.js +1 -1
  473. package/dist/data/chat/PromptInput.js.map +1 -1
  474. package/dist/data/clicky-export/ClickyExportDialog.cjs +145 -0
  475. package/dist/data/clicky-export/ClickyExportDialog.cjs.map +1 -0
  476. package/dist/data/clicky-export/ClickyExportDialog.d.ts +43 -0
  477. package/dist/data/clicky-export/ClickyExportDialog.d.ts.map +1 -0
  478. package/dist/data/clicky-export/ClickyExportDialog.js +145 -0
  479. package/dist/data/clicky-export/ClickyExportDialog.js.map +1 -0
  480. package/dist/data/clicky-export/index.d.ts +3 -0
  481. package/dist/data/clicky-export/index.d.ts.map +1 -0
  482. package/dist/data/clicky-export/useClickyExport.cjs +44 -0
  483. package/dist/data/clicky-export/useClickyExport.cjs.map +1 -0
  484. package/dist/data/clicky-export/useClickyExport.d.ts +30 -0
  485. package/dist/data/clicky-export/useClickyExport.d.ts.map +1 -0
  486. package/dist/data/clicky-export/useClickyExport.js +44 -0
  487. package/dist/data/clicky-export/useClickyExport.js.map +1 -0
  488. package/dist/data/code-highlight.cjs +0 -6
  489. package/dist/data/code-highlight.cjs.map +1 -1
  490. package/dist/data/code-highlight.d.ts +4 -3
  491. package/dist/data/code-highlight.d.ts.map +1 -1
  492. package/dist/data/code-highlight.js +1 -7
  493. package/dist/data/code-highlight.js.map +1 -1
  494. package/dist/data/data-table-server-filters.cjs +15 -2
  495. package/dist/data/data-table-server-filters.cjs.map +1 -1
  496. package/dist/data/data-table-server-filters.d.ts +12 -1
  497. package/dist/data/data-table-server-filters.d.ts.map +1 -1
  498. package/dist/data/data-table-server-filters.js +15 -2
  499. package/dist/data/data-table-server-filters.js.map +1 -1
  500. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +6 -2
  501. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs.map +1 -1
  502. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +8 -1
  503. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  504. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +6 -2
  505. package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -1
  506. package/dist/data/diagnostics/ErrorDetails.cjs +58 -12
  507. package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
  508. package/dist/data/diagnostics/ErrorDetails.d.ts +5 -2
  509. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  510. package/dist/data/diagnostics/ErrorDetails.js +58 -12
  511. package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
  512. package/dist/data/diagnostics/FrameSourceWindow.cjs +54 -24
  513. package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
  514. package/dist/data/diagnostics/FrameSourceWindow.d.ts +2 -1
  515. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  516. package/dist/data/diagnostics/FrameSourceWindow.js +54 -24
  517. package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
  518. package/dist/data/diagnostics/FrameSourceWindow.utils.cjs.map +1 -1
  519. package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts +3 -0
  520. package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts.map +1 -1
  521. package/dist/data/diagnostics/FrameSourceWindow.utils.js.map +1 -1
  522. package/dist/data/diagnostics/JvmStackTrace.cjs +14 -30
  523. package/dist/data/diagnostics/JvmStackTrace.cjs.map +1 -1
  524. package/dist/data/diagnostics/JvmStackTrace.d.ts +6 -9
  525. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
  526. package/dist/data/diagnostics/JvmStackTrace.js +15 -31
  527. package/dist/data/diagnostics/JvmStackTrace.js.map +1 -1
  528. package/dist/data/diagnostics/RenderedStackTrace.cjs +14 -144
  529. package/dist/data/diagnostics/RenderedStackTrace.cjs.map +1 -1
  530. package/dist/data/diagnostics/RenderedStackTrace.d.ts +6 -6
  531. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
  532. package/dist/data/diagnostics/RenderedStackTrace.js +15 -145
  533. package/dist/data/diagnostics/RenderedStackTrace.js.map +1 -1
  534. package/dist/data/diagnostics/StackFrameRow.cjs +65 -0
  535. package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -0
  536. package/dist/data/diagnostics/StackFrameRow.d.ts +13 -0
  537. package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -0
  538. package/dist/data/diagnostics/StackFrameRow.js +65 -0
  539. package/dist/data/diagnostics/StackFrameRow.js.map +1 -0
  540. package/dist/data/diagnostics/ThreadCard.cjs +9 -2
  541. package/dist/data/diagnostics/ThreadCard.cjs.map +1 -1
  542. package/dist/data/diagnostics/ThreadCard.d.ts +3 -1
  543. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  544. package/dist/data/diagnostics/ThreadCard.js +9 -2
  545. package/dist/data/diagnostics/ThreadCard.js.map +1 -1
  546. package/dist/data/diagnostics/error-diagnostics.cjs +17 -2
  547. package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -1
  548. package/dist/data/diagnostics/error-diagnostics.d.ts +5 -0
  549. package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -1
  550. package/dist/data/diagnostics/error-diagnostics.js +17 -2
  551. package/dist/data/diagnostics/error-diagnostics.js.map +1 -1
  552. package/dist/data/diagnostics/frame-heuristics.cjs +26 -0
  553. package/dist/data/diagnostics/frame-heuristics.cjs.map +1 -0
  554. package/dist/data/diagnostics/frame-heuristics.d.ts +5 -0
  555. package/dist/data/diagnostics/frame-heuristics.d.ts.map +1 -0
  556. package/dist/data/diagnostics/frame-heuristics.js +26 -0
  557. package/dist/data/diagnostics/frame-heuristics.js.map +1 -0
  558. package/dist/data/diagnostics/jvm-stacktrace.cjs +5 -7
  559. package/dist/data/diagnostics/jvm-stacktrace.cjs.map +1 -1
  560. package/dist/data/diagnostics/jvm-stacktrace.d.ts.map +1 -1
  561. package/dist/data/diagnostics/jvm-stacktrace.js +5 -7
  562. package/dist/data/diagnostics/jvm-stacktrace.js.map +1 -1
  563. package/dist/data/diagnostics/stacktrace-parse.cjs +4 -9
  564. package/dist/data/diagnostics/stacktrace-parse.cjs.map +1 -1
  565. package/dist/data/diagnostics/stacktrace-parse.d.ts.map +1 -1
  566. package/dist/data/diagnostics/stacktrace-parse.js +4 -9
  567. package/dist/data/diagnostics/stacktrace-parse.js.map +1 -1
  568. package/dist/data/logs-normalize.cjs +18 -3
  569. package/dist/data/logs-normalize.cjs.map +1 -1
  570. package/dist/data/logs-normalize.d.ts +17 -0
  571. package/dist/data/logs-normalize.d.ts.map +1 -1
  572. package/dist/data/logs-normalize.js +18 -3
  573. package/dist/data/logs-normalize.js.map +1 -1
  574. package/dist/data/object-graph-nodes.cjs +24 -0
  575. package/dist/data/object-graph-nodes.cjs.map +1 -0
  576. package/dist/data/object-graph-nodes.d.ts +34 -0
  577. package/dist/data/object-graph-nodes.d.ts.map +1 -0
  578. package/dist/data/object-graph-nodes.js +24 -0
  579. package/dist/data/object-graph-nodes.js.map +1 -0
  580. package/dist/data/query-browser/QueryBrowser.cjs +52 -32
  581. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  582. package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
  583. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  584. package/dist/data/query-browser/QueryBrowser.js +53 -33
  585. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  586. package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -1
  587. package/dist/data/query-browser/QueryBrowser.types.d.ts +12 -0
  588. package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -1
  589. package/dist/data/query-browser/QueryBrowser.types.js.map +1 -1
  590. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs +58 -10
  591. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs.map +1 -1
  592. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -1
  593. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js +58 -10
  594. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js.map +1 -1
  595. package/dist/data/query-browser/QueryBrowserResults.cjs +4 -4
  596. package/dist/data/query-browser/QueryBrowserResults.cjs.map +1 -1
  597. package/dist/data/query-browser/QueryBrowserResults.d.ts +4 -2
  598. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -1
  599. package/dist/data/query-browser/QueryBrowserResults.js +4 -4
  600. package/dist/data/query-browser/QueryBrowserResults.js.map +1 -1
  601. package/dist/data/query-info/QueryInfoDialog.cjs +106 -0
  602. package/dist/data/query-info/QueryInfoDialog.cjs.map +1 -0
  603. package/dist/data/query-info/QueryInfoDialog.d.ts +16 -0
  604. package/dist/data/query-info/QueryInfoDialog.d.ts.map +1 -0
  605. package/dist/data/query-info/QueryInfoDialog.js +106 -0
  606. package/dist/data/query-info/QueryInfoDialog.js.map +1 -0
  607. package/dist/data/query-info/index.d.ts +4 -0
  608. package/dist/data/query-info/index.d.ts.map +1 -0
  609. package/dist/data/query-info/queryInfo.cjs +42 -0
  610. package/dist/data/query-info/queryInfo.cjs.map +1 -0
  611. package/dist/data/query-info/queryInfo.d.ts +45 -0
  612. package/dist/data/query-info/queryInfo.d.ts.map +1 -0
  613. package/dist/data/query-info/queryInfo.js +42 -0
  614. package/dist/data/query-info/queryInfo.js.map +1 -0
  615. package/dist/data/query-info/useQueryInfo.cjs +48 -0
  616. package/dist/data/query-info/useQueryInfo.cjs.map +1 -0
  617. package/dist/data/query-info/useQueryInfo.d.ts +26 -0
  618. package/dist/data/query-info/useQueryInfo.d.ts.map +1 -0
  619. package/dist/data/query-info/useQueryInfo.js +48 -0
  620. package/dist/data/query-info/useQueryInfo.js.map +1 -0
  621. package/dist/data/use-infinite-rows.cjs +20 -0
  622. package/dist/data/use-infinite-rows.cjs.map +1 -0
  623. package/dist/data/use-infinite-rows.d.ts +20 -0
  624. package/dist/data/use-infinite-rows.d.ts.map +1 -0
  625. package/dist/data/use-infinite-rows.js +20 -0
  626. package/dist/data/use-infinite-rows.js.map +1 -0
  627. package/dist/data/version-info.cjs +3 -3
  628. package/dist/data/version-info.js +3 -3
  629. package/dist/data.cjs +51 -1
  630. package/dist/data.cjs.map +1 -1
  631. package/dist/data.d.ts +11 -4
  632. package/dist/data.d.ts.map +1 -1
  633. package/dist/data.js +52 -2
  634. package/dist/data.js.map +1 -1
  635. package/dist/hooks/use-log-tail.cjs +213 -0
  636. package/dist/hooks/use-log-tail.cjs.map +1 -0
  637. package/dist/hooks/use-log-tail.d.ts +112 -0
  638. package/dist/hooks/use-log-tail.d.ts.map +1 -0
  639. package/dist/hooks/use-log-tail.js +213 -0
  640. package/dist/hooks/use-log-tail.js.map +1 -0
  641. package/dist/hooks.cjs +10 -0
  642. package/dist/hooks.cjs.map +1 -1
  643. package/dist/hooks.d.ts +2 -0
  644. package/dist/hooks.d.ts.map +1 -1
  645. package/dist/hooks.js +10 -0
  646. package/dist/hooks.js.map +1 -1
  647. package/dist/icons/components/UiArrowsCounterClockwise.cjs +15 -0
  648. package/dist/icons/components/UiArrowsCounterClockwise.cjs.map +1 -0
  649. package/dist/icons/components/UiArrowsCounterClockwise.d.ts +15 -0
  650. package/dist/icons/components/UiArrowsCounterClockwise.d.ts.map +1 -0
  651. package/dist/icons/components/UiArrowsCounterClockwise.js +15 -0
  652. package/dist/icons/components/UiArrowsCounterClockwise.js.map +1 -0
  653. package/dist/icons/components/UiClipboardText.cjs +15 -0
  654. package/dist/icons/components/UiClipboardText.cjs.map +1 -0
  655. package/dist/icons/components/UiClipboardText.d.ts +15 -0
  656. package/dist/icons/components/UiClipboardText.d.ts.map +1 -0
  657. package/dist/icons/components/UiClipboardText.js +15 -0
  658. package/dist/icons/components/UiClipboardText.js.map +1 -0
  659. package/dist/icons/components/UiIdentificationCard.cjs +15 -0
  660. package/dist/icons/components/UiIdentificationCard.cjs.map +1 -0
  661. package/dist/icons/components/UiIdentificationCard.d.ts +15 -0
  662. package/dist/icons/components/UiIdentificationCard.d.ts.map +1 -0
  663. package/dist/icons/components/UiIdentificationCard.js +15 -0
  664. package/dist/icons/components/UiIdentificationCard.js.map +1 -0
  665. package/dist/icons/components/UiLockKey.cjs +15 -0
  666. package/dist/icons/components/UiLockKey.cjs.map +1 -0
  667. package/dist/icons/components/UiLockKey.d.ts +15 -0
  668. package/dist/icons/components/UiLockKey.d.ts.map +1 -0
  669. package/dist/icons/components/UiLockKey.js +15 -0
  670. package/dist/icons/components/UiLockKey.js.map +1 -0
  671. package/dist/icons/components/UiSteps.cjs +15 -0
  672. package/dist/icons/components/UiSteps.cjs.map +1 -0
  673. package/dist/icons/components/UiSteps.d.ts +15 -0
  674. package/dist/icons/components/UiSteps.d.ts.map +1 -0
  675. package/dist/icons/components/UiSteps.js +15 -0
  676. package/dist/icons/components/UiSteps.js.map +1 -0
  677. package/dist/icons/components/UiUserGear.cjs +15 -0
  678. package/dist/icons/components/UiUserGear.cjs.map +1 -0
  679. package/dist/icons/components/UiUserGear.d.ts +15 -0
  680. package/dist/icons/components/UiUserGear.d.ts.map +1 -0
  681. package/dist/icons/components/UiUserGear.js +15 -0
  682. package/dist/icons/components/UiUserGear.js.map +1 -0
  683. package/dist/icons/components/UiUsersFour.cjs +15 -0
  684. package/dist/icons/components/UiUsersFour.cjs.map +1 -0
  685. package/dist/icons/components/UiUsersFour.d.ts +15 -0
  686. package/dist/icons/components/UiUsersFour.d.ts.map +1 -0
  687. package/dist/icons/components/UiUsersFour.js +15 -0
  688. package/dist/icons/components/UiUsersFour.js.map +1 -0
  689. package/dist/icons/index.d.ts +14 -0
  690. package/dist/icons/index.d.ts.map +1 -1
  691. package/dist/icons/registry.cjs +15 -1
  692. package/dist/icons/registry.cjs.map +1 -1
  693. package/dist/icons/registry.d.ts.map +1 -1
  694. package/dist/icons/registry.js +15 -1
  695. package/dist/icons/registry.js.map +1 -1
  696. package/dist/icons.cjs +21 -0
  697. package/dist/icons.cjs.map +1 -1
  698. package/dist/icons.js +21 -0
  699. package/dist/icons.js.map +1 -1
  700. package/dist/index.cjs +93 -1
  701. package/dist/index.cjs.map +1 -1
  702. package/dist/index.js +94 -2
  703. package/dist/index.js.map +1 -1
  704. package/dist/jotai.d.ts +1 -1
  705. package/dist/jotai.d.ts.map +1 -1
  706. package/dist/lib/collections.cjs +31 -0
  707. package/dist/lib/collections.cjs.map +1 -0
  708. package/dist/lib/collections.d.ts +6 -0
  709. package/dist/lib/collections.d.ts.map +1 -0
  710. package/dist/lib/collections.js +31 -0
  711. package/dist/lib/collections.js.map +1 -0
  712. package/dist/mdx-editor.cjs +12 -0
  713. package/dist/mdx-editor.cjs.map +1 -1
  714. package/dist/mdx-editor.css +1 -1
  715. package/dist/mdx-editor.d.ts +4 -1
  716. package/dist/mdx-editor.d.ts.map +1 -1
  717. package/dist/mdx-editor.js +13 -1
  718. package/dist/mdx-editor.js.map +1 -1
  719. package/dist/overlay/CommandPalette.cjs +1 -1
  720. package/dist/overlay/CommandPalette.cjs.map +1 -1
  721. package/dist/overlay/CommandPalette.js +1 -1
  722. package/dist/overlay/CommandPalette.js.map +1 -1
  723. package/dist/profiles/cel/celEditor.cjs +395 -0
  724. package/dist/profiles/cel/celEditor.cjs.map +1 -0
  725. package/dist/profiles/cel/celEditor.d.ts +51 -0
  726. package/dist/profiles/cel/celEditor.d.ts.map +1 -0
  727. package/dist/profiles/cel/celEditor.js +395 -0
  728. package/dist/profiles/cel/celEditor.js.map +1 -0
  729. package/dist/profiles/cel/celEditorExtension.cjs +15 -0
  730. package/dist/profiles/cel/celEditorExtension.cjs.map +1 -0
  731. package/dist/profiles/cel/celEditorExtension.d.ts +5 -0
  732. package/dist/profiles/cel/celEditorExtension.d.ts.map +1 -0
  733. package/dist/profiles/cel/celEditorExtension.js +15 -0
  734. package/dist/profiles/cel/celEditorExtension.js.map +1 -0
  735. package/dist/profiles/cel/celExpression.cjs +174 -0
  736. package/dist/profiles/cel/celExpression.cjs.map +1 -0
  737. package/dist/profiles/cel/celExpression.d.ts +138 -0
  738. package/dist/profiles/cel/celExpression.d.ts.map +1 -0
  739. package/dist/profiles/cel/celExpression.js +174 -0
  740. package/dist/profiles/cel/celExpression.js.map +1 -0
  741. package/dist/profiles/cel/celPath.cjs +47 -0
  742. package/dist/profiles/cel/celPath.cjs.map +1 -0
  743. package/dist/profiles/cel/celPath.d.ts +31 -0
  744. package/dist/profiles/cel/celPath.d.ts.map +1 -0
  745. package/dist/profiles/cel/celPath.js +47 -0
  746. package/dist/profiles/cel/celPath.js.map +1 -0
  747. package/dist/profiles/cel/index.d.ts +5 -0
  748. package/dist/profiles/cel/index.d.ts.map +1 -0
  749. package/dist/profiles/connections/catalogTree.cjs +133 -0
  750. package/dist/profiles/connections/catalogTree.cjs.map +1 -0
  751. package/dist/profiles/connections/catalogTree.d.ts.map +1 -0
  752. package/dist/profiles/connections/catalogTree.js +133 -0
  753. package/dist/profiles/connections/catalogTree.js.map +1 -0
  754. package/dist/profiles/connections/connectionBrowserModel.cjs +191 -0
  755. package/dist/profiles/connections/connectionBrowserModel.cjs.map +1 -0
  756. package/dist/profiles/connections/connectionBrowserModel.d.ts +177 -0
  757. package/dist/profiles/connections/connectionBrowserModel.d.ts.map +1 -0
  758. package/dist/profiles/connections/connectionBrowserModel.js +191 -0
  759. package/dist/profiles/connections/connectionBrowserModel.js.map +1 -0
  760. package/dist/profiles/connections/connectionQueryWorkspace.cjs +196 -0
  761. package/dist/profiles/connections/connectionQueryWorkspace.cjs.map +1 -0
  762. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +63 -0
  763. package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -0
  764. package/dist/profiles/connections/connectionQueryWorkspace.js +196 -0
  765. package/dist/profiles/connections/connectionQueryWorkspace.js.map +1 -0
  766. package/dist/profiles/connections/connectionQueryWorkspaceModel.cjs +28 -0
  767. package/dist/profiles/connections/connectionQueryWorkspaceModel.cjs.map +1 -0
  768. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts +38 -0
  769. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts.map +1 -0
  770. package/dist/profiles/connections/connectionQueryWorkspaceModel.js +28 -0
  771. package/dist/profiles/connections/connectionQueryWorkspaceModel.js.map +1 -0
  772. package/dist/profiles/connections/index.d.ts +5 -0
  773. package/dist/profiles/connections/index.d.ts.map +1 -0
  774. package/dist/profiles/editor/index.d.ts +12 -0
  775. package/dist/profiles/editor/index.d.ts.map +1 -0
  776. package/dist/profiles/editor/profileBuilder.cjs +65 -0
  777. package/dist/profiles/editor/profileBuilder.cjs.map +1 -0
  778. package/dist/profiles/editor/profileBuilder.d.ts.map +1 -0
  779. package/dist/profiles/editor/profileBuilder.js +65 -0
  780. package/dist/profiles/editor/profileBuilder.js.map +1 -0
  781. package/dist/profiles/editor/profileBuilderExtension.cjs.map +1 -0
  782. package/dist/profiles/editor/profileBuilderExtension.d.ts +5 -0
  783. package/dist/profiles/editor/profileBuilderExtension.d.ts.map +1 -0
  784. package/dist/profiles/editor/profileBuilderExtension.js.map +1 -0
  785. package/dist/profiles/editor/profileBuilderModel.cjs +44 -0
  786. package/dist/profiles/editor/profileBuilderModel.cjs.map +1 -0
  787. package/dist/profiles/editor/profileBuilderModel.d.ts +4 -0
  788. package/dist/profiles/editor/profileBuilderModel.d.ts.map +1 -0
  789. package/dist/profiles/editor/profileBuilderModel.js +44 -0
  790. package/dist/profiles/editor/profileBuilderModel.js.map +1 -0
  791. package/dist/profiles/editor/profileBuilderWorkspace.cjs +333 -0
  792. package/dist/profiles/editor/profileBuilderWorkspace.cjs.map +1 -0
  793. package/dist/profiles/editor/profileBuilderWorkspace.d.ts +21 -0
  794. package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -0
  795. package/dist/profiles/editor/profileBuilderWorkspace.js +333 -0
  796. package/dist/profiles/editor/profileBuilderWorkspace.js.map +1 -0
  797. package/dist/profiles/editor/profileEditor.cjs +471 -0
  798. package/dist/profiles/editor/profileEditor.cjs.map +1 -0
  799. package/dist/profiles/editor/profileEditor.d.ts +20 -0
  800. package/dist/profiles/editor/profileEditor.d.ts.map +1 -0
  801. package/dist/profiles/editor/profileEditor.js +471 -0
  802. package/dist/profiles/editor/profileEditor.js.map +1 -0
  803. package/dist/profiles/editor/profileEditorModel.cjs +206 -0
  804. package/dist/profiles/editor/profileEditorModel.cjs.map +1 -0
  805. package/dist/profiles/editor/profileEditorModel.d.ts +76 -0
  806. package/dist/profiles/editor/profileEditorModel.d.ts.map +1 -0
  807. package/dist/profiles/editor/profileEditorModel.js +206 -0
  808. package/dist/profiles/editor/profileEditorModel.js.map +1 -0
  809. package/dist/profiles/editor/profileEditorPreview.cjs.map +1 -0
  810. package/dist/profiles/editor/profileEditorPreview.d.ts +12 -0
  811. package/dist/profiles/editor/profileEditorPreview.d.ts.map +1 -0
  812. package/dist/profiles/editor/profileEditorPreview.js.map +1 -0
  813. package/dist/profiles/editor/profileEditorRail.cjs.map +1 -0
  814. package/dist/profiles/editor/profileEditorRail.d.ts.map +1 -0
  815. package/dist/profiles/editor/profileEditorRail.js.map +1 -0
  816. package/dist/profiles/editor/profileEditorRaw.cjs +118 -0
  817. package/dist/profiles/editor/profileEditorRaw.cjs.map +1 -0
  818. package/dist/profiles/editor/profileEditorRaw.d.ts +7 -0
  819. package/dist/profiles/editor/profileEditorRaw.d.ts.map +1 -0
  820. package/dist/profiles/editor/profileEditorRaw.js +118 -0
  821. package/dist/profiles/editor/profileEditorRaw.js.map +1 -0
  822. package/dist/profiles/editor/profileEditorRoutes.cjs.map +1 -0
  823. package/dist/profiles/editor/profileEditorRoutes.d.ts.map +1 -0
  824. package/dist/profiles/editor/profileEditorRoutes.js.map +1 -0
  825. package/dist/profiles/editor/profileEditorSections.cjs +247 -0
  826. package/dist/profiles/editor/profileEditorSections.cjs.map +1 -0
  827. package/dist/profiles/editor/profileEditorSections.d.ts +26 -0
  828. package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -0
  829. package/dist/profiles/editor/profileEditorSections.js +247 -0
  830. package/dist/profiles/editor/profileEditorSections.js.map +1 -0
  831. package/dist/profiles/editor/profileYaml.cjs +19 -0
  832. package/dist/profiles/editor/profileYaml.cjs.map +1 -0
  833. package/dist/profiles/editor/profileYaml.d.ts +4 -0
  834. package/dist/profiles/editor/profileYaml.d.ts.map +1 -0
  835. package/dist/profiles/editor/profileYaml.js +19 -0
  836. package/dist/profiles/editor/profileYaml.js.map +1 -0
  837. package/dist/profiles/editor/testSchema.d.ts +3 -0
  838. package/dist/profiles/editor/testSchema.d.ts.map +1 -0
  839. package/dist/profiles/elasticsearch/esFieldValues.cjs +57 -0
  840. package/dist/profiles/elasticsearch/esFieldValues.cjs.map +1 -0
  841. package/dist/profiles/elasticsearch/esFieldValues.d.ts +45 -0
  842. package/dist/profiles/elasticsearch/esFieldValues.d.ts.map +1 -0
  843. package/dist/profiles/elasticsearch/esFieldValues.js +57 -0
  844. package/dist/profiles/elasticsearch/esFieldValues.js.map +1 -0
  845. package/dist/profiles/elasticsearch/esParamMappingModel.cjs +301 -0
  846. package/dist/profiles/elasticsearch/esParamMappingModel.cjs.map +1 -0
  847. package/dist/profiles/elasticsearch/esParamMappingModel.d.ts +37 -0
  848. package/dist/profiles/elasticsearch/esParamMappingModel.d.ts.map +1 -0
  849. package/dist/profiles/elasticsearch/esParamMappingModel.js +301 -0
  850. package/dist/profiles/elasticsearch/esParamMappingModel.js.map +1 -0
  851. package/dist/profiles/elasticsearch/esParamMappingPill.cjs.map +1 -0
  852. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts.map +1 -0
  853. package/dist/profiles/elasticsearch/esParamMappingPill.js.map +1 -0
  854. package/dist/profiles/elasticsearch/esParamOperandExtension.cjs +75 -0
  855. package/dist/profiles/elasticsearch/esParamOperandExtension.cjs.map +1 -0
  856. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +11 -0
  857. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts.map +1 -0
  858. package/dist/profiles/elasticsearch/esParamOperandExtension.js +75 -0
  859. package/dist/profiles/elasticsearch/esParamOperandExtension.js.map +1 -0
  860. package/dist/profiles/elasticsearch/esQueryBuilder.cjs +249 -0
  861. package/dist/profiles/elasticsearch/esQueryBuilder.cjs.map +1 -0
  862. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +35 -0
  863. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -0
  864. package/dist/profiles/elasticsearch/esQueryBuilder.js +249 -0
  865. package/dist/profiles/elasticsearch/esQueryBuilder.js.map +1 -0
  866. package/dist/profiles/elasticsearch/esQueryBuilderExtension.cjs.map +1 -0
  867. package/dist/profiles/elasticsearch/esQueryBuilderExtension.d.ts +5 -0
  868. package/dist/profiles/elasticsearch/esQueryBuilderExtension.d.ts.map +1 -0
  869. package/dist/profiles/elasticsearch/esQueryBuilderExtension.js.map +1 -0
  870. package/dist/profiles/elasticsearch/esQueryBuilderForm.cjs +59 -0
  871. package/dist/profiles/elasticsearch/esQueryBuilderForm.cjs.map +1 -0
  872. package/dist/profiles/elasticsearch/esQueryBuilderForm.d.ts +25 -0
  873. package/dist/profiles/elasticsearch/esQueryBuilderForm.d.ts.map +1 -0
  874. package/dist/profiles/elasticsearch/esQueryBuilderForm.js +59 -0
  875. package/dist/profiles/elasticsearch/esQueryBuilderForm.js.map +1 -0
  876. package/dist/profiles/elasticsearch/esQueryBuilderModel.cjs.map +1 -0
  877. package/dist/profiles/elasticsearch/esQueryBuilderModel.d.ts +110 -0
  878. package/dist/profiles/elasticsearch/esQueryBuilderModel.d.ts.map +1 -0
  879. package/dist/profiles/elasticsearch/esQueryBuilderModel.js.map +1 -0
  880. package/dist/profiles/elasticsearch/esQueryClauseGroup.cjs +144 -0
  881. package/dist/profiles/elasticsearch/esQueryClauseGroup.cjs.map +1 -0
  882. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts.map +1 -0
  883. package/dist/profiles/elasticsearch/esQueryClauseGroup.js +144 -0
  884. package/dist/profiles/elasticsearch/esQueryClauseGroup.js.map +1 -0
  885. package/dist/profiles/elasticsearch/esQueryCompile.cjs +48 -0
  886. package/dist/profiles/elasticsearch/esQueryCompile.cjs.map +1 -0
  887. package/dist/profiles/elasticsearch/esQueryCompile.d.ts +40 -0
  888. package/dist/profiles/elasticsearch/esQueryCompile.d.ts.map +1 -0
  889. package/dist/profiles/elasticsearch/esQueryCompile.js +48 -0
  890. package/dist/profiles/elasticsearch/esQueryCompile.js.map +1 -0
  891. package/dist/profiles/elasticsearch/esQueryConditionRow.cjs +168 -0
  892. package/dist/profiles/elasticsearch/esQueryConditionRow.cjs.map +1 -0
  893. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +37 -0
  894. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts.map +1 -0
  895. package/dist/profiles/elasticsearch/esQueryConditionRow.js +168 -0
  896. package/dist/profiles/elasticsearch/esQueryConditionRow.js.map +1 -0
  897. package/dist/profiles/elasticsearch/esQueryGroupModel.cjs.map +1 -0
  898. package/dist/profiles/elasticsearch/esQueryGroupModel.d.ts.map +1 -0
  899. package/dist/profiles/elasticsearch/esQueryGroupModel.js.map +1 -0
  900. package/dist/profiles/elasticsearch/esQueryOccur.cjs.map +1 -0
  901. package/dist/profiles/elasticsearch/esQueryOccur.d.ts.map +1 -0
  902. package/dist/profiles/elasticsearch/esQueryOccur.js.map +1 -0
  903. package/dist/profiles/elasticsearch/esQueryOperandEditors.cjs +279 -0
  904. package/dist/profiles/elasticsearch/esQueryOperandEditors.cjs.map +1 -0
  905. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +24 -0
  906. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts.map +1 -0
  907. package/dist/profiles/elasticsearch/esQueryOperandEditors.js +279 -0
  908. package/dist/profiles/elasticsearch/esQueryOperandEditors.js.map +1 -0
  909. package/dist/profiles/elasticsearch/esQueryOperandModel.cjs.map +1 -0
  910. package/dist/profiles/elasticsearch/esQueryOperandModel.d.ts +17 -0
  911. package/dist/profiles/elasticsearch/esQueryOperandModel.d.ts.map +1 -0
  912. package/dist/profiles/elasticsearch/esQueryOperandModel.js.map +1 -0
  913. package/dist/profiles/elasticsearch/esQueryOperators.cjs +166 -0
  914. package/dist/profiles/elasticsearch/esQueryOperators.cjs.map +1 -0
  915. package/dist/profiles/elasticsearch/esQueryOperators.d.ts +84 -0
  916. package/dist/profiles/elasticsearch/esQueryOperators.d.ts.map +1 -0
  917. package/dist/profiles/elasticsearch/esQueryOperators.js +166 -0
  918. package/dist/profiles/elasticsearch/esQueryOperators.js.map +1 -0
  919. package/dist/profiles/elasticsearch/esQueryOutputEditor.cjs +138 -0
  920. package/dist/profiles/elasticsearch/esQueryOutputEditor.cjs.map +1 -0
  921. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +7 -0
  922. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts.map +1 -0
  923. package/dist/profiles/elasticsearch/esQueryOutputEditor.js +138 -0
  924. package/dist/profiles/elasticsearch/esQueryOutputEditor.js.map +1 -0
  925. package/dist/profiles/elasticsearch/esQueryOutputModel.cjs.map +1 -0
  926. package/dist/profiles/elasticsearch/esQueryOutputModel.d.ts.map +1 -0
  927. package/dist/profiles/elasticsearch/esQueryOutputModel.js.map +1 -0
  928. package/dist/profiles/elasticsearch/esQueryPreview.cjs.map +1 -0
  929. package/dist/profiles/elasticsearch/esQueryPreview.d.ts.map +1 -0
  930. package/dist/profiles/elasticsearch/esQueryPreview.js.map +1 -0
  931. package/dist/profiles/elasticsearch/esQuerySortEditor.cjs +143 -0
  932. package/dist/profiles/elasticsearch/esQuerySortEditor.cjs.map +1 -0
  933. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts.map +1 -0
  934. package/dist/profiles/elasticsearch/esQuerySortEditor.js +143 -0
  935. package/dist/profiles/elasticsearch/esQuerySortEditor.js.map +1 -0
  936. package/dist/profiles/elasticsearch/esQuerySortModel.cjs.map +1 -0
  937. package/dist/profiles/elasticsearch/esQuerySortModel.d.ts.map +1 -0
  938. package/dist/profiles/elasticsearch/esQuerySortModel.js.map +1 -0
  939. package/dist/profiles/elasticsearch/esValueCombobox.cjs +86 -0
  940. package/dist/profiles/elasticsearch/esValueCombobox.cjs.map +1 -0
  941. package/dist/profiles/elasticsearch/esValueCombobox.d.ts.map +1 -0
  942. package/dist/profiles/elasticsearch/esValueCombobox.js +86 -0
  943. package/dist/profiles/elasticsearch/esValueCombobox.js.map +1 -0
  944. package/dist/profiles/elasticsearch/index.d.ts +23 -0
  945. package/dist/profiles/elasticsearch/index.d.ts.map +1 -0
  946. package/dist/profiles/fields/index.d.ts +9 -0
  947. package/dist/profiles/fields/index.d.ts.map +1 -0
  948. package/dist/profiles/fields/profileColumnModel.cjs.map +1 -0
  949. package/dist/profiles/fields/profileColumnModel.d.ts +8 -0
  950. package/dist/profiles/fields/profileColumnModel.d.ts.map +1 -0
  951. package/dist/profiles/fields/profileColumnModel.js.map +1 -0
  952. package/dist/profiles/fields/profileColumnPicker.cjs +68 -0
  953. package/dist/profiles/fields/profileColumnPicker.cjs.map +1 -0
  954. package/dist/profiles/fields/profileColumnPicker.d.ts +11 -0
  955. package/dist/profiles/fields/profileColumnPicker.d.ts.map +1 -0
  956. package/dist/profiles/fields/profileColumnPicker.js +68 -0
  957. package/dist/profiles/fields/profileColumnPicker.js.map +1 -0
  958. package/dist/profiles/fields/profileFieldControls.cjs +50 -0
  959. package/dist/profiles/fields/profileFieldControls.cjs.map +1 -0
  960. package/dist/profiles/fields/profileFieldControls.d.ts +37 -0
  961. package/dist/profiles/fields/profileFieldControls.d.ts.map +1 -0
  962. package/dist/profiles/fields/profileFieldControls.js +50 -0
  963. package/dist/profiles/fields/profileFieldControls.js.map +1 -0
  964. package/dist/profiles/fields/profileFieldEditor.cjs +198 -0
  965. package/dist/profiles/fields/profileFieldEditor.cjs.map +1 -0
  966. package/dist/profiles/fields/profileFieldEditor.d.ts +34 -0
  967. package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -0
  968. package/dist/profiles/fields/profileFieldEditor.js +198 -0
  969. package/dist/profiles/fields/profileFieldEditor.js.map +1 -0
  970. package/dist/profiles/fields/profileFieldFilterEditor.cjs +122 -0
  971. package/dist/profiles/fields/profileFieldFilterEditor.cjs.map +1 -0
  972. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +16 -0
  973. package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -0
  974. package/dist/profiles/fields/profileFieldFilterEditor.js +122 -0
  975. package/dist/profiles/fields/profileFieldFilterEditor.js.map +1 -0
  976. package/dist/profiles/fields/profileFieldIcons.cjs +102 -0
  977. package/dist/profiles/fields/profileFieldIcons.cjs.map +1 -0
  978. package/dist/profiles/fields/profileFieldIcons.d.ts +10 -0
  979. package/dist/profiles/fields/profileFieldIcons.d.ts.map +1 -0
  980. package/dist/profiles/fields/profileFieldIcons.js +102 -0
  981. package/dist/profiles/fields/profileFieldIcons.js.map +1 -0
  982. package/dist/profiles/fields/profileFieldList.cjs +215 -0
  983. package/dist/profiles/fields/profileFieldList.cjs.map +1 -0
  984. package/dist/profiles/fields/profileFieldList.d.ts +24 -0
  985. package/dist/profiles/fields/profileFieldList.d.ts.map +1 -0
  986. package/dist/profiles/fields/profileFieldList.js +215 -0
  987. package/dist/profiles/fields/profileFieldList.js.map +1 -0
  988. package/dist/profiles/fields/profileFieldManager.cjs +103 -0
  989. package/dist/profiles/fields/profileFieldManager.cjs.map +1 -0
  990. package/dist/profiles/fields/profileFieldManager.d.ts.map +1 -0
  991. package/dist/profiles/fields/profileFieldManager.js +103 -0
  992. package/dist/profiles/fields/profileFieldManager.js.map +1 -0
  993. package/dist/profiles/fields/profileFieldState.cjs +136 -0
  994. package/dist/profiles/fields/profileFieldState.cjs.map +1 -0
  995. package/dist/profiles/fields/profileFieldState.d.ts +41 -0
  996. package/dist/profiles/fields/profileFieldState.d.ts.map +1 -0
  997. package/dist/profiles/fields/profileFieldState.js +136 -0
  998. package/dist/profiles/fields/profileFieldState.js.map +1 -0
  999. package/dist/profiles/fields/profileFieldTypes.cjs.map +1 -0
  1000. package/dist/profiles/fields/profileFieldTypes.d.ts +8 -0
  1001. package/dist/profiles/fields/profileFieldTypes.d.ts.map +1 -0
  1002. package/dist/profiles/fields/profileFieldTypes.js.map +1 -0
  1003. package/dist/profiles/fields/profileParamModel.cjs.map +1 -0
  1004. package/dist/profiles/fields/profileParamModel.d.ts +3 -0
  1005. package/dist/profiles/fields/profileParamModel.d.ts.map +1 -0
  1006. package/dist/profiles/fields/profileParamModel.js.map +1 -0
  1007. package/dist/profiles/processor/index.d.ts +6 -0
  1008. package/dist/profiles/processor/index.d.ts.map +1 -0
  1009. package/dist/profiles/processor/processorConfig.cjs +185 -0
  1010. package/dist/profiles/processor/processorConfig.cjs.map +1 -0
  1011. package/dist/profiles/processor/processorConfig.d.ts +34 -0
  1012. package/dist/profiles/processor/processorConfig.d.ts.map +1 -0
  1013. package/dist/profiles/processor/processorConfig.js +185 -0
  1014. package/dist/profiles/processor/processorConfig.js.map +1 -0
  1015. package/dist/profiles/processor/processorPipeline.cjs +300 -0
  1016. package/dist/profiles/processor/processorPipeline.cjs.map +1 -0
  1017. package/dist/profiles/processor/processorPipeline.d.ts +11 -0
  1018. package/dist/profiles/processor/processorPipeline.d.ts.map +1 -0
  1019. package/dist/profiles/processor/processorPipeline.js +300 -0
  1020. package/dist/profiles/processor/processorPipeline.js.map +1 -0
  1021. package/dist/profiles/processor/processorPipelineEditor.cjs +330 -0
  1022. package/dist/profiles/processor/processorPipelineEditor.cjs.map +1 -0
  1023. package/dist/profiles/processor/processorPipelineEditor.d.ts +16 -0
  1024. package/dist/profiles/processor/processorPipelineEditor.d.ts.map +1 -0
  1025. package/dist/profiles/processor/processorPipelineEditor.js +330 -0
  1026. package/dist/profiles/processor/processorPipelineEditor.js.map +1 -0
  1027. package/dist/profiles/processor/processorPipelineExtension.cjs +28 -0
  1028. package/dist/profiles/processor/processorPipelineExtension.cjs.map +1 -0
  1029. package/dist/profiles/processor/processorPipelineExtension.d.ts +5 -0
  1030. package/dist/profiles/processor/processorPipelineExtension.d.ts.map +1 -0
  1031. package/dist/profiles/processor/processorPipelineExtension.js +28 -0
  1032. package/dist/profiles/processor/processorPipelineExtension.js.map +1 -0
  1033. package/dist/profiles/processor/processorPreview.cjs +55 -0
  1034. package/dist/profiles/processor/processorPreview.cjs.map +1 -0
  1035. package/dist/profiles/processor/processorPreview.d.ts +20 -0
  1036. package/dist/profiles/processor/processorPreview.d.ts.map +1 -0
  1037. package/dist/profiles/processor/processorPreview.js +55 -0
  1038. package/dist/profiles/processor/processorPreview.js.map +1 -0
  1039. package/dist/profiles/processor/processorPreviewTable.cjs +103 -0
  1040. package/dist/profiles/processor/processorPreviewTable.cjs.map +1 -0
  1041. package/dist/profiles/processor/processorPreviewTable.d.ts +6 -0
  1042. package/dist/profiles/processor/processorPreviewTable.d.ts.map +1 -0
  1043. package/dist/profiles/processor/processorPreviewTable.js +103 -0
  1044. package/dist/profiles/processor/processorPreviewTable.js.map +1 -0
  1045. package/dist/profiles/processor/processorSampleParams.cjs +38 -0
  1046. package/dist/profiles/processor/processorSampleParams.cjs.map +1 -0
  1047. package/dist/profiles/processor/processorSampleParams.d.ts +6 -0
  1048. package/dist/profiles/processor/processorSampleParams.d.ts.map +1 -0
  1049. package/dist/profiles/processor/processorSampleParams.js +38 -0
  1050. package/dist/profiles/processor/processorSampleParams.js.map +1 -0
  1051. package/dist/profiles/profileApi.cjs +16 -0
  1052. package/dist/profiles/profileApi.cjs.map +1 -1
  1053. package/dist/profiles/profileApi.d.ts +36 -3
  1054. package/dist/profiles/profileApi.d.ts.map +1 -1
  1055. package/dist/profiles/profileApi.js +16 -0
  1056. package/dist/profiles/profileApi.js.map +1 -1
  1057. package/dist/profiles/query/index.d.ts +9 -0
  1058. package/dist/profiles/query/index.d.ts.map +1 -0
  1059. package/dist/profiles/query/jsonPathSample.cjs +75 -0
  1060. package/dist/profiles/query/jsonPathSample.cjs.map +1 -0
  1061. package/dist/profiles/query/jsonPathSample.d.ts +27 -0
  1062. package/dist/profiles/query/jsonPathSample.d.ts.map +1 -0
  1063. package/dist/profiles/query/jsonPathSample.js +75 -0
  1064. package/dist/profiles/query/jsonPathSample.js.map +1 -0
  1065. package/dist/profiles/query/jsonPathSampleRow.cjs.map +1 -0
  1066. package/dist/profiles/query/jsonPathSampleRow.d.ts.map +1 -0
  1067. package/dist/profiles/query/jsonPathSampleRow.js.map +1 -0
  1068. package/dist/profiles/query/kubernetesWorkloadTarget.cjs +43 -0
  1069. package/dist/profiles/query/kubernetesWorkloadTarget.cjs.map +1 -0
  1070. package/dist/profiles/query/kubernetesWorkloadTarget.d.ts +3 -0
  1071. package/dist/profiles/query/kubernetesWorkloadTarget.d.ts.map +1 -0
  1072. package/dist/profiles/query/kubernetesWorkloadTarget.js +43 -0
  1073. package/dist/profiles/query/kubernetesWorkloadTarget.js.map +1 -0
  1074. package/dist/profiles/query/kubernetesWorkloadTargetPicker.cjs +53 -0
  1075. package/dist/profiles/query/kubernetesWorkloadTargetPicker.cjs.map +1 -0
  1076. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +12 -0
  1077. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts.map +1 -0
  1078. package/dist/profiles/query/kubernetesWorkloadTargetPicker.js +53 -0
  1079. package/dist/profiles/query/kubernetesWorkloadTargetPicker.js.map +1 -0
  1080. package/dist/profiles/query/profileSamplePayload.cjs.map +1 -0
  1081. package/dist/profiles/query/profileSamplePayload.d.ts +13 -0
  1082. package/dist/profiles/query/profileSamplePayload.d.ts.map +1 -0
  1083. package/dist/profiles/query/profileSamplePayload.js.map +1 -0
  1084. package/dist/profiles/query/prometheusResults.cjs +60 -0
  1085. package/dist/profiles/query/prometheusResults.cjs.map +1 -0
  1086. package/dist/profiles/query/prometheusResults.d.ts +7 -0
  1087. package/dist/profiles/query/prometheusResults.d.ts.map +1 -0
  1088. package/dist/profiles/query/prometheusResults.js +60 -0
  1089. package/dist/profiles/query/prometheusResults.js.map +1 -0
  1090. package/dist/profiles/query/queryRowLimits.cjs +82 -0
  1091. package/dist/profiles/query/queryRowLimits.cjs.map +1 -0
  1092. package/dist/profiles/query/queryRowLimits.d.ts +9 -0
  1093. package/dist/profiles/query/queryRowLimits.d.ts.map +1 -0
  1094. package/dist/profiles/query/queryRowLimits.js +82 -0
  1095. package/dist/profiles/query/queryRowLimits.js.map +1 -0
  1096. package/dist/profiles/query/queryRowLimitsModel.cjs.map +1 -0
  1097. package/dist/profiles/query/queryRowLimitsModel.d.ts +9 -0
  1098. package/dist/profiles/query/queryRowLimitsModel.d.ts.map +1 -0
  1099. package/dist/profiles/query/queryRowLimitsModel.js.map +1 -0
  1100. package/dist/profiles/query/queryTargetPicker.cjs +42 -0
  1101. package/dist/profiles/query/queryTargetPicker.cjs.map +1 -0
  1102. package/dist/profiles/query/queryTargetPicker.d.ts +8 -0
  1103. package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -0
  1104. package/dist/profiles/query/queryTargetPicker.js +42 -0
  1105. package/dist/profiles/query/queryTargetPicker.js.map +1 -0
  1106. package/dist/profiles/wizard/index.d.ts +6 -0
  1107. package/dist/profiles/wizard/index.d.ts.map +1 -0
  1108. package/dist/profiles/wizard/profileWizard.cjs +257 -0
  1109. package/dist/profiles/wizard/profileWizard.cjs.map +1 -0
  1110. package/dist/profiles/wizard/profileWizard.d.ts +12 -0
  1111. package/dist/profiles/wizard/profileWizard.d.ts.map +1 -0
  1112. package/dist/profiles/wizard/profileWizard.js +257 -0
  1113. package/dist/profiles/wizard/profileWizard.js.map +1 -0
  1114. package/dist/profiles/wizard/profileWizardHelp.cjs.map +1 -0
  1115. package/dist/profiles/wizard/profileWizardHelp.d.ts.map +1 -0
  1116. package/dist/profiles/wizard/profileWizardHelp.js.map +1 -0
  1117. package/dist/profiles/wizard/profileWizardModel.cjs +204 -0
  1118. package/dist/profiles/wizard/profileWizardModel.cjs.map +1 -0
  1119. package/dist/profiles/wizard/profileWizardModel.d.ts +266 -0
  1120. package/dist/profiles/wizard/profileWizardModel.d.ts.map +1 -0
  1121. package/dist/profiles/wizard/profileWizardModel.js +204 -0
  1122. package/dist/profiles/wizard/profileWizardModel.js.map +1 -0
  1123. package/dist/profiles/wizard/profileWizardQueryStep.cjs +215 -0
  1124. package/dist/profiles/wizard/profileWizardQueryStep.cjs.map +1 -0
  1125. package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -0
  1126. package/dist/profiles/wizard/profileWizardQueryStep.js +215 -0
  1127. package/dist/profiles/wizard/profileWizardQueryStep.js.map +1 -0
  1128. package/dist/profiles/wizard/profileWizardSteps.cjs +214 -0
  1129. package/dist/profiles/wizard/profileWizardSteps.cjs.map +1 -0
  1130. package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -0
  1131. package/dist/profiles/wizard/profileWizardSteps.js +214 -0
  1132. package/dist/profiles/wizard/profileWizardSteps.js.map +1 -0
  1133. package/dist/profiles.cjs +237 -178
  1134. package/dist/profiles.cjs.map +1 -1
  1135. package/dist/profiles.d.ts +8 -55
  1136. package/dist/profiles.d.ts.map +1 -1
  1137. package/dist/profiles.js +117 -58
  1138. package/dist/profiles.js.map +1 -1
  1139. package/dist/rpc/ChatLayer.cjs +27 -0
  1140. package/dist/rpc/ChatLayer.cjs.map +1 -0
  1141. package/dist/rpc/ChatLayer.d.ts +11 -0
  1142. package/dist/rpc/ChatLayer.d.ts.map +1 -0
  1143. package/dist/rpc/ChatLayer.js +27 -0
  1144. package/dist/rpc/ChatLayer.js.map +1 -0
  1145. package/dist/rpc/CommandForm.cjs +9 -19
  1146. package/dist/rpc/CommandForm.cjs.map +1 -1
  1147. package/dist/rpc/CommandForm.d.ts +8 -2
  1148. package/dist/rpc/CommandForm.d.ts.map +1 -1
  1149. package/dist/rpc/CommandForm.js +10 -20
  1150. package/dist/rpc/CommandForm.js.map +1 -1
  1151. package/dist/rpc/CommandOutput.cjs +29 -4
  1152. package/dist/rpc/CommandOutput.cjs.map +1 -1
  1153. package/dist/rpc/CommandOutput.d.ts +6 -2
  1154. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  1155. package/dist/rpc/CommandOutput.js +29 -4
  1156. package/dist/rpc/CommandOutput.js.map +1 -1
  1157. package/dist/rpc/EndpointList.cjs +1 -1
  1158. package/dist/rpc/EndpointList.cjs.map +1 -1
  1159. package/dist/rpc/EndpointList.js +1 -1
  1160. package/dist/rpc/EndpointList.js.map +1 -1
  1161. package/dist/rpc/EntityExplorerApp.cjs +4 -1
  1162. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  1163. package/dist/rpc/EntityExplorerApp.d.ts +3 -1
  1164. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  1165. package/dist/rpc/EntityExplorerApp.js +4 -1
  1166. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  1167. package/dist/rpc/FilterForm.cjs +66 -80
  1168. package/dist/rpc/FilterForm.cjs.map +1 -1
  1169. package/dist/rpc/FilterForm.d.ts.map +1 -1
  1170. package/dist/rpc/FilterForm.js +68 -82
  1171. package/dist/rpc/FilterForm.js.map +1 -1
  1172. package/dist/rpc/InlineError.cjs +19 -2
  1173. package/dist/rpc/InlineError.cjs.map +1 -1
  1174. package/dist/rpc/InlineError.d.ts +5 -1
  1175. package/dist/rpc/InlineError.d.ts.map +1 -1
  1176. package/dist/rpc/InlineError.js +19 -2
  1177. package/dist/rpc/InlineError.js.map +1 -1
  1178. package/dist/rpc/OperationActionDialog.cjs +3 -3
  1179. package/dist/rpc/OperationActionDialog.cjs.map +1 -1
  1180. package/dist/rpc/OperationActionDialog.js +3 -3
  1181. package/dist/rpc/OperationActionDialog.js.map +1 -1
  1182. package/dist/rpc/OperationCatalog.cjs +96 -100
  1183. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  1184. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  1185. package/dist/rpc/OperationCatalog.js +98 -102
  1186. package/dist/rpc/OperationCatalog.js.map +1 -1
  1187. package/dist/rpc/OperationCommandPage.cjs +26 -14
  1188. package/dist/rpc/OperationCommandPage.cjs.map +1 -1
  1189. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  1190. package/dist/rpc/OperationCommandPage.js +28 -16
  1191. package/dist/rpc/OperationCommandPage.js.map +1 -1
  1192. package/dist/rpc/OperationEntityContextPicker.cjs +25 -13
  1193. package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -1
  1194. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
  1195. package/dist/rpc/OperationEntityContextPicker.js +26 -14
  1196. package/dist/rpc/OperationEntityContextPicker.js.map +1 -1
  1197. package/dist/rpc/OperationEntityPage.cjs +2 -8
  1198. package/dist/rpc/OperationEntityPage.cjs.map +1 -1
  1199. package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
  1200. package/dist/rpc/OperationEntityPage.js +2 -8
  1201. package/dist/rpc/OperationEntityPage.js.map +1 -1
  1202. package/dist/rpc/OperationResultView.cjs +13 -2
  1203. package/dist/rpc/OperationResultView.cjs.map +1 -1
  1204. package/dist/rpc/OperationResultView.d.ts +34 -2
  1205. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  1206. package/dist/rpc/OperationResultView.js +13 -2
  1207. package/dist/rpc/OperationResultView.js.map +1 -1
  1208. package/dist/rpc/apiClient.cjs +28 -4
  1209. package/dist/rpc/apiClient.cjs.map +1 -1
  1210. package/dist/rpc/apiClient.d.ts +19 -9
  1211. package/dist/rpc/apiClient.d.ts.map +1 -1
  1212. package/dist/rpc/apiClient.js +29 -5
  1213. package/dist/rpc/apiClient.js.map +1 -1
  1214. package/dist/rpc/cursorStale.cjs +35 -0
  1215. package/dist/rpc/cursorStale.cjs.map +1 -0
  1216. package/dist/rpc/cursorStale.d.ts +23 -0
  1217. package/dist/rpc/cursorStale.d.ts.map +1 -0
  1218. package/dist/rpc/cursorStale.js +35 -0
  1219. package/dist/rpc/cursorStale.js.map +1 -0
  1220. package/dist/rpc/executionPages.cjs +94 -0
  1221. package/dist/rpc/executionPages.cjs.map +1 -0
  1222. package/dist/rpc/executionPages.d.ts +18 -0
  1223. package/dist/rpc/executionPages.d.ts.map +1 -0
  1224. package/dist/rpc/executionPages.js +94 -0
  1225. package/dist/rpc/executionPages.js.map +1 -0
  1226. package/dist/rpc/filterShapes.cjs +17 -0
  1227. package/dist/rpc/filterShapes.cjs.map +1 -0
  1228. package/dist/rpc/filterShapes.d.ts +22 -0
  1229. package/dist/rpc/filterShapes.d.ts.map +1 -0
  1230. package/dist/rpc/filterShapes.js +17 -0
  1231. package/dist/rpc/filterShapes.js.map +1 -0
  1232. package/dist/rpc/formMetadata.cjs +228 -57
  1233. package/dist/rpc/formMetadata.cjs.map +1 -1
  1234. package/dist/rpc/formMetadata.d.ts +19 -2
  1235. package/dist/rpc/formMetadata.d.ts.map +1 -1
  1236. package/dist/rpc/formMetadata.js +230 -59
  1237. package/dist/rpc/formMetadata.js.map +1 -1
  1238. package/dist/rpc/operationErrorDiagnostics.cjs +100 -0
  1239. package/dist/rpc/operationErrorDiagnostics.cjs.map +1 -0
  1240. package/dist/rpc/operationErrorDiagnostics.d.ts +4 -0
  1241. package/dist/rpc/operationErrorDiagnostics.d.ts.map +1 -0
  1242. package/dist/rpc/operationErrorDiagnostics.js +100 -0
  1243. package/dist/rpc/operationErrorDiagnostics.js.map +1 -0
  1244. package/dist/rpc/operationFilterSearch.cjs +1 -1
  1245. package/dist/rpc/operationFilterSearch.cjs.map +1 -1
  1246. package/dist/rpc/operationFilterSearch.js +2 -2
  1247. package/dist/rpc/operationFilterSearch.js.map +1 -1
  1248. package/dist/rpc/rpc-story.fixtures.d.ts.map +1 -1
  1249. package/dist/rpc/types.cjs.map +1 -1
  1250. package/dist/rpc/types.d.ts +55 -3
  1251. package/dist/rpc/types.d.ts.map +1 -1
  1252. package/dist/rpc/types.js.map +1 -1
  1253. package/dist/rpc/useOperationPages.cjs +111 -0
  1254. package/dist/rpc/useOperationPages.cjs.map +1 -0
  1255. package/dist/rpc/useOperationPages.d.ts +46 -0
  1256. package/dist/rpc/useOperationPages.d.ts.map +1 -0
  1257. package/dist/rpc/useOperationPages.js +111 -0
  1258. package/dist/rpc/useOperationPages.js.map +1 -0
  1259. package/dist/rpc/useOperations.cjs +7 -4
  1260. package/dist/rpc/useOperations.cjs.map +1 -1
  1261. package/dist/rpc/useOperations.d.ts +4 -4
  1262. package/dist/rpc/useOperations.d.ts.map +1 -1
  1263. package/dist/rpc/useOperations.js +7 -4
  1264. package/dist/rpc/useOperations.js.map +1 -1
  1265. package/dist/rpc.cjs +2 -0
  1266. package/dist/rpc.cjs.map +1 -1
  1267. package/dist/rpc.d.ts +3 -2
  1268. package/dist/rpc.d.ts.map +1 -1
  1269. package/dist/rpc.js +2 -0
  1270. package/dist/rpc.js.map +1 -1
  1271. package/dist/styles.css +2 -2
  1272. package/dist/tailwind-preset.cjs +6 -3
  1273. package/dist/tailwind-preset.cjs.map +1 -1
  1274. package/dist/tailwind-preset.d.ts.map +1 -1
  1275. package/dist/tailwind-preset.js +6 -3
  1276. package/dist/tailwind-preset.js.map +1 -1
  1277. package/dist/utils.cjs +6 -0
  1278. package/dist/utils.cjs.map +1 -1
  1279. package/dist/utils.d.ts +1 -0
  1280. package/dist/utils.d.ts.map +1 -1
  1281. package/dist/utils.js +6 -0
  1282. package/dist/utils.js.map +1 -1
  1283. package/package.json +6 -5
  1284. package/dist/profiles/catalogTree.cjs +0 -133
  1285. package/dist/profiles/catalogTree.cjs.map +0 -1
  1286. package/dist/profiles/catalogTree.d.ts.map +0 -1
  1287. package/dist/profiles/catalogTree.js +0 -133
  1288. package/dist/profiles/catalogTree.js.map +0 -1
  1289. package/dist/profiles/connectionBrowserModel.cjs +0 -185
  1290. package/dist/profiles/connectionBrowserModel.cjs.map +0 -1
  1291. package/dist/profiles/connectionBrowserModel.d.ts +0 -169
  1292. package/dist/profiles/connectionBrowserModel.d.ts.map +0 -1
  1293. package/dist/profiles/connectionBrowserModel.js +0 -185
  1294. package/dist/profiles/connectionBrowserModel.js.map +0 -1
  1295. package/dist/profiles/connectionQueryWorkspace.cjs +0 -185
  1296. package/dist/profiles/connectionQueryWorkspace.cjs.map +0 -1
  1297. package/dist/profiles/connectionQueryWorkspace.d.ts +0 -63
  1298. package/dist/profiles/connectionQueryWorkspace.d.ts.map +0 -1
  1299. package/dist/profiles/connectionQueryWorkspace.js +0 -185
  1300. package/dist/profiles/connectionQueryWorkspace.js.map +0 -1
  1301. package/dist/profiles/connectionQueryWorkspaceModel.cjs +0 -28
  1302. package/dist/profiles/connectionQueryWorkspaceModel.cjs.map +0 -1
  1303. package/dist/profiles/connectionQueryWorkspaceModel.d.ts +0 -38
  1304. package/dist/profiles/connectionQueryWorkspaceModel.d.ts.map +0 -1
  1305. package/dist/profiles/connectionQueryWorkspaceModel.js +0 -28
  1306. package/dist/profiles/connectionQueryWorkspaceModel.js.map +0 -1
  1307. package/dist/profiles/esFieldValues.cjs +0 -64
  1308. package/dist/profiles/esFieldValues.cjs.map +0 -1
  1309. package/dist/profiles/esFieldValues.d.ts +0 -48
  1310. package/dist/profiles/esFieldValues.d.ts.map +0 -1
  1311. package/dist/profiles/esFieldValues.js +0 -64
  1312. package/dist/profiles/esFieldValues.js.map +0 -1
  1313. package/dist/profiles/esParamMappingModel.cjs +0 -301
  1314. package/dist/profiles/esParamMappingModel.cjs.map +0 -1
  1315. package/dist/profiles/esParamMappingModel.d.ts +0 -37
  1316. package/dist/profiles/esParamMappingModel.d.ts.map +0 -1
  1317. package/dist/profiles/esParamMappingModel.js +0 -301
  1318. package/dist/profiles/esParamMappingModel.js.map +0 -1
  1319. package/dist/profiles/esParamMappingPill.cjs.map +0 -1
  1320. package/dist/profiles/esParamMappingPill.d.ts.map +0 -1
  1321. package/dist/profiles/esParamMappingPill.js.map +0 -1
  1322. package/dist/profiles/esParamOperandExtension.cjs +0 -75
  1323. package/dist/profiles/esParamOperandExtension.cjs.map +0 -1
  1324. package/dist/profiles/esParamOperandExtension.d.ts +0 -11
  1325. package/dist/profiles/esParamOperandExtension.d.ts.map +0 -1
  1326. package/dist/profiles/esParamOperandExtension.js +0 -75
  1327. package/dist/profiles/esParamOperandExtension.js.map +0 -1
  1328. package/dist/profiles/esQueryBuilder.cjs +0 -205
  1329. package/dist/profiles/esQueryBuilder.cjs.map +0 -1
  1330. package/dist/profiles/esQueryBuilder.d.ts +0 -35
  1331. package/dist/profiles/esQueryBuilder.d.ts.map +0 -1
  1332. package/dist/profiles/esQueryBuilder.js +0 -205
  1333. package/dist/profiles/esQueryBuilder.js.map +0 -1
  1334. package/dist/profiles/esQueryBuilderExtension.cjs.map +0 -1
  1335. package/dist/profiles/esQueryBuilderExtension.d.ts +0 -5
  1336. package/dist/profiles/esQueryBuilderExtension.d.ts.map +0 -1
  1337. package/dist/profiles/esQueryBuilderExtension.js.map +0 -1
  1338. package/dist/profiles/esQueryBuilderForm.cjs +0 -26
  1339. package/dist/profiles/esQueryBuilderForm.cjs.map +0 -1
  1340. package/dist/profiles/esQueryBuilderForm.d.ts +0 -18
  1341. package/dist/profiles/esQueryBuilderForm.d.ts.map +0 -1
  1342. package/dist/profiles/esQueryBuilderForm.js +0 -26
  1343. package/dist/profiles/esQueryBuilderForm.js.map +0 -1
  1344. package/dist/profiles/esQueryBuilderModel.cjs.map +0 -1
  1345. package/dist/profiles/esQueryBuilderModel.d.ts +0 -108
  1346. package/dist/profiles/esQueryBuilderModel.d.ts.map +0 -1
  1347. package/dist/profiles/esQueryBuilderModel.js.map +0 -1
  1348. package/dist/profiles/esQueryClauseGroup.cjs +0 -144
  1349. package/dist/profiles/esQueryClauseGroup.cjs.map +0 -1
  1350. package/dist/profiles/esQueryClauseGroup.d.ts.map +0 -1
  1351. package/dist/profiles/esQueryClauseGroup.js +0 -144
  1352. package/dist/profiles/esQueryClauseGroup.js.map +0 -1
  1353. package/dist/profiles/esQueryCompile.cjs +0 -47
  1354. package/dist/profiles/esQueryCompile.cjs.map +0 -1
  1355. package/dist/profiles/esQueryCompile.d.ts +0 -39
  1356. package/dist/profiles/esQueryCompile.d.ts.map +0 -1
  1357. package/dist/profiles/esQueryCompile.js +0 -47
  1358. package/dist/profiles/esQueryCompile.js.map +0 -1
  1359. package/dist/profiles/esQueryConditionRow.cjs +0 -168
  1360. package/dist/profiles/esQueryConditionRow.cjs.map +0 -1
  1361. package/dist/profiles/esQueryConditionRow.d.ts +0 -37
  1362. package/dist/profiles/esQueryConditionRow.d.ts.map +0 -1
  1363. package/dist/profiles/esQueryConditionRow.js +0 -168
  1364. package/dist/profiles/esQueryConditionRow.js.map +0 -1
  1365. package/dist/profiles/esQueryGroupModel.cjs.map +0 -1
  1366. package/dist/profiles/esQueryGroupModel.d.ts.map +0 -1
  1367. package/dist/profiles/esQueryGroupModel.js.map +0 -1
  1368. package/dist/profiles/esQueryOccur.cjs.map +0 -1
  1369. package/dist/profiles/esQueryOccur.d.ts.map +0 -1
  1370. package/dist/profiles/esQueryOccur.js.map +0 -1
  1371. package/dist/profiles/esQueryOperandEditors.cjs +0 -279
  1372. package/dist/profiles/esQueryOperandEditors.cjs.map +0 -1
  1373. package/dist/profiles/esQueryOperandEditors.d.ts +0 -24
  1374. package/dist/profiles/esQueryOperandEditors.d.ts.map +0 -1
  1375. package/dist/profiles/esQueryOperandEditors.js +0 -279
  1376. package/dist/profiles/esQueryOperandEditors.js.map +0 -1
  1377. package/dist/profiles/esQueryOperandModel.cjs.map +0 -1
  1378. package/dist/profiles/esQueryOperandModel.d.ts +0 -17
  1379. package/dist/profiles/esQueryOperandModel.d.ts.map +0 -1
  1380. package/dist/profiles/esQueryOperandModel.js.map +0 -1
  1381. package/dist/profiles/esQueryOperators.cjs +0 -165
  1382. package/dist/profiles/esQueryOperators.cjs.map +0 -1
  1383. package/dist/profiles/esQueryOperators.d.ts +0 -83
  1384. package/dist/profiles/esQueryOperators.d.ts.map +0 -1
  1385. package/dist/profiles/esQueryOperators.js +0 -165
  1386. package/dist/profiles/esQueryOperators.js.map +0 -1
  1387. package/dist/profiles/esQueryOutputEditor.cjs +0 -138
  1388. package/dist/profiles/esQueryOutputEditor.cjs.map +0 -1
  1389. package/dist/profiles/esQueryOutputEditor.d.ts +0 -7
  1390. package/dist/profiles/esQueryOutputEditor.d.ts.map +0 -1
  1391. package/dist/profiles/esQueryOutputEditor.js +0 -138
  1392. package/dist/profiles/esQueryOutputEditor.js.map +0 -1
  1393. package/dist/profiles/esQueryOutputModel.cjs.map +0 -1
  1394. package/dist/profiles/esQueryOutputModel.d.ts.map +0 -1
  1395. package/dist/profiles/esQueryOutputModel.js.map +0 -1
  1396. package/dist/profiles/esQueryPreview.cjs.map +0 -1
  1397. package/dist/profiles/esQueryPreview.d.ts.map +0 -1
  1398. package/dist/profiles/esQueryPreview.js.map +0 -1
  1399. package/dist/profiles/esQuerySortEditor.cjs +0 -143
  1400. package/dist/profiles/esQuerySortEditor.cjs.map +0 -1
  1401. package/dist/profiles/esQuerySortEditor.d.ts.map +0 -1
  1402. package/dist/profiles/esQuerySortEditor.js +0 -143
  1403. package/dist/profiles/esQuerySortEditor.js.map +0 -1
  1404. package/dist/profiles/esQuerySortModel.cjs.map +0 -1
  1405. package/dist/profiles/esQuerySortModel.d.ts.map +0 -1
  1406. package/dist/profiles/esQuerySortModel.js.map +0 -1
  1407. package/dist/profiles/esValueCombobox.cjs +0 -86
  1408. package/dist/profiles/esValueCombobox.cjs.map +0 -1
  1409. package/dist/profiles/esValueCombobox.d.ts.map +0 -1
  1410. package/dist/profiles/esValueCombobox.js +0 -86
  1411. package/dist/profiles/esValueCombobox.js.map +0 -1
  1412. package/dist/profiles/jsonPathSample.cjs +0 -75
  1413. package/dist/profiles/jsonPathSample.cjs.map +0 -1
  1414. package/dist/profiles/jsonPathSample.d.ts +0 -27
  1415. package/dist/profiles/jsonPathSample.d.ts.map +0 -1
  1416. package/dist/profiles/jsonPathSample.js +0 -75
  1417. package/dist/profiles/jsonPathSample.js.map +0 -1
  1418. package/dist/profiles/jsonPathSampleRow.cjs.map +0 -1
  1419. package/dist/profiles/jsonPathSampleRow.d.ts.map +0 -1
  1420. package/dist/profiles/jsonPathSampleRow.js.map +0 -1
  1421. package/dist/profiles/profileBuilder.cjs +0 -65
  1422. package/dist/profiles/profileBuilder.cjs.map +0 -1
  1423. package/dist/profiles/profileBuilder.d.ts.map +0 -1
  1424. package/dist/profiles/profileBuilder.js +0 -65
  1425. package/dist/profiles/profileBuilder.js.map +0 -1
  1426. package/dist/profiles/profileBuilderExtension.cjs.map +0 -1
  1427. package/dist/profiles/profileBuilderExtension.d.ts +0 -5
  1428. package/dist/profiles/profileBuilderExtension.d.ts.map +0 -1
  1429. package/dist/profiles/profileBuilderExtension.js.map +0 -1
  1430. package/dist/profiles/profileBuilderWorkspace.cjs +0 -368
  1431. package/dist/profiles/profileBuilderWorkspace.cjs.map +0 -1
  1432. package/dist/profiles/profileBuilderWorkspace.d.ts +0 -21
  1433. package/dist/profiles/profileBuilderWorkspace.d.ts.map +0 -1
  1434. package/dist/profiles/profileBuilderWorkspace.js +0 -368
  1435. package/dist/profiles/profileBuilderWorkspace.js.map +0 -1
  1436. package/dist/profiles/profileColumnModel.cjs.map +0 -1
  1437. package/dist/profiles/profileColumnModel.d.ts +0 -8
  1438. package/dist/profiles/profileColumnModel.d.ts.map +0 -1
  1439. package/dist/profiles/profileColumnModel.js.map +0 -1
  1440. package/dist/profiles/profileColumnPicker.cjs +0 -68
  1441. package/dist/profiles/profileColumnPicker.cjs.map +0 -1
  1442. package/dist/profiles/profileColumnPicker.d.ts +0 -11
  1443. package/dist/profiles/profileColumnPicker.d.ts.map +0 -1
  1444. package/dist/profiles/profileColumnPicker.js +0 -68
  1445. package/dist/profiles/profileColumnPicker.js.map +0 -1
  1446. package/dist/profiles/profileEditor.cjs +0 -386
  1447. package/dist/profiles/profileEditor.cjs.map +0 -1
  1448. package/dist/profiles/profileEditor.d.ts +0 -19
  1449. package/dist/profiles/profileEditor.d.ts.map +0 -1
  1450. package/dist/profiles/profileEditor.js +0 -386
  1451. package/dist/profiles/profileEditor.js.map +0 -1
  1452. package/dist/profiles/profileEditorModel.cjs +0 -181
  1453. package/dist/profiles/profileEditorModel.cjs.map +0 -1
  1454. package/dist/profiles/profileEditorModel.d.ts +0 -74
  1455. package/dist/profiles/profileEditorModel.d.ts.map +0 -1
  1456. package/dist/profiles/profileEditorModel.js +0 -181
  1457. package/dist/profiles/profileEditorModel.js.map +0 -1
  1458. package/dist/profiles/profileEditorPreview.cjs.map +0 -1
  1459. package/dist/profiles/profileEditorPreview.d.ts +0 -12
  1460. package/dist/profiles/profileEditorPreview.d.ts.map +0 -1
  1461. package/dist/profiles/profileEditorPreview.js.map +0 -1
  1462. package/dist/profiles/profileEditorRail.cjs.map +0 -1
  1463. package/dist/profiles/profileEditorRail.d.ts.map +0 -1
  1464. package/dist/profiles/profileEditorRail.js.map +0 -1
  1465. package/dist/profiles/profileEditorRaw.cjs +0 -118
  1466. package/dist/profiles/profileEditorRaw.cjs.map +0 -1
  1467. package/dist/profiles/profileEditorRaw.d.ts +0 -7
  1468. package/dist/profiles/profileEditorRaw.d.ts.map +0 -1
  1469. package/dist/profiles/profileEditorRaw.js +0 -118
  1470. package/dist/profiles/profileEditorRaw.js.map +0 -1
  1471. package/dist/profiles/profileEditorRoutes.cjs.map +0 -1
  1472. package/dist/profiles/profileEditorRoutes.d.ts.map +0 -1
  1473. package/dist/profiles/profileEditorRoutes.js.map +0 -1
  1474. package/dist/profiles/profileEditorSections.cjs +0 -213
  1475. package/dist/profiles/profileEditorSections.cjs.map +0 -1
  1476. package/dist/profiles/profileEditorSections.d.ts +0 -23
  1477. package/dist/profiles/profileEditorSections.d.ts.map +0 -1
  1478. package/dist/profiles/profileEditorSections.js +0 -213
  1479. package/dist/profiles/profileEditorSections.js.map +0 -1
  1480. package/dist/profiles/profileFieldEditor.cjs +0 -200
  1481. package/dist/profiles/profileFieldEditor.cjs.map +0 -1
  1482. package/dist/profiles/profileFieldEditor.d.ts +0 -34
  1483. package/dist/profiles/profileFieldEditor.d.ts.map +0 -1
  1484. package/dist/profiles/profileFieldEditor.js +0 -200
  1485. package/dist/profiles/profileFieldEditor.js.map +0 -1
  1486. package/dist/profiles/profileFieldGrid.cjs +0 -250
  1487. package/dist/profiles/profileFieldGrid.cjs.map +0 -1
  1488. package/dist/profiles/profileFieldGrid.d.ts +0 -20
  1489. package/dist/profiles/profileFieldGrid.d.ts.map +0 -1
  1490. package/dist/profiles/profileFieldGrid.js +0 -250
  1491. package/dist/profiles/profileFieldGrid.js.map +0 -1
  1492. package/dist/profiles/profileFieldManager.cjs +0 -103
  1493. package/dist/profiles/profileFieldManager.cjs.map +0 -1
  1494. package/dist/profiles/profileFieldManager.d.ts.map +0 -1
  1495. package/dist/profiles/profileFieldManager.js +0 -103
  1496. package/dist/profiles/profileFieldManager.js.map +0 -1
  1497. package/dist/profiles/profileFieldState.cjs +0 -136
  1498. package/dist/profiles/profileFieldState.cjs.map +0 -1
  1499. package/dist/profiles/profileFieldState.d.ts +0 -41
  1500. package/dist/profiles/profileFieldState.d.ts.map +0 -1
  1501. package/dist/profiles/profileFieldState.js +0 -136
  1502. package/dist/profiles/profileFieldState.js.map +0 -1
  1503. package/dist/profiles/profileFieldTypes.cjs.map +0 -1
  1504. package/dist/profiles/profileFieldTypes.d.ts +0 -8
  1505. package/dist/profiles/profileFieldTypes.d.ts.map +0 -1
  1506. package/dist/profiles/profileFieldTypes.js.map +0 -1
  1507. package/dist/profiles/profileParamModel.cjs.map +0 -1
  1508. package/dist/profiles/profileParamModel.d.ts +0 -3
  1509. package/dist/profiles/profileParamModel.d.ts.map +0 -1
  1510. package/dist/profiles/profileParamModel.js.map +0 -1
  1511. package/dist/profiles/profileSamplePayload.cjs.map +0 -1
  1512. package/dist/profiles/profileSamplePayload.d.ts +0 -13
  1513. package/dist/profiles/profileSamplePayload.d.ts.map +0 -1
  1514. package/dist/profiles/profileSamplePayload.js.map +0 -1
  1515. package/dist/profiles/profileWizard.cjs +0 -257
  1516. package/dist/profiles/profileWizard.cjs.map +0 -1
  1517. package/dist/profiles/profileWizard.d.ts +0 -12
  1518. package/dist/profiles/profileWizard.d.ts.map +0 -1
  1519. package/dist/profiles/profileWizard.js +0 -257
  1520. package/dist/profiles/profileWizard.js.map +0 -1
  1521. package/dist/profiles/profileWizardHelp.cjs.map +0 -1
  1522. package/dist/profiles/profileWizardHelp.d.ts.map +0 -1
  1523. package/dist/profiles/profileWizardHelp.js.map +0 -1
  1524. package/dist/profiles/profileWizardModel.cjs +0 -198
  1525. package/dist/profiles/profileWizardModel.cjs.map +0 -1
  1526. package/dist/profiles/profileWizardModel.d.ts +0 -255
  1527. package/dist/profiles/profileWizardModel.d.ts.map +0 -1
  1528. package/dist/profiles/profileWizardModel.js +0 -198
  1529. package/dist/profiles/profileWizardModel.js.map +0 -1
  1530. package/dist/profiles/profileWizardQueryStep.cjs +0 -215
  1531. package/dist/profiles/profileWizardQueryStep.cjs.map +0 -1
  1532. package/dist/profiles/profileWizardQueryStep.d.ts.map +0 -1
  1533. package/dist/profiles/profileWizardQueryStep.js +0 -215
  1534. package/dist/profiles/profileWizardQueryStep.js.map +0 -1
  1535. package/dist/profiles/profileWizardSteps.cjs +0 -214
  1536. package/dist/profiles/profileWizardSteps.cjs.map +0 -1
  1537. package/dist/profiles/profileWizardSteps.d.ts.map +0 -1
  1538. package/dist/profiles/profileWizardSteps.js +0 -214
  1539. package/dist/profiles/profileWizardSteps.js.map +0 -1
  1540. package/dist/profiles/profileYaml.cjs +0 -19
  1541. package/dist/profiles/profileYaml.cjs.map +0 -1
  1542. package/dist/profiles/profileYaml.d.ts +0 -4
  1543. package/dist/profiles/profileYaml.d.ts.map +0 -1
  1544. package/dist/profiles/profileYaml.js +0 -19
  1545. package/dist/profiles/profileYaml.js.map +0 -1
  1546. package/dist/profiles/prometheusResults.cjs +0 -60
  1547. package/dist/profiles/prometheusResults.cjs.map +0 -1
  1548. package/dist/profiles/prometheusResults.d.ts +0 -7
  1549. package/dist/profiles/prometheusResults.d.ts.map +0 -1
  1550. package/dist/profiles/prometheusResults.js +0 -60
  1551. package/dist/profiles/prometheusResults.js.map +0 -1
  1552. package/dist/profiles/queryRowLimits.cjs +0 -82
  1553. package/dist/profiles/queryRowLimits.cjs.map +0 -1
  1554. package/dist/profiles/queryRowLimits.d.ts +0 -9
  1555. package/dist/profiles/queryRowLimits.d.ts.map +0 -1
  1556. package/dist/profiles/queryRowLimits.js +0 -82
  1557. package/dist/profiles/queryRowLimits.js.map +0 -1
  1558. package/dist/profiles/queryRowLimitsModel.cjs.map +0 -1
  1559. package/dist/profiles/queryRowLimitsModel.d.ts +0 -9
  1560. package/dist/profiles/queryRowLimitsModel.d.ts.map +0 -1
  1561. package/dist/profiles/queryRowLimitsModel.js.map +0 -1
  1562. package/dist/profiles/queryTargetPicker.cjs +0 -42
  1563. package/dist/profiles/queryTargetPicker.cjs.map +0 -1
  1564. package/dist/profiles/queryTargetPicker.d.ts +0 -8
  1565. package/dist/profiles/queryTargetPicker.d.ts.map +0 -1
  1566. package/dist/profiles/queryTargetPicker.js +0 -42
  1567. package/dist/profiles/queryTargetPicker.js.map +0 -1
  1568. package/dist/profiles/testSchema.d.ts +0 -3
  1569. package/dist/profiles/testSchema.d.ts.map +0 -1
  1570. /package/dist/profiles/{catalogTree.d.ts → connections/catalogTree.d.ts} +0 -0
  1571. /package/dist/profiles/{profileBuilder.d.ts → editor/profileBuilder.d.ts} +0 -0
  1572. /package/dist/profiles/{profileBuilderExtension.cjs → editor/profileBuilderExtension.cjs} +0 -0
  1573. /package/dist/profiles/{profileBuilderExtension.js → editor/profileBuilderExtension.js} +0 -0
  1574. /package/dist/profiles/{profileEditorPreview.cjs → editor/profileEditorPreview.cjs} +0 -0
  1575. /package/dist/profiles/{profileEditorPreview.js → editor/profileEditorPreview.js} +0 -0
  1576. /package/dist/profiles/{profileEditorRail.cjs → editor/profileEditorRail.cjs} +0 -0
  1577. /package/dist/profiles/{profileEditorRail.d.ts → editor/profileEditorRail.d.ts} +0 -0
  1578. /package/dist/profiles/{profileEditorRail.js → editor/profileEditorRail.js} +0 -0
  1579. /package/dist/profiles/{profileEditorRoutes.cjs → editor/profileEditorRoutes.cjs} +0 -0
  1580. /package/dist/profiles/{profileEditorRoutes.d.ts → editor/profileEditorRoutes.d.ts} +0 -0
  1581. /package/dist/profiles/{profileEditorRoutes.js → editor/profileEditorRoutes.js} +0 -0
  1582. /package/dist/profiles/{esParamMappingPill.cjs → elasticsearch/esParamMappingPill.cjs} +0 -0
  1583. /package/dist/profiles/{esParamMappingPill.d.ts → elasticsearch/esParamMappingPill.d.ts} +0 -0
  1584. /package/dist/profiles/{esParamMappingPill.js → elasticsearch/esParamMappingPill.js} +0 -0
  1585. /package/dist/profiles/{esQueryBuilderExtension.cjs → elasticsearch/esQueryBuilderExtension.cjs} +0 -0
  1586. /package/dist/profiles/{esQueryBuilderExtension.js → elasticsearch/esQueryBuilderExtension.js} +0 -0
  1587. /package/dist/profiles/{esQueryBuilderModel.cjs → elasticsearch/esQueryBuilderModel.cjs} +0 -0
  1588. /package/dist/profiles/{esQueryBuilderModel.js → elasticsearch/esQueryBuilderModel.js} +0 -0
  1589. /package/dist/profiles/{esQueryClauseGroup.d.ts → elasticsearch/esQueryClauseGroup.d.ts} +0 -0
  1590. /package/dist/profiles/{esQueryGroupModel.cjs → elasticsearch/esQueryGroupModel.cjs} +0 -0
  1591. /package/dist/profiles/{esQueryGroupModel.d.ts → elasticsearch/esQueryGroupModel.d.ts} +0 -0
  1592. /package/dist/profiles/{esQueryGroupModel.js → elasticsearch/esQueryGroupModel.js} +0 -0
  1593. /package/dist/profiles/{esQueryOccur.cjs → elasticsearch/esQueryOccur.cjs} +0 -0
  1594. /package/dist/profiles/{esQueryOccur.d.ts → elasticsearch/esQueryOccur.d.ts} +0 -0
  1595. /package/dist/profiles/{esQueryOccur.js → elasticsearch/esQueryOccur.js} +0 -0
  1596. /package/dist/profiles/{esQueryOperandModel.cjs → elasticsearch/esQueryOperandModel.cjs} +0 -0
  1597. /package/dist/profiles/{esQueryOperandModel.js → elasticsearch/esQueryOperandModel.js} +0 -0
  1598. /package/dist/profiles/{esQueryOutputModel.cjs → elasticsearch/esQueryOutputModel.cjs} +0 -0
  1599. /package/dist/profiles/{esQueryOutputModel.d.ts → elasticsearch/esQueryOutputModel.d.ts} +0 -0
  1600. /package/dist/profiles/{esQueryOutputModel.js → elasticsearch/esQueryOutputModel.js} +0 -0
  1601. /package/dist/profiles/{esQueryPreview.cjs → elasticsearch/esQueryPreview.cjs} +0 -0
  1602. /package/dist/profiles/{esQueryPreview.d.ts → elasticsearch/esQueryPreview.d.ts} +0 -0
  1603. /package/dist/profiles/{esQueryPreview.js → elasticsearch/esQueryPreview.js} +0 -0
  1604. /package/dist/profiles/{esQuerySortEditor.d.ts → elasticsearch/esQuerySortEditor.d.ts} +0 -0
  1605. /package/dist/profiles/{esQuerySortModel.cjs → elasticsearch/esQuerySortModel.cjs} +0 -0
  1606. /package/dist/profiles/{esQuerySortModel.d.ts → elasticsearch/esQuerySortModel.d.ts} +0 -0
  1607. /package/dist/profiles/{esQuerySortModel.js → elasticsearch/esQuerySortModel.js} +0 -0
  1608. /package/dist/profiles/{esValueCombobox.d.ts → elasticsearch/esValueCombobox.d.ts} +0 -0
  1609. /package/dist/profiles/{profileColumnModel.cjs → fields/profileColumnModel.cjs} +0 -0
  1610. /package/dist/profiles/{profileColumnModel.js → fields/profileColumnModel.js} +0 -0
  1611. /package/dist/profiles/{profileFieldManager.d.ts → fields/profileFieldManager.d.ts} +0 -0
  1612. /package/dist/profiles/{profileFieldTypes.cjs → fields/profileFieldTypes.cjs} +0 -0
  1613. /package/dist/profiles/{profileFieldTypes.js → fields/profileFieldTypes.js} +0 -0
  1614. /package/dist/profiles/{profileParamModel.cjs → fields/profileParamModel.cjs} +0 -0
  1615. /package/dist/profiles/{profileParamModel.js → fields/profileParamModel.js} +0 -0
  1616. /package/dist/profiles/{jsonPathSampleRow.cjs → query/jsonPathSampleRow.cjs} +0 -0
  1617. /package/dist/profiles/{jsonPathSampleRow.d.ts → query/jsonPathSampleRow.d.ts} +0 -0
  1618. /package/dist/profiles/{jsonPathSampleRow.js → query/jsonPathSampleRow.js} +0 -0
  1619. /package/dist/profiles/{profileSamplePayload.cjs → query/profileSamplePayload.cjs} +0 -0
  1620. /package/dist/profiles/{profileSamplePayload.js → query/profileSamplePayload.js} +0 -0
  1621. /package/dist/profiles/{queryRowLimitsModel.cjs → query/queryRowLimitsModel.cjs} +0 -0
  1622. /package/dist/profiles/{queryRowLimitsModel.js → query/queryRowLimitsModel.js} +0 -0
  1623. /package/dist/profiles/{profileWizardHelp.cjs → wizard/profileWizardHelp.cjs} +0 -0
  1624. /package/dist/profiles/{profileWizardHelp.d.ts → wizard/profileWizardHelp.d.ts} +0 -0
  1625. /package/dist/profiles/{profileWizardHelp.js → wizard/profileWizardHelp.js} +0 -0
  1626. /package/dist/profiles/{profileWizardQueryStep.d.ts → wizard/profileWizardQueryStep.d.ts} +0 -0
  1627. /package/dist/profiles/{profileWizardSteps.d.ts → wizard/profileWizardSteps.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadCard.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/ThreadCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,eAAe,2CAyC7F"}
1
+ {"version":3,"file":"ThreadCard.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/ThreadCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,GACb,EAAE,eAAe,2CA0CjB"}
@@ -1,7 +1,13 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { JvmStackTrace } from "./JvmStackTrace.js";
3
3
  import { threadStateDot, threadStateBadge } from "./state-styles.js";
4
- function ThreadCard({ thread, search, hideRuntimeOnly, resolveSource }) {
4
+ function ThreadCard({
5
+ thread,
6
+ search,
7
+ hideRuntimeOnly,
8
+ resolveSource,
9
+ frameActions
10
+ }) {
5
11
  const frames = hideRuntimeOnly ? thread.frames.filter((f) => f.kind !== "frame" || !f.runtime) : thread.frames;
6
12
  const defaultOpen = thread.state === "runnable" || thread.state === "blocked" || !!search;
7
13
  return /* @__PURE__ */ jsxs("details", { className: "border-0 bg-transparent", open: defaultOpen, children: [
@@ -39,7 +45,8 @@ function ThreadCard({ thread, search, hideRuntimeOnly, resolveSource }) {
39
45
  {
40
46
  frames,
41
47
  className: "space-y-0.5 py-1 pl-3",
42
- ...resolveSource ? { resolveSource } : {}
48
+ ...resolveSource ? { resolveSource } : {},
49
+ ...frameActions ? { frameActions } : {}
43
50
  }
44
51
  )
45
52
  ] });
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadCard.js","sources":["../../../src/data/diagnostics/ThreadCard.tsx"],"sourcesContent":["import { JvmStackTrace, type JvmFrameSourceResolver } from \"./JvmStackTrace\";\nimport type { ParsedThread } from \"./jvm-stacktrace\";\nimport { threadStateBadge, threadStateDot } from \"./state-styles\";\n\nexport type ThreadCardProps = {\n thread: ParsedThread;\n search: string;\n hideRuntimeOnly: boolean;\n resolveSource?: JvmFrameSourceResolver;\n};\n\nexport function ThreadCard({ thread, search, hideRuntimeOnly, resolveSource }: ThreadCardProps) {\n const frames = hideRuntimeOnly\n ? thread.frames.filter((f) => f.kind !== \"frame\" || !f.runtime)\n : thread.frames;\n const defaultOpen = thread.state === \"runnable\" || thread.state === \"blocked\" || !!search;\n\n return (\n <details className=\"border-0 bg-transparent\" open={defaultOpen}>\n <summary className=\"cursor-pointer list-none px-0 py-1\">\n <div className=\"flex items-center gap-2 flex-wrap\">\n <span className=\"font-mono text-xs font-semibold text-foreground\">#{thread.id}</span>\n <span className=\"truncate font-mono text-xs text-foreground\">{thread.name}</span>\n <span\n className={`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] ${threadStateBadge(\n thread.state,\n )}`}\n >\n <span className={`h-2 w-2 rounded-full ${threadStateDot(thread.state)}`} />\n {thread.rawState || thread.state}\n </span>\n {thread.daemon && (\n <span className=\"rounded-full bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground\">\n daemon\n </span>\n )}\n <span className=\"text-[11px] text-muted-foreground\">{frames.length}f</span>\n {thread.userFrameCount > 0 && (\n <span className=\"text-[11px] text-muted-foreground\">{thread.userFrameCount}u</span>\n )}\n {thread.topFunction && (\n <span className=\"truncate text-[11px] text-muted-foreground\">{thread.topFunction}</span>\n )}\n </div>\n </summary>\n <JvmStackTrace\n frames={frames}\n className=\"space-y-0.5 py-1 pl-3\"\n {...(resolveSource ? { resolveSource } : {})}\n />\n </details>\n );\n}\n"],"names":[],"mappings":";;;AAWO,SAAS,WAAW,EAAE,QAAQ,QAAQ,iBAAiB,iBAAkC;AAC9F,QAAM,SAAS,kBACX,OAAO,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,WAAW,CAAC,EAAE,OAAO,IAC5D,OAAO;AACX,QAAM,cAAc,OAAO,UAAU,cAAc,OAAO,UAAU,aAAa,CAAC,CAAC;AAEnF,SACE,qBAAC,WAAA,EAAQ,WAAU,2BAA0B,MAAM,aACjD,UAAA;AAAA,IAAA,oBAAC,aAAQ,WAAU,sCACjB,UAAA,qBAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,MAAA,qBAAC,QAAA,EAAK,WAAU,mDAAkD,UAAA;AAAA,QAAA;AAAA,QAAE,OAAO;AAAA,MAAA,GAAG;AAAA,MAC9E,oBAAC,QAAA,EAAK,WAAU,8CAA8C,iBAAO,MAAK;AAAA,MAC1E;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,uEAAuE;AAAA,YAChF,OAAO;AAAA,UAAA,CACR;AAAA,UAED,UAAA;AAAA,YAAA,oBAAC,UAAK,WAAW,wBAAwB,eAAe,OAAO,KAAK,CAAC,IAAI;AAAA,YACxE,OAAO,YAAY,OAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAE5B,OAAO,UACN,oBAAC,QAAA,EAAK,WAAU,yEAAwE,UAAA,UAExF;AAAA,MAEF,qBAAC,QAAA,EAAK,WAAU,qCAAqC,UAAA;AAAA,QAAA,OAAO;AAAA,QAAO;AAAA,MAAA,GAAC;AAAA,MACnE,OAAO,iBAAiB,KACvB,qBAAC,QAAA,EAAK,WAAU,qCAAqC,UAAA;AAAA,QAAA,OAAO;AAAA,QAAe;AAAA,MAAA,GAAC;AAAA,MAE7E,OAAO,eACN,oBAAC,UAAK,WAAU,8CAA8C,iBAAO,YAAA,CAAY;AAAA,IAAA,EAAA,CAErF,EAAA,CACF;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAU;AAAA,QACT,GAAI,gBAAgB,EAAE,kBAAkB,CAAA;AAAA,MAAC;AAAA,IAAA;AAAA,EAC5C,GACF;AAEJ;"}
1
+ {"version":3,"file":"ThreadCard.js","sources":["../../../src/data/diagnostics/ThreadCard.tsx"],"sourcesContent":["import { JvmStackTrace, type JvmFrameSourceResolver } from \"./JvmStackTrace\";\nimport type { StackFrameActions } from \"./StackFrameRow\";\nimport type { ParsedThread } from \"./jvm-stacktrace\";\nimport { threadStateBadge, threadStateDot } from \"./state-styles\";\n\nexport type ThreadCardProps = {\n thread: ParsedThread;\n search: string;\n hideRuntimeOnly: boolean;\n resolveSource?: JvmFrameSourceResolver;\n frameActions?: StackFrameActions;\n};\n\nexport function ThreadCard({\n thread,\n search,\n hideRuntimeOnly,\n resolveSource,\n frameActions,\n}: ThreadCardProps) {\n const frames = hideRuntimeOnly\n ? thread.frames.filter((f) => f.kind !== \"frame\" || !f.runtime)\n : thread.frames;\n const defaultOpen = thread.state === \"runnable\" || thread.state === \"blocked\" || !!search;\n\n return (\n <details className=\"border-0 bg-transparent\" open={defaultOpen}>\n <summary className=\"cursor-pointer list-none px-0 py-1\">\n <div className=\"flex items-center gap-2 flex-wrap\">\n <span className=\"font-mono text-xs font-semibold text-foreground\">#{thread.id}</span>\n <span className=\"truncate font-mono text-xs text-foreground\">{thread.name}</span>\n <span\n className={`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] ${threadStateBadge(\n thread.state,\n )}`}\n >\n <span className={`h-2 w-2 rounded-full ${threadStateDot(thread.state)}`} />\n {thread.rawState || thread.state}\n </span>\n {thread.daemon && (\n <span className=\"rounded-full bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground\">\n daemon\n </span>\n )}\n <span className=\"text-[11px] text-muted-foreground\">{frames.length}f</span>\n {thread.userFrameCount > 0 && (\n <span className=\"text-[11px] text-muted-foreground\">{thread.userFrameCount}u</span>\n )}\n {thread.topFunction && (\n <span className=\"truncate text-[11px] text-muted-foreground\">{thread.topFunction}</span>\n )}\n </div>\n </summary>\n <JvmStackTrace\n frames={frames}\n className=\"space-y-0.5 py-1 pl-3\"\n {...(resolveSource ? { resolveSource } : {})}\n {...(frameActions ? { frameActions } : {})}\n />\n </details>\n );\n}\n"],"names":[],"mappings":";;;AAaO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAoB;AAClB,QAAM,SAAS,kBACX,OAAO,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,WAAW,CAAC,EAAE,OAAO,IAC5D,OAAO;AACX,QAAM,cAAc,OAAO,UAAU,cAAc,OAAO,UAAU,aAAa,CAAC,CAAC;AAEnF,SACE,qBAAC,WAAA,EAAQ,WAAU,2BAA0B,MAAM,aACjD,UAAA;AAAA,IAAA,oBAAC,aAAQ,WAAU,sCACjB,UAAA,qBAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,MAAA,qBAAC,QAAA,EAAK,WAAU,mDAAkD,UAAA;AAAA,QAAA;AAAA,QAAE,OAAO;AAAA,MAAA,GAAG;AAAA,MAC9E,oBAAC,QAAA,EAAK,WAAU,8CAA8C,iBAAO,MAAK;AAAA,MAC1E;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,uEAAuE;AAAA,YAChF,OAAO;AAAA,UAAA,CACR;AAAA,UAED,UAAA;AAAA,YAAA,oBAAC,UAAK,WAAW,wBAAwB,eAAe,OAAO,KAAK,CAAC,IAAI;AAAA,YACxE,OAAO,YAAY,OAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAE5B,OAAO,UACN,oBAAC,QAAA,EAAK,WAAU,yEAAwE,UAAA,UAExF;AAAA,MAEF,qBAAC,QAAA,EAAK,WAAU,qCAAqC,UAAA;AAAA,QAAA,OAAO;AAAA,QAAO;AAAA,MAAA,GAAC;AAAA,MACnE,OAAO,iBAAiB,KACvB,qBAAC,QAAA,EAAK,WAAU,qCAAqC,UAAA;AAAA,QAAA,OAAO;AAAA,QAAe;AAAA,MAAA,GAAC;AAAA,MAE7E,OAAO,eACN,oBAAC,UAAK,WAAU,8CAA8C,iBAAO,YAAA,CAAY;AAAA,IAAA,EAAA,CAErF,EAAA,CACF;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAU;AAAA,QACT,GAAI,gBAAgB,EAAE,cAAA,IAAkB,CAAA;AAAA,QACxC,GAAI,eAAe,EAAE,iBAAiB,CAAA;AAAA,MAAC;AAAA,IAAA;AAAA,EAC1C,GACF;AAEJ;"}
@@ -15,7 +15,12 @@ function normalizeErrorDiagnostics(value, fallback) {
15
15
  const trace = firstString(record, ["trace", "trace_id", "traceId", "traceID"]);
16
16
  const stacktrace = firstString(record, ["stacktrace", "stack_trace", "stackTrace", "stack"]);
17
17
  const time = firstString(record, ["time", "timestamp", "created_at"]);
18
- const context = contextEntries(record.context);
18
+ const hint = firstString(record, ["hint"]);
19
+ const context = [
20
+ ...hint ? [["Hint", hint]] : [],
21
+ ...contextEntries(record.context)
22
+ ];
23
+ const details = detailBlocks(record.details);
19
24
  if (!message && !trace && !stacktrace && !time && context.length === 0) {
20
25
  const nestedDiagnostics = objectRecord(record.diagnostics);
21
26
  if (nestedDiagnostics && nestedDiagnostics !== record) {
@@ -29,9 +34,19 @@ function normalizeErrorDiagnostics(value, fallback) {
29
34
  raw: value,
30
35
  ...trace !== void 0 ? { trace } : {},
31
36
  ...time !== void 0 ? { time } : {},
32
- ...stacktrace !== void 0 ? { stacktrace } : {}
37
+ ...stacktrace !== void 0 ? { stacktrace } : {},
38
+ ...details.length > 0 ? { details } : {}
33
39
  };
34
40
  }
41
+ function detailBlocks(value) {
42
+ if (!Array.isArray(value)) return [];
43
+ return value.flatMap((entry) => {
44
+ const record = objectRecord(entry);
45
+ const label = firstString(record ?? {}, ["label"]);
46
+ const detail = firstString(record ?? {}, ["value"]);
47
+ return label && detail ? [{ label, value: detail }] : [];
48
+ });
49
+ }
35
50
  function parseDiagnosticsStackTrace(stacktrace) {
36
51
  const lines = stacktrace.split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
37
52
  const frames = [];
@@ -1 +1 @@
1
- {"version":3,"file":"error-diagnostics.cjs","sources":["../../../src/data/diagnostics/error-diagnostics.ts"],"sourcesContent":["// Normalize ad-hoc error payloads (oops JSON, plain strings, nested objects)\n// into the shape ErrorDetails consumes. Mirrors what `samber/oops` emits\n// from `OopsError.MarshalJSON()` on the Go side.\n\nexport type ErrorDiagnostics = {\n message: string;\n trace?: string;\n time?: string;\n stacktrace?: string;\n context: Array<[string, string]>;\n raw?: unknown;\n};\n\nexport type ParsedErrorStackTrace = {\n headline?: string;\n frames: ErrorStackFrame[];\n unparsed: string[];\n raw: string;\n};\n\nexport type ErrorStackFrame = {\n raw: string;\n file: string;\n line: number;\n functionName?: string;\n};\n\nexport function normalizeErrorDiagnostics(\n value: unknown,\n fallback?: string | null,\n): ErrorDiagnostics | null {\n if (!value) return null;\n if (typeof value === \"string\") {\n return value.trim() ? { message: value, context: [] } : null;\n }\n const record = objectRecord(value);\n if (!record) return null;\n const nestedError = objectRecord(record.error);\n if (nestedError && nestedError !== record) {\n return normalizeErrorDiagnostics(nestedError, fallback);\n }\n const message =\n firstString(record, [\"error\", \"message\", \"msg\", \"reason\", \"detail\", \"details\"]) ?? fallback;\n const trace = firstString(record, [\"trace\", \"trace_id\", \"traceId\", \"traceID\"]);\n const stacktrace = firstString(record, [\"stacktrace\", \"stack_trace\", \"stackTrace\", \"stack\"]);\n const time = firstString(record, [\"time\", \"timestamp\", \"created_at\"]);\n const context = contextEntries(record.context);\n if (!message && !trace && !stacktrace && !time && context.length === 0) {\n const nestedDiagnostics = objectRecord(record.diagnostics);\n if (nestedDiagnostics && nestedDiagnostics !== record) {\n return normalizeErrorDiagnostics(nestedDiagnostics, fallback);\n }\n }\n if (!message && !trace && !stacktrace && !time && context.length === 0) return null;\n return {\n message: message ?? \"Action failed\",\n context,\n raw: value,\n ...(trace !== undefined ? { trace } : {}),\n ...(time !== undefined ? { time } : {}),\n ...(stacktrace !== undefined ? { stacktrace } : {}),\n };\n}\n\nexport function parseDiagnosticsStackTrace(stacktrace: string): ParsedErrorStackTrace {\n const lines = stacktrace\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter(Boolean);\n const frames: ErrorStackFrame[] = [];\n const unparsed: string[] = [];\n let headline: string | undefined;\n\n for (const line of lines) {\n const frame = parseStackTraceFrame(line);\n if (frame) {\n frames.push(frame);\n continue;\n }\n if (!headline && !line.startsWith(\"--- at \")) {\n headline = line;\n continue;\n }\n unparsed.push(line);\n }\n\n return {\n frames,\n unparsed,\n raw: stacktrace,\n ...(headline !== undefined ? { headline } : {}),\n };\n}\n\nexport function parseInlineJsonContextValue(value: string): unknown | null {\n const trimmed = value.trim();\n if (!trimmed || !/^[{[]/.test(trimmed)) return null;\n try {\n return JSON.parse(trimmed);\n } catch {\n return null;\n }\n}\n\nexport function compactStackPath(file: string) {\n return file\n .replace(/^github\\.com\\/flanksource\\/incident-commander\\//, \"\")\n .replace(/^github\\.com\\/flanksource\\//, \"flanksource/\")\n .replace(/^.*\\/go\\/pkg\\/mod\\//, \"pkg/mod/\")\n .replace(/^.*\\/incident-commander\\//, \"\");\n}\n\nexport function isApplicationStackFrame(file: string) {\n return (\n file.includes(\"github.com/flanksource/incident-commander/\") ||\n file.includes(\"/incident-commander/\")\n );\n}\n\nfunction parseStackTraceFrame(line: string): ErrorStackFrame | null {\n const prefix = \"--- at \";\n if (!line.startsWith(prefix)) return null;\n\n const value = line.slice(prefix.length);\n let fileEnd = -1;\n let lineStart = -1;\n let lineEnd = -1;\n let functionStart = -1;\n\n for (let index = 0; index < value.length; index++) {\n if (value[index] !== \":\" || !isDecimalDigit(value[index + 1])) continue;\n\n let end = index + 1;\n while (isDecimalDigit(value[end])) end++;\n if (end === value.length) {\n fileEnd = index;\n lineStart = index + 1;\n lineEnd = end;\n functionStart = -1;\n continue;\n }\n if (!isWhitespace(value[end])) continue;\n\n let start = end;\n while (isWhitespace(value[start])) start++;\n if (start === value.length && start - end < 2) continue;\n fileEnd = index;\n lineStart = index + 1;\n lineEnd = end;\n functionStart = start;\n }\n\n if (fileEnd <= 0 || lineStart < 0 || lineEnd < 0) return null;\n const functionName = functionStart >= 0 ? value.slice(functionStart).trim() : \"\";\n return {\n raw: line,\n file: value.slice(0, fileEnd),\n line: Number(value.slice(lineStart, lineEnd)),\n ...(functionName ? { functionName } : {}),\n };\n}\n\nfunction isDecimalDigit(value: string | undefined): boolean {\n return value !== undefined && value >= \"0\" && value <= \"9\";\n}\n\nfunction isWhitespace(value: string | undefined): boolean {\n return value !== undefined && value.trim() === \"\";\n}\n\nfunction objectRecord(value: unknown): Record<string, unknown> | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n return value as Record<string, unknown>;\n}\n\nfunction firstString(record: Record<string, unknown>, keys: string[]): string | undefined {\n for (const key of keys) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim()) return value;\n }\n return undefined;\n}\n\nfunction contextEntries(value: unknown): Array<[string, string]> {\n const record = objectRecord(value);\n if (!record) return [];\n return Object.entries(record)\n .filter(\n ([, entryValue]) => entryValue !== undefined && entryValue !== null && entryValue !== \"\",\n )\n .map(([key, entryValue]) => [key, stringifyValue(entryValue)]);\n}\n\nfunction stringifyValue(value: unknown): string {\n if (value === null || value === undefined || value === \"\") return \"-\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n return JSON.stringify(value);\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-diagnostics.cjs","sources":["../../../src/data/diagnostics/error-diagnostics.ts"],"sourcesContent":["// Normalize ad-hoc error payloads (oops JSON, plain strings, nested objects)\n// into the shape ErrorDetails consumes. Mirrors what `samber/oops` emits\n// from `OopsError.MarshalJSON()` on the Go side.\n\nexport type ErrorDiagnostics = {\n message: string;\n trace?: string;\n time?: string;\n stacktrace?: string;\n context: Array<[string, string]>;\n // details carries values too long for a context badge — a failing SQL\n // statement, a response body. They render as labeled preformatted blocks and\n // are part of the copied report.\n details?: ErrorDetailBlock[];\n raw?: unknown;\n};\n\nexport type ErrorDetailBlock = {\n label: string;\n value: string;\n};\n\nexport type ParsedErrorStackTrace = {\n headline?: string;\n frames: ErrorStackFrame[];\n unparsed: string[];\n raw: string;\n};\n\nexport type ErrorStackFrame = {\n raw: string;\n file: string;\n line: number;\n functionName?: string;\n};\n\nexport function normalizeErrorDiagnostics(\n value: unknown,\n fallback?: string | null,\n): ErrorDiagnostics | null {\n if (!value) return null;\n if (typeof value === \"string\") {\n return value.trim() ? { message: value, context: [] } : null;\n }\n const record = objectRecord(value);\n if (!record) return null;\n const nestedError = objectRecord(record.error);\n if (nestedError && nestedError !== record) {\n return normalizeErrorDiagnostics(nestedError, fallback);\n }\n const message =\n firstString(record, [\"error\", \"message\", \"msg\", \"reason\", \"detail\", \"details\"]) ?? fallback;\n const trace = firstString(record, [\"trace\", \"trace_id\", \"traceId\", \"traceID\"]);\n const stacktrace = firstString(record, [\"stacktrace\", \"stack_trace\", \"stackTrace\", \"stack\"]);\n const time = firstString(record, [\"time\", \"timestamp\", \"created_at\"]);\n const hint = firstString(record, [\"hint\"]);\n // The hint leads the context badges: of everything the server attaches it is\n // the one field that says what to do next.\n const context: Array<[string, string]> = [\n ...(hint ? ([[\"Hint\", hint]] as Array<[string, string]>) : []),\n ...contextEntries(record.context),\n ];\n const details = detailBlocks(record.details);\n if (!message && !trace && !stacktrace && !time && context.length === 0) {\n const nestedDiagnostics = objectRecord(record.diagnostics);\n if (nestedDiagnostics && nestedDiagnostics !== record) {\n return normalizeErrorDiagnostics(nestedDiagnostics, fallback);\n }\n }\n if (!message && !trace && !stacktrace && !time && context.length === 0) return null;\n return {\n message: message ?? \"Action failed\",\n context,\n raw: value,\n ...(trace !== undefined ? { trace } : {}),\n ...(time !== undefined ? { time } : {}),\n ...(stacktrace !== undefined ? { stacktrace } : {}),\n ...(details.length > 0 ? { details } : {}),\n };\n}\n\n// `details` is overloaded on the wire: our own envelope sends an array of\n// {label, value} blocks (entity.ErrorResponse), while third-party bodies use a\n// bare string that firstString already reads as the message. Only the array\n// form produces blocks; content_type is dropped because every block renders as\n// preformatted text either way.\nfunction detailBlocks(value: unknown): ErrorDetailBlock[] {\n if (!Array.isArray(value)) return [];\n return value.flatMap((entry) => {\n const record = objectRecord(entry);\n const label = firstString(record ?? {}, [\"label\"]);\n const detail = firstString(record ?? {}, [\"value\"]);\n return label && detail ? [{ label, value: detail }] : [];\n });\n}\n\nexport function parseDiagnosticsStackTrace(stacktrace: string): ParsedErrorStackTrace {\n const lines = stacktrace\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter(Boolean);\n const frames: ErrorStackFrame[] = [];\n const unparsed: string[] = [];\n let headline: string | undefined;\n\n for (const line of lines) {\n const frame = parseStackTraceFrame(line);\n if (frame) {\n frames.push(frame);\n continue;\n }\n if (!headline && !line.startsWith(\"--- at \")) {\n headline = line;\n continue;\n }\n unparsed.push(line);\n }\n\n return {\n frames,\n unparsed,\n raw: stacktrace,\n ...(headline !== undefined ? { headline } : {}),\n };\n}\n\nexport function parseInlineJsonContextValue(value: string): unknown | null {\n const trimmed = value.trim();\n if (!trimmed || !/^[{[]/.test(trimmed)) return null;\n try {\n return JSON.parse(trimmed);\n } catch {\n return null;\n }\n}\n\nexport function compactStackPath(file: string) {\n return file\n .replace(/^github\\.com\\/flanksource\\/incident-commander\\//, \"\")\n .replace(/^github\\.com\\/flanksource\\//, \"flanksource/\")\n .replace(/^.*\\/go\\/pkg\\/mod\\//, \"pkg/mod/\")\n .replace(/^.*\\/incident-commander\\//, \"\");\n}\n\nexport function isApplicationStackFrame(file: string) {\n return (\n file.includes(\"github.com/flanksource/incident-commander/\") ||\n file.includes(\"/incident-commander/\")\n );\n}\n\nfunction parseStackTraceFrame(line: string): ErrorStackFrame | null {\n const prefix = \"--- at \";\n if (!line.startsWith(prefix)) return null;\n\n const value = line.slice(prefix.length);\n let fileEnd = -1;\n let lineStart = -1;\n let lineEnd = -1;\n let functionStart = -1;\n\n for (let index = 0; index < value.length; index++) {\n if (value[index] !== \":\" || !isDecimalDigit(value[index + 1])) continue;\n\n let end = index + 1;\n while (isDecimalDigit(value[end])) end++;\n if (end === value.length) {\n fileEnd = index;\n lineStart = index + 1;\n lineEnd = end;\n functionStart = -1;\n continue;\n }\n if (!isWhitespace(value[end])) continue;\n\n let start = end;\n while (isWhitespace(value[start])) start++;\n if (start === value.length && start - end < 2) continue;\n fileEnd = index;\n lineStart = index + 1;\n lineEnd = end;\n functionStart = start;\n }\n\n if (fileEnd <= 0 || lineStart < 0 || lineEnd < 0) return null;\n const functionName = functionStart >= 0 ? value.slice(functionStart).trim() : \"\";\n return {\n raw: line,\n file: value.slice(0, fileEnd),\n line: Number(value.slice(lineStart, lineEnd)),\n ...(functionName ? { functionName } : {}),\n };\n}\n\nfunction isDecimalDigit(value: string | undefined): boolean {\n return value !== undefined && value >= \"0\" && value <= \"9\";\n}\n\nfunction isWhitespace(value: string | undefined): boolean {\n return value !== undefined && value.trim() === \"\";\n}\n\nfunction objectRecord(value: unknown): Record<string, unknown> | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n return value as Record<string, unknown>;\n}\n\nfunction firstString(record: Record<string, unknown>, keys: string[]): string | undefined {\n for (const key of keys) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim()) return value;\n }\n return undefined;\n}\n\nfunction contextEntries(value: unknown): Array<[string, string]> {\n const record = objectRecord(value);\n if (!record) return [];\n return Object.entries(record)\n .filter(\n ([, entryValue]) => entryValue !== undefined && entryValue !== null && entryValue !== \"\",\n )\n .map(([key, entryValue]) => [key, stringifyValue(entryValue)]);\n}\n\nfunction stringifyValue(value: unknown): string {\n if (value === null || value === undefined || value === \"\") return \"-\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n return JSON.stringify(value);\n}\n"],"names":[],"mappings":"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"}
@@ -4,8 +4,13 @@ export type ErrorDiagnostics = {
4
4
  time?: string;
5
5
  stacktrace?: string;
6
6
  context: Array<[string, string]>;
7
+ details?: ErrorDetailBlock[];
7
8
  raw?: unknown;
8
9
  };
10
+ export type ErrorDetailBlock = {
11
+ label: string;
12
+ value: string;
13
+ };
9
14
  export type ParsedErrorStackTrace = {
10
15
  headline?: string;
11
16
  frames: ErrorStackFrame[];
@@ -1 +1 @@
1
- {"version":3,"file":"error-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/error-diagnostics.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,gBAAgB,GAAG,IAAI,CAgCzB;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,CA4BpF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQzE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAM5C;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,WAKnD"}
1
+ {"version":3,"file":"error-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/error-diagnostics.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAIjC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,gBAAgB,GAAG,IAAI,CAwCzB;AAiBD,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,CA4BpF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQzE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAM5C;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,WAKnD"}
@@ -13,7 +13,12 @@ function normalizeErrorDiagnostics(value, fallback) {
13
13
  const trace = firstString(record, ["trace", "trace_id", "traceId", "traceID"]);
14
14
  const stacktrace = firstString(record, ["stacktrace", "stack_trace", "stackTrace", "stack"]);
15
15
  const time = firstString(record, ["time", "timestamp", "created_at"]);
16
- const context = contextEntries(record.context);
16
+ const hint = firstString(record, ["hint"]);
17
+ const context = [
18
+ ...hint ? [["Hint", hint]] : [],
19
+ ...contextEntries(record.context)
20
+ ];
21
+ const details = detailBlocks(record.details);
17
22
  if (!message && !trace && !stacktrace && !time && context.length === 0) {
18
23
  const nestedDiagnostics = objectRecord(record.diagnostics);
19
24
  if (nestedDiagnostics && nestedDiagnostics !== record) {
@@ -27,9 +32,19 @@ function normalizeErrorDiagnostics(value, fallback) {
27
32
  raw: value,
28
33
  ...trace !== void 0 ? { trace } : {},
29
34
  ...time !== void 0 ? { time } : {},
30
- ...stacktrace !== void 0 ? { stacktrace } : {}
35
+ ...stacktrace !== void 0 ? { stacktrace } : {},
36
+ ...details.length > 0 ? { details } : {}
31
37
  };
32
38
  }
39
+ function detailBlocks(value) {
40
+ if (!Array.isArray(value)) return [];
41
+ return value.flatMap((entry) => {
42
+ const record = objectRecord(entry);
43
+ const label = firstString(record ?? {}, ["label"]);
44
+ const detail = firstString(record ?? {}, ["value"]);
45
+ return label && detail ? [{ label, value: detail }] : [];
46
+ });
47
+ }
33
48
  function parseDiagnosticsStackTrace(stacktrace) {
34
49
  const lines = stacktrace.split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
35
50
  const frames = [];
@@ -1 +1 @@
1
- {"version":3,"file":"error-diagnostics.js","sources":["../../../src/data/diagnostics/error-diagnostics.ts"],"sourcesContent":["// Normalize ad-hoc error payloads (oops JSON, plain strings, nested objects)\n// into the shape ErrorDetails consumes. Mirrors what `samber/oops` emits\n// from `OopsError.MarshalJSON()` on the Go side.\n\nexport type ErrorDiagnostics = {\n message: string;\n trace?: string;\n time?: string;\n stacktrace?: string;\n context: Array<[string, string]>;\n raw?: unknown;\n};\n\nexport type ParsedErrorStackTrace = {\n headline?: string;\n frames: ErrorStackFrame[];\n unparsed: string[];\n raw: string;\n};\n\nexport type ErrorStackFrame = {\n raw: string;\n file: string;\n line: number;\n functionName?: string;\n};\n\nexport function normalizeErrorDiagnostics(\n value: unknown,\n fallback?: string | null,\n): ErrorDiagnostics | null {\n if (!value) return null;\n if (typeof value === \"string\") {\n return value.trim() ? { message: value, context: [] } : null;\n }\n const record = objectRecord(value);\n if (!record) return null;\n const nestedError = objectRecord(record.error);\n if (nestedError && nestedError !== record) {\n return normalizeErrorDiagnostics(nestedError, fallback);\n }\n const message =\n firstString(record, [\"error\", \"message\", \"msg\", \"reason\", \"detail\", \"details\"]) ?? fallback;\n const trace = firstString(record, [\"trace\", \"trace_id\", \"traceId\", \"traceID\"]);\n const stacktrace = firstString(record, [\"stacktrace\", \"stack_trace\", \"stackTrace\", \"stack\"]);\n const time = firstString(record, [\"time\", \"timestamp\", \"created_at\"]);\n const context = contextEntries(record.context);\n if (!message && !trace && !stacktrace && !time && context.length === 0) {\n const nestedDiagnostics = objectRecord(record.diagnostics);\n if (nestedDiagnostics && nestedDiagnostics !== record) {\n return normalizeErrorDiagnostics(nestedDiagnostics, fallback);\n }\n }\n if (!message && !trace && !stacktrace && !time && context.length === 0) return null;\n return {\n message: message ?? \"Action failed\",\n context,\n raw: value,\n ...(trace !== undefined ? { trace } : {}),\n ...(time !== undefined ? { time } : {}),\n ...(stacktrace !== undefined ? { stacktrace } : {}),\n };\n}\n\nexport function parseDiagnosticsStackTrace(stacktrace: string): ParsedErrorStackTrace {\n const lines = stacktrace\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter(Boolean);\n const frames: ErrorStackFrame[] = [];\n const unparsed: string[] = [];\n let headline: string | undefined;\n\n for (const line of lines) {\n const frame = parseStackTraceFrame(line);\n if (frame) {\n frames.push(frame);\n continue;\n }\n if (!headline && !line.startsWith(\"--- at \")) {\n headline = line;\n continue;\n }\n unparsed.push(line);\n }\n\n return {\n frames,\n unparsed,\n raw: stacktrace,\n ...(headline !== undefined ? { headline } : {}),\n };\n}\n\nexport function parseInlineJsonContextValue(value: string): unknown | null {\n const trimmed = value.trim();\n if (!trimmed || !/^[{[]/.test(trimmed)) return null;\n try {\n return JSON.parse(trimmed);\n } catch {\n return null;\n }\n}\n\nexport function compactStackPath(file: string) {\n return file\n .replace(/^github\\.com\\/flanksource\\/incident-commander\\//, \"\")\n .replace(/^github\\.com\\/flanksource\\//, \"flanksource/\")\n .replace(/^.*\\/go\\/pkg\\/mod\\//, \"pkg/mod/\")\n .replace(/^.*\\/incident-commander\\//, \"\");\n}\n\nexport function isApplicationStackFrame(file: string) {\n return (\n file.includes(\"github.com/flanksource/incident-commander/\") ||\n file.includes(\"/incident-commander/\")\n );\n}\n\nfunction parseStackTraceFrame(line: string): ErrorStackFrame | null {\n const prefix = \"--- at \";\n if (!line.startsWith(prefix)) return null;\n\n const value = line.slice(prefix.length);\n let fileEnd = -1;\n let lineStart = -1;\n let lineEnd = -1;\n let functionStart = -1;\n\n for (let index = 0; index < value.length; index++) {\n if (value[index] !== \":\" || !isDecimalDigit(value[index + 1])) continue;\n\n let end = index + 1;\n while (isDecimalDigit(value[end])) end++;\n if (end === value.length) {\n fileEnd = index;\n lineStart = index + 1;\n lineEnd = end;\n functionStart = -1;\n continue;\n }\n if (!isWhitespace(value[end])) continue;\n\n let start = end;\n while (isWhitespace(value[start])) start++;\n if (start === value.length && start - end < 2) continue;\n fileEnd = index;\n lineStart = index + 1;\n lineEnd = end;\n functionStart = start;\n }\n\n if (fileEnd <= 0 || lineStart < 0 || lineEnd < 0) return null;\n const functionName = functionStart >= 0 ? value.slice(functionStart).trim() : \"\";\n return {\n raw: line,\n file: value.slice(0, fileEnd),\n line: Number(value.slice(lineStart, lineEnd)),\n ...(functionName ? { functionName } : {}),\n };\n}\n\nfunction isDecimalDigit(value: string | undefined): boolean {\n return value !== undefined && value >= \"0\" && value <= \"9\";\n}\n\nfunction isWhitespace(value: string | undefined): boolean {\n return value !== undefined && value.trim() === \"\";\n}\n\nfunction objectRecord(value: unknown): Record<string, unknown> | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n return value as Record<string, unknown>;\n}\n\nfunction firstString(record: Record<string, unknown>, keys: string[]): string | undefined {\n for (const key of keys) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim()) return value;\n }\n return undefined;\n}\n\nfunction contextEntries(value: unknown): Array<[string, string]> {\n const record = objectRecord(value);\n if (!record) return [];\n return Object.entries(record)\n .filter(\n ([, entryValue]) => entryValue !== undefined && entryValue !== null && entryValue !== \"\",\n )\n .map(([key, entryValue]) => [key, stringifyValue(entryValue)]);\n}\n\nfunction stringifyValue(value: unknown): string {\n if (value === null || value === undefined || value === \"\") return \"-\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n return JSON.stringify(value);\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-diagnostics.js","sources":["../../../src/data/diagnostics/error-diagnostics.ts"],"sourcesContent":["// Normalize ad-hoc error payloads (oops JSON, plain strings, nested objects)\n// into the shape ErrorDetails consumes. Mirrors what `samber/oops` emits\n// from `OopsError.MarshalJSON()` on the Go side.\n\nexport type ErrorDiagnostics = {\n message: string;\n trace?: string;\n time?: string;\n stacktrace?: string;\n context: Array<[string, string]>;\n // details carries values too long for a context badge — a failing SQL\n // statement, a response body. They render as labeled preformatted blocks and\n // are part of the copied report.\n details?: ErrorDetailBlock[];\n raw?: unknown;\n};\n\nexport type ErrorDetailBlock = {\n label: string;\n value: string;\n};\n\nexport type ParsedErrorStackTrace = {\n headline?: string;\n frames: ErrorStackFrame[];\n unparsed: string[];\n raw: string;\n};\n\nexport type ErrorStackFrame = {\n raw: string;\n file: string;\n line: number;\n functionName?: string;\n};\n\nexport function normalizeErrorDiagnostics(\n value: unknown,\n fallback?: string | null,\n): ErrorDiagnostics | null {\n if (!value) return null;\n if (typeof value === \"string\") {\n return value.trim() ? { message: value, context: [] } : null;\n }\n const record = objectRecord(value);\n if (!record) return null;\n const nestedError = objectRecord(record.error);\n if (nestedError && nestedError !== record) {\n return normalizeErrorDiagnostics(nestedError, fallback);\n }\n const message =\n firstString(record, [\"error\", \"message\", \"msg\", \"reason\", \"detail\", \"details\"]) ?? fallback;\n const trace = firstString(record, [\"trace\", \"trace_id\", \"traceId\", \"traceID\"]);\n const stacktrace = firstString(record, [\"stacktrace\", \"stack_trace\", \"stackTrace\", \"stack\"]);\n const time = firstString(record, [\"time\", \"timestamp\", \"created_at\"]);\n const hint = firstString(record, [\"hint\"]);\n // The hint leads the context badges: of everything the server attaches it is\n // the one field that says what to do next.\n const context: Array<[string, string]> = [\n ...(hint ? ([[\"Hint\", hint]] as Array<[string, string]>) : []),\n ...contextEntries(record.context),\n ];\n const details = detailBlocks(record.details);\n if (!message && !trace && !stacktrace && !time && context.length === 0) {\n const nestedDiagnostics = objectRecord(record.diagnostics);\n if (nestedDiagnostics && nestedDiagnostics !== record) {\n return normalizeErrorDiagnostics(nestedDiagnostics, fallback);\n }\n }\n if (!message && !trace && !stacktrace && !time && context.length === 0) return null;\n return {\n message: message ?? \"Action failed\",\n context,\n raw: value,\n ...(trace !== undefined ? { trace } : {}),\n ...(time !== undefined ? { time } : {}),\n ...(stacktrace !== undefined ? { stacktrace } : {}),\n ...(details.length > 0 ? { details } : {}),\n };\n}\n\n// `details` is overloaded on the wire: our own envelope sends an array of\n// {label, value} blocks (entity.ErrorResponse), while third-party bodies use a\n// bare string that firstString already reads as the message. Only the array\n// form produces blocks; content_type is dropped because every block renders as\n// preformatted text either way.\nfunction detailBlocks(value: unknown): ErrorDetailBlock[] {\n if (!Array.isArray(value)) return [];\n return value.flatMap((entry) => {\n const record = objectRecord(entry);\n const label = firstString(record ?? {}, [\"label\"]);\n const detail = firstString(record ?? {}, [\"value\"]);\n return label && detail ? [{ label, value: detail }] : [];\n });\n}\n\nexport function parseDiagnosticsStackTrace(stacktrace: string): ParsedErrorStackTrace {\n const lines = stacktrace\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter(Boolean);\n const frames: ErrorStackFrame[] = [];\n const unparsed: string[] = [];\n let headline: string | undefined;\n\n for (const line of lines) {\n const frame = parseStackTraceFrame(line);\n if (frame) {\n frames.push(frame);\n continue;\n }\n if (!headline && !line.startsWith(\"--- at \")) {\n headline = line;\n continue;\n }\n unparsed.push(line);\n }\n\n return {\n frames,\n unparsed,\n raw: stacktrace,\n ...(headline !== undefined ? { headline } : {}),\n };\n}\n\nexport function parseInlineJsonContextValue(value: string): unknown | null {\n const trimmed = value.trim();\n if (!trimmed || !/^[{[]/.test(trimmed)) return null;\n try {\n return JSON.parse(trimmed);\n } catch {\n return null;\n }\n}\n\nexport function compactStackPath(file: string) {\n return file\n .replace(/^github\\.com\\/flanksource\\/incident-commander\\//, \"\")\n .replace(/^github\\.com\\/flanksource\\//, \"flanksource/\")\n .replace(/^.*\\/go\\/pkg\\/mod\\//, \"pkg/mod/\")\n .replace(/^.*\\/incident-commander\\//, \"\");\n}\n\nexport function isApplicationStackFrame(file: string) {\n return (\n file.includes(\"github.com/flanksource/incident-commander/\") ||\n file.includes(\"/incident-commander/\")\n );\n}\n\nfunction parseStackTraceFrame(line: string): ErrorStackFrame | null {\n const prefix = \"--- at \";\n if (!line.startsWith(prefix)) return null;\n\n const value = line.slice(prefix.length);\n let fileEnd = -1;\n let lineStart = -1;\n let lineEnd = -1;\n let functionStart = -1;\n\n for (let index = 0; index < value.length; index++) {\n if (value[index] !== \":\" || !isDecimalDigit(value[index + 1])) continue;\n\n let end = index + 1;\n while (isDecimalDigit(value[end])) end++;\n if (end === value.length) {\n fileEnd = index;\n lineStart = index + 1;\n lineEnd = end;\n functionStart = -1;\n continue;\n }\n if (!isWhitespace(value[end])) continue;\n\n let start = end;\n while (isWhitespace(value[start])) start++;\n if (start === value.length && start - end < 2) continue;\n fileEnd = index;\n lineStart = index + 1;\n lineEnd = end;\n functionStart = start;\n }\n\n if (fileEnd <= 0 || lineStart < 0 || lineEnd < 0) return null;\n const functionName = functionStart >= 0 ? value.slice(functionStart).trim() : \"\";\n return {\n raw: line,\n file: value.slice(0, fileEnd),\n line: Number(value.slice(lineStart, lineEnd)),\n ...(functionName ? { functionName } : {}),\n };\n}\n\nfunction isDecimalDigit(value: string | undefined): boolean {\n return value !== undefined && value >= \"0\" && value <= \"9\";\n}\n\nfunction isWhitespace(value: string | undefined): boolean {\n return value !== undefined && value.trim() === \"\";\n}\n\nfunction objectRecord(value: unknown): Record<string, unknown> | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n return value as Record<string, unknown>;\n}\n\nfunction firstString(record: Record<string, unknown>, keys: string[]): string | undefined {\n for (const key of keys) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim()) return value;\n }\n return undefined;\n}\n\nfunction contextEntries(value: unknown): Array<[string, string]> {\n const record = objectRecord(value);\n if (!record) return [];\n return Object.entries(record)\n .filter(\n ([, entryValue]) => entryValue !== undefined && entryValue !== null && entryValue !== \"\",\n )\n .map(([key, entryValue]) => [key, stringifyValue(entryValue)]);\n}\n\nfunction stringifyValue(value: unknown): string {\n if (value === null || value === undefined || value === \"\") return \"-\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n return JSON.stringify(value);\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const RUNTIME_PREFIXES = [
4
+ "java.",
5
+ "javax.",
6
+ "sun.",
7
+ "jdk.",
8
+ "com.sun.",
9
+ "oracle.jrockit."
10
+ ];
11
+ function isRuntimeFrame(className, extraPrefixes = []) {
12
+ return RUNTIME_PREFIXES.some((p) => className.startsWith(p)) || extraPrefixes.some((p) => className.startsWith(p));
13
+ }
14
+ function shortFrameName(className, method) {
15
+ const last = className.split(".").filter(Boolean).pop() ?? className;
16
+ return [last, method].filter(Boolean).join(".");
17
+ }
18
+ function frameLocation(file, line) {
19
+ if (!file) return void 0;
20
+ return line === void 0 ? file : `${file}:${line}`;
21
+ }
22
+ exports.RUNTIME_PREFIXES = RUNTIME_PREFIXES;
23
+ exports.frameLocation = frameLocation;
24
+ exports.isRuntimeFrame = isRuntimeFrame;
25
+ exports.shortFrameName = shortFrameName;
26
+ //# sourceMappingURL=frame-heuristics.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-heuristics.cjs","sources":["../../../src/data/diagnostics/frame-heuristics.ts"],"sourcesContent":["// Shared frame heuristics for the JVM diagnostics renderers. Both parsers — the\n// exception-dump parser (stacktrace-parse) and the thread-dump parser\n// (jvm-stacktrace) — classify and label frames the same way, so the rules live\n// here rather than being restated in each.\n\n// Packages that are JVM/JDK internals rather than application code. Frames\n// matching one are marked `runtime`, which mutes them and lets a renderer drop\n// them via `hideRuntimeOnly`.\n//\n// Deliberately conservative: it covers the JDK only. A consumer whose noise\n// floor is higher (a servlet container's frames, a profiling agent's own\n// frames) passes its extra prefixes to `isRuntimeFrame` rather than forking\n// this list — what counts as noise is the consumer's call, not ours.\nexport const RUNTIME_PREFIXES = [\n \"java.\",\n \"javax.\",\n \"sun.\",\n \"jdk.\",\n \"com.sun.\",\n \"or\" + \"acle.jrockit.\",\n];\n\nexport function isRuntimeFrame(className: string, extraPrefixes: string[] = []): boolean {\n return (\n RUNTIME_PREFIXES.some((p) => className.startsWith(p)) ||\n extraPrefixes.some((p) => className.startsWith(p))\n );\n}\n\n// shortFrameName collapses a fully-qualified frame to `Class.method` for\n// display, keeping any inner-class suffix: `com.example.App$Inner.run` →\n// `App$Inner.run`. Returns the input unchanged when it has no package.\nexport function shortFrameName(className: string, method: string): string {\n const last = className.split(\".\").filter(Boolean).pop() ?? className;\n return [last, method].filter(Boolean).join(\".\");\n}\n\n// frameLocation renders the `File.java:42` badge, degrading to the bare file\n// when no line was captured and to undefined when there is no file at all.\n// Line 0 is a captured location, not an absent one, so the check is against\n// undefined rather than falsiness.\nexport function frameLocation(file?: string, line?: number): string | undefined {\n if (!file) return undefined;\n return line === undefined ? file : `${file}:${line}`;\n}\n"],"names":[],"mappings":";;AAaO,MAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,eAAe,WAAmB,gBAA0B,IAAa;AACvF,SACE,iBAAiB,KAAK,CAAC,MAAM,UAAU,WAAW,CAAC,CAAC,KACpD,cAAc,KAAK,CAAC,MAAM,UAAU,WAAW,CAAC,CAAC;AAErD;AAKO,SAAS,eAAe,WAAmB,QAAwB;AACxE,QAAM,OAAO,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,IAAA,KAAS;AAC3D,SAAO,CAAC,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAChD;AAMO,SAAS,cAAc,MAAe,MAAmC;AAC9E,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,SAAS,SAAY,OAAO,GAAG,IAAI,IAAI,IAAI;AACpD;;;;;"}
@@ -0,0 +1,5 @@
1
+ export declare const RUNTIME_PREFIXES: string[];
2
+ export declare function isRuntimeFrame(className: string, extraPrefixes?: string[]): boolean;
3
+ export declare function shortFrameName(className: string, method: string): string;
4
+ export declare function frameLocation(file?: string, line?: number): string | undefined;
5
+ //# sourceMappingURL=frame-heuristics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-heuristics.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/frame-heuristics.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,gBAAgB,UAO5B,CAAC;AAEF,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,GAAE,MAAM,EAAO,GAAG,OAAO,CAKvF;AAKD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxE;AAMD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG9E"}
@@ -0,0 +1,26 @@
1
+ const RUNTIME_PREFIXES = [
2
+ "java.",
3
+ "javax.",
4
+ "sun.",
5
+ "jdk.",
6
+ "com.sun.",
7
+ "oracle.jrockit."
8
+ ];
9
+ function isRuntimeFrame(className, extraPrefixes = []) {
10
+ return RUNTIME_PREFIXES.some((p) => className.startsWith(p)) || extraPrefixes.some((p) => className.startsWith(p));
11
+ }
12
+ function shortFrameName(className, method) {
13
+ const last = className.split(".").filter(Boolean).pop() ?? className;
14
+ return [last, method].filter(Boolean).join(".");
15
+ }
16
+ function frameLocation(file, line) {
17
+ if (!file) return void 0;
18
+ return line === void 0 ? file : `${file}:${line}`;
19
+ }
20
+ export {
21
+ RUNTIME_PREFIXES,
22
+ frameLocation,
23
+ isRuntimeFrame,
24
+ shortFrameName
25
+ };
26
+ //# sourceMappingURL=frame-heuristics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-heuristics.js","sources":["../../../src/data/diagnostics/frame-heuristics.ts"],"sourcesContent":["// Shared frame heuristics for the JVM diagnostics renderers. Both parsers — the\n// exception-dump parser (stacktrace-parse) and the thread-dump parser\n// (jvm-stacktrace) — classify and label frames the same way, so the rules live\n// here rather than being restated in each.\n\n// Packages that are JVM/JDK internals rather than application code. Frames\n// matching one are marked `runtime`, which mutes them and lets a renderer drop\n// them via `hideRuntimeOnly`.\n//\n// Deliberately conservative: it covers the JDK only. A consumer whose noise\n// floor is higher (a servlet container's frames, a profiling agent's own\n// frames) passes its extra prefixes to `isRuntimeFrame` rather than forking\n// this list — what counts as noise is the consumer's call, not ours.\nexport const RUNTIME_PREFIXES = [\n \"java.\",\n \"javax.\",\n \"sun.\",\n \"jdk.\",\n \"com.sun.\",\n \"or\" + \"acle.jrockit.\",\n];\n\nexport function isRuntimeFrame(className: string, extraPrefixes: string[] = []): boolean {\n return (\n RUNTIME_PREFIXES.some((p) => className.startsWith(p)) ||\n extraPrefixes.some((p) => className.startsWith(p))\n );\n}\n\n// shortFrameName collapses a fully-qualified frame to `Class.method` for\n// display, keeping any inner-class suffix: `com.example.App$Inner.run` →\n// `App$Inner.run`. Returns the input unchanged when it has no package.\nexport function shortFrameName(className: string, method: string): string {\n const last = className.split(\".\").filter(Boolean).pop() ?? className;\n return [last, method].filter(Boolean).join(\".\");\n}\n\n// frameLocation renders the `File.java:42` badge, degrading to the bare file\n// when no line was captured and to undefined when there is no file at all.\n// Line 0 is a captured location, not an absent one, so the check is against\n// undefined rather than falsiness.\nexport function frameLocation(file?: string, line?: number): string | undefined {\n if (!file) return undefined;\n return line === undefined ? file : `${file}:${line}`;\n}\n"],"names":[],"mappings":"AAaO,MAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,eAAe,WAAmB,gBAA0B,IAAa;AACvF,SACE,iBAAiB,KAAK,CAAC,MAAM,UAAU,WAAW,CAAC,CAAC,KACpD,cAAc,KAAK,CAAC,MAAM,UAAU,WAAW,CAAC,CAAC;AAErD;AAKO,SAAS,eAAe,WAAmB,QAAwB;AACxE,QAAM,OAAO,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,IAAA,KAAS;AAC3D,SAAO,CAAC,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAChD;AAMO,SAAS,cAAc,MAAe,MAAmC;AAC9E,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,SAAS,SAAY,OAAO,GAAG,IAAI,IAAI,IAAI;AACpD;"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const frameHeuristics = require("./frame-heuristics.cjs");
3
4
  const headerRe = /^"(?<name>[^"]*)"(?<rest>.*)$/;
4
5
  const stateRe = /^\s*java\.lang\.Thread\.State:\s+(?<state>[A-Z_]+)(?:\s+\((?<sub>[^)]+)\))?/;
5
6
  const frameRe = /^\s*at\s+(?<fn>[^\s(]+)\((?<src>[^)]+)\)\s*$/;
@@ -207,9 +208,8 @@ function normalizeJvmState(value) {
207
208
  if (lower.includes("blocked")) return "blocked";
208
209
  return lower.split(/\s+/)[0] ?? "";
209
210
  }
210
- const runtimePrefixes = ["java.", "javax.", "sun.", "jdk.", "com.sun.", "oracle.jrockit."];
211
211
  function isJvmRuntimeFrame(functionName) {
212
- return runtimePrefixes.some((p) => functionName.startsWith(p));
212
+ return frameHeuristics.isRuntimeFrame(functionName);
213
213
  }
214
214
  function splitClassMethod(functionName) {
215
215
  const lastDot = functionName.lastIndexOf(".");
@@ -220,11 +220,9 @@ function splitClassMethod(functionName) {
220
220
  };
221
221
  }
222
222
  function sanitizeJvmFunctionName(functionName) {
223
- const parts = functionName.split(".");
224
- if (parts.length < 2) return functionName;
225
- const method = parts[parts.length - 1];
226
- const cls = parts[parts.length - 2];
227
- return `${cls}.${method}`;
223
+ const lastDot = functionName.lastIndexOf(".");
224
+ if (lastDot <= 0) return functionName;
225
+ return frameHeuristics.shortFrameName(functionName.slice(0, lastDot), functionName.slice(lastDot + 1));
228
226
  }
229
227
  exports.countThreadsByState = countThreadsByState;
230
228
  exports.parseJvmThreadDump = parseJvmThreadDump;
@@ -1 +1 @@
1
- {"version":3,"file":"jvm-stacktrace.cjs","sources":["../../../src/data/diagnostics/jvm-stacktrace.ts"],"sourcesContent":["export interface ParsedThreadFrame {\n functionName: string;\n displayName: string;\n file?: string;\n line?: number;\n location?: string;\n kind: \"frame\" | \"locked\" | \"waiting_on\" | \"waiting_to_lock\" | \"parking\";\n runtime: boolean;\n nativeMethod: boolean;\n annotationText?: string;\n // Optional fully-qualified class name (e.g. \"com.example.admin.pas.Foo\").\n // Lets renderers filter or group by package without re-splitting\n // functionName. Populated by parseJavaStackTrace; left undefined by the\n // thread-dump parser since its frames are raw \"fn(src)\" pairs.\n class?: string;\n method?: string;\n // Optional source-context window populated by clicky.SourceResolver\n // (or its TS equivalent). sourceLines[line - sourceStartLine] is the focal\n // line. Empty/undefined when no resolver was attached.\n sourceLines?: string[];\n sourceLineNumbers?: number[];\n sourceStartLine?: number;\n sourceLanguage?: string;\n}\n\nexport interface ParsedThread {\n id: number;\n nid?: string;\n name: string;\n state: string;\n rawState: string;\n priority?: number;\n daemon?: boolean;\n frames: ParsedThreadFrame[];\n raw: string;\n userFrameCount: number;\n topFunction?: string;\n searchText: string;\n}\n\nconst headerRe = /^\"(?<name>[^\"]*)\"(?<rest>.*)$/;\nconst stateRe = /^\\s*java\\.lang\\.Thread\\.State:\\s+(?<state>[A-Z_]+)(?:\\s+\\((?<sub>[^)]+)\\))?/;\nconst frameRe = /^\\s*at\\s+(?<fn>[^\\s(]+)\\((?<src>[^)]+)\\)\\s*$/;\nconst srcLineRe = /^(?<file>[^:]+):(?<line>\\d+)$/;\nconst annotationRe =\n /^\\s*-\\s+(?<kind>locked|waiting on|waiting to lock|parking to wait for)\\b(?<rest>.*)$/;\n\nexport function parseJvmThreadDump(text: string): ParsedThread[] {\n const trimmed = text.trim();\n if (!trimmed) return [];\n\n // Split on blank lines OR on a new `\"...\"` header that follows immediately.\n const blocks = splitIntoThreadBlocks(trimmed);\n const threads: ParsedThread[] = [];\n\n for (const block of blocks) {\n const parsed = parseThreadBlock(block);\n if (parsed) threads.push(parsed);\n }\n return threads;\n}\n\nfunction splitIntoThreadBlocks(text: string): string[] {\n const out: string[] = [];\n let current: string[] = [];\n const lines = text.split(\"\\n\");\n for (const raw of lines) {\n const line = raw.replace(/\\r$/, \"\");\n if (line.startsWith('\"') && current.length > 0) {\n out.push(current.join(\"\\n\"));\n current = [line];\n } else {\n current.push(line);\n }\n }\n if (current.length > 0) out.push(current.join(\"\\n\"));\n return out;\n}\n\nfunction parseThreadBlock(block: string): ParsedThread | null {\n const lines = block.split(\"\\n\");\n const header = lines[0]?.trim() ?? \"\";\n const headerMatch = headerRe.exec(header);\n if (!headerMatch?.groups) return null;\n\n const name = headerMatch.groups.name;\n if (!name) return null;\n const rest = headerMatch.groups.rest ?? \"\";\n const idMatch = /#(\\d+)\\b/.exec(rest);\n const prioMatch = /\\bprio=(\\d+)/.exec(rest);\n const nidMatch = /\\bnid=(0x[0-9a-f]+)/i.exec(rest);\n const daemon = /\\bdaemon\\b/.test(rest);\n const headerStateTrail = extractHeaderStateTrail(rest);\n\n let rawState = headerStateTrail ?? \"\";\n let state = normalizeJvmState(rawState);\n const frames: ParsedThreadFrame[] = [];\n\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n if (line == null) continue;\n if (!line.trim()) continue;\n\n const stateMatch = stateRe.exec(line);\n if (stateMatch?.groups) {\n const primary = stateMatch.groups.state;\n if (!primary) continue;\n const sub = stateMatch.groups.sub;\n rawState = sub ? `${primary} (${sub})` : primary;\n state = normalizeJvmState(primary);\n continue;\n }\n\n const frameMatch = frameRe.exec(line);\n if (frameMatch?.groups) {\n const functionName = frameMatch.groups.fn;\n const src = frameMatch.groups.src;\n if (!functionName || !src) continue;\n const frame: ParsedThreadFrame = {\n functionName,\n displayName: sanitizeJvmFunctionName(functionName),\n kind: \"frame\",\n runtime: isJvmRuntimeFrame(functionName),\n nativeMethod: src === \"Native Method\",\n ...splitClassMethod(functionName),\n };\n const srcMatch = srcLineRe.exec(src);\n if (srcMatch?.groups?.file && srcMatch.groups.line) {\n frame.file = srcMatch.groups.file;\n frame.line = Number(srcMatch.groups.line);\n frame.location = `${frame.file}:${frame.line}`;\n } else if (src === \"Native Method\") {\n frame.location = \"Native Method\";\n } else {\n frame.location = src;\n }\n frames.push(frame);\n continue;\n }\n\n const annoMatch = annotationRe.exec(line);\n if (annoMatch?.groups?.kind) {\n const annotationKind = annoMatch.groups.kind;\n const kind = mapAnnotationKind(annotationKind);\n frames.push({\n functionName: annotationKind,\n displayName: annotationKind,\n kind,\n runtime: false,\n nativeMethod: false,\n annotationText: (annoMatch.groups.rest ?? \"\").trim(),\n });\n continue;\n }\n }\n\n const userFrameCount = frames.filter((f) => f.kind === \"frame\" && !f.runtime).length;\n const topFunction = frames.find((f) => f.kind === \"frame\")?.functionName;\n const searchText = [\n header,\n ...frames.map((f) => `${f.functionName} ${f.location ?? \"\"} ${f.annotationText ?? \"\"}`),\n ]\n .join(\"\\n\")\n .toLowerCase();\n\n return {\n id: idMatch ? Number(idMatch[1]) : deriveSyntheticId(name, rest),\n name,\n state: state || \"unknown\",\n rawState: rawState || \"\",\n daemon,\n frames,\n raw: block,\n userFrameCount,\n searchText,\n ...(nidMatch?.[1] !== undefined ? { nid: nidMatch[1] } : {}),\n ...(prioMatch?.[1] !== undefined ? { priority: Number(prioMatch[1]) } : {}),\n ...(topFunction !== undefined ? { topFunction } : {}),\n };\n}\n\nfunction extractHeaderStateTrail(rest: string): string | undefined {\n const lower = rest.toLowerCase();\n const marker = \"nid=0x\";\n const markerStart = lower.indexOf(marker);\n if (markerStart === -1) return undefined;\n\n let stateStart = markerStart + marker.length;\n const hexStart = stateStart;\n while (isHexDigit(rest[stateStart])) stateStart++;\n if (stateStart === hexStart || !isWhitespace(rest[stateStart])) return undefined;\n while (isWhitespace(rest[stateStart])) stateStart++;\n\n let stateEnd = rest.length;\n while (stateEnd > stateStart && isWhitespace(rest[stateEnd - 1])) stateEnd--;\n if (rest[stateEnd - 1] === \"]\") {\n const addressStart = lower.lastIndexOf(\"[0x\", stateEnd - 1);\n if (\n addressStart > stateStart &&\n isHexSequence(rest, addressStart + 3, stateEnd - 1) &&\n isWhitespace(rest[addressStart - 1])\n ) {\n stateEnd = addressStart;\n while (stateEnd > stateStart && isWhitespace(rest[stateEnd - 1])) stateEnd--;\n }\n }\n\n const state = rest.slice(stateStart, stateEnd);\n return state || undefined;\n}\n\nfunction isHexDigit(value: string | undefined): boolean {\n if (value === undefined) return false;\n const code = value.toLowerCase().charCodeAt(0);\n return (code >= 48 && code <= 57) || (code >= 97 && code <= 102);\n}\n\nfunction isHexSequence(value: string, start: number, end: number): boolean {\n if (start >= end) return false;\n for (let index = start; index < end; index++) {\n if (!isHexDigit(value[index])) return false;\n }\n return true;\n}\n\nfunction isWhitespace(value: string | undefined): boolean {\n return value !== undefined && value.trim() === \"\";\n}\n\nfunction deriveSyntheticId(name: string, rest: string): number {\n const tid = /\\btid=(0x[0-9a-f]+)/i.exec(rest);\n if (tid?.[1]) {\n // stable non-negative int derived from tid hex suffix\n const hex = tid[1].slice(2);\n const n = Number.parseInt(hex.slice(-8), 16);\n if (Number.isFinite(n)) return n;\n }\n // Fallback: hash of name\n let h = 0;\n for (let i = 0; i < name.length; i++) h = (h * 31 + name.charCodeAt(i)) | 0;\n return Math.abs(h);\n}\n\nfunction mapAnnotationKind(kind: string): ParsedThreadFrame[\"kind\"] {\n switch (kind) {\n case \"locked\":\n return \"locked\";\n case \"waiting on\":\n return \"waiting_on\";\n case \"waiting to lock\":\n return \"waiting_to_lock\";\n case \"parking to wait for\":\n return \"parking\";\n default:\n return \"frame\";\n }\n}\n\nexport function countThreadsByState(threads: ParsedThread[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const t of threads) counts.set(t.state, (counts.get(t.state) ?? 0) + 1);\n return counts;\n}\n\nfunction normalizeJvmState(value: string): string {\n if (!value) return \"\";\n const upper = value.trim().toUpperCase();\n if (upper.startsWith(\"RUNNABLE\")) return \"runnable\";\n if (upper.startsWith(\"TIMED_WAITING\")) return \"timed_waiting\";\n if (upper.startsWith(\"WAITING\")) return \"waiting\";\n if (upper.startsWith(\"BLOCKED\")) return \"blocked\";\n if (upper.startsWith(\"NEW\")) return \"new\";\n if (upper.startsWith(\"TERMINATED\")) return \"terminated\";\n // Header fragments like \"waiting on condition\", \"runnable\", \"sleeping\"\n const lower = value.trim().toLowerCase();\n if (lower.includes(\"runnable\")) return \"runnable\";\n if (lower.includes(\"waiting on condition\") || lower.includes(\"sleeping\")) return \"timed_waiting\";\n if (lower.includes(\"waiting\")) return \"waiting\";\n if (lower.includes(\"blocked\")) return \"blocked\";\n return lower.split(/\\s+/)[0] ?? \"\";\n}\n\nconst runtimePrefixes = [\"java.\", \"javax.\", \"sun.\", \"jdk.\", \"com.sun.\", \"or\" + \"acle.jrockit.\"];\nfunction isJvmRuntimeFrame(functionName: string): boolean {\n return runtimePrefixes.some((p) => functionName.startsWith(p));\n}\n\n// splitClassMethod separates a JVM frame's `fully.qualified.Class.method` into\n// its class and method. The method is the last dot segment; everything before\n// is the (possibly inner) class. Returns no fields when the name has no dot, so\n// frames like a bare `<init>` are left without a class rather than guessed.\nfunction splitClassMethod(functionName: string): { class?: string; method?: string } {\n const lastDot = functionName.lastIndexOf(\".\");\n if (lastDot <= 0) return {};\n return {\n class: functionName.slice(0, lastDot),\n method: functionName.slice(lastDot + 1),\n };\n}\n\nfunction sanitizeJvmFunctionName(functionName: string): string {\n // e.g. \"com.example.App$Inner.method\" → \"App$Inner.method\"\n const parts = functionName.split(\".\");\n if (parts.length < 2) return functionName;\n const method = parts[parts.length - 1];\n const cls = parts[parts.length - 2];\n return `${cls}.${method}`;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jvm-stacktrace.cjs","sources":["../../../src/data/diagnostics/jvm-stacktrace.ts"],"sourcesContent":["import { isRuntimeFrame, shortFrameName } from \"./frame-heuristics\";\n\nexport interface ParsedThreadFrame {\n functionName: string;\n displayName: string;\n file?: string;\n line?: number;\n location?: string;\n kind: \"frame\" | \"locked\" | \"waiting_on\" | \"waiting_to_lock\" | \"parking\";\n runtime: boolean;\n nativeMethod: boolean;\n annotationText?: string;\n // Optional fully-qualified class name (e.g. \"com.example.admin.pas.Foo\").\n // Lets renderers filter or group by package without re-splitting\n // functionName. Populated by parseJavaStackTrace; left undefined by the\n // thread-dump parser since its frames are raw \"fn(src)\" pairs.\n class?: string;\n method?: string;\n // Optional source-context window populated by clicky.SourceResolver\n // (or its TS equivalent). sourceLines[line - sourceStartLine] is the focal\n // line. Empty/undefined when no resolver was attached.\n sourceLines?: string[];\n sourceLineNumbers?: number[];\n sourceStartLine?: number;\n sourceLanguage?: string;\n}\n\nexport interface ParsedThread {\n id: number;\n nid?: string;\n name: string;\n state: string;\n rawState: string;\n priority?: number;\n daemon?: boolean;\n frames: ParsedThreadFrame[];\n raw: string;\n userFrameCount: number;\n topFunction?: string;\n searchText: string;\n}\n\nconst headerRe = /^\"(?<name>[^\"]*)\"(?<rest>.*)$/;\nconst stateRe = /^\\s*java\\.lang\\.Thread\\.State:\\s+(?<state>[A-Z_]+)(?:\\s+\\((?<sub>[^)]+)\\))?/;\nconst frameRe = /^\\s*at\\s+(?<fn>[^\\s(]+)\\((?<src>[^)]+)\\)\\s*$/;\nconst srcLineRe = /^(?<file>[^:]+):(?<line>\\d+)$/;\nconst annotationRe =\n /^\\s*-\\s+(?<kind>locked|waiting on|waiting to lock|parking to wait for)\\b(?<rest>.*)$/;\n\nexport function parseJvmThreadDump(text: string): ParsedThread[] {\n const trimmed = text.trim();\n if (!trimmed) return [];\n\n // Split on blank lines OR on a new `\"...\"` header that follows immediately.\n const blocks = splitIntoThreadBlocks(trimmed);\n const threads: ParsedThread[] = [];\n\n for (const block of blocks) {\n const parsed = parseThreadBlock(block);\n if (parsed) threads.push(parsed);\n }\n return threads;\n}\n\nfunction splitIntoThreadBlocks(text: string): string[] {\n const out: string[] = [];\n let current: string[] = [];\n const lines = text.split(\"\\n\");\n for (const raw of lines) {\n const line = raw.replace(/\\r$/, \"\");\n if (line.startsWith('\"') && current.length > 0) {\n out.push(current.join(\"\\n\"));\n current = [line];\n } else {\n current.push(line);\n }\n }\n if (current.length > 0) out.push(current.join(\"\\n\"));\n return out;\n}\n\nfunction parseThreadBlock(block: string): ParsedThread | null {\n const lines = block.split(\"\\n\");\n const header = lines[0]?.trim() ?? \"\";\n const headerMatch = headerRe.exec(header);\n if (!headerMatch?.groups) return null;\n\n const name = headerMatch.groups.name;\n if (!name) return null;\n const rest = headerMatch.groups.rest ?? \"\";\n const idMatch = /#(\\d+)\\b/.exec(rest);\n const prioMatch = /\\bprio=(\\d+)/.exec(rest);\n const nidMatch = /\\bnid=(0x[0-9a-f]+)/i.exec(rest);\n const daemon = /\\bdaemon\\b/.test(rest);\n const headerStateTrail = extractHeaderStateTrail(rest);\n\n let rawState = headerStateTrail ?? \"\";\n let state = normalizeJvmState(rawState);\n const frames: ParsedThreadFrame[] = [];\n\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n if (line == null) continue;\n if (!line.trim()) continue;\n\n const stateMatch = stateRe.exec(line);\n if (stateMatch?.groups) {\n const primary = stateMatch.groups.state;\n if (!primary) continue;\n const sub = stateMatch.groups.sub;\n rawState = sub ? `${primary} (${sub})` : primary;\n state = normalizeJvmState(primary);\n continue;\n }\n\n const frameMatch = frameRe.exec(line);\n if (frameMatch?.groups) {\n const functionName = frameMatch.groups.fn;\n const src = frameMatch.groups.src;\n if (!functionName || !src) continue;\n const frame: ParsedThreadFrame = {\n functionName,\n displayName: sanitizeJvmFunctionName(functionName),\n kind: \"frame\",\n runtime: isJvmRuntimeFrame(functionName),\n nativeMethod: src === \"Native Method\",\n ...splitClassMethod(functionName),\n };\n const srcMatch = srcLineRe.exec(src);\n if (srcMatch?.groups?.file && srcMatch.groups.line) {\n frame.file = srcMatch.groups.file;\n frame.line = Number(srcMatch.groups.line);\n frame.location = `${frame.file}:${frame.line}`;\n } else if (src === \"Native Method\") {\n frame.location = \"Native Method\";\n } else {\n frame.location = src;\n }\n frames.push(frame);\n continue;\n }\n\n const annoMatch = annotationRe.exec(line);\n if (annoMatch?.groups?.kind) {\n const annotationKind = annoMatch.groups.kind;\n const kind = mapAnnotationKind(annotationKind);\n frames.push({\n functionName: annotationKind,\n displayName: annotationKind,\n kind,\n runtime: false,\n nativeMethod: false,\n annotationText: (annoMatch.groups.rest ?? \"\").trim(),\n });\n continue;\n }\n }\n\n const userFrameCount = frames.filter((f) => f.kind === \"frame\" && !f.runtime).length;\n const topFunction = frames.find((f) => f.kind === \"frame\")?.functionName;\n const searchText = [\n header,\n ...frames.map((f) => `${f.functionName} ${f.location ?? \"\"} ${f.annotationText ?? \"\"}`),\n ]\n .join(\"\\n\")\n .toLowerCase();\n\n return {\n id: idMatch ? Number(idMatch[1]) : deriveSyntheticId(name, rest),\n name,\n state: state || \"unknown\",\n rawState: rawState || \"\",\n daemon,\n frames,\n raw: block,\n userFrameCount,\n searchText,\n ...(nidMatch?.[1] !== undefined ? { nid: nidMatch[1] } : {}),\n ...(prioMatch?.[1] !== undefined ? { priority: Number(prioMatch[1]) } : {}),\n ...(topFunction !== undefined ? { topFunction } : {}),\n };\n}\n\nfunction extractHeaderStateTrail(rest: string): string | undefined {\n const lower = rest.toLowerCase();\n const marker = \"nid=0x\";\n const markerStart = lower.indexOf(marker);\n if (markerStart === -1) return undefined;\n\n let stateStart = markerStart + marker.length;\n const hexStart = stateStart;\n while (isHexDigit(rest[stateStart])) stateStart++;\n if (stateStart === hexStart || !isWhitespace(rest[stateStart])) return undefined;\n while (isWhitespace(rest[stateStart])) stateStart++;\n\n let stateEnd = rest.length;\n while (stateEnd > stateStart && isWhitespace(rest[stateEnd - 1])) stateEnd--;\n if (rest[stateEnd - 1] === \"]\") {\n const addressStart = lower.lastIndexOf(\"[0x\", stateEnd - 1);\n if (\n addressStart > stateStart &&\n isHexSequence(rest, addressStart + 3, stateEnd - 1) &&\n isWhitespace(rest[addressStart - 1])\n ) {\n stateEnd = addressStart;\n while (stateEnd > stateStart && isWhitespace(rest[stateEnd - 1])) stateEnd--;\n }\n }\n\n const state = rest.slice(stateStart, stateEnd);\n return state || undefined;\n}\n\nfunction isHexDigit(value: string | undefined): boolean {\n if (value === undefined) return false;\n const code = value.toLowerCase().charCodeAt(0);\n return (code >= 48 && code <= 57) || (code >= 97 && code <= 102);\n}\n\nfunction isHexSequence(value: string, start: number, end: number): boolean {\n if (start >= end) return false;\n for (let index = start; index < end; index++) {\n if (!isHexDigit(value[index])) return false;\n }\n return true;\n}\n\nfunction isWhitespace(value: string | undefined): boolean {\n return value !== undefined && value.trim() === \"\";\n}\n\nfunction deriveSyntheticId(name: string, rest: string): number {\n const tid = /\\btid=(0x[0-9a-f]+)/i.exec(rest);\n if (tid?.[1]) {\n // stable non-negative int derived from tid hex suffix\n const hex = tid[1].slice(2);\n const n = Number.parseInt(hex.slice(-8), 16);\n if (Number.isFinite(n)) return n;\n }\n // Fallback: hash of name\n let h = 0;\n for (let i = 0; i < name.length; i++) h = (h * 31 + name.charCodeAt(i)) | 0;\n return Math.abs(h);\n}\n\nfunction mapAnnotationKind(kind: string): ParsedThreadFrame[\"kind\"] {\n switch (kind) {\n case \"locked\":\n return \"locked\";\n case \"waiting on\":\n return \"waiting_on\";\n case \"waiting to lock\":\n return \"waiting_to_lock\";\n case \"parking to wait for\":\n return \"parking\";\n default:\n return \"frame\";\n }\n}\n\nexport function countThreadsByState(threads: ParsedThread[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const t of threads) counts.set(t.state, (counts.get(t.state) ?? 0) + 1);\n return counts;\n}\n\nfunction normalizeJvmState(value: string): string {\n if (!value) return \"\";\n const upper = value.trim().toUpperCase();\n if (upper.startsWith(\"RUNNABLE\")) return \"runnable\";\n if (upper.startsWith(\"TIMED_WAITING\")) return \"timed_waiting\";\n if (upper.startsWith(\"WAITING\")) return \"waiting\";\n if (upper.startsWith(\"BLOCKED\")) return \"blocked\";\n if (upper.startsWith(\"NEW\")) return \"new\";\n if (upper.startsWith(\"TERMINATED\")) return \"terminated\";\n // Header fragments like \"waiting on condition\", \"runnable\", \"sleeping\"\n const lower = value.trim().toLowerCase();\n if (lower.includes(\"runnable\")) return \"runnable\";\n if (lower.includes(\"waiting on condition\") || lower.includes(\"sleeping\")) return \"timed_waiting\";\n if (lower.includes(\"waiting\")) return \"waiting\";\n if (lower.includes(\"blocked\")) return \"blocked\";\n return lower.split(/\\s+/)[0] ?? \"\";\n}\n\nfunction isJvmRuntimeFrame(functionName: string): boolean {\n return isRuntimeFrame(functionName);\n}\n\n// splitClassMethod separates a JVM frame's `fully.qualified.Class.method` into\n// its class and method. The method is the last dot segment; everything before\n// is the (possibly inner) class. Returns no fields when the name has no dot, so\n// frames like a bare `<init>` are left without a class rather than guessed.\nfunction splitClassMethod(functionName: string): { class?: string; method?: string } {\n const lastDot = functionName.lastIndexOf(\".\");\n if (lastDot <= 0) return {};\n return {\n class: functionName.slice(0, lastDot),\n method: functionName.slice(lastDot + 1),\n };\n}\n\nfunction sanitizeJvmFunctionName(functionName: string): string {\n // e.g. \"com.example.App$Inner.method\" → \"App$Inner.method\"\n const lastDot = functionName.lastIndexOf(\".\");\n if (lastDot <= 0) return functionName;\n return shortFrameName(functionName.slice(0, lastDot), functionName.slice(lastDot + 1));\n}\n"],"names":["isRuntimeFrame","shortFrameName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"jvm-stacktrace.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/jvm-stacktrace.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAa/D;AAsMD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIhF"}
1
+ {"version":3,"file":"jvm-stacktrace.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/jvm-stacktrace.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAa/D;AAsMD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIhF"}
@@ -1,3 +1,4 @@
1
+ import { isRuntimeFrame, shortFrameName } from "./frame-heuristics.js";
1
2
  const headerRe = /^"(?<name>[^"]*)"(?<rest>.*)$/;
2
3
  const stateRe = /^\s*java\.lang\.Thread\.State:\s+(?<state>[A-Z_]+)(?:\s+\((?<sub>[^)]+)\))?/;
3
4
  const frameRe = /^\s*at\s+(?<fn>[^\s(]+)\((?<src>[^)]+)\)\s*$/;
@@ -205,9 +206,8 @@ function normalizeJvmState(value) {
205
206
  if (lower.includes("blocked")) return "blocked";
206
207
  return lower.split(/\s+/)[0] ?? "";
207
208
  }
208
- const runtimePrefixes = ["java.", "javax.", "sun.", "jdk.", "com.sun.", "oracle.jrockit."];
209
209
  function isJvmRuntimeFrame(functionName) {
210
- return runtimePrefixes.some((p) => functionName.startsWith(p));
210
+ return isRuntimeFrame(functionName);
211
211
  }
212
212
  function splitClassMethod(functionName) {
213
213
  const lastDot = functionName.lastIndexOf(".");
@@ -218,11 +218,9 @@ function splitClassMethod(functionName) {
218
218
  };
219
219
  }
220
220
  function sanitizeJvmFunctionName(functionName) {
221
- const parts = functionName.split(".");
222
- if (parts.length < 2) return functionName;
223
- const method = parts[parts.length - 1];
224
- const cls = parts[parts.length - 2];
225
- return `${cls}.${method}`;
221
+ const lastDot = functionName.lastIndexOf(".");
222
+ if (lastDot <= 0) return functionName;
223
+ return shortFrameName(functionName.slice(0, lastDot), functionName.slice(lastDot + 1));
226
224
  }
227
225
  export {
228
226
  countThreadsByState,
@@ -1 +1 @@
1
- {"version":3,"file":"jvm-stacktrace.js","sources":["../../../src/data/diagnostics/jvm-stacktrace.ts"],"sourcesContent":["export interface ParsedThreadFrame {\n functionName: string;\n displayName: string;\n file?: string;\n line?: number;\n location?: string;\n kind: \"frame\" | \"locked\" | \"waiting_on\" | \"waiting_to_lock\" | \"parking\";\n runtime: boolean;\n nativeMethod: boolean;\n annotationText?: string;\n // Optional fully-qualified class name (e.g. \"com.example.admin.pas.Foo\").\n // Lets renderers filter or group by package without re-splitting\n // functionName. Populated by parseJavaStackTrace; left undefined by the\n // thread-dump parser since its frames are raw \"fn(src)\" pairs.\n class?: string;\n method?: string;\n // Optional source-context window populated by clicky.SourceResolver\n // (or its TS equivalent). sourceLines[line - sourceStartLine] is the focal\n // line. Empty/undefined when no resolver was attached.\n sourceLines?: string[];\n sourceLineNumbers?: number[];\n sourceStartLine?: number;\n sourceLanguage?: string;\n}\n\nexport interface ParsedThread {\n id: number;\n nid?: string;\n name: string;\n state: string;\n rawState: string;\n priority?: number;\n daemon?: boolean;\n frames: ParsedThreadFrame[];\n raw: string;\n userFrameCount: number;\n topFunction?: string;\n searchText: string;\n}\n\nconst headerRe = /^\"(?<name>[^\"]*)\"(?<rest>.*)$/;\nconst stateRe = /^\\s*java\\.lang\\.Thread\\.State:\\s+(?<state>[A-Z_]+)(?:\\s+\\((?<sub>[^)]+)\\))?/;\nconst frameRe = /^\\s*at\\s+(?<fn>[^\\s(]+)\\((?<src>[^)]+)\\)\\s*$/;\nconst srcLineRe = /^(?<file>[^:]+):(?<line>\\d+)$/;\nconst annotationRe =\n /^\\s*-\\s+(?<kind>locked|waiting on|waiting to lock|parking to wait for)\\b(?<rest>.*)$/;\n\nexport function parseJvmThreadDump(text: string): ParsedThread[] {\n const trimmed = text.trim();\n if (!trimmed) return [];\n\n // Split on blank lines OR on a new `\"...\"` header that follows immediately.\n const blocks = splitIntoThreadBlocks(trimmed);\n const threads: ParsedThread[] = [];\n\n for (const block of blocks) {\n const parsed = parseThreadBlock(block);\n if (parsed) threads.push(parsed);\n }\n return threads;\n}\n\nfunction splitIntoThreadBlocks(text: string): string[] {\n const out: string[] = [];\n let current: string[] = [];\n const lines = text.split(\"\\n\");\n for (const raw of lines) {\n const line = raw.replace(/\\r$/, \"\");\n if (line.startsWith('\"') && current.length > 0) {\n out.push(current.join(\"\\n\"));\n current = [line];\n } else {\n current.push(line);\n }\n }\n if (current.length > 0) out.push(current.join(\"\\n\"));\n return out;\n}\n\nfunction parseThreadBlock(block: string): ParsedThread | null {\n const lines = block.split(\"\\n\");\n const header = lines[0]?.trim() ?? \"\";\n const headerMatch = headerRe.exec(header);\n if (!headerMatch?.groups) return null;\n\n const name = headerMatch.groups.name;\n if (!name) return null;\n const rest = headerMatch.groups.rest ?? \"\";\n const idMatch = /#(\\d+)\\b/.exec(rest);\n const prioMatch = /\\bprio=(\\d+)/.exec(rest);\n const nidMatch = /\\bnid=(0x[0-9a-f]+)/i.exec(rest);\n const daemon = /\\bdaemon\\b/.test(rest);\n const headerStateTrail = extractHeaderStateTrail(rest);\n\n let rawState = headerStateTrail ?? \"\";\n let state = normalizeJvmState(rawState);\n const frames: ParsedThreadFrame[] = [];\n\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n if (line == null) continue;\n if (!line.trim()) continue;\n\n const stateMatch = stateRe.exec(line);\n if (stateMatch?.groups) {\n const primary = stateMatch.groups.state;\n if (!primary) continue;\n const sub = stateMatch.groups.sub;\n rawState = sub ? `${primary} (${sub})` : primary;\n state = normalizeJvmState(primary);\n continue;\n }\n\n const frameMatch = frameRe.exec(line);\n if (frameMatch?.groups) {\n const functionName = frameMatch.groups.fn;\n const src = frameMatch.groups.src;\n if (!functionName || !src) continue;\n const frame: ParsedThreadFrame = {\n functionName,\n displayName: sanitizeJvmFunctionName(functionName),\n kind: \"frame\",\n runtime: isJvmRuntimeFrame(functionName),\n nativeMethod: src === \"Native Method\",\n ...splitClassMethod(functionName),\n };\n const srcMatch = srcLineRe.exec(src);\n if (srcMatch?.groups?.file && srcMatch.groups.line) {\n frame.file = srcMatch.groups.file;\n frame.line = Number(srcMatch.groups.line);\n frame.location = `${frame.file}:${frame.line}`;\n } else if (src === \"Native Method\") {\n frame.location = \"Native Method\";\n } else {\n frame.location = src;\n }\n frames.push(frame);\n continue;\n }\n\n const annoMatch = annotationRe.exec(line);\n if (annoMatch?.groups?.kind) {\n const annotationKind = annoMatch.groups.kind;\n const kind = mapAnnotationKind(annotationKind);\n frames.push({\n functionName: annotationKind,\n displayName: annotationKind,\n kind,\n runtime: false,\n nativeMethod: false,\n annotationText: (annoMatch.groups.rest ?? \"\").trim(),\n });\n continue;\n }\n }\n\n const userFrameCount = frames.filter((f) => f.kind === \"frame\" && !f.runtime).length;\n const topFunction = frames.find((f) => f.kind === \"frame\")?.functionName;\n const searchText = [\n header,\n ...frames.map((f) => `${f.functionName} ${f.location ?? \"\"} ${f.annotationText ?? \"\"}`),\n ]\n .join(\"\\n\")\n .toLowerCase();\n\n return {\n id: idMatch ? Number(idMatch[1]) : deriveSyntheticId(name, rest),\n name,\n state: state || \"unknown\",\n rawState: rawState || \"\",\n daemon,\n frames,\n raw: block,\n userFrameCount,\n searchText,\n ...(nidMatch?.[1] !== undefined ? { nid: nidMatch[1] } : {}),\n ...(prioMatch?.[1] !== undefined ? { priority: Number(prioMatch[1]) } : {}),\n ...(topFunction !== undefined ? { topFunction } : {}),\n };\n}\n\nfunction extractHeaderStateTrail(rest: string): string | undefined {\n const lower = rest.toLowerCase();\n const marker = \"nid=0x\";\n const markerStart = lower.indexOf(marker);\n if (markerStart === -1) return undefined;\n\n let stateStart = markerStart + marker.length;\n const hexStart = stateStart;\n while (isHexDigit(rest[stateStart])) stateStart++;\n if (stateStart === hexStart || !isWhitespace(rest[stateStart])) return undefined;\n while (isWhitespace(rest[stateStart])) stateStart++;\n\n let stateEnd = rest.length;\n while (stateEnd > stateStart && isWhitespace(rest[stateEnd - 1])) stateEnd--;\n if (rest[stateEnd - 1] === \"]\") {\n const addressStart = lower.lastIndexOf(\"[0x\", stateEnd - 1);\n if (\n addressStart > stateStart &&\n isHexSequence(rest, addressStart + 3, stateEnd - 1) &&\n isWhitespace(rest[addressStart - 1])\n ) {\n stateEnd = addressStart;\n while (stateEnd > stateStart && isWhitespace(rest[stateEnd - 1])) stateEnd--;\n }\n }\n\n const state = rest.slice(stateStart, stateEnd);\n return state || undefined;\n}\n\nfunction isHexDigit(value: string | undefined): boolean {\n if (value === undefined) return false;\n const code = value.toLowerCase().charCodeAt(0);\n return (code >= 48 && code <= 57) || (code >= 97 && code <= 102);\n}\n\nfunction isHexSequence(value: string, start: number, end: number): boolean {\n if (start >= end) return false;\n for (let index = start; index < end; index++) {\n if (!isHexDigit(value[index])) return false;\n }\n return true;\n}\n\nfunction isWhitespace(value: string | undefined): boolean {\n return value !== undefined && value.trim() === \"\";\n}\n\nfunction deriveSyntheticId(name: string, rest: string): number {\n const tid = /\\btid=(0x[0-9a-f]+)/i.exec(rest);\n if (tid?.[1]) {\n // stable non-negative int derived from tid hex suffix\n const hex = tid[1].slice(2);\n const n = Number.parseInt(hex.slice(-8), 16);\n if (Number.isFinite(n)) return n;\n }\n // Fallback: hash of name\n let h = 0;\n for (let i = 0; i < name.length; i++) h = (h * 31 + name.charCodeAt(i)) | 0;\n return Math.abs(h);\n}\n\nfunction mapAnnotationKind(kind: string): ParsedThreadFrame[\"kind\"] {\n switch (kind) {\n case \"locked\":\n return \"locked\";\n case \"waiting on\":\n return \"waiting_on\";\n case \"waiting to lock\":\n return \"waiting_to_lock\";\n case \"parking to wait for\":\n return \"parking\";\n default:\n return \"frame\";\n }\n}\n\nexport function countThreadsByState(threads: ParsedThread[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const t of threads) counts.set(t.state, (counts.get(t.state) ?? 0) + 1);\n return counts;\n}\n\nfunction normalizeJvmState(value: string): string {\n if (!value) return \"\";\n const upper = value.trim().toUpperCase();\n if (upper.startsWith(\"RUNNABLE\")) return \"runnable\";\n if (upper.startsWith(\"TIMED_WAITING\")) return \"timed_waiting\";\n if (upper.startsWith(\"WAITING\")) return \"waiting\";\n if (upper.startsWith(\"BLOCKED\")) return \"blocked\";\n if (upper.startsWith(\"NEW\")) return \"new\";\n if (upper.startsWith(\"TERMINATED\")) return \"terminated\";\n // Header fragments like \"waiting on condition\", \"runnable\", \"sleeping\"\n const lower = value.trim().toLowerCase();\n if (lower.includes(\"runnable\")) return \"runnable\";\n if (lower.includes(\"waiting on condition\") || lower.includes(\"sleeping\")) return \"timed_waiting\";\n if (lower.includes(\"waiting\")) return \"waiting\";\n if (lower.includes(\"blocked\")) return \"blocked\";\n return lower.split(/\\s+/)[0] ?? \"\";\n}\n\nconst runtimePrefixes = [\"java.\", \"javax.\", \"sun.\", \"jdk.\", \"com.sun.\", \"or\" + \"acle.jrockit.\"];\nfunction isJvmRuntimeFrame(functionName: string): boolean {\n return runtimePrefixes.some((p) => functionName.startsWith(p));\n}\n\n// splitClassMethod separates a JVM frame's `fully.qualified.Class.method` into\n// its class and method. The method is the last dot segment; everything before\n// is the (possibly inner) class. Returns no fields when the name has no dot, so\n// frames like a bare `<init>` are left without a class rather than guessed.\nfunction splitClassMethod(functionName: string): { class?: string; method?: string } {\n const lastDot = functionName.lastIndexOf(\".\");\n if (lastDot <= 0) return {};\n return {\n class: functionName.slice(0, lastDot),\n method: functionName.slice(lastDot + 1),\n };\n}\n\nfunction sanitizeJvmFunctionName(functionName: string): string {\n // e.g. \"com.example.App$Inner.method\" → \"App$Inner.method\"\n const parts = functionName.split(\".\");\n if (parts.length < 2) return functionName;\n const method = parts[parts.length - 1];\n const cls = parts[parts.length - 2];\n return `${cls}.${method}`;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jvm-stacktrace.js","sources":["../../../src/data/diagnostics/jvm-stacktrace.ts"],"sourcesContent":["import { isRuntimeFrame, shortFrameName } from \"./frame-heuristics\";\n\nexport interface ParsedThreadFrame {\n functionName: string;\n displayName: string;\n file?: string;\n line?: number;\n location?: string;\n kind: \"frame\" | \"locked\" | \"waiting_on\" | \"waiting_to_lock\" | \"parking\";\n runtime: boolean;\n nativeMethod: boolean;\n annotationText?: string;\n // Optional fully-qualified class name (e.g. \"com.example.admin.pas.Foo\").\n // Lets renderers filter or group by package without re-splitting\n // functionName. Populated by parseJavaStackTrace; left undefined by the\n // thread-dump parser since its frames are raw \"fn(src)\" pairs.\n class?: string;\n method?: string;\n // Optional source-context window populated by clicky.SourceResolver\n // (or its TS equivalent). sourceLines[line - sourceStartLine] is the focal\n // line. Empty/undefined when no resolver was attached.\n sourceLines?: string[];\n sourceLineNumbers?: number[];\n sourceStartLine?: number;\n sourceLanguage?: string;\n}\n\nexport interface ParsedThread {\n id: number;\n nid?: string;\n name: string;\n state: string;\n rawState: string;\n priority?: number;\n daemon?: boolean;\n frames: ParsedThreadFrame[];\n raw: string;\n userFrameCount: number;\n topFunction?: string;\n searchText: string;\n}\n\nconst headerRe = /^\"(?<name>[^\"]*)\"(?<rest>.*)$/;\nconst stateRe = /^\\s*java\\.lang\\.Thread\\.State:\\s+(?<state>[A-Z_]+)(?:\\s+\\((?<sub>[^)]+)\\))?/;\nconst frameRe = /^\\s*at\\s+(?<fn>[^\\s(]+)\\((?<src>[^)]+)\\)\\s*$/;\nconst srcLineRe = /^(?<file>[^:]+):(?<line>\\d+)$/;\nconst annotationRe =\n /^\\s*-\\s+(?<kind>locked|waiting on|waiting to lock|parking to wait for)\\b(?<rest>.*)$/;\n\nexport function parseJvmThreadDump(text: string): ParsedThread[] {\n const trimmed = text.trim();\n if (!trimmed) return [];\n\n // Split on blank lines OR on a new `\"...\"` header that follows immediately.\n const blocks = splitIntoThreadBlocks(trimmed);\n const threads: ParsedThread[] = [];\n\n for (const block of blocks) {\n const parsed = parseThreadBlock(block);\n if (parsed) threads.push(parsed);\n }\n return threads;\n}\n\nfunction splitIntoThreadBlocks(text: string): string[] {\n const out: string[] = [];\n let current: string[] = [];\n const lines = text.split(\"\\n\");\n for (const raw of lines) {\n const line = raw.replace(/\\r$/, \"\");\n if (line.startsWith('\"') && current.length > 0) {\n out.push(current.join(\"\\n\"));\n current = [line];\n } else {\n current.push(line);\n }\n }\n if (current.length > 0) out.push(current.join(\"\\n\"));\n return out;\n}\n\nfunction parseThreadBlock(block: string): ParsedThread | null {\n const lines = block.split(\"\\n\");\n const header = lines[0]?.trim() ?? \"\";\n const headerMatch = headerRe.exec(header);\n if (!headerMatch?.groups) return null;\n\n const name = headerMatch.groups.name;\n if (!name) return null;\n const rest = headerMatch.groups.rest ?? \"\";\n const idMatch = /#(\\d+)\\b/.exec(rest);\n const prioMatch = /\\bprio=(\\d+)/.exec(rest);\n const nidMatch = /\\bnid=(0x[0-9a-f]+)/i.exec(rest);\n const daemon = /\\bdaemon\\b/.test(rest);\n const headerStateTrail = extractHeaderStateTrail(rest);\n\n let rawState = headerStateTrail ?? \"\";\n let state = normalizeJvmState(rawState);\n const frames: ParsedThreadFrame[] = [];\n\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n if (line == null) continue;\n if (!line.trim()) continue;\n\n const stateMatch = stateRe.exec(line);\n if (stateMatch?.groups) {\n const primary = stateMatch.groups.state;\n if (!primary) continue;\n const sub = stateMatch.groups.sub;\n rawState = sub ? `${primary} (${sub})` : primary;\n state = normalizeJvmState(primary);\n continue;\n }\n\n const frameMatch = frameRe.exec(line);\n if (frameMatch?.groups) {\n const functionName = frameMatch.groups.fn;\n const src = frameMatch.groups.src;\n if (!functionName || !src) continue;\n const frame: ParsedThreadFrame = {\n functionName,\n displayName: sanitizeJvmFunctionName(functionName),\n kind: \"frame\",\n runtime: isJvmRuntimeFrame(functionName),\n nativeMethod: src === \"Native Method\",\n ...splitClassMethod(functionName),\n };\n const srcMatch = srcLineRe.exec(src);\n if (srcMatch?.groups?.file && srcMatch.groups.line) {\n frame.file = srcMatch.groups.file;\n frame.line = Number(srcMatch.groups.line);\n frame.location = `${frame.file}:${frame.line}`;\n } else if (src === \"Native Method\") {\n frame.location = \"Native Method\";\n } else {\n frame.location = src;\n }\n frames.push(frame);\n continue;\n }\n\n const annoMatch = annotationRe.exec(line);\n if (annoMatch?.groups?.kind) {\n const annotationKind = annoMatch.groups.kind;\n const kind = mapAnnotationKind(annotationKind);\n frames.push({\n functionName: annotationKind,\n displayName: annotationKind,\n kind,\n runtime: false,\n nativeMethod: false,\n annotationText: (annoMatch.groups.rest ?? \"\").trim(),\n });\n continue;\n }\n }\n\n const userFrameCount = frames.filter((f) => f.kind === \"frame\" && !f.runtime).length;\n const topFunction = frames.find((f) => f.kind === \"frame\")?.functionName;\n const searchText = [\n header,\n ...frames.map((f) => `${f.functionName} ${f.location ?? \"\"} ${f.annotationText ?? \"\"}`),\n ]\n .join(\"\\n\")\n .toLowerCase();\n\n return {\n id: idMatch ? Number(idMatch[1]) : deriveSyntheticId(name, rest),\n name,\n state: state || \"unknown\",\n rawState: rawState || \"\",\n daemon,\n frames,\n raw: block,\n userFrameCount,\n searchText,\n ...(nidMatch?.[1] !== undefined ? { nid: nidMatch[1] } : {}),\n ...(prioMatch?.[1] !== undefined ? { priority: Number(prioMatch[1]) } : {}),\n ...(topFunction !== undefined ? { topFunction } : {}),\n };\n}\n\nfunction extractHeaderStateTrail(rest: string): string | undefined {\n const lower = rest.toLowerCase();\n const marker = \"nid=0x\";\n const markerStart = lower.indexOf(marker);\n if (markerStart === -1) return undefined;\n\n let stateStart = markerStart + marker.length;\n const hexStart = stateStart;\n while (isHexDigit(rest[stateStart])) stateStart++;\n if (stateStart === hexStart || !isWhitespace(rest[stateStart])) return undefined;\n while (isWhitespace(rest[stateStart])) stateStart++;\n\n let stateEnd = rest.length;\n while (stateEnd > stateStart && isWhitespace(rest[stateEnd - 1])) stateEnd--;\n if (rest[stateEnd - 1] === \"]\") {\n const addressStart = lower.lastIndexOf(\"[0x\", stateEnd - 1);\n if (\n addressStart > stateStart &&\n isHexSequence(rest, addressStart + 3, stateEnd - 1) &&\n isWhitespace(rest[addressStart - 1])\n ) {\n stateEnd = addressStart;\n while (stateEnd > stateStart && isWhitespace(rest[stateEnd - 1])) stateEnd--;\n }\n }\n\n const state = rest.slice(stateStart, stateEnd);\n return state || undefined;\n}\n\nfunction isHexDigit(value: string | undefined): boolean {\n if (value === undefined) return false;\n const code = value.toLowerCase().charCodeAt(0);\n return (code >= 48 && code <= 57) || (code >= 97 && code <= 102);\n}\n\nfunction isHexSequence(value: string, start: number, end: number): boolean {\n if (start >= end) return false;\n for (let index = start; index < end; index++) {\n if (!isHexDigit(value[index])) return false;\n }\n return true;\n}\n\nfunction isWhitespace(value: string | undefined): boolean {\n return value !== undefined && value.trim() === \"\";\n}\n\nfunction deriveSyntheticId(name: string, rest: string): number {\n const tid = /\\btid=(0x[0-9a-f]+)/i.exec(rest);\n if (tid?.[1]) {\n // stable non-negative int derived from tid hex suffix\n const hex = tid[1].slice(2);\n const n = Number.parseInt(hex.slice(-8), 16);\n if (Number.isFinite(n)) return n;\n }\n // Fallback: hash of name\n let h = 0;\n for (let i = 0; i < name.length; i++) h = (h * 31 + name.charCodeAt(i)) | 0;\n return Math.abs(h);\n}\n\nfunction mapAnnotationKind(kind: string): ParsedThreadFrame[\"kind\"] {\n switch (kind) {\n case \"locked\":\n return \"locked\";\n case \"waiting on\":\n return \"waiting_on\";\n case \"waiting to lock\":\n return \"waiting_to_lock\";\n case \"parking to wait for\":\n return \"parking\";\n default:\n return \"frame\";\n }\n}\n\nexport function countThreadsByState(threads: ParsedThread[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const t of threads) counts.set(t.state, (counts.get(t.state) ?? 0) + 1);\n return counts;\n}\n\nfunction normalizeJvmState(value: string): string {\n if (!value) return \"\";\n const upper = value.trim().toUpperCase();\n if (upper.startsWith(\"RUNNABLE\")) return \"runnable\";\n if (upper.startsWith(\"TIMED_WAITING\")) return \"timed_waiting\";\n if (upper.startsWith(\"WAITING\")) return \"waiting\";\n if (upper.startsWith(\"BLOCKED\")) return \"blocked\";\n if (upper.startsWith(\"NEW\")) return \"new\";\n if (upper.startsWith(\"TERMINATED\")) return \"terminated\";\n // Header fragments like \"waiting on condition\", \"runnable\", \"sleeping\"\n const lower = value.trim().toLowerCase();\n if (lower.includes(\"runnable\")) return \"runnable\";\n if (lower.includes(\"waiting on condition\") || lower.includes(\"sleeping\")) return \"timed_waiting\";\n if (lower.includes(\"waiting\")) return \"waiting\";\n if (lower.includes(\"blocked\")) return \"blocked\";\n return lower.split(/\\s+/)[0] ?? \"\";\n}\n\nfunction isJvmRuntimeFrame(functionName: string): boolean {\n return isRuntimeFrame(functionName);\n}\n\n// splitClassMethod separates a JVM frame's `fully.qualified.Class.method` into\n// its class and method. The method is the last dot segment; everything before\n// is the (possibly inner) class. Returns no fields when the name has no dot, so\n// frames like a bare `<init>` are left without a class rather than guessed.\nfunction splitClassMethod(functionName: string): { class?: string; method?: string } {\n const lastDot = functionName.lastIndexOf(\".\");\n if (lastDot <= 0) return {};\n return {\n class: functionName.slice(0, lastDot),\n method: functionName.slice(lastDot + 1),\n };\n}\n\nfunction sanitizeJvmFunctionName(functionName: string): string {\n // e.g. \"com.example.App$Inner.method\" → \"App$Inner.method\"\n const lastDot = functionName.lastIndexOf(\".\");\n if (lastDot <= 0) return functionName;\n return shortFrameName(functionName.slice(0, lastDot), functionName.slice(lastDot + 1));\n}\n"],"names":[],"mappings":"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"}