@mcp-use/inspector 20.0.0-beta.13 → 20.0.0-beta.15

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 (145) hide show
  1. package/README.md +4 -4
  2. package/dist/cdn/inspector.js +76858 -9272
  3. package/dist/cli.js +69 -24
  4. package/dist/server/asset-urls.d.ts +1 -4
  5. package/dist/server/asset-urls.d.ts.map +1 -1
  6. package/dist/server/asset-urls.js +3 -7
  7. package/dist/server/cdn-shell.d.ts.map +1 -1
  8. package/dist/server/cdn-shell.js +3 -3
  9. package/dist/server/{chunk-H6ZCIKBS.js → chunk-JZT7N2BJ.js} +10 -15
  10. package/dist/server/{chunk-YAYRN4DW.js → chunk-WNQGHIZ3.js} +61 -15
  11. package/dist/server/{chunk-QQP554HG.js → chunk-XKCUJ6ZJ.js} +1 -1
  12. package/dist/server/{chunk-2XQWLYOZ.js → chunk-ZPGABKXL.js} +1 -1
  13. package/dist/server/cli.js +3 -3
  14. package/dist/server/index.js +4 -4
  15. package/dist/server/middleware.js +4 -4
  16. package/dist/server/version.js +1 -1
  17. package/dist/web/assets/index-Bqfsh_Rp.js +643 -0
  18. package/dist/web/index.html +2 -10
  19. package/package.json +2 -2
  20. package/dist/cdn/AnimatePresence-D1bZ5_-l.js +0 -394
  21. package/dist/cdn/ChatTab-CokP5UlL.js +0 -6811
  22. package/dist/cdn/CheckboxIndicator-BjF73mGX.js +0 -252
  23. package/dist/cdn/ConnectionSettingsForm-CXCKdMZh.js +0 -929
  24. package/dist/cdn/ConnectionSettingsTab-Ag4WD55h.js +0 -151
  25. package/dist/cdn/ElicitationTab-PEmEDvC5.js +0 -655
  26. package/dist/cdn/FormContext-NtUiZclE.js +0 -135
  27. package/dist/cdn/InspectorContext-BBKCdfmK.js +0 -123
  28. package/dist/cdn/JSONDisplay-BJqMz7Ny.js +0 -324
  29. package/dist/cdn/ListTabHeader-DzmTtN1e.js +0 -89
  30. package/dist/cdn/MCPAppsDebugControls-C01DPDJv.js +0 -2174
  31. package/dist/cdn/ManufactOAuthCallback-ChbbjFIT.js +0 -31
  32. package/dist/cdn/MarkdownRenderer-CrG5JHAZ.js +0 -3610
  33. package/dist/cdn/McpAppsViewPanel-07_iHrne.js +0 -56
  34. package/dist/cdn/NotificationsTab-B7uebqMV.js +0 -290
  35. package/dist/cdn/OAuthCallback-Cku-R2uM.js +0 -58
  36. package/dist/cdn/PromptsTab-98ugje_q.js +0 -902
  37. package/dist/cdn/ResourcesTab-CxHilZjd.js +0 -566
  38. package/dist/cdn/SamplingTab-gOUjg7bt.js +0 -659
  39. package/dist/cdn/ServerMetadataTab-BM3VhSLf.js +0 -244
  40. package/dist/cdn/StatusIcon-Q3n3YRtE.js +0 -65
  41. package/dist/cdn/ToolsTab-Dm6n5OxE.js +0 -2045
  42. package/dist/cdn/ViewPreview-CCKWd8Qt.js +0 -238
  43. package/dist/cdn/WidgetDebugContext-B6yoOVVV.js +0 -314
  44. package/dist/cdn/WidgetWrapper-BlbQAh_X.js +0 -12
  45. package/dist/cdn/basePath-B8HuhIMu.js +0 -25
  46. package/dist/cdn/bell-GrTZcnD2.js +0 -10
  47. package/dist/cdn/browser-DG2Z8392.js +0 -42
  48. package/dist/cdn/brush-CelVvMGp.js +0 -17
  49. package/dist/cdn/button-CB4uOoUV.js +0 -2509
  50. package/dist/cdn/card-BA-DQk-G.js +0 -41
  51. package/dist/cdn/cfWorker-Bxcs9rNe.js +0 -10799
  52. package/dist/cdn/checkbox-kwVa4gRX.js +0 -20
  53. package/dist/cdn/chunk-QUQL4437-XnDcYQEx.js +0 -1508
  54. package/dist/cdn/clock-YMF8Gtw5.js +0 -12
  55. package/dist/cdn/code-C8sN2OGR.js +0 -10
  56. package/dist/cdn/createLucideIcon-BONxC1L5.js +0 -213
  57. package/dist/cdn/dialog-CJGnC5Ag.js +0 -1028
  58. package/dist/cdn/dist-C-AJLM5q.js +0 -2307
  59. package/dist/cdn/dist-CTJnCYmk.js +0 -616
  60. package/dist/cdn/external-link-Bo4lQxr1.js +0 -17
  61. package/dist/cdn/eye-pSGG7nvf.js +0 -29
  62. package/dist/cdn/folder-open-aM8CPtBO.js +0 -7
  63. package/dist/cdn/hash-DDs2vE1k.js +0 -33
  64. package/dist/cdn/history-BfUFpL1d.js +0 -17
  65. package/dist/cdn/index-browser-CCygKh3z.js +0 -1853
  66. package/dist/cdn/info-BMkB68mB.js +0 -19
  67. package/dist/cdn/input-BCpgLXU1.js +0 -9654
  68. package/dist/cdn/inspector-settings-layout-0VDsjeqb.js +0 -4
  69. package/dist/cdn/label-A0UGV8FE.js +0 -60
  70. package/dist/cdn/loader-circle-BKRHJEB7.js +0 -7
  71. package/dist/cdn/manufact-auth-BQMHhbLV.js +0 -423
  72. package/dist/cdn/maximize-2-DdrB_spi.js +0 -21
  73. package/dist/cdn/maximize-hSOCz133.js +0 -21
  74. package/dist/cdn/message-square-D3tKB3uJ.js +0 -7
  75. package/dist/cdn/not-found-BajFyZpp.js +0 -32
  76. package/dist/cdn/play-B1leulYf.js +0 -7
  77. package/dist/cdn/providerMeta-CjGU4rID.js +0 -436
  78. package/dist/cdn/react-BIs9pQ3H.js +0 -926
  79. package/dist/cdn/react-BiVEwoxA.js +0 -5421
  80. package/dist/cdn/refresh-cw-CyvXrS91.js +0 -21
  81. package/dist/cdn/save-CmdEPUAm.js +0 -34
  82. package/dist/cdn/schemaHelpers-DTV38jGq.js +0 -16
  83. package/dist/cdn/select-CCFHjOGk.js +0 -2595
  84. package/dist/cdn/servers-Dd0Vcp81.js +0 -30
  85. package/dist/cdn/shared-CJVHJhag.js +0 -1700
  86. package/dist/cdn/sheet-oyq1mIyg.js +0 -2078
  87. package/dist/cdn/sparkles-CxeZpVtX.js +0 -23
  88. package/dist/cdn/spinner-Be1GlSGX.js +0 -15
  89. package/dist/cdn/square-check-big-C_4wbfwF.js +0 -10
  90. package/dist/cdn/switch-DHXEA_N5.js +0 -665
  91. package/dist/cdn/tabs-subtle-Dubd6Kj8.js +0 -788
  92. package/dist/cdn/telemetry-DyrOzsAR.js +0 -208
  93. package/dist/cdn/textarea-CwmI8_uI.js +0 -14
  94. package/dist/cdn/trash-2-BhumJAFE.js +0 -25
  95. package/dist/cdn/useAriaLabelledBy-Cra6w3YY.js +0 -30
  96. package/dist/cdn/useCompositeItem-Dhnm-7el.js +0 -26
  97. package/dist/cdn/useConfig-BTDwEhra.js +0 -235
  98. package/dist/cdn/useSavedRequests-mSIsDd4c.js +0 -51
  99. package/dist/cdn/useViewHostProps-C5NRGTzJ.js +0 -364
  100. package/dist/cdn/wrench-DvK20LUT.js +0 -7
  101. package/dist/cdn/x-EilKPiCX.js +0 -10
  102. package/dist/cdn/zap-0Wr9QO7N.js +0 -10
  103. package/dist/web/assets/AnimatePresence-FfDQQNFJ.js +0 -9
  104. package/dist/web/assets/ChatTab-BEfFVccY.js +0 -18
  105. package/dist/web/assets/ConnectionSettingsTab-Bb_6a0Iv.js +0 -1
  106. package/dist/web/assets/ElicitationTab-BP4GKiyX.js +0 -1
  107. package/dist/web/assets/FormContext-sV-yByKz.js +0 -1
  108. package/dist/web/assets/ListTabHeader-CrGae306.js +0 -1
  109. package/dist/web/assets/MCPAppsDebugControls-BIyFdqol.js +0 -34
  110. package/dist/web/assets/ManufactOAuthCallback-C7FmBqhm.js +0 -1
  111. package/dist/web/assets/MarkdownRenderer-Dh79xxF3.js +0 -47
  112. package/dist/web/assets/McpAppsViewPanel-eC3j1-Vq.js +0 -1
  113. package/dist/web/assets/NotificationsTab-BiZcGnsE.js +0 -1
  114. package/dist/web/assets/OAuthCallback-0QMKMr_h.js +0 -1
  115. package/dist/web/assets/PromptsTab-DP25ApgP.js +0 -15
  116. package/dist/web/assets/ResourcesTab-CptaN3NT.js +0 -2
  117. package/dist/web/assets/SamplingTab-BcdnfiwQ.js +0 -1
  118. package/dist/web/assets/ServerMetadataTab-DfM-a-Kp.js +0 -1
  119. package/dist/web/assets/ToolsTab-hSGwy5-P.js +0 -8
  120. package/dist/web/assets/ViewPreview-r5Me72Dm.js +0 -1
  121. package/dist/web/assets/WidgetWrapper-cv_BM1bY.js +0 -1
  122. package/dist/web/assets/brush-DX0UZ_pI.js +0 -1
  123. package/dist/web/assets/button-C8Xa2k4x.js +0 -1
  124. package/dist/web/assets/checkbox-CiCqaf9B.js +0 -1
  125. package/dist/web/assets/code-B14rVdNt.js +0 -1
  126. package/dist/web/assets/createLucideIcon-BEHeJH0M.js +0 -1
  127. package/dist/web/assets/dist-igO5zKmw.js +0 -21
  128. package/dist/web/assets/index-lCF-0iyi.js +0 -499
  129. package/dist/web/assets/input-C0OQCUZy.js +0 -1
  130. package/dist/web/assets/inspector-settings-layout-yjKRJDai.js +0 -1
  131. package/dist/web/assets/label-CI7JWQOo.js +0 -1
  132. package/dist/web/assets/maximize-2-Br1WQzT2.js +0 -1
  133. package/dist/web/assets/maximize-CJNgRe6S.js +0 -1
  134. package/dist/web/assets/react-CU_d2d5K.js +0 -1
  135. package/dist/web/assets/refresh-cw-B5iaAZKn.js +0 -1
  136. package/dist/web/assets/save-TM6fvNrt.js +0 -1
  137. package/dist/web/assets/schemaHelpers-DLNTQr_6.js +0 -1
  138. package/dist/web/assets/select-D6jzbLJn.js +0 -1
  139. package/dist/web/assets/shared-ChslWC1c.js +0 -1
  140. package/dist/web/assets/sparkles-BGYTDThM.js +0 -1
  141. package/dist/web/assets/tabs-subtle-BqKfSXAk.js +0 -1
  142. package/dist/web/assets/textarea-CRTXuRmE.js +0 -1
  143. package/dist/web/assets/useConfig-BoaEj10z.js +0 -1
  144. package/dist/web/assets/useViewHostProps-BUcH84Z-.js +0 -1
  145. package/dist/web/assets/zap-BDWHCVHU.js +0 -1
@@ -1,135 +0,0 @@
1
- import { s as e, t } from "./react-BIs9pQ3H.js";
2
- import { c as n, g as r, m as i, s as a, v as o } from "./button-CB4uOoUV.js";
3
- //#region ../../node_modules/.pnpm/@base-ui+react@1.6.0_@types+react@19.2.17_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/internals/useValueChanged.mjs
4
- var s = /* @__PURE__ */ e(t(), 1);
5
- function c(e, t) {
6
- let n = s.useRef(e), i = o(t);
7
- r(() => {
8
- n.current !== e && i(n.current);
9
- }, [e, i]), r(() => {
10
- n.current = e;
11
- }, [e]);
12
- }
13
- //#endregion
14
- //#region ../../node_modules/.pnpm/@base-ui+react@1.6.0_@types+react@19.2.17_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/field/control/FieldControlDataAttributes.mjs
15
- var l = /*#__PURE__*/ function(e) {
16
- return e.disabled = "data-disabled", e.valid = "data-valid", e.invalid = "data-invalid", e.touched = "data-touched", e.dirty = "data-dirty", e.filled = "data-filled", e.focused = "data-focused", e;
17
- }({}), u = {
18
- badInput: !1,
19
- customError: !1,
20
- patternMismatch: !1,
21
- rangeOverflow: !1,
22
- rangeUnderflow: !1,
23
- stepMismatch: !1,
24
- tooLong: !1,
25
- tooShort: !1,
26
- typeMismatch: !1,
27
- valid: null,
28
- valueMissing: !1
29
- }, d = {
30
- valid: null,
31
- touched: !1,
32
- dirty: !1,
33
- filled: !1,
34
- focused: !1
35
- }, f = {
36
- disabled: !1,
37
- ...d
38
- }, p = { valid(e) {
39
- return e === null ? null : e ? { [l.valid]: "" } : { [l.invalid]: "" };
40
- } }, m = {
41
- invalid: void 0,
42
- name: void 0,
43
- validityData: {
44
- state: u,
45
- errors: [],
46
- error: "",
47
- value: "",
48
- initialValue: null
49
- },
50
- setValidityData: n,
51
- disabled: void 0,
52
- touched: d.touched,
53
- setTouched: n,
54
- dirty: d.dirty,
55
- setDirty: n,
56
- filled: d.filled,
57
- setFilled: n,
58
- focused: d.focused,
59
- setFocused: n,
60
- validate: () => null,
61
- validationMode: "onSubmit",
62
- validationDebounceTime: 0,
63
- shouldValidateOnChange: () => !1,
64
- state: f,
65
- markedDirtyRef: { current: !1 },
66
- registerFieldControl: n,
67
- validation: {
68
- getValidationProps: (e, t = a) => t,
69
- inputRef: { current: null },
70
- registerInput: n,
71
- commit: async () => {},
72
- change: n
73
- }
74
- }, h = /*#__PURE__*/ s.createContext(m);
75
- process.env.NODE_ENV !== "production" && (h.displayName = "FieldRootContext");
76
- function g(e = !0) {
77
- let t = s.useContext(h);
78
- if (t.setValidityData === n && !e) throw Error(process.env.NODE_ENV === "production" ? i(28) : "Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.");
79
- return t;
80
- }
81
- //#endregion
82
- //#region ../../node_modules/.pnpm/@base-ui+react@1.6.0_@types+react@19.2.17_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/internals/field-register-control/useRegisterFieldControl.mjs
83
- function _(e, t, n, i, a = !0, o) {
84
- let { registerFieldControl: c } = g(), l = s.useRef(null);
85
- l.current ||= Symbol(), r(() => {
86
- let r = l.current;
87
- if (!(!r || !a)) return c(r, {
88
- controlRef: e,
89
- getValue: i,
90
- id: t,
91
- name: o,
92
- value: n
93
- }), () => {
94
- c(r, void 0);
95
- };
96
- }, [
97
- e,
98
- a,
99
- i,
100
- t,
101
- o,
102
- c,
103
- n
104
- ]);
105
- }
106
- //#endregion
107
- //#region ../../node_modules/.pnpm/@base-ui+react@1.6.0_@types+react@19.2.17_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/internals/labelable-provider/LabelableContext.mjs
108
- var v = /*#__PURE__*/ s.createContext({
109
- controlId: void 0,
110
- registerControlId: n,
111
- labelId: void 0,
112
- setLabelId: n,
113
- messageIds: [],
114
- setMessageIds: n,
115
- getDescriptionProps: (e) => e
116
- });
117
- process.env.NODE_ENV !== "production" && (v.displayName = "LabelableContext");
118
- function y() {
119
- return s.useContext(v);
120
- }
121
- //#endregion
122
- //#region ../../node_modules/.pnpm/@base-ui+react@1.6.0_@types+react@19.2.17_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/internals/form-context/FormContext.mjs
123
- var b = /*#__PURE__*/ s.createContext({
124
- formRef: { current: { fields: /* @__PURE__ */ new Map() } },
125
- errors: {},
126
- clearErrors: n,
127
- validationMode: "onSubmit",
128
- submitAttemptedRef: { current: !1 }
129
- });
130
- process.env.NODE_ENV !== "production" && (b.displayName = "FormContext");
131
- function x() {
132
- return s.useContext(b);
133
- }
134
- //#endregion
135
- export { h as a, p as c, _ as i, c as l, v as n, g as o, y as r, u as s, x as t };
@@ -1,123 +0,0 @@
1
- import { s as e, t } from "./react-BIs9pQ3H.js";
2
- import { n } from "./createLucideIcon-BONxC1L5.js";
3
- //#region src/client/context/InspectorContext.tsx
4
- var r = /* @__PURE__ */ e(t(), 1), i = n(), a = (0, r.createContext)(void 0);
5
- function o({ children: e }) {
6
- let t = (typeof window < "u" ? window.__MANUFACT_CHAT_URL__ : void 0) ?? void 0, [n, o] = (0, r.useState)({
7
- selectedServerId: null,
8
- activeTab: "tools",
9
- selectedToolName: null,
10
- selectedPromptName: null,
11
- selectedResourceUri: null,
12
- selectedSamplingRequestId: null,
13
- selectedElicitationRequestId: null,
14
- tunnelUrl: null,
15
- isTunnelStarting: !1,
16
- isEmbedded: !1,
17
- embeddedConfig: t ? {
18
- chatApiUrl: t,
19
- chatStreamProtocol: "data-stream",
20
- chatEnableFreeTierUpgrade: !0
21
- } : {}
22
- }), s = (0, r.useCallback)((e) => {
23
- o((t) => ({
24
- ...t,
25
- selectedServerId: e
26
- }));
27
- }, []), c = (0, r.useCallback)((e) => {
28
- o((t) => ({
29
- ...t,
30
- activeTab: e
31
- }));
32
- }, []), l = (0, r.useCallback)((e) => {
33
- o((t) => ({
34
- ...t,
35
- selectedToolName: e
36
- }));
37
- }, []), u = (0, r.useCallback)((e) => {
38
- o((t) => ({
39
- ...t,
40
- selectedPromptName: e
41
- }));
42
- }, []), d = (0, r.useCallback)((e) => {
43
- o((t) => ({
44
- ...t,
45
- selectedResourceUri: e
46
- }));
47
- }, []), f = (0, r.useCallback)((e) => {
48
- o((t) => ({
49
- ...t,
50
- selectedSamplingRequestId: e
51
- }));
52
- }, []), p = (0, r.useCallback)((e) => {
53
- o((t) => ({
54
- ...t,
55
- selectedElicitationRequestId: e
56
- }));
57
- }, []), m = (0, r.useCallback)((e) => {
58
- o((t) => ({
59
- ...t,
60
- tunnelUrl: e
61
- }));
62
- }, []), h = (0, r.useCallback)((e) => {
63
- o((t) => ({
64
- ...t,
65
- isTunnelStarting: e
66
- }));
67
- }, []), g = (0, r.useCallback)((e, t = {}) => {
68
- o((n) => ({
69
- ...n,
70
- isEmbedded: e,
71
- embeddedConfig: t
72
- }));
73
- }, []), _ = (0, r.useCallback)((e, t, n) => {
74
- console.warn("[InspectorContext] navigateToItem called:", {
75
- serverId: e,
76
- tab: t,
77
- itemIdentifier: n
78
- }), o((r) => ({
79
- ...r,
80
- selectedServerId: e,
81
- activeTab: t,
82
- selectedToolName: t === "tools" && n || null,
83
- selectedPromptName: t === "prompts" && n || null,
84
- selectedResourceUri: t === "resources" && n || null,
85
- selectedSamplingRequestId: t === "sampling" && n || null,
86
- selectedElicitationRequestId: t === "elicitation" && n || null
87
- }));
88
- }, []), v = (0, r.useCallback)(() => {
89
- o((e) => ({
90
- ...e,
91
- selectedToolName: null,
92
- selectedPromptName: null,
93
- selectedResourceUri: null,
94
- selectedSamplingRequestId: null,
95
- selectedElicitationRequestId: null
96
- }));
97
- }, []);
98
- return /* @__PURE__ */ (0, i.jsx)(a, {
99
- value: {
100
- ...n,
101
- setSelectedServerId: s,
102
- setActiveTab: c,
103
- setSelectedToolName: l,
104
- setSelectedPromptName: u,
105
- setSelectedResourceUri: d,
106
- setSelectedSamplingRequestId: f,
107
- setSelectedElicitationRequestId: p,
108
- setTunnelUrl: m,
109
- setIsTunnelStarting: h,
110
- setEmbeddedMode: g,
111
- navigateToItem: _,
112
- clearSelection: v
113
- },
114
- children: e
115
- });
116
- }
117
- function s() {
118
- let e = (0, r.use)(a);
119
- if (!e) throw Error("useInspector must be used within InspectorProvider");
120
- return e;
121
- }
122
- //#endregion
123
- export { s as n, o as t };
@@ -1,324 +0,0 @@
1
- import { s as e, t } from "./react-BIs9pQ3H.js";
2
- import { K as n } from "./input-BCpgLXU1.js";
3
- import { n as r, t as i } from "./createLucideIcon-BONxC1L5.js";
4
- import { U as a, t as o } from "./button-CB4uOoUV.js";
5
- var s = i("download", [
6
- ["path", {
7
- d: "M12 15V3",
8
- key: "m9g1x1"
9
- }],
10
- ["path", {
11
- d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",
12
- key: "ih7n3h"
13
- }],
14
- ["path", {
15
- d: "m7 10 5 5 5-5",
16
- key: "brsn70"
17
- }]
18
- ]);
19
- //#endregion
20
- //#region src/client/utils/format.ts
21
- function c(e) {
22
- if (e === 0) return "0 Bytes";
23
- let t = 1024, n = [
24
- "Bytes",
25
- "KB",
26
- "MB",
27
- "GB"
28
- ], r = Math.floor(Math.log(e) / Math.log(t));
29
- return Math.round(e / t ** r * 100) / 100 + " " + n[r];
30
- }
31
- function l(e) {
32
- if (e === 0) return "0 B";
33
- let t = 1024, n = [
34
- "B",
35
- "KB",
36
- "MB"
37
- ], r = Math.floor(Math.log(e) / Math.log(t));
38
- return `${parseFloat((e / t ** r).toFixed(1))} ${n[r]}`;
39
- }
40
- //#endregion
41
- //#region src/client/utils/jsonUtils.ts
42
- var u = 100 * 1024, d = 1024 * 20;
43
- function f(e, t) {
44
- if (e == null) return e;
45
- if (typeof e == "string") return e.length > t ? e.substring(0, t) + "... (truncated)" : e;
46
- if (Array.isArray(e)) return e.map((e) => f(e, t));
47
- if (typeof e == "object") {
48
- let n = {};
49
- for (let r in e) Object.prototype.hasOwnProperty.call(e, r) && (n[r] = f(e[r], t));
50
- return n;
51
- }
52
- return e;
53
- }
54
- function p(e) {
55
- let t = JSON.stringify(e, null, 2);
56
- return new TextEncoder().encode(t).length > u ? f(e, d) : e;
57
- }
58
- function m(e) {
59
- let t = JSON.stringify(e, null, 2), n = new TextEncoder().encode(t).length, r = n > u, i;
60
- if (r) {
61
- let t = f(e, d);
62
- i = JSON.stringify(t, null, 2);
63
- } else i = t;
64
- return {
65
- isLarge: r,
66
- size: n,
67
- sizeFormatted: c(n),
68
- preview: i,
69
- full: t
70
- };
71
- }
72
- function h(e, t) {
73
- try {
74
- let n = JSON.stringify(e, null, 2), r = globalThis.Blob, i = new r([n], { type: "application/json" }), a = URL.createObjectURL(i), o = document.createElement("a");
75
- o.href = a, o.download = t || `data-${Date.now()}.json`, document.body.appendChild(o), o.click(), document.body.removeChild(o), URL.revokeObjectURL(a);
76
- } catch (e) {
77
- throw console.error("Failed to download JSON:", e), e;
78
- }
79
- }
80
- //#endregion
81
- //#region src/client/utils/highlightJson.tsx
82
- var g = r(), _ = {
83
- key: "text-sky-600 dark:text-sky-400",
84
- string: "text-emerald-600 dark:text-emerald-400",
85
- number: "text-amber-600 dark:text-amber-400",
86
- boolean: "text-violet-600 dark:text-violet-400",
87
- null: "text-zinc-500 dark:text-zinc-400",
88
- punctuation: "text-muted-foreground"
89
- };
90
- function v(e) {
91
- let t = [], n = 0, r = (e, n) => {
92
- n && t.push({
93
- kind: e,
94
- text: n
95
- });
96
- };
97
- for (; n < e.length;) {
98
- let t = e[n];
99
- if (t === "\"") {
100
- let t = n;
101
- for (n++; n < e.length;) {
102
- if (e[n] === "\\") {
103
- n += 2;
104
- continue;
105
- }
106
- if (e[n] === "\"") {
107
- n++;
108
- break;
109
- }
110
- n++;
111
- }
112
- let i = e.slice(t, n), a = n;
113
- for (; a < e.length && /[ \t]/.test(e[a]);) a++;
114
- r(e[a] === ":" ? "key" : "string", i);
115
- continue;
116
- }
117
- if (/[0-9-]/.test(t)) {
118
- let t = n;
119
- for (e[n] === "-" && n++; n < e.length && /[0-9.eE+-]/.test(e[n]);) n++;
120
- r("number", e.slice(t, n));
121
- continue;
122
- }
123
- if (e.startsWith("true", n) || e.startsWith("false", n)) {
124
- let t = e.startsWith("true", n) ? "true" : "false";
125
- r("boolean", t), n += t.length;
126
- continue;
127
- }
128
- if (e.startsWith("null", n)) {
129
- r("null", "null"), n += 4;
130
- continue;
131
- }
132
- if (/[{}[\],:]/.test(t)) {
133
- r("punctuation", t), n++;
134
- continue;
135
- }
136
- r("punctuation", t), n++;
137
- }
138
- return t;
139
- }
140
- function y(e) {
141
- return v(e).map((e, t) => /* @__PURE__ */ (0, g.jsx)("span", {
142
- className: _[e.kind],
143
- children: e.text
144
- }, t));
145
- }
146
- //#endregion
147
- //#region src/client/components/shared/CollapsibleJSON.tsx
148
- var b = /* @__PURE__ */ e(t(), 1), x = {
149
- string: "text-emerald-600 dark:text-emerald-400",
150
- number: "text-amber-600 dark:text-amber-400",
151
- boolean: "text-violet-600 dark:text-violet-400",
152
- null: "text-zinc-500 dark:text-zinc-400",
153
- key: "text-sky-600 dark:text-sky-400",
154
- punctuation: "text-muted-foreground"
155
- };
156
- function S(e) {
157
- return e === null ? /* @__PURE__ */ (0, g.jsx)("span", {
158
- className: x.null,
159
- children: "null"
160
- }) : typeof e == "string" ? /* @__PURE__ */ (0, g.jsx)("span", {
161
- className: x.string,
162
- children: JSON.stringify(e)
163
- }) : typeof e == "number" ? /* @__PURE__ */ (0, g.jsx)("span", {
164
- className: x.number,
165
- children: String(e)
166
- }) : typeof e == "boolean" ? /* @__PURE__ */ (0, g.jsx)("span", {
167
- className: x.boolean,
168
- children: String(e)
169
- }) : /* @__PURE__ */ (0, g.jsx)("span", {
170
- className: x.string,
171
- children: JSON.stringify(e)
172
- });
173
- }
174
- function C(e) {
175
- return Array.isArray(e) ? `[${e.length}]` : `{${Object.keys(e).length}}`;
176
- }
177
- function w({ label: e, value: t, depth: r, defaultExpanded: i }) {
178
- let o = typeof t == "object" && t && !Array.isArray(t) ? Object.keys(t).length > 0 : Array.isArray(t) ? t.length > 0 : !1, [s, c] = (0, b.useState)(o && (i || r === 0));
179
- if (!o) {
180
- let n = Array.isArray(t) ? "[]" : "{}";
181
- return typeof t == "object" && t ? /* @__PURE__ */ (0, g.jsxs)("div", {
182
- className: "font-mono text-[0.8rem] leading-relaxed",
183
- style: { paddingLeft: r * 12 },
184
- children: [e != null && /* @__PURE__ */ (0, g.jsxs)(g.Fragment, { children: [/* @__PURE__ */ (0, g.jsx)("span", {
185
- className: x.key,
186
- children: JSON.stringify(e)
187
- }), /* @__PURE__ */ (0, g.jsx)("span", {
188
- className: x.punctuation,
189
- children: ": "
190
- })] }), /* @__PURE__ */ (0, g.jsx)("span", {
191
- className: x.punctuation,
192
- children: n
193
- })]
194
- }) : /* @__PURE__ */ (0, g.jsxs)("div", {
195
- className: "font-mono text-[0.8rem] leading-relaxed",
196
- style: { paddingLeft: r * 12 },
197
- children: [e != null && /* @__PURE__ */ (0, g.jsxs)(g.Fragment, { children: [/* @__PURE__ */ (0, g.jsx)("span", {
198
- className: x.key,
199
- children: JSON.stringify(e)
200
- }), /* @__PURE__ */ (0, g.jsx)("span", {
201
- className: x.punctuation,
202
- children: ": "
203
- })] }), S(t)]
204
- });
205
- }
206
- let l = Array.isArray(t) ? t.map((e, t) => [String(t), e]) : Object.entries(t), u = Array.isArray(t), d = u ? "[" : "{", f = u ? "]" : "}";
207
- return /* @__PURE__ */ (0, g.jsxs)("div", {
208
- className: "font-mono text-[0.8rem] leading-relaxed",
209
- children: [/* @__PURE__ */ (0, g.jsxs)("div", {
210
- className: "flex items-start gap-0.5",
211
- style: { paddingLeft: r * 12 },
212
- children: [/* @__PURE__ */ (0, g.jsx)("button", {
213
- type: "button",
214
- "aria-expanded": s,
215
- onClick: () => c((e) => !e),
216
- className: "mt-0.5 inline-flex shrink-0 items-center justify-center rounded-sm text-muted-foreground hover:text-foreground",
217
- children: /* @__PURE__ */ (0, g.jsx)(n, { className: a("h-3.5 w-3.5 transition-transform", s && "rotate-90") })
218
- }), /* @__PURE__ */ (0, g.jsxs)("div", {
219
- className: "min-w-0 flex-1",
220
- children: [
221
- e != null && /* @__PURE__ */ (0, g.jsxs)(g.Fragment, { children: [/* @__PURE__ */ (0, g.jsx)("span", {
222
- className: x.key,
223
- children: JSON.stringify(e)
224
- }), /* @__PURE__ */ (0, g.jsx)("span", {
225
- className: x.punctuation,
226
- children: ": "
227
- })] }),
228
- /* @__PURE__ */ (0, g.jsx)("span", {
229
- className: x.punctuation,
230
- children: d
231
- }),
232
- !s && /* @__PURE__ */ (0, g.jsxs)(g.Fragment, { children: [/* @__PURE__ */ (0, g.jsx)("button", {
233
- type: "button",
234
- onClick: () => c(!0),
235
- className: "mx-1 text-xs text-muted-foreground hover:text-foreground",
236
- children: C(t)
237
- }), /* @__PURE__ */ (0, g.jsx)("span", {
238
- className: x.punctuation,
239
- children: f
240
- })] })
241
- ]
242
- })]
243
- }), s && /* @__PURE__ */ (0, g.jsxs)("div", { children: [l.map(([e, t]) => /* @__PURE__ */ (0, g.jsx)(w, {
244
- label: e,
245
- value: t,
246
- depth: r + 1,
247
- defaultExpanded: i
248
- }, `${r}-${e}`)), /* @__PURE__ */ (0, g.jsx)("div", {
249
- style: { paddingLeft: r * 12 },
250
- children: /* @__PURE__ */ (0, g.jsx)("span", {
251
- className: x.punctuation,
252
- children: f
253
- })
254
- })] })]
255
- });
256
- }
257
- function T({ data: e, defaultExpanded: t = !0, className: n }) {
258
- return /* @__PURE__ */ (0, g.jsx)("div", {
259
- className: a("text-gray-900 dark:text-gray-100 [overflow-wrap:anywhere]", n),
260
- "data-testid": "collapsible-json",
261
- children: /* @__PURE__ */ (0, g.jsx)(w, {
262
- value: e,
263
- depth: 0,
264
- defaultExpanded: t
265
- })
266
- });
267
- }
268
- //#endregion
269
- //#region src/client/components/shared/JSONDisplay.tsx
270
- var E = "font-mono text-[0.8rem] text-gray-900 dark:text-gray-100 whitespace-pre-wrap break-words [overflow-wrap:anywhere]";
271
- function D({ data: e, filename: t, className: n, collapsible: r = !1, defaultExpanded: i = !0, ...a }) {
272
- let c = m(e), l = p(e), u = c.isLarge ? /* @__PURE__ */ (0, g.jsx)("div", {
273
- className: "mb-3 p-3 bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg",
274
- children: /* @__PURE__ */ (0, g.jsxs)("div", {
275
- className: "flex items-center justify-between gap-2",
276
- children: [/* @__PURE__ */ (0, g.jsxs)("div", {
277
- className: "flex-1",
278
- children: [/* @__PURE__ */ (0, g.jsxs)("p", {
279
- className: "text-sm font-medium text-yellow-800 dark:text-yellow-300 mb-1",
280
- children: [
281
- "JSON is too large (",
282
- c.sizeFormatted,
283
- ")"
284
- ]
285
- }), /* @__PURE__ */ (0, g.jsx)("p", {
286
- className: "text-xs text-yellow-700 dark:text-yellow-400",
287
- children: "Showing full structure with truncated values. Download the full JSON file to see complete values."
288
- })]
289
- }), /* @__PURE__ */ (0, g.jsxs)(o, {
290
- variant: "outline",
291
- size: "sm",
292
- onClick: () => {
293
- h(e, t);
294
- },
295
- className: "shrink-0",
296
- children: [/* @__PURE__ */ (0, g.jsx)(s, { className: "h-4 w-4 mr-1" }), "Download"]
297
- })]
298
- })
299
- }) : null;
300
- return r ? /* @__PURE__ */ (0, g.jsxs)("div", {
301
- className: n,
302
- ...a,
303
- children: [u, /* @__PURE__ */ (0, g.jsx)(T, {
304
- data: l,
305
- defaultExpanded: i
306
- })]
307
- }) : c.isLarge ? /* @__PURE__ */ (0, g.jsxs)("div", {
308
- className: n,
309
- ...a,
310
- children: [u, /* @__PURE__ */ (0, g.jsx)("pre", {
311
- className: E,
312
- children: /* @__PURE__ */ (0, g.jsx)("code", { children: y(c.preview) })
313
- })]
314
- }) : /* @__PURE__ */ (0, g.jsx)("div", {
315
- className: n,
316
- ...a,
317
- children: /* @__PURE__ */ (0, g.jsx)("pre", {
318
- className: E,
319
- children: /* @__PURE__ */ (0, g.jsx)("code", { children: y(c.preview) })
320
- })
321
- });
322
- }
323
- //#endregion
324
- export { s as a, l as i, m as n, h as r, D as t };
@@ -1,89 +0,0 @@
1
- import { G as e, a as t, d as n, l as r, n as i, r as a, sr as o, t as s, u as c } from "./input-BCpgLXU1.js";
2
- import { n as l } from "./createLucideIcon-BONxC1L5.js";
3
- import { U as u, t as d } from "./button-CB4uOoUV.js";
4
- import { t as f } from "./refresh-cw-CyvXrS91.js";
5
- //#region src/client/components/ui/kbd.tsx
6
- var p = l();
7
- function m({ className: e, ...t }) {
8
- return /* @__PURE__ */ (0, p.jsx)("kbd", {
9
- "data-slot": "kbd",
10
- className: u("bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none", "[&_svg:not([class*='size-'])]:size-3", "[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10", e),
11
- ...t
12
- });
13
- }
14
- //#endregion
15
- //#region src/client/components/shared/ListTabHeader.tsx
16
- var h = "h-3.5 w-3.5 shrink-0 text-muted-foreground";
17
- function g({ activeTab: l, isSearchExpanded: u, searchQuery: g, primaryTabTitle: _, secondaryTabTitle: v, primaryCount: y, secondaryCount: b, secondaryIcon: x, primaryIcon: S, searchPlaceholder: C = "Search...", onSearchExpand: w, onSearchChange: T, onSearchBlur: E, onTabSwitch: D, searchInputRef: O, primaryTabName: k, onRefresh: A, isRefreshing: j = !1, isScrolled: M = !1 }) {
18
- let N = l === k, P = N ? S : x, F = N ? _ : v;
19
- return /* @__PURE__ */ (0, p.jsxs)("div", {
20
- className: `flex flex-row items-center justify-between gap-2 ${r(M)} ${c}`,
21
- children: [/* @__PURE__ */ (0, p.jsx)("div", {
22
- className: "flex items-center gap-2 flex-1 min-w-0",
23
- children: u ? /* @__PURE__ */ (0, p.jsx)(s, {
24
- ref: O,
25
- placeholder: C,
26
- value: g,
27
- onChange: (e) => T(e.target.value),
28
- onBlur: E,
29
- className: "h-8 border-gray-300 dark:border-zinc-600"
30
- }) : /* @__PURE__ */ (0, p.jsxs)(p.Fragment, { children: [/* @__PURE__ */ (0, p.jsxs)("h2", {
31
- className: `${n} flex items-center gap-1.5`,
32
- children: [/* @__PURE__ */ (0, p.jsx)(P, {
33
- className: h,
34
- "aria-hidden": !0
35
- }), F]
36
- }), N && /* @__PURE__ */ (0, p.jsxs)(p.Fragment, { children: [
37
- /* @__PURE__ */ (0, p.jsx)(o, {
38
- className: "bg-zinc-500/20 text-zinc-600 dark:text-zinc-400 border-transparent",
39
- variant: "outline",
40
- children: y
41
- }),
42
- /* @__PURE__ */ (0, p.jsxs)(i, { children: [/* @__PURE__ */ (0, p.jsx)(t, {
43
- render: /* @__PURE__ */ (0, p.jsx)(d, {
44
- variant: "ghost",
45
- size: "sm",
46
- onClick: w,
47
- className: "h-8 w-8 p-0",
48
- children: /* @__PURE__ */ (0, p.jsx)(e, { className: "h-4 w-4" })
49
- }),
50
- nativeButton: !0
51
- }), /* @__PURE__ */ (0, p.jsxs)(a, {
52
- side: "bottom",
53
- className: "flex gap-2",
54
- children: ["Search", /* @__PURE__ */ (0, p.jsx)(m, { children: "F" })]
55
- })] }),
56
- A && /* @__PURE__ */ (0, p.jsxs)(i, { children: [/* @__PURE__ */ (0, p.jsx)(t, {
57
- render: /* @__PURE__ */ (0, p.jsx)(d, {
58
- variant: "ghost",
59
- size: "sm",
60
- onClick: A,
61
- disabled: j,
62
- className: "h-8 w-8 p-0",
63
- children: /* @__PURE__ */ (0, p.jsx)(f, { className: `h-4 w-4 ${j ? "animate-spin" : ""}` })
64
- }),
65
- nativeButton: !0
66
- }), /* @__PURE__ */ (0, p.jsxs)(a, {
67
- side: "bottom",
68
- className: "flex gap-2",
69
- children: ["Refresh list", /* @__PURE__ */ (0, p.jsx)(m, { children: "R" })]
70
- })] })
71
- ] })] })
72
- }), /* @__PURE__ */ (0, p.jsxs)(d, {
73
- variant: "ghost",
74
- size: "sm",
75
- onClick: D,
76
- className: "gap-2 flex-shrink-0",
77
- children: [/* @__PURE__ */ (0, p.jsx)("span", {
78
- className: "hidden sm:inline",
79
- children: N ? v : _
80
- }), N && b > 0 && /* @__PURE__ */ (0, p.jsx)(o, {
81
- className: "bg-purple-500/20 text-purple-600 dark:text-purple-400 border-transparent",
82
- variant: "outline",
83
- children: b
84
- })]
85
- })]
86
- });
87
- }
88
- //#endregion
89
- export { h as n, m as r, g as t };