@buoy-gg/shared-ui 7.0.40 → 7.0.42
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/README.md +6 -0
- package/dataViewer.js +1 -9
- package/floating.js +1 -2
- package/history.js +1 -7
- package/hooks.js +1 -7
- package/lib/commonjs/JsModal.js +1 -1814
- package/lib/commonjs/JsModal.web.js +1 -1652
- package/lib/commonjs/clipboard/autoDetectClipboard.js +1 -67
- package/lib/commonjs/clipboard/clipboard-impl.js +1 -128
- package/lib/commonjs/clipboard/clipboard-impl.web.js +1 -0
- package/lib/commonjs/clipboard/copyToClipboard.js +1 -64
- package/lib/commonjs/clipboard/index.js +1 -25
- package/lib/commonjs/colors/index.js +1 -49
- package/lib/commonjs/context/HintsContext.js +1 -49
- package/lib/commonjs/context/index.js +1 -24
- package/lib/commonjs/dataViewer/CyberpunkInput.js +1 -388
- package/lib/commonjs/dataViewer/DataTreeActionBar.js +1 -390
- package/lib/commonjs/dataViewer/DataTreeActionDock.js +1 -226
- package/lib/commonjs/dataViewer/DataViewer.js +1 -158
- package/lib/commonjs/dataViewer/DiffSummary.js +1 -134
- package/lib/commonjs/dataViewer/IndentGuides.js +1 -128
- package/lib/commonjs/dataViewer/IndentGuidesOverlay.js +1 -104
- package/lib/commonjs/dataViewer/JsonStringNotice.js +1 -59
- package/lib/commonjs/dataViewer/LiveExplorer.js +1 -943
- package/lib/commonjs/dataViewer/SplitDiffViewer.js +1 -421
- package/lib/commonjs/dataViewer/ThemedSplitView.js +1 -642
- package/lib/commonjs/dataViewer/TimestampDeltaBar.js +1 -96
- package/lib/commonjs/dataViewer/TypeLegend.js +1 -111
- package/lib/commonjs/dataViewer/ValueEditModal.js +1 -386
- package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +1 -1270
- package/lib/commonjs/dataViewer/diffThemes.js +1 -113
- package/lib/commonjs/dataViewer/index.js +1 -320
- package/lib/commonjs/dataViewer/jsonOps.js +1 -320
- package/lib/commonjs/dataViewer/jsonStringValue.js +1 -94
- package/lib/commonjs/dataViewer/lineDiff.js +1 -568
- package/lib/commonjs/dataViewer/nestedPath.js +1 -115
- package/lib/commonjs/dataViewer/objectDiff.js +1 -304
- package/lib/commonjs/dataViewer/timestampDiff.js +1 -146
- package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +1 -913
- package/lib/commonjs/dataViewer/treeActions.js +1 -168
- package/lib/commonjs/dataViewer/useTreeDraft.js +1 -125
- package/lib/commonjs/dataViewer/useTreeEditor.js +1 -105
- package/lib/commonjs/env/EnvironmentIndicator.js +1 -129
- package/lib/commonjs/env/EnvironmentIndicator.web.js +1 -114
- package/lib/commonjs/env/EnvironmentSelector.js +1 -205
- package/lib/commonjs/env/EnvironmentSelectorInline.js +1 -299
- package/lib/commonjs/env/EnvironmentSelectorInline.web.js +1 -178
- package/lib/commonjs/history/HistoryProvider.js +1 -246
- package/lib/commonjs/history/components/HistoryEntryRow.js +1 -146
- package/lib/commonjs/history/components/HistoryList.js +1 -174
- package/lib/commonjs/history/components/index.js +1 -25
- package/lib/commonjs/history/index.js +1 -61
- package/lib/commonjs/history/types.js +1 -5
- package/lib/commonjs/hooks/index.js +1 -77
- package/lib/commonjs/hooks/safe-area-impl.js +1 -28
- package/lib/commonjs/hooks/useChangeLog.js +1 -55
- package/lib/commonjs/hooks/useDeviceInfo.js +1 -524
- package/lib/commonjs/hooks/useEventStoreEvents.js +1 -65
- package/lib/commonjs/hooks/useFilterManager.js +1 -136
- package/lib/commonjs/hooks/usePersistedState.js +1 -106
- package/lib/commonjs/hooks/useSafeAreaInsets.js +1 -250
- package/lib/commonjs/hooks/useSafeAreaInsets.web.js +1 -0
- package/lib/commonjs/icons/BenchmarkIcon.js +1 -109
- package/lib/commonjs/icons/EnvLaptopIcon.js +1 -204
- package/lib/commonjs/icons/IconBackground.js +1 -279
- package/lib/commonjs/icons/ReactQueryIcon.js +1 -17
- package/lib/commonjs/icons/RenderCountIcon.js +1 -147
- package/lib/commonjs/icons/RouteMapIcon.js +1 -250
- package/lib/commonjs/icons/SentryBugIcon.js +1 -19
- package/lib/commonjs/icons/StackPulseIcon.js +1 -158
- package/lib/commonjs/icons/StorageStackIcon.js +1 -156
- package/lib/commonjs/icons/WifiCircuitIcon.js +1 -169
- package/lib/commonjs/icons/index.js +1 -826
- package/lib/commonjs/icons/lucide-icons-original-full.js +1 -3248
- package/lib/commonjs/icons/lucide-icons.js +1 -2476
- package/lib/commonjs/icons/primitives/GlobeIcon.js +1 -66
- package/lib/commonjs/icons/primitives/icon-primitives.js +1 -169
- package/lib/commonjs/icons/primitives/index.js +1 -49
- package/lib/commonjs/index.js +1 -1098
- package/lib/commonjs/license/AccountSetup.js +1 -56
- package/lib/commonjs/license/AccountSetup.web.js +14 -81
- package/lib/commonjs/license/AccountSetupContent.js +1 -0
- package/lib/commonjs/license/FeatureGate.js +1 -788
- package/lib/commonjs/license/FreeAccountPrompt.js +1 -205
- package/lib/commonjs/license/LicenseEntryModal.js +2 -394
- package/lib/commonjs/license/accountRuntime.js +1 -0
- package/lib/commonjs/license/accountRuntime.web.js +1 -0
- package/lib/commonjs/license/index.js +1 -106
- package/lib/commonjs/license/licenseModule.js +1 -119
- package/lib/commonjs/license/openPricing.js +1 -36
- package/lib/commonjs/license/tierLimits.js +1 -128
- package/lib/commonjs/logger/index-sentry.js +1 -245
- package/lib/commonjs/logger/index.js +1 -62
- package/lib/commonjs/logger/logDump.js +1 -19
- package/lib/commonjs/logger/types.js +1 -38
- package/lib/commonjs/settings/components/BubbleSettingsSection.js +1 -384
- package/lib/commonjs/settings/index.js +1 -24
- package/lib/commonjs/storage/definePersistedSetting.js +1 -67
- package/lib/commonjs/storage/devToolsStorageKeys.js +1 -359
- package/lib/commonjs/storage/index.js +1 -25
- package/lib/commonjs/stores/BaseEventStore.js +1 -343
- package/lib/commonjs/stores/ChangeLog.js +1 -197
- package/lib/commonjs/stores/createToolStore.js +1 -193
- package/lib/commonjs/stores/floatingToolStore.js +1 -71
- package/lib/commonjs/stores/floatingToolStore.test.js +1 -112
- package/lib/commonjs/stores/ignoredPatternsCore.js +1 -75
- package/lib/commonjs/stores/ignoredPatternsStore.js +1 -205
- package/lib/commonjs/stores/ignoredPatternsStore.shared.js +1 -0
- package/lib/commonjs/stores/ignoredPatternsStore.web.js +1 -236
- package/lib/commonjs/stores/index.js +1 -51
- package/lib/commonjs/sync/keyedArrays.js +1 -209
- package/lib/commonjs/sync/toolActionRegistry.js +1 -249
- package/lib/commonjs/sync/toolAttention.test.js +1 -51
- package/lib/commonjs/sync/toolSyncAdapter.js +1 -63
- package/lib/commonjs/sync/toolUiBridge.js +1 -132
- package/lib/commonjs/sync/typedEdit.js +1 -228
- package/lib/commonjs/sync/valuePath.js +1 -337
- package/lib/commonjs/sync/valueShape.js +1 -161
- package/lib/commonjs/sync/wireBudget.js +1 -97
- package/lib/commonjs/sync/wireForm.js +1 -172
- package/lib/commonjs/tools/defineTool.js +1 -79
- package/lib/commonjs/types/types.d.js +1 -1
- package/lib/commonjs/types/types.js +1 -37
- package/lib/commonjs/ui/backgrounds/BackgroundSwitcher.js +1 -354
- package/lib/commonjs/ui/backgrounds/ToolBackground.js +1 -76
- package/lib/commonjs/ui/backgrounds/backgroundStore.js +1 -130
- package/lib/commonjs/ui/backgrounds/index.js +1 -167
- package/lib/commonjs/ui/backgrounds/primitives.js +1 -369
- package/lib/commonjs/ui/backgrounds/registry.js +1 -98
- package/lib/commonjs/ui/backgrounds/rng.js +1 -93
- package/lib/commonjs/ui/backgrounds/skyClock.js +1 -45
- package/lib/commonjs/ui/backgrounds/types.js +1 -1
- package/lib/commonjs/ui/backgrounds/variants/daylight.js +1 -453
- package/lib/commonjs/ui/backgrounds/variants/deepField.js +1 -381
- package/lib/commonjs/ui/backgrounds/variants/hyperspace.js +1 -218
- package/lib/commonjs/ui/backgrounds/variants/liveSky.js +1 -898
- package/lib/commonjs/ui/backgrounds/variants/meteors.js +1 -401
- package/lib/commonjs/ui/backgrounds/variants/moonlight.js +1 -472
- package/lib/commonjs/ui/backgrounds/variants/underwater.js +1 -757
- package/lib/commonjs/ui/backgrounds/variants/wormhole/motion.js +1 -48
- package/lib/commonjs/ui/backgrounds/variants/wormhole/textures.js +1 -3
- package/lib/commonjs/ui/backgrounds/variants/wormhole.js +1 -133
- package/lib/commonjs/ui/components/BackButton.js +1 -47
- package/lib/commonjs/ui/components/Badge.js +1 -226
- package/lib/commonjs/ui/components/ChangeRow.js +1 -111
- package/lib/commonjs/ui/components/ChipStrip.js +1 -94
- package/lib/commonjs/ui/components/ClipboardHintBanner.js +1 -149
- package/lib/commonjs/ui/components/CollapsibleSection.js +1 -170
- package/lib/commonjs/ui/components/CompactFilterChips.js +1 -114
- package/lib/commonjs/ui/components/CompactRow.js +1 -295
- package/lib/commonjs/ui/components/CopyButton.js +1 -307
- package/lib/commonjs/ui/components/DataInspector.js +1 -323
- package/lib/commonjs/ui/components/DetailView.js +1 -358
- package/lib/commonjs/ui/components/DetailViewToggle.js +1 -130
- package/lib/commonjs/ui/components/DevToolsCard.js +1 -126
- package/lib/commonjs/ui/components/DraggableHeader.js +1 -215
- package/lib/commonjs/ui/components/DynamicFilterView.js +1 -758
- package/lib/commonjs/ui/components/EmptyState.js +1 -151
- package/lib/commonjs/ui/components/EntityFilterView.js +1 -355
- package/lib/commonjs/ui/components/EventHistoryViewer/CompareBar.js +1 -211
- package/lib/commonjs/ui/components/EventHistoryViewer/DiffModeTabs.js +1 -99
- package/lib/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.js +1 -184
- package/lib/commonjs/ui/components/EventHistoryViewer/EventPickerModal.js +1 -208
- package/lib/commonjs/ui/components/EventHistoryViewer/ViewToggleCards.js +1 -137
- package/lib/commonjs/ui/components/EventHistoryViewer/index.js +1 -40
- package/lib/commonjs/ui/components/EventHistoryViewer/types.js +1 -5
- package/lib/commonjs/ui/components/EventListItem.js +1 -247
- package/lib/commonjs/ui/components/EventStepperFooter.js +1 -185
- package/lib/commonjs/ui/components/ExpandablePopover.js +1 -381
- package/lib/commonjs/ui/components/ExpandedInfoRow.js +1 -108
- package/lib/commonjs/ui/components/ExportPreview.js +1 -174
- package/lib/commonjs/ui/components/FilterComponents.js +1 -291
- package/lib/commonjs/ui/components/GripVerticalIcon.js +1 -65
- package/lib/commonjs/ui/components/HeaderSearchButton.js +1 -50
- package/lib/commonjs/ui/components/InfoRow.js +1 -91
- package/lib/commonjs/ui/components/ListItem.js +1 -173
- package/lib/commonjs/ui/components/ModalHeader.js +1 -305
- package/lib/commonjs/ui/components/ModalHintBanner.js +1 -147
- package/lib/commonjs/ui/components/Pill.js +1 -115
- package/lib/commonjs/ui/components/PowerToggleButton.js +1 -78
- package/lib/commonjs/ui/components/SearchBar.js +1 -165
- package/lib/commonjs/ui/components/SectionHeader.js +1 -129
- package/lib/commonjs/ui/components/StatsCard.js +1 -198
- package/lib/commonjs/ui/components/StatusIndicator.js +1 -231
- package/lib/commonjs/ui/components/StorageTypeBadge.js +1 -97
- package/lib/commonjs/ui/components/TabSelector.js +1 -102
- package/lib/commonjs/ui/components/TimeDisplay.js +1 -142
- package/lib/commonjs/ui/components/ToggleRow.js +1 -116
- package/lib/commonjs/ui/components/ToolButton.js +1 -93
- package/lib/commonjs/ui/components/ToolEmptyState.js +1 -154
- package/lib/commonjs/ui/components/ToolFooter.js +1 -205
- package/lib/commonjs/ui/components/ValueTypeBadge.js +1 -147
- package/lib/commonjs/ui/components/WindowControls.js +1 -387
- package/lib/commonjs/ui/components/index.js +1 -507
- package/lib/commonjs/ui/components/windowDrag.js +1 -45
- package/lib/commonjs/ui/console/CyberpunkButtonOutline.js +1 -261
- package/lib/commonjs/ui/console/CyberpunkIconContainer.js +1 -186
- package/lib/commonjs/ui/console/CyberpunkSectionButton.js +1 -123
- package/lib/commonjs/ui/floating/FloatingTool.js +1 -1010
- package/lib/commonjs/ui/floating/FloatingTool.web.js +1 -591
- package/lib/commonjs/ui/floating/FloatingToolHost.js +1 -32
- package/lib/commonjs/ui/floating/FloatingToolHost.web.js +1 -28
- package/lib/commonjs/ui/floating/index.js +1 -105
- package/lib/commonjs/ui/floating/index.web.js +1 -105
- package/lib/commonjs/ui/floating/onboardingConstants.js +1 -70
- package/lib/commonjs/ui/floating/onboardingConstants.web.js +1 -34
- package/lib/commonjs/ui/fonts.js +1 -12
- package/lib/commonjs/ui/gameUI/components/GameUICollapsibleSection.js +1 -121
- package/lib/commonjs/ui/gameUI/components/GameUICompactStats.js +1 -336
- package/lib/commonjs/ui/gameUI/components/GameUIIssuesList.js +1 -284
- package/lib/commonjs/ui/gameUI/components/GameUIStatusHeader.js +1 -145
- package/lib/commonjs/ui/gameUI/constants/gameUIColors.js +1 -224
- package/lib/commonjs/ui/gameUI/constants/macOSDesignSystemColors.js +1 -224
- package/lib/commonjs/ui/gameUI/hooks/useGameUIAlertState.js +1 -110
- package/lib/commonjs/ui/gameUI/index.js +1 -72
- package/lib/commonjs/ui/index.js +1 -217
- package/lib/commonjs/ui/listPresets.js +1 -43
- package/lib/commonjs/ui/night/nightTheme.js +1 -130
- package/lib/commonjs/ui/night/primitives.js +1 -517
- package/lib/commonjs/ui/otto/OttoSceneView.js +1 -69
- package/lib/commonjs/ui/otto/OttoSprite.js +1 -510
- package/lib/commonjs/ui/otto/index.js +1 -60
- package/lib/commonjs/ui/otto/ottoEngine.js +1 -2737
- package/lib/commonjs/ui/otto/ottoScenes.js +1 -949
- package/lib/commonjs/ui/otto/ottoSheet.js +1 -191
- package/lib/commonjs/ui/toolTheme.js +1 -97
- package/lib/commonjs/utils/absoluteFill.js +1 -28
- package/lib/commonjs/utils/browserAsyncStorage.js +1 -0
- package/lib/commonjs/utils/browserNavigation.js +1 -0
- package/lib/commonjs/utils/devServer.js +1 -62
- package/lib/commonjs/utils/devServer.web.js +1 -0
- package/lib/commonjs/utils/displayValue.js +1 -41
- package/lib/commonjs/utils/domRuntime.js +1 -0
- package/lib/commonjs/utils/expoRouterModule.js +1 -0
- package/lib/commonjs/utils/expoRouterModule.web.js +1 -0
- package/lib/commonjs/utils/formatting/dataFormatting.js +1 -102
- package/lib/commonjs/utils/formatting/httpFormatting.js +1 -147
- package/lib/commonjs/utils/formatting/index.js +1 -27
- package/lib/commonjs/utils/getSafeAreaInsets.js +1 -40
- package/lib/commonjs/utils/getSafeAreaInsets.web.js +1 -0
- package/lib/commonjs/utils/index.js +1 -309
- package/lib/commonjs/utils/loadOptionalModule.js +1 -94
- package/lib/commonjs/utils/loadToolModule.js +1 -0
- package/lib/commonjs/utils/loadToolModule.web.js +1 -0
- package/lib/commonjs/utils/minimalSuperJSON.js +1 -347
- package/lib/commonjs/utils/modalStorage.js +1 -0
- package/lib/commonjs/utils/nativeWeb.js +1 -0
- package/lib/commonjs/utils/persistentStorage.js +1 -609
- package/lib/commonjs/utils/persistentStorage.web.js +1 -0
- package/lib/commonjs/utils/realNow.js +1 -0
- package/lib/commonjs/utils/reloadApp.js +1 -144
- package/lib/commonjs/utils/reloadPlatform.js +1 -0
- package/lib/commonjs/utils/reloadPlatform.web.js +1 -0
- package/lib/commonjs/utils/renderCaptureRegistry.js +1 -59
- package/lib/commonjs/utils/safeExpoRouter.js +1 -250
- package/lib/commonjs/utils/safeExpoRouter.web.js +1 -0
- package/lib/commonjs/utils/safeStringify.js +1 -229
- package/lib/commonjs/utils/snapshotProviderKit.js +1 -167
- package/lib/commonjs/utils/stateSnapshotRegistry.js +1 -71
- package/lib/commonjs/utils/stateTools.js +1 -160
- package/lib/commonjs/utils/subscribable.js +1 -113
- package/lib/commonjs/utils/subscriberCountNotifier.js +1 -72
- package/lib/commonjs/utils/time/RelativeTime.js +1 -31
- package/lib/commonjs/utils/time/TickContext.js +1 -43
- package/lib/commonjs/utils/time/formatRelativeTime.js +1 -34
- package/lib/commonjs/utils/time/index.js +1 -39
- package/lib/commonjs/utils/time/useRelativeTime.js +1 -36
- package/lib/commonjs/utils/toolModules.js +1 -0
- package/lib/commonjs/utils/typeHelpers.js +1 -142
- package/lib/commonjs/utils/valueFormatting.js +1 -140
- package/lib/module/JsModal.js +1 -1810
- package/lib/module/JsModal.web.js +1 -1648
- package/lib/module/clipboard/autoDetectClipboard.js +1 -45
- package/lib/module/clipboard/clipboard-impl.js +1 -121
- package/lib/module/clipboard/clipboard-impl.web.js +1 -0
- package/lib/module/clipboard/copyToClipboard.js +1 -60
- package/lib/module/clipboard/index.js +1 -5
- package/lib/module/colors/index.js +1 -21
- package/lib/module/context/HintsContext.js +1 -43
- package/lib/module/context/index.js +1 -3
- package/lib/module/dataViewer/CyberpunkInput.js +1 -384
- package/lib/module/dataViewer/DataTreeActionBar.js +1 -385
- package/lib/module/dataViewer/DataTreeActionDock.js +1 -222
- package/lib/module/dataViewer/DataViewer.js +1 -153
- package/lib/module/dataViewer/DiffSummary.js +1 -129
- package/lib/module/dataViewer/IndentGuides.js +1 -124
- package/lib/module/dataViewer/IndentGuidesOverlay.js +1 -99
- package/lib/module/dataViewer/JsonStringNotice.js +1 -54
- package/lib/module/dataViewer/LiveExplorer.js +1 -937
- package/lib/module/dataViewer/SplitDiffViewer.js +1 -416
- package/lib/module/dataViewer/ThemedSplitView.js +1 -637
- package/lib/module/dataViewer/TimestampDeltaBar.js +1 -91
- package/lib/module/dataViewer/TypeLegend.js +1 -105
- package/lib/module/dataViewer/ValueEditModal.js +1 -382
- package/lib/module/dataViewer/VirtualizedDataExplorer.js +1 -1265
- package/lib/module/dataViewer/diffThemes.js +1 -109
- package/lib/module/dataViewer/index.js +1 -57
- package/lib/module/dataViewer/jsonOps.js +1 -311
- package/lib/module/dataViewer/jsonStringValue.js +1 -89
- package/lib/module/dataViewer/lineDiff.js +1 -564
- package/lib/module/dataViewer/nestedPath.js +1 -109
- package/lib/module/dataViewer/objectDiff.js +1 -297
- package/lib/module/dataViewer/timestampDiff.js +1 -139
- package/lib/module/dataViewer/tree/TreeDiffViewer.js +1 -907
- package/lib/module/dataViewer/treeActions.js +1 -162
- package/lib/module/dataViewer/useTreeDraft.js +1 -121
- package/lib/module/dataViewer/useTreeEditor.js +1 -101
- package/lib/module/env/EnvironmentIndicator.js +1 -125
- package/lib/module/env/EnvironmentIndicator.web.js +1 -108
- package/lib/module/env/EnvironmentSelector.js +1 -201
- package/lib/module/env/EnvironmentSelectorInline.js +1 -295
- package/lib/module/env/EnvironmentSelectorInline.web.js +1 -173
- package/lib/module/history/HistoryProvider.js +1 -237
- package/lib/module/history/components/HistoryEntryRow.js +1 -142
- package/lib/module/history/components/HistoryList.js +1 -169
- package/lib/module/history/components/index.js +1 -8
- package/lib/module/history/index.js +1 -15
- package/lib/module/history/types.js +1 -3
- package/lib/module/hooks/index.js +1 -9
- package/lib/module/hooks/safe-area-impl.js +1 -23
- package/lib/module/hooks/useChangeLog.js +1 -50
- package/lib/module/hooks/useDeviceInfo.js +1 -519
- package/lib/module/hooks/useEventStoreEvents.js +1 -61
- package/lib/module/hooks/useFilterManager.js +1 -132
- package/lib/module/hooks/usePersistedState.js +1 -102
- package/lib/module/hooks/useSafeAreaInsets.js +1 -245
- package/lib/module/hooks/useSafeAreaInsets.web.js +1 -0
- package/lib/module/icons/BenchmarkIcon.js +1 -104
- package/lib/module/icons/EnvLaptopIcon.js +1 -199
- package/lib/module/icons/IconBackground.js +1 -274
- package/lib/module/icons/ReactQueryIcon.js +1 -12
- package/lib/module/icons/RenderCountIcon.js +1 -142
- package/lib/module/icons/RouteMapIcon.js +1 -245
- package/lib/module/icons/SentryBugIcon.js +1 -14
- package/lib/module/icons/StackPulseIcon.js +1 -153
- package/lib/module/icons/StorageStackIcon.js +1 -151
- package/lib/module/icons/WifiCircuitIcon.js +1 -164
- package/lib/module/icons/index.js +1 -62
- package/lib/module/icons/lucide-icons-original-full.js +1 -3178
- package/lib/module/icons/lucide-icons.js +1 -2420
- package/lib/module/icons/primitives/GlobeIcon.js +1 -61
- package/lib/module/icons/primitives/icon-primitives.js +1 -161
- package/lib/module/icons/primitives/index.js +1 -15
- package/lib/module/index.js +1 -108
- package/lib/module/license/AccountSetup.js +1 -52
- package/lib/module/license/AccountSetup.web.js +14 -77
- package/lib/module/license/AccountSetupContent.js +1 -0
- package/lib/module/license/FeatureGate.js +1 -778
- package/lib/module/license/FreeAccountPrompt.js +1 -199
- package/lib/module/license/LicenseEntryModal.js +2 -388
- package/lib/module/license/accountRuntime.js +1 -0
- package/lib/module/license/accountRuntime.web.js +1 -0
- package/lib/module/license/index.js +1 -9
- package/lib/module/license/licenseModule.js +1 -107
- package/lib/module/license/openPricing.js +1 -31
- package/lib/module/license/tierLimits.js +1 -122
- package/lib/module/logger/index-sentry.js +1 -230
- package/lib/module/logger/index.js +1 -13
- package/lib/module/logger/logDump.js +1 -13
- package/lib/module/logger/types.js +1 -37
- package/lib/module/settings/components/BubbleSettingsSection.js +1 -378
- package/lib/module/settings/index.js +1 -3
- package/lib/module/storage/definePersistedSetting.js +1 -63
- package/lib/module/storage/devToolsStorageKeys.js +1 -352
- package/lib/module/storage/index.js +1 -4
- package/lib/module/stores/BaseEventStore.js +1 -339
- package/lib/module/stores/ChangeLog.js +1 -192
- package/lib/module/stores/createToolStore.js +1 -189
- package/lib/module/stores/floatingToolStore.js +1 -61
- package/lib/module/stores/floatingToolStore.test.js +1 -111
- package/lib/module/stores/ignoredPatternsCore.js +1 -69
- package/lib/module/stores/ignoredPatternsStore.js +1 -189
- package/lib/module/stores/ignoredPatternsStore.shared.js +1 -0
- package/lib/module/stores/ignoredPatternsStore.web.js +1 -221
- package/lib/module/stores/index.js +1 -10
- package/lib/module/sync/keyedArrays.js +1 -204
- package/lib/module/sync/toolActionRegistry.js +1 -236
- package/lib/module/sync/toolAttention.test.js +1 -50
- package/lib/module/sync/toolSyncAdapter.js +1 -58
- package/lib/module/sync/toolUiBridge.js +1 -123
- package/lib/module/sync/typedEdit.js +1 -220
- package/lib/module/sync/valuePath.js +1 -330
- package/lib/module/sync/valueShape.js +1 -153
- package/lib/module/sync/wireBudget.js +1 -92
- package/lib/module/sync/wireForm.js +1 -159
- package/lib/module/tools/defineTool.js +1 -74
- package/lib/module/types/types.d.js +1 -1
- package/lib/module/types/types.js +1 -32
- package/lib/module/ui/backgrounds/BackgroundSwitcher.js +1 -350
- package/lib/module/ui/backgrounds/ToolBackground.js +1 -72
- package/lib/module/ui/backgrounds/backgroundStore.js +1 -125
- package/lib/module/ui/backgrounds/index.js +1 -19
- package/lib/module/ui/backgrounds/primitives.js +1 -365
- package/lib/module/ui/backgrounds/registry.js +1 -91
- package/lib/module/ui/backgrounds/rng.js +1 -85
- package/lib/module/ui/backgrounds/skyClock.js +1 -39
- package/lib/module/ui/backgrounds/types.js +1 -1
- package/lib/module/ui/backgrounds/variants/daylight.js +1 -449
- package/lib/module/ui/backgrounds/variants/deepField.js +1 -378
- package/lib/module/ui/backgrounds/variants/hyperspace.js +1 -214
- package/lib/module/ui/backgrounds/variants/liveSky.js +1 -893
- package/lib/module/ui/backgrounds/variants/meteors.js +1 -397
- package/lib/module/ui/backgrounds/variants/moonlight.js +1 -468
- package/lib/module/ui/backgrounds/variants/underwater.js +1 -753
- package/lib/module/ui/backgrounds/variants/wormhole/motion.js +1 -44
- package/lib/module/ui/backgrounds/variants/wormhole/textures.js +1 -3
- package/lib/module/ui/backgrounds/variants/wormhole.js +1 -129
- package/lib/module/ui/components/BackButton.js +1 -43
- package/lib/module/ui/components/Badge.js +1 -218
- package/lib/module/ui/components/ChangeRow.js +1 -106
- package/lib/module/ui/components/ChipStrip.js +1 -91
- package/lib/module/ui/components/ClipboardHintBanner.js +1 -145
- package/lib/module/ui/components/CollapsibleSection.js +1 -166
- package/lib/module/ui/components/CompactFilterChips.js +1 -110
- package/lib/module/ui/components/CompactRow.js +1 -291
- package/lib/module/ui/components/CopyButton.js +1 -303
- package/lib/module/ui/components/DataInspector.js +1 -319
- package/lib/module/ui/components/DetailView.js +1 -354
- package/lib/module/ui/components/DetailViewToggle.js +1 -125
- package/lib/module/ui/components/DevToolsCard.js +1 -122
- package/lib/module/ui/components/DraggableHeader.js +1 -211
- package/lib/module/ui/components/DynamicFilterView.js +1 -754
- package/lib/module/ui/components/EmptyState.js +1 -144
- package/lib/module/ui/components/EntityFilterView.js +1 -351
- package/lib/module/ui/components/EventHistoryViewer/CompareBar.js +1 -206
- package/lib/module/ui/components/EventHistoryViewer/DiffModeTabs.js +1 -94
- package/lib/module/ui/components/EventHistoryViewer/EventHistoryViewer.js +1 -179
- package/lib/module/ui/components/EventHistoryViewer/EventPickerModal.js +1 -203
- package/lib/module/ui/components/EventHistoryViewer/ViewToggleCards.js +1 -132
- package/lib/module/ui/components/EventHistoryViewer/index.js +1 -19
- package/lib/module/ui/components/EventHistoryViewer/types.js +1 -3
- package/lib/module/ui/components/EventListItem.js +1 -243
- package/lib/module/ui/components/EventStepperFooter.js +1 -180
- package/lib/module/ui/components/ExpandablePopover.js +1 -378
- package/lib/module/ui/components/ExpandedInfoRow.js +1 -103
- package/lib/module/ui/components/ExportPreview.js +1 -169
- package/lib/module/ui/components/FilterComponents.js +1 -282
- package/lib/module/ui/components/GripVerticalIcon.js +1 -61
- package/lib/module/ui/components/HeaderSearchButton.js +1 -46
- package/lib/module/ui/components/InfoRow.js +1 -87
- package/lib/module/ui/components/ListItem.js +1 -169
- package/lib/module/ui/components/ModalHeader.js +1 -297
- package/lib/module/ui/components/ModalHintBanner.js +1 -143
- package/lib/module/ui/components/Pill.js +1 -111
- package/lib/module/ui/components/PowerToggleButton.js +1 -74
- package/lib/module/ui/components/SearchBar.js +1 -161
- package/lib/module/ui/components/SectionHeader.js +1 -125
- package/lib/module/ui/components/StatsCard.js +1 -194
- package/lib/module/ui/components/StatusIndicator.js +1 -227
- package/lib/module/ui/components/StorageTypeBadge.js +1 -93
- package/lib/module/ui/components/TabSelector.js +1 -98
- package/lib/module/ui/components/TimeDisplay.js +1 -138
- package/lib/module/ui/components/ToggleRow.js +1 -112
- package/lib/module/ui/components/ToolButton.js +1 -89
- package/lib/module/ui/components/ToolEmptyState.js +1 -149
- package/lib/module/ui/components/ToolFooter.js +1 -197
- package/lib/module/ui/components/ValueTypeBadge.js +1 -143
- package/lib/module/ui/components/WindowControls.js +1 -383
- package/lib/module/ui/components/index.js +1 -52
- package/lib/module/ui/components/windowDrag.js +1 -41
- package/lib/module/ui/console/CyberpunkButtonOutline.js +1 -257
- package/lib/module/ui/console/CyberpunkIconContainer.js +1 -182
- package/lib/module/ui/console/CyberpunkSectionButton.js +1 -119
- package/lib/module/ui/floating/FloatingTool.js +1 -1003
- package/lib/module/ui/floating/FloatingTool.web.js +1 -590
- package/lib/module/ui/floating/FloatingToolHost.js +1 -29
- package/lib/module/ui/floating/FloatingToolHost.web.js +1 -25
- package/lib/module/ui/floating/index.js +1 -6
- package/lib/module/ui/floating/index.web.js +1 -6
- package/lib/module/ui/floating/onboardingConstants.js +1 -64
- package/lib/module/ui/floating/onboardingConstants.web.js +1 -27
- package/lib/module/ui/fonts.js +1 -8
- package/lib/module/ui/gameUI/components/GameUICollapsibleSection.js +1 -117
- package/lib/module/ui/gameUI/components/GameUICompactStats.js +1 -332
- package/lib/module/ui/gameUI/components/GameUIIssuesList.js +1 -280
- package/lib/module/ui/gameUI/components/GameUIStatusHeader.js +1 -141
- package/lib/module/ui/gameUI/constants/gameUIColors.js +1 -220
- package/lib/module/ui/gameUI/constants/macOSDesignSystemColors.js +1 -219
- package/lib/module/ui/gameUI/hooks/useGameUIAlertState.js +1 -105
- package/lib/module/ui/gameUI/index.js +1 -19
- package/lib/module/ui/index.js +1 -31
- package/lib/module/ui/listPresets.js +1 -39
- package/lib/module/ui/night/nightTheme.js +1 -126
- package/lib/module/ui/night/primitives.js +1 -504
- package/lib/module/ui/otto/OttoSceneView.js +1 -64
- package/lib/module/ui/otto/OttoSprite.js +1 -496
- package/lib/module/ui/otto/index.js +1 -22
- package/lib/module/ui/otto/ottoEngine.js +1 -2729
- package/lib/module/ui/otto/ottoScenes.js +1 -942
- package/lib/module/ui/otto/ottoSheet.js +1 -180
- package/lib/module/ui/toolTheme.js +1 -93
- package/lib/module/utils/absoluteFill.js +1 -24
- package/lib/module/utils/browserAsyncStorage.js +1 -0
- package/lib/module/utils/browserNavigation.js +1 -0
- package/lib/module/utils/devServer.js +1 -58
- package/lib/module/utils/devServer.web.js +1 -0
- package/lib/module/utils/displayValue.js +1 -36
- package/lib/module/utils/domRuntime.js +1 -0
- package/lib/module/utils/expoRouterModule.js +1 -0
- package/lib/module/utils/expoRouterModule.web.js +1 -0
- package/lib/module/utils/formatting/dataFormatting.js +1 -93
- package/lib/module/utils/formatting/httpFormatting.js +1 -142
- package/lib/module/utils/formatting/index.js +1 -8
- package/lib/module/utils/getSafeAreaInsets.js +1 -36
- package/lib/module/utils/getSafeAreaInsets.web.js +1 -0
- package/lib/module/utils/index.js +1 -18
- package/lib/module/utils/loadOptionalModule.js +1 -89
- package/lib/module/utils/loadToolModule.js +1 -0
- package/lib/module/utils/loadToolModule.web.js +1 -0
- package/lib/module/utils/minimalSuperJSON.js +1 -342
- package/lib/module/utils/modalStorage.js +1 -0
- package/lib/module/utils/nativeWeb.js +1 -0
- package/lib/module/utils/persistentStorage.js +1 -603
- package/lib/module/utils/persistentStorage.web.js +1 -0
- package/lib/module/utils/realNow.js +1 -0
- package/lib/module/utils/reloadApp.js +1 -137
- package/lib/module/utils/reloadPlatform.js +1 -0
- package/lib/module/utils/reloadPlatform.web.js +1 -0
- package/lib/module/utils/renderCaptureRegistry.js +1 -54
- package/lib/module/utils/safeExpoRouter.js +1 -239
- package/lib/module/utils/safeExpoRouter.web.js +1 -0
- package/lib/module/utils/safeStringify.js +1 -225
- package/lib/module/utils/snapshotProviderKit.js +1 -156
- package/lib/module/utils/stateSnapshotRegistry.js +1 -64
- package/lib/module/utils/stateTools.js +1 -154
- package/lib/module/utils/subscribable.js +1 -108
- package/lib/module/utils/subscriberCountNotifier.js +1 -66
- package/lib/module/utils/time/RelativeTime.js +1 -28
- package/lib/module/utils/time/TickContext.js +1 -38
- package/lib/module/utils/time/formatRelativeTime.js +1 -30
- package/lib/module/utils/time/index.js +1 -6
- package/lib/module/utils/time/useRelativeTime.js +1 -33
- package/lib/module/utils/toolModules.js +1 -0
- package/lib/module/utils/typeHelpers.js +1 -130
- package/lib/module/utils/valueFormatting.js +1 -131
- package/lib/typescript/commonjs/JsModal.web.d.ts +7 -18
- package/lib/typescript/commonjs/clipboard/clipboard-impl.web.d.ts +5 -0
- package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/commonjs/hooks/useSafeAreaInsets.web.d.ts +6 -0
- package/lib/typescript/commonjs/icons/index.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts +3 -1
- package/lib/typescript/commonjs/license/AccountSetup.web.d.ts +1 -1
- package/lib/typescript/commonjs/license/AccountSetupContent.d.ts +11 -0
- package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts +3 -15
- package/lib/typescript/commonjs/license/accountRuntime.d.ts +2 -0
- package/lib/typescript/commonjs/license/accountRuntime.web.d.ts +2 -0
- package/lib/typescript/commonjs/license/licenseModule.d.ts +3 -1
- package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +8 -0
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts +1 -59
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.shared.d.ts +60 -0
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts +1 -71
- package/lib/typescript/commonjs/ui/night/primitives.d.ts +9 -3
- package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts +1 -1
- package/lib/typescript/commonjs/utils/browserAsyncStorage.d.ts +25 -0
- package/lib/typescript/commonjs/utils/browserNavigation.d.ts +31 -0
- package/lib/typescript/commonjs/utils/devServer.web.d.ts +2 -0
- package/lib/typescript/commonjs/utils/domRuntime.d.ts +27 -0
- package/lib/typescript/commonjs/utils/expoRouterModule.d.ts +3 -0
- package/lib/typescript/commonjs/utils/expoRouterModule.web.d.ts +3 -0
- package/lib/typescript/commonjs/utils/getSafeAreaInsets.web.d.ts +8 -0
- package/lib/typescript/commonjs/utils/index.d.ts +6 -0
- package/lib/typescript/commonjs/utils/loadToolModule.d.ts +3 -0
- package/lib/typescript/commonjs/utils/loadToolModule.web.d.ts +2 -0
- package/lib/typescript/commonjs/utils/modalStorage.d.ts +21 -0
- package/lib/typescript/commonjs/utils/nativeWeb.d.ts +22 -0
- package/lib/typescript/commonjs/utils/persistentStorage.web.d.ts +6 -0
- package/lib/typescript/commonjs/utils/realNow.d.ts +11 -0
- package/lib/typescript/commonjs/utils/reloadApp.d.ts +7 -25
- package/lib/typescript/commonjs/utils/reloadPlatform.d.ts +8 -0
- package/lib/typescript/commonjs/utils/reloadPlatform.web.d.ts +4 -0
- package/lib/typescript/commonjs/utils/safeExpoRouter.web.d.ts +43 -0
- package/lib/typescript/commonjs/utils/toolModules.d.ts +5 -0
- package/lib/typescript/module/JsModal.web.d.ts +7 -18
- package/lib/typescript/module/clipboard/clipboard-impl.web.d.ts +5 -0
- package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/module/hooks/useSafeAreaInsets.web.d.ts +6 -0
- package/lib/typescript/module/icons/index.d.ts +2 -0
- package/lib/typescript/module/index.d.ts +3 -1
- package/lib/typescript/module/license/AccountSetup.web.d.ts +1 -1
- package/lib/typescript/module/license/AccountSetupContent.d.ts +11 -0
- package/lib/typescript/module/license/FreeAccountPrompt.d.ts +3 -15
- package/lib/typescript/module/license/accountRuntime.d.ts +2 -0
- package/lib/typescript/module/license/accountRuntime.web.d.ts +2 -0
- package/lib/typescript/module/license/licenseModule.d.ts +3 -1
- package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +8 -0
- package/lib/typescript/module/stores/ignoredPatternsStore.d.ts +1 -59
- package/lib/typescript/module/stores/ignoredPatternsStore.shared.d.ts +60 -0
- package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts +1 -71
- package/lib/typescript/module/ui/night/primitives.d.ts +9 -3
- package/lib/typescript/module/ui/otto/ottoEngine.d.ts +1 -1
- package/lib/typescript/module/utils/browserAsyncStorage.d.ts +25 -0
- package/lib/typescript/module/utils/browserNavigation.d.ts +31 -0
- package/lib/typescript/module/utils/devServer.web.d.ts +2 -0
- package/lib/typescript/module/utils/domRuntime.d.ts +27 -0
- package/lib/typescript/module/utils/expoRouterModule.d.ts +3 -0
- package/lib/typescript/module/utils/expoRouterModule.web.d.ts +3 -0
- package/lib/typescript/module/utils/getSafeAreaInsets.web.d.ts +8 -0
- package/lib/typescript/module/utils/index.d.ts +6 -0
- package/lib/typescript/module/utils/loadToolModule.d.ts +3 -0
- package/lib/typescript/module/utils/loadToolModule.web.d.ts +2 -0
- package/lib/typescript/module/utils/modalStorage.d.ts +21 -0
- package/lib/typescript/module/utils/nativeWeb.d.ts +22 -0
- package/lib/typescript/module/utils/persistentStorage.web.d.ts +6 -0
- package/lib/typescript/module/utils/realNow.d.ts +11 -0
- package/lib/typescript/module/utils/reloadApp.d.ts +7 -25
- package/lib/typescript/module/utils/reloadPlatform.d.ts +8 -0
- package/lib/typescript/module/utils/reloadPlatform.web.d.ts +4 -0
- package/lib/typescript/module/utils/safeExpoRouter.web.d.ts +43 -0
- package/lib/typescript/module/utils/toolModules.d.ts +5 -0
- package/lib/web/asyncStorage.mjs +1 -0
- package/lib/web/chunks/chunk-26OV3QDY.mjs +1 -0
- package/lib/web/chunks/chunk-3UTMGIUG.mjs +1 -0
- package/lib/web/chunks/chunk-53J2FMUD.mjs +1 -0
- package/lib/web/chunks/chunk-5KWAGM5V.mjs +1 -0
- package/lib/web/chunks/chunk-5NZOQR6Q.mjs +1 -0
- package/lib/web/chunks/chunk-7PRKERDN.mjs +1 -0
- package/lib/web/chunks/chunk-CE5U3CSQ.mjs +1 -0
- package/lib/web/chunks/chunk-D4RXBAOO.mjs +15 -0
- package/lib/web/chunks/chunk-ER3T3IDI.mjs +1 -0
- package/lib/web/chunks/chunk-GF5C5DVX.mjs +1 -0
- package/lib/web/chunks/chunk-K7CGIEFU.mjs +1 -0
- package/lib/web/chunks/chunk-L3AFTHWX.mjs +14 -0
- package/lib/web/chunks/chunk-LZ7FZZ7R.mjs +1 -0
- package/lib/web/chunks/chunk-PTK5FO6C.mjs +1 -0
- package/lib/web/chunks/chunk-TJUBBXXK.mjs +1 -0
- package/lib/web/chunks/chunk-UKYVRCMZ.mjs +1 -0
- package/lib/web/chunks/chunk-XYUAUO57.mjs +1 -0
- package/lib/web/chunks/persistentStorage.web-6OAJAVRK.mjs +1 -0
- package/lib/web/colors.mjs +1 -0
- package/lib/web/dataViewer.mjs +2 -0
- package/lib/web/floating.mjs +1 -0
- package/lib/web/history.mjs +1 -0
- package/lib/web/hooks.mjs +1 -0
- package/lib/web/index.mjs +14 -0
- package/lib/web/native.mjs +1 -0
- package/lib/web/ui.mjs +1 -0
- package/lib/web/utils.mjs +1 -0
- package/package.json +121 -38
- package/scripts/detect-clipboard.js +5 -121
- package/scripts/detect-safe-area.js +3 -127
- package/ui.js +1 -7
- package/utils.js +1 -7
- package/lib/typescript/commonjs/JsModal.d.ts.map +0 -1
- package/lib/typescript/commonjs/JsModal.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/clipboard/autoDetectClipboard.d.ts.map +0 -1
- package/lib/typescript/commonjs/clipboard/clipboard-impl.d.ts.map +0 -1
- package/lib/typescript/commonjs/clipboard/copyToClipboard.d.ts.map +0 -1
- package/lib/typescript/commonjs/clipboard/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/colors/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/context/HintsContext.d.ts.map +0 -1
- package/lib/typescript/commonjs/context/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/CyberpunkInput.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/DataTreeActionBar.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/DataTreeActionDock.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/DataViewer.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/DiffSummary.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/IndentGuides.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/IndentGuidesOverlay.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/JsonStringNotice.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/LiveExplorer.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/SplitDiffViewer.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/ThemedSplitView.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/TimestampDeltaBar.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/TypeLegend.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/ValueEditModal.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/diffThemes.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/jsonOps.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/jsonStringValue.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/lineDiff.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/nestedPath.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/objectDiff.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/timestampDiff.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/treeActions.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/useTreeDraft.d.ts.map +0 -1
- package/lib/typescript/commonjs/dataViewer/useTreeEditor.d.ts.map +0 -1
- package/lib/typescript/commonjs/env/EnvironmentIndicator.d.ts.map +0 -1
- package/lib/typescript/commonjs/env/EnvironmentIndicator.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/env/EnvironmentSelector.d.ts.map +0 -1
- package/lib/typescript/commonjs/env/EnvironmentSelectorInline.d.ts.map +0 -1
- package/lib/typescript/commonjs/env/EnvironmentSelectorInline.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/history/HistoryProvider.d.ts.map +0 -1
- package/lib/typescript/commonjs/history/components/HistoryEntryRow.d.ts.map +0 -1
- package/lib/typescript/commonjs/history/components/HistoryList.d.ts.map +0 -1
- package/lib/typescript/commonjs/history/components/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/history/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/history/types.d.ts.map +0 -1
- package/lib/typescript/commonjs/hooks/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts.map +0 -1
- package/lib/typescript/commonjs/hooks/useChangeLog.d.ts.map +0 -1
- package/lib/typescript/commonjs/hooks/useDeviceInfo.d.ts.map +0 -1
- package/lib/typescript/commonjs/hooks/useEventStoreEvents.d.ts.map +0 -1
- package/lib/typescript/commonjs/hooks/useFilterManager.d.ts.map +0 -1
- package/lib/typescript/commonjs/hooks/usePersistedState.d.ts.map +0 -1
- package/lib/typescript/commonjs/hooks/useSafeAreaInsets.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/BenchmarkIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/EnvLaptopIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/IconBackground.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/ReactQueryIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/RenderCountIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/RouteMapIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/SentryBugIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/StackPulseIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/StorageStackIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/WifiCircuitIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/lucide-icons-original-full.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/lucide-icons.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/primitives/GlobeIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/primitives/icon-primitives.d.ts.map +0 -1
- package/lib/typescript/commonjs/icons/primitives/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/AccountSetup.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/AccountSetup.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/FeatureGate.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/LicenseEntryModal.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/licenseModule.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/openPricing.d.ts.map +0 -1
- package/lib/typescript/commonjs/license/tierLimits.d.ts.map +0 -1
- package/lib/typescript/commonjs/logger/index-sentry.d.ts.map +0 -1
- package/lib/typescript/commonjs/logger/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/logger/logDump.d.ts.map +0 -1
- package/lib/typescript/commonjs/logger/types.d.ts.map +0 -1
- package/lib/typescript/commonjs/settings/components/BubbleSettingsSection.d.ts.map +0 -1
- package/lib/typescript/commonjs/settings/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/storage/definePersistedSetting.d.ts.map +0 -1
- package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +0 -1
- package/lib/typescript/commonjs/storage/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/BaseEventStore.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/ChangeLog.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/createToolStore.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/floatingToolStore.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/floatingToolStore.test.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/ignoredPatternsCore.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/stores/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/keyedArrays.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/toolActionRegistry.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/toolAttention.test.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/toolSyncAdapter.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/toolUiBridge.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/typedEdit.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/valuePath.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/valueShape.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/wireBudget.d.ts.map +0 -1
- package/lib/typescript/commonjs/sync/wireForm.d.ts.map +0 -1
- package/lib/typescript/commonjs/tools/defineTool.d.ts.map +0 -1
- package/lib/typescript/commonjs/types/types.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/BackgroundSwitcher.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/ToolBackground.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/backgroundStore.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/primitives.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/rng.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/skyClock.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/types.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/daylight.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/deepField.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/hyperspace.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/liveSky.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/meteors.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/moonlight.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/underwater.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/motion.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/textures.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/BackButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/Badge.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ChangeRow.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ChipStrip.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ClipboardHintBanner.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/CollapsibleSection.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/CompactFilterChips.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/CopyButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/DataInspector.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/DetailView.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/DetailViewToggle.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/DevToolsCard.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/DraggableHeader.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/DynamicFilterView.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EmptyState.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EntityFilterView.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventHistoryViewer/CompareBar.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventHistoryViewer/DiffModeTabs.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventHistoryViewer/ViewToggleCards.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventHistoryViewer/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventHistoryViewer/types.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventListItem.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/EventStepperFooter.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ExpandablePopover.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ExpandedInfoRow.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ExportPreview.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/FilterComponents.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/GripVerticalIcon.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/InfoRow.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ListItem.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ModalHeader.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ModalHintBanner.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/Pill.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/PowerToggleButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/SearchBar.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/SectionHeader.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/StatsCard.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/StatusIndicator.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/StorageTypeBadge.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/TabSelector.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/TimeDisplay.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ToggleRow.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ToolButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ToolEmptyState.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ToolFooter.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ValueTypeBadge.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/WindowControls.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/windowDrag.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/console/CyberpunkButtonOutline.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/console/CyberpunkIconContainer.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/console/CyberpunkSectionButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/floating/FloatingTool.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/floating/FloatingToolHost.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/floating/FloatingToolHost.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/floating/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/floating/index.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/floating/onboardingConstants.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/floating/onboardingConstants.web.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/fonts.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/gameUI/components/GameUICollapsibleSection.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/gameUI/components/GameUICompactStats.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/gameUI/components/GameUIIssuesList.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/gameUI/components/GameUIStatusHeader.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/gameUI/constants/macOSDesignSystemColors.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/gameUI/hooks/useGameUIAlertState.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/gameUI/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/listPresets.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/night/nightTheme.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/otto/OttoSceneView.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/otto/OttoSprite.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/otto/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/otto/ottoScenes.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/otto/ottoSheet.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/toolTheme.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/absoluteFill.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/devServer.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/displayValue.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/formatting/dataFormatting.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/formatting/httpFormatting.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/formatting/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/getSafeAreaInsets.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/loadOptionalModule.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/minimalSuperJSON.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/persistentStorage.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/reloadApp.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/renderCaptureRegistry.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/safeExpoRouter.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/safeStringify.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/snapshotProviderKit.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/stateSnapshotRegistry.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/stateTools.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/subscribable.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/subscriberCountNotifier.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/time/RelativeTime.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/time/TickContext.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/time/formatRelativeTime.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/time/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/time/useRelativeTime.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/typeHelpers.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/valueFormatting.d.ts.map +0 -1
- package/lib/typescript/module/JsModal.d.ts.map +0 -1
- package/lib/typescript/module/JsModal.web.d.ts.map +0 -1
- package/lib/typescript/module/clipboard/autoDetectClipboard.d.ts.map +0 -1
- package/lib/typescript/module/clipboard/clipboard-impl.d.ts.map +0 -1
- package/lib/typescript/module/clipboard/copyToClipboard.d.ts.map +0 -1
- package/lib/typescript/module/clipboard/index.d.ts.map +0 -1
- package/lib/typescript/module/colors/index.d.ts.map +0 -1
- package/lib/typescript/module/context/HintsContext.d.ts.map +0 -1
- package/lib/typescript/module/context/index.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/CyberpunkInput.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/DataTreeActionBar.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/DataTreeActionDock.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/DataViewer.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/DiffSummary.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/IndentGuides.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/IndentGuidesOverlay.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/JsonStringNotice.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/LiveExplorer.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/SplitDiffViewer.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/ThemedSplitView.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/TimestampDeltaBar.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/TypeLegend.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/ValueEditModal.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/diffThemes.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/index.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/jsonOps.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/jsonStringValue.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/lineDiff.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/nestedPath.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/objectDiff.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/timestampDiff.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/treeActions.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/useTreeDraft.d.ts.map +0 -1
- package/lib/typescript/module/dataViewer/useTreeEditor.d.ts.map +0 -1
- package/lib/typescript/module/env/EnvironmentIndicator.d.ts.map +0 -1
- package/lib/typescript/module/env/EnvironmentIndicator.web.d.ts.map +0 -1
- package/lib/typescript/module/env/EnvironmentSelector.d.ts.map +0 -1
- package/lib/typescript/module/env/EnvironmentSelectorInline.d.ts.map +0 -1
- package/lib/typescript/module/env/EnvironmentSelectorInline.web.d.ts.map +0 -1
- package/lib/typescript/module/history/HistoryProvider.d.ts.map +0 -1
- package/lib/typescript/module/history/components/HistoryEntryRow.d.ts.map +0 -1
- package/lib/typescript/module/history/components/HistoryList.d.ts.map +0 -1
- package/lib/typescript/module/history/components/index.d.ts.map +0 -1
- package/lib/typescript/module/history/index.d.ts.map +0 -1
- package/lib/typescript/module/history/types.d.ts.map +0 -1
- package/lib/typescript/module/hooks/index.d.ts.map +0 -1
- package/lib/typescript/module/hooks/safe-area-impl.d.ts.map +0 -1
- package/lib/typescript/module/hooks/useChangeLog.d.ts.map +0 -1
- package/lib/typescript/module/hooks/useDeviceInfo.d.ts.map +0 -1
- package/lib/typescript/module/hooks/useEventStoreEvents.d.ts.map +0 -1
- package/lib/typescript/module/hooks/useFilterManager.d.ts.map +0 -1
- package/lib/typescript/module/hooks/usePersistedState.d.ts.map +0 -1
- package/lib/typescript/module/hooks/useSafeAreaInsets.d.ts.map +0 -1
- package/lib/typescript/module/icons/BenchmarkIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/EnvLaptopIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/IconBackground.d.ts.map +0 -1
- package/lib/typescript/module/icons/ReactQueryIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/RenderCountIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/RouteMapIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/SentryBugIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/StackPulseIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/StorageStackIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/WifiCircuitIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/index.d.ts.map +0 -1
- package/lib/typescript/module/icons/lucide-icons-original-full.d.ts.map +0 -1
- package/lib/typescript/module/icons/lucide-icons.d.ts.map +0 -1
- package/lib/typescript/module/icons/primitives/GlobeIcon.d.ts.map +0 -1
- package/lib/typescript/module/icons/primitives/icon-primitives.d.ts.map +0 -1
- package/lib/typescript/module/icons/primitives/index.d.ts.map +0 -1
- package/lib/typescript/module/index.d.ts.map +0 -1
- package/lib/typescript/module/license/AccountSetup.d.ts.map +0 -1
- package/lib/typescript/module/license/AccountSetup.web.d.ts.map +0 -1
- package/lib/typescript/module/license/FeatureGate.d.ts.map +0 -1
- package/lib/typescript/module/license/FreeAccountPrompt.d.ts.map +0 -1
- package/lib/typescript/module/license/LicenseEntryModal.d.ts.map +0 -1
- package/lib/typescript/module/license/index.d.ts.map +0 -1
- package/lib/typescript/module/license/licenseModule.d.ts.map +0 -1
- package/lib/typescript/module/license/openPricing.d.ts.map +0 -1
- package/lib/typescript/module/license/tierLimits.d.ts.map +0 -1
- package/lib/typescript/module/logger/index-sentry.d.ts.map +0 -1
- package/lib/typescript/module/logger/index.d.ts.map +0 -1
- package/lib/typescript/module/logger/logDump.d.ts.map +0 -1
- package/lib/typescript/module/logger/types.d.ts.map +0 -1
- package/lib/typescript/module/settings/components/BubbleSettingsSection.d.ts.map +0 -1
- package/lib/typescript/module/settings/index.d.ts.map +0 -1
- package/lib/typescript/module/storage/definePersistedSetting.d.ts.map +0 -1
- package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +0 -1
- package/lib/typescript/module/storage/index.d.ts.map +0 -1
- package/lib/typescript/module/stores/BaseEventStore.d.ts.map +0 -1
- package/lib/typescript/module/stores/ChangeLog.d.ts.map +0 -1
- package/lib/typescript/module/stores/createToolStore.d.ts.map +0 -1
- package/lib/typescript/module/stores/floatingToolStore.d.ts.map +0 -1
- package/lib/typescript/module/stores/floatingToolStore.test.d.ts.map +0 -1
- package/lib/typescript/module/stores/ignoredPatternsCore.d.ts.map +0 -1
- package/lib/typescript/module/stores/ignoredPatternsStore.d.ts.map +0 -1
- package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts.map +0 -1
- package/lib/typescript/module/stores/index.d.ts.map +0 -1
- package/lib/typescript/module/sync/keyedArrays.d.ts.map +0 -1
- package/lib/typescript/module/sync/toolActionRegistry.d.ts.map +0 -1
- package/lib/typescript/module/sync/toolAttention.test.d.ts.map +0 -1
- package/lib/typescript/module/sync/toolSyncAdapter.d.ts.map +0 -1
- package/lib/typescript/module/sync/toolUiBridge.d.ts.map +0 -1
- package/lib/typescript/module/sync/typedEdit.d.ts.map +0 -1
- package/lib/typescript/module/sync/valuePath.d.ts.map +0 -1
- package/lib/typescript/module/sync/valueShape.d.ts.map +0 -1
- package/lib/typescript/module/sync/wireBudget.d.ts.map +0 -1
- package/lib/typescript/module/sync/wireForm.d.ts.map +0 -1
- package/lib/typescript/module/tools/defineTool.d.ts.map +0 -1
- package/lib/typescript/module/types/types.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/BackgroundSwitcher.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/ToolBackground.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/backgroundStore.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/index.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/primitives.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/registry.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/rng.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/skyClock.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/types.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/daylight.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/deepField.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/hyperspace.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/liveSky.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/meteors.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/moonlight.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/underwater.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/wormhole/motion.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/wormhole/textures.d.ts.map +0 -1
- package/lib/typescript/module/ui/backgrounds/variants/wormhole.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/BackButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/Badge.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ChangeRow.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ChipStrip.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ClipboardHintBanner.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/CollapsibleSection.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/CompactFilterChips.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/CompactRow.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/CopyButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/DataInspector.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/DetailView.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/DetailViewToggle.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/DevToolsCard.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/DraggableHeader.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/DynamicFilterView.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EmptyState.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EntityFilterView.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventHistoryViewer/CompareBar.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventHistoryViewer/DiffModeTabs.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventHistoryViewer/EventHistoryViewer.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventHistoryViewer/ViewToggleCards.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventHistoryViewer/index.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventHistoryViewer/types.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventListItem.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/EventStepperFooter.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ExpandablePopover.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ExpandedInfoRow.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ExportPreview.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/FilterComponents.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/GripVerticalIcon.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/InfoRow.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ListItem.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ModalHeader.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ModalHintBanner.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/Pill.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/PowerToggleButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/SearchBar.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/SectionHeader.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/StatsCard.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/StatusIndicator.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/StorageTypeBadge.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/TabSelector.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/TimeDisplay.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ToggleRow.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ToolButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ToolEmptyState.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ToolFooter.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ValueTypeBadge.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/WindowControls.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/index.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/windowDrag.d.ts.map +0 -1
- package/lib/typescript/module/ui/console/CyberpunkButtonOutline.d.ts.map +0 -1
- package/lib/typescript/module/ui/console/CyberpunkIconContainer.d.ts.map +0 -1
- package/lib/typescript/module/ui/console/CyberpunkSectionButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/floating/FloatingTool.d.ts.map +0 -1
- package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts.map +0 -1
- package/lib/typescript/module/ui/floating/FloatingToolHost.d.ts.map +0 -1
- package/lib/typescript/module/ui/floating/FloatingToolHost.web.d.ts.map +0 -1
- package/lib/typescript/module/ui/floating/index.d.ts.map +0 -1
- package/lib/typescript/module/ui/floating/index.web.d.ts.map +0 -1
- package/lib/typescript/module/ui/floating/onboardingConstants.d.ts.map +0 -1
- package/lib/typescript/module/ui/floating/onboardingConstants.web.d.ts.map +0 -1
- package/lib/typescript/module/ui/fonts.d.ts.map +0 -1
- package/lib/typescript/module/ui/gameUI/components/GameUICollapsibleSection.d.ts.map +0 -1
- package/lib/typescript/module/ui/gameUI/components/GameUICompactStats.d.ts.map +0 -1
- package/lib/typescript/module/ui/gameUI/components/GameUIIssuesList.d.ts.map +0 -1
- package/lib/typescript/module/ui/gameUI/components/GameUIStatusHeader.d.ts.map +0 -1
- package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts.map +0 -1
- package/lib/typescript/module/ui/gameUI/constants/macOSDesignSystemColors.d.ts.map +0 -1
- package/lib/typescript/module/ui/gameUI/hooks/useGameUIAlertState.d.ts.map +0 -1
- package/lib/typescript/module/ui/gameUI/index.d.ts.map +0 -1
- package/lib/typescript/module/ui/index.d.ts.map +0 -1
- package/lib/typescript/module/ui/listPresets.d.ts.map +0 -1
- package/lib/typescript/module/ui/night/nightTheme.d.ts.map +0 -1
- package/lib/typescript/module/ui/night/primitives.d.ts.map +0 -1
- package/lib/typescript/module/ui/otto/OttoSceneView.d.ts.map +0 -1
- package/lib/typescript/module/ui/otto/OttoSprite.d.ts.map +0 -1
- package/lib/typescript/module/ui/otto/index.d.ts.map +0 -1
- package/lib/typescript/module/ui/otto/ottoEngine.d.ts.map +0 -1
- package/lib/typescript/module/ui/otto/ottoScenes.d.ts.map +0 -1
- package/lib/typescript/module/ui/otto/ottoSheet.d.ts.map +0 -1
- package/lib/typescript/module/ui/toolTheme.d.ts.map +0 -1
- package/lib/typescript/module/utils/absoluteFill.d.ts.map +0 -1
- package/lib/typescript/module/utils/devServer.d.ts.map +0 -1
- package/lib/typescript/module/utils/displayValue.d.ts.map +0 -1
- package/lib/typescript/module/utils/formatting/dataFormatting.d.ts.map +0 -1
- package/lib/typescript/module/utils/formatting/httpFormatting.d.ts.map +0 -1
- package/lib/typescript/module/utils/formatting/index.d.ts.map +0 -1
- package/lib/typescript/module/utils/getSafeAreaInsets.d.ts.map +0 -1
- package/lib/typescript/module/utils/index.d.ts.map +0 -1
- package/lib/typescript/module/utils/loadOptionalModule.d.ts.map +0 -1
- package/lib/typescript/module/utils/minimalSuperJSON.d.ts.map +0 -1
- package/lib/typescript/module/utils/persistentStorage.d.ts.map +0 -1
- package/lib/typescript/module/utils/reloadApp.d.ts.map +0 -1
- package/lib/typescript/module/utils/renderCaptureRegistry.d.ts.map +0 -1
- package/lib/typescript/module/utils/safeExpoRouter.d.ts.map +0 -1
- package/lib/typescript/module/utils/safeStringify.d.ts.map +0 -1
- package/lib/typescript/module/utils/snapshotProviderKit.d.ts.map +0 -1
- package/lib/typescript/module/utils/stateSnapshotRegistry.d.ts.map +0 -1
- package/lib/typescript/module/utils/stateTools.d.ts.map +0 -1
- package/lib/typescript/module/utils/subscribable.d.ts.map +0 -1
- package/lib/typescript/module/utils/subscriberCountNotifier.d.ts.map +0 -1
- package/lib/typescript/module/utils/time/RelativeTime.d.ts.map +0 -1
- package/lib/typescript/module/utils/time/TickContext.d.ts.map +0 -1
- package/lib/typescript/module/utils/time/formatRelativeTime.d.ts.map +0 -1
- package/lib/typescript/module/utils/time/index.d.ts.map +0 -1
- package/lib/typescript/module/utils/time/useRelativeTime.d.ts.map +0 -1
- package/lib/typescript/module/utils/typeHelpers.d.ts.map +0 -1
- package/lib/typescript/module/utils/valueFormatting.d.ts.map +0 -1
- package/scripts/generate-wormhole-textures.cjs +0 -261
- package/scripts/test-wormhole-motion.cjs +0 -59
|
@@ -1,228 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.findKeyPath = findKeyPath;
|
|
7
|
-
exports.refusalText = refusalText;
|
|
8
|
-
exports.shapeKind = shapeKind;
|
|
9
|
-
exports.suggestedPatch = suggestedPatch;
|
|
10
|
-
exports.typedEditViolations = typedEditViolations;
|
|
11
|
-
/**
|
|
12
|
-
* The typed-edit guard — ONE implementation, for every surface that takes a
|
|
13
|
-
* merge patch from a remote caller.
|
|
14
|
-
*
|
|
15
|
-
* The rule, which is the React Query devtools value-editor rule: you may change
|
|
16
|
-
* the VALUE of a field that already exists, to the same kind of thing. You may
|
|
17
|
-
* not add a field, change a field's type, or null a list or object the screen
|
|
18
|
-
* renders. A list may grow or shrink — carts are lists you add to — but every
|
|
19
|
-
* item in it must have the same fields as the items already there, because an
|
|
20
|
-
* item missing a field the others have is what crashes the list on render.
|
|
21
|
-
*
|
|
22
|
-
* WHY IT LIVES HERE. This existed twice, once in the zustand adapter and once in
|
|
23
|
-
* react-query, drifting slightly (one said "the ones already in the list", the
|
|
24
|
-
* other "the items"; only one had the did-you-mean hint). Jotai had NO copy at
|
|
25
|
-
* all, so `setAtom` accepted a string over a number or a one-item array over a
|
|
26
|
-
* fifty-item one with nothing to stop it. Three copies of a data-destroying
|
|
27
|
-
* safety rule is two more than anyone can keep in step — the same argument
|
|
28
|
-
* `keyedArrays.ts` makes about the expansion it owns.
|
|
29
|
-
*
|
|
30
|
-
* The one behavioural knob is `noun`: what to call the thing being edited in a
|
|
31
|
-
* refusal ("this store", "this data", "this atom"). Everything else is shared,
|
|
32
|
-
* deliberately — a rule that differs per surface is a rule nobody can state.
|
|
33
|
-
*/
|
|
34
|
-
|
|
35
|
-
const isPlainObject = v => !!v && typeof v === "object" && !Array.isArray(v);
|
|
36
|
-
|
|
37
|
-
/** The shape category the screen depends on: array vs object vs the rest. */
|
|
38
|
-
function shapeKind(v) {
|
|
39
|
-
if (Array.isArray(v)) return "array";
|
|
40
|
-
if (v === null) return "null";
|
|
41
|
-
if (typeof v === "object") return "object";
|
|
42
|
-
return typeof v;
|
|
43
|
-
}
|
|
44
|
-
const SCALARS = ["string", "number", "boolean"];
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Where a key actually lives in a nested value, as a dotted path — first match,
|
|
48
|
-
* breadth-first, capped so a huge payload cannot stall the walk.
|
|
49
|
-
*
|
|
50
|
-
* This is what turns "you put `name` at the top" into "`name` lives at
|
|
51
|
-
* `item.name`", which is the difference between a caller that gives up and one
|
|
52
|
-
* that fixes it. Ten of eleven measured `query` write failures were this exact
|
|
53
|
-
* mistake.
|
|
54
|
-
*/
|
|
55
|
-
function findKeyPath(obj, key, maxNodes = 2000) {
|
|
56
|
-
const queue = [{
|
|
57
|
-
node: obj,
|
|
58
|
-
path: ""
|
|
59
|
-
}];
|
|
60
|
-
let seen = 0;
|
|
61
|
-
while (queue.length && seen < maxNodes) {
|
|
62
|
-
const {
|
|
63
|
-
node,
|
|
64
|
-
path
|
|
65
|
-
} = queue.shift();
|
|
66
|
-
seen++;
|
|
67
|
-
if (Array.isArray(node)) {
|
|
68
|
-
node.slice(0, 20).forEach((v, i) => queue.push({
|
|
69
|
-
node: v,
|
|
70
|
-
path: `${path}[${i}]`
|
|
71
|
-
}));
|
|
72
|
-
} else if (isPlainObject(node)) {
|
|
73
|
-
for (const [k, v] of Object.entries(node)) {
|
|
74
|
-
const p = path ? `${path}.${k}` : k;
|
|
75
|
-
if (k === key && path) return p; // path set => nested, not the top level
|
|
76
|
-
if (isPlainObject(v) || Array.isArray(v)) queue.push({
|
|
77
|
-
node: v,
|
|
78
|
-
path: p
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return undefined;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Every way this patch would break the value it is merged into. Empty means the
|
|
87
|
-
* edit is safe to apply.
|
|
88
|
-
*/
|
|
89
|
-
function typedEditViolations(current, patch, opts = {}, root = current, path = "", out = []) {
|
|
90
|
-
const noun = opts.noun ?? "data";
|
|
91
|
-
const here = path || "(root)";
|
|
92
|
-
if (Array.isArray(patch)) {
|
|
93
|
-
if (!Array.isArray(current)) {
|
|
94
|
-
out.push({
|
|
95
|
-
path: here,
|
|
96
|
-
kind: "type-change",
|
|
97
|
-
detail: `${shapeKind(current)} → array`
|
|
98
|
-
});
|
|
99
|
-
return out;
|
|
100
|
-
}
|
|
101
|
-
// Length may change — a cart is a list you add to and remove from — but each
|
|
102
|
-
// item must match the shape of the ones already there. The first item is the
|
|
103
|
-
// template; an added item missing a field the others have is what makes the
|
|
104
|
-
// list throw when it renders that field.
|
|
105
|
-
const template = current.length ? current[0] : undefined;
|
|
106
|
-
if (template !== undefined && (isPlainObject(template) || Array.isArray(template))) {
|
|
107
|
-
patch.forEach((el, i) => {
|
|
108
|
-
const ep = `${path}[${i}]`;
|
|
109
|
-
if (isPlainObject(template) && isPlainObject(el)) {
|
|
110
|
-
for (const k of Object.keys(template)) {
|
|
111
|
-
if (!(k in el)) {
|
|
112
|
-
out.push({
|
|
113
|
-
path: `${ep}.${k}`,
|
|
114
|
-
kind: "missing-key",
|
|
115
|
-
detail: `list items need \`${k}\` — the items already in the list have it`
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
typedEditViolations(template, el, opts, root, ep, out);
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
return out;
|
|
124
|
-
}
|
|
125
|
-
if (isPlainObject(patch)) {
|
|
126
|
-
if (!isPlainObject(current)) {
|
|
127
|
-
out.push({
|
|
128
|
-
path: here,
|
|
129
|
-
kind: "type-change",
|
|
130
|
-
detail: `${shapeKind(current)} → object`
|
|
131
|
-
});
|
|
132
|
-
return out;
|
|
133
|
-
}
|
|
134
|
-
for (const [k, v] of Object.entries(patch)) {
|
|
135
|
-
const p = path ? `${path}.${k}` : k;
|
|
136
|
-
if (!(k in current)) {
|
|
137
|
-
const elsewhere = findKeyPath(root, k);
|
|
138
|
-
out.push({
|
|
139
|
-
path: p,
|
|
140
|
-
kind: "add-key",
|
|
141
|
-
detail: elsewhere ? `no such field here — did you mean \`${elsewhere}\`?` : `no field named \`${k}\` exists in this ${noun}`,
|
|
142
|
-
...(elsewhere ? {
|
|
143
|
-
movedTo: elsewhere
|
|
144
|
-
} : {})
|
|
145
|
-
});
|
|
146
|
-
} else {
|
|
147
|
-
typedEditViolations(current[k], v, opts, root, p, out);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return out;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// A leaf: the edit itself.
|
|
154
|
-
const ck = shapeKind(current);
|
|
155
|
-
const pk = shapeKind(patch);
|
|
156
|
-
// Filling an empty field and CLEARING one are the same kind of edit, and this
|
|
157
|
-
// guard used to allow only the first. That asymmetry had a cost: "take the
|
|
158
|
-
// promo off my bag" is `string → null`, the refusal named `force: true` as the
|
|
159
|
-
// only way through, and a model that anticipated it wrote the forced call
|
|
160
|
-
// pre-emptively — reaching for the one parameter that bypasses EVERY
|
|
161
|
-
// protection in order to do something completely ordinary. Measured on
|
|
162
|
-
// `cart/take-promo-off`: an S1 on an otherwise correct flow.
|
|
163
|
-
//
|
|
164
|
-
// Nulling a LIST or OBJECT the screen renders stays refused. That is the crash
|
|
165
|
-
// this guard exists for (`sizes.map` on null); a null scalar renders as empty.
|
|
166
|
-
const fillingNull = ck === "null" && SCALARS.includes(pk);
|
|
167
|
-
const clearingScalar = pk === "null" && SCALARS.includes(ck);
|
|
168
|
-
if (ck !== pk && !fillingNull && !clearingScalar) {
|
|
169
|
-
out.push({
|
|
170
|
-
path: here,
|
|
171
|
-
kind: "type-change",
|
|
172
|
-
detail: `${ck} → ${pk}`
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
return out;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* The patch the caller should have sent, when every problem was a field written
|
|
180
|
-
* at the wrong DEPTH.
|
|
181
|
-
*
|
|
182
|
-
* The guard already worked out where each field really lives in order to say
|
|
183
|
-
* "did you mean `item.name`?", so it can rebuild the patch instead of leaving
|
|
184
|
-
* the caller to re-derive it from prose. Returns undefined unless EVERY
|
|
185
|
-
* violation is a relocatable add-key: a partial suggestion that silently drops
|
|
186
|
-
* the parts we could not fix would be worse than none, because the caller would
|
|
187
|
-
* send it, be refused again, and learn nothing.
|
|
188
|
-
*/
|
|
189
|
-
function suggestedPatch(patch, violations) {
|
|
190
|
-
if (!violations.length || !violations.every(v => v.kind === "add-key" && v.movedTo)) return undefined;
|
|
191
|
-
const out = {};
|
|
192
|
-
for (const v of violations) {
|
|
193
|
-
const value = getAtDotted(patch, v.path);
|
|
194
|
-
if (value === undefined) return undefined;
|
|
195
|
-
// `movedTo` can name a list element (`results[0].name`); a merge patch
|
|
196
|
-
// cannot address one by index, and rewriting it to the id-addressed form
|
|
197
|
-
// needs the list itself. Leave those to the prose rather than suggest
|
|
198
|
-
// something that will not apply.
|
|
199
|
-
if (v.movedTo.includes("[")) return undefined;
|
|
200
|
-
let node = out;
|
|
201
|
-
const segs = v.movedTo.split(".");
|
|
202
|
-
segs.slice(0, -1).forEach(seg => {
|
|
203
|
-
node[seg] ??= {};
|
|
204
|
-
node = node[seg];
|
|
205
|
-
});
|
|
206
|
-
node[segs[segs.length - 1]] = value;
|
|
207
|
-
}
|
|
208
|
-
return out;
|
|
209
|
-
}
|
|
210
|
-
function getAtDotted(obj, path) {
|
|
211
|
-
let cur = obj;
|
|
212
|
-
for (const seg of path.split(".")) {
|
|
213
|
-
if (!isPlainObject(cur)) return undefined;
|
|
214
|
-
cur = cur[seg];
|
|
215
|
-
}
|
|
216
|
-
return cur;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* The sentence a refusal ends with. Shared so every surface refuses in the same
|
|
221
|
-
* words — a caller that learns the rule on one tool should recognise it on the
|
|
222
|
-
* next.
|
|
223
|
-
*/
|
|
224
|
-
function refusalText(violations, noun, suggestion) {
|
|
225
|
-
const listed = violations.slice(0, 6).map(v => `\`${v.path}\`: ${v.detail}`).join("; ");
|
|
226
|
-
const more = violations.length > 6 ? `; +${violations.length - 6} more` : "";
|
|
227
|
-
return `Refused: this isn't a same-type edit of existing fields (the rule the React Query devtools enforces). ${listed}${more}. ` + `You can only change the VALUE of a field that already exists, to the same type — you can't add fields, change a field's type, ` + `or null a list/object the screen renders. Clearing a scalar to null is fine. Send just the field(s) you're changing, nested to ` + `match the current shape of this ${noun}. Use force:true only to deliberately break that.` + (suggestion ? ` This is the same edit at the right depth — send it as the patch: ${JSON.stringify(suggestion)}` : "");
|
|
228
|
-
}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.findKeyPath=findKeyPath;exports.refusalText=refusalText;exports.shapeKind=shapeKind;exports.suggestedPatch=suggestedPatch;exports.typedEditViolations=typedEditViolations;const isPlainObject=e=>!!e&&typeof e==="object"&&!Array.isArray(e);function shapeKind(e){if(Array.isArray(e))return"array";if(e===null)return"null";if(typeof e==="object")return"object";return typeof e}const SCALARS=["string","number","boolean"];function findKeyPath(e,s,i=2e3){const n=[{node:e,path:""}];let a=0;while(n.length&&a<i){const{node:t,path:o}=n.shift();a++;if(Array.isArray(t)){t.slice(0,20).forEach((d,f)=>n.push({node:d,path:`${o}[${f}]`}))}else if(isPlainObject(t)){for(const[d,f]of Object.entries(t)){const l=o?`${o}.${d}`:d;if(d===s&&o)return l;if(isPlainObject(f)||Array.isArray(f))n.push({node:f,path:l})}}}return void 0}function typedEditViolations(e,s,i={},n=e,a="",t=[]){const o=i.noun??"data";const d=a||"(root)";if(Array.isArray(s)){if(!Array.isArray(e)){t.push({path:d,kind:"type-change",detail:`${shapeKind(e)} \u2192 array`});return t}const r=e.length?e[0]:void 0;if(r!==void 0&&(isPlainObject(r)||Array.isArray(r))){s.forEach((c,u)=>{const h=`${a}[${u}]`;if(isPlainObject(r)&&isPlainObject(c)){for(const y of Object.keys(r)){if(!(y in c)){t.push({path:`${h}.${y}`,kind:"missing-key",detail:`list items need \`${y}\` \u2014 the items already in the list have it`})}}}typedEditViolations(r,c,i,n,h,t)})}return t}if(isPlainObject(s)){if(!isPlainObject(e)){t.push({path:d,kind:"type-change",detail:`${shapeKind(e)} \u2192 object`});return t}for(const[r,c]of Object.entries(s)){const u=a?`${a}.${r}`:r;if(!(r in e)){const h=findKeyPath(n,r);t.push({path:u,kind:"add-key",detail:h?`no such field here \u2014 did you mean \`${h}\`?`:`no field named \`${r}\` exists in this ${o}`,...h?{movedTo:h}:{}})}else{typedEditViolations(e[r],c,i,n,u,t)}}return t}const f=shapeKind(e);const l=shapeKind(s);const p=f==="null"&&SCALARS.includes(l);const g=l==="null"&&SCALARS.includes(f);if(f!==l&&!p&&!g){t.push({path:d,kind:"type-change",detail:`${f} \u2192 ${l}`})}return t}function suggestedPatch(e,s){if(!s.length||!s.every(n=>n.kind==="add-key"&&n.movedTo))return void 0;const i={};for(const n of s){const a=getAtDotted(e,n.path);if(a===void 0)return void 0;if(n.movedTo.includes("["))return void 0;let t=i;const o=n.movedTo.split(".");o.slice(0,-1).forEach(d=>{t[d]??={};t=t[d]});t[o[o.length-1]]=a}return i}function getAtDotted(e,s){let i=e;for(const n of s.split(".")){if(!isPlainObject(i))return void 0;i=i[n]}return i}function refusalText(e,s,i){const n=e.slice(0,6).map(t=>`\`${t.path}\`: ${t.detail}`).join("; ");const a=e.length>6?`; +${e.length-6} more`:"";return`Refused: this isn't a same-type edit of existing fields (the rule the React Query devtools enforces). ${n}${a}. You can only change the VALUE of a field that already exists, to the same type \u2014 you can't add fields, change a field's type, or null a list/object the screen renders. Clearing a scalar to null is fine. Send just the field(s) you're changing, nested to match the current shape of this ${s}. Use force:true only to deliberately break that.`+(i?` This is the same edit at the right depth \u2014 send it as the patch: ${JSON.stringify(i)}`:"")}
|
|
@@ -1,337 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parsePath = parsePath;
|
|
7
|
-
exports.patchFromPath = patchFromPath;
|
|
8
|
-
exports.readPath = readPath;
|
|
9
|
-
var _keyedArrays = require("./keyedArrays.js");
|
|
10
|
-
/**
|
|
11
|
-
* Addressing a single value inside cached data or a store — one implementation,
|
|
12
|
-
* shared by every adapter that reads or merges.
|
|
13
|
-
*
|
|
14
|
-
* WHY. The most common measured write failure is not a wrong value, it is a
|
|
15
|
-
* wrong DEPTH: ten of eleven `query` failures on the bench sent `{name: "x"}`
|
|
16
|
-
* for a payload shaped `{item: {name}}`. That is not a missing instruction — the
|
|
17
|
-
* system prompt says, verbatim, "if the value is {item:{name}} send
|
|
18
|
-
* {"item":{"name":"test123"}}, never {name}" — and models that had just called
|
|
19
|
-
* `getQueryData` still flattened it. The rule is being read past, not missed.
|
|
20
|
-
*
|
|
21
|
-
* So stop asking. `path: "item.name", value: "x"` has no depth to get wrong:
|
|
22
|
-
* there is exactly one way to write it and the adapter builds the nested patch.
|
|
23
|
-
* The same syntax on the READ side returns one slice instead of a payload that
|
|
24
|
-
* gets cut off at the engine's 24,000-character cap, which is the other half of
|
|
25
|
-
* the same problem — a caller cannot write a shape it was never able to see.
|
|
26
|
-
*
|
|
27
|
-
* Lists are addressed by IDENTITY, never by position. `lines[0]` is resolved to
|
|
28
|
-
* the id of whatever is at index 0 right now and rewritten as an id-addressed
|
|
29
|
-
* edit, because between the read and the write an item may have been removed and
|
|
30
|
-
* index 0 is then a different row. A list whose items carry no stable id is
|
|
31
|
-
* refused rather than guessed at — see keyedArrays.ts for why silently picking a
|
|
32
|
-
* row is the failure mode that loses data.
|
|
33
|
-
*/
|
|
34
|
-
|
|
35
|
-
const isPlainObject = v => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
36
|
-
/**
|
|
37
|
-
* Where a field of this name actually lives, as a dotted path — breadth-first,
|
|
38
|
-
* capped so a big payload cannot stall the walk.
|
|
39
|
-
*
|
|
40
|
-
* A wrong `path` is not the same mistake as a wrong depth, and `path` does not
|
|
41
|
-
* prevent it. Measured on TWO cases in one run: grok wrote
|
|
42
|
-
* `path: "item.name"` against the flat PokéAPI payload `{name, id, stats, …}`,
|
|
43
|
-
* having generalised the shape from a different screen it had seen. The value it
|
|
44
|
-
* wanted was at `name`, one segment, right there. A refusal that says so is a
|
|
45
|
-
* one-turn recovery; a refusal that only lists the available fields makes the
|
|
46
|
-
* caller re-derive it.
|
|
47
|
-
*/
|
|
48
|
-
function findFieldPath(obj, key, maxNodes = 2000) {
|
|
49
|
-
const queue = [{
|
|
50
|
-
node: obj,
|
|
51
|
-
path: ""
|
|
52
|
-
}];
|
|
53
|
-
let seen = 0;
|
|
54
|
-
while (queue.length && seen < maxNodes) {
|
|
55
|
-
const {
|
|
56
|
-
node,
|
|
57
|
-
path
|
|
58
|
-
} = queue.shift();
|
|
59
|
-
seen++;
|
|
60
|
-
if (Array.isArray(node)) {
|
|
61
|
-
node.slice(0, 20).forEach((v, i) => queue.push({
|
|
62
|
-
node: v,
|
|
63
|
-
path: `${path}[${i}]`
|
|
64
|
-
}));
|
|
65
|
-
} else if (isPlainObject(node)) {
|
|
66
|
-
for (const [k, v] of Object.entries(node)) {
|
|
67
|
-
const p = path ? `${path}.${k}` : k;
|
|
68
|
-
if (k === key) return p;
|
|
69
|
-
if (isPlainObject(v) || Array.isArray(v)) queue.push({
|
|
70
|
-
node: v,
|
|
71
|
-
path: p
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return undefined;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* "No field X here" plus, when the field exists somewhere else, the path that
|
|
81
|
-
* would have worked. `leaf` is the segment the caller was ultimately after.
|
|
82
|
-
*/
|
|
83
|
-
function missingFieldError(root, at, key, available, leaf) {
|
|
84
|
-
const elsewhere = findFieldPath(root, leaf ?? key);
|
|
85
|
-
const has = available.slice(0, 12).join(", ") || "(no fields)";
|
|
86
|
-
return elsewhere ? `No field "${key}" at "${at}" — did you mean path "${elsewhere}"? "${at}" has: ${has}.` : `No field "${key}" at "${at}". It has: ${has}.`;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/** Read a dotted field path inside one list item. */
|
|
90
|
-
function fieldOf(item, field) {
|
|
91
|
-
let cur = item;
|
|
92
|
-
for (const seg of field.split(".")) {
|
|
93
|
-
if (!isPlainObject(cur)) return undefined;
|
|
94
|
-
cur = cur[seg];
|
|
95
|
-
}
|
|
96
|
-
return cur;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* `lines[0].addonIds`, `item.name`, `results[name=pikachu].url` → segments.
|
|
101
|
-
*
|
|
102
|
-
* Returns undefined for syntax it does not understand rather than doing
|
|
103
|
-
* something approximate with it.
|
|
104
|
-
*/
|
|
105
|
-
function parsePath(path) {
|
|
106
|
-
if (!path.trim()) return undefined;
|
|
107
|
-
const out = [];
|
|
108
|
-
// Walk the string rather than splitting on ".", because a [field=value]
|
|
109
|
-
// selector may legitimately contain a dot ("results[url=a.b/c]").
|
|
110
|
-
let i = 0;
|
|
111
|
-
while (i < path.length) {
|
|
112
|
-
if (path[i] === ".") {
|
|
113
|
-
i++;
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
if (path[i] === "[") {
|
|
117
|
-
const end = path.indexOf("]", i);
|
|
118
|
-
if (end === -1) return undefined;
|
|
119
|
-
const inner = path.slice(i + 1, end);
|
|
120
|
-
if (/^\d+$/.test(inner)) out.push({
|
|
121
|
-
kind: "index",
|
|
122
|
-
index: Number(inner)
|
|
123
|
-
});else {
|
|
124
|
-
const eq = inner.indexOf("=");
|
|
125
|
-
if (eq <= 0) return undefined;
|
|
126
|
-
out.push({
|
|
127
|
-
kind: "match",
|
|
128
|
-
field: inner.slice(0, eq).trim(),
|
|
129
|
-
value: inner.slice(eq + 1).trim()
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
i = end + 1;
|
|
133
|
-
continue;
|
|
134
|
-
}
|
|
135
|
-
let j = i;
|
|
136
|
-
while (j < path.length && path[j] !== "." && path[j] !== "[") j++;
|
|
137
|
-
const key = path.slice(i, j);
|
|
138
|
-
if (!key) return undefined;
|
|
139
|
-
out.push({
|
|
140
|
-
kind: "key",
|
|
141
|
-
key
|
|
142
|
-
});
|
|
143
|
-
i = j;
|
|
144
|
-
}
|
|
145
|
-
return out.length ? out : undefined;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/** Read the value at `path`, or undefined if any step of it does not exist. */
|
|
149
|
-
function readPath(value, path) {
|
|
150
|
-
const segs = parsePath(path);
|
|
151
|
-
if (!segs) return {
|
|
152
|
-
ok: false,
|
|
153
|
-
error: `Could not read the path "${path}". Use dotted keys with optional [0] or [field=value], like "item.name" or "lines[lineId=seed-1].qty".`
|
|
154
|
-
};
|
|
155
|
-
let cur = value;
|
|
156
|
-
const walked = [];
|
|
157
|
-
for (const seg of segs) {
|
|
158
|
-
if (cur === null || cur === undefined) {
|
|
159
|
-
return {
|
|
160
|
-
ok: false,
|
|
161
|
-
error: `"${walked.join(".") || "(root)"}" is ${cur === null ? "null" : "not set"}, so there is nothing at "${path}".`
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
if (seg.kind === "key") {
|
|
165
|
-
if (!isPlainObject(cur)) return {
|
|
166
|
-
ok: false,
|
|
167
|
-
error: `"${walked.join(".") || "(root)"}" is not an object, so it has no field "${seg.key}".`
|
|
168
|
-
};
|
|
169
|
-
if (!(seg.key in cur)) {
|
|
170
|
-
const leafSeg = segs[segs.length - 1];
|
|
171
|
-
return {
|
|
172
|
-
ok: false,
|
|
173
|
-
error: missingFieldError(value, walked.join(".") || "(root)", seg.key, Object.keys(cur), leafSeg?.kind === "key" ? leafSeg.key : undefined)
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
cur = cur[seg.key];
|
|
177
|
-
walked.push(seg.key);
|
|
178
|
-
} else if (seg.kind === "index") {
|
|
179
|
-
if (!Array.isArray(cur)) return {
|
|
180
|
-
ok: false,
|
|
181
|
-
error: `"${walked.join(".") || "(root)"}" is not a list, so [${seg.index}] means nothing.`
|
|
182
|
-
};
|
|
183
|
-
cur = cur[seg.index];
|
|
184
|
-
walked.push(`[${seg.index}]`);
|
|
185
|
-
} else {
|
|
186
|
-
if (!Array.isArray(cur)) return {
|
|
187
|
-
ok: false,
|
|
188
|
-
error: `"${walked.join(".") || "(root)"}" is not a list, so [${seg.field}=${seg.value}] means nothing.`
|
|
189
|
-
};
|
|
190
|
-
const hit = cur.find(el => isPlainObject(el) && String(fieldOf(el, seg.field)) === seg.value);
|
|
191
|
-
if (hit === undefined) return {
|
|
192
|
-
ok: false,
|
|
193
|
-
error: `No item with ${seg.field}="${seg.value}" in "${walked.join(".") || "(root)"}".`
|
|
194
|
-
};
|
|
195
|
-
cur = hit;
|
|
196
|
-
walked.push(`[${seg.field}=${seg.value}]`);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return {
|
|
200
|
-
ok: true,
|
|
201
|
-
value: cur
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Build the merge patch that sets `path` to `value`, against the data as it is
|
|
207
|
-
* now.
|
|
208
|
-
*
|
|
209
|
-
* The result is an ordinary merge patch, so it goes through the SAME typed-edit
|
|
210
|
-
* guard as a hand-written one and gains no new powers — `path` is a way to say
|
|
211
|
-
* the same thing without being able to get the depth wrong, not a way around
|
|
212
|
-
* the rules. A list step becomes the id-addressed form, so the write stays
|
|
213
|
-
* proof against a truncated read.
|
|
214
|
-
*/
|
|
215
|
-
function patchFromPath(current, path, value) {
|
|
216
|
-
const segs = parsePath(path);
|
|
217
|
-
if (!segs) return {
|
|
218
|
-
ok: false,
|
|
219
|
-
error: `Could not read the path "${path}". Use dotted keys with optional [0] or [field=value], like "item.name" or "lines[lineId=seed-1].qty".`
|
|
220
|
-
};
|
|
221
|
-
if (segs[0]?.kind !== "key") return {
|
|
222
|
-
ok: false,
|
|
223
|
-
error: `A path must start with a field name, not a list index — "${path}" does not say which list.`
|
|
224
|
-
};
|
|
225
|
-
const build = (node, at) => {
|
|
226
|
-
if (at >= segs.length) return {
|
|
227
|
-
ok: true,
|
|
228
|
-
patch: value
|
|
229
|
-
};
|
|
230
|
-
const seg = segs[at];
|
|
231
|
-
if (seg.kind === "key") {
|
|
232
|
-
// A field that does not exist is left for the typed-edit guard, which owns
|
|
233
|
-
// that decision — EXCEPT when there are more segments to walk, because
|
|
234
|
-
// then the caller is describing a shape that is not there at all and the
|
|
235
|
-
// guard's message ("no field named `item`") would not say where the value
|
|
236
|
-
// it wanted actually lives.
|
|
237
|
-
if (isPlainObject(node) && !(seg.key in node) && at + 1 < segs.length) {
|
|
238
|
-
const leafSeg = segs[segs.length - 1];
|
|
239
|
-
return {
|
|
240
|
-
ok: false,
|
|
241
|
-
error: missingFieldError(current, pathUpTo(segs, at), seg.key, Object.keys(node), leafSeg?.kind === "key" ? leafSeg.key : undefined)
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
const child = isPlainObject(node) ? node[seg.key] : undefined;
|
|
245
|
-
const inner = build(child, at + 1);
|
|
246
|
-
return inner.ok ? {
|
|
247
|
-
ok: true,
|
|
248
|
-
patch: {
|
|
249
|
-
[seg.key]: inner.patch
|
|
250
|
-
}
|
|
251
|
-
} : inner;
|
|
252
|
-
}
|
|
253
|
-
if (!Array.isArray(node)) {
|
|
254
|
-
return {
|
|
255
|
-
ok: false,
|
|
256
|
-
error: `"${pathUpTo(segs, at)}" is not a list, so "${path}" cannot be resolved. Read it first — \`shape\` on the read says what each field holds.`
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
const index = seg.kind === "index" ? seg.index : node.findIndex(el => isPlainObject(el) && String(fieldOf(el, seg.field)) === seg.value);
|
|
260
|
-
const item = index >= 0 ? node[index] : undefined;
|
|
261
|
-
const missing = seg.kind === "index" ? index < 0 || index >= node.length : index < 0;
|
|
262
|
-
if (missing) {
|
|
263
|
-
return {
|
|
264
|
-
ok: false,
|
|
265
|
-
error: seg.kind === "index" ? `"${pathUpTo(segs, at)}" has ${node.length} item(s), so there is nothing at [${seg.index}].` : `No item with ${seg.field}="${seg.value}" in "${pathUpTo(segs, at)}".`
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* A list of PRIMITIVES, addressed by index — `tags[0]` on
|
|
270
|
-
* `["alpha","beta"]`.
|
|
271
|
-
*
|
|
272
|
-
* The guard below used to be `!isPlainObject(item)`, which folded this in
|
|
273
|
-
* with a genuinely out-of-range index and answered `"tags" has 2 item(s),
|
|
274
|
-
* so there is nothing at [0]` — a sentence that contradicts itself, for the
|
|
275
|
-
* commonest index there is. A model reading the data, seeing two items and
|
|
276
|
-
* being told [0] and [1] are both empty has nowhere left to go.
|
|
277
|
-
*
|
|
278
|
-
* There is nothing to descend into on a string, so the index IS the leaf:
|
|
279
|
-
* rebuild the list with that one element replaced, exactly as the no-stable-id
|
|
280
|
-
* branch below does. Anything deeper genuinely cannot be resolved, and says so.
|
|
281
|
-
*/
|
|
282
|
-
if (!isPlainObject(item)) {
|
|
283
|
-
if (at < segs.length - 1) {
|
|
284
|
-
return {
|
|
285
|
-
ok: false,
|
|
286
|
-
error: `"${pathUpTo(segs, at)}[${seg.kind === "index" ? seg.index : `${seg.field}=${seg.value}`}]" holds ${item === null ? "null" : typeof item}, not an object, so "${path}" cannot go any deeper. Set the item itself.`
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
const replaced = node.slice();
|
|
290
|
-
replaced[index] = value;
|
|
291
|
-
return {
|
|
292
|
-
ok: true,
|
|
293
|
-
patch: replaced
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
const inner = build(item, at + 1);
|
|
297
|
-
if (!inner.ok) return inner;
|
|
298
|
-
const idField = (0, _keyedArrays.identityField)(node);
|
|
299
|
-
// Positions move; ids do not. Prefer the addressed form whichever way the
|
|
300
|
-
// caller named the row.
|
|
301
|
-
if (idField) return {
|
|
302
|
-
ok: true,
|
|
303
|
-
patch: {
|
|
304
|
-
[String(item[idField])]: inner.patch
|
|
305
|
-
}
|
|
306
|
-
};
|
|
307
|
-
|
|
308
|
-
// No stable id — a Pokémon's `stats` are `{stat: {name}, base_stat}`, with
|
|
309
|
-
// nothing flat and unique on the item itself, and that is an ordinary shape
|
|
310
|
-
// rather than a broken one. Rebuild the whole list here instead of refusing.
|
|
311
|
-
//
|
|
312
|
-
// This is safe in a way the SAME array coming from a model is not: we are
|
|
313
|
-
// holding the current list in memory, so nothing is being reconstructed from
|
|
314
|
-
// a truncated read and no row can be dropped by omission. The caller still
|
|
315
|
-
// only named one value. What it cannot be is proof against the list changing
|
|
316
|
-
// between this call and the write, which addressing by id would be — so the
|
|
317
|
-
// id form stays preferred wherever one exists.
|
|
318
|
-
const next = node.slice();
|
|
319
|
-
next[index] = isPlainObject(inner.patch) ? {
|
|
320
|
-
...item,
|
|
321
|
-
...inner.patch
|
|
322
|
-
} : inner.patch;
|
|
323
|
-
return {
|
|
324
|
-
ok: true,
|
|
325
|
-
patch: next
|
|
326
|
-
};
|
|
327
|
-
};
|
|
328
|
-
const built = build(current, 0);
|
|
329
|
-
if (!built.ok) return built;
|
|
330
|
-
return {
|
|
331
|
-
ok: true,
|
|
332
|
-
patch: built.patch
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
function pathUpTo(segs, at) {
|
|
336
|
-
return segs.slice(0, at).map(s => s.kind === "key" ? s.key : s.kind === "index" ? `[${s.index}]` : `[${s.field}=${s.value}]`).join(".").replace(/\.\[/g, "[") || "(root)";
|
|
337
|
-
}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.parsePath=parsePath;exports.patchFromPath=patchFromPath;exports.readPath=readPath;var _keyedArrays=require("./keyedArrays.js");const isPlainObject=r=>typeof r==="object"&&r!==null&&!Array.isArray(r);function findFieldPath(r,o,n=2e3){const e=[{node:r,path:""}];let d=0;while(e.length&&d<n){const{node:i,path:t}=e.shift();d++;if(Array.isArray(i)){i.slice(0,20).forEach((s,l)=>e.push({node:s,path:`${t}[${l}]`}))}else if(isPlainObject(i)){for(const[s,l]of Object.entries(i)){const f=t?`${t}.${s}`:s;if(s===o)return f;if(isPlainObject(l)||Array.isArray(l))e.push({node:l,path:f})}}}return void 0}function missingFieldError(r,o,n,e,d){const i=findFieldPath(r,d??n);const t=e.slice(0,12).join(", ")||"(no fields)";return i?`No field "${n}" at "${o}" \u2014 did you mean path "${i}"? "${o}" has: ${t}.`:`No field "${n}" at "${o}". It has: ${t}.`}function fieldOf(r,o){let n=r;for(const e of o.split(".")){if(!isPlainObject(n))return void 0;n=n[e]}return n}function parsePath(r){if(!r.trim())return void 0;const o=[];let n=0;while(n<r.length){if(r[n]==="."){n++;continue}if(r[n]==="["){const i=r.indexOf("]",n);if(i===-1)return void 0;const t=r.slice(n+1,i);if(/^\d+$/.test(t))o.push({kind:"index",index:Number(t)});else{const s=t.indexOf("=");if(s<=0)return void 0;o.push({kind:"match",field:t.slice(0,s).trim(),value:t.slice(s+1).trim()})}n=i+1;continue}let e=n;while(e<r.length&&r[e]!=="."&&r[e]!=="[")e++;const d=r.slice(n,e);if(!d)return void 0;o.push({kind:"key",key:d});n=e}return o.length?o:void 0}function readPath(r,o){const n=parsePath(o);if(!n)return{ok:false,error:`Could not read the path "${o}". Use dotted keys with optional [0] or [field=value], like "item.name" or "lines[lineId=seed-1].qty".`};let e=r;const d=[];for(const i of n){if(e===null||e===void 0){return{ok:false,error:`"${d.join(".")||"(root)"}" is ${e===null?"null":"not set"}, so there is nothing at "${o}".`}}if(i.kind==="key"){if(!isPlainObject(e))return{ok:false,error:`"${d.join(".")||"(root)"}" is not an object, so it has no field "${i.key}".`};if(!(i.key in e)){const t=n[n.length-1];return{ok:false,error:missingFieldError(r,d.join(".")||"(root)",i.key,Object.keys(e),t?.kind==="key"?t.key:void 0)}}e=e[i.key];d.push(i.key)}else if(i.kind==="index"){if(!Array.isArray(e))return{ok:false,error:`"${d.join(".")||"(root)"}" is not a list, so [${i.index}] means nothing.`};e=e[i.index];d.push(`[${i.index}]`)}else{if(!Array.isArray(e))return{ok:false,error:`"${d.join(".")||"(root)"}" is not a list, so [${i.field}=${i.value}] means nothing.`};const t=e.find(s=>isPlainObject(s)&&String(fieldOf(s,i.field))===i.value);if(t===void 0)return{ok:false,error:`No item with ${i.field}="${i.value}" in "${d.join(".")||"(root)"}".`};e=t;d.push(`[${i.field}=${i.value}]`)}}return{ok:true,value:e}}function patchFromPath(r,o,n){const e=parsePath(o);if(!e)return{ok:false,error:`Could not read the path "${o}". Use dotted keys with optional [0] or [field=value], like "item.name" or "lines[lineId=seed-1].qty".`};if(e[0]?.kind!=="key")return{ok:false,error:`A path must start with a field name, not a list index \u2014 "${o}" does not say which list.`};const d=(t,s)=>{if(s>=e.length)return{ok:true,patch:n};const l=e[s];if(l.kind==="key"){if(isPlainObject(t)&&!(l.key in t)&&s+1<e.length){const y=e[e.length-1];return{ok:false,error:missingFieldError(r,pathUpTo(e,s),l.key,Object.keys(t),y?.kind==="key"?y.key:void 0)}}const u=isPlainObject(t)?t[l.key]:void 0;const h=d(u,s+1);return h.ok?{ok:true,patch:{[l.key]:h.patch}}:h}if(!Array.isArray(t)){return{ok:false,error:`"${pathUpTo(e,s)}" is not a list, so "${o}" cannot be resolved. Read it first \u2014 \`shape\` on the read says what each field holds.`}}const f=l.kind==="index"?l.index:t.findIndex(u=>isPlainObject(u)&&String(fieldOf(u,l.field))===l.value);const a=f>=0?t[f]:void 0;const p=l.kind==="index"?f<0||f>=t.length:f<0;if(p){return{ok:false,error:l.kind==="index"?`"${pathUpTo(e,s)}" has ${t.length} item(s), so there is nothing at [${l.index}].`:`No item with ${l.field}="${l.value}" in "${pathUpTo(e,s)}".`}}if(!isPlainObject(a)){if(s<e.length-1){return{ok:false,error:`"${pathUpTo(e,s)}[${l.kind==="index"?l.index:`${l.field}=${l.value}`}]" holds ${a===null?"null":typeof a}, not an object, so "${o}" cannot go any deeper. Set the item itself.`}}const u=t.slice();u[f]=n;return{ok:true,patch:u}}const c=d(a,s+1);if(!c.ok)return c;const k=(0,_keyedArrays.identityField)(t);if(k)return{ok:true,patch:{[String(a[k])]:c.patch}};const $=t.slice();$[f]=isPlainObject(c.patch)?{...a,...c.patch}:c.patch;return{ok:true,patch:$}};const i=d(r,0);if(!i.ok)return i;return{ok:true,patch:i.patch}}function pathUpTo(r,o){return r.slice(0,o).map(n=>n.kind==="key"?n.key:n.kind==="index"?`[${n.index}]`:`[${n.field}=${n.value}]`).join(".").replace(/\.\[/g,"[")||"(root)"}
|