@osdk/react-devtools 0.10.0 → 0.10.1-main-e39a72892d538f3130e2cd51cee05d83d11fa493

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 (199) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/esm/DevToolsContext.js.map +1 -1
  3. package/build/esm/components/ActionMetrics.js +2 -2
  4. package/build/esm/components/ActionMetrics.js.map +1 -1
  5. package/build/esm/components/BubbleChart.js +1 -1
  6. package/build/esm/components/BubbleChart.js.map +1 -1
  7. package/build/esm/components/CacheInspectorTab.js +1 -1
  8. package/build/esm/components/CacheInspectorTab.js.map +1 -1
  9. package/build/esm/components/CacheMetrics.js +1 -1
  10. package/build/esm/components/CacheMetrics.js.map +1 -1
  11. package/build/esm/components/ComponentCard.js +1 -1
  12. package/build/esm/components/ComponentCard.js.map +1 -1
  13. package/build/esm/components/ComputeTab.js +6 -6
  14. package/build/esm/components/ComputeTab.js.map +1 -1
  15. package/build/esm/components/CopyableCodeBlock.js.map +1 -1
  16. package/build/esm/components/DebuggingTab.js +2 -2
  17. package/build/esm/components/DebuggingTab.js.map +1 -1
  18. package/build/esm/components/HookRow.js.map +1 -1
  19. package/build/esm/components/ImprovementsTab.js.map +1 -1
  20. package/build/esm/components/InspectorSelectionHeader.js.map +1 -1
  21. package/build/esm/components/InterceptTab.js +5 -5
  22. package/build/esm/components/InterceptTab.js.map +1 -1
  23. package/build/esm/components/IssueCard.js.map +1 -1
  24. package/build/esm/components/LogEntryCard.js.map +1 -1
  25. package/build/esm/components/MockEditor.js.map +1 -1
  26. package/build/esm/components/MonitorErrorBoundary.js.map +1 -1
  27. package/build/esm/components/MonitoringPanel.js +1 -1
  28. package/build/esm/components/MonitoringPanel.js.map +1 -1
  29. package/build/esm/components/ObjectLoadingMetrics.js.map +1 -1
  30. package/build/esm/components/OsdkAppErrorBoundary.js.map +1 -1
  31. package/build/esm/components/OsdkDevTools.js.map +1 -1
  32. package/build/esm/components/OverrideEditor.js.map +1 -1
  33. package/build/esm/components/PerformanceTab.js +8 -8
  34. package/build/esm/components/PerformanceTab.js.map +1 -1
  35. package/build/esm/components/PrimitiveSelectionPanel.js +1 -1
  36. package/build/esm/components/PrimitiveSelectionPanel.js.map +1 -1
  37. package/build/esm/components/resolveComponentName.js +2 -2
  38. package/build/esm/components/resolveComponentName.js.map +1 -1
  39. package/build/esm/components/testHelpers.js.map +1 -1
  40. package/build/esm/fiber/DegradationNotice.js +2 -2
  41. package/build/esm/fiber/DegradationNotice.js.map +1 -1
  42. package/build/esm/fiber/DevtoolsHook.js +4 -4
  43. package/build/esm/fiber/DevtoolsHook.js.map +1 -1
  44. package/build/esm/fiber/FiberAccess.js.map +1 -1
  45. package/build/esm/fiber/FiberInspection.js.map +1 -1
  46. package/build/esm/fiber/FiberTags.js.map +1 -1
  47. package/build/esm/fiber/HookStateInspector.js.map +1 -1
  48. package/build/esm/fiber/SafeFiberOperation.js.map +1 -1
  49. package/build/esm/fiber/capabilities.js.map +1 -1
  50. package/build/esm/fiber/traverseFiber.js.map +1 -1
  51. package/build/esm/fiber/types.js.map +1 -1
  52. package/build/esm/fiber/validation.js +1 -1
  53. package/build/esm/fiber/validation.js.map +1 -1
  54. package/build/esm/hooks/createPollingStore.js.map +1 -1
  55. package/build/esm/hooks/useActiveComponents.js.map +1 -1
  56. package/build/esm/hooks/useComponentRegistry.js.map +1 -1
  57. package/build/esm/hooks/useComputeSelectors.js.map +1 -1
  58. package/build/esm/hooks/useConsoleLogs.js.map +1 -1
  59. package/build/esm/hooks/useInspectorSelection.js.map +1 -1
  60. package/build/esm/hooks/useMetrics.js.map +1 -1
  61. package/build/esm/hooks/usePersistedState.js.map +1 -1
  62. package/build/esm/hooks/useRecommendations.js +1 -1
  63. package/build/esm/hooks/useRecommendations.js.map +1 -1
  64. package/build/esm/hooks/useSharedTick.js.map +1 -1
  65. package/build/esm/hooks/useTimeElapsed.js.map +1 -1
  66. package/build/esm/hooks/useTrackerSubscription.js.map +1 -1
  67. package/build/esm/hooks/useUnusedFieldAnalysis.js.map +1 -1
  68. package/build/esm/inspector/ClickToInspectSystem.js.map +1 -1
  69. package/build/esm/inspector/components/ComponentLabel.js.map +1 -1
  70. package/build/esm/inspector/components/InspectorBanner.js.map +1 -1
  71. package/build/esm/inspector/components/InspectorOverlay.js.map +1 -1
  72. package/build/esm/inspector/components/SelectionHighlight.js.map +1 -1
  73. package/build/esm/inspector/createClickToInspect.js.map +1 -1
  74. package/build/esm/inspector/hooks/useAnimatedBounds.js.map +1 -1
  75. package/build/esm/inspector/inspectorController.js.map +1 -1
  76. package/build/esm/inspector/utils/elementBounds.js.map +1 -1
  77. package/build/esm/inspector/utils/interpolation.js.map +1 -1
  78. package/build/esm/inspector/utils/labelPositioning.js.map +1 -1
  79. package/build/esm/mocking/MockCacheKeyGenerator.js +3 -3
  80. package/build/esm/mocking/MockCacheKeyGenerator.js.map +1 -1
  81. package/build/esm/mocking/MockManager.js +4 -4
  82. package/build/esm/mocking/MockManager.js.map +1 -1
  83. package/build/esm/prototyping/PrototypeOverrideStore.js +1 -1
  84. package/build/esm/prototyping/PrototypeOverrideStore.js.map +1 -1
  85. package/build/esm/register.js.map +1 -1
  86. package/build/esm/store/ComputeStore.js.map +1 -1
  87. package/build/esm/store/ConsoleLogStore.js +2 -2
  88. package/build/esm/store/ConsoleLogStore.js.map +1 -1
  89. package/build/esm/store/MetricsStore.js.map +1 -1
  90. package/build/esm/store/MonitorStore.js.map +1 -1
  91. package/build/esm/store/WindowErrorStore.js.map +1 -1
  92. package/build/esm/styles.js.map +1 -1
  93. package/build/esm/types/compute.js.map +1 -1
  94. package/build/esm/utils/ActionLifecycleTracker.js.map +1 -1
  95. package/build/esm/utils/CacheEfficiencyAnalyzer.js.map +1 -1
  96. package/build/esm/utils/ComponentContextCapture.js +10 -10
  97. package/build/esm/utils/ComponentContextCapture.js.map +1 -1
  98. package/build/esm/utils/ComponentPrimitiveDiscovery.js.map +1 -1
  99. package/build/esm/utils/ComponentQueryRegistry.js +8 -8
  100. package/build/esm/utils/ComponentQueryRegistry.js.map +1 -1
  101. package/build/esm/utils/ComputeMonitor.js +2 -2
  102. package/build/esm/utils/ComputeMonitor.js.map +1 -1
  103. package/build/esm/utils/EventTimeline.js.map +1 -1
  104. package/build/esm/utils/LinkTraversalTracker.js +2 -2
  105. package/build/esm/utils/LinkTraversalTracker.js.map +1 -1
  106. package/build/esm/utils/MockDataGenerator.js +4 -4
  107. package/build/esm/utils/MockDataGenerator.js.map +1 -1
  108. package/build/esm/utils/ObservableClientMonitor.js +2 -2
  109. package/build/esm/utils/ObservableClientMonitor.js.map +1 -1
  110. package/build/esm/utils/PerformanceRecommendationEngine.js +1 -1
  111. package/build/esm/utils/PerformanceRecommendationEngine.js.map +1 -1
  112. package/build/esm/utils/PropertyAccessTracker.js +3 -3
  113. package/build/esm/utils/PropertyAccessTracker.js.map +1 -1
  114. package/build/esm/utils/RecommendationMatcher.js.map +1 -1
  115. package/build/esm/utils/SubscriptionTracker.js +1 -1
  116. package/build/esm/utils/SubscriptionTracker.js.map +1 -1
  117. package/build/esm/utils/UnusedFieldAnalyzer.js +6 -7
  118. package/build/esm/utils/UnusedFieldAnalyzer.js.map +1 -1
  119. package/build/esm/utils/WaterfallDetector.js.map +1 -1
  120. package/build/esm/utils/computePayload.js +2 -2
  121. package/build/esm/utils/computePayload.js.map +1 -1
  122. package/build/esm/utils/computeRequest.js.map +1 -1
  123. package/build/esm/utils/format.js.map +1 -1
  124. package/build/esm/vite/hookInstaller.js.map +1 -1
  125. package/build/esm/vite/index.js +2 -3
  126. package/build/esm/vite/index.js.map +1 -1
  127. package/build/types/DevToolsContext.d.ts.map +1 -1
  128. package/build/types/components/ActionMetrics.d.ts.map +1 -1
  129. package/build/types/components/BubbleChart.d.ts.map +1 -1
  130. package/build/types/components/CacheInspectorTab.d.ts.map +1 -1
  131. package/build/types/components/CacheMetrics.d.ts.map +1 -1
  132. package/build/types/components/ComponentCard.d.ts.map +1 -1
  133. package/build/types/components/ComputeTab.d.ts.map +1 -1
  134. package/build/types/components/CopyableCodeBlock.d.ts.map +1 -1
  135. package/build/types/components/DebuggingTab.d.ts.map +1 -1
  136. package/build/types/components/HookRow.d.ts.map +1 -1
  137. package/build/types/components/ImprovementsTab.d.ts.map +1 -1
  138. package/build/types/components/InspectorSelectionHeader.d.ts.map +1 -1
  139. package/build/types/components/InterceptTab.d.ts.map +1 -1
  140. package/build/types/components/IssueCard.d.ts.map +1 -1
  141. package/build/types/components/LogEntryCard.d.ts.map +1 -1
  142. package/build/types/components/MockEditor.d.ts.map +1 -1
  143. package/build/types/components/MonitorErrorBoundary.d.ts.map +1 -1
  144. package/build/types/components/MonitoringPanel.d.ts.map +1 -1
  145. package/build/types/components/ObjectLoadingMetrics.d.ts.map +1 -1
  146. package/build/types/components/OsdkAppErrorBoundary.d.ts.map +1 -1
  147. package/build/types/components/OsdkDevTools.d.ts.map +1 -1
  148. package/build/types/components/OverrideEditor.d.ts.map +1 -1
  149. package/build/types/components/PerformanceTab.d.ts.map +1 -1
  150. package/build/types/components/PrimitiveSelectionPanel.d.ts.map +1 -1
  151. package/build/types/components/resolveComponentName.d.ts.map +1 -1
  152. package/build/types/components/testHelpers.d.ts.map +1 -1
  153. package/build/types/fiber/DegradationNotice.d.ts.map +1 -1
  154. package/build/types/fiber/DevtoolsHook.d.ts.map +1 -1
  155. package/build/types/fiber/FiberInspection.d.ts.map +1 -1
  156. package/build/types/fiber/HookStateInspector.d.ts.map +1 -1
  157. package/build/types/fiber/capabilities.d.ts.map +1 -1
  158. package/build/types/fiber/traverseFiber.d.ts.map +1 -1
  159. package/build/types/fiber/types.d.ts.map +1 -1
  160. package/build/types/hooks/useActiveComponents.d.ts.map +1 -1
  161. package/build/types/hooks/useComponentRegistry.d.ts.map +1 -1
  162. package/build/types/hooks/useComputeSelectors.d.ts.map +1 -1
  163. package/build/types/hooks/useConsoleLogs.d.ts.map +1 -1
  164. package/build/types/hooks/useInspectorSelection.d.ts.map +1 -1
  165. package/build/types/hooks/useMetrics.d.ts.map +1 -1
  166. package/build/types/hooks/useRecommendations.d.ts.map +1 -1
  167. package/build/types/hooks/useUnusedFieldAnalysis.d.ts.map +1 -1
  168. package/build/types/inspector/ClickToInspectSystem.d.ts.map +1 -1
  169. package/build/types/inspector/components/ComponentLabel.d.ts.map +1 -1
  170. package/build/types/inspector/components/InspectorOverlay.d.ts.map +1 -1
  171. package/build/types/inspector/components/SelectionHighlight.d.ts.map +1 -1
  172. package/build/types/inspector/hooks/useAnimatedBounds.d.ts.map +1 -1
  173. package/build/types/mocking/MockManager.d.ts.map +1 -1
  174. package/build/types/store/ComputeStore.d.ts.map +1 -1
  175. package/build/types/store/ConsoleLogStore.d.ts.map +1 -1
  176. package/build/types/store/MetricsStore.d.ts.map +1 -1
  177. package/build/types/store/MonitorStore.d.ts.map +1 -1
  178. package/build/types/store/WindowErrorStore.d.ts.map +1 -1
  179. package/build/types/styles.d.ts +0 -1
  180. package/build/types/styles.d.ts.map +1 -1
  181. package/build/types/types/compute.d.ts.map +1 -1
  182. package/build/types/utils/ActionLifecycleTracker.d.ts.map +1 -1
  183. package/build/types/utils/CacheEfficiencyAnalyzer.d.ts.map +1 -1
  184. package/build/types/utils/ComponentContextCapture.d.ts.map +1 -1
  185. package/build/types/utils/ComponentPrimitiveDiscovery.d.ts.map +1 -1
  186. package/build/types/utils/ComponentQueryRegistry.d.ts.map +1 -1
  187. package/build/types/utils/ComputeMonitor.d.ts.map +1 -1
  188. package/build/types/utils/EventTimeline.d.ts.map +1 -1
  189. package/build/types/utils/LinkTraversalTracker.d.ts.map +1 -1
  190. package/build/types/utils/MockDataGenerator.d.ts.map +1 -1
  191. package/build/types/utils/ObservableClientMonitor.d.ts.map +1 -1
  192. package/build/types/utils/PerformanceRecommendationEngine.d.ts.map +1 -1
  193. package/build/types/utils/PropertyAccessTracker.d.ts.map +1 -1
  194. package/build/types/utils/SubscriptionTracker.d.ts.map +1 -1
  195. package/build/types/utils/UnusedFieldAnalyzer.d.ts.map +1 -1
  196. package/build/types/utils/WaterfallDetector.d.ts.map +1 -1
  197. package/build/types/utils/computeRequest.d.ts.map +1 -1
  198. package/build/types/vite/index.d.ts.map +1 -1
  199. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"InterceptTab.js","names":["Button","Icon","React","useCallback","useMemo","useReducer","createPollingStore","useInspectorSelection","MockDataGenerator","InspectorSelectionHeader","styles","createMatcherFromPrimitive","createResponseFromConfig","getMockPrimitiveInfo","MockEditor","MockItem","OverrideEditor","OverrideItem","PrimitiveSelectionPanel","lazyJson","then","m","json","jsonExtensionValue","jsonExtensionListeners","Set","jsonExtensionPromise","jsonFn","listener","subscribeJsonExtension","callback","add","delete","getJsonExtensionSnapshot","parseJsonField","text","fieldName","trimmed","trim","value","JSON","parse","error","undefined","DEFAULT_STATIC_DATA","DEFAULT_FUNCTION_CODE","DEFAULT_ERROR_MESSAGE","initialState","selectedPrimitive","mocks","editingMock","mockType","responseType","usePayload","mockPayload","useResponse","staticData","functionCode","errorMessage","selectedQuery","activeOverrides","whereClauseText","orderByText","pageSize","groupByText","selectText","choosingPrimitive","hydrateOverrideFields","params","jsonOrEmpty","val","fallback","stringify","isAggregation","where","groupBy","select","orderBy","interceptReducer","state","action","type","primitive","updater","mock","query","overrides","cfg","config","payload","generateStaticData","generateFunctionCode","generatePayload","InterceptTab","monitorStore","theme","isSelectionActive","discoveredPrimitives","activateSelection","clearDiscoveredPrimitives","dispatch","jsonExtension","useSyncExternalStore","jsonExtensions","overrideStore","getPrototypeOverrideStore","overrideSnapshotRef","useRef","overrideSubscribe","subscribe","overrideGetSnapshot","current","getAll","prev","length","every","o","i","overrideStoreOverrides","mockPollingStore","mockManager","getMockManager","getMocks","polledMocks","getSnapshot","effectiveMocks","map","existingMock","find","item","id","data","name","signature","location","hookIndex","enabled","handleSelectPrimitive","handleChooseMock","handleChooseOverride","componentId","componentName","objectType","hookType","originalParams","whereClause","aggregate","querySignature","handleSaveMock","mockData","message","_jsonError","response","sharedFields","matcher","usedCount","removeMock","mockResponse","registerMock","prevMocks","crypto","randomUUID","delay","err","msg","Error","handleCancelMockEditor","handleToggleMock","mockId","getMock","newEnabled","updateMock","handleDeleteMock","filter","handleEditMock","handleApplyOverride","whereResult","bindingId","overrideParams","groupByResult","selectResult","orderByResult","override","createdAt","Date","now","setOverride","handleToggleOverride","getOverride","updateOverride","handleRemoveOverride","clearOverride","handleEditOverride","handleClearSelection","hasActiveIntercepts","mockPrimitiveInfo","createElement","className","interceptTab","onDismissError","onActivateSelection","infoText","Fragment","activeWarningText","buttonLabel","showHelpTooltip","content","primitives","onSelectPrimitive","onClose","interceptTypeChoice","panelHeader","icon","variant","size","onClick","choiceGrid","choiceCard","choiceTitle","choiceDescription","onSaveMock","onCancel","onApplyOverride","onClearSelection","mainContent","section","sectionTitle","emptyState","emptySubtext","intent","disabled","interceptList","key","onToggle","onDelete","onEdit","onRemove"],"sources":["InterceptTab.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button, Icon } from \"@blueprintjs/core\";\nimport React, { useCallback, useMemo, useReducer } from \"react\";\nimport { createPollingStore } from \"../hooks/createPollingStore.js\";\nimport { useInspectorSelection } from \"../hooks/useInspectorSelection.js\";\nimport type { MockResponse } from \"../mocking/MockManager.js\";\nimport type {\n PrototypeOverride,\n PrototypeOverrideParams,\n} from \"../prototyping/PrototypeOverrideStore.js\";\nimport type { MonitorStore } from \"../store/MonitorStore.js\";\nimport { MockDataGenerator } from \"../utils/MockDataGenerator.js\";\nimport { InspectorSelectionHeader } from \"./InspectorSelectionHeader.js\";\nimport styles from \"./InterceptTab.module.scss\";\nimport {\n createMatcherFromPrimitive,\n createResponseFromConfig,\n getMockPrimitiveInfo,\n MockEditor,\n MockItem,\n} from \"./MockEditor.js\";\nimport { OverrideEditor, OverrideItem } from \"./OverrideEditor.js\";\nimport type { SelectedPrimitive } from \"./PrimitiveSelectionPanel.js\";\nimport { PrimitiveSelectionPanel } from \"./PrimitiveSelectionPanel.js\";\n\nconst lazyJson = () => import(\"@codemirror/lang-json\").then(m => m.json);\n\ntype JsonExtension = ReturnType<Awaited<ReturnType<typeof lazyJson>>>;\nlet jsonExtensionValue: JsonExtension | null = null;\nconst jsonExtensionListeners = new Set<() => void>();\nconst jsonExtensionPromise = lazyJson().then(jsonFn => {\n jsonExtensionValue = jsonFn();\n for (const listener of jsonExtensionListeners) {\n listener();\n }\n});\nvoid jsonExtensionPromise;\n\nfunction subscribeJsonExtension(callback: () => void): () => void {\n jsonExtensionListeners.add(callback);\n return () => {\n jsonExtensionListeners.delete(callback);\n };\n}\n\nfunction getJsonExtensionSnapshot(): JsonExtension | null {\n return jsonExtensionValue;\n}\n\nfunction parseJsonField<T>(\n text: string,\n fieldName: string,\n): { value: T | undefined; error: string | null } {\n try {\n const trimmed = text.trim();\n if (trimmed && trimmed !== \"{}\") {\n return { value: JSON.parse(trimmed) as T, error: null };\n }\n return { value: undefined, error: null };\n } catch {\n return { value: undefined, error: `Invalid JSON in ${fieldName} field` };\n }\n}\n\nexport interface MockConfiguration {\n primitive: SelectedPrimitive;\n mockType: \"static\" | \"function\" | \"passthrough\";\n responseType: \"success\" | \"error\";\n usePayload?: boolean;\n payload?: string;\n useResponse?: boolean;\n staticData?: string;\n functionCode?: string;\n errorMessage?: string;\n enabled: boolean;\n}\n\nexport interface SelectedQuery {\n componentId: string;\n componentName: string;\n objectType: string;\n hookType: string;\n hookIndex: number;\n originalParams: PrototypeOverrideParams;\n querySignature: string;\n isAggregation?: boolean;\n}\n\ntype MockWithConfig = MockResponse & { config: MockConfiguration };\n\ninterface InterceptState {\n selectedPrimitive: SelectedPrimitive | null;\n mocks: Array<MockWithConfig>;\n editingMock: MockWithConfig | null;\n\n mockType: MockConfiguration[\"mockType\"];\n responseType: MockConfiguration[\"responseType\"];\n usePayload: boolean;\n mockPayload: string;\n useResponse: boolean;\n staticData: string;\n functionCode: string;\n errorMessage: string;\n\n selectedQuery: SelectedQuery | null;\n activeOverrides: PrototypeOverride[];\n whereClauseText: string;\n orderByText: string;\n pageSize: number | undefined;\n groupByText: string;\n selectText: string;\n\n choosingPrimitive: SelectedPrimitive | null;\n error: string | null;\n}\n\nconst DEFAULT_STATIC_DATA = \"{\\n \\\"status\\\": \\\"SUCCESS\\\",\\n \\\"data\\\": {}\\n}\";\nconst DEFAULT_FUNCTION_CODE =\n \"function generateMock(params) {\\n return {\\n status: \\\"SUCCESS\\\",\\n data: {}\\n };\\n}\";\nconst DEFAULT_ERROR_MESSAGE = \"Mock request failed\";\n\nconst initialState: InterceptState = {\n selectedPrimitive: null,\n mocks: [],\n editingMock: null,\n\n mockType: \"static\",\n responseType: \"success\",\n usePayload: true,\n mockPayload: \"{}\",\n useResponse: true,\n staticData: DEFAULT_STATIC_DATA,\n functionCode: DEFAULT_FUNCTION_CODE,\n errorMessage: DEFAULT_ERROR_MESSAGE,\n\n selectedQuery: null,\n activeOverrides: [],\n whereClauseText: \"\",\n orderByText: \"\",\n pageSize: undefined,\n groupByText: \"\",\n selectText: \"\",\n\n choosingPrimitive: null,\n error: null,\n};\n\nexport type InterceptAction =\n | { type: \"SET_SELECTED_PRIMITIVE\"; primitive: SelectedPrimitive | null }\n | { type: \"SET_MOCKS\"; mocks: Array<MockWithConfig> }\n | {\n type: \"UPDATE_MOCKS\";\n updater: (prev: Array<MockWithConfig>) => Array<MockWithConfig>;\n }\n | { type: \"SET_EDITING_MOCK\"; mock: MockWithConfig | null }\n | { type: \"SET_MOCK_TYPE\"; mockType: MockConfiguration[\"mockType\"] }\n | {\n type: \"SET_RESPONSE_TYPE\";\n responseType: MockConfiguration[\"responseType\"];\n }\n | { type: \"SET_USE_PAYLOAD\"; usePayload: boolean }\n | { type: \"SET_MOCK_PAYLOAD\"; mockPayload: string }\n | { type: \"SET_USE_RESPONSE\"; useResponse: boolean }\n | { type: \"SET_STATIC_DATA\"; staticData: string }\n | { type: \"SET_FUNCTION_CODE\"; functionCode: string }\n | { type: \"SET_ERROR_MESSAGE\"; errorMessage: string }\n | { type: \"SET_SELECTED_QUERY\"; query: SelectedQuery | null }\n | { type: \"SET_ACTIVE_OVERRIDES\"; overrides: PrototypeOverride[] }\n | { type: \"SET_WHERE_CLAUSE_TEXT\"; text: string }\n | { type: \"SET_ORDER_BY_TEXT\"; text: string }\n | { type: \"SET_PAGE_SIZE\"; pageSize: number | undefined }\n | { type: \"SET_GROUP_BY_TEXT\"; text: string }\n | { type: \"SET_SELECT_TEXT\"; text: string }\n | { type: \"SET_CHOOSING_PRIMITIVE\"; primitive: SelectedPrimitive | null }\n | { type: \"SET_ERROR\"; error: string | null }\n | { type: \"HYDRATE_OVERRIDE_FORM\"; params: HydrateOverrideFormParams }\n | { type: \"INIT_MOCK_FORM_FROM_CONFIG\"; config: MockConfiguration }\n | { type: \"INIT_MOCK_FORM_FROM_PRIMITIVE\"; primitive: SelectedPrimitive }\n | { type: \"SELECT_PRIMITIVE_FOR_MOCK\"; primitive: SelectedPrimitive }\n | { type: \"CANCEL_MOCK_EDITOR\" }\n | { type: \"CLEAR_SELECTION\" }\n | { type: \"SAVE_MOCK_DONE\" };\n\ninterface HydrateOverrideFormParams {\n isAggregation: boolean;\n where?: unknown;\n orderBy?: unknown;\n pageSize?: number;\n groupBy?: unknown;\n select?: unknown;\n}\n\nfunction hydrateOverrideFields(\n params: HydrateOverrideFormParams,\n): Pick<\n InterceptState,\n \"whereClauseText\" | \"orderByText\" | \"pageSize\" | \"groupByText\" | \"selectText\"\n> {\n const jsonOrEmpty = (val: unknown, fallback: string) =>\n val ? JSON.stringify(val, null, 2) : fallback;\n\n if (params.isAggregation) {\n return {\n whereClauseText: jsonOrEmpty(params.where, \"{}\"),\n groupByText: jsonOrEmpty(params.groupBy, \"{}\"),\n selectText: jsonOrEmpty(params.select, \"{}\"),\n orderByText: \"{}\",\n pageSize: undefined,\n };\n }\n\n return {\n whereClauseText: jsonOrEmpty(params.where, \"{}\"),\n orderByText: jsonOrEmpty(params.orderBy, \"{}\"),\n pageSize: params.pageSize,\n groupByText: \"\",\n selectText: \"\",\n };\n}\n\nfunction interceptReducer(\n state: InterceptState,\n action: InterceptAction,\n): InterceptState {\n switch (action.type) {\n case \"SET_SELECTED_PRIMITIVE\":\n return { ...state, selectedPrimitive: action.primitive };\n case \"SET_MOCKS\":\n return { ...state, mocks: action.mocks };\n case \"UPDATE_MOCKS\":\n return { ...state, mocks: action.updater(state.mocks) };\n case \"SET_EDITING_MOCK\":\n return { ...state, editingMock: action.mock };\n case \"SET_MOCK_TYPE\":\n return { ...state, mockType: action.mockType };\n case \"SET_RESPONSE_TYPE\":\n return { ...state, responseType: action.responseType };\n case \"SET_USE_PAYLOAD\":\n return { ...state, usePayload: action.usePayload };\n case \"SET_MOCK_PAYLOAD\":\n return { ...state, mockPayload: action.mockPayload };\n case \"SET_USE_RESPONSE\":\n return { ...state, useResponse: action.useResponse };\n case \"SET_STATIC_DATA\":\n return { ...state, staticData: action.staticData };\n case \"SET_FUNCTION_CODE\":\n return { ...state, functionCode: action.functionCode };\n case \"SET_ERROR_MESSAGE\":\n return { ...state, errorMessage: action.errorMessage };\n case \"SET_SELECTED_QUERY\":\n return { ...state, selectedQuery: action.query };\n case \"SET_ACTIVE_OVERRIDES\":\n return { ...state, activeOverrides: action.overrides };\n case \"SET_WHERE_CLAUSE_TEXT\":\n return { ...state, whereClauseText: action.text };\n case \"SET_ORDER_BY_TEXT\":\n return { ...state, orderByText: action.text };\n case \"SET_PAGE_SIZE\":\n return { ...state, pageSize: action.pageSize };\n case \"SET_GROUP_BY_TEXT\":\n return { ...state, groupByText: action.text };\n case \"SET_SELECT_TEXT\":\n return { ...state, selectText: action.text };\n case \"SET_CHOOSING_PRIMITIVE\":\n return { ...state, choosingPrimitive: action.primitive };\n case \"SET_ERROR\":\n return { ...state, error: action.error };\n case \"HYDRATE_OVERRIDE_FORM\":\n return { ...state, ...hydrateOverrideFields(action.params) };\n case \"INIT_MOCK_FORM_FROM_CONFIG\": {\n const cfg = action.config;\n return {\n ...state,\n mockType: cfg.mockType,\n responseType: cfg.responseType,\n usePayload: cfg.usePayload ?? false,\n mockPayload: cfg.payload || \"{}\",\n useResponse: cfg.useResponse ?? false,\n staticData: cfg.staticData || DEFAULT_STATIC_DATA,\n functionCode: cfg.functionCode || DEFAULT_FUNCTION_CODE,\n errorMessage: cfg.errorMessage || DEFAULT_ERROR_MESSAGE,\n };\n }\n case \"INIT_MOCK_FORM_FROM_PRIMITIVE\":\n return {\n ...state,\n staticData: MockDataGenerator.generateStaticData(action.primitive),\n functionCode: MockDataGenerator.generateFunctionCode(action.primitive),\n mockPayload: MockDataGenerator.generatePayload(action.primitive),\n mockType: \"static\",\n responseType: \"success\",\n usePayload: true,\n useResponse: true,\n errorMessage: DEFAULT_ERROR_MESSAGE,\n };\n case \"SELECT_PRIMITIVE_FOR_MOCK\":\n return {\n ...state,\n selectedPrimitive: action.primitive,\n editingMock: null,\n };\n case \"CANCEL_MOCK_EDITOR\":\n return {\n ...state,\n selectedPrimitive: null,\n editingMock: null,\n };\n case \"CLEAR_SELECTION\":\n return {\n ...state,\n selectedQuery: null,\n choosingPrimitive: null,\n error: null,\n };\n case \"SAVE_MOCK_DONE\":\n return {\n ...state,\n selectedPrimitive: null,\n editingMock: null,\n };\n }\n}\n\nexport interface InterceptTabProps {\n monitorStore: MonitorStore;\n theme?: \"light\" | \"dark\";\n}\n\nexport const InterceptTab: React.FC<InterceptTabProps> = ({\n monitorStore,\n theme,\n}) => {\n const {\n isSelectionActive,\n discoveredPrimitives,\n activateSelection,\n clearDiscoveredPrimitives,\n } = useInspectorSelection(monitorStore);\n\n const [state, dispatch] = useReducer(interceptReducer, initialState);\n\n const {\n selectedPrimitive,\n mocks,\n editingMock,\n mockType,\n responseType,\n usePayload,\n mockPayload,\n useResponse,\n staticData,\n functionCode,\n errorMessage,\n selectedQuery,\n activeOverrides,\n whereClauseText,\n orderByText,\n pageSize,\n groupByText,\n selectText,\n choosingPrimitive,\n error,\n } = state;\n\n const jsonExtension = React.useSyncExternalStore(\n subscribeJsonExtension,\n getJsonExtensionSnapshot,\n );\n const jsonExtensions = useMemo(\n () => (jsonExtension ? [jsonExtension] : []),\n [jsonExtension],\n );\n\n const overrideStore = monitorStore.getPrototypeOverrideStore();\n\n const overrideSnapshotRef = React.useRef<PrototypeOverride[]>([]);\n const overrideSubscribe = useCallback(\n (callback: () => void) => overrideStore.subscribe(callback),\n [overrideStore],\n );\n const overrideGetSnapshot = useCallback(\n (): PrototypeOverride[] => {\n const current = overrideStore.getAll();\n const prev = overrideSnapshotRef.current;\n if (\n prev.length === current.length\n && prev.every((o, i) => o === current[i])\n ) {\n return prev;\n }\n overrideSnapshotRef.current = current;\n return current;\n },\n [overrideStore],\n );\n const overrideStoreOverrides = React.useSyncExternalStore(\n overrideSubscribe,\n overrideGetSnapshot,\n );\n\n const mockPollingStore = React.useMemo(\n () => {\n const mockManager = monitorStore.getMockManager();\n return createPollingStore(() => mockManager.getMocks(), 1000);\n },\n [monitorStore],\n );\n const polledMocks = React.useSyncExternalStore(\n mockPollingStore.subscribe,\n mockPollingStore.getSnapshot,\n );\n\n const effectiveMocks: Array<MockWithConfig> = useMemo(() => {\n if (!polledMocks || polledMocks.length === 0) {\n return mocks;\n }\n return polledMocks.map(m => {\n const existingMock = mocks.find(item => item.id === m.id);\n if (existingMock?.config) {\n return { ...m, config: existingMock.config };\n }\n return {\n ...m,\n config: {\n primitive: {\n type: \"action\" as const,\n data: {\n name: \"unknown\",\n signature: \"\",\n location: \"\",\n hookIndex: 0,\n },\n },\n mockType: \"static\" as const,\n responseType: \"success\" as const,\n enabled: m.enabled,\n },\n };\n });\n }, [polledMocks, mocks]);\n\n const handleSelectPrimitive = useCallback((primitive: SelectedPrimitive) => {\n if (primitive.type === \"objectSet\" || primitive.type === \"aggregation\") {\n dispatch({ type: \"SET_CHOOSING_PRIMITIVE\", primitive });\n } else {\n dispatch({ type: \"SELECT_PRIMITIVE_FOR_MOCK\", primitive });\n dispatch({ type: \"INIT_MOCK_FORM_FROM_PRIMITIVE\", primitive });\n }\n }, []);\n\n const handleChooseMock = useCallback(() => {\n if (!choosingPrimitive) {\n return;\n }\n dispatch({\n type: \"SELECT_PRIMITIVE_FOR_MOCK\",\n primitive: choosingPrimitive,\n });\n dispatch({\n type: \"INIT_MOCK_FORM_FROM_PRIMITIVE\",\n primitive: choosingPrimitive,\n });\n dispatch({ type: \"SET_CHOOSING_PRIMITIVE\", primitive: null });\n }, [choosingPrimitive]);\n\n const handleChooseOverride = useCallback(() => {\n if (!choosingPrimitive || !discoveredPrimitives) {\n return;\n }\n\n if (choosingPrimitive.type === \"aggregation\") {\n const data = choosingPrimitive.data;\n dispatch({\n type: \"SET_SELECTED_QUERY\",\n query: {\n componentId: discoveredPrimitives.componentId,\n componentName: discoveredPrimitives.componentName,\n objectType: data.type,\n hookType: \"useOsdkAggregation\",\n hookIndex: data.hookIndex,\n originalParams: {\n where: data.whereClause,\n groupBy: data.aggregate?.groupBy as\n | Record<string, unknown>\n | undefined,\n select: data.aggregate?.select as\n | Record<string, unknown>\n | undefined,\n },\n querySignature: data.querySignature,\n isAggregation: true,\n },\n });\n\n dispatch({\n type: \"HYDRATE_OVERRIDE_FORM\",\n params: {\n isAggregation: true,\n where: data.whereClause,\n groupBy: data.aggregate?.groupBy,\n select: data.aggregate?.select,\n },\n });\n } else if (choosingPrimitive.type === \"objectSet\") {\n const data = choosingPrimitive.data;\n dispatch({\n type: \"SET_SELECTED_QUERY\",\n query: {\n componentId: discoveredPrimitives.componentId,\n componentName: discoveredPrimitives.componentName,\n objectType: data.type,\n hookType: \"useOsdkObjects\",\n hookIndex: data.hookIndex,\n originalParams: {\n where: data.whereClause,\n orderBy: data.orderBy,\n pageSize: data.pageSize,\n },\n querySignature: data.querySignature,\n isAggregation: false,\n },\n });\n\n dispatch({\n type: \"HYDRATE_OVERRIDE_FORM\",\n params: {\n isAggregation: false,\n where: data.whereClause,\n orderBy: data.orderBy,\n pageSize: data.pageSize,\n },\n });\n }\n\n dispatch({ type: \"SET_CHOOSING_PRIMITIVE\", primitive: null });\n clearDiscoveredPrimitives();\n dispatch({ type: \"SET_ERROR\", error: null });\n }, [choosingPrimitive, discoveredPrimitives, clearDiscoveredPrimitives]);\n\n const handleSaveMock = useCallback(() => {\n if (!selectedPrimitive) {\n return;\n }\n\n const mockManager = monitorStore.getMockManager();\n\n dispatch({ type: \"SET_ERROR\", error: null });\n\n try {\n if (!selectedPrimitive.type || !selectedPrimitive.data) {\n dispatch({\n type: \"SET_ERROR\",\n error:\n \"Invalid primitive structure. Please try selecting the component again.\",\n });\n return;\n }\n\n const config: MockConfiguration = {\n primitive: selectedPrimitive,\n mockType,\n responseType,\n usePayload: selectedPrimitive.type === \"action\"\n ? usePayload\n : undefined,\n payload: selectedPrimitive.type === \"action\" && usePayload\n ? mockPayload\n : undefined,\n useResponse,\n staticData: mockType === \"static\" && useResponse\n ? staticData\n : undefined,\n functionCode: mockType === \"function\" && useResponse\n ? functionCode\n : undefined,\n errorMessage: responseType === \"error\" && useResponse\n ? errorMessage\n : undefined,\n enabled: true,\n };\n\n let mockData: unknown;\n if (!useResponse) {\n mockData = null;\n } else if (responseType === \"error\") {\n mockData = {\n error: true,\n message: errorMessage || DEFAULT_ERROR_MESSAGE,\n };\n } else if (mockType === \"static\" && staticData) {\n try {\n mockData = JSON.parse(staticData);\n } catch (_jsonError) {\n dispatch({\n type: \"SET_ERROR\",\n error: \"Invalid JSON in mock data. Please check your JSON syntax.\",\n });\n return;\n }\n }\n\n const response = !useResponse\n ? { type: \"passthrough\" as const }\n : responseType === \"error\"\n ? {\n type: \"error\" as const,\n error: errorMessage || DEFAULT_ERROR_MESSAGE,\n }\n : createResponseFromConfig(selectedPrimitive, mockData);\n\n const sharedFields = {\n matcher: createMatcherFromPrimitive(selectedPrimitive),\n response,\n enabled: config.enabled,\n usePayload: config.usePayload,\n payload: config.payload,\n usedCount: 0,\n };\n\n if (editingMock) {\n mockManager.removeMock(editingMock.id);\n const mockResponse: MockResponse = { ...editingMock, ...sharedFields };\n const id = mockManager.registerMock(mockResponse);\n dispatch({\n type: \"UPDATE_MOCKS\",\n updater: (prevMocks) =>\n prevMocks.map(m =>\n m.id === editingMock.id ? { ...mockResponse, config, id } : m\n ),\n });\n } else {\n const mockResponse: MockResponse = {\n id: crypto.randomUUID(),\n type: selectedPrimitive.type === \"action\"\n ? \"action\"\n : selectedPrimitive.type === \"objectSet\"\n || selectedPrimitive.type === \"link\"\n || selectedPrimitive.type === \"aggregation\"\n ? \"list\"\n : \"object\",\n delay: 0,\n ...sharedFields,\n };\n const id = mockManager.registerMock(mockResponse);\n dispatch({\n type: \"UPDATE_MOCKS\",\n updater: (\n prevMocks,\n ) => [...prevMocks, { ...mockResponse, config, id }],\n });\n }\n\n dispatch({ type: \"SAVE_MOCK_DONE\" });\n clearDiscoveredPrimitives();\n } catch (err) {\n const msg = err instanceof Error ? err.message : \"Unknown error\";\n dispatch({ type: \"SET_ERROR\", error: `Failed to save mock: ${msg}` });\n }\n }, [\n selectedPrimitive,\n editingMock,\n mockType,\n responseType,\n usePayload,\n mockPayload,\n useResponse,\n staticData,\n functionCode,\n errorMessage,\n monitorStore,\n clearDiscoveredPrimitives,\n ]);\n\n const handleCancelMockEditor = useCallback(() => {\n dispatch({ type: \"CANCEL_MOCK_EDITOR\" });\n }, []);\n\n const handleToggleMock = useCallback((mockId: string) => {\n const mockManager = monitorStore.getMockManager();\n const mock = mockManager.getMock(mockId);\n if (mock) {\n const newEnabled = !mock.enabled;\n mockManager.updateMock(mockId, { enabled: newEnabled });\n dispatch({\n type: \"UPDATE_MOCKS\",\n updater: (prevMocks) =>\n prevMocks.map(m =>\n m.id === mockId ? { ...m, enabled: newEnabled } : m\n ),\n });\n }\n }, [monitorStore]);\n\n const handleDeleteMock = useCallback((mockId: string) => {\n const mockManager = monitorStore.getMockManager();\n mockManager.removeMock(mockId);\n dispatch({\n type: \"UPDATE_MOCKS\",\n updater: (prevMocks) => prevMocks.filter(m => m.id !== mockId),\n });\n }, [monitorStore]);\n\n const handleEditMock = useCallback((\n mock: MockWithConfig,\n ) => {\n dispatch({ type: \"SET_EDITING_MOCK\", mock });\n dispatch({\n type: \"SET_SELECTED_PRIMITIVE\",\n primitive: mock.config.primitive,\n });\n dispatch({\n type: \"INIT_MOCK_FORM_FROM_CONFIG\",\n config: mock.config,\n });\n }, []);\n\n const handleApplyOverride = useCallback(() => {\n if (!selectedQuery) {\n return;\n }\n\n dispatch({ type: \"SET_ERROR\", error: null });\n\n const whereResult = parseJsonField<Record<string, unknown>>(\n whereClauseText,\n \"Where Clause\",\n );\n if (whereResult.error) {\n dispatch({ type: \"SET_ERROR\", error: whereResult.error });\n return;\n }\n\n const bindingId = `${selectedQuery.componentId}:${selectedQuery.hookIndex}`;\n\n let overrideParams: PrototypeOverrideParams;\n\n if (selectedQuery.isAggregation) {\n const groupByResult = parseJsonField<Record<string, unknown>>(\n groupByText,\n \"Group By\",\n );\n if (groupByResult.error) {\n dispatch({ type: \"SET_ERROR\", error: groupByResult.error });\n return;\n }\n\n const selectResult = parseJsonField<Record<string, unknown>>(\n selectText,\n \"Select\",\n );\n if (selectResult.error) {\n dispatch({ type: \"SET_ERROR\", error: selectResult.error });\n return;\n }\n\n overrideParams = {\n where: whereResult.value,\n groupBy: groupByResult.value,\n select: selectResult.value,\n };\n } else {\n const orderByResult = parseJsonField<Record<string, \"asc\" | \"desc\">>(\n orderByText,\n \"Order By\",\n );\n if (orderByResult.error) {\n dispatch({ type: \"SET_ERROR\", error: orderByResult.error });\n return;\n }\n\n overrideParams = {\n where: whereResult.value,\n orderBy: orderByResult.value,\n pageSize,\n };\n }\n\n const override: PrototypeOverride = {\n bindingId,\n componentId: selectedQuery.componentId,\n componentName: selectedQuery.componentName,\n hookType: selectedQuery.hookType,\n hookIndex: selectedQuery.hookIndex,\n objectType: selectedQuery.objectType,\n querySignature: selectedQuery.querySignature,\n originalParams: selectedQuery.originalParams,\n overrideParams,\n enabled: true,\n createdAt: Date.now(),\n };\n\n overrideStore.setOverride(override);\n dispatch({ type: \"SET_SELECTED_QUERY\", query: null });\n }, [\n selectedQuery,\n whereClauseText,\n orderByText,\n pageSize,\n groupByText,\n selectText,\n overrideStore,\n ]);\n\n const handleToggleOverride = useCallback(\n (bindingId: string) => {\n const override = overrideStore.getOverride(bindingId);\n if (override) {\n overrideStore.updateOverride(bindingId, { enabled: !override.enabled });\n }\n },\n [overrideStore],\n );\n\n const handleRemoveOverride = useCallback(\n (bindingId: string) => {\n overrideStore.clearOverride(bindingId);\n },\n [overrideStore],\n );\n\n const handleEditOverride = useCallback(\n (override: PrototypeOverride) => {\n const isAggregation = override.hookType === \"useOsdkAggregation\";\n\n dispatch({\n type: \"SET_SELECTED_QUERY\",\n query: {\n componentId: override.componentId,\n componentName: override.componentName,\n objectType: override.objectType,\n hookType: override.hookType,\n hookIndex: override.hookIndex,\n originalParams: override.originalParams,\n querySignature: override.querySignature,\n isAggregation,\n },\n });\n\n dispatch({\n type: \"HYDRATE_OVERRIDE_FORM\",\n params: {\n isAggregation,\n where: override.overrideParams.where,\n orderBy: override.overrideParams.orderBy,\n pageSize: override.overrideParams.pageSize,\n groupBy: override.overrideParams.groupBy,\n select: override.overrideParams.select,\n },\n });\n dispatch({ type: \"SET_ERROR\", error: null });\n },\n [],\n );\n\n const handleClearSelection = useCallback(() => {\n dispatch({ type: \"CLEAR_SELECTION\" });\n clearDiscoveredPrimitives();\n }, [clearDiscoveredPrimitives]);\n\n const hasActiveIntercepts = effectiveMocks.length > 0\n || overrideStoreOverrides.length > 0;\n const isShowingList = !discoveredPrimitives && !choosingPrimitive\n && !selectedQuery && !selectedPrimitive;\n\n const mockPrimitiveInfo = useMemo(() => {\n if (!selectedPrimitive) {\n return null;\n }\n return getMockPrimitiveInfo(selectedPrimitive);\n }, [selectedPrimitive]);\n\n return (\n <div className={styles.interceptTab}>\n <InspectorSelectionHeader\n error={error}\n onDismissError={() => dispatch({ type: \"SET_ERROR\", error: null })}\n isSelectionActive={isSelectionActive}\n onActivateSelection={activateSelection}\n infoText={\n <>\n <strong>Intercept:</strong>{\" \"}\n Select a component to mock responses or override query parameters.\n </>\n }\n activeWarningText=\"Selection mode is active. Click on any component to discover its OSDK usage.\"\n buttonLabel=\"Select Component\"\n showHelpTooltip={true}\n />\n\n <div className={styles.content}>\n {discoveredPrimitives && !choosingPrimitive && !selectedPrimitive && (\n <PrimitiveSelectionPanel\n primitives={discoveredPrimitives}\n onSelectPrimitive={handleSelectPrimitive}\n onClose={clearDiscoveredPrimitives}\n />\n )}\n\n {choosingPrimitive && (\n <div className={styles.interceptTypeChoice}>\n <div className={styles.panelHeader}>\n <Icon icon=\"fork\" />\n <span>How do you want to intercept?</span>\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon=\"cross\"\n aria-label=\"Cancel\"\n onClick={handleClearSelection}\n />\n </div>\n <div className={styles.choiceGrid}>\n <button\n type=\"button\"\n className={styles.choiceCard}\n onClick={handleChooseMock}\n >\n <Icon icon=\"shield\" size={24} />\n <div className={styles.choiceTitle}>Mock Response</div>\n <div className={styles.choiceDescription}>\n Replace the response data with static or dynamic mock data\n </div>\n </button>\n <button\n type=\"button\"\n className={styles.choiceCard}\n onClick={handleChooseOverride}\n >\n <Icon icon=\"edit\" size={24} />\n <div className={styles.choiceTitle}>Override Query</div>\n <div className={styles.choiceDescription}>\n Edit where, orderBy, pageSize, or aggregation params in\n real-time\n </div>\n </button>\n </div>\n </div>\n )}\n\n {selectedPrimitive && (\n <MockEditor\n selectedPrimitive={selectedPrimitive}\n editingMock={editingMock}\n mockType={mockType}\n responseType={responseType}\n usePayload={usePayload}\n mockPayload={mockPayload}\n useResponse={useResponse}\n staticData={staticData}\n functionCode={functionCode}\n errorMessage={errorMessage}\n dispatch={dispatch}\n mockPrimitiveInfo={mockPrimitiveInfo}\n onSaveMock={handleSaveMock}\n onCancel={handleCancelMockEditor}\n />\n )}\n\n {selectedQuery && (\n <OverrideEditor\n selectedQuery={selectedQuery}\n whereClauseText={whereClauseText}\n orderByText={orderByText}\n pageSize={pageSize}\n groupByText={groupByText}\n selectText={selectText}\n jsonExtensions={jsonExtensions}\n theme={theme ?? \"dark\"}\n dispatch={dispatch}\n onApplyOverride={handleApplyOverride}\n onClearSelection={handleClearSelection}\n />\n )}\n\n {isShowingList && (\n <div className={styles.mainContent}>\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>\n <Icon icon=\"shield\" />\n Active Intercepts\n </h3>\n\n {!hasActiveIntercepts\n ? (\n <div className={styles.emptyState}>\n <Icon icon=\"search\" size={40} />\n <div>No active intercepts</div>\n <div className={styles.emptySubtext}>\n Select a component to mock responses or override query\n parameters\n </div>\n <Button\n intent=\"primary\"\n icon=\"style\"\n onClick={activateSelection}\n disabled={isSelectionActive}\n >\n Select Component\n </Button>\n </div>\n )\n : (\n <div className={styles.interceptList}>\n {effectiveMocks.map((mock) => (\n <MockItem\n key={`mock-${mock.id}`}\n mock={mock}\n onToggle={() => handleToggleMock(mock.id)}\n onDelete={() => handleDeleteMock(mock.id)}\n onEdit={() => handleEditMock(mock)}\n />\n ))}\n {overrideStoreOverrides.map((override) => (\n <OverrideItem\n key={`override-${override.bindingId}`}\n override={override}\n onToggle={() =>\n handleToggleOverride(override.bindingId)}\n onRemove={() =>\n handleRemoveOverride(override.bindingId)}\n onEdit={() => handleEditOverride(override)}\n />\n ))}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InterceptTab.js","names":["Button","Icon","React","useCallback","useMemo","useReducer","createPollingStore","useInspectorSelection","MockDataGenerator","InspectorSelectionHeader","createMatcherFromPrimitive","createResponseFromConfig","getMockPrimitiveInfo","MockEditor","MockItem","OverrideEditor","OverrideItem","PrimitiveSelectionPanel","styles","lazyJson","then","m","json","jsonExtensionValue","jsonExtensionListeners","Set","jsonExtensionPromise","jsonFn","listener","subscribeJsonExtension","callback","add","delete","getJsonExtensionSnapshot","parseJsonField","text","fieldName","trimmed","trim","value","JSON","parse","error","undefined","DEFAULT_STATIC_DATA","DEFAULT_FUNCTION_CODE","DEFAULT_ERROR_MESSAGE","initialState","selectedPrimitive","mocks","editingMock","mockType","responseType","usePayload","mockPayload","useResponse","staticData","functionCode","errorMessage","selectedQuery","activeOverrides","whereClauseText","orderByText","pageSize","groupByText","selectText","choosingPrimitive","hydrateOverrideFields","params","jsonOrEmpty","val","fallback","stringify","isAggregation","where","groupBy","select","orderBy","interceptReducer","state","action","type","primitive","updater","mock","query","overrides","cfg","config","payload","generateStaticData","generateFunctionCode","generatePayload","InterceptTab","monitorStore","theme","isSelectionActive","discoveredPrimitives","activateSelection","clearDiscoveredPrimitives","dispatch","jsonExtension","useSyncExternalStore","jsonExtensions","overrideStore","getPrototypeOverrideStore","overrideSnapshotRef","useRef","overrideSubscribe","subscribe","overrideGetSnapshot","current","getAll","prev","length","every","o","i","overrideStoreOverrides","mockPollingStore","mockManager","getMockManager","getMocks","polledMocks","getSnapshot","effectiveMocks","map","existingMock","find","item","id","data","name","signature","location","hookIndex","enabled","handleSelectPrimitive","handleChooseMock","handleChooseOverride","componentId","componentName","objectType","hookType","originalParams","whereClause","aggregate","querySignature","handleSaveMock","mockData","message","response","sharedFields","matcher","usedCount","removeMock","mockResponse","registerMock","prevMocks","crypto","randomUUID","delay","err","msg","Error","handleCancelMockEditor","handleToggleMock","mockId","getMock","newEnabled","updateMock","handleDeleteMock","filter","handleEditMock","handleApplyOverride","whereResult","bindingId","overrideParams","groupByResult","selectResult","orderByResult","override","createdAt","Date","now","setOverride","handleToggleOverride","getOverride","updateOverride","handleRemoveOverride","clearOverride","handleEditOverride","handleClearSelection","hasActiveIntercepts","mockPrimitiveInfo","createElement","className","interceptTab","onDismissError","onActivateSelection","infoText","Fragment","activeWarningText","buttonLabel","showHelpTooltip","content","primitives","onSelectPrimitive","onClose","interceptTypeChoice","panelHeader","icon","variant","size","onClick","choiceGrid","choiceCard","choiceTitle","choiceDescription","onSaveMock","onCancel","onApplyOverride","onClearSelection","mainContent","section","sectionTitle","emptyState","emptySubtext","intent","disabled","interceptList","key","onToggle","onDelete","onEdit","onRemove"],"sources":["InterceptTab.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button, Icon } from \"@blueprintjs/core\";\nimport React, { useCallback, useMemo, useReducer } from \"react\";\n\nimport { createPollingStore } from \"../hooks/createPollingStore.js\";\nimport { useInspectorSelection } from \"../hooks/useInspectorSelection.js\";\nimport type { MockResponse } from \"../mocking/MockManager.js\";\nimport type {\n PrototypeOverride,\n PrototypeOverrideParams,\n} from \"../prototyping/PrototypeOverrideStore.js\";\nimport type { MonitorStore } from \"../store/MonitorStore.js\";\nimport { MockDataGenerator } from \"../utils/MockDataGenerator.js\";\nimport { InspectorSelectionHeader } from \"./InspectorSelectionHeader.js\";\nimport {\n createMatcherFromPrimitive,\n createResponseFromConfig,\n getMockPrimitiveInfo,\n MockEditor,\n MockItem,\n} from \"./MockEditor.js\";\nimport { OverrideEditor, OverrideItem } from \"./OverrideEditor.js\";\nimport type { SelectedPrimitive } from \"./PrimitiveSelectionPanel.js\";\nimport { PrimitiveSelectionPanel } from \"./PrimitiveSelectionPanel.js\";\n\nimport styles from \"./InterceptTab.module.scss\";\n\nconst lazyJson = () => import(\"@codemirror/lang-json\").then((m) => m.json);\n\ntype JsonExtension = ReturnType<Awaited<ReturnType<typeof lazyJson>>>;\nlet jsonExtensionValue: JsonExtension | null = null;\nconst jsonExtensionListeners = new Set<() => void>();\nconst jsonExtensionPromise = lazyJson().then((jsonFn) => {\n jsonExtensionValue = jsonFn();\n for (const listener of jsonExtensionListeners) {\n listener();\n }\n});\nvoid jsonExtensionPromise;\n\nfunction subscribeJsonExtension(callback: () => void): () => void {\n jsonExtensionListeners.add(callback);\n return () => {\n jsonExtensionListeners.delete(callback);\n };\n}\n\nfunction getJsonExtensionSnapshot(): JsonExtension | null {\n return jsonExtensionValue;\n}\n\nfunction parseJsonField<T>(\n text: string,\n fieldName: string\n): { value: T | undefined; error: string | null } {\n try {\n const trimmed = text.trim();\n if (trimmed && trimmed !== \"{}\") {\n return { value: JSON.parse(trimmed) as T, error: null };\n }\n return { value: undefined, error: null };\n } catch {\n return { value: undefined, error: `Invalid JSON in ${fieldName} field` };\n }\n}\n\nexport interface MockConfiguration {\n primitive: SelectedPrimitive;\n mockType: \"static\" | \"function\" | \"passthrough\";\n responseType: \"success\" | \"error\";\n usePayload?: boolean;\n payload?: string;\n useResponse?: boolean;\n staticData?: string;\n functionCode?: string;\n errorMessage?: string;\n enabled: boolean;\n}\n\nexport interface SelectedQuery {\n componentId: string;\n componentName: string;\n objectType: string;\n hookType: string;\n hookIndex: number;\n originalParams: PrototypeOverrideParams;\n querySignature: string;\n isAggregation?: boolean;\n}\n\ntype MockWithConfig = MockResponse & { config: MockConfiguration };\n\ninterface InterceptState {\n selectedPrimitive: SelectedPrimitive | null;\n mocks: Array<MockWithConfig>;\n editingMock: MockWithConfig | null;\n\n mockType: MockConfiguration[\"mockType\"];\n responseType: MockConfiguration[\"responseType\"];\n usePayload: boolean;\n mockPayload: string;\n useResponse: boolean;\n staticData: string;\n functionCode: string;\n errorMessage: string;\n\n selectedQuery: SelectedQuery | null;\n activeOverrides: PrototypeOverride[];\n whereClauseText: string;\n orderByText: string;\n pageSize: number | undefined;\n groupByText: string;\n selectText: string;\n\n choosingPrimitive: SelectedPrimitive | null;\n error: string | null;\n}\n\nconst DEFAULT_STATIC_DATA = '{\\n \"status\": \"SUCCESS\",\\n \"data\": {}\\n}';\nconst DEFAULT_FUNCTION_CODE =\n 'function generateMock(params) {\\n return {\\n status: \"SUCCESS\",\\n data: {}\\n };\\n}';\nconst DEFAULT_ERROR_MESSAGE = \"Mock request failed\";\n\nconst initialState: InterceptState = {\n selectedPrimitive: null,\n mocks: [],\n editingMock: null,\n\n mockType: \"static\",\n responseType: \"success\",\n usePayload: true,\n mockPayload: \"{}\",\n useResponse: true,\n staticData: DEFAULT_STATIC_DATA,\n functionCode: DEFAULT_FUNCTION_CODE,\n errorMessage: DEFAULT_ERROR_MESSAGE,\n\n selectedQuery: null,\n activeOverrides: [],\n whereClauseText: \"\",\n orderByText: \"\",\n pageSize: undefined,\n groupByText: \"\",\n selectText: \"\",\n\n choosingPrimitive: null,\n error: null,\n};\n\nexport type InterceptAction =\n | { type: \"SET_SELECTED_PRIMITIVE\"; primitive: SelectedPrimitive | null }\n | { type: \"SET_MOCKS\"; mocks: Array<MockWithConfig> }\n | {\n type: \"UPDATE_MOCKS\";\n updater: (prev: Array<MockWithConfig>) => Array<MockWithConfig>;\n }\n | { type: \"SET_EDITING_MOCK\"; mock: MockWithConfig | null }\n | { type: \"SET_MOCK_TYPE\"; mockType: MockConfiguration[\"mockType\"] }\n | {\n type: \"SET_RESPONSE_TYPE\";\n responseType: MockConfiguration[\"responseType\"];\n }\n | { type: \"SET_USE_PAYLOAD\"; usePayload: boolean }\n | { type: \"SET_MOCK_PAYLOAD\"; mockPayload: string }\n | { type: \"SET_USE_RESPONSE\"; useResponse: boolean }\n | { type: \"SET_STATIC_DATA\"; staticData: string }\n | { type: \"SET_FUNCTION_CODE\"; functionCode: string }\n | { type: \"SET_ERROR_MESSAGE\"; errorMessage: string }\n | { type: \"SET_SELECTED_QUERY\"; query: SelectedQuery | null }\n | { type: \"SET_ACTIVE_OVERRIDES\"; overrides: PrototypeOverride[] }\n | { type: \"SET_WHERE_CLAUSE_TEXT\"; text: string }\n | { type: \"SET_ORDER_BY_TEXT\"; text: string }\n | { type: \"SET_PAGE_SIZE\"; pageSize: number | undefined }\n | { type: \"SET_GROUP_BY_TEXT\"; text: string }\n | { type: \"SET_SELECT_TEXT\"; text: string }\n | { type: \"SET_CHOOSING_PRIMITIVE\"; primitive: SelectedPrimitive | null }\n | { type: \"SET_ERROR\"; error: string | null }\n | { type: \"HYDRATE_OVERRIDE_FORM\"; params: HydrateOverrideFormParams }\n | { type: \"INIT_MOCK_FORM_FROM_CONFIG\"; config: MockConfiguration }\n | { type: \"INIT_MOCK_FORM_FROM_PRIMITIVE\"; primitive: SelectedPrimitive }\n | { type: \"SELECT_PRIMITIVE_FOR_MOCK\"; primitive: SelectedPrimitive }\n | { type: \"CANCEL_MOCK_EDITOR\" }\n | { type: \"CLEAR_SELECTION\" }\n | { type: \"SAVE_MOCK_DONE\" };\n\ninterface HydrateOverrideFormParams {\n isAggregation: boolean;\n where?: unknown;\n orderBy?: unknown;\n pageSize?: number;\n groupBy?: unknown;\n select?: unknown;\n}\n\nfunction hydrateOverrideFields(\n params: HydrateOverrideFormParams\n): Pick<\n InterceptState,\n \"whereClauseText\" | \"orderByText\" | \"pageSize\" | \"groupByText\" | \"selectText\"\n> {\n const jsonOrEmpty = (val: unknown, fallback: string) =>\n val ? JSON.stringify(val, null, 2) : fallback;\n\n if (params.isAggregation) {\n return {\n whereClauseText: jsonOrEmpty(params.where, \"{}\"),\n groupByText: jsonOrEmpty(params.groupBy, \"{}\"),\n selectText: jsonOrEmpty(params.select, \"{}\"),\n orderByText: \"{}\",\n pageSize: undefined,\n };\n }\n\n return {\n whereClauseText: jsonOrEmpty(params.where, \"{}\"),\n orderByText: jsonOrEmpty(params.orderBy, \"{}\"),\n pageSize: params.pageSize,\n groupByText: \"\",\n selectText: \"\",\n };\n}\n\nfunction interceptReducer(\n state: InterceptState,\n action: InterceptAction\n): InterceptState {\n switch (action.type) {\n case \"SET_SELECTED_PRIMITIVE\":\n return { ...state, selectedPrimitive: action.primitive };\n case \"SET_MOCKS\":\n return { ...state, mocks: action.mocks };\n case \"UPDATE_MOCKS\":\n return { ...state, mocks: action.updater(state.mocks) };\n case \"SET_EDITING_MOCK\":\n return { ...state, editingMock: action.mock };\n case \"SET_MOCK_TYPE\":\n return { ...state, mockType: action.mockType };\n case \"SET_RESPONSE_TYPE\":\n return { ...state, responseType: action.responseType };\n case \"SET_USE_PAYLOAD\":\n return { ...state, usePayload: action.usePayload };\n case \"SET_MOCK_PAYLOAD\":\n return { ...state, mockPayload: action.mockPayload };\n case \"SET_USE_RESPONSE\":\n return { ...state, useResponse: action.useResponse };\n case \"SET_STATIC_DATA\":\n return { ...state, staticData: action.staticData };\n case \"SET_FUNCTION_CODE\":\n return { ...state, functionCode: action.functionCode };\n case \"SET_ERROR_MESSAGE\":\n return { ...state, errorMessage: action.errorMessage };\n case \"SET_SELECTED_QUERY\":\n return { ...state, selectedQuery: action.query };\n case \"SET_ACTIVE_OVERRIDES\":\n return { ...state, activeOverrides: action.overrides };\n case \"SET_WHERE_CLAUSE_TEXT\":\n return { ...state, whereClauseText: action.text };\n case \"SET_ORDER_BY_TEXT\":\n return { ...state, orderByText: action.text };\n case \"SET_PAGE_SIZE\":\n return { ...state, pageSize: action.pageSize };\n case \"SET_GROUP_BY_TEXT\":\n return { ...state, groupByText: action.text };\n case \"SET_SELECT_TEXT\":\n return { ...state, selectText: action.text };\n case \"SET_CHOOSING_PRIMITIVE\":\n return { ...state, choosingPrimitive: action.primitive };\n case \"SET_ERROR\":\n return { ...state, error: action.error };\n case \"HYDRATE_OVERRIDE_FORM\":\n return { ...state, ...hydrateOverrideFields(action.params) };\n case \"INIT_MOCK_FORM_FROM_CONFIG\": {\n const cfg = action.config;\n return {\n ...state,\n mockType: cfg.mockType,\n responseType: cfg.responseType,\n usePayload: cfg.usePayload ?? false,\n mockPayload: cfg.payload || \"{}\",\n useResponse: cfg.useResponse ?? false,\n staticData: cfg.staticData || DEFAULT_STATIC_DATA,\n functionCode: cfg.functionCode || DEFAULT_FUNCTION_CODE,\n errorMessage: cfg.errorMessage || DEFAULT_ERROR_MESSAGE,\n };\n }\n case \"INIT_MOCK_FORM_FROM_PRIMITIVE\":\n return {\n ...state,\n staticData: MockDataGenerator.generateStaticData(action.primitive),\n functionCode: MockDataGenerator.generateFunctionCode(action.primitive),\n mockPayload: MockDataGenerator.generatePayload(action.primitive),\n mockType: \"static\",\n responseType: \"success\",\n usePayload: true,\n useResponse: true,\n errorMessage: DEFAULT_ERROR_MESSAGE,\n };\n case \"SELECT_PRIMITIVE_FOR_MOCK\":\n return {\n ...state,\n selectedPrimitive: action.primitive,\n editingMock: null,\n };\n case \"CANCEL_MOCK_EDITOR\":\n return {\n ...state,\n selectedPrimitive: null,\n editingMock: null,\n };\n case \"CLEAR_SELECTION\":\n return {\n ...state,\n selectedQuery: null,\n choosingPrimitive: null,\n error: null,\n };\n case \"SAVE_MOCK_DONE\":\n return {\n ...state,\n selectedPrimitive: null,\n editingMock: null,\n };\n }\n}\n\nexport interface InterceptTabProps {\n monitorStore: MonitorStore;\n theme?: \"light\" | \"dark\";\n}\n\nexport const InterceptTab: React.FC<InterceptTabProps> = ({\n monitorStore,\n theme,\n}) => {\n const {\n isSelectionActive,\n discoveredPrimitives,\n activateSelection,\n clearDiscoveredPrimitives,\n } = useInspectorSelection(monitorStore);\n\n const [state, dispatch] = useReducer(interceptReducer, initialState);\n\n const {\n selectedPrimitive,\n mocks,\n editingMock,\n mockType,\n responseType,\n usePayload,\n mockPayload,\n useResponse,\n staticData,\n functionCode,\n errorMessage,\n selectedQuery,\n activeOverrides,\n whereClauseText,\n orderByText,\n pageSize,\n groupByText,\n selectText,\n choosingPrimitive,\n error,\n } = state;\n\n const jsonExtension = React.useSyncExternalStore(\n subscribeJsonExtension,\n getJsonExtensionSnapshot\n );\n const jsonExtensions = useMemo(\n () => (jsonExtension ? [jsonExtension] : []),\n [jsonExtension]\n );\n\n const overrideStore = monitorStore.getPrototypeOverrideStore();\n\n const overrideSnapshotRef = React.useRef<PrototypeOverride[]>([]);\n const overrideSubscribe = useCallback(\n (callback: () => void) => overrideStore.subscribe(callback),\n [overrideStore]\n );\n const overrideGetSnapshot = useCallback((): PrototypeOverride[] => {\n const current = overrideStore.getAll();\n const prev = overrideSnapshotRef.current;\n if (\n prev.length === current.length &&\n prev.every((o, i) => o === current[i])\n ) {\n return prev;\n }\n overrideSnapshotRef.current = current;\n return current;\n }, [overrideStore]);\n const overrideStoreOverrides = React.useSyncExternalStore(\n overrideSubscribe,\n overrideGetSnapshot\n );\n\n const mockPollingStore = React.useMemo(() => {\n const mockManager = monitorStore.getMockManager();\n return createPollingStore(() => mockManager.getMocks(), 1000);\n }, [monitorStore]);\n const polledMocks = React.useSyncExternalStore(\n mockPollingStore.subscribe,\n mockPollingStore.getSnapshot\n );\n\n const effectiveMocks: Array<MockWithConfig> = useMemo(() => {\n if (!polledMocks || polledMocks.length === 0) {\n return mocks;\n }\n return polledMocks.map((m) => {\n const existingMock = mocks.find((item) => item.id === m.id);\n if (existingMock?.config) {\n return { ...m, config: existingMock.config };\n }\n return {\n ...m,\n config: {\n primitive: {\n type: \"action\" as const,\n data: {\n name: \"unknown\",\n signature: \"\",\n location: \"\",\n hookIndex: 0,\n },\n },\n mockType: \"static\" as const,\n responseType: \"success\" as const,\n enabled: m.enabled,\n },\n };\n });\n }, [polledMocks, mocks]);\n\n const handleSelectPrimitive = useCallback((primitive: SelectedPrimitive) => {\n if (primitive.type === \"objectSet\" || primitive.type === \"aggregation\") {\n dispatch({ type: \"SET_CHOOSING_PRIMITIVE\", primitive });\n } else {\n dispatch({ type: \"SELECT_PRIMITIVE_FOR_MOCK\", primitive });\n dispatch({ type: \"INIT_MOCK_FORM_FROM_PRIMITIVE\", primitive });\n }\n }, []);\n\n const handleChooseMock = useCallback(() => {\n if (!choosingPrimitive) {\n return;\n }\n dispatch({\n type: \"SELECT_PRIMITIVE_FOR_MOCK\",\n primitive: choosingPrimitive,\n });\n dispatch({\n type: \"INIT_MOCK_FORM_FROM_PRIMITIVE\",\n primitive: choosingPrimitive,\n });\n dispatch({ type: \"SET_CHOOSING_PRIMITIVE\", primitive: null });\n }, [choosingPrimitive]);\n\n const handleChooseOverride = useCallback(() => {\n if (!choosingPrimitive || !discoveredPrimitives) {\n return;\n }\n\n if (choosingPrimitive.type === \"aggregation\") {\n const data = choosingPrimitive.data;\n dispatch({\n type: \"SET_SELECTED_QUERY\",\n query: {\n componentId: discoveredPrimitives.componentId,\n componentName: discoveredPrimitives.componentName,\n objectType: data.type,\n hookType: \"useOsdkAggregation\",\n hookIndex: data.hookIndex,\n originalParams: {\n where: data.whereClause,\n groupBy: data.aggregate?.groupBy as\n | Record<string, unknown>\n | undefined,\n select: data.aggregate?.select as\n | Record<string, unknown>\n | undefined,\n },\n querySignature: data.querySignature,\n isAggregation: true,\n },\n });\n\n dispatch({\n type: \"HYDRATE_OVERRIDE_FORM\",\n params: {\n isAggregation: true,\n where: data.whereClause,\n groupBy: data.aggregate?.groupBy,\n select: data.aggregate?.select,\n },\n });\n } else if (choosingPrimitive.type === \"objectSet\") {\n const data = choosingPrimitive.data;\n dispatch({\n type: \"SET_SELECTED_QUERY\",\n query: {\n componentId: discoveredPrimitives.componentId,\n componentName: discoveredPrimitives.componentName,\n objectType: data.type,\n hookType: \"useOsdkObjects\",\n hookIndex: data.hookIndex,\n originalParams: {\n where: data.whereClause,\n orderBy: data.orderBy,\n pageSize: data.pageSize,\n },\n querySignature: data.querySignature,\n isAggregation: false,\n },\n });\n\n dispatch({\n type: \"HYDRATE_OVERRIDE_FORM\",\n params: {\n isAggregation: false,\n where: data.whereClause,\n orderBy: data.orderBy,\n pageSize: data.pageSize,\n },\n });\n }\n\n dispatch({ type: \"SET_CHOOSING_PRIMITIVE\", primitive: null });\n clearDiscoveredPrimitives();\n dispatch({ type: \"SET_ERROR\", error: null });\n }, [choosingPrimitive, discoveredPrimitives, clearDiscoveredPrimitives]);\n\n const handleSaveMock = useCallback(() => {\n if (!selectedPrimitive) {\n return;\n }\n\n const mockManager = monitorStore.getMockManager();\n\n dispatch({ type: \"SET_ERROR\", error: null });\n\n try {\n if (!selectedPrimitive.type || !selectedPrimitive.data) {\n dispatch({\n type: \"SET_ERROR\",\n error:\n \"Invalid primitive structure. Please try selecting the component again.\",\n });\n return;\n }\n\n const config: MockConfiguration = {\n primitive: selectedPrimitive,\n mockType,\n responseType,\n usePayload:\n selectedPrimitive.type === \"action\" ? usePayload : undefined,\n payload:\n selectedPrimitive.type === \"action\" && usePayload\n ? mockPayload\n : undefined,\n useResponse,\n staticData:\n mockType === \"static\" && useResponse ? staticData : undefined,\n functionCode:\n mockType === \"function\" && useResponse ? functionCode : undefined,\n errorMessage:\n responseType === \"error\" && useResponse ? errorMessage : undefined,\n enabled: true,\n };\n\n let mockData: unknown;\n if (!useResponse) {\n mockData = null;\n } else if (responseType === \"error\") {\n mockData = {\n error: true,\n message: errorMessage || DEFAULT_ERROR_MESSAGE,\n };\n } else if (mockType === \"static\" && staticData) {\n try {\n mockData = JSON.parse(staticData);\n } catch {\n dispatch({\n type: \"SET_ERROR\",\n error: \"Invalid JSON in mock data. Please check your JSON syntax.\",\n });\n return;\n }\n }\n\n const response = !useResponse\n ? { type: \"passthrough\" as const }\n : responseType === \"error\"\n ? {\n type: \"error\" as const,\n error: errorMessage || DEFAULT_ERROR_MESSAGE,\n }\n : createResponseFromConfig(selectedPrimitive, mockData);\n\n const sharedFields = {\n matcher: createMatcherFromPrimitive(selectedPrimitive),\n response,\n enabled: config.enabled,\n usePayload: config.usePayload,\n payload: config.payload,\n usedCount: 0,\n };\n\n if (editingMock) {\n mockManager.removeMock(editingMock.id);\n const mockResponse: MockResponse = { ...editingMock, ...sharedFields };\n const id = mockManager.registerMock(mockResponse);\n dispatch({\n type: \"UPDATE_MOCKS\",\n updater: (prevMocks) =>\n prevMocks.map((m) =>\n m.id === editingMock.id ? { ...mockResponse, config, id } : m\n ),\n });\n } else {\n const mockResponse: MockResponse = {\n id: crypto.randomUUID(),\n type:\n selectedPrimitive.type === \"action\"\n ? \"action\"\n : selectedPrimitive.type === \"objectSet\" ||\n selectedPrimitive.type === \"link\" ||\n selectedPrimitive.type === \"aggregation\"\n ? \"list\"\n : \"object\",\n delay: 0,\n ...sharedFields,\n };\n const id = mockManager.registerMock(mockResponse);\n dispatch({\n type: \"UPDATE_MOCKS\",\n updater: (prevMocks) => [\n ...prevMocks,\n { ...mockResponse, config, id },\n ],\n });\n }\n\n dispatch({ type: \"SAVE_MOCK_DONE\" });\n clearDiscoveredPrimitives();\n } catch (err) {\n const msg = err instanceof Error ? err.message : \"Unknown error\";\n dispatch({ type: \"SET_ERROR\", error: `Failed to save mock: ${msg}` });\n }\n }, [\n selectedPrimitive,\n editingMock,\n mockType,\n responseType,\n usePayload,\n mockPayload,\n useResponse,\n staticData,\n functionCode,\n errorMessage,\n monitorStore,\n clearDiscoveredPrimitives,\n ]);\n\n const handleCancelMockEditor = useCallback(() => {\n dispatch({ type: \"CANCEL_MOCK_EDITOR\" });\n }, []);\n\n const handleToggleMock = useCallback(\n (mockId: string) => {\n const mockManager = monitorStore.getMockManager();\n const mock = mockManager.getMock(mockId);\n if (mock) {\n const newEnabled = !mock.enabled;\n mockManager.updateMock(mockId, { enabled: newEnabled });\n dispatch({\n type: \"UPDATE_MOCKS\",\n updater: (prevMocks) =>\n prevMocks.map((m) =>\n m.id === mockId ? { ...m, enabled: newEnabled } : m\n ),\n });\n }\n },\n [monitorStore]\n );\n\n const handleDeleteMock = useCallback(\n (mockId: string) => {\n const mockManager = monitorStore.getMockManager();\n mockManager.removeMock(mockId);\n dispatch({\n type: \"UPDATE_MOCKS\",\n updater: (prevMocks) => prevMocks.filter((m) => m.id !== mockId),\n });\n },\n [monitorStore]\n );\n\n const handleEditMock = useCallback((mock: MockWithConfig) => {\n dispatch({ type: \"SET_EDITING_MOCK\", mock });\n dispatch({\n type: \"SET_SELECTED_PRIMITIVE\",\n primitive: mock.config.primitive,\n });\n dispatch({\n type: \"INIT_MOCK_FORM_FROM_CONFIG\",\n config: mock.config,\n });\n }, []);\n\n const handleApplyOverride = useCallback(() => {\n if (!selectedQuery) {\n return;\n }\n\n dispatch({ type: \"SET_ERROR\", error: null });\n\n const whereResult = parseJsonField<Record<string, unknown>>(\n whereClauseText,\n \"Where Clause\"\n );\n if (whereResult.error) {\n dispatch({ type: \"SET_ERROR\", error: whereResult.error });\n return;\n }\n\n const bindingId = `${selectedQuery.componentId}:${selectedQuery.hookIndex}`;\n\n let overrideParams: PrototypeOverrideParams;\n\n if (selectedQuery.isAggregation) {\n const groupByResult = parseJsonField<Record<string, unknown>>(\n groupByText,\n \"Group By\"\n );\n if (groupByResult.error) {\n dispatch({ type: \"SET_ERROR\", error: groupByResult.error });\n return;\n }\n\n const selectResult = parseJsonField<Record<string, unknown>>(\n selectText,\n \"Select\"\n );\n if (selectResult.error) {\n dispatch({ type: \"SET_ERROR\", error: selectResult.error });\n return;\n }\n\n overrideParams = {\n where: whereResult.value,\n groupBy: groupByResult.value,\n select: selectResult.value,\n };\n } else {\n const orderByResult = parseJsonField<Record<string, \"asc\" | \"desc\">>(\n orderByText,\n \"Order By\"\n );\n if (orderByResult.error) {\n dispatch({ type: \"SET_ERROR\", error: orderByResult.error });\n return;\n }\n\n overrideParams = {\n where: whereResult.value,\n orderBy: orderByResult.value,\n pageSize,\n };\n }\n\n const override: PrototypeOverride = {\n bindingId,\n componentId: selectedQuery.componentId,\n componentName: selectedQuery.componentName,\n hookType: selectedQuery.hookType,\n hookIndex: selectedQuery.hookIndex,\n objectType: selectedQuery.objectType,\n querySignature: selectedQuery.querySignature,\n originalParams: selectedQuery.originalParams,\n overrideParams,\n enabled: true,\n createdAt: Date.now(),\n };\n\n overrideStore.setOverride(override);\n dispatch({ type: \"SET_SELECTED_QUERY\", query: null });\n }, [\n selectedQuery,\n whereClauseText,\n orderByText,\n pageSize,\n groupByText,\n selectText,\n overrideStore,\n ]);\n\n const handleToggleOverride = useCallback(\n (bindingId: string) => {\n const override = overrideStore.getOverride(bindingId);\n if (override) {\n overrideStore.updateOverride(bindingId, { enabled: !override.enabled });\n }\n },\n [overrideStore]\n );\n\n const handleRemoveOverride = useCallback(\n (bindingId: string) => {\n overrideStore.clearOverride(bindingId);\n },\n [overrideStore]\n );\n\n const handleEditOverride = useCallback((override: PrototypeOverride) => {\n const isAggregation = override.hookType === \"useOsdkAggregation\";\n\n dispatch({\n type: \"SET_SELECTED_QUERY\",\n query: {\n componentId: override.componentId,\n componentName: override.componentName,\n objectType: override.objectType,\n hookType: override.hookType,\n hookIndex: override.hookIndex,\n originalParams: override.originalParams,\n querySignature: override.querySignature,\n isAggregation,\n },\n });\n\n dispatch({\n type: \"HYDRATE_OVERRIDE_FORM\",\n params: {\n isAggregation,\n where: override.overrideParams.where,\n orderBy: override.overrideParams.orderBy,\n pageSize: override.overrideParams.pageSize,\n groupBy: override.overrideParams.groupBy,\n select: override.overrideParams.select,\n },\n });\n dispatch({ type: \"SET_ERROR\", error: null });\n }, []);\n\n const handleClearSelection = useCallback(() => {\n dispatch({ type: \"CLEAR_SELECTION\" });\n clearDiscoveredPrimitives();\n }, [clearDiscoveredPrimitives]);\n\n const hasActiveIntercepts =\n effectiveMocks.length > 0 || overrideStoreOverrides.length > 0;\n const isShowingList =\n !discoveredPrimitives &&\n !choosingPrimitive &&\n !selectedQuery &&\n !selectedPrimitive;\n\n const mockPrimitiveInfo = useMemo(() => {\n if (!selectedPrimitive) {\n return null;\n }\n return getMockPrimitiveInfo(selectedPrimitive);\n }, [selectedPrimitive]);\n\n return (\n <div className={styles.interceptTab}>\n <InspectorSelectionHeader\n error={error}\n onDismissError={() => dispatch({ type: \"SET_ERROR\", error: null })}\n isSelectionActive={isSelectionActive}\n onActivateSelection={activateSelection}\n infoText={\n <>\n <strong>Intercept:</strong> Select a component to mock responses or\n override query parameters.\n </>\n }\n activeWarningText=\"Selection mode is active. Click on any component to discover its OSDK usage.\"\n buttonLabel=\"Select Component\"\n showHelpTooltip={true}\n />\n\n <div className={styles.content}>\n {discoveredPrimitives && !choosingPrimitive && !selectedPrimitive && (\n <PrimitiveSelectionPanel\n primitives={discoveredPrimitives}\n onSelectPrimitive={handleSelectPrimitive}\n onClose={clearDiscoveredPrimitives}\n />\n )}\n\n {choosingPrimitive && (\n <div className={styles.interceptTypeChoice}>\n <div className={styles.panelHeader}>\n <Icon icon=\"fork\" />\n <span>How do you want to intercept?</span>\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon=\"cross\"\n aria-label=\"Cancel\"\n onClick={handleClearSelection}\n />\n </div>\n <div className={styles.choiceGrid}>\n <button\n type=\"button\"\n className={styles.choiceCard}\n onClick={handleChooseMock}\n >\n <Icon icon=\"shield\" size={24} />\n <div className={styles.choiceTitle}>Mock Response</div>\n <div className={styles.choiceDescription}>\n Replace the response data with static or dynamic mock data\n </div>\n </button>\n <button\n type=\"button\"\n className={styles.choiceCard}\n onClick={handleChooseOverride}\n >\n <Icon icon=\"edit\" size={24} />\n <div className={styles.choiceTitle}>Override Query</div>\n <div className={styles.choiceDescription}>\n Edit where, orderBy, pageSize, or aggregation params in\n real-time\n </div>\n </button>\n </div>\n </div>\n )}\n\n {selectedPrimitive && (\n <MockEditor\n selectedPrimitive={selectedPrimitive}\n editingMock={editingMock}\n mockType={mockType}\n responseType={responseType}\n usePayload={usePayload}\n mockPayload={mockPayload}\n useResponse={useResponse}\n staticData={staticData}\n functionCode={functionCode}\n errorMessage={errorMessage}\n dispatch={dispatch}\n mockPrimitiveInfo={mockPrimitiveInfo}\n onSaveMock={handleSaveMock}\n onCancel={handleCancelMockEditor}\n />\n )}\n\n {selectedQuery && (\n <OverrideEditor\n selectedQuery={selectedQuery}\n whereClauseText={whereClauseText}\n orderByText={orderByText}\n pageSize={pageSize}\n groupByText={groupByText}\n selectText={selectText}\n jsonExtensions={jsonExtensions}\n theme={theme ?? \"dark\"}\n dispatch={dispatch}\n onApplyOverride={handleApplyOverride}\n onClearSelection={handleClearSelection}\n />\n )}\n\n {isShowingList && (\n <div className={styles.mainContent}>\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>\n <Icon icon=\"shield\" />\n Active Intercepts\n </h3>\n\n {!hasActiveIntercepts ? (\n <div className={styles.emptyState}>\n <Icon icon=\"search\" size={40} />\n <div>No active intercepts</div>\n <div className={styles.emptySubtext}>\n Select a component to mock responses or override query\n parameters\n </div>\n <Button\n intent=\"primary\"\n icon=\"style\"\n onClick={activateSelection}\n disabled={isSelectionActive}\n >\n Select Component\n </Button>\n </div>\n ) : (\n <div className={styles.interceptList}>\n {effectiveMocks.map((mock) => (\n <MockItem\n key={`mock-${mock.id}`}\n mock={mock}\n onToggle={() => handleToggleMock(mock.id)}\n onDelete={() => handleDeleteMock(mock.id)}\n onEdit={() => handleEditMock(mock)}\n />\n ))}\n {overrideStoreOverrides.map((override) => (\n <OverrideItem\n key={`override-${override.bindingId}`}\n override={override}\n onToggle={() => handleToggleOverride(override.bindingId)}\n onRemove={() => handleRemoveOverride(override.bindingId)}\n onEdit={() => handleEditOverride(override)}\n />\n ))}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"IssueCard.js","names":["Button","Collapse","Icon","Tag","classNames","React","useState","formatRelativeTime","CopyableCodeBlock","styles","severityIcon","error","icon","intent","warning","info","severityClass","severityError","severityWarning","severityInfo","IssueCard","issue","onComponentClick","style","expanded","setExpanded","severity","hasDetails","expandable","stack","detailsJson","code","createElement","className","issueCard","onClick","onKeyDown","e","key","preventDefault","role","tabIndex","undefined","header","content","topRow","category","toUpperCase","title","message","suggestion","meta","componentName","minimal","componentTag","interactive","componentId","stopPropagation","timestamp","variant","size","expandButton","isOpen","details","Fragment","codeBlock"],"sources":["IssueCard.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button, Collapse, Icon, Tag } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport React, { useState } from \"react\";\nimport { formatRelativeTime } from \"../utils/format.js\";\nimport { CopyableCodeBlock } from \"./CopyableCodeBlock.js\";\nimport styles from \"./IssueCard.module.scss\";\nimport type { Issue } from \"./issueTypes.js\";\n\nexport interface IssueCardProps {\n issue: Issue;\n onComponentClick?: (componentId: string) => void;\n style?: React.CSSProperties;\n}\n\nconst severityIcon: Record<\n Issue[\"severity\"],\n {\n icon: \"error\" | \"warning-sign\" | \"info-sign\";\n intent: \"danger\" | \"warning\" | \"primary\";\n }\n> = {\n error: { icon: \"error\", intent: \"danger\" },\n warning: { icon: \"warning-sign\", intent: \"warning\" },\n info: { icon: \"info-sign\", intent: \"primary\" },\n};\n\nconst severityClass: Record<Issue[\"severity\"], string> = {\n error: styles.severityError,\n warning: styles.severityWarning,\n info: styles.severityInfo,\n};\n\nexport const IssueCard: React.FC<IssueCardProps> = ({\n issue,\n onComponentClick,\n style,\n}) => {\n const [expanded, setExpanded] = useState(false);\n\n const { icon, intent } = severityIcon[issue.severity];\n const hasDetails = issue.expandable\n && (issue.expandable.stack || issue.expandable.detailsJson\n || issue.expandable.code);\n\n return (\n <div\n className={classNames(styles.issueCard, severityClass[issue.severity])}\n onClick={() => setExpanded(!expanded)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setExpanded(!expanded);\n }\n }}\n role=\"button\"\n tabIndex={0}\n aria-expanded={hasDetails ? expanded : undefined}\n style={style}\n >\n <div className={styles.header}>\n <Icon icon={icon} intent={intent} className={styles.icon} />\n <div className={styles.content}>\n <div className={styles.topRow}>\n <span className={styles.category}>\n {issue.category.toUpperCase()}\n </span>\n <span className={styles.title}>{issue.title}</span>\n </div>\n <div className={styles.message}>{issue.message}</div>\n {issue.suggestion && (\n <div className={styles.suggestion}>{issue.suggestion}</div>\n )}\n </div>\n <div className={styles.meta}>\n {issue.componentName && (\n <Tag\n minimal\n className={styles.componentTag}\n interactive={!!onComponentClick && !!issue.componentId}\n onClick={(e: React.MouseEvent) => {\n if (onComponentClick && issue.componentId) {\n e.stopPropagation();\n onComponentClick(issue.componentId);\n }\n }}\n >\n {issue.componentName}\n </Tag>\n )}\n <span className={styles.timestamp}>\n {formatRelativeTime(issue.timestamp)}\n </span>\n {hasDetails && (\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon={expanded ? \"chevron-up\" : \"chevron-down\"}\n className={styles.expandButton}\n />\n )}\n </div>\n </div>\n\n {hasDetails && (\n <Collapse isOpen={expanded}>\n <div className={styles.details}>\n {issue.expandable?.stack && (\n <>\n <h6>Stack Trace</h6>\n <CopyableCodeBlock className={styles.codeBlock}>\n {issue.expandable.stack}\n </CopyableCodeBlock>\n </>\n )}\n {issue.expandable?.detailsJson && (\n <>\n <h6>Details</h6>\n <CopyableCodeBlock className={styles.codeBlock}>\n {issue.expandable.detailsJson}\n </CopyableCodeBlock>\n </>\n )}\n {issue.expandable?.code && (\n <>\n <h6>Example</h6>\n <CopyableCodeBlock className={styles.codeBlock}>\n {issue.expandable.code}\n </CopyableCodeBlock>\n </>\n )}\n </div>\n </Collapse>\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"IssueCard.js","names":["Button","Collapse","Icon","Tag","classNames","React","useState","formatRelativeTime","CopyableCodeBlock","styles","severityIcon","error","icon","intent","warning","info","severityClass","severityError","severityWarning","severityInfo","IssueCard","issue","onComponentClick","style","expanded","setExpanded","severity","hasDetails","expandable","stack","detailsJson","code","createElement","className","issueCard","onClick","onKeyDown","e","key","preventDefault","role","tabIndex","undefined","header","content","topRow","category","toUpperCase","title","message","suggestion","meta","componentName","minimal","componentTag","interactive","componentId","stopPropagation","timestamp","variant","size","expandButton","isOpen","details","Fragment","codeBlock"],"sources":["IssueCard.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button, Collapse, Icon, Tag } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport React, { useState } from \"react\";\n\nimport { formatRelativeTime } from \"../utils/format.js\";\nimport { CopyableCodeBlock } from \"./CopyableCodeBlock.js\";\nimport type { Issue } from \"./issueTypes.js\";\n\nimport styles from \"./IssueCard.module.scss\";\n\nexport interface IssueCardProps {\n issue: Issue;\n onComponentClick?: (componentId: string) => void;\n style?: React.CSSProperties;\n}\n\nconst severityIcon: Record<\n Issue[\"severity\"],\n {\n icon: \"error\" | \"warning-sign\" | \"info-sign\";\n intent: \"danger\" | \"warning\" | \"primary\";\n }\n> = {\n error: { icon: \"error\", intent: \"danger\" },\n warning: { icon: \"warning-sign\", intent: \"warning\" },\n info: { icon: \"info-sign\", intent: \"primary\" },\n};\n\nconst severityClass: Record<Issue[\"severity\"], string> = {\n error: styles.severityError,\n warning: styles.severityWarning,\n info: styles.severityInfo,\n};\n\nexport const IssueCard: React.FC<IssueCardProps> = ({\n issue,\n onComponentClick,\n style,\n}) => {\n const [expanded, setExpanded] = useState(false);\n\n const { icon, intent } = severityIcon[issue.severity];\n const hasDetails =\n issue.expandable &&\n (issue.expandable.stack ||\n issue.expandable.detailsJson ||\n issue.expandable.code);\n\n return (\n <div\n className={classNames(styles.issueCard, severityClass[issue.severity])}\n onClick={() => setExpanded(!expanded)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setExpanded(!expanded);\n }\n }}\n role=\"button\"\n tabIndex={0}\n aria-expanded={hasDetails ? expanded : undefined}\n style={style}\n >\n <div className={styles.header}>\n <Icon icon={icon} intent={intent} className={styles.icon} />\n <div className={styles.content}>\n <div className={styles.topRow}>\n <span className={styles.category}>\n {issue.category.toUpperCase()}\n </span>\n <span className={styles.title}>{issue.title}</span>\n </div>\n <div className={styles.message}>{issue.message}</div>\n {issue.suggestion && (\n <div className={styles.suggestion}>{issue.suggestion}</div>\n )}\n </div>\n <div className={styles.meta}>\n {issue.componentName && (\n <Tag\n minimal\n className={styles.componentTag}\n interactive={!!onComponentClick && !!issue.componentId}\n onClick={(e: React.MouseEvent) => {\n if (onComponentClick && issue.componentId) {\n e.stopPropagation();\n onComponentClick(issue.componentId);\n }\n }}\n >\n {issue.componentName}\n </Tag>\n )}\n <span className={styles.timestamp}>\n {formatRelativeTime(issue.timestamp)}\n </span>\n {hasDetails && (\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon={expanded ? \"chevron-up\" : \"chevron-down\"}\n className={styles.expandButton}\n />\n )}\n </div>\n </div>\n\n {hasDetails && (\n <Collapse isOpen={expanded}>\n <div className={styles.details}>\n {issue.expandable?.stack && (\n <>\n <h6>Stack Trace</h6>\n <CopyableCodeBlock className={styles.codeBlock}>\n {issue.expandable.stack}\n </CopyableCodeBlock>\n </>\n )}\n {issue.expandable?.detailsJson && (\n <>\n <h6>Details</h6>\n <CopyableCodeBlock className={styles.codeBlock}>\n {issue.expandable.detailsJson}\n </CopyableCodeBlock>\n </>\n )}\n {issue.expandable?.code && (\n <>\n <h6>Example</h6>\n <CopyableCodeBlock className={styles.codeBlock}>\n {issue.expandable.code}\n </CopyableCodeBlock>\n </>\n )}\n </div>\n </Collapse>\n )}\n </div>\n );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,GAAG,QAAQ,mBAAmB;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,kBAAkB,QAAQ,oBAAoB;AACvD,SAASC,iBAAiB,QAAQ,wBAAwB;AAG1D,OAAOC,MAAM,MAAM,yBAAyB;AAQ5C,MAAMC,YAML,GAAG;EACFC,KAAK,EAAE;IAAEC,IAAI,EAAE,OAAO;IAAEC,MAAM,EAAE;EAAS,CAAC;EAC1CC,OAAO,EAAE;IAAEF,IAAI,EAAE,cAAc;IAAEC,MAAM,EAAE;EAAU,CAAC;EACpDE,IAAI,EAAE;IAAEH,IAAI,EAAE,WAAW;IAAEC,MAAM,EAAE;EAAU;AAC/C,CAAC;AAED,MAAMG,aAAgD,GAAG;EACvDL,KAAK,EAAEF,MAAM,CAACQ,aAAa;EAC3BH,OAAO,EAAEL,MAAM,CAACS,eAAe;EAC/BH,IAAI,EAAEN,MAAM,CAACU;AACf,CAAC;AAED,OAAO,MAAMC,SAAmC,GAAGA,CAAC;EAClDC,KAAK;EACLC,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGnB,QAAQ,CAAC,KAAK,CAAC;EAE/C,MAAM;IAAEM,IAAI;IAAEC;EAAO,CAAC,GAAGH,YAAY,CAACW,KAAK,CAACK,QAAQ,CAAC;EACrD,MAAMC,UAAU,GACdN,KAAK,CAACO,UAAU,KACfP,KAAK,CAACO,UAAU,CAACC,KAAK,IACrBR,KAAK,CAACO,UAAU,CAACE,WAAW,IAC5BT,KAAK,CAACO,UAAU,CAACG,IAAI,CAAC;EAE1B,oBACE1B,KAAA,CAAA2B,aAAA;IACEC,SAAS,EAAE7B,UAAU,CAACK,MAAM,CAACyB,SAAS,EAAElB,aAAa,CAACK,KAAK,CAACK,QAAQ,CAAC,CAAE;IACvES,OAAO,EAAEA,CAAA,KAAMV,WAAW,CAAC,CAACD,QAAQ,CAAE;IACtCY,SAAS,EAAGC,CAAC,IAAK;MAChB,IAAIA,CAAC,CAACC,GAAG,KAAK,OAAO,IAAID,CAAC,CAACC,GAAG,KAAK,GAAG,EAAE;QACtCD,CAAC,CAACE,cAAc,CAAC,CAAC;QAClBd,WAAW,CAAC,CAACD,QAAQ,CAAC;MACxB;IACF,CAAE;IACFgB,IAAI,EAAC,QAAQ;IACbC,QAAQ,EAAE,CAAE;IACZ,iBAAed,UAAU,GAAGH,QAAQ,GAAGkB,SAAU;IACjDnB,KAAK,EAAEA;EAAM,gBAEblB,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAExB,MAAM,CAACkC;EAAO,gBAC5BtC,KAAA,CAAA2B,aAAA,CAAC9B,IAAI;IAACU,IAAI,EAAEA,IAAK;IAACC,MAAM,EAAEA,MAAO;IAACoB,SAAS,EAAExB,MAAM,CAACG;EAAK,CAAE,CAAC,eAC5DP,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAExB,MAAM,CAACmC;EAAQ,gBAC7BvC,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAExB,MAAM,CAACoC;EAAO,gBAC5BxC,KAAA,CAAA2B,aAAA;IAAMC,SAAS,EAAExB,MAAM,CAACqC;EAAS,GAC9BzB,KAAK,CAACyB,QAAQ,CAACC,WAAW,CAAC,CACxB,CAAC,eACP1C,KAAA,CAAA2B,aAAA;IAAMC,SAAS,EAAExB,MAAM,CAACuC;EAAM,GAAE3B,KAAK,CAAC2B,KAAY,CAC/C,CAAC,eACN3C,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAExB,MAAM,CAACwC;EAAQ,GAAE5B,KAAK,CAAC4B,OAAa,CAAC,EACpD5B,KAAK,CAAC6B,UAAU,iBACf7C,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAExB,MAAM,CAACyC;EAAW,GAAE7B,KAAK,CAAC6B,UAAgB,CAEzD,CAAC,eACN7C,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAExB,MAAM,CAAC0C;EAAK,GACzB9B,KAAK,CAAC+B,aAAa,iBAClB/C,KAAA,CAAA2B,aAAA,CAAC7B,GAAG;IACFkD,OAAO;IACPpB,SAAS,EAAExB,MAAM,CAAC6C,YAAa;IAC/BC,WAAW,EAAE,CAAC,CAACjC,gBAAgB,IAAI,CAAC,CAACD,KAAK,CAACmC,WAAY;IACvDrB,OAAO,EAAGE,CAAmB,IAAK;MAChC,IAAIf,gBAAgB,IAAID,KAAK,CAACmC,WAAW,EAAE;QACzCnB,CAAC,CAACoB,eAAe,CAAC,CAAC;QACnBnC,gBAAgB,CAACD,KAAK,CAACmC,WAAW,CAAC;MACrC;IACF;EAAE,GAEDnC,KAAK,CAAC+B,aACJ,CACN,eACD/C,KAAA,CAAA2B,aAAA;IAAMC,SAAS,EAAExB,MAAM,CAACiD;EAAU,GAC/BnD,kBAAkB,CAACc,KAAK,CAACqC,SAAS,CAC/B,CAAC,EACN/B,UAAU,iBACTtB,KAAA,CAAA2B,aAAA,CAAChC,MAAM;IACL2D,OAAO,EAAC,SAAS;IACjBC,IAAI,EAAC,OAAO;IACZhD,IAAI,EAAEY,QAAQ,GAAG,YAAY,GAAG,cAAe;IAC/CS,SAAS,EAAExB,MAAM,CAACoD;EAAa,CAChC,CAEA,CACF,CAAC,EAELlC,UAAU,iBACTtB,KAAA,CAAA2B,aAAA,CAAC/B,QAAQ;IAAC6D,MAAM,EAAEtC;EAAS,gBACzBnB,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAExB,MAAM,CAACsD;EAAQ,GAC5B1C,KAAK,CAACO,UAAU,EAAEC,KAAK,iBACtBxB,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAA2D,QAAA,qBACE3D,KAAA,CAAA2B,aAAA,aAAI,aAAe,CAAC,eACpB3B,KAAA,CAAA2B,aAAA,CAACxB,iBAAiB;IAACyB,SAAS,EAAExB,MAAM,CAACwD;EAAU,GAC5C5C,KAAK,CAACO,UAAU,CAACC,KACD,CACnB,CACH,EACAR,KAAK,CAACO,UAAU,EAAEE,WAAW,iBAC5BzB,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAA2D,QAAA,qBACE3D,KAAA,CAAA2B,aAAA,aAAI,SAAW,CAAC,eAChB3B,KAAA,CAAA2B,aAAA,CAACxB,iBAAiB;IAACyB,SAAS,EAAExB,MAAM,CAACwD;EAAU,GAC5C5C,KAAK,CAACO,UAAU,CAACE,WACD,CACnB,CACH,EACAT,KAAK,CAACO,UAAU,EAAEG,IAAI,iBACrB1B,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAA2D,QAAA,qBACE3D,KAAA,CAAA2B,aAAA,aAAI,SAAW,CAAC,eAChB3B,KAAA,CAAA2B,aAAA,CAACxB,iBAAiB;IAACyB,SAAS,EAAExB,MAAM,CAACwD;EAAU,GAC5C5C,KAAK,CAACO,UAAU,CAACG,IACD,CACnB,CAED,CACG,CAET,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LogEntryCard.js","names":["Icon","classNames","React","useState","formatRelativeTime","styles","levelConfig","error","icon","color","className","levelError","warn","levelWarn","info","levelInfo","debug","levelDebug","log","levelLog","LogEntryCard","entry","style","expanded","setExpanded","config","level","summary","args","join","isMultiline","includes","length","createElement","logEntry","onClick","onKeyDown","e","key","preventDefault","role","undefined","tabIndex","size","levelBadge","content","split","argsExpanded","meta","source","title","timestamp"],"sources":["LogEntryCard.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Icon } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport React, { useState } from \"react\";\nimport type { ConsoleLogEntry } from \"../store/ConsoleLogStore.js\";\nimport { formatRelativeTime } from \"../utils/format.js\";\nimport styles from \"./LogEntryCard.module.scss\";\n\nexport interface LogEntryCardProps {\n entry: ConsoleLogEntry;\n style?: React.CSSProperties;\n}\n\nconst levelConfig: Record<\n ConsoleLogEntry[\"level\"],\n {\n icon: \"error\" | \"warning-sign\" | \"info-sign\" | \"code\" | \"console\";\n color: string;\n className: string;\n }\n> = {\n error: {\n icon: \"error\",\n color: \"var(--dt-red)\",\n className: styles.levelError,\n },\n warn: {\n icon: \"warning-sign\",\n color: \"var(--dt-orange)\",\n className: styles.levelWarn,\n },\n info: {\n icon: \"info-sign\",\n color: \"var(--dt-blue)\",\n className: styles.levelInfo,\n },\n debug: {\n icon: \"code\",\n color: \"var(--dt-gray)\",\n className: styles.levelDebug,\n },\n log: {\n icon: \"console\",\n color: \"var(--dt-text-tertiary)\",\n className: styles.levelLog,\n },\n};\n\nexport const LogEntryCard: React.FC<LogEntryCardProps> = ({ entry, style }) => {\n const [expanded, setExpanded] = useState(false);\n const config = levelConfig[entry.level];\n\n const summary = entry.args.join(\" \");\n const isMultiline = summary.includes(\"\\n\") || summary.length > 120;\n\n return (\n <div\n className={classNames(styles.logEntry, config.className)}\n onClick={() => {\n if (isMultiline) {\n setExpanded(!expanded);\n }\n }}\n onKeyDown={(e) => {\n if ((e.key === \"Enter\" || e.key === \" \") && isMultiline) {\n e.preventDefault();\n setExpanded(!expanded);\n }\n }}\n role={isMultiline ? \"button\" : undefined}\n tabIndex={isMultiline ? 0 : undefined}\n aria-expanded={isMultiline ? expanded : undefined}\n style={style}\n >\n <Icon\n icon={config.icon}\n size={12}\n color={config.color}\n className={styles.levelBadge}\n />\n <div className={styles.content}>\n <div className={styles.args}>\n {expanded ? summary : summary.split(\"\\n\")[0]}\n </div>\n {expanded && isMultiline && (\n <pre className={styles.argsExpanded}>{summary}</pre>\n )}\n </div>\n <div className={styles.meta}>\n {entry.source && (\n <span className={styles.source} title={entry.source}>\n {entry.source}\n </span>\n )}\n <span className={styles.timestamp}>\n {formatRelativeTime(entry.timestamp)}\n </span>\n </div>\n </div>\n );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,mBAAmB;AACxC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,kBAAkB,QAAQ,oBAAoB;AACvD,OAAOC,MAAM,MAAM,4BAA4B;AAO/C,MAAMC,WAOL,GAAG;EACFC,KAAK,EAAE;IACLC,IAAI,EAAE,OAAO;IACbC,KAAK,EAAE,eAAe;IACtBC,SAAS,EAAEL,MAAM,CAACM;EACpB,CAAC;EACDC,IAAI,EAAE;IACJJ,IAAI,EAAE,cAAc;IACpBC,KAAK,EAAE,kBAAkB;IACzBC,SAAS,EAAEL,MAAM,CAACQ;EACpB,CAAC;EACDC,IAAI,EAAE;IACJN,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAE,gBAAgB;IACvBC,SAAS,EAAEL,MAAM,CAACU;EACpB,CAAC;EACDC,KAAK,EAAE;IACLR,IAAI,EAAE,MAAM;IACZC,KAAK,EAAE,gBAAgB;IACvBC,SAAS,EAAEL,MAAM,CAACY;EACpB,CAAC;EACDC,GAAG,EAAE;IACHV,IAAI,EAAE,SAAS;IACfC,KAAK,EAAE,yBAAyB;IAChCC,SAAS,EAAEL,MAAM,CAACc;EACpB;AACF,CAAC;AAED,OAAO,MAAMC,YAAyC,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAM,CAAC,KAAK;EAC7E,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGrB,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAMsB,MAAM,GAAGnB,WAAW,CAACe,KAAK,CAACK,KAAK,CAAC;EAEvC,MAAMC,OAAO,GAAGN,KAAK,CAACO,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC;EACpC,MAAMC,WAAW,GAAGH,OAAO,CAACI,QAAQ,CAAC,IAAI,CAAC,IAAIJ,OAAO,CAACK,MAAM,GAAG,GAAG;EAElE,oBACE9B,KAAA,CAAA+B,aAAA;IACEvB,SAAS,EAAET,UAAU,CAACI,MAAM,CAAC6B,QAAQ,EAAET,MAAM,CAACf,SAAS,CAAE;IACzDyB,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIL,WAAW,EAAE;QACfN,WAAW,CAAC,CAACD,QAAQ,CAAC;MACxB;IACF,CAAE;IACFa,SAAS,EAAGC,CAAC,IAAK;MAChB,IAAI,CAACA,CAAC,CAACC,GAAG,KAAK,OAAO,IAAID,CAAC,CAACC,GAAG,KAAK,GAAG,KAAKR,WAAW,EAAE;QACvDO,CAAC,CAACE,cAAc,CAAC,CAAC;QAClBf,WAAW,CAAC,CAACD,QAAQ,CAAC;MACxB;IACF,CAAE;IACFiB,IAAI,EAAEV,WAAW,GAAG,QAAQ,GAAGW,SAAU;IACzCC,QAAQ,EAAEZ,WAAW,GAAG,CAAC,GAAGW,SAAU;IACtC,iBAAeX,WAAW,GAAGP,QAAQ,GAAGkB,SAAU;IAClDnB,KAAK,EAAEA;EAAM,gBAEbpB,KAAA,CAAA+B,aAAA,CAACjC,IAAI;IACHQ,IAAI,EAAEiB,MAAM,CAACjB,IAAK;IAClBmC,IAAI,EAAE,EAAG;IACTlC,KAAK,EAAEgB,MAAM,CAAChB,KAAM;IACpBC,SAAS,EAAEL,MAAM,CAACuC;EAAW,CAC9B,CAAC,eACF1C,KAAA,CAAA+B,aAAA;IAAKvB,SAAS,EAAEL,MAAM,CAACwC;EAAQ,gBAC7B3C,KAAA,CAAA+B,aAAA;IAAKvB,SAAS,EAAEL,MAAM,CAACuB;EAAK,GACzBL,QAAQ,GAAGI,OAAO,GAAGA,OAAO,CAACmB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACxC,CAAC,EACLvB,QAAQ,IAAIO,WAAW,iBACtB5B,KAAA,CAAA+B,aAAA;IAAKvB,SAAS,EAAEL,MAAM,CAAC0C;EAAa,GAAEpB,OAAa,CAElD,CAAC,eACNzB,KAAA,CAAA+B,aAAA;IAAKvB,SAAS,EAAEL,MAAM,CAAC2C;EAAK,GACzB3B,KAAK,CAAC4B,MAAM,iBACX/C,KAAA,CAAA+B,aAAA;IAAMvB,SAAS,EAAEL,MAAM,CAAC4C,MAAO;IAACC,KAAK,EAAE7B,KAAK,CAAC4B;EAAO,GACjD5B,KAAK,CAAC4B,MACH,CACP,eACD/C,KAAA,CAAA+B,aAAA;IAAMvB,SAAS,EAAEL,MAAM,CAAC8C;EAAU,GAC/B/C,kBAAkB,CAACiB,KAAK,CAAC8B,SAAS,CAC/B,CACH,CACF,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"LogEntryCard.js","names":["Icon","classNames","React","useState","formatRelativeTime","styles","levelConfig","error","icon","color","className","levelError","warn","levelWarn","info","levelInfo","debug","levelDebug","log","levelLog","LogEntryCard","entry","style","expanded","setExpanded","config","level","summary","args","join","isMultiline","includes","length","createElement","logEntry","onClick","onKeyDown","e","key","preventDefault","role","undefined","tabIndex","size","levelBadge","content","split","argsExpanded","meta","source","title","timestamp"],"sources":["LogEntryCard.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Icon } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport React, { useState } from \"react\";\n\nimport type { ConsoleLogEntry } from \"../store/ConsoleLogStore.js\";\nimport { formatRelativeTime } from \"../utils/format.js\";\n\nimport styles from \"./LogEntryCard.module.scss\";\n\nexport interface LogEntryCardProps {\n entry: ConsoleLogEntry;\n style?: React.CSSProperties;\n}\n\nconst levelConfig: Record<\n ConsoleLogEntry[\"level\"],\n {\n icon: \"error\" | \"warning-sign\" | \"info-sign\" | \"code\" | \"console\";\n color: string;\n className: string;\n }\n> = {\n error: {\n icon: \"error\",\n color: \"var(--dt-red)\",\n className: styles.levelError,\n },\n warn: {\n icon: \"warning-sign\",\n color: \"var(--dt-orange)\",\n className: styles.levelWarn,\n },\n info: {\n icon: \"info-sign\",\n color: \"var(--dt-blue)\",\n className: styles.levelInfo,\n },\n debug: {\n icon: \"code\",\n color: \"var(--dt-gray)\",\n className: styles.levelDebug,\n },\n log: {\n icon: \"console\",\n color: \"var(--dt-text-tertiary)\",\n className: styles.levelLog,\n },\n};\n\nexport const LogEntryCard: React.FC<LogEntryCardProps> = ({ entry, style }) => {\n const [expanded, setExpanded] = useState(false);\n const config = levelConfig[entry.level];\n\n const summary = entry.args.join(\" \");\n const isMultiline = summary.includes(\"\\n\") || summary.length > 120;\n\n return (\n <div\n className={classNames(styles.logEntry, config.className)}\n onClick={() => {\n if (isMultiline) {\n setExpanded(!expanded);\n }\n }}\n onKeyDown={(e) => {\n if ((e.key === \"Enter\" || e.key === \" \") && isMultiline) {\n e.preventDefault();\n setExpanded(!expanded);\n }\n }}\n role={isMultiline ? \"button\" : undefined}\n tabIndex={isMultiline ? 0 : undefined}\n aria-expanded={isMultiline ? expanded : undefined}\n style={style}\n >\n <Icon\n icon={config.icon}\n size={12}\n color={config.color}\n className={styles.levelBadge}\n />\n <div className={styles.content}>\n <div className={styles.args}>\n {expanded ? summary : summary.split(\"\\n\")[0]}\n </div>\n {expanded && isMultiline && (\n <pre className={styles.argsExpanded}>{summary}</pre>\n )}\n </div>\n <div className={styles.meta}>\n {entry.source && (\n <span className={styles.source} title={entry.source}>\n {entry.source}\n </span>\n )}\n <span className={styles.timestamp}>\n {formatRelativeTime(entry.timestamp)}\n </span>\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MockEditor.js","names":["Button","Callout","Checkbox","FormGroup","HTMLSelect","Icon","Radio","RadioGroup","TextArea","React","styles","MockEditor","selectedPrimitive","editingMock","mockType","responseType","usePayload","mockPayload","useResponse","staticData","functionCode","errorMessage","dispatch","mockPrimitiveInfo","onSaveMock","onCancel","createElement","className","editorPanel","panelHeader","icon","panelTitle","panelSubtitle","title","subtitle","variant","size","onClick","editorContent","signature","primitiveSignature","label","labelInfo","inline","onChange","e","type","currentTarget","value","selectedValue","target","fill","options","Fragment","checked","helperText","rows","codeEditor","intent","editorActions","getMockPrimitiveInfo","primitive","data","name","primaryKey","linkName","hookType","createMatcherFromPrimitive","actionName","objectType","whereClause","sourceType","createResponseFromConfig","mockData","result","list","Array","isArray","hasMore","object","MockItem","memo","mock","onToggle","onDelete","onEdit","info","config","text","interceptItem","interceptItemContent","interceptItemHeader","interceptItemTitle","interceptBadge","interceptBadgeMock","interceptItemMeta","usedCount","interceptItemDetails","detail","interceptItemActions","enabled","displayName"],"sources":["MockEditor.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Button,\n Callout,\n Checkbox,\n FormGroup,\n HTMLSelect,\n Icon,\n Radio,\n RadioGroup,\n TextArea,\n} from \"@blueprintjs/core\";\nimport React from \"react\";\nimport type { MockResponse } from \"../mocking/MockManager.js\";\nimport type { InterceptAction, MockConfiguration } from \"./InterceptTab.js\";\nimport styles from \"./InterceptTab.module.scss\";\nimport type { SelectedPrimitive } from \"./PrimitiveSelectionPanel.js\";\n\ntype MockWithConfig = MockResponse & { config: MockConfiguration };\n\ninterface MockEditorProps {\n selectedPrimitive: SelectedPrimitive;\n editingMock: MockWithConfig | null;\n mockType: MockConfiguration[\"mockType\"];\n responseType: MockConfiguration[\"responseType\"];\n usePayload: boolean;\n mockPayload: string;\n useResponse: boolean;\n staticData: string;\n functionCode: string;\n errorMessage: string;\n dispatch: React.Dispatch<InterceptAction>;\n mockPrimitiveInfo: ReturnType<typeof getMockPrimitiveInfo> | null;\n onSaveMock: () => void;\n onCancel: () => void;\n}\n\nexport const MockEditor: React.FC<MockEditorProps> = ({\n selectedPrimitive,\n editingMock,\n mockType,\n responseType,\n usePayload,\n mockPayload,\n useResponse,\n staticData,\n functionCode,\n errorMessage,\n dispatch,\n mockPrimitiveInfo,\n onSaveMock,\n onCancel,\n}) => {\n return (\n <div className={styles.editorPanel}>\n <div className={styles.panelHeader}>\n <Icon icon={mockPrimitiveInfo?.icon ?? \"cube\"} />\n <div>\n <div className={styles.panelTitle}>\n {editingMock ? \"Edit Mock\" : \"Create Mock\"}\n </div>\n <div className={styles.panelSubtitle}>\n {mockPrimitiveInfo?.title} · {mockPrimitiveInfo?.subtitle}\n </div>\n </div>\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon=\"cross\"\n aria-label=\"Close editor\"\n onClick={onCancel}\n />\n </div>\n\n <div className={styles.editorContent}>\n {mockPrimitiveInfo?.signature && (\n <div className={styles.primitiveSignature}>\n <code>{mockPrimitiveInfo.signature}</code>\n </div>\n )}\n\n <FormGroup label=\"Response Type\" labelInfo=\"(required)\">\n <RadioGroup\n inline={true}\n onChange={(e) =>\n dispatch({\n type: \"SET_RESPONSE_TYPE\",\n responseType: e.currentTarget\n .value as MockConfiguration[\"responseType\"],\n })}\n selectedValue={responseType}\n >\n <Radio label=\"Success\" value=\"success\" />\n <Radio label=\"Error/Failure\" value=\"error\" />\n </RadioGroup>\n </FormGroup>\n\n <FormGroup label=\"Mock Type\" labelInfo=\"(required)\">\n <HTMLSelect\n value={mockType}\n onChange={(e) =>\n dispatch({\n type: \"SET_MOCK_TYPE\",\n mockType: e.target.value as MockConfiguration[\"mockType\"],\n })}\n fill={true}\n options={[\n { label: \"Static Data\", value: \"static\" },\n { label: \"Function (Dynamic)\", value: \"function\" },\n {\n label: \"Pass-through (Original + Log)\",\n value: \"passthrough\",\n },\n ]}\n />\n </FormGroup>\n\n {selectedPrimitive.type === \"action\" && (\n <>\n <Checkbox\n checked={usePayload}\n onChange={(e) =>\n dispatch({\n type: \"SET_USE_PAYLOAD\",\n usePayload: e.currentTarget.checked,\n })}\n label=\"Use Payload\"\n />\n {usePayload && (\n <FormGroup\n label=\"Action Payload (JSON)\"\n helperText=\"The parameters to pass to the action\"\n >\n <TextArea\n value={mockPayload}\n onChange={(e) =>\n dispatch({\n type: \"SET_MOCK_PAYLOAD\",\n mockPayload: e.target.value,\n })}\n fill={true}\n rows={4}\n className={styles.codeEditor}\n />\n </FormGroup>\n )}\n </>\n )}\n\n <Checkbox\n checked={useResponse}\n onChange={(e) =>\n dispatch({\n type: \"SET_USE_RESPONSE\",\n useResponse: e.currentTarget.checked,\n })}\n label=\"Use Response\"\n />\n\n {useResponse && (\n <>\n {responseType === \"error\" && (\n <FormGroup\n label=\"Error Message\"\n helperText=\"The error message to return\"\n >\n <TextArea\n value={errorMessage}\n onChange={(e) =>\n dispatch({\n type: \"SET_ERROR_MESSAGE\",\n errorMessage: e.target.value,\n })}\n fill={true}\n rows={2}\n />\n </FormGroup>\n )}\n\n {mockType === \"static\" && responseType === \"success\" && (\n <FormGroup\n label=\"Mock Data (JSON)\"\n helperText=\"Enter the JSON response that this mock should return\"\n >\n <TextArea\n value={staticData}\n onChange={(e) =>\n dispatch({\n type: \"SET_STATIC_DATA\",\n staticData: e.target.value,\n })}\n fill={true}\n rows={8}\n className={styles.codeEditor}\n />\n </FormGroup>\n )}\n\n {mockType === \"function\" && (\n <FormGroup\n label=\"Mock Function\"\n helperText=\"Write a function that generates mock data dynamically\"\n >\n <TextArea\n value={functionCode}\n onChange={(e) =>\n dispatch({\n type: \"SET_FUNCTION_CODE\",\n functionCode: e.target.value,\n })}\n fill={true}\n rows={10}\n className={styles.codeEditor}\n />\n </FormGroup>\n )}\n </>\n )}\n\n {mockType === \"passthrough\" && (\n <Callout intent=\"primary\" icon=\"info-sign\">\n Pass-through mode will execute the real query but log all parameters\n and responses for debugging.\n </Callout>\n )}\n\n <div className={styles.editorActions}>\n <Button\n intent=\"primary\"\n icon=\"floppy-disk\"\n onClick={onSaveMock}\n >\n {editingMock ? \"Update Mock\" : \"Create Mock\"}\n </Button>\n <Button variant=\"minimal\" onClick={onCancel}>\n Cancel\n </Button>\n </div>\n </div>\n </div>\n );\n};\n\nexport function getMockPrimitiveInfo(primitive: SelectedPrimitive): {\n title: string;\n subtitle: string;\n icon:\n | \"flash\"\n | \"th-list\"\n | \"cube\"\n | \"link\"\n | \"database\"\n | \"grouped-bar-chart\";\n signature: string | undefined;\n} {\n switch (primitive.type) {\n case \"action\":\n return {\n title: primitive.data.name,\n subtitle: \"Action\",\n icon: \"flash\" as const,\n signature: primitive.data.signature,\n };\n case \"objectSet\":\n return {\n title: primitive.data.type,\n subtitle: \"Object Set Query\",\n icon: \"th-list\" as const,\n signature: `useOsdkObjects(${primitive.data.type})`,\n };\n case \"object\":\n return {\n title: primitive.data.type,\n subtitle: \"Object Query\",\n icon: \"cube\" as const,\n signature: `useOsdkObject(${primitive.data.type}, ${\n primitive.data.primaryKey || \"'...'\"\n })`,\n };\n case \"link\":\n return {\n title: primitive.data.linkName,\n subtitle: \"Link Traversal\",\n icon: \"link\" as const,\n signature: `useLinks(..., \"${primitive.data.linkName}\")`,\n };\n case \"query\":\n return {\n title: primitive.data.hookType,\n subtitle: \"Advanced Query\",\n icon: \"database\" as const,\n signature: primitive.data.signature,\n };\n case \"aggregation\":\n return {\n title: primitive.data.type,\n subtitle: \"Aggregation\",\n icon: \"grouped-bar-chart\" as const,\n signature: `useOsdkAggregation(${primitive.data.type})`,\n };\n }\n}\n\nexport function createMatcherFromPrimitive(primitive: SelectedPrimitive): {\n actionName?: string;\n objectType?: string;\n whereClause?: Record<string, unknown>;\n primaryKey?: string;\n linkName?: string;\n} {\n switch (primitive.type) {\n case \"action\":\n return { actionName: primitive.data.name };\n case \"objectSet\":\n return {\n objectType: primitive.data.type,\n whereClause: primitive.data.whereClause,\n };\n case \"aggregation\":\n return {\n objectType: primitive.data.type,\n whereClause: primitive.data.whereClause,\n };\n case \"object\":\n return {\n objectType: primitive.data.type,\n primaryKey: primitive.data.primaryKey,\n };\n case \"link\":\n return {\n objectType: primitive.data.sourceType,\n linkName: primitive.data.linkName,\n };\n case \"query\":\n return {};\n }\n}\n\nexport function createResponseFromConfig(\n primitive: SelectedPrimitive,\n mockData: unknown,\n): {\n type: \"action\";\n result: unknown;\n} | {\n type: \"list\";\n list: unknown[];\n hasMore: boolean;\n} | {\n type: \"object\";\n object: unknown;\n} {\n if (primitive.type === \"action\") {\n return { type: \"action\" as const, result: mockData };\n } else if (\n primitive.type === \"objectSet\" || primitive.type === \"link\"\n || primitive.type === \"aggregation\"\n ) {\n return {\n type: \"list\" as const,\n list: Array.isArray(mockData) ? mockData : [mockData],\n hasMore: false,\n };\n } else {\n return { type: \"object\" as const, object: mockData };\n }\n}\n\nexport interface MockItemProps {\n mock: MockResponse & { config: MockConfiguration };\n onToggle: () => void;\n onDelete: () => void;\n onEdit: () => void;\n}\n\nexport const MockItem: React.FC<MockItemProps> = React.memo(\n ({ mock, onToggle, onDelete, onEdit }) => {\n const info = mock.config\n ? getMockPrimitiveInfo(mock.config.primitive)\n : null;\n const label = {\n icon: info?.icon ?? (\"help\" as const),\n text: info?.title ?? \"Unknown\",\n };\n\n return (\n <div className={styles.interceptItem}>\n <div\n className={styles.interceptItemContent}\n onClick={onEdit}\n title=\"Click to view/edit configuration\"\n >\n <div className={styles.interceptItemHeader}>\n <Icon icon={label.icon} />\n <span className={styles.interceptItemTitle}>{label.text}</span>\n <span\n className={`${styles.interceptBadge} ${styles.interceptBadgeMock}`}\n >\n mock\n </span>\n <span className={styles.interceptItemMeta}>\n {mock.config?.mockType || \"static\"}\n </span>\n <span className={styles.interceptItemMeta}>\n Used: {mock.usedCount}x\n </span>\n </div>\n <div className={styles.interceptItemDetails}>\n {mock.config?.responseType === \"error\" && (\n <span className={styles.detail}>Error Response</span>\n )}\n </div>\n </div>\n\n <div className={styles.interceptItemActions}>\n <Button\n variant=\"minimal\"\n size=\"small\"\n intent={mock.enabled ? \"success\" : \"warning\"}\n icon={mock.enabled ? \"pause\" : \"play\"}\n onClick={onToggle}\n title={mock.enabled ? \"Pause mock\" : \"Resume mock\"}\n aria-label={mock.enabled ? \"Pause mock\" : \"Resume mock\"}\n />\n <Button\n variant=\"minimal\"\n size=\"small\"\n intent=\"danger\"\n icon=\"trash\"\n onClick={onDelete}\n title=\"Delete mock\"\n aria-label=\"Delete mock\"\n />\n </div>\n </div>\n );\n },\n);\n\nMockItem.displayName = \"MockItem\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MockEditor.js","names":["Button","Callout","Checkbox","FormGroup","HTMLSelect","Icon","Radio","RadioGroup","TextArea","React","styles","MockEditor","selectedPrimitive","editingMock","mockType","responseType","usePayload","mockPayload","useResponse","staticData","functionCode","errorMessage","dispatch","mockPrimitiveInfo","onSaveMock","onCancel","createElement","className","editorPanel","panelHeader","icon","panelTitle","panelSubtitle","title","subtitle","variant","size","onClick","editorContent","signature","primitiveSignature","label","labelInfo","inline","onChange","e","type","currentTarget","value","selectedValue","target","fill","options","Fragment","checked","helperText","rows","codeEditor","intent","editorActions","getMockPrimitiveInfo","primitive","data","name","primaryKey","linkName","hookType","createMatcherFromPrimitive","actionName","objectType","whereClause","sourceType","createResponseFromConfig","mockData","result","list","Array","isArray","hasMore","object","MockItem","memo","mock","onToggle","onDelete","onEdit","info","config","text","interceptItem","interceptItemContent","interceptItemHeader","interceptItemTitle","interceptBadge","interceptBadgeMock","interceptItemMeta","usedCount","interceptItemDetails","detail","interceptItemActions","enabled","displayName"],"sources":["MockEditor.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Button,\n Callout,\n Checkbox,\n FormGroup,\n HTMLSelect,\n Icon,\n Radio,\n RadioGroup,\n TextArea,\n} from \"@blueprintjs/core\";\nimport React from \"react\";\n\nimport type { MockResponse } from \"../mocking/MockManager.js\";\nimport type { InterceptAction, MockConfiguration } from \"./InterceptTab.js\";\nimport type { SelectedPrimitive } from \"./PrimitiveSelectionPanel.js\";\n\nimport styles from \"./InterceptTab.module.scss\";\n\ntype MockWithConfig = MockResponse & { config: MockConfiguration };\n\ninterface MockEditorProps {\n selectedPrimitive: SelectedPrimitive;\n editingMock: MockWithConfig | null;\n mockType: MockConfiguration[\"mockType\"];\n responseType: MockConfiguration[\"responseType\"];\n usePayload: boolean;\n mockPayload: string;\n useResponse: boolean;\n staticData: string;\n functionCode: string;\n errorMessage: string;\n dispatch: React.Dispatch<InterceptAction>;\n mockPrimitiveInfo: ReturnType<typeof getMockPrimitiveInfo> | null;\n onSaveMock: () => void;\n onCancel: () => void;\n}\n\nexport const MockEditor: React.FC<MockEditorProps> = ({\n selectedPrimitive,\n editingMock,\n mockType,\n responseType,\n usePayload,\n mockPayload,\n useResponse,\n staticData,\n functionCode,\n errorMessage,\n dispatch,\n mockPrimitiveInfo,\n onSaveMock,\n onCancel,\n}) => {\n return (\n <div className={styles.editorPanel}>\n <div className={styles.panelHeader}>\n <Icon icon={mockPrimitiveInfo?.icon ?? \"cube\"} />\n <div>\n <div className={styles.panelTitle}>\n {editingMock ? \"Edit Mock\" : \"Create Mock\"}\n </div>\n <div className={styles.panelSubtitle}>\n {mockPrimitiveInfo?.title} · {mockPrimitiveInfo?.subtitle}\n </div>\n </div>\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon=\"cross\"\n aria-label=\"Close editor\"\n onClick={onCancel}\n />\n </div>\n\n <div className={styles.editorContent}>\n {mockPrimitiveInfo?.signature && (\n <div className={styles.primitiveSignature}>\n <code>{mockPrimitiveInfo.signature}</code>\n </div>\n )}\n\n <FormGroup label=\"Response Type\" labelInfo=\"(required)\">\n <RadioGroup\n inline={true}\n onChange={(e) =>\n dispatch({\n type: \"SET_RESPONSE_TYPE\",\n responseType: e.currentTarget\n .value as MockConfiguration[\"responseType\"],\n })\n }\n selectedValue={responseType}\n >\n <Radio label=\"Success\" value=\"success\" />\n <Radio label=\"Error/Failure\" value=\"error\" />\n </RadioGroup>\n </FormGroup>\n\n <FormGroup label=\"Mock Type\" labelInfo=\"(required)\">\n <HTMLSelect\n value={mockType}\n onChange={(e) =>\n dispatch({\n type: \"SET_MOCK_TYPE\",\n mockType: e.target.value as MockConfiguration[\"mockType\"],\n })\n }\n fill={true}\n options={[\n { label: \"Static Data\", value: \"static\" },\n { label: \"Function (Dynamic)\", value: \"function\" },\n {\n label: \"Pass-through (Original + Log)\",\n value: \"passthrough\",\n },\n ]}\n />\n </FormGroup>\n\n {selectedPrimitive.type === \"action\" && (\n <>\n <Checkbox\n checked={usePayload}\n onChange={(e) =>\n dispatch({\n type: \"SET_USE_PAYLOAD\",\n usePayload: e.currentTarget.checked,\n })\n }\n label=\"Use Payload\"\n />\n {usePayload && (\n <FormGroup\n label=\"Action Payload (JSON)\"\n helperText=\"The parameters to pass to the action\"\n >\n <TextArea\n value={mockPayload}\n onChange={(e) =>\n dispatch({\n type: \"SET_MOCK_PAYLOAD\",\n mockPayload: e.target.value,\n })\n }\n fill={true}\n rows={4}\n className={styles.codeEditor}\n />\n </FormGroup>\n )}\n </>\n )}\n\n <Checkbox\n checked={useResponse}\n onChange={(e) =>\n dispatch({\n type: \"SET_USE_RESPONSE\",\n useResponse: e.currentTarget.checked,\n })\n }\n label=\"Use Response\"\n />\n\n {useResponse && (\n <>\n {responseType === \"error\" && (\n <FormGroup\n label=\"Error Message\"\n helperText=\"The error message to return\"\n >\n <TextArea\n value={errorMessage}\n onChange={(e) =>\n dispatch({\n type: \"SET_ERROR_MESSAGE\",\n errorMessage: e.target.value,\n })\n }\n fill={true}\n rows={2}\n />\n </FormGroup>\n )}\n\n {mockType === \"static\" && responseType === \"success\" && (\n <FormGroup\n label=\"Mock Data (JSON)\"\n helperText=\"Enter the JSON response that this mock should return\"\n >\n <TextArea\n value={staticData}\n onChange={(e) =>\n dispatch({\n type: \"SET_STATIC_DATA\",\n staticData: e.target.value,\n })\n }\n fill={true}\n rows={8}\n className={styles.codeEditor}\n />\n </FormGroup>\n )}\n\n {mockType === \"function\" && (\n <FormGroup\n label=\"Mock Function\"\n helperText=\"Write a function that generates mock data dynamically\"\n >\n <TextArea\n value={functionCode}\n onChange={(e) =>\n dispatch({\n type: \"SET_FUNCTION_CODE\",\n functionCode: e.target.value,\n })\n }\n fill={true}\n rows={10}\n className={styles.codeEditor}\n />\n </FormGroup>\n )}\n </>\n )}\n\n {mockType === \"passthrough\" && (\n <Callout intent=\"primary\" icon=\"info-sign\">\n Pass-through mode will execute the real query but log all parameters\n and responses for debugging.\n </Callout>\n )}\n\n <div className={styles.editorActions}>\n <Button intent=\"primary\" icon=\"floppy-disk\" onClick={onSaveMock}>\n {editingMock ? \"Update Mock\" : \"Create Mock\"}\n </Button>\n <Button variant=\"minimal\" onClick={onCancel}>\n Cancel\n </Button>\n </div>\n </div>\n </div>\n );\n};\n\nexport function getMockPrimitiveInfo(primitive: SelectedPrimitive): {\n title: string;\n subtitle: string;\n icon:\n | \"flash\"\n | \"th-list\"\n | \"cube\"\n | \"link\"\n | \"database\"\n | \"grouped-bar-chart\";\n signature: string | undefined;\n} {\n switch (primitive.type) {\n case \"action\":\n return {\n title: primitive.data.name,\n subtitle: \"Action\",\n icon: \"flash\" as const,\n signature: primitive.data.signature,\n };\n case \"objectSet\":\n return {\n title: primitive.data.type,\n subtitle: \"Object Set Query\",\n icon: \"th-list\" as const,\n signature: `useOsdkObjects(${primitive.data.type})`,\n };\n case \"object\":\n return {\n title: primitive.data.type,\n subtitle: \"Object Query\",\n icon: \"cube\" as const,\n signature: `useOsdkObject(${primitive.data.type}, ${\n primitive.data.primaryKey || \"'...'\"\n })`,\n };\n case \"link\":\n return {\n title: primitive.data.linkName,\n subtitle: \"Link Traversal\",\n icon: \"link\" as const,\n signature: `useLinks(..., \"${primitive.data.linkName}\")`,\n };\n case \"query\":\n return {\n title: primitive.data.hookType,\n subtitle: \"Advanced Query\",\n icon: \"database\" as const,\n signature: primitive.data.signature,\n };\n case \"aggregation\":\n return {\n title: primitive.data.type,\n subtitle: \"Aggregation\",\n icon: \"grouped-bar-chart\" as const,\n signature: `useOsdkAggregation(${primitive.data.type})`,\n };\n }\n}\n\nexport function createMatcherFromPrimitive(primitive: SelectedPrimitive): {\n actionName?: string;\n objectType?: string;\n whereClause?: Record<string, unknown>;\n primaryKey?: string;\n linkName?: string;\n} {\n switch (primitive.type) {\n case \"action\":\n return { actionName: primitive.data.name };\n case \"objectSet\":\n return {\n objectType: primitive.data.type,\n whereClause: primitive.data.whereClause,\n };\n case \"aggregation\":\n return {\n objectType: primitive.data.type,\n whereClause: primitive.data.whereClause,\n };\n case \"object\":\n return {\n objectType: primitive.data.type,\n primaryKey: primitive.data.primaryKey,\n };\n case \"link\":\n return {\n objectType: primitive.data.sourceType,\n linkName: primitive.data.linkName,\n };\n case \"query\":\n return {};\n }\n}\n\nexport function createResponseFromConfig(\n primitive: SelectedPrimitive,\n mockData: unknown\n):\n | {\n type: \"action\";\n result: unknown;\n }\n | {\n type: \"list\";\n list: unknown[];\n hasMore: boolean;\n }\n | {\n type: \"object\";\n object: unknown;\n } {\n if (primitive.type === \"action\") {\n return { type: \"action\" as const, result: mockData };\n } else if (\n primitive.type === \"objectSet\" ||\n primitive.type === \"link\" ||\n primitive.type === \"aggregation\"\n ) {\n return {\n type: \"list\" as const,\n list: Array.isArray(mockData) ? mockData : [mockData],\n hasMore: false,\n };\n } else {\n return { type: \"object\" as const, object: mockData };\n }\n}\n\nexport interface MockItemProps {\n mock: MockResponse & { config: MockConfiguration };\n onToggle: () => void;\n onDelete: () => void;\n onEdit: () => void;\n}\n\nexport const MockItem: React.FC<MockItemProps> = React.memo(\n ({ mock, onToggle, onDelete, onEdit }) => {\n const info = mock.config\n ? getMockPrimitiveInfo(mock.config.primitive)\n : null;\n const label = {\n icon: info?.icon ?? (\"help\" as const),\n text: info?.title ?? \"Unknown\",\n };\n\n return (\n <div className={styles.interceptItem}>\n <div\n className={styles.interceptItemContent}\n onClick={onEdit}\n title=\"Click to view/edit configuration\"\n >\n <div className={styles.interceptItemHeader}>\n <Icon icon={label.icon} />\n <span className={styles.interceptItemTitle}>{label.text}</span>\n <span\n className={`${styles.interceptBadge} ${styles.interceptBadgeMock}`}\n >\n mock\n </span>\n <span className={styles.interceptItemMeta}>\n {mock.config?.mockType || \"static\"}\n </span>\n <span className={styles.interceptItemMeta}>\n Used: {mock.usedCount}x\n </span>\n </div>\n <div className={styles.interceptItemDetails}>\n {mock.config?.responseType === \"error\" && (\n <span className={styles.detail}>Error Response</span>\n )}\n </div>\n </div>\n\n <div className={styles.interceptItemActions}>\n <Button\n variant=\"minimal\"\n size=\"small\"\n intent={mock.enabled ? \"success\" : \"warning\"}\n icon={mock.enabled ? \"pause\" : \"play\"}\n onClick={onToggle}\n title={mock.enabled ? \"Pause mock\" : \"Resume mock\"}\n aria-label={mock.enabled ? \"Pause mock\" : \"Resume mock\"}\n />\n <Button\n variant=\"minimal\"\n size=\"small\"\n intent=\"danger\"\n icon=\"trash\"\n onClick={onDelete}\n title=\"Delete mock\"\n aria-label=\"Delete mock\"\n />\n </div>\n </div>\n );\n }\n);\n\nMockItem.displayName = \"MockItem\";\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MonitorErrorBoundary.js","names":["React","styles","MonitorErrorBoundary","Component","constructor","props","state","hasError","error","getDerivedStateFromError","componentDidCatch","errorInfo","console","onError","render","process","env","NODE_ENV","createElement","className","container","title","message","stack","onClick","setState","retryButton","children"],"sources":["MonitorErrorBoundary.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport styles from \"./MonitorErrorBoundary.module.scss\";\n\nexport interface MonitorErrorBoundaryProps {\n children: React.ReactNode;\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n}\n\ninterface MonitorErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\nexport class MonitorErrorBoundary extends React.Component<\n MonitorErrorBoundaryProps,\n MonitorErrorBoundaryState\n> {\n constructor(props: MonitorErrorBoundaryProps) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): MonitorErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void {\n // eslint-disable-next-line no-console\n console.error(\"[MonitorErrorBoundary] Error caught:\", error);\n // eslint-disable-next-line no-console\n console.error(\"[MonitorErrorBoundary] Error info:\", errorInfo);\n this.props.onError?.(error, errorInfo);\n }\n\n render(): React.ReactNode {\n if (this.state.hasError) {\n if (process.env.NODE_ENV === \"development\") {\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>\n Monitor Error\n </h3>\n <p className={styles.message}>\n An error occurred in the monitoring panel:\n </p>\n <pre className={styles.stack}>\n {this.state.error?.message}\n {\"\\n\"}\n {this.state.error?.stack}\n </pre>\n <button\n onClick={() => this.setState({ hasError: false, error: null })}\n className={styles.retryButton}\n >\n Retry\n </button>\n </div>\n );\n }\n\n return null;\n }\n\n return this.props.children;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,oCAAoC;AAYvD,OAAO,MAAMC,oBAAoB,SAASF,KAAK,CAACG,SAAS,CAGvD;EACAC,WAAWA,CAACC,KAAgC,EAAE;IAC5C,KAAK,CAACA,KAAK,CAAC;IACZ,IAAI,CAACC,KAAK,GAAG;MAAEC,QAAQ,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAK,CAAC;EAC/C;EAEA,OAAOC,wBAAwBA,CAACD,KAAY,EAA6B;IACvE,OAAO;MAAED,QAAQ,EAAE,IAAI;MAAEC;IAAM,CAAC;EAClC;EAEAE,iBAAiBA,CAACF,KAAY,EAAEG,SAA0B,EAAQ;IAChE;IACAC,OAAO,CAACJ,KAAK,CAAC,sCAAsC,EAAEA,KAAK,CAAC;IAC5D;IACAI,OAAO,CAACJ,KAAK,CAAC,oCAAoC,EAAEG,SAAS,CAAC;IAC9D,IAAI,CAACN,KAAK,CAACQ,OAAO,GAAGL,KAAK,EAAEG,SAAS,CAAC;EACxC;EAEAG,MAAMA,CAAA,EAAoB;IACxB,IAAI,IAAI,CAACR,KAAK,CAACC,QAAQ,EAAE;MACvB,IAAIQ,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C,oBACEjB,KAAA,CAAAkB,aAAA;UAAKC,SAAS,EAAElB,MAAM,CAACmB;QAAU,gBAC/BpB,KAAA,CAAAkB,aAAA;UAAIC,SAAS,EAAElB,MAAM,CAACoB;QAAM,GAAC,eAEzB,CAAC,eACLrB,KAAA,CAAAkB,aAAA;UAAGC,SAAS,EAAElB,MAAM,CAACqB;QAAQ,GAAC,4CAE3B,CAAC,eACJtB,KAAA,CAAAkB,aAAA;UAAKC,SAAS,EAAElB,MAAM,CAACsB;QAAM,GAC1B,IAAI,CAACjB,KAAK,CAACE,KAAK,EAAEc,OAAO,EACzB,IAAI,EACJ,IAAI,CAAChB,KAAK,CAACE,KAAK,EAAEe,KAChB,CAAC,eACNvB,KAAA,CAAAkB,aAAA;UACEM,OAAO,EAAEA,CAAA,KAAM,IAAI,CAACC,QAAQ,CAAC;YAAElB,QAAQ,EAAE,KAAK;YAAEC,KAAK,EAAE;UAAK,CAAC,CAAE;UAC/DW,SAAS,EAAElB,MAAM,CAACyB;QAAY,GAC/B,OAEO,CACL,CAAC;MAEV;MAEA,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAACrB,KAAK,CAACsB,QAAQ;EAC5B;AACF","ignoreList":[]}
1
+ {"version":3,"file":"MonitorErrorBoundary.js","names":["React","styles","MonitorErrorBoundary","Component","constructor","props","state","hasError","error","getDerivedStateFromError","componentDidCatch","errorInfo","console","onError","render","process","env","NODE_ENV","createElement","className","container","title","message","stack","onClick","setState","retryButton","children"],"sources":["MonitorErrorBoundary.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\n\nimport styles from \"./MonitorErrorBoundary.module.scss\";\n\nexport interface MonitorErrorBoundaryProps {\n children: React.ReactNode;\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n}\n\ninterface MonitorErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\nexport class MonitorErrorBoundary extends React.Component<\n MonitorErrorBoundaryProps,\n MonitorErrorBoundaryState\n> {\n constructor(props: MonitorErrorBoundaryProps) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): MonitorErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void {\n // eslint-disable-next-line no-console\n console.error(\"[MonitorErrorBoundary] Error caught:\", error);\n // eslint-disable-next-line no-console\n console.error(\"[MonitorErrorBoundary] Error info:\", errorInfo);\n this.props.onError?.(error, errorInfo);\n }\n\n render(): React.ReactNode {\n if (this.state.hasError) {\n if (process.env.NODE_ENV === \"development\") {\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>Monitor Error</h3>\n <p className={styles.message}>\n An error occurred in the monitoring panel:\n </p>\n <pre className={styles.stack}>\n {this.state.error?.message}\n {\"\\n\"}\n {this.state.error?.stack}\n </pre>\n <button\n onClick={() => this.setState({ hasError: false, error: null })}\n className={styles.retryButton}\n >\n Retry\n </button>\n </div>\n );\n }\n\n return null;\n }\n\n return this.props.children;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,MAAM,MAAM,oCAAoC;AAYvD,OAAO,MAAMC,oBAAoB,SAASF,KAAK,CAACG,SAAS,CAGvD;EACAC,WAAWA,CAACC,KAAgC,EAAE;IAC5C,KAAK,CAACA,KAAK,CAAC;IACZ,IAAI,CAACC,KAAK,GAAG;MAAEC,QAAQ,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAK,CAAC;EAC/C;EAEA,OAAOC,wBAAwBA,CAACD,KAAY,EAA6B;IACvE,OAAO;MAAED,QAAQ,EAAE,IAAI;MAAEC;IAAM,CAAC;EAClC;EAEAE,iBAAiBA,CAACF,KAAY,EAAEG,SAA0B,EAAQ;IAChE;IACAC,OAAO,CAACJ,KAAK,CAAC,sCAAsC,EAAEA,KAAK,CAAC;IAC5D;IACAI,OAAO,CAACJ,KAAK,CAAC,oCAAoC,EAAEG,SAAS,CAAC;IAC9D,IAAI,CAACN,KAAK,CAACQ,OAAO,GAAGL,KAAK,EAAEG,SAAS,CAAC;EACxC;EAEAG,MAAMA,CAAA,EAAoB;IACxB,IAAI,IAAI,CAACR,KAAK,CAACC,QAAQ,EAAE;MACvB,IAAIQ,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C,oBACEjB,KAAA,CAAAkB,aAAA;UAAKC,SAAS,EAAElB,MAAM,CAACmB;QAAU,gBAC/BpB,KAAA,CAAAkB,aAAA;UAAIC,SAAS,EAAElB,MAAM,CAACoB;QAAM,GAAC,eAAiB,CAAC,eAC/CrB,KAAA,CAAAkB,aAAA;UAAGC,SAAS,EAAElB,MAAM,CAACqB;QAAQ,GAAC,4CAE3B,CAAC,eACJtB,KAAA,CAAAkB,aAAA;UAAKC,SAAS,EAAElB,MAAM,CAACsB;QAAM,GAC1B,IAAI,CAACjB,KAAK,CAACE,KAAK,EAAEc,OAAO,EACzB,IAAI,EACJ,IAAI,CAAChB,KAAK,CAACE,KAAK,EAAEe,KAChB,CAAC,eACNvB,KAAA,CAAAkB,aAAA;UACEM,OAAO,EAAEA,CAAA,KAAM,IAAI,CAACC,QAAQ,CAAC;YAAElB,QAAQ,EAAE,KAAK;YAAEC,KAAK,EAAE;UAAK,CAAC,CAAE;UAC/DW,SAAS,EAAElB,MAAM,CAACyB;QAAY,GAC/B,OAEO,CACL,CAAC;MAEV;MAEA,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAACrB,KAAK,CAACsB,QAAQ;EAC5B;AACF","ignoreList":[]}
@@ -25,8 +25,8 @@ import { ComputeTab } from "./ComputeTab.js";
25
25
  import { DebuggingTab } from "./DebuggingTab.js";
26
26
  import { InterceptTab } from "./InterceptTab.js";
27
27
  import { MonitorErrorBoundary } from "./MonitorErrorBoundary.js";
28
- import styles from "./MonitoringPanel.module.scss.js";
29
28
  import { PerformanceTab } from "./PerformanceTab.js";
29
+ import styles from "./MonitoringPanel.module.scss.js";
30
30
  const darkModeMql = typeof window !== "undefined" ? window.matchMedia("(prefers-color-scheme: dark)") : undefined;
31
31
  function subscribeDarkMode(callback) {
32
32
  if (darkModeMql) {