@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.
- package/CHANGELOG.md +10 -0
- package/build/esm/DevToolsContext.js.map +1 -1
- package/build/esm/components/ActionMetrics.js +2 -2
- package/build/esm/components/ActionMetrics.js.map +1 -1
- package/build/esm/components/BubbleChart.js +1 -1
- package/build/esm/components/BubbleChart.js.map +1 -1
- package/build/esm/components/CacheInspectorTab.js +1 -1
- package/build/esm/components/CacheInspectorTab.js.map +1 -1
- package/build/esm/components/CacheMetrics.js +1 -1
- package/build/esm/components/CacheMetrics.js.map +1 -1
- package/build/esm/components/ComponentCard.js +1 -1
- package/build/esm/components/ComponentCard.js.map +1 -1
- package/build/esm/components/ComputeTab.js +6 -6
- package/build/esm/components/ComputeTab.js.map +1 -1
- package/build/esm/components/CopyableCodeBlock.js.map +1 -1
- package/build/esm/components/DebuggingTab.js +2 -2
- package/build/esm/components/DebuggingTab.js.map +1 -1
- package/build/esm/components/HookRow.js.map +1 -1
- package/build/esm/components/ImprovementsTab.js.map +1 -1
- package/build/esm/components/InspectorSelectionHeader.js.map +1 -1
- package/build/esm/components/InterceptTab.js +5 -5
- package/build/esm/components/InterceptTab.js.map +1 -1
- package/build/esm/components/IssueCard.js.map +1 -1
- package/build/esm/components/LogEntryCard.js.map +1 -1
- package/build/esm/components/MockEditor.js.map +1 -1
- package/build/esm/components/MonitorErrorBoundary.js.map +1 -1
- package/build/esm/components/MonitoringPanel.js +1 -1
- package/build/esm/components/MonitoringPanel.js.map +1 -1
- package/build/esm/components/ObjectLoadingMetrics.js.map +1 -1
- package/build/esm/components/OsdkAppErrorBoundary.js.map +1 -1
- package/build/esm/components/OsdkDevTools.js.map +1 -1
- package/build/esm/components/OverrideEditor.js.map +1 -1
- package/build/esm/components/PerformanceTab.js +8 -8
- package/build/esm/components/PerformanceTab.js.map +1 -1
- package/build/esm/components/PrimitiveSelectionPanel.js +1 -1
- package/build/esm/components/PrimitiveSelectionPanel.js.map +1 -1
- package/build/esm/components/resolveComponentName.js +2 -2
- package/build/esm/components/resolveComponentName.js.map +1 -1
- package/build/esm/components/testHelpers.js.map +1 -1
- package/build/esm/fiber/DegradationNotice.js +2 -2
- package/build/esm/fiber/DegradationNotice.js.map +1 -1
- package/build/esm/fiber/DevtoolsHook.js +4 -4
- package/build/esm/fiber/DevtoolsHook.js.map +1 -1
- package/build/esm/fiber/FiberAccess.js.map +1 -1
- package/build/esm/fiber/FiberInspection.js.map +1 -1
- package/build/esm/fiber/FiberTags.js.map +1 -1
- package/build/esm/fiber/HookStateInspector.js.map +1 -1
- package/build/esm/fiber/SafeFiberOperation.js.map +1 -1
- package/build/esm/fiber/capabilities.js.map +1 -1
- package/build/esm/fiber/traverseFiber.js.map +1 -1
- package/build/esm/fiber/types.js.map +1 -1
- package/build/esm/fiber/validation.js +1 -1
- package/build/esm/fiber/validation.js.map +1 -1
- package/build/esm/hooks/createPollingStore.js.map +1 -1
- package/build/esm/hooks/useActiveComponents.js.map +1 -1
- package/build/esm/hooks/useComponentRegistry.js.map +1 -1
- package/build/esm/hooks/useComputeSelectors.js.map +1 -1
- package/build/esm/hooks/useConsoleLogs.js.map +1 -1
- package/build/esm/hooks/useInspectorSelection.js.map +1 -1
- package/build/esm/hooks/useMetrics.js.map +1 -1
- package/build/esm/hooks/usePersistedState.js.map +1 -1
- package/build/esm/hooks/useRecommendations.js +1 -1
- package/build/esm/hooks/useRecommendations.js.map +1 -1
- package/build/esm/hooks/useSharedTick.js.map +1 -1
- package/build/esm/hooks/useTimeElapsed.js.map +1 -1
- package/build/esm/hooks/useTrackerSubscription.js.map +1 -1
- package/build/esm/hooks/useUnusedFieldAnalysis.js.map +1 -1
- package/build/esm/inspector/ClickToInspectSystem.js.map +1 -1
- package/build/esm/inspector/components/ComponentLabel.js.map +1 -1
- package/build/esm/inspector/components/InspectorBanner.js.map +1 -1
- package/build/esm/inspector/components/InspectorOverlay.js.map +1 -1
- package/build/esm/inspector/components/SelectionHighlight.js.map +1 -1
- package/build/esm/inspector/createClickToInspect.js.map +1 -1
- package/build/esm/inspector/hooks/useAnimatedBounds.js.map +1 -1
- package/build/esm/inspector/inspectorController.js.map +1 -1
- package/build/esm/inspector/utils/elementBounds.js.map +1 -1
- package/build/esm/inspector/utils/interpolation.js.map +1 -1
- package/build/esm/inspector/utils/labelPositioning.js.map +1 -1
- package/build/esm/mocking/MockCacheKeyGenerator.js +3 -3
- package/build/esm/mocking/MockCacheKeyGenerator.js.map +1 -1
- package/build/esm/mocking/MockManager.js +4 -4
- package/build/esm/mocking/MockManager.js.map +1 -1
- package/build/esm/prototyping/PrototypeOverrideStore.js +1 -1
- package/build/esm/prototyping/PrototypeOverrideStore.js.map +1 -1
- package/build/esm/register.js.map +1 -1
- package/build/esm/store/ComputeStore.js.map +1 -1
- package/build/esm/store/ConsoleLogStore.js +2 -2
- package/build/esm/store/ConsoleLogStore.js.map +1 -1
- package/build/esm/store/MetricsStore.js.map +1 -1
- package/build/esm/store/MonitorStore.js.map +1 -1
- package/build/esm/store/WindowErrorStore.js.map +1 -1
- package/build/esm/styles.js.map +1 -1
- package/build/esm/types/compute.js.map +1 -1
- package/build/esm/utils/ActionLifecycleTracker.js.map +1 -1
- package/build/esm/utils/CacheEfficiencyAnalyzer.js.map +1 -1
- package/build/esm/utils/ComponentContextCapture.js +10 -10
- package/build/esm/utils/ComponentContextCapture.js.map +1 -1
- package/build/esm/utils/ComponentPrimitiveDiscovery.js.map +1 -1
- package/build/esm/utils/ComponentQueryRegistry.js +8 -8
- package/build/esm/utils/ComponentQueryRegistry.js.map +1 -1
- package/build/esm/utils/ComputeMonitor.js +2 -2
- package/build/esm/utils/ComputeMonitor.js.map +1 -1
- package/build/esm/utils/EventTimeline.js.map +1 -1
- package/build/esm/utils/LinkTraversalTracker.js +2 -2
- package/build/esm/utils/LinkTraversalTracker.js.map +1 -1
- package/build/esm/utils/MockDataGenerator.js +4 -4
- package/build/esm/utils/MockDataGenerator.js.map +1 -1
- package/build/esm/utils/ObservableClientMonitor.js +2 -2
- package/build/esm/utils/ObservableClientMonitor.js.map +1 -1
- package/build/esm/utils/PerformanceRecommendationEngine.js +1 -1
- package/build/esm/utils/PerformanceRecommendationEngine.js.map +1 -1
- package/build/esm/utils/PropertyAccessTracker.js +3 -3
- package/build/esm/utils/PropertyAccessTracker.js.map +1 -1
- package/build/esm/utils/RecommendationMatcher.js.map +1 -1
- package/build/esm/utils/SubscriptionTracker.js +1 -1
- package/build/esm/utils/SubscriptionTracker.js.map +1 -1
- package/build/esm/utils/UnusedFieldAnalyzer.js +6 -7
- package/build/esm/utils/UnusedFieldAnalyzer.js.map +1 -1
- package/build/esm/utils/WaterfallDetector.js.map +1 -1
- package/build/esm/utils/computePayload.js +2 -2
- package/build/esm/utils/computePayload.js.map +1 -1
- package/build/esm/utils/computeRequest.js.map +1 -1
- package/build/esm/utils/format.js.map +1 -1
- package/build/esm/vite/hookInstaller.js.map +1 -1
- package/build/esm/vite/index.js +2 -3
- package/build/esm/vite/index.js.map +1 -1
- package/build/types/DevToolsContext.d.ts.map +1 -1
- package/build/types/components/ActionMetrics.d.ts.map +1 -1
- package/build/types/components/BubbleChart.d.ts.map +1 -1
- package/build/types/components/CacheInspectorTab.d.ts.map +1 -1
- package/build/types/components/CacheMetrics.d.ts.map +1 -1
- package/build/types/components/ComponentCard.d.ts.map +1 -1
- package/build/types/components/ComputeTab.d.ts.map +1 -1
- package/build/types/components/CopyableCodeBlock.d.ts.map +1 -1
- package/build/types/components/DebuggingTab.d.ts.map +1 -1
- package/build/types/components/HookRow.d.ts.map +1 -1
- package/build/types/components/ImprovementsTab.d.ts.map +1 -1
- package/build/types/components/InspectorSelectionHeader.d.ts.map +1 -1
- package/build/types/components/InterceptTab.d.ts.map +1 -1
- package/build/types/components/IssueCard.d.ts.map +1 -1
- package/build/types/components/LogEntryCard.d.ts.map +1 -1
- package/build/types/components/MockEditor.d.ts.map +1 -1
- package/build/types/components/MonitorErrorBoundary.d.ts.map +1 -1
- package/build/types/components/MonitoringPanel.d.ts.map +1 -1
- package/build/types/components/ObjectLoadingMetrics.d.ts.map +1 -1
- package/build/types/components/OsdkAppErrorBoundary.d.ts.map +1 -1
- package/build/types/components/OsdkDevTools.d.ts.map +1 -1
- package/build/types/components/OverrideEditor.d.ts.map +1 -1
- package/build/types/components/PerformanceTab.d.ts.map +1 -1
- package/build/types/components/PrimitiveSelectionPanel.d.ts.map +1 -1
- package/build/types/components/resolveComponentName.d.ts.map +1 -1
- package/build/types/components/testHelpers.d.ts.map +1 -1
- package/build/types/fiber/DegradationNotice.d.ts.map +1 -1
- package/build/types/fiber/DevtoolsHook.d.ts.map +1 -1
- package/build/types/fiber/FiberInspection.d.ts.map +1 -1
- package/build/types/fiber/HookStateInspector.d.ts.map +1 -1
- package/build/types/fiber/capabilities.d.ts.map +1 -1
- package/build/types/fiber/traverseFiber.d.ts.map +1 -1
- package/build/types/fiber/types.d.ts.map +1 -1
- package/build/types/hooks/useActiveComponents.d.ts.map +1 -1
- package/build/types/hooks/useComponentRegistry.d.ts.map +1 -1
- package/build/types/hooks/useComputeSelectors.d.ts.map +1 -1
- package/build/types/hooks/useConsoleLogs.d.ts.map +1 -1
- package/build/types/hooks/useInspectorSelection.d.ts.map +1 -1
- package/build/types/hooks/useMetrics.d.ts.map +1 -1
- package/build/types/hooks/useRecommendations.d.ts.map +1 -1
- package/build/types/hooks/useUnusedFieldAnalysis.d.ts.map +1 -1
- package/build/types/inspector/ClickToInspectSystem.d.ts.map +1 -1
- package/build/types/inspector/components/ComponentLabel.d.ts.map +1 -1
- package/build/types/inspector/components/InspectorOverlay.d.ts.map +1 -1
- package/build/types/inspector/components/SelectionHighlight.d.ts.map +1 -1
- package/build/types/inspector/hooks/useAnimatedBounds.d.ts.map +1 -1
- package/build/types/mocking/MockManager.d.ts.map +1 -1
- package/build/types/store/ComputeStore.d.ts.map +1 -1
- package/build/types/store/ConsoleLogStore.d.ts.map +1 -1
- package/build/types/store/MetricsStore.d.ts.map +1 -1
- package/build/types/store/MonitorStore.d.ts.map +1 -1
- package/build/types/store/WindowErrorStore.d.ts.map +1 -1
- package/build/types/styles.d.ts +0 -1
- package/build/types/styles.d.ts.map +1 -1
- package/build/types/types/compute.d.ts.map +1 -1
- package/build/types/utils/ActionLifecycleTracker.d.ts.map +1 -1
- package/build/types/utils/CacheEfficiencyAnalyzer.d.ts.map +1 -1
- package/build/types/utils/ComponentContextCapture.d.ts.map +1 -1
- package/build/types/utils/ComponentPrimitiveDiscovery.d.ts.map +1 -1
- package/build/types/utils/ComponentQueryRegistry.d.ts.map +1 -1
- package/build/types/utils/ComputeMonitor.d.ts.map +1 -1
- package/build/types/utils/EventTimeline.d.ts.map +1 -1
- package/build/types/utils/LinkTraversalTracker.d.ts.map +1 -1
- package/build/types/utils/MockDataGenerator.d.ts.map +1 -1
- package/build/types/utils/ObservableClientMonitor.d.ts.map +1 -1
- package/build/types/utils/PerformanceRecommendationEngine.d.ts.map +1 -1
- package/build/types/utils/PropertyAccessTracker.d.ts.map +1 -1
- package/build/types/utils/SubscriptionTracker.d.ts.map +1 -1
- package/build/types/utils/UnusedFieldAnalyzer.d.ts.map +1 -1
- package/build/types/utils/WaterfallDetector.d.ts.map +1 -1
- package/build/types/utils/computeRequest.d.ts.map +1 -1
- package/build/types/vite/index.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitiveSelectionPanel.js","names":["Button","Collapse","Icon","React","useState","styles","PrimitiveSelectionPanel","primitives","onSelectPrimitive","onClose","openSections","setOpenSections","Set","toggleSection","section","newSections","has","delete","add","totalCount","actions","length","objectSets","objects","links","queries","aggregations","createElement","className","panel","header","headerContent","icon","headerTitle","headerSubtitle","componentName","variant","size","onClick","title","content","emptyState","emptySubtext","PrimitiveSection","count","isOpen","onToggle","map","action","index","PrimitiveItem","key","name","subtitle","location","type","data","objectSet","metadata","whereClause","orderBy","pageSize","filter","x","Boolean","object","primaryKey","undefined","link","linkName","sourceType","query","hookType","signature","aggregation","aggregate","children","sectionHeader","sectionTitle","sectionCount","sectionContent","item","itemContent","itemTitle","itemSubtitle","itemMetadata","meta","metadataTag","itemChevron"],"sources":["PrimitiveSelectionPanel.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 } from \"@blueprintjs/core\";\nimport React, { useState } from \"react\";\nimport type {\n DiscoveredAction,\n DiscoveredAggregation,\n DiscoveredLink,\n DiscoveredObject,\n DiscoveredObjectSet,\n DiscoveredPrimitives,\n DiscoveredQuery,\n} from \"../utils/ComponentPrimitiveDiscovery.js\";\nimport styles from \"./PrimitiveSelectionPanel.module.scss\";\n\nexport type PrimitiveType =\n | \"action\"\n | \"objectSet\"\n | \"object\"\n | \"link\"\n | \"query\"\n | \"aggregation\";\n\nexport type SelectedPrimitive =\n | { type: \"action\"; data: DiscoveredAction }\n | { type: \"objectSet\"; data: DiscoveredObjectSet }\n | { type: \"object\"; data: DiscoveredObject }\n | { type: \"link\"; data: DiscoveredLink }\n | { type: \"query\"; data: DiscoveredQuery }\n | { type: \"aggregation\"; data: DiscoveredAggregation };\n\nexport interface PrimitiveSelectionPanelProps {\n primitives: DiscoveredPrimitives;\n onSelectPrimitive: (primitive: SelectedPrimitive) => void;\n onClose: () => void;\n}\n\nexport const PrimitiveSelectionPanel: React.FC<PrimitiveSelectionPanelProps> = (\n {\n primitives,\n onSelectPrimitive,\n onClose,\n },\n) => {\n const [openSections, setOpenSections] = useState<Set<PrimitiveType>>(\n new Set([\"action\", \"objectSet\", \"object\", \"link\", \"query\", \"aggregation\"]),\n );\n\n const toggleSection = (section: PrimitiveType) => {\n const newSections = new Set(openSections);\n if (newSections.has(section)) {\n newSections.delete(section);\n } else {\n newSections.add(section);\n }\n setOpenSections(newSections);\n };\n\n const totalCount = primitives.actions.length\n + primitives.objectSets.length\n + primitives.objects.length\n + primitives.links.length\n + primitives.queries.length\n + primitives.aggregations.length;\n\n return (\n <div className={styles.panel}>\n <div className={styles.header}>\n <div className={styles.headerContent}>\n <Icon icon=\"cube\" />\n <div>\n <div className={styles.headerTitle}>Discovered OSDK Usage</div>\n <div className={styles.headerSubtitle}>\n {primitives.componentName} · {totalCount}{\" \"}\n item{totalCount !== 1 ? \"s\" : \"\"}\n </div>\n </div>\n </div>\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon=\"cross\"\n onClick={onClose}\n title=\"Close\"\n />\n </div>\n\n <div className={styles.content}>\n {totalCount === 0 && (\n <div className={styles.emptyState}>\n <Icon icon=\"search\" size={32} />\n <div>No OSDK usage found</div>\n <div className={styles.emptySubtext}>\n This component doesn't use any OSDK hooks\n </div>\n </div>\n )}\n\n {primitives.actions.length > 0 && (\n <PrimitiveSection\n title=\"Actions\"\n icon=\"flash\"\n count={primitives.actions.length}\n isOpen={openSections.has(\"action\")}\n onToggle={() => toggleSection(\"action\")}\n >\n {primitives.actions.map((action, index) => (\n <PrimitiveItem\n key={index}\n icon=\"flash\"\n title={action.name}\n subtitle={action.location}\n onClick={() =>\n onSelectPrimitive({ type: \"action\", data: action })}\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.objectSets.length > 0 && (\n <PrimitiveSection\n title=\"Object Sets\"\n icon=\"th-list\"\n count={primitives.objectSets.length}\n isOpen={openSections.has(\"objectSet\")}\n onToggle={() => toggleSection(\"objectSet\")}\n >\n {primitives.objectSets.map((objectSet, index) => (\n <PrimitiveItem\n key={index}\n icon=\"th-list\"\n title={objectSet.type}\n subtitle={objectSet.location}\n metadata={[\n objectSet.whereClause && \"filtered\",\n objectSet.orderBy && \"sorted\",\n objectSet.pageSize && `${objectSet.pageSize}/page`,\n ].filter((x): x is string => Boolean(x))}\n onClick={() =>\n onSelectPrimitive({ type: \"objectSet\", data: objectSet })}\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.objects.length > 0 && (\n <PrimitiveSection\n title=\"Objects\"\n icon=\"cube\"\n count={primitives.objects.length}\n isOpen={openSections.has(\"object\")}\n onToggle={() => toggleSection(\"object\")}\n >\n {primitives.objects.map((object, index) => (\n <PrimitiveItem\n key={index}\n icon=\"cube\"\n title={object.type}\n subtitle={object.location}\n metadata={object.primaryKey ? [object.primaryKey] : undefined}\n onClick={() =>\n onSelectPrimitive({ type: \"object\", data: object })}\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.links.length > 0 && (\n <PrimitiveSection\n title=\"Links\"\n icon=\"link\"\n count={primitives.links.length}\n isOpen={openSections.has(\"link\")}\n onToggle={() => toggleSection(\"link\")}\n >\n {primitives.links.map((link, index) => (\n <PrimitiveItem\n key={index}\n icon=\"link\"\n title={link.linkName}\n subtitle={link.location}\n metadata={[`from ${link.sourceType}`]}\n onClick={() => onSelectPrimitive({ type: \"link\", data: link })}\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.queries.length > 0 && (\n <PrimitiveSection\n title=\"Advanced Queries\"\n icon=\"database\"\n count={primitives.queries.length}\n isOpen={openSections.has(\"query\")}\n onToggle={() => toggleSection(\"query\")}\n >\n {primitives.queries.map((query, index) => (\n <PrimitiveItem\n key={index}\n icon=\"database\"\n title={query.hookType}\n subtitle={query.location}\n metadata={[query.signature]}\n onClick={() =>\n onSelectPrimitive({ type: \"query\", data: query })}\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.aggregations.length > 0 && (\n <PrimitiveSection\n title=\"Aggregations\"\n icon=\"grouped-bar-chart\"\n count={primitives.aggregations.length}\n isOpen={openSections.has(\"aggregation\")}\n onToggle={() => toggleSection(\"aggregation\")}\n >\n {primitives.aggregations.map((aggregation, index) => (\n <PrimitiveItem\n key={index}\n icon=\"grouped-bar-chart\"\n title={aggregation.type}\n subtitle={aggregation.location}\n metadata={[\n aggregation.whereClause && \"filtered\",\n aggregation.aggregate && \"aggregated\",\n ].filter((x): x is string => Boolean(x))}\n onClick={() =>\n onSelectPrimitive({\n type: \"aggregation\",\n data: aggregation,\n })}\n />\n ))}\n </PrimitiveSection>\n )}\n </div>\n </div>\n );\n};\n\ninterface PrimitiveSectionProps {\n title: string;\n icon:\n | \"flash\"\n | \"th-list\"\n | \"cube\"\n | \"link\"\n | \"database\"\n | \"grouped-bar-chart\";\n count: number;\n isOpen: boolean;\n onToggle: () => void;\n children: React.ReactNode;\n}\n\nconst PrimitiveSection: React.FC<PrimitiveSectionProps> = ({\n title,\n icon,\n count,\n isOpen,\n onToggle,\n children,\n}) => {\n return (\n <div className={styles.section}>\n <button\n type=\"button\"\n className={styles.sectionHeader}\n onClick={onToggle}\n >\n <Icon icon={isOpen ? \"chevron-down\" : \"chevron-right\"} size={12} />\n <Icon icon={icon} />\n <span className={styles.sectionTitle}>{title}</span>\n <span className={styles.sectionCount}>{count}</span>\n </button>\n <Collapse isOpen={isOpen}>\n <div className={styles.sectionContent}>{children}</div>\n </Collapse>\n </div>\n );\n};\n\ninterface PrimitiveItemProps {\n icon:\n | \"flash\"\n | \"th-list\"\n | \"cube\"\n | \"link\"\n | \"database\"\n | \"grouped-bar-chart\";\n title: string;\n subtitle: string;\n metadata?: string[];\n onClick: () => void;\n}\n\nconst PrimitiveItem: React.FC<PrimitiveItemProps> = ({\n icon,\n title,\n subtitle,\n metadata,\n onClick,\n}) => {\n return (\n <button\n type=\"button\"\n className={styles.item}\n onClick={onClick}\n >\n <Icon icon={icon} size={14} />\n <div className={styles.itemContent}>\n <div className={styles.itemTitle}>{title}</div>\n <div className={styles.itemSubtitle}>{subtitle}</div>\n {metadata && metadata.length > 0 && (\n <div className={styles.itemMetadata}>\n {metadata.map((meta, index) => (\n <span key={index} className={styles.metadataTag}>\n {meta}\n </span>\n ))}\n </div>\n )}\n </div>\n <Icon icon=\"chevron-right\" size={12} className={styles.itemChevron} />\n </button>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PrimitiveSelectionPanel.js","names":["Button","Collapse","Icon","React","useState","styles","PrimitiveSelectionPanel","primitives","onSelectPrimitive","onClose","openSections","setOpenSections","Set","toggleSection","section","newSections","has","delete","add","totalCount","actions","length","objectSets","objects","links","queries","aggregations","createElement","className","panel","header","headerContent","icon","headerTitle","headerSubtitle","componentName","variant","size","onClick","title","content","emptyState","emptySubtext","PrimitiveSection","count","isOpen","onToggle","map","action","index","PrimitiveItem","key","name","subtitle","location","type","data","objectSet","metadata","whereClause","orderBy","pageSize","filter","x","Boolean","object","primaryKey","undefined","link","linkName","sourceType","query","hookType","signature","aggregation","aggregate","children","sectionHeader","sectionTitle","sectionCount","sectionContent","item","itemContent","itemTitle","itemSubtitle","itemMetadata","meta","metadataTag","itemChevron"],"sources":["PrimitiveSelectionPanel.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 } from \"@blueprintjs/core\";\nimport React, { useState } from \"react\";\n\nimport type {\n DiscoveredAction,\n DiscoveredAggregation,\n DiscoveredLink,\n DiscoveredObject,\n DiscoveredObjectSet,\n DiscoveredPrimitives,\n DiscoveredQuery,\n} from \"../utils/ComponentPrimitiveDiscovery.js\";\n\nimport styles from \"./PrimitiveSelectionPanel.module.scss\";\n\nexport type PrimitiveType =\n | \"action\"\n | \"objectSet\"\n | \"object\"\n | \"link\"\n | \"query\"\n | \"aggregation\";\n\nexport type SelectedPrimitive =\n | { type: \"action\"; data: DiscoveredAction }\n | { type: \"objectSet\"; data: DiscoveredObjectSet }\n | { type: \"object\"; data: DiscoveredObject }\n | { type: \"link\"; data: DiscoveredLink }\n | { type: \"query\"; data: DiscoveredQuery }\n | { type: \"aggregation\"; data: DiscoveredAggregation };\n\nexport interface PrimitiveSelectionPanelProps {\n primitives: DiscoveredPrimitives;\n onSelectPrimitive: (primitive: SelectedPrimitive) => void;\n onClose: () => void;\n}\n\nexport const PrimitiveSelectionPanel: React.FC<\n PrimitiveSelectionPanelProps\n> = ({ primitives, onSelectPrimitive, onClose }) => {\n const [openSections, setOpenSections] = useState<Set<PrimitiveType>>(\n new Set([\"action\", \"objectSet\", \"object\", \"link\", \"query\", \"aggregation\"])\n );\n\n const toggleSection = (section: PrimitiveType) => {\n const newSections = new Set(openSections);\n if (newSections.has(section)) {\n newSections.delete(section);\n } else {\n newSections.add(section);\n }\n setOpenSections(newSections);\n };\n\n const totalCount =\n primitives.actions.length +\n primitives.objectSets.length +\n primitives.objects.length +\n primitives.links.length +\n primitives.queries.length +\n primitives.aggregations.length;\n\n return (\n <div className={styles.panel}>\n <div className={styles.header}>\n <div className={styles.headerContent}>\n <Icon icon=\"cube\" />\n <div>\n <div className={styles.headerTitle}>Discovered OSDK Usage</div>\n <div className={styles.headerSubtitle}>\n {primitives.componentName} · {totalCount} item\n {totalCount !== 1 ? \"s\" : \"\"}\n </div>\n </div>\n </div>\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon=\"cross\"\n onClick={onClose}\n title=\"Close\"\n />\n </div>\n\n <div className={styles.content}>\n {totalCount === 0 && (\n <div className={styles.emptyState}>\n <Icon icon=\"search\" size={32} />\n <div>No OSDK usage found</div>\n <div className={styles.emptySubtext}>\n This component doesn't use any OSDK hooks\n </div>\n </div>\n )}\n\n {primitives.actions.length > 0 && (\n <PrimitiveSection\n title=\"Actions\"\n icon=\"flash\"\n count={primitives.actions.length}\n isOpen={openSections.has(\"action\")}\n onToggle={() => toggleSection(\"action\")}\n >\n {primitives.actions.map((action, index) => (\n <PrimitiveItem\n key={index}\n icon=\"flash\"\n title={action.name}\n subtitle={action.location}\n onClick={() =>\n onSelectPrimitive({ type: \"action\", data: action })\n }\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.objectSets.length > 0 && (\n <PrimitiveSection\n title=\"Object Sets\"\n icon=\"th-list\"\n count={primitives.objectSets.length}\n isOpen={openSections.has(\"objectSet\")}\n onToggle={() => toggleSection(\"objectSet\")}\n >\n {primitives.objectSets.map((objectSet, index) => (\n <PrimitiveItem\n key={index}\n icon=\"th-list\"\n title={objectSet.type}\n subtitle={objectSet.location}\n metadata={[\n objectSet.whereClause && \"filtered\",\n objectSet.orderBy && \"sorted\",\n objectSet.pageSize && `${objectSet.pageSize}/page`,\n ].filter((x): x is string => Boolean(x))}\n onClick={() =>\n onSelectPrimitive({ type: \"objectSet\", data: objectSet })\n }\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.objects.length > 0 && (\n <PrimitiveSection\n title=\"Objects\"\n icon=\"cube\"\n count={primitives.objects.length}\n isOpen={openSections.has(\"object\")}\n onToggle={() => toggleSection(\"object\")}\n >\n {primitives.objects.map((object, index) => (\n <PrimitiveItem\n key={index}\n icon=\"cube\"\n title={object.type}\n subtitle={object.location}\n metadata={object.primaryKey ? [object.primaryKey] : undefined}\n onClick={() =>\n onSelectPrimitive({ type: \"object\", data: object })\n }\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.links.length > 0 && (\n <PrimitiveSection\n title=\"Links\"\n icon=\"link\"\n count={primitives.links.length}\n isOpen={openSections.has(\"link\")}\n onToggle={() => toggleSection(\"link\")}\n >\n {primitives.links.map((link, index) => (\n <PrimitiveItem\n key={index}\n icon=\"link\"\n title={link.linkName}\n subtitle={link.location}\n metadata={[`from ${link.sourceType}`]}\n onClick={() => onSelectPrimitive({ type: \"link\", data: link })}\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.queries.length > 0 && (\n <PrimitiveSection\n title=\"Advanced Queries\"\n icon=\"database\"\n count={primitives.queries.length}\n isOpen={openSections.has(\"query\")}\n onToggle={() => toggleSection(\"query\")}\n >\n {primitives.queries.map((query, index) => (\n <PrimitiveItem\n key={index}\n icon=\"database\"\n title={query.hookType}\n subtitle={query.location}\n metadata={[query.signature]}\n onClick={() =>\n onSelectPrimitive({ type: \"query\", data: query })\n }\n />\n ))}\n </PrimitiveSection>\n )}\n\n {primitives.aggregations.length > 0 && (\n <PrimitiveSection\n title=\"Aggregations\"\n icon=\"grouped-bar-chart\"\n count={primitives.aggregations.length}\n isOpen={openSections.has(\"aggregation\")}\n onToggle={() => toggleSection(\"aggregation\")}\n >\n {primitives.aggregations.map((aggregation, index) => (\n <PrimitiveItem\n key={index}\n icon=\"grouped-bar-chart\"\n title={aggregation.type}\n subtitle={aggregation.location}\n metadata={[\n aggregation.whereClause && \"filtered\",\n aggregation.aggregate && \"aggregated\",\n ].filter((x): x is string => Boolean(x))}\n onClick={() =>\n onSelectPrimitive({\n type: \"aggregation\",\n data: aggregation,\n })\n }\n />\n ))}\n </PrimitiveSection>\n )}\n </div>\n </div>\n );\n};\n\ninterface PrimitiveSectionProps {\n title: string;\n icon:\n | \"flash\"\n | \"th-list\"\n | \"cube\"\n | \"link\"\n | \"database\"\n | \"grouped-bar-chart\";\n count: number;\n isOpen: boolean;\n onToggle: () => void;\n children: React.ReactNode;\n}\n\nconst PrimitiveSection: React.FC<PrimitiveSectionProps> = ({\n title,\n icon,\n count,\n isOpen,\n onToggle,\n children,\n}) => {\n return (\n <div className={styles.section}>\n <button type=\"button\" className={styles.sectionHeader} onClick={onToggle}>\n <Icon icon={isOpen ? \"chevron-down\" : \"chevron-right\"} size={12} />\n <Icon icon={icon} />\n <span className={styles.sectionTitle}>{title}</span>\n <span className={styles.sectionCount}>{count}</span>\n </button>\n <Collapse isOpen={isOpen}>\n <div className={styles.sectionContent}>{children}</div>\n </Collapse>\n </div>\n );\n};\n\ninterface PrimitiveItemProps {\n icon:\n | \"flash\"\n | \"th-list\"\n | \"cube\"\n | \"link\"\n | \"database\"\n | \"grouped-bar-chart\";\n title: string;\n subtitle: string;\n metadata?: string[];\n onClick: () => void;\n}\n\nconst PrimitiveItem: React.FC<PrimitiveItemProps> = ({\n icon,\n title,\n subtitle,\n metadata,\n onClick,\n}) => {\n return (\n <button type=\"button\" className={styles.item} onClick={onClick}>\n <Icon icon={icon} size={14} />\n <div className={styles.itemContent}>\n <div className={styles.itemTitle}>{title}</div>\n <div className={styles.itemSubtitle}>{subtitle}</div>\n {metadata && metadata.length > 0 && (\n <div className={styles.itemMetadata}>\n {metadata.map((meta, index) => (\n <span key={index} className={styles.metadataTag}>\n {meta}\n </span>\n ))}\n </div>\n )}\n </div>\n <Icon icon=\"chevron-right\" size={12} className={styles.itemChevron} />\n </button>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,14 +32,14 @@ export function deriveComponentName(bindings) {
|
|
|
32
32
|
}
|
|
33
33
|
const parts = [];
|
|
34
34
|
if (objectTypes.size > 0) {
|
|
35
|
-
const types =
|
|
35
|
+
const types = [...objectTypes].slice(0, 2);
|
|
36
36
|
parts.push(types.join(", "));
|
|
37
37
|
if (objectTypes.size > 2) {
|
|
38
38
|
parts[parts.length - 1] += ` +${objectTypes.size - 2}`;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
if (actionNames.size > 0) {
|
|
42
|
-
const actions =
|
|
42
|
+
const actions = [...actionNames].slice(0, 2);
|
|
43
43
|
parts.push(`Actions: ${actions.join(", ")}`);
|
|
44
44
|
}
|
|
45
45
|
if (parts.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveComponentName.js","names":["deriveComponentName","bindings","objectTypes","Set","actionNames","binding","params","queryParams","type","add","objectType","actionName","sourceType","sourceObject","split","parts","size","types","
|
|
1
|
+
{"version":3,"file":"resolveComponentName.js","names":["deriveComponentName","bindings","objectTypes","Set","actionNames","binding","params","queryParams","type","add","objectType","actionName","sourceType","sourceObject","split","parts","size","types","slice","push","join","length","actions","resolveComponentName","firstBinding","componentDisplayName","componentName"],"sources":["resolveComponentName.ts"],"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 type { ComponentHookBinding } from \"../utils/ComponentQueryRegistry.js\";\n\nexport function deriveComponentName(\n bindings: ComponentHookBinding[]\n): string | null {\n const objectTypes = new Set<string>();\n const actionNames = new Set<string>();\n\n for (const binding of bindings) {\n const params = binding.queryParams;\n if (params.type === \"object\" || params.type === \"list\") {\n objectTypes.add(params.objectType);\n } else if (params.type === \"action\") {\n actionNames.add(params.actionName);\n } else if (params.type === \"links\") {\n const sourceType = params.sourceObject.split(\":\")[0];\n if (sourceType) {\n objectTypes.add(sourceType);\n }\n }\n }\n\n const parts: string[] = [];\n\n if (objectTypes.size > 0) {\n const types = [...objectTypes].slice(0, 2);\n parts.push(types.join(\", \"));\n if (objectTypes.size > 2) {\n parts[parts.length - 1] += ` +${objectTypes.size - 2}`;\n }\n }\n\n if (actionNames.size > 0) {\n const actions = [...actionNames].slice(0, 2);\n parts.push(`Actions: ${actions.join(\", \")}`);\n }\n\n if (parts.length === 0) {\n return null;\n }\n\n return parts.join(\" | \");\n}\n\nexport function resolveComponentName(bindings: ComponentHookBinding[]): string {\n if (bindings.length === 0) {\n return \"Anonymous\";\n }\n\n const firstBinding = bindings[0];\n return (\n firstBinding.componentDisplayName ||\n (firstBinding.componentName !== \"Unknown\"\n ? firstBinding.componentName\n : null) ||\n deriveComponentName(bindings) ||\n \"Anonymous\"\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,mBAAmBA,CACjCC,QAAgC,EACjB;EACf,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAS,CAAC;EACrC,MAAMC,WAAW,GAAG,IAAID,GAAG,CAAS,CAAC;EAErC,KAAK,MAAME,OAAO,IAAIJ,QAAQ,EAAE;IAC9B,MAAMK,MAAM,GAAGD,OAAO,CAACE,WAAW;IAClC,IAAID,MAAM,CAACE,IAAI,KAAK,QAAQ,IAAIF,MAAM,CAACE,IAAI,KAAK,MAAM,EAAE;MACtDN,WAAW,CAACO,GAAG,CAACH,MAAM,CAACI,UAAU,CAAC;IACpC,CAAC,MAAM,IAAIJ,MAAM,CAACE,IAAI,KAAK,QAAQ,EAAE;MACnCJ,WAAW,CAACK,GAAG,CAACH,MAAM,CAACK,UAAU,CAAC;IACpC,CAAC,MAAM,IAAIL,MAAM,CAACE,IAAI,KAAK,OAAO,EAAE;MAClC,MAAMI,UAAU,GAAGN,MAAM,CAACO,YAAY,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MACpD,IAAIF,UAAU,EAAE;QACdV,WAAW,CAACO,GAAG,CAACG,UAAU,CAAC;MAC7B;IACF;EACF;EAEA,MAAMG,KAAe,GAAG,EAAE;EAE1B,IAAIb,WAAW,CAACc,IAAI,GAAG,CAAC,EAAE;IACxB,MAAMC,KAAK,GAAG,CAAC,GAAGf,WAAW,CAAC,CAACgB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1CH,KAAK,CAACI,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAIlB,WAAW,CAACc,IAAI,GAAG,CAAC,EAAE;MACxBD,KAAK,CAACA,KAAK,CAACM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAKnB,WAAW,CAACc,IAAI,GAAG,CAAC,EAAE;IACxD;EACF;EAEA,IAAIZ,WAAW,CAACY,IAAI,GAAG,CAAC,EAAE;IACxB,MAAMM,OAAO,GAAG,CAAC,GAAGlB,WAAW,CAAC,CAACc,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5CH,KAAK,CAACI,IAAI,CAAC,YAAYG,OAAO,CAACF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;EAC9C;EAEA,IAAIL,KAAK,CAACM,MAAM,KAAK,CAAC,EAAE;IACtB,OAAO,IAAI;EACb;EAEA,OAAON,KAAK,CAACK,IAAI,CAAC,KAAK,CAAC;AAC1B;AAEA,OAAO,SAASG,oBAAoBA,CAACtB,QAAgC,EAAU;EAC7E,IAAIA,QAAQ,CAACoB,MAAM,KAAK,CAAC,EAAE;IACzB,OAAO,WAAW;EACpB;EAEA,MAAMG,YAAY,GAAGvB,QAAQ,CAAC,CAAC,CAAC;EAChC,OACEuB,YAAY,CAACC,oBAAoB,KAChCD,YAAY,CAACE,aAAa,KAAK,SAAS,GACrCF,YAAY,CAACE,aAAa,GAC1B,IAAI,CAAC,IACT1B,mBAAmB,CAACC,QAAQ,CAAC,IAC7B,WAAW;AAEf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testHelpers.js","names":["vi","emptyAggregates","cacheHits","cacheMisses","deduplications","optimisticUpdates","totalResponseTime","cachedResponseTime","networkResponseTime","requestsSaved","bytesServedFromCache","totalObjectsFromCache","totalObjectsFromNetwork","revalidations","actionCount","configuredOptimisticActionCount","optimisticActionCount","rollbackActionCount","totalOptimisticRenderTime","totalServerRoundTripTime","totalPerceivedSpeedup","totalOptimisticObjectsAffected","validationCount","totalValidationTime","emptyRates","cacheHitRate","deduplicationRate","optimisticUpdateRate","averageResponseTime","averageCachedResponseTime","optimisticActionCoverage","configuredOptimisticActionRate","rollbackRate","averageOptimisticRenderTime","averageServerRoundTripTime","averagePerceivedSpeedup","averageValidationTime","validationTimeSaved","emptyMetricsSnapshot","recent","aggregates","rates","timeSeries","timestamps","emptyComputeSnapshot","metrics","totalUsage","lastMinuteUsage","requestCount","fulfilledCount","failedCount","pendingCount","averageUsagePerRequest","averageResponseBytes","requests","isRecording","isNetworkPaused","lastRecordingEvent","undefined","createMockMetricsStore","subscribers","Set","getSnapshot","fn","mockReturnValue","subscribe","cb","add","delete","recordCacheHit","recordCacheMiss","recordDeduplication","recordOptimisticUpdate","recordActionLifecycle","recordActionValidation","recordActionError","getActionErrors","getCacheHitRate","reset","dispose","createMockComputeStore","getIsNetworkPaused","createPendingRequest","fulfillRequest","failRequest","setIsRecording","toggleNetworkPaused","getRequests","getMetrics","getLastRecordingEvent","createMockComponentRegistry","getActiveComponents","Map","getComponentBindings","getAllBindings","registerBinding","unregisterComponent","getVersion","clear","getStats","totalBindings","activeBindings","unmountedBindings","components","queries","createMockMonitorStore","metricsStore","computeStore","registry","getMetricsStore","getComputeStore","getComponentRegistry","getLinkTraversalTracker","recordTraversal","recordLinkedObjects","getRecentTraversals","getTraversalsByComponent","getTraversalsByLink","getTraversalChain","findRedundantTraversals","setEventTimeline","totalTraversals","uniqueLinks","uniqueComponents","mostUsedLinks","linkedObjectsTracked","getPropertyAccessTracker","wrapObject","obj","recordAccess","incrementRenderCycle","registerComponent","getAccessedProperties","getUnusedPropertiesForObject","findWastedRenders","getRecentAccesses","getAccessesByComponent","getAccessesByObject","getAccessFrequency","clearComponent","totalAccesses","uniqueObjects","uniqueProperties","mostAccessedProperties","trackedComponents","getWastedRenders","getUnusedProperties","getMonitor","getEventTimeline","record","getEventsByType","getAllEvents","getEventCounts","findEventsInWindow","findEventsBefore","getLastEmission","getSize","getPrimitiveDiscovery","discoverPrimitives","getClickToInspectSystem","getMockManager","getMocks","getMock","findMockByCacheKey","registerMock","removeMock","updateMock","findMock","getRequestLog","totalMocks","enabledMocks","disabledMocks","exhaustedMocks","totalRequests","matchedRequests","exportMocks","importMocks","getRecommendationEngine","generateRecommendations","calculatePerformanceScore","overall","grade","categories","cache","bandwidth","codeQuality","dismissRecommendation","clearDismissed","getSummary","issueCount","criticalCount","timeToFix","estimatedImprovement","getConsoleLogStore","getEntries","install","uninstall","suppress","unsuppress","getWindowErrorStore","recordError","getPrototypeOverrideStore","setOverride","getOverride","getOverrideBySignature","getAllOverrides","getAll","hasOverride","removeOverride","updateOverride","clearOverride","clearAll","getCacheEntries","mockResolvedValue","loadCacheEntries","getCacheSnapshot","entries","stats","totalEntries","totalSize","totalHits","invalidateCacheEntry","wrapExistingClient","installGlobalFetchInterceptor"],"sources":["testHelpers.ts"],"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 { vi } from \"vitest\";\nimport type { MonitorStore } from \"../store/MonitorStore.js\";\n\nconst emptyAggregates = {\n cacheHits: 0,\n cacheMisses: 0,\n deduplications: 0,\n optimisticUpdates: 0,\n totalResponseTime: 0,\n cachedResponseTime: 0,\n networkResponseTime: 0,\n requestsSaved: 0,\n bytesServedFromCache: 0,\n totalObjectsFromCache: 0,\n totalObjectsFromNetwork: 0,\n revalidations: 0,\n actionCount: 0,\n configuredOptimisticActionCount: 0,\n optimisticActionCount: 0,\n rollbackActionCount: 0,\n totalOptimisticRenderTime: 0,\n totalServerRoundTripTime: 0,\n totalPerceivedSpeedup: 0,\n totalOptimisticObjectsAffected: 0,\n validationCount: 0,\n totalValidationTime: 0,\n};\n\nconst emptyRates = {\n cacheHitRate: 0,\n deduplicationRate: 0,\n optimisticUpdateRate: 0,\n averageResponseTime: 0,\n averageCachedResponseTime: 0,\n optimisticActionCoverage: 0,\n configuredOptimisticActionRate: 0,\n rollbackRate: 0,\n averageOptimisticRenderTime: 0,\n averageServerRoundTripTime: 0,\n averagePerceivedSpeedup: 0,\n averageValidationTime: 0,\n validationTimeSaved: 0,\n};\n\nconst emptyMetricsSnapshot = {\n recent: [],\n aggregates: emptyAggregates,\n rates: emptyRates,\n timeSeries: {\n timestamps: [],\n cacheHits: [],\n cacheMisses: [],\n revalidations: [],\n deduplications: [],\n },\n};\n\nconst emptyComputeSnapshot = {\n metrics: {\n totalUsage: 0,\n lastMinuteUsage: 0,\n requestCount: 0,\n fulfilledCount: 0,\n failedCount: 0,\n pendingCount: 0,\n averageUsagePerRequest: 0,\n averageResponseBytes: 0,\n },\n requests: [],\n isRecording: false,\n isNetworkPaused: false,\n lastRecordingEvent: undefined,\n};\n\nfunction createMockMetricsStore() {\n const subscribers = new Set<() => void>();\n return {\n getSnapshot: vi.fn().mockReturnValue(emptyMetricsSnapshot),\n subscribe: vi.fn((cb: () => void) => {\n subscribers.add(cb);\n return () => subscribers.delete(cb);\n }),\n recordCacheHit: vi.fn(),\n recordCacheMiss: vi.fn(),\n recordDeduplication: vi.fn(),\n recordOptimisticUpdate: vi.fn(),\n recordActionLifecycle: vi.fn(),\n recordActionValidation: vi.fn(),\n recordActionError: vi.fn(),\n getActionErrors: vi.fn().mockReturnValue([]),\n getCacheHitRate: vi.fn().mockReturnValue(0),\n reset: vi.fn(),\n dispose: vi.fn(),\n };\n}\n\nfunction createMockComputeStore() {\n const subscribers = new Set<() => void>();\n return {\n getSnapshot: vi.fn().mockReturnValue(emptyComputeSnapshot),\n subscribe: vi.fn((cb: () => void) => {\n subscribers.add(cb);\n return () => subscribers.delete(cb);\n }),\n isRecording: vi.fn().mockReturnValue(false),\n getIsNetworkPaused: vi.fn().mockReturnValue(false),\n createPendingRequest: vi.fn(),\n fulfillRequest: vi.fn(),\n failRequest: vi.fn(),\n setIsRecording: vi.fn(),\n toggleNetworkPaused: vi.fn(),\n getRequests: vi.fn().mockReturnValue([]),\n getMetrics: vi.fn().mockReturnValue(emptyComputeSnapshot.metrics),\n getLastRecordingEvent: vi.fn().mockReturnValue(undefined),\n reset: vi.fn(),\n dispose: vi.fn(),\n };\n}\n\nfunction createMockComponentRegistry() {\n return {\n getActiveComponents: vi.fn().mockReturnValue(new Map()),\n getComponentBindings: vi.fn().mockReturnValue([]),\n getAllBindings: vi.fn().mockReturnValue([]),\n registerBinding: vi.fn(),\n unregisterComponent: vi.fn(),\n subscribe: vi.fn().mockReturnValue(() => {}),\n getVersion: vi.fn().mockReturnValue(0),\n clear: vi.fn(),\n getStats: vi.fn().mockReturnValue({\n totalBindings: 0,\n activeBindings: 0,\n unmountedBindings: 0,\n components: 0,\n queries: 0,\n }),\n };\n}\n\nexport function createMockMonitorStore(): MonitorStore {\n const metricsStore = createMockMetricsStore();\n const computeStore = createMockComputeStore();\n const registry = createMockComponentRegistry();\n\n return {\n getMetricsStore: vi.fn().mockReturnValue(metricsStore),\n getComputeStore: vi.fn().mockReturnValue(computeStore),\n getComponentRegistry: vi.fn().mockReturnValue(registry),\n getLinkTraversalTracker: vi.fn().mockReturnValue({\n recordTraversal: vi.fn(),\n recordLinkedObjects: vi.fn(),\n getRecentTraversals: vi.fn().mockReturnValue([]),\n getTraversalsByComponent: vi.fn().mockReturnValue([]),\n getTraversalsByLink: vi.fn().mockReturnValue([]),\n getTraversalChain: vi.fn().mockReturnValue([]),\n findRedundantTraversals: vi.fn().mockReturnValue([]),\n setEventTimeline: vi.fn(),\n getStats: vi.fn().mockReturnValue({\n totalTraversals: 0,\n uniqueLinks: 0,\n uniqueComponents: 0,\n mostUsedLinks: [],\n linkedObjectsTracked: 0,\n }),\n clear: vi.fn(),\n }),\n getPropertyAccessTracker: vi.fn().mockReturnValue({\n wrapObject: vi.fn((obj: Record<string, unknown>) => obj),\n recordAccess: vi.fn(),\n setEventTimeline: vi.fn(),\n incrementRenderCycle: vi.fn(),\n registerComponent: vi.fn(),\n getAccessedProperties: vi.fn().mockReturnValue(new Set()),\n getUnusedPropertiesForObject: vi.fn().mockReturnValue([]),\n findWastedRenders: vi.fn().mockReturnValue([]),\n getRecentAccesses: vi.fn().mockReturnValue([]),\n getAccessesByComponent: vi.fn().mockReturnValue([]),\n getAccessesByObject: vi.fn().mockReturnValue([]),\n getAccessFrequency: vi.fn().mockReturnValue(new Map()),\n clear: vi.fn(),\n clearComponent: vi.fn(),\n getStats: vi.fn().mockReturnValue({\n totalAccesses: 0,\n uniqueComponents: 0,\n uniqueObjects: 0,\n uniqueProperties: 0,\n mostAccessedProperties: [],\n trackedComponents: 0,\n }),\n getWastedRenders: vi.fn().mockReturnValue([]),\n getUnusedProperties: vi.fn().mockReturnValue([]),\n }),\n getMonitor: vi.fn().mockReturnValue(null),\n getEventTimeline: vi.fn().mockReturnValue({\n record: vi.fn(),\n getEventsByType: vi.fn().mockReturnValue([]),\n getAllEvents: vi.fn().mockReturnValue([]),\n getEventCounts: vi.fn().mockReturnValue(new Map()),\n subscribe: vi.fn().mockReturnValue(() => {}),\n findEventsInWindow: vi.fn().mockReturnValue([]),\n findEventsBefore: vi.fn().mockReturnValue([]),\n getLastEmission: vi.fn().mockReturnValue(null),\n getSize: vi.fn().mockReturnValue(0),\n clear: vi.fn(),\n }),\n getPrimitiveDiscovery: vi.fn().mockReturnValue({\n discoverPrimitives: vi.fn().mockReturnValue(null),\n }),\n getClickToInspectSystem: vi.fn().mockReturnValue({\n dispose: vi.fn(),\n }),\n getMockManager: vi.fn().mockReturnValue({\n getMocks: vi.fn().mockReturnValue([]),\n getMock: vi.fn().mockReturnValue(undefined),\n findMockByCacheKey: vi.fn().mockReturnValue(null),\n registerMock: vi.fn(),\n removeMock: vi.fn(),\n updateMock: vi.fn(),\n findMock: vi.fn().mockReturnValue(null),\n getRequestLog: vi.fn().mockReturnValue([]),\n getStats: vi.fn().mockReturnValue({\n totalMocks: 0,\n enabledMocks: 0,\n disabledMocks: 0,\n exhaustedMocks: 0,\n totalRequests: 0,\n matchedRequests: 0,\n }),\n clear: vi.fn(),\n exportMocks: vi.fn().mockReturnValue(\"[]\"),\n importMocks: vi.fn().mockReturnValue(0),\n }),\n getRecommendationEngine: vi.fn().mockReturnValue({\n generateRecommendations: vi.fn().mockReturnValue([]),\n calculatePerformanceScore: vi.fn().mockReturnValue({\n overall: 80,\n grade: \"B\",\n categories: {\n cache: 80,\n queries: 80,\n bandwidth: 80,\n codeQuality: 80,\n },\n }),\n dismissRecommendation: vi.fn(),\n clearDismissed: vi.fn(),\n getSummary: vi.fn().mockReturnValue({\n issueCount: 0,\n criticalCount: 0,\n timeToFix: \"N/A\",\n estimatedImprovement: \"N/A\",\n }),\n }),\n getConsoleLogStore: vi.fn().mockReturnValue({\n getEntries: vi.fn().mockReturnValue([]),\n getSize: vi.fn().mockReturnValue(0),\n clear: vi.fn(),\n subscribe: vi.fn().mockReturnValue(() => {}),\n install: vi.fn(),\n uninstall: vi.fn(),\n suppress: vi.fn(),\n unsuppress: vi.fn(),\n dispose: vi.fn(),\n }),\n getWindowErrorStore: vi.fn().mockReturnValue({\n getEntries: vi.fn().mockReturnValue([]),\n getSize: vi.fn().mockReturnValue(0),\n clear: vi.fn(),\n subscribe: vi.fn().mockReturnValue(() => {}),\n install: vi.fn(),\n uninstall: vi.fn(),\n suppress: vi.fn(),\n unsuppress: vi.fn(),\n recordError: vi.fn(),\n dispose: vi.fn(),\n }),\n getPrototypeOverrideStore: vi.fn().mockReturnValue({\n setOverride: vi.fn(),\n getOverride: vi.fn().mockReturnValue(undefined),\n getOverrideBySignature: vi.fn().mockReturnValue(undefined),\n getAllOverrides: vi.fn().mockReturnValue([]),\n getAll: vi.fn().mockReturnValue([]),\n hasOverride: vi.fn().mockReturnValue(false),\n removeOverride: vi.fn(),\n updateOverride: vi.fn(),\n clearOverride: vi.fn(),\n clearAll: vi.fn(),\n subscribe: vi.fn().mockReturnValue(() => {}),\n }),\n getCacheEntries: vi.fn().mockResolvedValue([]),\n loadCacheEntries: vi.fn().mockResolvedValue([]),\n getCacheSnapshot: vi.fn().mockResolvedValue({\n entries: [],\n stats: { totalEntries: 0, totalSize: 0, totalHits: 0 },\n }),\n invalidateCacheEntry: vi.fn().mockResolvedValue(undefined),\n wrapExistingClient: vi.fn(),\n installGlobalFetchInterceptor: vi.fn(),\n dispose: vi.fn(),\n } as unknown as MonitorStore;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"testHelpers.js","names":["vi","emptyAggregates","cacheHits","cacheMisses","deduplications","optimisticUpdates","totalResponseTime","cachedResponseTime","networkResponseTime","requestsSaved","bytesServedFromCache","totalObjectsFromCache","totalObjectsFromNetwork","revalidations","actionCount","configuredOptimisticActionCount","optimisticActionCount","rollbackActionCount","totalOptimisticRenderTime","totalServerRoundTripTime","totalPerceivedSpeedup","totalOptimisticObjectsAffected","validationCount","totalValidationTime","emptyRates","cacheHitRate","deduplicationRate","optimisticUpdateRate","averageResponseTime","averageCachedResponseTime","optimisticActionCoverage","configuredOptimisticActionRate","rollbackRate","averageOptimisticRenderTime","averageServerRoundTripTime","averagePerceivedSpeedup","averageValidationTime","validationTimeSaved","emptyMetricsSnapshot","recent","aggregates","rates","timeSeries","timestamps","emptyComputeSnapshot","metrics","totalUsage","lastMinuteUsage","requestCount","fulfilledCount","failedCount","pendingCount","averageUsagePerRequest","averageResponseBytes","requests","isRecording","isNetworkPaused","lastRecordingEvent","undefined","createMockMetricsStore","subscribers","Set","getSnapshot","fn","mockReturnValue","subscribe","cb","add","delete","recordCacheHit","recordCacheMiss","recordDeduplication","recordOptimisticUpdate","recordActionLifecycle","recordActionValidation","recordActionError","getActionErrors","getCacheHitRate","reset","dispose","createMockComputeStore","getIsNetworkPaused","createPendingRequest","fulfillRequest","failRequest","setIsRecording","toggleNetworkPaused","getRequests","getMetrics","getLastRecordingEvent","createMockComponentRegistry","getActiveComponents","Map","getComponentBindings","getAllBindings","registerBinding","unregisterComponent","getVersion","clear","getStats","totalBindings","activeBindings","unmountedBindings","components","queries","createMockMonitorStore","metricsStore","computeStore","registry","getMetricsStore","getComputeStore","getComponentRegistry","getLinkTraversalTracker","recordTraversal","recordLinkedObjects","getRecentTraversals","getTraversalsByComponent","getTraversalsByLink","getTraversalChain","findRedundantTraversals","setEventTimeline","totalTraversals","uniqueLinks","uniqueComponents","mostUsedLinks","linkedObjectsTracked","getPropertyAccessTracker","wrapObject","obj","recordAccess","incrementRenderCycle","registerComponent","getAccessedProperties","getUnusedPropertiesForObject","findWastedRenders","getRecentAccesses","getAccessesByComponent","getAccessesByObject","getAccessFrequency","clearComponent","totalAccesses","uniqueObjects","uniqueProperties","mostAccessedProperties","trackedComponents","getWastedRenders","getUnusedProperties","getMonitor","getEventTimeline","record","getEventsByType","getAllEvents","getEventCounts","findEventsInWindow","findEventsBefore","getLastEmission","getSize","getPrimitiveDiscovery","discoverPrimitives","getClickToInspectSystem","getMockManager","getMocks","getMock","findMockByCacheKey","registerMock","removeMock","updateMock","findMock","getRequestLog","totalMocks","enabledMocks","disabledMocks","exhaustedMocks","totalRequests","matchedRequests","exportMocks","importMocks","getRecommendationEngine","generateRecommendations","calculatePerformanceScore","overall","grade","categories","cache","bandwidth","codeQuality","dismissRecommendation","clearDismissed","getSummary","issueCount","criticalCount","timeToFix","estimatedImprovement","getConsoleLogStore","getEntries","install","uninstall","suppress","unsuppress","getWindowErrorStore","recordError","getPrototypeOverrideStore","setOverride","getOverride","getOverrideBySignature","getAllOverrides","getAll","hasOverride","removeOverride","updateOverride","clearOverride","clearAll","getCacheEntries","mockResolvedValue","loadCacheEntries","getCacheSnapshot","entries","stats","totalEntries","totalSize","totalHits","invalidateCacheEntry","wrapExistingClient","installGlobalFetchInterceptor"],"sources":["testHelpers.ts"],"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 { vi } from \"vitest\";\n\nimport type { MonitorStore } from \"../store/MonitorStore.js\";\n\nconst emptyAggregates = {\n cacheHits: 0,\n cacheMisses: 0,\n deduplications: 0,\n optimisticUpdates: 0,\n totalResponseTime: 0,\n cachedResponseTime: 0,\n networkResponseTime: 0,\n requestsSaved: 0,\n bytesServedFromCache: 0,\n totalObjectsFromCache: 0,\n totalObjectsFromNetwork: 0,\n revalidations: 0,\n actionCount: 0,\n configuredOptimisticActionCount: 0,\n optimisticActionCount: 0,\n rollbackActionCount: 0,\n totalOptimisticRenderTime: 0,\n totalServerRoundTripTime: 0,\n totalPerceivedSpeedup: 0,\n totalOptimisticObjectsAffected: 0,\n validationCount: 0,\n totalValidationTime: 0,\n};\n\nconst emptyRates = {\n cacheHitRate: 0,\n deduplicationRate: 0,\n optimisticUpdateRate: 0,\n averageResponseTime: 0,\n averageCachedResponseTime: 0,\n optimisticActionCoverage: 0,\n configuredOptimisticActionRate: 0,\n rollbackRate: 0,\n averageOptimisticRenderTime: 0,\n averageServerRoundTripTime: 0,\n averagePerceivedSpeedup: 0,\n averageValidationTime: 0,\n validationTimeSaved: 0,\n};\n\nconst emptyMetricsSnapshot = {\n recent: [],\n aggregates: emptyAggregates,\n rates: emptyRates,\n timeSeries: {\n timestamps: [],\n cacheHits: [],\n cacheMisses: [],\n revalidations: [],\n deduplications: [],\n },\n};\n\nconst emptyComputeSnapshot = {\n metrics: {\n totalUsage: 0,\n lastMinuteUsage: 0,\n requestCount: 0,\n fulfilledCount: 0,\n failedCount: 0,\n pendingCount: 0,\n averageUsagePerRequest: 0,\n averageResponseBytes: 0,\n },\n requests: [],\n isRecording: false,\n isNetworkPaused: false,\n lastRecordingEvent: undefined,\n};\n\nfunction createMockMetricsStore() {\n const subscribers = new Set<() => void>();\n return {\n getSnapshot: vi.fn().mockReturnValue(emptyMetricsSnapshot),\n subscribe: vi.fn((cb: () => void) => {\n subscribers.add(cb);\n return () => subscribers.delete(cb);\n }),\n recordCacheHit: vi.fn(),\n recordCacheMiss: vi.fn(),\n recordDeduplication: vi.fn(),\n recordOptimisticUpdate: vi.fn(),\n recordActionLifecycle: vi.fn(),\n recordActionValidation: vi.fn(),\n recordActionError: vi.fn(),\n getActionErrors: vi.fn().mockReturnValue([]),\n getCacheHitRate: vi.fn().mockReturnValue(0),\n reset: vi.fn(),\n dispose: vi.fn(),\n };\n}\n\nfunction createMockComputeStore() {\n const subscribers = new Set<() => void>();\n return {\n getSnapshot: vi.fn().mockReturnValue(emptyComputeSnapshot),\n subscribe: vi.fn((cb: () => void) => {\n subscribers.add(cb);\n return () => subscribers.delete(cb);\n }),\n isRecording: vi.fn().mockReturnValue(false),\n getIsNetworkPaused: vi.fn().mockReturnValue(false),\n createPendingRequest: vi.fn(),\n fulfillRequest: vi.fn(),\n failRequest: vi.fn(),\n setIsRecording: vi.fn(),\n toggleNetworkPaused: vi.fn(),\n getRequests: vi.fn().mockReturnValue([]),\n getMetrics: vi.fn().mockReturnValue(emptyComputeSnapshot.metrics),\n getLastRecordingEvent: vi.fn().mockReturnValue(undefined),\n reset: vi.fn(),\n dispose: vi.fn(),\n };\n}\n\nfunction createMockComponentRegistry() {\n return {\n getActiveComponents: vi.fn().mockReturnValue(new Map()),\n getComponentBindings: vi.fn().mockReturnValue([]),\n getAllBindings: vi.fn().mockReturnValue([]),\n registerBinding: vi.fn(),\n unregisterComponent: vi.fn(),\n subscribe: vi.fn().mockReturnValue(() => {}),\n getVersion: vi.fn().mockReturnValue(0),\n clear: vi.fn(),\n getStats: vi.fn().mockReturnValue({\n totalBindings: 0,\n activeBindings: 0,\n unmountedBindings: 0,\n components: 0,\n queries: 0,\n }),\n };\n}\n\nexport function createMockMonitorStore(): MonitorStore {\n const metricsStore = createMockMetricsStore();\n const computeStore = createMockComputeStore();\n const registry = createMockComponentRegistry();\n\n return {\n getMetricsStore: vi.fn().mockReturnValue(metricsStore),\n getComputeStore: vi.fn().mockReturnValue(computeStore),\n getComponentRegistry: vi.fn().mockReturnValue(registry),\n getLinkTraversalTracker: vi.fn().mockReturnValue({\n recordTraversal: vi.fn(),\n recordLinkedObjects: vi.fn(),\n getRecentTraversals: vi.fn().mockReturnValue([]),\n getTraversalsByComponent: vi.fn().mockReturnValue([]),\n getTraversalsByLink: vi.fn().mockReturnValue([]),\n getTraversalChain: vi.fn().mockReturnValue([]),\n findRedundantTraversals: vi.fn().mockReturnValue([]),\n setEventTimeline: vi.fn(),\n getStats: vi.fn().mockReturnValue({\n totalTraversals: 0,\n uniqueLinks: 0,\n uniqueComponents: 0,\n mostUsedLinks: [],\n linkedObjectsTracked: 0,\n }),\n clear: vi.fn(),\n }),\n getPropertyAccessTracker: vi.fn().mockReturnValue({\n wrapObject: vi.fn((obj: Record<string, unknown>) => obj),\n recordAccess: vi.fn(),\n setEventTimeline: vi.fn(),\n incrementRenderCycle: vi.fn(),\n registerComponent: vi.fn(),\n getAccessedProperties: vi.fn().mockReturnValue(new Set()),\n getUnusedPropertiesForObject: vi.fn().mockReturnValue([]),\n findWastedRenders: vi.fn().mockReturnValue([]),\n getRecentAccesses: vi.fn().mockReturnValue([]),\n getAccessesByComponent: vi.fn().mockReturnValue([]),\n getAccessesByObject: vi.fn().mockReturnValue([]),\n getAccessFrequency: vi.fn().mockReturnValue(new Map()),\n clear: vi.fn(),\n clearComponent: vi.fn(),\n getStats: vi.fn().mockReturnValue({\n totalAccesses: 0,\n uniqueComponents: 0,\n uniqueObjects: 0,\n uniqueProperties: 0,\n mostAccessedProperties: [],\n trackedComponents: 0,\n }),\n getWastedRenders: vi.fn().mockReturnValue([]),\n getUnusedProperties: vi.fn().mockReturnValue([]),\n }),\n getMonitor: vi.fn().mockReturnValue(null),\n getEventTimeline: vi.fn().mockReturnValue({\n record: vi.fn(),\n getEventsByType: vi.fn().mockReturnValue([]),\n getAllEvents: vi.fn().mockReturnValue([]),\n getEventCounts: vi.fn().mockReturnValue(new Map()),\n subscribe: vi.fn().mockReturnValue(() => {}),\n findEventsInWindow: vi.fn().mockReturnValue([]),\n findEventsBefore: vi.fn().mockReturnValue([]),\n getLastEmission: vi.fn().mockReturnValue(null),\n getSize: vi.fn().mockReturnValue(0),\n clear: vi.fn(),\n }),\n getPrimitiveDiscovery: vi.fn().mockReturnValue({\n discoverPrimitives: vi.fn().mockReturnValue(null),\n }),\n getClickToInspectSystem: vi.fn().mockReturnValue({\n dispose: vi.fn(),\n }),\n getMockManager: vi.fn().mockReturnValue({\n getMocks: vi.fn().mockReturnValue([]),\n getMock: vi.fn().mockReturnValue(undefined),\n findMockByCacheKey: vi.fn().mockReturnValue(null),\n registerMock: vi.fn(),\n removeMock: vi.fn(),\n updateMock: vi.fn(),\n findMock: vi.fn().mockReturnValue(null),\n getRequestLog: vi.fn().mockReturnValue([]),\n getStats: vi.fn().mockReturnValue({\n totalMocks: 0,\n enabledMocks: 0,\n disabledMocks: 0,\n exhaustedMocks: 0,\n totalRequests: 0,\n matchedRequests: 0,\n }),\n clear: vi.fn(),\n exportMocks: vi.fn().mockReturnValue(\"[]\"),\n importMocks: vi.fn().mockReturnValue(0),\n }),\n getRecommendationEngine: vi.fn().mockReturnValue({\n generateRecommendations: vi.fn().mockReturnValue([]),\n calculatePerformanceScore: vi.fn().mockReturnValue({\n overall: 80,\n grade: \"B\",\n categories: {\n cache: 80,\n queries: 80,\n bandwidth: 80,\n codeQuality: 80,\n },\n }),\n dismissRecommendation: vi.fn(),\n clearDismissed: vi.fn(),\n getSummary: vi.fn().mockReturnValue({\n issueCount: 0,\n criticalCount: 0,\n timeToFix: \"N/A\",\n estimatedImprovement: \"N/A\",\n }),\n }),\n getConsoleLogStore: vi.fn().mockReturnValue({\n getEntries: vi.fn().mockReturnValue([]),\n getSize: vi.fn().mockReturnValue(0),\n clear: vi.fn(),\n subscribe: vi.fn().mockReturnValue(() => {}),\n install: vi.fn(),\n uninstall: vi.fn(),\n suppress: vi.fn(),\n unsuppress: vi.fn(),\n dispose: vi.fn(),\n }),\n getWindowErrorStore: vi.fn().mockReturnValue({\n getEntries: vi.fn().mockReturnValue([]),\n getSize: vi.fn().mockReturnValue(0),\n clear: vi.fn(),\n subscribe: vi.fn().mockReturnValue(() => {}),\n install: vi.fn(),\n uninstall: vi.fn(),\n suppress: vi.fn(),\n unsuppress: vi.fn(),\n recordError: vi.fn(),\n dispose: vi.fn(),\n }),\n getPrototypeOverrideStore: vi.fn().mockReturnValue({\n setOverride: vi.fn(),\n getOverride: vi.fn().mockReturnValue(undefined),\n getOverrideBySignature: vi.fn().mockReturnValue(undefined),\n getAllOverrides: vi.fn().mockReturnValue([]),\n getAll: vi.fn().mockReturnValue([]),\n hasOverride: vi.fn().mockReturnValue(false),\n removeOverride: vi.fn(),\n updateOverride: vi.fn(),\n clearOverride: vi.fn(),\n clearAll: vi.fn(),\n subscribe: vi.fn().mockReturnValue(() => {}),\n }),\n getCacheEntries: vi.fn().mockResolvedValue([]),\n loadCacheEntries: vi.fn().mockResolvedValue([]),\n getCacheSnapshot: vi.fn().mockResolvedValue({\n entries: [],\n stats: { totalEntries: 0, totalSize: 0, totalHits: 0 },\n }),\n invalidateCacheEntry: vi.fn().mockResolvedValue(undefined),\n wrapExistingClient: vi.fn(),\n installGlobalFetchInterceptor: vi.fn(),\n dispose: vi.fn(),\n } as unknown as MonitorStore;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -57,7 +57,7 @@ export const DegradationNotice = ({
|
|
|
57
57
|
showWhenHealthy = false
|
|
58
58
|
}) => {
|
|
59
59
|
const capabilities = React.useSyncExternalStore(subscribeToCapabilities, getCapabilitiesSnapshot, getCapabilitiesSnapshot);
|
|
60
|
-
const disabledFeatures =
|
|
60
|
+
const disabledFeatures = [...capabilities.disabledFeatures];
|
|
61
61
|
const hasIssues = !capabilities.fiberAccessWorking || disabledFeatures.length > 0;
|
|
62
62
|
if (!hasIssues && !showWhenHealthy) {
|
|
63
63
|
return null;
|
|
@@ -171,7 +171,7 @@ export const DegradationNotice = ({
|
|
|
171
171
|
fontSize: "12px",
|
|
172
172
|
color: "#5c7080"
|
|
173
173
|
}
|
|
174
|
-
}, capabilities.errorCount, "
|
|
174
|
+
}, capabilities.errorCount, " error", capabilities.errorCount > 1 ? "s" : "", " recorded. Features will auto-recover after 30 seconds of successful operation."), onRetry && /*#__PURE__*/React.createElement(Button, {
|
|
175
175
|
size: "small",
|
|
176
176
|
variant: "minimal",
|
|
177
177
|
intent: Intent.WARNING,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DegradationNotice.js","names":["Button","Callout","Intent","Tag","React","getCapabilitiesManager","onReactDetected","validateFiberAccess","FEATURE_LABELS","FEATURE_DESCRIPTIONS","subscribeToCapabilities","onStoreChange","manager","unsubscribe","onCapabilitiesChange","unsubscribeReactDetected","getCapabilitiesSnapshot","getCapabilities","DegradationNotice","onRetry","showWhenHealthy","capabilities","useSyncExternalStore","disabledFeatures","Array","from","hasIssues","fiberAccessWorking","length","createElement","intent","SUCCESS","icon","title","style","margin","detectedReactVersion","Fragment","hookInstalled","WARNING","fontSize","color","rendererDetected","PRIMARY","size","variant","onClick","marginTop","DANGER","display","flexWrap","gap","marginBottom","map","feature","key","minimal","errorCount","resetAll","subscribeToCapabilitiesSimple","useFiberCapabilities"],"sources":["DegradationNotice.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, Callout, Intent, Tag } from \"@blueprintjs/core\";\nimport React from \"react\";\nimport {\n type FiberCapabilities,\n type FiberFeature,\n getCapabilitiesManager,\n} from \"./capabilities.js\";\nimport { onReactDetected } from \"./DevtoolsHook.js\";\nimport { validateFiberAccess } from \"./validation.js\";\n\nconst FEATURE_LABELS: Record<FiberFeature, string> = {\n \"component-inspection\": \"Component Inspection\",\n \"hook-discovery\": \"Hook Discovery\",\n \"render-tracking\": \"Render Tracking\",\n \"state-inspection\": \"State Inspection\",\n \"metadata-extraction\": \"Metadata Extraction\",\n \"fiber-discovery\": \"Fiber Discovery\",\n};\n\nconst FEATURE_DESCRIPTIONS: Record<FiberFeature, string> = {\n \"component-inspection\": \"View component hierarchy and props\",\n \"hook-discovery\": \"Detect OSDK hooks in components\",\n \"render-tracking\": \"Track component re-renders\",\n \"state-inspection\": \"Inspect component state and hooks\",\n \"metadata-extraction\": \"Extract OSDK hook metadata from fibers\",\n \"fiber-discovery\": \"Discover OSDK components from fiber tree\",\n};\n\nexport interface DegradationNoticeProps {\n onRetry?: () => void;\n showWhenHealthy?: boolean;\n}\n\nfunction subscribeToCapabilities(onStoreChange: () => void): () => void {\n const manager = getCapabilitiesManager();\n\n validateFiberAccess();\n\n const unsubscribe = manager.onCapabilitiesChange(() => {\n onStoreChange();\n });\n\n const unsubscribeReactDetected = onReactDetected(() => {\n validateFiberAccess();\n });\n\n return () => {\n unsubscribe();\n unsubscribeReactDetected();\n };\n}\n\nfunction getCapabilitiesSnapshot(): FiberCapabilities {\n return getCapabilitiesManager().getCapabilities();\n}\n\nexport const DegradationNotice: React.FC<DegradationNoticeProps> = ({\n onRetry,\n showWhenHealthy = false,\n}) => {\n const capabilities = React.useSyncExternalStore(\n subscribeToCapabilities,\n getCapabilitiesSnapshot,\n getCapabilitiesSnapshot,\n );\n\n const disabledFeatures = Array.from(capabilities.disabledFeatures);\n const hasIssues = !capabilities.fiberAccessWorking\n || disabledFeatures.length > 0;\n\n if (!hasIssues && !showWhenHealthy) {\n return null;\n }\n\n if (!hasIssues && showWhenHealthy) {\n return (\n <Callout\n intent={Intent.SUCCESS}\n icon=\"tick-circle\"\n title=\"Fiber Access Healthy\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: 0 }}>\n All fiber features are working correctly.\n {capabilities.detectedReactVersion && (\n <>React {capabilities.detectedReactVersion} detected.</>\n )}\n </p>\n </Callout>\n );\n }\n\n if (!capabilities.hookInstalled) {\n return (\n <Callout\n intent={Intent.WARNING}\n icon=\"warning-sign\"\n title=\"DevTools Hook Not Installed\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: \"0 0 8px 0\" }}>\n The React DevTools hook was not installed before React loaded. Some\n features may be unavailable.\n </p>\n <p style={{ margin: 0, fontSize: \"12px\", color: \"#5c7080\" }}>\n Ensure the devtools are imported before React in your entry point.\n </p>\n </Callout>\n );\n }\n\n if (!capabilities.rendererDetected) {\n return (\n <Callout\n intent={Intent.PRIMARY}\n icon=\"time\"\n title=\"Waiting for React\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: 0 }}>\n No React renderer detected yet. React may still be loading.\n </p>\n {onRetry && (\n <Button\n size=\"small\"\n variant=\"minimal\"\n intent={Intent.PRIMARY}\n onClick={onRetry}\n style={{ marginTop: \"8px\" }}\n >\n Check Again\n </Button>\n )}\n </Callout>\n );\n }\n\n if (!capabilities.fiberAccessWorking) {\n return (\n <Callout\n intent={Intent.DANGER}\n icon=\"error\"\n title=\"Fiber Access Unavailable\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: \"0 0 8px 0\" }}>\n Unable to access React's internal fiber tree. Component\n inspection and related features are disabled.\n </p>\n {capabilities.detectedReactVersion && (\n <p\n style={{ margin: \"0 0 8px 0\", fontSize: \"12px\", color: \"#5c7080\" }}\n >\n React {capabilities.detectedReactVersion} detected\n </p>\n )}\n {onRetry && (\n <Button\n size=\"small\"\n intent={Intent.PRIMARY}\n onClick={onRetry}\n >\n Retry\n </Button>\n )}\n </Callout>\n );\n }\n\n return (\n <Callout\n intent={Intent.WARNING}\n icon=\"warning-sign\"\n title=\"Some Features Disabled\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: \"0 0 8px 0\" }}>\n The following features have been temporarily disabled due to errors:\n </p>\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"4px\",\n marginBottom: \"8px\",\n }}\n >\n {disabledFeatures.map((feature) => (\n <Tag\n key={feature}\n intent={Intent.WARNING}\n minimal\n title={FEATURE_DESCRIPTIONS[feature]}\n >\n {FEATURE_LABELS[feature]}\n </Tag>\n ))}\n </div>\n {capabilities.errorCount > 0 && (\n <p style={{ margin: \"0 0 8px 0\", fontSize: \"12px\", color: \"#5c7080\" }}>\n {capabilities.errorCount}{\" \"}\n error{capabilities.errorCount > 1 ? \"s\" : \"\"}{\" \"}\n recorded. Features will auto-recover after 30 seconds of successful\n operation.\n </p>\n )}\n {onRetry && (\n <Button\n size=\"small\"\n variant=\"minimal\"\n intent={Intent.WARNING}\n onClick={() => {\n getCapabilitiesManager().resetAll();\n onRetry();\n }}\n >\n Reset & Retry\n </Button>\n )}\n </Callout>\n );\n};\n\nfunction subscribeToCapabilitiesSimple(onStoreChange: () => void): () => void {\n const manager = getCapabilitiesManager();\n return manager.onCapabilitiesChange(() => {\n onStoreChange();\n });\n}\n\nexport function useFiberCapabilities(): FiberCapabilities {\n return React.useSyncExternalStore(\n subscribeToCapabilitiesSimple,\n getCapabilitiesSnapshot,\n getCapabilitiesSnapshot,\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DegradationNotice.js","names":["Button","Callout","Intent","Tag","React","getCapabilitiesManager","onReactDetected","validateFiberAccess","FEATURE_LABELS","FEATURE_DESCRIPTIONS","subscribeToCapabilities","onStoreChange","manager","unsubscribe","onCapabilitiesChange","unsubscribeReactDetected","getCapabilitiesSnapshot","getCapabilities","DegradationNotice","onRetry","showWhenHealthy","capabilities","useSyncExternalStore","disabledFeatures","hasIssues","fiberAccessWorking","length","createElement","intent","SUCCESS","icon","title","style","margin","detectedReactVersion","Fragment","hookInstalled","WARNING","fontSize","color","rendererDetected","PRIMARY","size","variant","onClick","marginTop","DANGER","display","flexWrap","gap","marginBottom","map","feature","key","minimal","errorCount","resetAll","subscribeToCapabilitiesSimple","useFiberCapabilities"],"sources":["DegradationNotice.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, Callout, Intent, Tag } from \"@blueprintjs/core\";\nimport React from \"react\";\n\nimport {\n type FiberCapabilities,\n type FiberFeature,\n getCapabilitiesManager,\n} from \"./capabilities.js\";\nimport { onReactDetected } from \"./DevtoolsHook.js\";\nimport { validateFiberAccess } from \"./validation.js\";\n\nconst FEATURE_LABELS: Record<FiberFeature, string> = {\n \"component-inspection\": \"Component Inspection\",\n \"hook-discovery\": \"Hook Discovery\",\n \"render-tracking\": \"Render Tracking\",\n \"state-inspection\": \"State Inspection\",\n \"metadata-extraction\": \"Metadata Extraction\",\n \"fiber-discovery\": \"Fiber Discovery\",\n};\n\nconst FEATURE_DESCRIPTIONS: Record<FiberFeature, string> = {\n \"component-inspection\": \"View component hierarchy and props\",\n \"hook-discovery\": \"Detect OSDK hooks in components\",\n \"render-tracking\": \"Track component re-renders\",\n \"state-inspection\": \"Inspect component state and hooks\",\n \"metadata-extraction\": \"Extract OSDK hook metadata from fibers\",\n \"fiber-discovery\": \"Discover OSDK components from fiber tree\",\n};\n\nexport interface DegradationNoticeProps {\n onRetry?: () => void;\n showWhenHealthy?: boolean;\n}\n\nfunction subscribeToCapabilities(onStoreChange: () => void): () => void {\n const manager = getCapabilitiesManager();\n\n validateFiberAccess();\n\n const unsubscribe = manager.onCapabilitiesChange(() => {\n onStoreChange();\n });\n\n const unsubscribeReactDetected = onReactDetected(() => {\n validateFiberAccess();\n });\n\n return () => {\n unsubscribe();\n unsubscribeReactDetected();\n };\n}\n\nfunction getCapabilitiesSnapshot(): FiberCapabilities {\n return getCapabilitiesManager().getCapabilities();\n}\n\nexport const DegradationNotice: React.FC<DegradationNoticeProps> = ({\n onRetry,\n showWhenHealthy = false,\n}) => {\n const capabilities = React.useSyncExternalStore(\n subscribeToCapabilities,\n getCapabilitiesSnapshot,\n getCapabilitiesSnapshot\n );\n\n const disabledFeatures = [...capabilities.disabledFeatures];\n const hasIssues =\n !capabilities.fiberAccessWorking || disabledFeatures.length > 0;\n\n if (!hasIssues && !showWhenHealthy) {\n return null;\n }\n\n if (!hasIssues && showWhenHealthy) {\n return (\n <Callout\n intent={Intent.SUCCESS}\n icon=\"tick-circle\"\n title=\"Fiber Access Healthy\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: 0 }}>\n All fiber features are working correctly.\n {capabilities.detectedReactVersion && (\n <>React {capabilities.detectedReactVersion} detected.</>\n )}\n </p>\n </Callout>\n );\n }\n\n if (!capabilities.hookInstalled) {\n return (\n <Callout\n intent={Intent.WARNING}\n icon=\"warning-sign\"\n title=\"DevTools Hook Not Installed\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: \"0 0 8px 0\" }}>\n The React DevTools hook was not installed before React loaded. Some\n features may be unavailable.\n </p>\n <p style={{ margin: 0, fontSize: \"12px\", color: \"#5c7080\" }}>\n Ensure the devtools are imported before React in your entry point.\n </p>\n </Callout>\n );\n }\n\n if (!capabilities.rendererDetected) {\n return (\n <Callout\n intent={Intent.PRIMARY}\n icon=\"time\"\n title=\"Waiting for React\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: 0 }}>\n No React renderer detected yet. React may still be loading.\n </p>\n {onRetry && (\n <Button\n size=\"small\"\n variant=\"minimal\"\n intent={Intent.PRIMARY}\n onClick={onRetry}\n style={{ marginTop: \"8px\" }}\n >\n Check Again\n </Button>\n )}\n </Callout>\n );\n }\n\n if (!capabilities.fiberAccessWorking) {\n return (\n <Callout\n intent={Intent.DANGER}\n icon=\"error\"\n title=\"Fiber Access Unavailable\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: \"0 0 8px 0\" }}>\n Unable to access React's internal fiber tree. Component\n inspection and related features are disabled.\n </p>\n {capabilities.detectedReactVersion && (\n <p\n style={{ margin: \"0 0 8px 0\", fontSize: \"12px\", color: \"#5c7080\" }}\n >\n React {capabilities.detectedReactVersion} detected\n </p>\n )}\n {onRetry && (\n <Button size=\"small\" intent={Intent.PRIMARY} onClick={onRetry}>\n Retry\n </Button>\n )}\n </Callout>\n );\n }\n\n return (\n <Callout\n intent={Intent.WARNING}\n icon=\"warning-sign\"\n title=\"Some Features Disabled\"\n style={{ margin: \"8px\" }}\n >\n <p style={{ margin: \"0 0 8px 0\" }}>\n The following features have been temporarily disabled due to errors:\n </p>\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"4px\",\n marginBottom: \"8px\",\n }}\n >\n {disabledFeatures.map((feature) => (\n <Tag\n key={feature}\n intent={Intent.WARNING}\n minimal\n title={FEATURE_DESCRIPTIONS[feature]}\n >\n {FEATURE_LABELS[feature]}\n </Tag>\n ))}\n </div>\n {capabilities.errorCount > 0 && (\n <p style={{ margin: \"0 0 8px 0\", fontSize: \"12px\", color: \"#5c7080\" }}>\n {capabilities.errorCount} error\n {capabilities.errorCount > 1 ? \"s\" : \"\"} recorded. Features will\n auto-recover after 30 seconds of successful operation.\n </p>\n )}\n {onRetry && (\n <Button\n size=\"small\"\n variant=\"minimal\"\n intent={Intent.WARNING}\n onClick={() => {\n getCapabilitiesManager().resetAll();\n onRetry();\n }}\n >\n Reset & Retry\n </Button>\n )}\n </Callout>\n );\n};\n\nfunction subscribeToCapabilitiesSimple(onStoreChange: () => void): () => void {\n const manager = getCapabilitiesManager();\n return manager.onCapabilitiesChange(() => {\n onStoreChange();\n });\n}\n\nexport function useFiberCapabilities(): FiberCapabilities {\n return React.useSyncExternalStore(\n subscribeToCapabilitiesSimple,\n getCapabilitiesSnapshot,\n getCapabilitiesSnapshot\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,11 +34,11 @@ const allRenderers = new Set();
|
|
|
34
34
|
const onActiveListeners = new Set();
|
|
35
35
|
const fiberRoots = new Map();
|
|
36
36
|
function isClientEnvironment() {
|
|
37
|
-
return typeof window !== "undefined"
|
|
37
|
+
return typeof window !== "undefined" && (
|
|
38
38
|
// eslint-disable-next-line @typescript-eslint/no-deprecated -- Browser detection pattern from React DevTools
|
|
39
|
-
|
|
39
|
+
typeof window.document?.createElement === "function" ||
|
|
40
40
|
// eslint-disable-next-line @typescript-eslint/no-deprecated -- ReactNative detection pattern
|
|
41
|
-
|
|
41
|
+
window.navigator?.product === "ReactNative");
|
|
42
42
|
}
|
|
43
43
|
function hasDevToolsHook() {
|
|
44
44
|
return Object.prototype.hasOwnProperty.call(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__");
|
|
@@ -103,7 +103,7 @@ function installDevToolsHook(onActive) {
|
|
|
103
103
|
Object.defineProperty(window, "hasOwnProperty", {
|
|
104
104
|
configurable: true,
|
|
105
105
|
writable: true,
|
|
106
|
-
value
|
|
106
|
+
value(prop) {
|
|
107
107
|
try {
|
|
108
108
|
if (!hasRunHack && prop === "__REACT_DEVTOOLS_GLOBAL_HOOK__") {
|
|
109
109
|
globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevtoolsHook.js","names":["OSDK_INSTRUMENTATION_STRING","NO_OP","checkDCE","fn","code","Function","prototype","toString","call","indexOf","setTimeout","Error","allRenderers","Set","onActiveListeners","fiberRoots","Map","isClientEnvironment","window","document","createElement","navigator","product","hasDevToolsHook","Object","hasOwnProperty","globalThis","installDevToolsHook","onActive","renderers","nextId","hook","_instrumentationIsActive","_instrumentationSource","hasUnsupportedRendererAttached","inject","renderer","id","set","add","notifyActiveListeners","on","onCommitFiberRoot","rendererID","root","roots","get","onCommitFiberUnmount","onPostCommitFiberRoot","supportsFiber","supportsFlight","defineProperty","configurable","enumerable","newHook","ourRenderers","size","forEach","patchDevToolsHook","hasRunHack","writable","value","prop","__REACT_DEVTOOLS_GLOBAL_HOOK__","undefined","originalInject","originalOnCommitFiberRoot","priority","has","getDevToolsHook","safelyInstallDevToolsHook","isReactDetected","Boolean","getRenderers","getAllFiberRoots","rootSet","values","push","onReactDetected","callback","delete","handler","originalHandler","listener"],"sources":["DevtoolsHook.ts"],"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 type {\n FiberRoot,\n ReactDevToolsGlobalHook,\n ReactRenderer,\n} from \"./types.js\";\n\nconst OSDK_INSTRUMENTATION_STRING = \"osdk-devtools\";\n\nconst NO_OP = () => {\n /* no-op */\n};\n\nconst checkDCE = (fn: unknown): void => {\n try {\n const code = Function.prototype.toString.call(fn);\n if (code.indexOf(\"^_^\") > -1) {\n setTimeout(() => {\n throw new Error(\n \"React is running in production mode, but dead code \"\n + \"elimination has not been applied. Read how to correctly \"\n + \"configure React for production: \"\n + \"https://reactjs.org/link/perf-use-production-build\",\n );\n });\n }\n } catch {\n // Ignore errors in DCE check\n }\n};\n\nconst allRenderers = new Set<ReactRenderer>();\nconst onActiveListeners = new Set<() => void>();\nconst fiberRoots = new Map<number, Set<FiberRoot>>();\n\nfunction isClientEnvironment(): boolean {\n return (\n typeof window !== \"undefined\"\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- Browser detection pattern from React DevTools\n && (typeof window.document?.createElement === \"function\"\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- ReactNative detection pattern\n || window.navigator?.product === \"ReactNative\")\n );\n}\n\nfunction hasDevToolsHook(): boolean {\n return Object.prototype.hasOwnProperty.call(\n globalThis,\n \"__REACT_DEVTOOLS_GLOBAL_HOOK__\",\n );\n}\n\nfunction installDevToolsHook(\n onActive?: () => void,\n): ReactDevToolsGlobalHook {\n const renderers = new Map<number, ReactRenderer>();\n let nextId = 0;\n\n let hook: ReactDevToolsGlobalHook = {\n _instrumentationIsActive: false,\n _instrumentationSource: OSDK_INSTRUMENTATION_STRING,\n checkDCE,\n hasUnsupportedRendererAttached: false,\n inject(renderer) {\n const id = ++nextId;\n renderers.set(id, renderer);\n allRenderers.add(renderer);\n\n fiberRoots.set(id, new Set());\n\n if (!hook._instrumentationIsActive) {\n hook._instrumentationIsActive = true;\n notifyActiveListeners();\n }\n return id;\n },\n on: NO_OP,\n onCommitFiberRoot(rendererID, root, _priority) {\n const roots = fiberRoots.get(rendererID);\n if (roots) {\n roots.add(root);\n }\n },\n onCommitFiberUnmount: NO_OP,\n onPostCommitFiberRoot: NO_OP,\n renderers,\n supportsFiber: true,\n supportsFlight: true,\n };\n\n try {\n Object.defineProperty(globalThis, \"__REACT_DEVTOOLS_GLOBAL_HOOK__\", {\n configurable: true,\n enumerable: true,\n get() {\n return hook;\n },\n set(newHook) {\n if (newHook && typeof newHook === \"object\") {\n const ourRenderers = hook.renderers;\n\n hook = newHook as ReactDevToolsGlobalHook;\n if (ourRenderers.size > 0) {\n ourRenderers.forEach((renderer, id) => {\n allRenderers.add(renderer);\n (newHook as ReactDevToolsGlobalHook).renderers.set(id, renderer);\n });\n patchDevToolsHook(onActive);\n }\n }\n },\n });\n\n // Chrome extension compatibility hack\n // https://github.com/facebook/react/blob/main/packages/react-devtools-extensions/src/contentScripts/installHook.js\n let hasRunHack = false;\n\n Object.defineProperty(window, \"hasOwnProperty\", {\n configurable: true,\n writable: true,\n value: function(\n this: unknown,\n prop: PropertyKey,\n ): boolean | number {\n try {\n if (!hasRunHack && prop === \"__REACT_DEVTOOLS_GLOBAL_HOOK__\") {\n globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = undefined;\n hasRunHack = true;\n // Chrome DevTools extension compatibility: returns -0 (falsy, non-boolean)\n // so the extension detects a race condition and re-installs its own hook.\n // See: https://github.com/facebook/react/blob/main/packages/react-devtools-extensions/src/contentScripts/installHook.js\n return -0;\n }\n } catch {\n // Ignore errors in hack\n }\n return Object.prototype.hasOwnProperty.call(this, prop);\n },\n });\n } catch {\n // If property definition fails, try to patch existing hook\n patchDevToolsHook(onActive);\n }\n\n if (onActive) {\n onActiveListeners.add(onActive);\n }\n\n return hook;\n}\n\nfunction patchDevToolsHook(onActive?: () => void): void {\n if (onActive) {\n onActiveListeners.add(onActive);\n }\n\n try {\n const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (!hook) {\n return;\n }\n\n if (hook._instrumentationSource === OSDK_INSTRUMENTATION_STRING) {\n if (hook.renderers.size || hook._instrumentationIsActive) {\n onActive?.();\n }\n return;\n }\n\n // Mark as patched\n hook._instrumentationSource = OSDK_INSTRUMENTATION_STRING;\n hook._instrumentationIsActive = false;\n hook.supportsFiber = true;\n hook.supportsFlight = true;\n hook.hasUnsupportedRendererAttached = false;\n\n const originalInject = hook.inject;\n hook.inject = (renderer) => {\n const id = originalInject(renderer);\n allRenderers.add(renderer);\n fiberRoots.set(id, new Set());\n hook._instrumentationIsActive = true;\n notifyActiveListeners();\n return id;\n };\n\n const originalOnCommitFiberRoot = hook.onCommitFiberRoot;\n hook.onCommitFiberRoot = (rendererID, root, priority) => {\n if (!fiberRoots.has(rendererID)) {\n fiberRoots.set(rendererID, new Set());\n }\n const roots = fiberRoots.get(rendererID);\n if (roots) {\n roots.add(root);\n }\n originalOnCommitFiberRoot(rendererID, root, priority);\n };\n\n // If renderers already exist, we're active - set them up now\n if (hook.renderers.size) {\n hook.renderers.forEach((renderer, id) => {\n allRenderers.add(renderer);\n if (!fiberRoots.has(id)) {\n fiberRoots.set(id, new Set());\n }\n });\n hook._instrumentationIsActive = true;\n notifyActiveListeners();\n }\n } catch {\n // Ignore patching errors\n }\n}\n\nfunction getDevToolsHook(\n onActive?: () => void,\n): ReactDevToolsGlobalHook {\n if (!hasDevToolsHook()) {\n return installDevToolsHook(onActive);\n }\n\n patchDevToolsHook(onActive);\n return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ as ReactDevToolsGlobalHook;\n}\n\nexport function safelyInstallDevToolsHook(): void {\n try {\n if (isClientEnvironment()) {\n getDevToolsHook();\n }\n } catch {\n // Ignore installation errors\n }\n}\n\nexport function isReactDetected(): boolean {\n const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n return Boolean(\n hook && (hook.renderers.size > 0 || hook._instrumentationIsActive),\n );\n}\n\nexport function getRenderers(): Map<number, ReactRenderer> {\n const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n return hook?.renderers ?? new Map();\n}\n\nexport function getAllFiberRoots(): FiberRoot[] {\n const roots: FiberRoot[] = [];\n for (const rootSet of fiberRoots.values()) {\n roots.push(...rootSet);\n }\n return roots;\n}\n\nexport function onReactDetected(callback: () => void): () => void {\n if (isReactDetected()) {\n callback();\n }\n onActiveListeners.add(callback);\n return () => {\n onActiveListeners.delete(callback);\n };\n}\n\nexport function onCommitFiberRoot(\n handler: (\n rendererID: number,\n root: FiberRoot,\n priority: number | undefined,\n ) => void,\n): () => void {\n const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (!hook) {\n return () => {};\n }\n\n const originalHandler = hook.onCommitFiberRoot;\n hook.onCommitFiberRoot = (rendererID, root, priority) => {\n originalHandler(rendererID, root, priority);\n handler(rendererID, root, priority ?? undefined);\n };\n\n return () => {\n hook.onCommitFiberRoot = originalHandler;\n };\n}\n\nfunction notifyActiveListeners(): void {\n for (const listener of onActiveListeners) {\n try {\n listener();\n } catch {\n // Ignore listener errors\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DevtoolsHook.js","names":["OSDK_INSTRUMENTATION_STRING","NO_OP","checkDCE","fn","code","Function","prototype","toString","call","indexOf","setTimeout","Error","allRenderers","Set","onActiveListeners","fiberRoots","Map","isClientEnvironment","window","document","createElement","navigator","product","hasDevToolsHook","Object","hasOwnProperty","globalThis","installDevToolsHook","onActive","renderers","nextId","hook","_instrumentationIsActive","_instrumentationSource","hasUnsupportedRendererAttached","inject","renderer","id","set","add","notifyActiveListeners","on","onCommitFiberRoot","rendererID","root","roots","get","onCommitFiberUnmount","onPostCommitFiberRoot","supportsFiber","supportsFlight","defineProperty","configurable","enumerable","newHook","ourRenderers","size","forEach","patchDevToolsHook","hasRunHack","writable","value","prop","__REACT_DEVTOOLS_GLOBAL_HOOK__","undefined","originalInject","originalOnCommitFiberRoot","priority","has","getDevToolsHook","safelyInstallDevToolsHook","isReactDetected","Boolean","getRenderers","getAllFiberRoots","rootSet","values","push","onReactDetected","callback","delete","handler","originalHandler","listener"],"sources":["DevtoolsHook.ts"],"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 type {\n FiberRoot,\n ReactDevToolsGlobalHook,\n ReactRenderer,\n} from \"./types.js\";\n\nconst OSDK_INSTRUMENTATION_STRING = \"osdk-devtools\";\n\nconst NO_OP = () => {\n /* no-op */\n};\n\nconst checkDCE = (fn: unknown): void => {\n try {\n const code = Function.prototype.toString.call(fn);\n if (code.indexOf(\"^_^\") > -1) {\n setTimeout(() => {\n throw new Error(\n \"React is running in production mode, but dead code \" +\n \"elimination has not been applied. Read how to correctly \" +\n \"configure React for production: \" +\n \"https://reactjs.org/link/perf-use-production-build\"\n );\n });\n }\n } catch {\n // Ignore errors in DCE check\n }\n};\n\nconst allRenderers = new Set<ReactRenderer>();\nconst onActiveListeners = new Set<() => void>();\nconst fiberRoots = new Map<number, Set<FiberRoot>>();\n\nfunction isClientEnvironment(): boolean {\n return (\n typeof window !== \"undefined\" &&\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- Browser detection pattern from React DevTools\n (typeof window.document?.createElement === \"function\" ||\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- ReactNative detection pattern\n window.navigator?.product === \"ReactNative\")\n );\n}\n\nfunction hasDevToolsHook(): boolean {\n return Object.prototype.hasOwnProperty.call(\n globalThis,\n \"__REACT_DEVTOOLS_GLOBAL_HOOK__\"\n );\n}\n\nfunction installDevToolsHook(onActive?: () => void): ReactDevToolsGlobalHook {\n const renderers = new Map<number, ReactRenderer>();\n let nextId = 0;\n\n let hook: ReactDevToolsGlobalHook = {\n _instrumentationIsActive: false,\n _instrumentationSource: OSDK_INSTRUMENTATION_STRING,\n checkDCE,\n hasUnsupportedRendererAttached: false,\n inject(renderer) {\n const id = ++nextId;\n renderers.set(id, renderer);\n allRenderers.add(renderer);\n\n fiberRoots.set(id, new Set());\n\n if (!hook._instrumentationIsActive) {\n hook._instrumentationIsActive = true;\n notifyActiveListeners();\n }\n return id;\n },\n on: NO_OP,\n onCommitFiberRoot(rendererID, root, _priority) {\n const roots = fiberRoots.get(rendererID);\n if (roots) {\n roots.add(root);\n }\n },\n onCommitFiberUnmount: NO_OP,\n onPostCommitFiberRoot: NO_OP,\n renderers,\n supportsFiber: true,\n supportsFlight: true,\n };\n\n try {\n Object.defineProperty(globalThis, \"__REACT_DEVTOOLS_GLOBAL_HOOK__\", {\n configurable: true,\n enumerable: true,\n get() {\n return hook;\n },\n set(newHook) {\n if (newHook && typeof newHook === \"object\") {\n const ourRenderers = hook.renderers;\n\n hook = newHook as ReactDevToolsGlobalHook;\n if (ourRenderers.size > 0) {\n ourRenderers.forEach((renderer, id) => {\n allRenderers.add(renderer);\n (newHook as ReactDevToolsGlobalHook).renderers.set(id, renderer);\n });\n patchDevToolsHook(onActive);\n }\n }\n },\n });\n\n // Chrome extension compatibility hack\n // https://github.com/facebook/react/blob/main/packages/react-devtools-extensions/src/contentScripts/installHook.js\n let hasRunHack = false;\n\n Object.defineProperty(window, \"hasOwnProperty\", {\n configurable: true,\n writable: true,\n value(this: unknown, prop: PropertyKey): boolean | number {\n try {\n if (!hasRunHack && prop === \"__REACT_DEVTOOLS_GLOBAL_HOOK__\") {\n globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = undefined;\n hasRunHack = true;\n // Chrome DevTools extension compatibility: returns -0 (falsy, non-boolean)\n // so the extension detects a race condition and re-installs its own hook.\n // See: https://github.com/facebook/react/blob/main/packages/react-devtools-extensions/src/contentScripts/installHook.js\n return -0;\n }\n } catch {\n // Ignore errors in hack\n }\n return Object.prototype.hasOwnProperty.call(this, prop);\n },\n });\n } catch {\n // If property definition fails, try to patch existing hook\n patchDevToolsHook(onActive);\n }\n\n if (onActive) {\n onActiveListeners.add(onActive);\n }\n\n return hook;\n}\n\nfunction patchDevToolsHook(onActive?: () => void): void {\n if (onActive) {\n onActiveListeners.add(onActive);\n }\n\n try {\n const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (!hook) {\n return;\n }\n\n if (hook._instrumentationSource === OSDK_INSTRUMENTATION_STRING) {\n if (hook.renderers.size || hook._instrumentationIsActive) {\n onActive?.();\n }\n return;\n }\n\n // Mark as patched\n hook._instrumentationSource = OSDK_INSTRUMENTATION_STRING;\n hook._instrumentationIsActive = false;\n hook.supportsFiber = true;\n hook.supportsFlight = true;\n hook.hasUnsupportedRendererAttached = false;\n\n const originalInject = hook.inject;\n hook.inject = (renderer) => {\n const id = originalInject(renderer);\n allRenderers.add(renderer);\n fiberRoots.set(id, new Set());\n hook._instrumentationIsActive = true;\n notifyActiveListeners();\n return id;\n };\n\n const originalOnCommitFiberRoot = hook.onCommitFiberRoot;\n hook.onCommitFiberRoot = (rendererID, root, priority) => {\n if (!fiberRoots.has(rendererID)) {\n fiberRoots.set(rendererID, new Set());\n }\n const roots = fiberRoots.get(rendererID);\n if (roots) {\n roots.add(root);\n }\n originalOnCommitFiberRoot(rendererID, root, priority);\n };\n\n // If renderers already exist, we're active - set them up now\n if (hook.renderers.size) {\n hook.renderers.forEach((renderer, id) => {\n allRenderers.add(renderer);\n if (!fiberRoots.has(id)) {\n fiberRoots.set(id, new Set());\n }\n });\n hook._instrumentationIsActive = true;\n notifyActiveListeners();\n }\n } catch {\n // Ignore patching errors\n }\n}\n\nfunction getDevToolsHook(onActive?: () => void): ReactDevToolsGlobalHook {\n if (!hasDevToolsHook()) {\n return installDevToolsHook(onActive);\n }\n\n patchDevToolsHook(onActive);\n return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ as ReactDevToolsGlobalHook;\n}\n\nexport function safelyInstallDevToolsHook(): void {\n try {\n if (isClientEnvironment()) {\n getDevToolsHook();\n }\n } catch {\n // Ignore installation errors\n }\n}\n\nexport function isReactDetected(): boolean {\n const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n return Boolean(\n hook && (hook.renderers.size > 0 || hook._instrumentationIsActive)\n );\n}\n\nexport function getRenderers(): Map<number, ReactRenderer> {\n const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n return hook?.renderers ?? new Map();\n}\n\nexport function getAllFiberRoots(): FiberRoot[] {\n const roots: FiberRoot[] = [];\n for (const rootSet of fiberRoots.values()) {\n roots.push(...rootSet);\n }\n return roots;\n}\n\nexport function onReactDetected(callback: () => void): () => void {\n if (isReactDetected()) {\n callback();\n }\n onActiveListeners.add(callback);\n return () => {\n onActiveListeners.delete(callback);\n };\n}\n\nexport function onCommitFiberRoot(\n handler: (\n rendererID: number,\n root: FiberRoot,\n priority: number | undefined\n ) => void\n): () => void {\n const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (!hook) {\n return () => {};\n }\n\n const originalHandler = hook.onCommitFiberRoot;\n hook.onCommitFiberRoot = (rendererID, root, priority) => {\n originalHandler(rendererID, root, priority);\n handler(rendererID, root, priority ?? undefined);\n };\n\n return () => {\n hook.onCommitFiberRoot = originalHandler;\n };\n}\n\nfunction notifyActiveListeners(): void {\n for (const listener of onActiveListeners) {\n try {\n listener();\n } catch {\n // Ignore listener errors\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiberAccess.js","names":["getRenderers","safeFiberOperation","isValidFiber","value","getFiberFromElement","element","getFiberFromElementUnsafe","fallback","feature","renderers","renderer","values","findFiberByHostInstance","fiber","legacyRoot","_reactRootContainer","_internalRoot","current","child","findFiberFromInternalProperties","REACT_KEY_PREFIXES","key","prefix","startsWith"],"sources":["FiberAccess.ts"],"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 { getRenderers } from \"./DevtoolsHook.js\";\nimport { safeFiberOperation } from \"./SafeFiberOperation.js\";\nimport type { Fiber } from \"./types.js\";\n\nfunction isValidFiber(value: unknown): value is Fiber {\n return (\n typeof value === \"object\"
|
|
1
|
+
{"version":3,"file":"FiberAccess.js","names":["getRenderers","safeFiberOperation","isValidFiber","value","getFiberFromElement","element","getFiberFromElementUnsafe","fallback","feature","renderers","renderer","values","findFiberByHostInstance","fiber","legacyRoot","_reactRootContainer","_internalRoot","current","child","findFiberFromInternalProperties","REACT_KEY_PREFIXES","key","prefix","startsWith"],"sources":["FiberAccess.ts"],"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 { getRenderers } from \"./DevtoolsHook.js\";\nimport { safeFiberOperation } from \"./SafeFiberOperation.js\";\nimport type { Fiber } from \"./types.js\";\n\nfunction isValidFiber(value: unknown): value is Fiber {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"tag\" in value &&\n \"stateNode\" in value &&\n \"return\" in value &&\n \"child\" in value &&\n \"sibling\" in value &&\n \"flags\" in value\n );\n}\n\nexport function getFiberFromElement(element: Element): Fiber | null {\n return safeFiberOperation(() => getFiberFromElementUnsafe(element), {\n fallback: null,\n feature: \"component-inspection\",\n });\n}\n\nfunction getFiberFromElementUnsafe(element: Element): Fiber | null {\n const renderers = getRenderers();\n for (const renderer of renderers.values()) {\n if (renderer.findFiberByHostInstance) {\n const fiber = renderer.findFiberByHostInstance(element);\n if (fiber && isValidFiber(fiber)) {\n return fiber;\n }\n }\n }\n\n const legacyRoot = (element as unknown as Record<string, unknown>)\n ._reactRootContainer as\n | { _internalRoot?: { current?: { child?: unknown } } }\n | undefined;\n if (legacyRoot?._internalRoot?.current?.child) {\n const fiber = legacyRoot._internalRoot.current.child;\n if (isValidFiber(fiber)) {\n return fiber;\n }\n }\n\n const fiber = findFiberFromInternalProperties(element);\n if (fiber) {\n return fiber;\n }\n\n return null;\n}\n\nconst REACT_KEY_PREFIXES = [\n \"__reactFiber$\",\n \"__reactInternalInstance$\",\n \"__reactContainer$\",\n] as const;\n\nfunction findFiberFromInternalProperties(element: Element): Fiber | null {\n for (const key in element) {\n for (const prefix of REACT_KEY_PREFIXES) {\n if (key.startsWith(prefix)) {\n const value = (element as unknown as Record<string, unknown>)[key];\n if (isValidFiber(value)) {\n return value;\n }\n }\n }\n }\n return null;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,YAAY,QAAQ,mBAAmB;AAChD,SAASC,kBAAkB,QAAQ,yBAAyB;AAG5D,SAASC,YAAYA,CAACC,KAAc,EAAkB;EACpD,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,IAAI,IAAI,IACb,KAAK,IAAIA,KAAK,IACd,WAAW,IAAIA,KAAK,IACpB,QAAQ,IAAIA,KAAK,IACjB,OAAO,IAAIA,KAAK,IAChB,SAAS,IAAIA,KAAK,IAClB,OAAO,IAAIA,KAAK;AAEpB;AAEA,OAAO,SAASC,mBAAmBA,CAACC,OAAgB,EAAgB;EAClE,OAAOJ,kBAAkB,CAAC,MAAMK,yBAAyB,CAACD,OAAO,CAAC,EAAE;IAClEE,QAAQ,EAAE,IAAI;IACdC,OAAO,EAAE;EACX,CAAC,CAAC;AACJ;AAEA,SAASF,yBAAyBA,CAACD,OAAgB,EAAgB;EACjE,MAAMI,SAAS,GAAGT,YAAY,CAAC,CAAC;EAChC,KAAK,MAAMU,QAAQ,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;IACzC,IAAID,QAAQ,CAACE,uBAAuB,EAAE;MACpC,MAAMC,KAAK,GAAGH,QAAQ,CAACE,uBAAuB,CAACP,OAAO,CAAC;MACvD,IAAIQ,KAAK,IAAIX,YAAY,CAACW,KAAK,CAAC,EAAE;QAChC,OAAOA,KAAK;MACd;IACF;EACF;EAEA,MAAMC,UAAU,GAAIT,OAAO,CACxBU,mBAEU;EACb,IAAID,UAAU,EAAEE,aAAa,EAAEC,OAAO,EAAEC,KAAK,EAAE;IAC7C,MAAML,KAAK,GAAGC,UAAU,CAACE,aAAa,CAACC,OAAO,CAACC,KAAK;IACpD,IAAIhB,YAAY,CAACW,KAAK,CAAC,EAAE;MACvB,OAAOA,KAAK;IACd;EACF;EAEA,MAAMA,KAAK,GAAGM,+BAA+B,CAACd,OAAO,CAAC;EACtD,IAAIQ,KAAK,EAAE;IACT,OAAOA,KAAK;EACd;EAEA,OAAO,IAAI;AACb;AAEA,MAAMO,kBAAkB,GAAG,CACzB,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,CACX;AAEV,SAASD,+BAA+BA,CAACd,OAAgB,EAAgB;EACvE,KAAK,MAAMgB,GAAG,IAAIhB,OAAO,EAAE;IACzB,KAAK,MAAMiB,MAAM,IAAIF,kBAAkB,EAAE;MACvC,IAAIC,GAAG,CAACE,UAAU,CAACD,MAAM,CAAC,EAAE;QAC1B,MAAMnB,KAAK,GAAIE,OAAO,CAAwCgB,GAAG,CAAC;QAClE,IAAInB,YAAY,CAACC,KAAK,CAAC,EAAE;UACvB,OAAOA,KAAK;QACd;MACF;IACF;EACF;EACA,OAAO,IAAI;AACb","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiberInspection.js","names":["FIBER_TAG","safeFiberOperation","getComponentName","fiber","getComponentNameUnsafe","fallback","feature","type","tag","HOST_ELEMENT","HOST_TEXT","HOST_ROOT","FRAGMENT","SUSPENSE","displayName","name","innerType","render","CONTEXT_PROVIDER","context","_context","CONTEXT_CONSUMER","getComponentId","debugId","_debugID","_debugSource","fileName","lineNumber","shortPath","split","slice","join","typeHash","toString","length","Date","now","getSourceLocation","columnNumber","getProps","memoizedProps","getHookStates","states","current","memoizedState","push","next"],"sources":["FiberInspection.ts"],"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 { FIBER_TAG } from \"./FiberTags.js\";\nimport { safeFiberOperation } from \"./SafeFiberOperation.js\";\nimport type { Fiber, SourceLocation } from \"./types.js\";\n\nexport function getComponentName(fiber: Fiber): string {\n return safeFiberOperation(
|
|
1
|
+
{"version":3,"file":"FiberInspection.js","names":["FIBER_TAG","safeFiberOperation","getComponentName","fiber","getComponentNameUnsafe","fallback","feature","type","tag","HOST_ELEMENT","HOST_TEXT","HOST_ROOT","FRAGMENT","SUSPENSE","displayName","name","innerType","render","CONTEXT_PROVIDER","context","_context","CONTEXT_CONSUMER","getComponentId","debugId","_debugID","_debugSource","fileName","lineNumber","shortPath","split","slice","join","typeHash","toString","length","Date","now","getSourceLocation","columnNumber","getProps","memoizedProps","getHookStates","states","current","memoizedState","push","next"],"sources":["FiberInspection.ts"],"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 { FIBER_TAG } from \"./FiberTags.js\";\nimport { safeFiberOperation } from \"./SafeFiberOperation.js\";\nimport type { Fiber, SourceLocation } from \"./types.js\";\n\nexport function getComponentName(fiber: Fiber): string {\n return safeFiberOperation(() => getComponentNameUnsafe(fiber), {\n fallback: \"Unknown\",\n feature: \"component-inspection\",\n });\n}\n\nfunction getComponentNameUnsafe(fiber: Fiber): string {\n const { type, tag } = fiber;\n\n if (tag === FIBER_TAG.HOST_ELEMENT) {\n return typeof type === \"string\" ? type : \"Element\";\n }\n\n if (tag === FIBER_TAG.HOST_TEXT) {\n return \"#text\";\n }\n\n if (tag === FIBER_TAG.HOST_ROOT) {\n return \"#root\";\n }\n\n if (tag === FIBER_TAG.FRAGMENT) {\n return \"Fragment\";\n }\n\n if (tag === FIBER_TAG.SUSPENSE) {\n return \"Suspense\";\n }\n\n if (typeof type === \"function\") {\n return type.displayName || type.name || \"Anonymous\";\n }\n\n if (type && typeof type === \"object\") {\n if (\"type\" in type && typeof type.type === \"function\") {\n const innerType = type.type as { displayName?: string; name?: string };\n return innerType.displayName || innerType.name || \"Memo\";\n }\n\n if (\"render\" in type && typeof type.render === \"function\") {\n const render = type.render as { displayName?: string; name?: string };\n return render.displayName || render.name || \"ForwardRef\";\n }\n\n if (\"displayName\" in type && typeof type.displayName === \"string\") {\n return type.displayName;\n }\n }\n\n if (tag === FIBER_TAG.CONTEXT_PROVIDER) {\n const context = type?._context;\n if (context?.displayName) {\n return `${context.displayName}.Provider`;\n }\n return \"Context.Provider\";\n }\n\n if (tag === FIBER_TAG.CONTEXT_CONSUMER) {\n const context = type?._context ?? type;\n if (context?.displayName) {\n return `${context.displayName}.Consumer`;\n }\n return \"Context.Consumer\";\n }\n\n return \"Unknown\";\n}\n\nexport function getComponentId(fiber: Fiber): string {\n return safeFiberOperation(\n () => {\n const debugId = (fiber as Record<string, unknown>)._debugID;\n if (typeof debugId === \"number\") {\n return `fiber-debug-${debugId}`;\n }\n\n if (fiber._debugSource) {\n const name = getComponentNameUnsafe(fiber);\n const { fileName, lineNumber } = fiber._debugSource;\n const shortPath = fileName?.split(\"/\").slice(-2).join(\"/\") || \"unknown\";\n return `fiber-${name}-${shortPath}-${lineNumber || 0}`;\n }\n\n const name = getComponentNameUnsafe(fiber);\n const typeHash =\n typeof fiber.type === \"function\" ? fiber.type.toString().length : 0;\n return `fiber-${name}-${typeHash}`;\n },\n {\n fallback: `fiber-unknown-${Date.now()}`,\n feature: \"component-inspection\",\n }\n );\n}\n\nexport function getSourceLocation(fiber: Fiber): SourceLocation | null {\n return safeFiberOperation(\n () => {\n if (fiber._debugSource) {\n return {\n fileName: fiber._debugSource.fileName,\n lineNumber: fiber._debugSource.lineNumber,\n columnNumber: fiber._debugSource.columnNumber,\n };\n }\n return null;\n },\n { fallback: null, feature: \"component-inspection\" }\n );\n}\n\nexport function getProps(fiber: Fiber): Record<string, unknown> {\n return safeFiberOperation(\n () => {\n if (fiber.memoizedProps && typeof fiber.memoizedProps === \"object\") {\n return fiber.memoizedProps as Record<string, unknown>;\n }\n return {};\n },\n { fallback: {}, feature: \"component-inspection\" }\n );\n}\n\nexport function getHookStates(fiber: Fiber): unknown[] {\n return safeFiberOperation(\n () => {\n const states: unknown[] = [];\n let current = fiber.memoizedState;\n\n while (current) {\n states.push(current.memoizedState);\n current = current.next;\n }\n\n return states;\n },\n { fallback: [], feature: \"state-inspection\" }\n );\n}\n"],"mappings":"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","ignoreList":[]}
|