@flanksource/clicky-ui 0.3.22 → 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 (184) hide show
  1. package/dist/components/CountryFlag.cjs +55 -0
  2. package/dist/components/CountryFlag.cjs.map +1 -0
  3. package/dist/components/CountryFlag.d.ts +8 -0
  4. package/dist/components/CountryFlag.d.ts.map +1 -0
  5. package/dist/components/CountryFlag.js +38 -0
  6. package/dist/components/CountryFlag.js.map +1 -0
  7. package/dist/components/CountryPicker.cjs +35 -0
  8. package/dist/components/CountryPicker.cjs.map +1 -0
  9. package/dist/components/CountryPicker.d.ts +4 -0
  10. package/dist/components/CountryPicker.d.ts.map +1 -0
  11. package/dist/components/CountryPicker.js +35 -0
  12. package/dist/components/CountryPicker.js.map +1 -0
  13. package/dist/components/SplitButton.cjs +3 -2
  14. package/dist/components/SplitButton.cjs.map +1 -1
  15. package/dist/components/SplitButton.d.ts +6 -1
  16. package/dist/components/SplitButton.d.ts.map +1 -1
  17. package/dist/components/SplitButton.js +3 -2
  18. package/dist/components/SplitButton.js.map +1 -1
  19. package/dist/components/country-options.cjs +34 -0
  20. package/dist/components/country-options.cjs.map +1 -0
  21. package/dist/components/country-options.d.ts +8 -0
  22. package/dist/components/country-options.d.ts.map +1 -0
  23. package/dist/components/country-options.js +34 -0
  24. package/dist/components/country-options.js.map +1 -0
  25. package/dist/components.cjs +11 -0
  26. package/dist/components.cjs.map +1 -1
  27. package/dist/components.d.ts +4 -0
  28. package/dist/components.d.ts.map +1 -1
  29. package/dist/components.js +11 -0
  30. package/dist/components.js.map +1 -1
  31. package/dist/data/Clicky.cjs +4 -1
  32. package/dist/data/Clicky.cjs.map +1 -1
  33. package/dist/data/Clicky.d.ts.map +1 -1
  34. package/dist/data/Clicky.js +4 -1
  35. package/dist/data/Clicky.js.map +1 -1
  36. package/dist/data/CodeDiff.cjs +3 -18
  37. package/dist/data/CodeDiff.cjs.map +1 -1
  38. package/dist/data/CodeDiff.d.ts.map +1 -1
  39. package/dist/data/CodeDiff.js +3 -18
  40. package/dist/data/CodeDiff.js.map +1 -1
  41. package/dist/data/DataTable.cjs +182 -64
  42. package/dist/data/DataTable.cjs.map +1 -1
  43. package/dist/data/DataTable.d.ts +9 -1
  44. package/dist/data/DataTable.d.ts.map +1 -1
  45. package/dist/data/DataTable.grouping.cjs +26 -0
  46. package/dist/data/DataTable.grouping.cjs.map +1 -1
  47. package/dist/data/DataTable.grouping.d.ts +38 -0
  48. package/dist/data/DataTable.grouping.d.ts.map +1 -1
  49. package/dist/data/DataTable.grouping.js +26 -0
  50. package/dist/data/DataTable.grouping.js.map +1 -1
  51. package/dist/data/DataTable.js +183 -65
  52. package/dist/data/DataTable.js.map +1 -1
  53. package/dist/data/DataTableGroupingControls.cjs +84 -0
  54. package/dist/data/DataTableGroupingControls.cjs.map +1 -0
  55. package/dist/data/DataTableGroupingControls.d.ts +17 -0
  56. package/dist/data/DataTableGroupingControls.d.ts.map +1 -0
  57. package/dist/data/DataTableGroupingControls.js +84 -0
  58. package/dist/data/DataTableGroupingControls.js.map +1 -0
  59. package/dist/data/HighlightedTokens.cjs +21 -0
  60. package/dist/data/HighlightedTokens.cjs.map +1 -0
  61. package/dist/data/HighlightedTokens.d.ts +6 -0
  62. package/dist/data/HighlightedTokens.d.ts.map +1 -0
  63. package/dist/data/HighlightedTokens.js +21 -0
  64. package/dist/data/HighlightedTokens.js.map +1 -0
  65. package/dist/data/code-highlight.cjs +0 -6
  66. package/dist/data/code-highlight.cjs.map +1 -1
  67. package/dist/data/code-highlight.d.ts +4 -3
  68. package/dist/data/code-highlight.d.ts.map +1 -1
  69. package/dist/data/code-highlight.js +1 -7
  70. package/dist/data/code-highlight.js.map +1 -1
  71. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +6 -2
  72. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs.map +1 -1
  73. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +8 -1
  74. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  75. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +6 -2
  76. package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -1
  77. package/dist/data/diagnostics/ErrorDetails.cjs +29 -5
  78. package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
  79. package/dist/data/diagnostics/ErrorDetails.d.ts +3 -1
  80. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  81. package/dist/data/diagnostics/ErrorDetails.js +29 -5
  82. package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
  83. package/dist/data/diagnostics/FrameSourceWindow.cjs +54 -24
  84. package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
  85. package/dist/data/diagnostics/FrameSourceWindow.d.ts +2 -1
  86. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  87. package/dist/data/diagnostics/FrameSourceWindow.js +54 -24
  88. package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
  89. package/dist/data/diagnostics/FrameSourceWindow.utils.cjs.map +1 -1
  90. package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts +3 -0
  91. package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts.map +1 -1
  92. package/dist/data/diagnostics/FrameSourceWindow.utils.js.map +1 -1
  93. package/dist/data/diagnostics/JvmStackTrace.cjs +14 -30
  94. package/dist/data/diagnostics/JvmStackTrace.cjs.map +1 -1
  95. package/dist/data/diagnostics/JvmStackTrace.d.ts +6 -9
  96. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
  97. package/dist/data/diagnostics/JvmStackTrace.js +15 -31
  98. package/dist/data/diagnostics/JvmStackTrace.js.map +1 -1
  99. package/dist/data/diagnostics/RenderedStackTrace.cjs +14 -144
  100. package/dist/data/diagnostics/RenderedStackTrace.cjs.map +1 -1
  101. package/dist/data/diagnostics/RenderedStackTrace.d.ts +6 -6
  102. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
  103. package/dist/data/diagnostics/RenderedStackTrace.js +15 -145
  104. package/dist/data/diagnostics/RenderedStackTrace.js.map +1 -1
  105. package/dist/data/diagnostics/StackFrameRow.cjs +65 -0
  106. package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -0
  107. package/dist/data/diagnostics/StackFrameRow.d.ts +13 -0
  108. package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -0
  109. package/dist/data/diagnostics/StackFrameRow.js +65 -0
  110. package/dist/data/diagnostics/StackFrameRow.js.map +1 -0
  111. package/dist/data/diagnostics/ThreadCard.cjs +9 -2
  112. package/dist/data/diagnostics/ThreadCard.cjs.map +1 -1
  113. package/dist/data/diagnostics/ThreadCard.d.ts +3 -1
  114. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  115. package/dist/data/diagnostics/ThreadCard.js +9 -2
  116. package/dist/data/diagnostics/ThreadCard.js.map +1 -1
  117. package/dist/data/diagnostics/frame-heuristics.cjs +26 -0
  118. package/dist/data/diagnostics/frame-heuristics.cjs.map +1 -0
  119. package/dist/data/diagnostics/frame-heuristics.d.ts +5 -0
  120. package/dist/data/diagnostics/frame-heuristics.d.ts.map +1 -0
  121. package/dist/data/diagnostics/frame-heuristics.js +26 -0
  122. package/dist/data/diagnostics/frame-heuristics.js.map +1 -0
  123. package/dist/data/diagnostics/jvm-stacktrace.cjs +5 -7
  124. package/dist/data/diagnostics/jvm-stacktrace.cjs.map +1 -1
  125. package/dist/data/diagnostics/jvm-stacktrace.d.ts.map +1 -1
  126. package/dist/data/diagnostics/jvm-stacktrace.js +5 -7
  127. package/dist/data/diagnostics/jvm-stacktrace.js.map +1 -1
  128. package/dist/data/diagnostics/stacktrace-parse.cjs +4 -9
  129. package/dist/data/diagnostics/stacktrace-parse.cjs.map +1 -1
  130. package/dist/data/diagnostics/stacktrace-parse.d.ts.map +1 -1
  131. package/dist/data/diagnostics/stacktrace-parse.js +4 -9
  132. package/dist/data/diagnostics/stacktrace-parse.js.map +1 -1
  133. package/dist/data/version-info.cjs +3 -3
  134. package/dist/data/version-info.js +3 -3
  135. package/dist/data.cjs +7 -1
  136. package/dist/data.cjs.map +1 -1
  137. package/dist/data.d.ts +4 -2
  138. package/dist/data.d.ts.map +1 -1
  139. package/dist/data.js +8 -2
  140. package/dist/data.js.map +1 -1
  141. package/dist/index.cjs +18 -1
  142. package/dist/index.cjs.map +1 -1
  143. package/dist/index.js +19 -2
  144. package/dist/index.js.map +1 -1
  145. package/dist/rpc/CommandForm.cjs +8 -18
  146. package/dist/rpc/CommandForm.cjs.map +1 -1
  147. package/dist/rpc/CommandForm.d.ts +8 -2
  148. package/dist/rpc/CommandForm.d.ts.map +1 -1
  149. package/dist/rpc/CommandForm.js +9 -19
  150. package/dist/rpc/CommandForm.js.map +1 -1
  151. package/dist/rpc/OperationActionDialog.cjs +3 -3
  152. package/dist/rpc/OperationActionDialog.cjs.map +1 -1
  153. package/dist/rpc/OperationActionDialog.js +3 -3
  154. package/dist/rpc/OperationActionDialog.js.map +1 -1
  155. package/dist/rpc/OperationCommandPage.cjs +7 -7
  156. package/dist/rpc/OperationCommandPage.cjs.map +1 -1
  157. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  158. package/dist/rpc/OperationCommandPage.js +7 -7
  159. package/dist/rpc/OperationCommandPage.js.map +1 -1
  160. package/dist/rpc/apiClient.cjs +17 -3
  161. package/dist/rpc/apiClient.cjs.map +1 -1
  162. package/dist/rpc/apiClient.d.ts +4 -4
  163. package/dist/rpc/apiClient.d.ts.map +1 -1
  164. package/dist/rpc/apiClient.js +17 -3
  165. package/dist/rpc/apiClient.js.map +1 -1
  166. package/dist/rpc/formMetadata.cjs +5 -9
  167. package/dist/rpc/formMetadata.cjs.map +1 -1
  168. package/dist/rpc/formMetadata.d.ts +3 -3
  169. package/dist/rpc/formMetadata.d.ts.map +1 -1
  170. package/dist/rpc/formMetadata.js +5 -9
  171. package/dist/rpc/formMetadata.js.map +1 -1
  172. package/dist/rpc/rpc-story.fixtures.d.ts.map +1 -1
  173. package/dist/rpc/types.cjs.map +1 -1
  174. package/dist/rpc/types.d.ts +1 -0
  175. package/dist/rpc/types.d.ts.map +1 -1
  176. package/dist/rpc/types.js.map +1 -1
  177. package/dist/rpc/useOperations.cjs.map +1 -1
  178. package/dist/rpc/useOperations.d.ts +4 -4
  179. package/dist/rpc/useOperations.d.ts.map +1 -1
  180. package/dist/rpc/useOperations.js.map +1 -1
  181. package/dist/rpc.d.ts +2 -2
  182. package/dist/rpc.d.ts.map +1 -1
  183. package/dist/styles.css +1 -1
  184. package/package.json +2 -1
@@ -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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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const frameHeuristics = require("./frame-heuristics.cjs");
3
4
  const frameRe = /^\s*at\s+([\w$.]+)\.([\w$<>]+)\(([^)]+)\)/;
4
5
  const continuationRe = /^\.\.\.\s+\d+\s+more$/;
5
- const runtimePrefixes = ["java.", "javax.", "sun.", "jdk.", "com.sun.", "oracle.jrockit."];
6
6
  function parseJavaStackTrace(input) {
7
7
  const out = {
8
8
  causedBy: [],
@@ -77,12 +77,12 @@ function buildFrame(cls, method, locRaw) {
77
77
  }
78
78
  }
79
79
  const functionName = `${cls}.${method}`;
80
- const location = file ? line ? `${file}:${line}` : file : nativeMethod ? "Native Method" : void 0;
80
+ const location = frameHeuristics.frameLocation(file, line) ?? (nativeMethod ? "Native Method" : void 0);
81
81
  const frame = {
82
82
  functionName,
83
- displayName: shortDisplay(cls, method),
83
+ displayName: frameHeuristics.shortFrameName(cls, method),
84
84
  kind: "frame",
85
- runtime: runtimePrefixes.some((p) => cls.startsWith(p)),
85
+ runtime: frameHeuristics.isRuntimeFrame(cls),
86
86
  nativeMethod,
87
87
  class: cls,
88
88
  method
@@ -92,10 +92,5 @@ function buildFrame(cls, method, locRaw) {
92
92
  if (location !== void 0) frame.location = location;
93
93
  return frame;
94
94
  }
95
- function shortDisplay(cls, method) {
96
- const parts = cls.split(".");
97
- const last = parts[parts.length - 1] ?? cls;
98
- return `${last}.${method}`;
99
- }
100
95
  exports.parseJavaStackTrace = parseJavaStackTrace;
101
96
  //# sourceMappingURL=stacktrace-parse.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"stacktrace-parse.cjs","sources":["../../../src/data/diagnostics/stacktrace-parse.ts"],"sourcesContent":["import type { ParsedThreadFrame } from \"./jvm-stacktrace\";\n\n// ParsedStackFrame is the React mirror of Go's clicky api.StackFrame. We reuse\n// ParsedThreadFrame so the existing JvmStackFrameRow renderer can display it.\nexport type ParsedStackFrame = ParsedThreadFrame;\n\nexport interface ParsedStackTrace {\n exceptionClass?: string;\n message?: string;\n causedBy: string[];\n frames: ParsedStackFrame[];\n language: \"java\";\n}\n\nconst frameRe = /^\\s*at\\s+([\\w$.]+)\\.([\\w$<>]+)\\(([^)]+)\\)/;\nconst continuationRe = /^\\.\\.\\.\\s+\\d+\\s+more$/;\n\nconst runtimePrefixes = [\"java.\", \"javax.\", \"sun.\", \"jdk.\", \"com.sun.\", \"or\" + \"acle.jrockit.\"];\n\n// parseJavaStackTrace decodes a free-form Java exception dump (the body that\n// printStackTrace() emits, optionally wrapped by EclipseLink \"Internal\n// Exception:\" / \"Caused by:\" markers) into a renderable shape. It is the\n// React-side counterpart to Go's api.ParseJavaStackTrace.\nexport function parseJavaStackTrace(input: string): ParsedStackTrace {\n const out: ParsedStackTrace = {\n causedBy: [],\n frames: [],\n language: \"java\",\n };\n if (!input || !input.trim()) return out;\n\n const headerLines: string[] = [];\n for (const raw of input.split(\"\\n\")) {\n const trimmed = raw.trim();\n if (!trimmed) continue;\n if (continuationRe.test(trimmed)) continue;\n\n const frameMatch = frameRe.exec(raw);\n if (frameMatch && frameMatch[1] && frameMatch[2] && frameMatch[3] !== undefined) {\n out.frames.push(buildFrame(frameMatch[1], frameMatch[2], frameMatch[3]));\n continue;\n }\n\n if (trimmed.startsWith(\"Caused by:\")) {\n out.causedBy.push(trimmed.slice(\"Caused by:\".length).trim());\n continue;\n }\n if (trimmed.startsWith(\"Internal Exception:\")) {\n out.causedBy.push(trimmed.slice(\"Internal Exception:\".length).trim());\n continue;\n }\n\n if (!out.exceptionClass) {\n const header = parseExceptionHeader(trimmed);\n if (header) {\n out.exceptionClass = header.exceptionClass;\n if (header.message) out.message = header.message;\n continue;\n }\n }\n\n headerLines.push(trimmed);\n }\n\n if (!out.message && headerLines.length > 0) {\n out.message = headerLines.join(\" \");\n }\n\n return out;\n}\n\nfunction parseExceptionHeader(\n value: string,\n): { exceptionClass: string; message?: string } | null {\n const separator = value.indexOf(\":\");\n const exceptionClass = separator === -1 ? value : value.slice(0, separator);\n if (\n !exceptionClass ||\n ![\"Exception\", \"Error\", \"Throwable\"].some((suffix) => exceptionClass.endsWith(suffix))\n ) {\n return null;\n }\n for (const character of exceptionClass) {\n const code = character.charCodeAt(0);\n const valid =\n (code >= 48 && code <= 57) ||\n (code >= 65 && code <= 90) ||\n (code >= 97 && code <= 122) ||\n character === \"_\" ||\n character === \".\" ||\n character === \"$\";\n if (!valid) return null;\n }\n\n if (separator === -1) return { exceptionClass };\n const message = value.slice(separator + 1).trimStart();\n return message ? { exceptionClass, message } : { exceptionClass };\n}\n\nfunction buildFrame(cls: string, method: string, locRaw: string): ParsedStackFrame {\n const loc = locRaw.trim();\n let file: string | undefined;\n let line: number | undefined;\n let nativeMethod = false;\n if (loc === \"Native Method\") {\n nativeMethod = true;\n } else if (loc !== \"Unknown Source\") {\n const cleaned = (loc.split(\" ~[\")[0] ?? loc).trim();\n const i = cleaned.lastIndexOf(\":\");\n if (i >= 0) {\n file = cleaned.slice(0, i);\n const n = Number(cleaned.slice(i + 1));\n if (Number.isFinite(n)) line = n;\n } else {\n file = cleaned;\n }\n }\n const functionName = `${cls}.${method}`;\n const location = file\n ? line\n ? `${file}:${line}`\n : file\n : nativeMethod\n ? \"Native Method\"\n : undefined;\n const frame: ParsedStackFrame = {\n functionName,\n displayName: shortDisplay(cls, method),\n kind: \"frame\",\n runtime: runtimePrefixes.some((p) => cls.startsWith(p)),\n nativeMethod,\n class: cls,\n method,\n };\n if (file !== undefined) frame.file = file;\n if (line !== undefined) frame.line = line;\n if (location !== undefined) frame.location = location;\n return frame;\n}\n\nfunction shortDisplay(cls: string, method: string): string {\n const parts = cls.split(\".\");\n const last = parts[parts.length - 1] ?? cls;\n return `${last}.${method}`;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stacktrace-parse.cjs","sources":["../../../src/data/diagnostics/stacktrace-parse.ts"],"sourcesContent":["import type { ParsedThreadFrame } from \"./jvm-stacktrace\";\nimport { frameLocation, isRuntimeFrame, shortFrameName } from \"./frame-heuristics\";\n\n// ParsedStackFrame is the React mirror of Go's clicky api.StackFrame. We reuse\n// ParsedThreadFrame so the shared StackFrameRow renderer can display it.\nexport type ParsedStackFrame = ParsedThreadFrame;\n\nexport interface ParsedStackTrace {\n exceptionClass?: string;\n message?: string;\n causedBy: string[];\n frames: ParsedStackFrame[];\n language: \"java\";\n}\n\nconst frameRe = /^\\s*at\\s+([\\w$.]+)\\.([\\w$<>]+)\\(([^)]+)\\)/;\nconst continuationRe = /^\\.\\.\\.\\s+\\d+\\s+more$/;\n\n\n// parseJavaStackTrace decodes a free-form Java exception dump (the body that\n// printStackTrace() emits, optionally wrapped by EclipseLink \"Internal\n// Exception:\" / \"Caused by:\" markers) into a renderable shape. It is the\n// React-side counterpart to Go's api.ParseJavaStackTrace.\nexport function parseJavaStackTrace(input: string): ParsedStackTrace {\n const out: ParsedStackTrace = {\n causedBy: [],\n frames: [],\n language: \"java\",\n };\n if (!input || !input.trim()) return out;\n\n const headerLines: string[] = [];\n for (const raw of input.split(\"\\n\")) {\n const trimmed = raw.trim();\n if (!trimmed) continue;\n if (continuationRe.test(trimmed)) continue;\n\n const frameMatch = frameRe.exec(raw);\n if (frameMatch && frameMatch[1] && frameMatch[2] && frameMatch[3] !== undefined) {\n out.frames.push(buildFrame(frameMatch[1], frameMatch[2], frameMatch[3]));\n continue;\n }\n\n if (trimmed.startsWith(\"Caused by:\")) {\n out.causedBy.push(trimmed.slice(\"Caused by:\".length).trim());\n continue;\n }\n if (trimmed.startsWith(\"Internal Exception:\")) {\n out.causedBy.push(trimmed.slice(\"Internal Exception:\".length).trim());\n continue;\n }\n\n if (!out.exceptionClass) {\n const header = parseExceptionHeader(trimmed);\n if (header) {\n out.exceptionClass = header.exceptionClass;\n if (header.message) out.message = header.message;\n continue;\n }\n }\n\n headerLines.push(trimmed);\n }\n\n if (!out.message && headerLines.length > 0) {\n out.message = headerLines.join(\" \");\n }\n\n return out;\n}\n\nfunction parseExceptionHeader(\n value: string,\n): { exceptionClass: string; message?: string } | null {\n const separator = value.indexOf(\":\");\n const exceptionClass = separator === -1 ? value : value.slice(0, separator);\n if (\n !exceptionClass ||\n ![\"Exception\", \"Error\", \"Throwable\"].some((suffix) => exceptionClass.endsWith(suffix))\n ) {\n return null;\n }\n for (const character of exceptionClass) {\n const code = character.charCodeAt(0);\n const valid =\n (code >= 48 && code <= 57) ||\n (code >= 65 && code <= 90) ||\n (code >= 97 && code <= 122) ||\n character === \"_\" ||\n character === \".\" ||\n character === \"$\";\n if (!valid) return null;\n }\n\n if (separator === -1) return { exceptionClass };\n const message = value.slice(separator + 1).trimStart();\n return message ? { exceptionClass, message } : { exceptionClass };\n}\n\nfunction buildFrame(cls: string, method: string, locRaw: string): ParsedStackFrame {\n const loc = locRaw.trim();\n let file: string | undefined;\n let line: number | undefined;\n let nativeMethod = false;\n if (loc === \"Native Method\") {\n nativeMethod = true;\n } else if (loc !== \"Unknown Source\") {\n const cleaned = (loc.split(\" ~[\")[0] ?? loc).trim();\n const i = cleaned.lastIndexOf(\":\");\n if (i >= 0) {\n file = cleaned.slice(0, i);\n const n = Number(cleaned.slice(i + 1));\n if (Number.isFinite(n)) line = n;\n } else {\n file = cleaned;\n }\n }\n const functionName = `${cls}.${method}`;\n const location = frameLocation(file, line) ?? (nativeMethod ? \"Native Method\" : undefined);\n const frame: ParsedStackFrame = {\n functionName,\n displayName: shortFrameName(cls, method),\n kind: \"frame\",\n runtime: isRuntimeFrame(cls),\n nativeMethod,\n class: cls,\n method,\n };\n if (file !== undefined) frame.file = file;\n if (line !== undefined) frame.line = line;\n if (location !== undefined) frame.location = location;\n return frame;\n}\n"],"names":["frameLocation","shortFrameName","isRuntimeFrame"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stacktrace-parse.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/stacktrace-parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAWD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CA8CnE"}
1
+ {"version":3,"file":"stacktrace-parse.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/stacktrace-parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CA8CnE"}
@@ -1,6 +1,6 @@
1
+ import { isRuntimeFrame, shortFrameName, frameLocation } from "./frame-heuristics.js";
1
2
  const frameRe = /^\s*at\s+([\w$.]+)\.([\w$<>]+)\(([^)]+)\)/;
2
3
  const continuationRe = /^\.\.\.\s+\d+\s+more$/;
3
- const runtimePrefixes = ["java.", "javax.", "sun.", "jdk.", "com.sun.", "oracle.jrockit."];
4
4
  function parseJavaStackTrace(input) {
5
5
  const out = {
6
6
  causedBy: [],
@@ -75,12 +75,12 @@ function buildFrame(cls, method, locRaw) {
75
75
  }
76
76
  }
77
77
  const functionName = `${cls}.${method}`;
78
- const location = file ? line ? `${file}:${line}` : file : nativeMethod ? "Native Method" : void 0;
78
+ const location = frameLocation(file, line) ?? (nativeMethod ? "Native Method" : void 0);
79
79
  const frame = {
80
80
  functionName,
81
- displayName: shortDisplay(cls, method),
81
+ displayName: shortFrameName(cls, method),
82
82
  kind: "frame",
83
- runtime: runtimePrefixes.some((p) => cls.startsWith(p)),
83
+ runtime: isRuntimeFrame(cls),
84
84
  nativeMethod,
85
85
  class: cls,
86
86
  method
@@ -90,11 +90,6 @@ function buildFrame(cls, method, locRaw) {
90
90
  if (location !== void 0) frame.location = location;
91
91
  return frame;
92
92
  }
93
- function shortDisplay(cls, method) {
94
- const parts = cls.split(".");
95
- const last = parts[parts.length - 1] ?? cls;
96
- return `${last}.${method}`;
97
- }
98
93
  export {
99
94
  parseJavaStackTrace
100
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"stacktrace-parse.js","sources":["../../../src/data/diagnostics/stacktrace-parse.ts"],"sourcesContent":["import type { ParsedThreadFrame } from \"./jvm-stacktrace\";\n\n// ParsedStackFrame is the React mirror of Go's clicky api.StackFrame. We reuse\n// ParsedThreadFrame so the existing JvmStackFrameRow renderer can display it.\nexport type ParsedStackFrame = ParsedThreadFrame;\n\nexport interface ParsedStackTrace {\n exceptionClass?: string;\n message?: string;\n causedBy: string[];\n frames: ParsedStackFrame[];\n language: \"java\";\n}\n\nconst frameRe = /^\\s*at\\s+([\\w$.]+)\\.([\\w$<>]+)\\(([^)]+)\\)/;\nconst continuationRe = /^\\.\\.\\.\\s+\\d+\\s+more$/;\n\nconst runtimePrefixes = [\"java.\", \"javax.\", \"sun.\", \"jdk.\", \"com.sun.\", \"or\" + \"acle.jrockit.\"];\n\n// parseJavaStackTrace decodes a free-form Java exception dump (the body that\n// printStackTrace() emits, optionally wrapped by EclipseLink \"Internal\n// Exception:\" / \"Caused by:\" markers) into a renderable shape. It is the\n// React-side counterpart to Go's api.ParseJavaStackTrace.\nexport function parseJavaStackTrace(input: string): ParsedStackTrace {\n const out: ParsedStackTrace = {\n causedBy: [],\n frames: [],\n language: \"java\",\n };\n if (!input || !input.trim()) return out;\n\n const headerLines: string[] = [];\n for (const raw of input.split(\"\\n\")) {\n const trimmed = raw.trim();\n if (!trimmed) continue;\n if (continuationRe.test(trimmed)) continue;\n\n const frameMatch = frameRe.exec(raw);\n if (frameMatch && frameMatch[1] && frameMatch[2] && frameMatch[3] !== undefined) {\n out.frames.push(buildFrame(frameMatch[1], frameMatch[2], frameMatch[3]));\n continue;\n }\n\n if (trimmed.startsWith(\"Caused by:\")) {\n out.causedBy.push(trimmed.slice(\"Caused by:\".length).trim());\n continue;\n }\n if (trimmed.startsWith(\"Internal Exception:\")) {\n out.causedBy.push(trimmed.slice(\"Internal Exception:\".length).trim());\n continue;\n }\n\n if (!out.exceptionClass) {\n const header = parseExceptionHeader(trimmed);\n if (header) {\n out.exceptionClass = header.exceptionClass;\n if (header.message) out.message = header.message;\n continue;\n }\n }\n\n headerLines.push(trimmed);\n }\n\n if (!out.message && headerLines.length > 0) {\n out.message = headerLines.join(\" \");\n }\n\n return out;\n}\n\nfunction parseExceptionHeader(\n value: string,\n): { exceptionClass: string; message?: string } | null {\n const separator = value.indexOf(\":\");\n const exceptionClass = separator === -1 ? value : value.slice(0, separator);\n if (\n !exceptionClass ||\n ![\"Exception\", \"Error\", \"Throwable\"].some((suffix) => exceptionClass.endsWith(suffix))\n ) {\n return null;\n }\n for (const character of exceptionClass) {\n const code = character.charCodeAt(0);\n const valid =\n (code >= 48 && code <= 57) ||\n (code >= 65 && code <= 90) ||\n (code >= 97 && code <= 122) ||\n character === \"_\" ||\n character === \".\" ||\n character === \"$\";\n if (!valid) return null;\n }\n\n if (separator === -1) return { exceptionClass };\n const message = value.slice(separator + 1).trimStart();\n return message ? { exceptionClass, message } : { exceptionClass };\n}\n\nfunction buildFrame(cls: string, method: string, locRaw: string): ParsedStackFrame {\n const loc = locRaw.trim();\n let file: string | undefined;\n let line: number | undefined;\n let nativeMethod = false;\n if (loc === \"Native Method\") {\n nativeMethod = true;\n } else if (loc !== \"Unknown Source\") {\n const cleaned = (loc.split(\" ~[\")[0] ?? loc).trim();\n const i = cleaned.lastIndexOf(\":\");\n if (i >= 0) {\n file = cleaned.slice(0, i);\n const n = Number(cleaned.slice(i + 1));\n if (Number.isFinite(n)) line = n;\n } else {\n file = cleaned;\n }\n }\n const functionName = `${cls}.${method}`;\n const location = file\n ? line\n ? `${file}:${line}`\n : file\n : nativeMethod\n ? \"Native Method\"\n : undefined;\n const frame: ParsedStackFrame = {\n functionName,\n displayName: shortDisplay(cls, method),\n kind: \"frame\",\n runtime: runtimePrefixes.some((p) => cls.startsWith(p)),\n nativeMethod,\n class: cls,\n method,\n };\n if (file !== undefined) frame.file = file;\n if (line !== undefined) frame.line = line;\n if (location !== undefined) frame.location = location;\n return frame;\n}\n\nfunction shortDisplay(cls: string, method: string): string {\n const parts = cls.split(\".\");\n const last = parts[parts.length - 1] ?? cls;\n return `${last}.${method}`;\n}\n"],"names":[],"mappings":"AAcA,MAAM,UAAU;AAChB,MAAM,iBAAiB;AAEvB,MAAM,kBAAkB,CAAC,SAAS,UAAU,QAAQ,QAAQ,YAAY,iBAAsB;AAMvF,SAAS,oBAAoB,OAAiC;AACnE,QAAM,MAAwB;AAAA,IAC5B,UAAU,CAAA;AAAA,IACV,QAAQ,CAAA;AAAA,IACR,UAAU;AAAA,EAAA;AAEZ,MAAI,CAAC,SAAS,CAAC,MAAM,KAAA,EAAQ,QAAO;AAEpC,QAAM,cAAwB,CAAA;AAC9B,aAAW,OAAO,MAAM,MAAM,IAAI,GAAG;AACnC,UAAM,UAAU,IAAI,KAAA;AACpB,QAAI,CAAC,QAAS;AACd,QAAI,eAAe,KAAK,OAAO,EAAG;AAElC,UAAM,aAAa,QAAQ,KAAK,GAAG;AACnC,QAAI,cAAc,WAAW,CAAC,KAAK,WAAW,CAAC,KAAK,WAAW,CAAC,MAAM,QAAW;AAC/E,UAAI,OAAO,KAAK,WAAW,WAAW,CAAC,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AACvE;AAAA,IACF;AAEA,QAAI,QAAQ,WAAW,YAAY,GAAG;AACpC,UAAI,SAAS,KAAK,QAAQ,MAAM,aAAa,MAAM,EAAE,MAAM;AAC3D;AAAA,IACF;AACA,QAAI,QAAQ,WAAW,qBAAqB,GAAG;AAC7C,UAAI,SAAS,KAAK,QAAQ,MAAM,sBAAsB,MAAM,EAAE,MAAM;AACpE;AAAA,IACF;AAEA,QAAI,CAAC,IAAI,gBAAgB;AACvB,YAAM,SAAS,qBAAqB,OAAO;AAC3C,UAAI,QAAQ;AACV,YAAI,iBAAiB,OAAO;AAC5B,YAAI,OAAO,QAAS,KAAI,UAAU,OAAO;AACzC;AAAA,MACF;AAAA,IACF;AAEA,gBAAY,KAAK,OAAO;AAAA,EAC1B;AAEA,MAAI,CAAC,IAAI,WAAW,YAAY,SAAS,GAAG;AAC1C,QAAI,UAAU,YAAY,KAAK,GAAG;AAAA,EACpC;AAEA,SAAO;AACT;AAEA,SAAS,qBACP,OACqD;AACrD,QAAM,YAAY,MAAM,QAAQ,GAAG;AACnC,QAAM,iBAAiB,cAAc,KAAK,QAAQ,MAAM,MAAM,GAAG,SAAS;AAC1E,MACE,CAAC,kBACD,CAAC,CAAC,aAAa,SAAS,WAAW,EAAE,KAAK,CAAC,WAAW,eAAe,SAAS,MAAM,CAAC,GACrF;AACA,WAAO;AAAA,EACT;AACA,aAAW,aAAa,gBAAgB;AACtC,UAAM,OAAO,UAAU,WAAW,CAAC;AACnC,UAAM,QACH,QAAQ,MAAM,QAAQ,MACtB,QAAQ,MAAM,QAAQ,MACtB,QAAQ,MAAM,QAAQ,OACvB,cAAc,OACd,cAAc,OACd,cAAc;AAChB,QAAI,CAAC,MAAO,QAAO;AAAA,EACrB;AAEA,MAAI,cAAc,GAAI,QAAO,EAAE,eAAA;AAC/B,QAAM,UAAU,MAAM,MAAM,YAAY,CAAC,EAAE,UAAA;AAC3C,SAAO,UAAU,EAAE,gBAAgB,QAAA,IAAY,EAAE,eAAA;AACnD;AAEA,SAAS,WAAW,KAAa,QAAgB,QAAkC;AACjF,QAAM,MAAM,OAAO,KAAA;AACnB,MAAI;AACJ,MAAI;AACJ,MAAI,eAAe;AACnB,MAAI,QAAQ,iBAAiB;AAC3B,mBAAe;AAAA,EACjB,WAAW,QAAQ,kBAAkB;AACnC,UAAM,WAAW,IAAI,MAAM,KAAK,EAAE,CAAC,KAAK,KAAK,KAAA;AAC7C,UAAM,IAAI,QAAQ,YAAY,GAAG;AACjC,QAAI,KAAK,GAAG;AACV,aAAO,QAAQ,MAAM,GAAG,CAAC;AACzB,YAAM,IAAI,OAAO,QAAQ,MAAM,IAAI,CAAC,CAAC;AACrC,UAAI,OAAO,SAAS,CAAC,EAAG,QAAO;AAAA,IACjC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,eAAe,GAAG,GAAG,IAAI,MAAM;AACrC,QAAM,WAAW,OACb,OACE,GAAG,IAAI,IAAI,IAAI,KACf,OACF,eACE,kBACA;AACN,QAAM,QAA0B;AAAA,IAC9B;AAAA,IACA,aAAa,aAAa,KAAK,MAAM;AAAA,IACrC,MAAM;AAAA,IACN,SAAS,gBAAgB,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC;AAAA,IACtD;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EAAA;AAEF,MAAI,SAAS,OAAW,OAAM,OAAO;AACrC,MAAI,SAAS,OAAW,OAAM,OAAO;AACrC,MAAI,aAAa,OAAW,OAAM,WAAW;AAC7C,SAAO;AACT;AAEA,SAAS,aAAa,KAAa,QAAwB;AACzD,QAAM,QAAQ,IAAI,MAAM,GAAG;AAC3B,QAAM,OAAO,MAAM,MAAM,SAAS,CAAC,KAAK;AACxC,SAAO,GAAG,IAAI,IAAI,MAAM;AAC1B;"}
1
+ {"version":3,"file":"stacktrace-parse.js","sources":["../../../src/data/diagnostics/stacktrace-parse.ts"],"sourcesContent":["import type { ParsedThreadFrame } from \"./jvm-stacktrace\";\nimport { frameLocation, isRuntimeFrame, shortFrameName } from \"./frame-heuristics\";\n\n// ParsedStackFrame is the React mirror of Go's clicky api.StackFrame. We reuse\n// ParsedThreadFrame so the shared StackFrameRow renderer can display it.\nexport type ParsedStackFrame = ParsedThreadFrame;\n\nexport interface ParsedStackTrace {\n exceptionClass?: string;\n message?: string;\n causedBy: string[];\n frames: ParsedStackFrame[];\n language: \"java\";\n}\n\nconst frameRe = /^\\s*at\\s+([\\w$.]+)\\.([\\w$<>]+)\\(([^)]+)\\)/;\nconst continuationRe = /^\\.\\.\\.\\s+\\d+\\s+more$/;\n\n\n// parseJavaStackTrace decodes a free-form Java exception dump (the body that\n// printStackTrace() emits, optionally wrapped by EclipseLink \"Internal\n// Exception:\" / \"Caused by:\" markers) into a renderable shape. It is the\n// React-side counterpart to Go's api.ParseJavaStackTrace.\nexport function parseJavaStackTrace(input: string): ParsedStackTrace {\n const out: ParsedStackTrace = {\n causedBy: [],\n frames: [],\n language: \"java\",\n };\n if (!input || !input.trim()) return out;\n\n const headerLines: string[] = [];\n for (const raw of input.split(\"\\n\")) {\n const trimmed = raw.trim();\n if (!trimmed) continue;\n if (continuationRe.test(trimmed)) continue;\n\n const frameMatch = frameRe.exec(raw);\n if (frameMatch && frameMatch[1] && frameMatch[2] && frameMatch[3] !== undefined) {\n out.frames.push(buildFrame(frameMatch[1], frameMatch[2], frameMatch[3]));\n continue;\n }\n\n if (trimmed.startsWith(\"Caused by:\")) {\n out.causedBy.push(trimmed.slice(\"Caused by:\".length).trim());\n continue;\n }\n if (trimmed.startsWith(\"Internal Exception:\")) {\n out.causedBy.push(trimmed.slice(\"Internal Exception:\".length).trim());\n continue;\n }\n\n if (!out.exceptionClass) {\n const header = parseExceptionHeader(trimmed);\n if (header) {\n out.exceptionClass = header.exceptionClass;\n if (header.message) out.message = header.message;\n continue;\n }\n }\n\n headerLines.push(trimmed);\n }\n\n if (!out.message && headerLines.length > 0) {\n out.message = headerLines.join(\" \");\n }\n\n return out;\n}\n\nfunction parseExceptionHeader(\n value: string,\n): { exceptionClass: string; message?: string } | null {\n const separator = value.indexOf(\":\");\n const exceptionClass = separator === -1 ? value : value.slice(0, separator);\n if (\n !exceptionClass ||\n ![\"Exception\", \"Error\", \"Throwable\"].some((suffix) => exceptionClass.endsWith(suffix))\n ) {\n return null;\n }\n for (const character of exceptionClass) {\n const code = character.charCodeAt(0);\n const valid =\n (code >= 48 && code <= 57) ||\n (code >= 65 && code <= 90) ||\n (code >= 97 && code <= 122) ||\n character === \"_\" ||\n character === \".\" ||\n character === \"$\";\n if (!valid) return null;\n }\n\n if (separator === -1) return { exceptionClass };\n const message = value.slice(separator + 1).trimStart();\n return message ? { exceptionClass, message } : { exceptionClass };\n}\n\nfunction buildFrame(cls: string, method: string, locRaw: string): ParsedStackFrame {\n const loc = locRaw.trim();\n let file: string | undefined;\n let line: number | undefined;\n let nativeMethod = false;\n if (loc === \"Native Method\") {\n nativeMethod = true;\n } else if (loc !== \"Unknown Source\") {\n const cleaned = (loc.split(\" ~[\")[0] ?? loc).trim();\n const i = cleaned.lastIndexOf(\":\");\n if (i >= 0) {\n file = cleaned.slice(0, i);\n const n = Number(cleaned.slice(i + 1));\n if (Number.isFinite(n)) line = n;\n } else {\n file = cleaned;\n }\n }\n const functionName = `${cls}.${method}`;\n const location = frameLocation(file, line) ?? (nativeMethod ? \"Native Method\" : undefined);\n const frame: ParsedStackFrame = {\n functionName,\n displayName: shortFrameName(cls, method),\n kind: \"frame\",\n runtime: isRuntimeFrame(cls),\n nativeMethod,\n class: cls,\n method,\n };\n if (file !== undefined) frame.file = file;\n if (line !== undefined) frame.line = line;\n if (location !== undefined) frame.location = location;\n return frame;\n}\n"],"names":[],"mappings":";AAeA,MAAM,UAAU;AAChB,MAAM,iBAAiB;AAOhB,SAAS,oBAAoB,OAAiC;AACnE,QAAM,MAAwB;AAAA,IAC5B,UAAU,CAAA;AAAA,IACV,QAAQ,CAAA;AAAA,IACR,UAAU;AAAA,EAAA;AAEZ,MAAI,CAAC,SAAS,CAAC,MAAM,KAAA,EAAQ,QAAO;AAEpC,QAAM,cAAwB,CAAA;AAC9B,aAAW,OAAO,MAAM,MAAM,IAAI,GAAG;AACnC,UAAM,UAAU,IAAI,KAAA;AACpB,QAAI,CAAC,QAAS;AACd,QAAI,eAAe,KAAK,OAAO,EAAG;AAElC,UAAM,aAAa,QAAQ,KAAK,GAAG;AACnC,QAAI,cAAc,WAAW,CAAC,KAAK,WAAW,CAAC,KAAK,WAAW,CAAC,MAAM,QAAW;AAC/E,UAAI,OAAO,KAAK,WAAW,WAAW,CAAC,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AACvE;AAAA,IACF;AAEA,QAAI,QAAQ,WAAW,YAAY,GAAG;AACpC,UAAI,SAAS,KAAK,QAAQ,MAAM,aAAa,MAAM,EAAE,MAAM;AAC3D;AAAA,IACF;AACA,QAAI,QAAQ,WAAW,qBAAqB,GAAG;AAC7C,UAAI,SAAS,KAAK,QAAQ,MAAM,sBAAsB,MAAM,EAAE,MAAM;AACpE;AAAA,IACF;AAEA,QAAI,CAAC,IAAI,gBAAgB;AACvB,YAAM,SAAS,qBAAqB,OAAO;AAC3C,UAAI,QAAQ;AACV,YAAI,iBAAiB,OAAO;AAC5B,YAAI,OAAO,QAAS,KAAI,UAAU,OAAO;AACzC;AAAA,MACF;AAAA,IACF;AAEA,gBAAY,KAAK,OAAO;AAAA,EAC1B;AAEA,MAAI,CAAC,IAAI,WAAW,YAAY,SAAS,GAAG;AAC1C,QAAI,UAAU,YAAY,KAAK,GAAG;AAAA,EACpC;AAEA,SAAO;AACT;AAEA,SAAS,qBACP,OACqD;AACrD,QAAM,YAAY,MAAM,QAAQ,GAAG;AACnC,QAAM,iBAAiB,cAAc,KAAK,QAAQ,MAAM,MAAM,GAAG,SAAS;AAC1E,MACE,CAAC,kBACD,CAAC,CAAC,aAAa,SAAS,WAAW,EAAE,KAAK,CAAC,WAAW,eAAe,SAAS,MAAM,CAAC,GACrF;AACA,WAAO;AAAA,EACT;AACA,aAAW,aAAa,gBAAgB;AACtC,UAAM,OAAO,UAAU,WAAW,CAAC;AACnC,UAAM,QACH,QAAQ,MAAM,QAAQ,MACtB,QAAQ,MAAM,QAAQ,MACtB,QAAQ,MAAM,QAAQ,OACvB,cAAc,OACd,cAAc,OACd,cAAc;AAChB,QAAI,CAAC,MAAO,QAAO;AAAA,EACrB;AAEA,MAAI,cAAc,GAAI,QAAO,EAAE,eAAA;AAC/B,QAAM,UAAU,MAAM,MAAM,YAAY,CAAC,EAAE,UAAA;AAC3C,SAAO,UAAU,EAAE,gBAAgB,QAAA,IAAY,EAAE,eAAA;AACnD;AAEA,SAAS,WAAW,KAAa,QAAgB,QAAkC;AACjF,QAAM,MAAM,OAAO,KAAA;AACnB,MAAI;AACJ,MAAI;AACJ,MAAI,eAAe;AACnB,MAAI,QAAQ,iBAAiB;AAC3B,mBAAe;AAAA,EACjB,WAAW,QAAQ,kBAAkB;AACnC,UAAM,WAAW,IAAI,MAAM,KAAK,EAAE,CAAC,KAAK,KAAK,KAAA;AAC7C,UAAM,IAAI,QAAQ,YAAY,GAAG;AACjC,QAAI,KAAK,GAAG;AACV,aAAO,QAAQ,MAAM,GAAG,CAAC;AACzB,YAAM,IAAI,OAAO,QAAQ,MAAM,IAAI,CAAC,CAAC;AACrC,UAAI,OAAO,SAAS,CAAC,EAAG,QAAO;AAAA,IACjC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,eAAe,GAAG,GAAG,IAAI,MAAM;AACrC,QAAM,WAAW,cAAc,MAAM,IAAI,MAAM,eAAe,kBAAkB;AAChF,QAAM,QAA0B;AAAA,IAC9B;AAAA,IACA,aAAa,eAAe,KAAK,MAAM;AAAA,IACvC,MAAM;AAAA,IACN,SAAS,eAAe,GAAG;AAAA,IAC3B;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EAAA;AAEF,MAAI,SAAS,OAAW,OAAM,OAAO;AACrC,MAAI,SAAS,OAAW,OAAM,OAAO;AACrC,MAAI,aAAa,OAAW,OAAM,WAAW;AAC7C,SAAO;AACT;"}
@@ -15,9 +15,9 @@ function detectMode() {
15
15
  }
16
16
  function getVersionInfo() {
17
17
  return {
18
- commit: read(() => "624423d8", ""),
19
- tag: read(() => "clicky-ui@0.3.21", ""),
20
- date: read(() => "2026-08-19T11:27:15.090Z", ""),
18
+ commit: read(() => "dda94bcd", ""),
19
+ tag: read(() => "clicky-ui@0.3.22", ""),
20
+ date: read(() => "2026-08-21T07:41:08.835Z", ""),
21
21
  dirty: read(() => true, false),
22
22
  mode: detectMode()
23
23
  };
@@ -13,9 +13,9 @@ function detectMode() {
13
13
  }
14
14
  function getVersionInfo() {
15
15
  return {
16
- commit: read(() => "624423d8", ""),
17
- tag: read(() => "clicky-ui@0.3.21", ""),
18
- date: read(() => "2026-08-19T11:27:01.125Z", ""),
16
+ commit: read(() => "dda94bcd", ""),
17
+ tag: read(() => "clicky-ui@0.3.22", ""),
18
+ date: read(() => "2026-08-21T07:40:50.846Z", ""),
19
19
  dirty: read(() => true, false),
20
20
  mode: detectMode()
21
21
  };
package/dist/data.cjs CHANGED
@@ -88,6 +88,8 @@ const utils = require("./data/diagnostics/utils.cjs");
88
88
  const stacktrace = require("./data/diagnostics/stacktrace.cjs");
89
89
  const jvmStacktrace = require("./data/diagnostics/jvm-stacktrace.cjs");
90
90
  const JvmStackTrace = require("./data/diagnostics/JvmStackTrace.cjs");
91
+ const StackFrameRow = require("./data/diagnostics/StackFrameRow.cjs");
92
+ const frameHeuristics = require("./data/diagnostics/frame-heuristics.cjs");
91
93
  const FrameSourceWindow = require("./data/diagnostics/FrameSourceWindow.cjs");
92
94
  const FrameSourceWindow_utils = require("./data/diagnostics/FrameSourceWindow.utils.cjs");
93
95
  const RenderedStackTrace = require("./data/diagnostics/RenderedStackTrace.cjs");
@@ -603,8 +605,12 @@ exports.parseGoroutineDump = stacktrace.parseGoroutineDump;
603
605
  exports.parseStackDump = stacktrace.parseStackDump;
604
606
  exports.countThreadsByState = jvmStacktrace.countThreadsByState;
605
607
  exports.parseJvmThreadDump = jvmStacktrace.parseJvmThreadDump;
606
- exports.JvmStackFrameRow = JvmStackTrace.JvmStackFrameRow;
607
608
  exports.JvmStackTrace = JvmStackTrace.JvmStackTrace;
609
+ exports.StackFrameRow = StackFrameRow.StackFrameRow;
610
+ exports.RUNTIME_PREFIXES = frameHeuristics.RUNTIME_PREFIXES;
611
+ exports.frameLocation = frameHeuristics.frameLocation;
612
+ exports.isRuntimeFrame = frameHeuristics.isRuntimeFrame;
613
+ exports.shortFrameName = frameHeuristics.shortFrameName;
608
614
  exports.FrameSourceWindow = FrameSourceWindow.FrameSourceWindow;
609
615
  exports.frameHasSource = FrameSourceWindow_utils.frameHasSource;
610
616
  exports.StackTrace = RenderedStackTrace.StackTrace;
package/dist/data.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/data.d.ts CHANGED
@@ -10,7 +10,7 @@ export { inferColumns } from './data/data-table-utils';
10
10
  export { parseMultiFilterValue, serializeMultiFilterValue, splitCommaValues, updateFilterSelection, type DataTableFilterSelection, } from './data/data-table-filter-values';
11
11
  export { DATA_TABLE_FILTER_LOOKUP_LIMIT, serverColumnsToDataTableColumns, serverFiltersToFilterBar, type DataTableColumnFilter, type DataTableFilterKind, type DataTableFilterLookup, type DataTableFilterLookupRequest, type DataTableFilterLookupResult, type DataTableFilterOption, type DataTableServerColumn, type ServerFilterBarOptions, type ServerFilterConfig, } from './data/data-table-server-filters';
12
12
  export { DataTable, type DataTableColumn, type DataTableColumnInput, type DataTableColumnKind, type DataTableCursorPagination, type DataTableFooterContext, type DataTableInfinite, type DataTableMenuAction, type DataTablePagination, type DataTableProps, type DataTableRowSelection, type DataTableSelectionContext, type StatusOptions, type TagsOptions, type TimestampOptions, } from './data/DataTable';
13
- export { groupRecords, isGroupCollapsedByDefault, type DataTableGroup, type DataTableGrouping, type DataTableGroupMetaAlign, } from './data/DataTable.grouping';
13
+ export { groupRecords, isGroupCollapsedByDefault, type DataTableGroup, type DataTableGrouping, type DataTableGroupingColumnMode, type DataTableGroupingCustomMode, type DataTableGroupingMode, type DataTableGroupingNoneMode, type DataTableGroupMetaAlign, } from './data/DataTable.grouping';
14
14
  export { StatStrip, type StatStripClassNames, type StatStripItem, type StatStripProps, } from './data/StatStrip';
15
15
  export { EntityCell, type EntityCellProps, type EntityCellSize, } from './data/cells/EntityCell';
16
16
  export { Timestamp, type TimestampProps } from './data/cells/Timestamp';
@@ -94,7 +94,9 @@ export type { ProcessNode, StackCapture, RunMeta } from './data/diagnostics/type
94
94
  export { findProcessByPID, countProcesses, processLabel, processStateIcon, processStateColor, } from './data/diagnostics/utils';
95
95
  export { parseGoroutineDump, countGoroutinesByState, parseStackDump, detectDumpFormat, countStackByState, type ParsedGoroutine, type ParsedGoroutineFrame, type ParsedStack, type DumpFormat, } from './data/diagnostics/stacktrace';
96
96
  export { parseJvmThreadDump, countThreadsByState, type ParsedThread, type ParsedThreadFrame, } from './data/diagnostics/jvm-stacktrace';
97
- export { JvmStackTrace, JvmStackFrameRow, type JvmStackTraceProps, type JvmFrameSourceResolver, } from './data/diagnostics/JvmStackTrace';
97
+ export { JvmStackTrace, type JvmStackTraceProps, type JvmFrameSourceResolver, } from './data/diagnostics/JvmStackTrace';
98
+ export { StackFrameRow, type StackFrameActions, type StackFrameRowProps, } from './data/diagnostics/StackFrameRow';
99
+ export { RUNTIME_PREFIXES, isRuntimeFrame, shortFrameName, frameLocation, } from './data/diagnostics/frame-heuristics';
98
100
  export { FrameSourceWindow, } from './data/diagnostics/FrameSourceWindow';
99
101
  export { frameHasSource, type FrameSource, } from './data/diagnostics/FrameSourceWindow.utils';
100
102
  export { StackTrace, type StackTraceProps, type StackTraceSourceResolver, } from './data/diagnostics/RenderedStackTrace';
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
package/dist/data.js CHANGED
@@ -85,7 +85,9 @@ import { DiagnosticsDetailPanel } from "./data/diagnostics/DiagnosticsDetailPane
85
85
  import { countProcesses, findProcessByPID, processLabel, processStateColor, processStateIcon } from "./data/diagnostics/utils.js";
86
86
  import { countGoroutinesByState, countStackByState, detectDumpFormat, parseGoroutineDump, parseStackDump } from "./data/diagnostics/stacktrace.js";
87
87
  import { countThreadsByState, parseJvmThreadDump } from "./data/diagnostics/jvm-stacktrace.js";
88
- import { JvmStackFrameRow, JvmStackTrace } from "./data/diagnostics/JvmStackTrace.js";
88
+ import { JvmStackTrace } from "./data/diagnostics/JvmStackTrace.js";
89
+ import { StackFrameRow } from "./data/diagnostics/StackFrameRow.js";
90
+ import { RUNTIME_PREFIXES, frameLocation, isRuntimeFrame, shortFrameName } from "./data/diagnostics/frame-heuristics.js";
89
91
  import { FrameSourceWindow } from "./data/diagnostics/FrameSourceWindow.js";
90
92
  import { frameHasSource } from "./data/diagnostics/FrameSourceWindow.utils.js";
91
93
  import { StackTrace } from "./data/diagnostics/RenderedStackTrace.js";
@@ -493,7 +495,6 @@ export {
493
495
  HarPanel,
494
496
  Icon,
495
497
  JsonView,
496
- JvmStackFrameRow,
497
498
  JvmStackTrace,
498
499
  KeyValueList,
499
500
  LabelIcon,
@@ -517,6 +518,7 @@ export {
517
518
  QueryBrowser,
518
519
  QueryBrowserExecutionError,
519
520
  QueryInfoDialog,
521
+ RUNTIME_PREFIXES,
520
522
  RadialGauge,
521
523
  STATUS_LABELS,
522
524
  STATUS_TOKEN_GROUPS,
@@ -527,6 +529,7 @@ export {
527
529
  ServerTimingBadge,
528
530
  SignedDeltaBar,
529
531
  SortableHeader,
532
+ StackFrameRow,
530
533
  StackTrace,
531
534
  StackedStatusBar,
532
535
  StatStrip,
@@ -1220,6 +1223,7 @@ export {
1220
1223
  formatTestDuration,
1221
1224
  formatTimestamp,
1222
1225
  frameHasSource,
1226
+ frameLocation,
1223
1227
  frameworkIcon,
1224
1228
  getChangeIcon,
1225
1229
  getVersionInfo,
@@ -1233,6 +1237,7 @@ export {
1233
1237
  isApplicationStackFrame,
1234
1238
  isGroupCollapsedByDefault,
1235
1239
  isLeaf,
1240
+ isRuntimeFrame,
1236
1241
  isTerminalStatus,
1237
1242
  latestOf,
1238
1243
  logLevelColor,
@@ -1275,6 +1280,7 @@ export {
1275
1280
  serverTimingCounterSummary,
1276
1281
  serverTimingMetricLabel,
1277
1282
  setFallbackIconProvider,
1283
+ shortFrameName,
1278
1284
  slugify,
1279
1285
  splitCommaValues,
1280
1286
  splitTagToken,
package/dist/data.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.cjs CHANGED
@@ -48,6 +48,9 @@ const select = require("./components/select.cjs");
48
48
  const ConnectionLoggingPolicy = require("./components/ConnectionLoggingPolicy.cjs");
49
49
  const ConnectionLoggingPolicy_model = require("./components/ConnectionLoggingPolicy.model.cjs");
50
50
  const Combobox = require("./components/Combobox.cjs");
51
+ const CountryFlag = require("./components/CountryFlag.cjs");
52
+ const CountryPicker = require("./components/CountryPicker.cjs");
53
+ const countryOptions = require("./components/country-options.cjs");
51
54
  const Field = require("./components/Field.cjs");
52
55
  const useForm = require("./components/use-form.cjs");
53
56
  const TreePickerField = require("./components/TreePickerField.cjs");
@@ -78,6 +81,7 @@ const jsonSchemaFormRefs = require("./components/json-schema-form-refs.cjs");
78
81
  const jsonSchemaFormTemplate = require("./components/json-schema-form-template.cjs");
79
82
  const jsonSchemaFormExtensions = require("./components/json-schema-form-extensions.cjs");
80
83
  const jsonSchemaFormErrorDisplay = require("./components/json-schema-form-error-display.cjs");
84
+ const jsonSchemaFormItemRow = require("./components/json-schema-form-item-row.cjs");
81
85
  const SplitPane = require("./layout/SplitPane.cjs");
82
86
  const Workspace = require("./layout/Workspace.cjs");
83
87
  const AppShell = require("./layout/AppShell.cjs");
@@ -186,6 +190,8 @@ const utils$1 = require("./data/diagnostics/utils.cjs");
186
190
  const stacktrace = require("./data/diagnostics/stacktrace.cjs");
187
191
  const jvmStacktrace = require("./data/diagnostics/jvm-stacktrace.cjs");
188
192
  const JvmStackTrace = require("./data/diagnostics/JvmStackTrace.cjs");
193
+ const StackFrameRow = require("./data/diagnostics/StackFrameRow.cjs");
194
+ const frameHeuristics = require("./data/diagnostics/frame-heuristics.cjs");
189
195
  const FrameSourceWindow = require("./data/diagnostics/FrameSourceWindow.cjs");
190
196
  const FrameSourceWindow_utils = require("./data/diagnostics/FrameSourceWindow.utils.cjs");
191
197
  const RenderedStackTrace = require("./data/diagnostics/RenderedStackTrace.cjs");
@@ -679,6 +685,11 @@ exports.CONNECTION_LOG_LEVELS = ConnectionLoggingPolicy_model.CONNECTION_LOG_LEV
679
685
  exports.isConnectionLoggingCapability = ConnectionLoggingPolicy_model.isConnectionLoggingCapability;
680
686
  exports.visibleConnectionLogEvents = ConnectionLoggingPolicy_model.visibleConnectionLogEvents;
681
687
  exports.Combobox = Combobox.Combobox;
688
+ exports.CountryFlag = CountryFlag.CountryFlag;
689
+ exports.CountryPicker = CountryPicker.CountryPicker;
690
+ exports.COUNTRY_OPTIONS = countryOptions.COUNTRY_OPTIONS;
691
+ exports.getCountryOption = countryOptions.getCountryOption;
692
+ exports.isCountryCode = countryOptions.isCountryCode;
682
693
  exports.Field = Field.Field;
683
694
  exports.useForm = useForm.useForm;
684
695
  exports.TreePickerField = TreePickerField.TreePickerField;
@@ -729,6 +740,8 @@ exports.templateValuePre = jsonSchemaFormTemplate.templateValuePre;
729
740
  exports.applyPostExtensions = jsonSchemaFormExtensions.applyPostExtensions;
730
741
  exports.FieldErrorText = jsonSchemaFormErrorDisplay.FieldErrorText;
731
742
  exports.FormErrorSummary = jsonSchemaFormErrorDisplay.FormErrorSummary;
743
+ exports.ItemBadge = jsonSchemaFormItemRow.ItemBadge;
744
+ exports.ItemGlyph = jsonSchemaFormItemRow.ItemGlyph;
732
745
  exports.SplitPane = SplitPane.SplitPane;
733
746
  exports.Workspace = Workspace.Workspace;
734
747
  exports.AppShell = AppShell.AppShell;
@@ -906,8 +919,12 @@ exports.parseGoroutineDump = stacktrace.parseGoroutineDump;
906
919
  exports.parseStackDump = stacktrace.parseStackDump;
907
920
  exports.countThreadsByState = jvmStacktrace.countThreadsByState;
908
921
  exports.parseJvmThreadDump = jvmStacktrace.parseJvmThreadDump;
909
- exports.JvmStackFrameRow = JvmStackTrace.JvmStackFrameRow;
910
922
  exports.JvmStackTrace = JvmStackTrace.JvmStackTrace;
923
+ exports.StackFrameRow = StackFrameRow.StackFrameRow;
924
+ exports.RUNTIME_PREFIXES = frameHeuristics.RUNTIME_PREFIXES;
925
+ exports.frameLocation = frameHeuristics.frameLocation;
926
+ exports.isRuntimeFrame = frameHeuristics.isRuntimeFrame;
927
+ exports.shortFrameName = frameHeuristics.shortFrameName;
911
928
  exports.FrameSourceWindow = FrameSourceWindow.FrameSourceWindow;
912
929
  exports.frameHasSource = FrameSourceWindow_utils.frameHasSource;
913
930
  exports.StackTrace = RenderedStackTrace.StackTrace;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}