@buoy-gg/shared-ui 7.0.44 → 7.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/lib/commonjs/index.js +1 -1
  2. package/lib/commonjs/license/index.js +1 -1
  3. package/lib/commonjs/license/licenseModule.js +1 -1
  4. package/lib/commonjs/stores/ignoredPatternsStore.shared.js +1 -1
  5. package/lib/commonjs/sync/settingsSync.js +1 -0
  6. package/lib/commonjs/utils/persistentStorage.js +1 -1
  7. package/lib/commonjs/utils/persistentStorage.web.js +1 -1
  8. package/lib/commonjs/utils/storageWrites.js +1 -0
  9. package/lib/module/index.js +1 -1
  10. package/lib/module/license/index.js +1 -1
  11. package/lib/module/license/licenseModule.js +1 -1
  12. package/lib/module/stores/ignoredPatternsStore.shared.js +1 -1
  13. package/lib/module/sync/settingsSync.js +1 -0
  14. package/lib/module/utils/persistentStorage.js +1 -1
  15. package/lib/module/utils/persistentStorage.web.js +1 -1
  16. package/lib/module/utils/storageWrites.js +1 -0
  17. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  18. package/lib/typescript/commonjs/index.d.ts +3 -1
  19. package/lib/typescript/commonjs/license/index.d.ts +1 -1
  20. package/lib/typescript/commonjs/license/licenseModule.d.ts +10 -0
  21. package/lib/typescript/commonjs/stores/ignoredPatternsStore.shared.d.ts +16 -1
  22. package/lib/typescript/commonjs/sync/settingsSync.d.ts +78 -0
  23. package/lib/typescript/commonjs/utils/storageWrites.d.ts +10 -0
  24. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  25. package/lib/typescript/module/index.d.ts +3 -1
  26. package/lib/typescript/module/license/index.d.ts +1 -1
  27. package/lib/typescript/module/license/licenseModule.d.ts +10 -0
  28. package/lib/typescript/module/stores/ignoredPatternsStore.shared.d.ts +16 -1
  29. package/lib/typescript/module/sync/settingsSync.d.ts +78 -0
  30. package/lib/typescript/module/utils/storageWrites.d.ts +10 -0
  31. package/lib/web/chunks/chunk-2Q3SDPH2.mjs +3 -3
  32. package/lib/web/chunks/chunk-46CXXOQB.mjs +1 -1
  33. package/lib/web/chunks/chunk-552W4COI.mjs +1 -1
  34. package/lib/web/chunks/chunk-56TTTMX4.mjs +1 -1
  35. package/lib/web/chunks/chunk-5LOQZINQ.mjs +3 -3
  36. package/lib/web/chunks/chunk-5NOIO6ZM.mjs +1 -1
  37. package/lib/web/chunks/chunk-7PRKERDN.mjs +1 -1
  38. package/lib/web/chunks/chunk-A7KJCK4R.mjs +3 -3
  39. package/lib/web/chunks/chunk-AEXGGXS7.mjs +1 -1
  40. package/lib/web/chunks/chunk-ASEPWYDC.mjs +14 -0
  41. package/lib/web/chunks/chunk-ASTM35HG.mjs +1 -1
  42. package/lib/web/chunks/chunk-B2V2UDCU.mjs +1 -1
  43. package/lib/web/chunks/chunk-BFGKGTAC.mjs +1 -1
  44. package/lib/web/chunks/chunk-CLLTZQGD.mjs +1 -1
  45. package/lib/web/chunks/chunk-D4RXBAOO.mjs +1 -1
  46. package/lib/web/chunks/chunk-DEEKIG2L.mjs +1 -0
  47. package/lib/web/chunks/chunk-DZDTNXXK.mjs +1 -1
  48. package/lib/web/chunks/chunk-HXPTZMAZ.mjs +1 -1
  49. package/lib/web/chunks/chunk-K4EGHHD6.mjs +1 -1
  50. package/lib/web/chunks/chunk-K7CGIEFU.mjs +1 -1
  51. package/lib/web/chunks/chunk-KBTYK5YE.mjs +1 -1
  52. package/lib/web/chunks/chunk-KHP6CSSM.mjs +1 -1
  53. package/lib/web/chunks/chunk-MKJKS3IG.mjs +1 -1
  54. package/lib/web/chunks/chunk-NK3OISOL.mjs +3 -3
  55. package/lib/web/chunks/chunk-OZB3VKZE.mjs +1 -1
  56. package/lib/web/chunks/chunk-QCD6T6L4.mjs +1 -1
  57. package/lib/web/chunks/chunk-QQTJ463K.mjs +1 -1
  58. package/lib/web/chunks/chunk-T7RZZG4A.mjs +15 -0
  59. package/lib/web/chunks/chunk-U2BTZZID.mjs +14 -0
  60. package/lib/web/chunks/chunk-UCKELQSM.mjs +1 -1
  61. package/lib/web/chunks/chunk-UNYQJZET.mjs +1 -1
  62. package/lib/web/chunks/chunk-W4BGMPJO.mjs +1 -1
  63. package/lib/web/chunks/chunk-WIFX6XNL.mjs +1 -1
  64. package/lib/web/chunks/chunk-WLGUP3KY.mjs +1 -1
  65. package/lib/web/chunks/chunk-XD2BEYMM.mjs +2 -2
  66. package/lib/web/chunks/chunk-XMDNJJS5.mjs +6 -6
  67. package/lib/web/chunks/chunk-YG6DIKQD.mjs +1 -1
  68. package/lib/web/chunks/chunk-YIZFMU66.mjs +1 -1
  69. package/lib/web/chunks/persistentStorage.web-56ENKXFJ.mjs +1 -0
  70. package/lib/web/dataViewer.mjs +2 -2
  71. package/lib/web/hooks.mjs +1 -1
  72. package/lib/web/index.mjs +3 -3
  73. package/lib/web/ui.mjs +1 -1
  74. package/lib/web/utils.mjs +1 -1
  75. package/package.json +5 -5
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});var _exportNames={guardToolAdapter:true,absoluteFill:true,displayValue:true,parseDisplayValue:true,getSafeAreaInsets:true,persistentStorage:true,isUsingPersistentStorage:true,getStorageBackendType:true,safeStringify:true,getValueType:true,isPrimitive:true,isJsonSerializable:true,isValidJson:true,getConstructorName:true,isEmpty:true,getValueSize:true,parseValue:true,formatValue:true,getTypeColor:true,truncateText:true,flattenObject:true,formatPath:true,loadOptionalModule:true,getCachedOptionalModule:true,setRenderCaptureProvider:true,getRenderCaptureProvider:true,registerStateSnapshotProvider:true,getStateSnapshotProviders:true,getStateSnapshotProvider:true,subscribeToStateSnapshotProviders:true,superJsonSerialize:true,superJsonDeserialize:true,realNow:true,getRealAppState:true,subscribeRealAppState:true,BUOY_SYNTHETIC_MARK:true,countBuoyListener:true,reloadApp:true,scheduleReloadApp:true,resolveReloadStrategy:true,REMOTE_RELOAD_DELAY_MS:true,getDevServerOrigin:true,Subscribable:true,subscriberCountNotifier:true,subscribeToSubscriberCountChanges:true,notifySubscriberCountChange:true,useSafeRouter:true,useSafePathname:true,useSafeSegments:true,useSafeGlobalSearchParams:true,getSafeRouter:true,getSafeCurrentPathname:true,getSafeCurrentRoute:true,isExpoRouterAvailable:true,registerBrowserRouter:true,browserRouter:true,subscribeBrowserNavigation:true,PREVIEW_ITEM_RENDER_BYTE_LIMIT:true,createRestoreScope:true,emptyRestoreResult:true,failedRestore:true,skippedRestore:true,classifyPreviewItem:true,wontApply:true,unionKeys:true,entityColor:true,formatValuePreview:true,shallowDiffSummary:true,isPlainObjectUtil:true,useSafeAreaInsets:true,useFilterManager:true,usePersistedState:true,resetPersistedStateCache:true,useChangeLog:true,useSubscribedValue:true,useEventStoreEvents:true,useDeviceInfo:true,getDeviceInfo:true,logDeviceInfo:true,JsModal:true,night:true,NIGHT_LABEL_TRACKING:true,NightSectionLabel:true,NightFootnote:true,NightCard:true,NightSeparator:true,NightRows:true,NightSwitch:true,NightChip:true,NightButton:true,NightSegmented:true,NightBadge:true,gameUIColors:true,buoyColors:true,refreshGameUIColors:true,dialColors:true,macOSColors:true,EnvironmentIndicator:true,EnvironmentSelector:true,EnvironmentSelectorInline:true,normalizeEnvironment:true,HintsProvider:true,useHintsDisabled:true,useHintsContext:true,FeatureGate:true,UpgradePrompt:true,useFeatureGate:true,ProFeatureBanner:true,UpgradeModal:true,LicenseEntryModal:true,ProBadge:true,ProUpgradeModal:true,FreeAccountPrompt:true,LOGIN_COMMAND:true,getUseIsPro:true,getUseLicense:true,getUseTier:true,TIER_LIMITS:true,useLimit:true,resolveEffectiveTier:true,getAccountAccess:true,hasAccountAccess:true,assertAccountAccess:true,subscribeAccountAccess:true,getUseAccountAccess:true,retryAccountAccess:true,isProNow:true,AccountSetup:true};Object.defineProperty(exports,"AccountSetup",{enumerable:true,get:function(){return _AccountSetup.AccountSetup}});Object.defineProperty(exports,"BUOY_SYNTHETIC_MARK",{enumerable:true,get:function(){return _index3.BUOY_SYNTHETIC_MARK}});Object.defineProperty(exports,"EnvironmentIndicator",{enumerable:true,get:function(){return _EnvironmentIndicator.EnvironmentIndicator}});Object.defineProperty(exports,"EnvironmentSelector",{enumerable:true,get:function(){return _EnvironmentSelector.EnvironmentSelector}});Object.defineProperty(exports,"EnvironmentSelectorInline",{enumerable:true,get:function(){return _EnvironmentSelectorInline.EnvironmentSelectorInline}});Object.defineProperty(exports,"FeatureGate",{enumerable:true,get:function(){return _index12.FeatureGate}});Object.defineProperty(exports,"FreeAccountPrompt",{enumerable:true,get:function(){return _index12.FreeAccountPrompt}});Object.defineProperty(exports,"HintsProvider",{enumerable:true,get:function(){return _index10.HintsProvider}});Object.defineProperty(exports,"JsModal",{enumerable:true,get:function(){return _JsModal.JsModal}});Object.defineProperty(exports,"LOGIN_COMMAND",{enumerable:true,get:function(){return _index12.LOGIN_COMMAND}});Object.defineProperty(exports,"LicenseEntryModal",{enumerable:true,get:function(){return _index12.LicenseEntryModal}});Object.defineProperty(exports,"NIGHT_LABEL_TRACKING",{enumerable:true,get:function(){return _nightTheme.NIGHT_LABEL_TRACKING}});Object.defineProperty(exports,"NightBadge",{enumerable:true,get:function(){return _primitives.NightBadge}});Object.defineProperty(exports,"NightButton",{enumerable:true,get:function(){return _primitives.NightButton}});Object.defineProperty(exports,"NightCard",{enumerable:true,get:function(){return _primitives.NightCard}});Object.defineProperty(exports,"NightChip",{enumerable:true,get:function(){return _primitives.NightChip}});Object.defineProperty(exports,"NightFootnote",{enumerable:true,get:function(){return _primitives.NightFootnote}});Object.defineProperty(exports,"NightRows",{enumerable:true,get:function(){return _primitives.NightRows}});Object.defineProperty(exports,"NightSectionLabel",{enumerable:true,get:function(){return _primitives.NightSectionLabel}});Object.defineProperty(exports,"NightSegmented",{enumerable:true,get:function(){return _primitives.NightSegmented}});Object.defineProperty(exports,"NightSeparator",{enumerable:true,get:function(){return _primitives.NightSeparator}});Object.defineProperty(exports,"NightSwitch",{enumerable:true,get:function(){return _primitives.NightSwitch}});Object.defineProperty(exports,"PREVIEW_ITEM_RENDER_BYTE_LIMIT",{enumerable:true,get:function(){return _snapshotProviderKit.PREVIEW_ITEM_RENDER_BYTE_LIMIT}});Object.defineProperty(exports,"ProBadge",{enumerable:true,get:function(){return _index12.ProBadge}});Object.defineProperty(exports,"ProFeatureBanner",{enumerable:true,get:function(){return _index12.ProFeatureBanner}});Object.defineProperty(exports,"ProUpgradeModal",{enumerable:true,get:function(){return _index12.ProUpgradeModal}});Object.defineProperty(exports,"REMOTE_RELOAD_DELAY_MS",{enumerable:true,get:function(){return _index3.REMOTE_RELOAD_DELAY_MS}});Object.defineProperty(exports,"Subscribable",{enumerable:true,get:function(){return _index3.Subscribable}});Object.defineProperty(exports,"TIER_LIMITS",{enumerable:true,get:function(){return _index12.TIER_LIMITS}});Object.defineProperty(exports,"UpgradeModal",{enumerable:true,get:function(){return _index12.UpgradeModal}});Object.defineProperty(exports,"UpgradePrompt",{enumerable:true,get:function(){return _index12.UpgradePrompt}});Object.defineProperty(exports,"absoluteFill",{enumerable:true,get:function(){return _index3.absoluteFill}});Object.defineProperty(exports,"assertAccountAccess",{enumerable:true,get:function(){return _licenseModule.assertAccountAccess}});Object.defineProperty(exports,"browserRouter",{enumerable:true,get:function(){return _browserNavigation.browserRouter}});Object.defineProperty(exports,"buoyColors",{enumerable:true,get:function(){return _gameUIColors.buoyColors}});Object.defineProperty(exports,"classifyPreviewItem",{enumerable:true,get:function(){return _snapshotProviderKit.classifyPreviewItem}});Object.defineProperty(exports,"countBuoyListener",{enumerable:true,get:function(){return _index3.countBuoyListener}});Object.defineProperty(exports,"createRestoreScope",{enumerable:true,get:function(){return _snapshotProviderKit.createRestoreScope}});Object.defineProperty(exports,"dialColors",{enumerable:true,get:function(){return _gameUIColors.dialColors}});Object.defineProperty(exports,"displayValue",{enumerable:true,get:function(){return _index3.displayValue}});Object.defineProperty(exports,"emptyRestoreResult",{enumerable:true,get:function(){return _snapshotProviderKit.emptyRestoreResult}});Object.defineProperty(exports,"entityColor",{enumerable:true,get:function(){return _stateTools.entityColor}});Object.defineProperty(exports,"failedRestore",{enumerable:true,get:function(){return _snapshotProviderKit.failedRestore}});Object.defineProperty(exports,"flattenObject",{enumerable:true,get:function(){return _index3.flattenObject}});Object.defineProperty(exports,"formatPath",{enumerable:true,get:function(){return _index3.formatPath}});Object.defineProperty(exports,"formatValue",{enumerable:true,get:function(){return _index3.formatValue}});Object.defineProperty(exports,"formatValuePreview",{enumerable:true,get:function(){return _stateTools.formatValuePreview}});Object.defineProperty(exports,"gameUIColors",{enumerable:true,get:function(){return _gameUIColors.gameUIColors}});Object.defineProperty(exports,"getAccountAccess",{enumerable:true,get:function(){return _licenseModule.getAccountAccess}});Object.defineProperty(exports,"getCachedOptionalModule",{enumerable:true,get:function(){return _index3.getCachedOptionalModule}});Object.defineProperty(exports,"getConstructorName",{enumerable:true,get:function(){return _index3.getConstructorName}});Object.defineProperty(exports,"getDevServerOrigin",{enumerable:true,get:function(){return _index3.getDevServerOrigin}});Object.defineProperty(exports,"getDeviceInfo",{enumerable:true,get:function(){return _index1.getDeviceInfo}});Object.defineProperty(exports,"getRealAppState",{enumerable:true,get:function(){return _index3.getRealAppState}});Object.defineProperty(exports,"getRenderCaptureProvider",{enumerable:true,get:function(){return _index3.getRenderCaptureProvider}});Object.defineProperty(exports,"getSafeAreaInsets",{enumerable:true,get:function(){return _index3.getSafeAreaInsets}});Object.defineProperty(exports,"getSafeCurrentPathname",{enumerable:true,get:function(){return _index3.getSafeCurrentPathname}});Object.defineProperty(exports,"getSafeCurrentRoute",{enumerable:true,get:function(){return _index3.getSafeCurrentRoute}});Object.defineProperty(exports,"getSafeRouter",{enumerable:true,get:function(){return _index3.getSafeRouter}});Object.defineProperty(exports,"getStateSnapshotProvider",{enumerable:true,get:function(){return _index3.getStateSnapshotProvider}});Object.defineProperty(exports,"getStateSnapshotProviders",{enumerable:true,get:function(){return _index3.getStateSnapshotProviders}});Object.defineProperty(exports,"getStorageBackendType",{enumerable:true,get:function(){return _index3.getStorageBackendType}});Object.defineProperty(exports,"getTypeColor",{enumerable:true,get:function(){return _index3.getTypeColor}});Object.defineProperty(exports,"getUseAccountAccess",{enumerable:true,get:function(){return _licenseModule.getUseAccountAccess}});Object.defineProperty(exports,"getUseIsPro",{enumerable:true,get:function(){return _index12.getUseIsPro}});Object.defineProperty(exports,"getUseLicense",{enumerable:true,get:function(){return _index12.getUseLicense}});Object.defineProperty(exports,"getUseTier",{enumerable:true,get:function(){return _index12.getUseTier}});Object.defineProperty(exports,"getValueSize",{enumerable:true,get:function(){return _index3.getValueSize}});Object.defineProperty(exports,"getValueType",{enumerable:true,get:function(){return _index3.getValueType}});Object.defineProperty(exports,"guardToolAdapter",{enumerable:true,get:function(){return _toolActionRegistry.guardToolAdapter}});Object.defineProperty(exports,"hasAccountAccess",{enumerable:true,get:function(){return _licenseModule.hasAccountAccess}});Object.defineProperty(exports,"isEmpty",{enumerable:true,get:function(){return _index3.isEmpty}});Object.defineProperty(exports,"isExpoRouterAvailable",{enumerable:true,get:function(){return _index3.isExpoRouterAvailable}});Object.defineProperty(exports,"isJsonSerializable",{enumerable:true,get:function(){return _index3.isJsonSerializable}});Object.defineProperty(exports,"isPlainObjectUtil",{enumerable:true,get:function(){return _typeHelpers.isPlainObject}});Object.defineProperty(exports,"isPrimitive",{enumerable:true,get:function(){return _index3.isPrimitive}});Object.defineProperty(exports,"isProNow",{enumerable:true,get:function(){return _licenseModule.isProNow}});Object.defineProperty(exports,"isUsingPersistentStorage",{enumerable:true,get:function(){return _index3.isUsingPersistentStorage}});Object.defineProperty(exports,"isValidJson",{enumerable:true,get:function(){return _index3.isValidJson}});Object.defineProperty(exports,"loadOptionalModule",{enumerable:true,get:function(){return _index3.loadOptionalModule}});Object.defineProperty(exports,"logDeviceInfo",{enumerable:true,get:function(){return _index1.logDeviceInfo}});Object.defineProperty(exports,"macOSColors",{enumerable:true,get:function(){return _macOSDesignSystemColors.macOSColors}});Object.defineProperty(exports,"night",{enumerable:true,get:function(){return _nightTheme.night}});Object.defineProperty(exports,"normalizeEnvironment",{enumerable:true,get:function(){return _types.normalizeEnvironment}});Object.defineProperty(exports,"notifySubscriberCountChange",{enumerable:true,get:function(){return _index3.notifySubscriberCountChange}});Object.defineProperty(exports,"parseDisplayValue",{enumerable:true,get:function(){return _index3.parseDisplayValue}});Object.defineProperty(exports,"parseValue",{enumerable:true,get:function(){return _index3.parseValue}});Object.defineProperty(exports,"persistentStorage",{enumerable:true,get:function(){return _index3.persistentStorage}});Object.defineProperty(exports,"realNow",{enumerable:true,get:function(){return _index3.realNow}});Object.defineProperty(exports,"refreshGameUIColors",{enumerable:true,get:function(){return _gameUIColors.refreshGameUIColors}});Object.defineProperty(exports,"registerBrowserRouter",{enumerable:true,get:function(){return _browserNavigation.registerBrowserRouter}});Object.defineProperty(exports,"registerStateSnapshotProvider",{enumerable:true,get:function(){return _index3.registerStateSnapshotProvider}});Object.defineProperty(exports,"reloadApp",{enumerable:true,get:function(){return _index3.reloadApp}});Object.defineProperty(exports,"resetPersistedStateCache",{enumerable:true,get:function(){return _index1.resetPersistedStateCache}});Object.defineProperty(exports,"resolveEffectiveTier",{enumerable:true,get:function(){return _index12.resolveEffectiveTier}});Object.defineProperty(exports,"resolveReloadStrategy",{enumerable:true,get:function(){return _index3.resolveReloadStrategy}});Object.defineProperty(exports,"retryAccountAccess",{enumerable:true,get:function(){return _licenseModule.retryAccountAccess}});Object.defineProperty(exports,"safeStringify",{enumerable:true,get:function(){return _index3.safeStringify}});Object.defineProperty(exports,"scheduleReloadApp",{enumerable:true,get:function(){return _index3.scheduleReloadApp}});Object.defineProperty(exports,"setRenderCaptureProvider",{enumerable:true,get:function(){return _index3.setRenderCaptureProvider}});Object.defineProperty(exports,"shallowDiffSummary",{enumerable:true,get:function(){return _stateTools.shallowDiffSummary}});Object.defineProperty(exports,"skippedRestore",{enumerable:true,get:function(){return _snapshotProviderKit.skippedRestore}});Object.defineProperty(exports,"subscribeAccountAccess",{enumerable:true,get:function(){return _licenseModule.subscribeAccountAccess}});Object.defineProperty(exports,"subscribeBrowserNavigation",{enumerable:true,get:function(){return _browserNavigation.subscribeBrowserNavigation}});Object.defineProperty(exports,"subscribeRealAppState",{enumerable:true,get:function(){return _index3.subscribeRealAppState}});Object.defineProperty(exports,"subscribeToStateSnapshotProviders",{enumerable:true,get:function(){return _index3.subscribeToStateSnapshotProviders}});Object.defineProperty(exports,"subscribeToSubscriberCountChanges",{enumerable:true,get:function(){return _index3.subscribeToSubscriberCountChanges}});Object.defineProperty(exports,"subscriberCountNotifier",{enumerable:true,get:function(){return _index3.subscriberCountNotifier}});Object.defineProperty(exports,"superJsonDeserialize",{enumerable:true,get:function(){return _index3.superJsonDeserialize}});Object.defineProperty(exports,"superJsonSerialize",{enumerable:true,get:function(){return _index3.superJsonSerialize}});Object.defineProperty(exports,"truncateText",{enumerable:true,get:function(){return _index3.truncateText}});Object.defineProperty(exports,"unionKeys",{enumerable:true,get:function(){return _snapshotProviderKit.unionKeys}});Object.defineProperty(exports,"useChangeLog",{enumerable:true,get:function(){return _index1.useChangeLog}});Object.defineProperty(exports,"useDeviceInfo",{enumerable:true,get:function(){return _index1.useDeviceInfo}});Object.defineProperty(exports,"useEventStoreEvents",{enumerable:true,get:function(){return _index1.useEventStoreEvents}});Object.defineProperty(exports,"useFeatureGate",{enumerable:true,get:function(){return _index12.useFeatureGate}});Object.defineProperty(exports,"useFilterManager",{enumerable:true,get:function(){return _index1.useFilterManager}});Object.defineProperty(exports,"useHintsContext",{enumerable:true,get:function(){return _index10.useHintsContext}});Object.defineProperty(exports,"useHintsDisabled",{enumerable:true,get:function(){return _index10.useHintsDisabled}});Object.defineProperty(exports,"useLimit",{enumerable:true,get:function(){return _index12.useLimit}});Object.defineProperty(exports,"usePersistedState",{enumerable:true,get:function(){return _index1.usePersistedState}});Object.defineProperty(exports,"useSafeAreaInsets",{enumerable:true,get:function(){return _index1.useSafeAreaInsets}});Object.defineProperty(exports,"useSafeGlobalSearchParams",{enumerable:true,get:function(){return _index3.useSafeGlobalSearchParams}});Object.defineProperty(exports,"useSafePathname",{enumerable:true,get:function(){return _index3.useSafePathname}});Object.defineProperty(exports,"useSafeRouter",{enumerable:true,get:function(){return _index3.useSafeRouter}});Object.defineProperty(exports,"useSafeSegments",{enumerable:true,get:function(){return _index3.useSafeSegments}});Object.defineProperty(exports,"useSubscribedValue",{enumerable:true,get:function(){return _index1.useSubscribedValue}});Object.defineProperty(exports,"wontApply",{enumerable:true,get:function(){return _snapshotProviderKit.wontApply}});var _index=require("./ui/index.js");Object.keys(_index).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index[e]}})});var _index2=require("./stores/index.js");Object.keys(_index2).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index2[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index2[e]}})});var _keyedArrays=require("./sync/keyedArrays.js");Object.keys(_keyedArrays).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_keyedArrays[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _keyedArrays[e]}})});var _valueShape=require("./sync/valueShape.js");Object.keys(_valueShape).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_valueShape[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _valueShape[e]}})});var _valuePath=require("./sync/valuePath.js");Object.keys(_valuePath).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_valuePath[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _valuePath[e]}})});var _typedEdit=require("./sync/typedEdit.js");Object.keys(_typedEdit).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_typedEdit[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _typedEdit[e]}})});var _wireBudget=require("./sync/wireBudget.js");Object.keys(_wireBudget).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_wireBudget[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _wireBudget[e]}})});var _wireForm=require("./sync/wireForm.js");Object.keys(_wireForm).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_wireForm[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _wireForm[e]}})});var _toolSyncAdapter=require("./sync/toolSyncAdapter.js");Object.keys(_toolSyncAdapter).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolSyncAdapter[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolSyncAdapter[e]}})});var _defineTool=require("./tools/defineTool.js");Object.keys(_defineTool).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_defineTool[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _defineTool[e]}})});var _toolActionRegistry=require("./sync/toolActionRegistry.js");Object.keys(_toolActionRegistry).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolActionRegistry[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolActionRegistry[e]}})});var _toolUiBridge=require("./sync/toolUiBridge.js");Object.keys(_toolUiBridge).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolUiBridge[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolUiBridge[e]}})});var _toolScreenHeader=require("./sync/toolScreenHeader.js");Object.keys(_toolScreenHeader).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolScreenHeader[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolScreenHeader[e]}})});var _index3=require("./utils/index.js");var _toolModules=require("./utils/toolModules.js");Object.keys(_toolModules).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolModules[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolModules[e]}})});var _browserNavigation=require("./utils/browserNavigation.js");var _snapshotProviderKit=require("./utils/snapshotProviderKit.js");var _stateTools=require("./utils/stateTools.js");var _index4=require("./utils/formatting/index.js");Object.keys(_index4).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index4[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index4[e]}})});var _index5=require("./utils/time/index.js");Object.keys(_index5).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index5[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index5[e]}})});var _typeHelpers=require("./utils/typeHelpers.js");var _index6=require("./icons/index.js");Object.keys(_index6).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index6[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index6[e]}})});var _index7=require("./clipboard/index.js");Object.keys(_index7).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index7[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index7[e]}})});var _index8=require("./logger/index.js");Object.keys(_index8).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index8[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index8[e]}})});var _index9=require("./settings/index.js");Object.keys(_index9).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index9[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index9[e]}})});var _index0=require("./storage/index.js");Object.keys(_index0).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index0[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index0[e]}})});var _index1=require("./hooks/index.js");var _JsModal=require("./JsModal");var _nightTheme=require("./ui/night/nightTheme.js");var _primitives=require("./ui/night/primitives.js");var _gameUIColors=require("./ui/gameUI/constants/gameUIColors.js");var _macOSDesignSystemColors=require("./ui/gameUI/constants/macOSDesignSystemColors.js");var _EnvironmentIndicator=require("./env/EnvironmentIndicator");var _EnvironmentSelector=require("./env/EnvironmentSelector.js");var _EnvironmentSelectorInline=require("./env/EnvironmentSelectorInline");var _types=require("./types/types.js");var _index10=require("./context/index.js");var _index11=require("./history/index.js");Object.keys(_index11).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index11[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index11[e]}})});var _index12=require("./license/index.js");var _licenseModule=require("./license/licenseModule.js");var _AccountSetup=require("./license/AccountSetup");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});var _exportNames={startSettingsSync:true,SettingsSync:true,PERSONAL_SETTING_KEYS:true,TEAM_SETTING_KEYS:true,guardToolAdapter:true,absoluteFill:true,displayValue:true,parseDisplayValue:true,getSafeAreaInsets:true,persistentStorage:true,isUsingPersistentStorage:true,getStorageBackendType:true,safeStringify:true,getValueType:true,isPrimitive:true,isJsonSerializable:true,isValidJson:true,getConstructorName:true,isEmpty:true,getValueSize:true,parseValue:true,formatValue:true,getTypeColor:true,truncateText:true,flattenObject:true,formatPath:true,loadOptionalModule:true,getCachedOptionalModule:true,setRenderCaptureProvider:true,getRenderCaptureProvider:true,registerStateSnapshotProvider:true,getStateSnapshotProviders:true,getStateSnapshotProvider:true,subscribeToStateSnapshotProviders:true,superJsonSerialize:true,superJsonDeserialize:true,realNow:true,getRealAppState:true,subscribeRealAppState:true,BUOY_SYNTHETIC_MARK:true,countBuoyListener:true,reloadApp:true,scheduleReloadApp:true,resolveReloadStrategy:true,REMOTE_RELOAD_DELAY_MS:true,getDevServerOrigin:true,Subscribable:true,subscriberCountNotifier:true,subscribeToSubscriberCountChanges:true,notifySubscriberCountChange:true,useSafeRouter:true,useSafePathname:true,useSafeSegments:true,useSafeGlobalSearchParams:true,getSafeRouter:true,getSafeCurrentPathname:true,getSafeCurrentRoute:true,isExpoRouterAvailable:true,registerBrowserRouter:true,browserRouter:true,subscribeBrowserNavigation:true,PREVIEW_ITEM_RENDER_BYTE_LIMIT:true,createRestoreScope:true,emptyRestoreResult:true,failedRestore:true,skippedRestore:true,classifyPreviewItem:true,wontApply:true,unionKeys:true,entityColor:true,formatValuePreview:true,shallowDiffSummary:true,isPlainObjectUtil:true,useSafeAreaInsets:true,useFilterManager:true,usePersistedState:true,resetPersistedStateCache:true,useChangeLog:true,useSubscribedValue:true,useEventStoreEvents:true,useDeviceInfo:true,getDeviceInfo:true,logDeviceInfo:true,JsModal:true,night:true,NIGHT_LABEL_TRACKING:true,NightSectionLabel:true,NightFootnote:true,NightCard:true,NightSeparator:true,NightRows:true,NightSwitch:true,NightChip:true,NightButton:true,NightSegmented:true,NightBadge:true,gameUIColors:true,buoyColors:true,refreshGameUIColors:true,dialColors:true,macOSColors:true,EnvironmentIndicator:true,EnvironmentSelector:true,EnvironmentSelectorInline:true,normalizeEnvironment:true,HintsProvider:true,useHintsDisabled:true,useHintsContext:true,FeatureGate:true,UpgradePrompt:true,useFeatureGate:true,ProFeatureBanner:true,UpgradeModal:true,LicenseEntryModal:true,ProBadge:true,ProUpgradeModal:true,FreeAccountPrompt:true,LOGIN_COMMAND:true,getUseIsPro:true,getUseLicense:true,getUseTier:true,signOutOfBuoy:true,TIER_LIMITS:true,useLimit:true,resolveEffectiveTier:true,getAccountAccess:true,hasAccountAccess:true,assertAccountAccess:true,subscribeAccountAccess:true,getUseAccountAccess:true,retryAccountAccess:true,isProNow:true,AccountSetup:true};Object.defineProperty(exports,"AccountSetup",{enumerable:true,get:function(){return _AccountSetup.AccountSetup}});Object.defineProperty(exports,"BUOY_SYNTHETIC_MARK",{enumerable:true,get:function(){return _index3.BUOY_SYNTHETIC_MARK}});Object.defineProperty(exports,"EnvironmentIndicator",{enumerable:true,get:function(){return _EnvironmentIndicator.EnvironmentIndicator}});Object.defineProperty(exports,"EnvironmentSelector",{enumerable:true,get:function(){return _EnvironmentSelector.EnvironmentSelector}});Object.defineProperty(exports,"EnvironmentSelectorInline",{enumerable:true,get:function(){return _EnvironmentSelectorInline.EnvironmentSelectorInline}});Object.defineProperty(exports,"FeatureGate",{enumerable:true,get:function(){return _index12.FeatureGate}});Object.defineProperty(exports,"FreeAccountPrompt",{enumerable:true,get:function(){return _index12.FreeAccountPrompt}});Object.defineProperty(exports,"HintsProvider",{enumerable:true,get:function(){return _index10.HintsProvider}});Object.defineProperty(exports,"JsModal",{enumerable:true,get:function(){return _JsModal.JsModal}});Object.defineProperty(exports,"LOGIN_COMMAND",{enumerable:true,get:function(){return _index12.LOGIN_COMMAND}});Object.defineProperty(exports,"LicenseEntryModal",{enumerable:true,get:function(){return _index12.LicenseEntryModal}});Object.defineProperty(exports,"NIGHT_LABEL_TRACKING",{enumerable:true,get:function(){return _nightTheme.NIGHT_LABEL_TRACKING}});Object.defineProperty(exports,"NightBadge",{enumerable:true,get:function(){return _primitives.NightBadge}});Object.defineProperty(exports,"NightButton",{enumerable:true,get:function(){return _primitives.NightButton}});Object.defineProperty(exports,"NightCard",{enumerable:true,get:function(){return _primitives.NightCard}});Object.defineProperty(exports,"NightChip",{enumerable:true,get:function(){return _primitives.NightChip}});Object.defineProperty(exports,"NightFootnote",{enumerable:true,get:function(){return _primitives.NightFootnote}});Object.defineProperty(exports,"NightRows",{enumerable:true,get:function(){return _primitives.NightRows}});Object.defineProperty(exports,"NightSectionLabel",{enumerable:true,get:function(){return _primitives.NightSectionLabel}});Object.defineProperty(exports,"NightSegmented",{enumerable:true,get:function(){return _primitives.NightSegmented}});Object.defineProperty(exports,"NightSeparator",{enumerable:true,get:function(){return _primitives.NightSeparator}});Object.defineProperty(exports,"NightSwitch",{enumerable:true,get:function(){return _primitives.NightSwitch}});Object.defineProperty(exports,"PERSONAL_SETTING_KEYS",{enumerable:true,get:function(){return _settingsSync.PERSONAL_SETTING_KEYS}});Object.defineProperty(exports,"PREVIEW_ITEM_RENDER_BYTE_LIMIT",{enumerable:true,get:function(){return _snapshotProviderKit.PREVIEW_ITEM_RENDER_BYTE_LIMIT}});Object.defineProperty(exports,"ProBadge",{enumerable:true,get:function(){return _index12.ProBadge}});Object.defineProperty(exports,"ProFeatureBanner",{enumerable:true,get:function(){return _index12.ProFeatureBanner}});Object.defineProperty(exports,"ProUpgradeModal",{enumerable:true,get:function(){return _index12.ProUpgradeModal}});Object.defineProperty(exports,"REMOTE_RELOAD_DELAY_MS",{enumerable:true,get:function(){return _index3.REMOTE_RELOAD_DELAY_MS}});Object.defineProperty(exports,"SettingsSync",{enumerable:true,get:function(){return _settingsSync.SettingsSync}});Object.defineProperty(exports,"Subscribable",{enumerable:true,get:function(){return _index3.Subscribable}});Object.defineProperty(exports,"TEAM_SETTING_KEYS",{enumerable:true,get:function(){return _settingsSync.TEAM_SETTING_KEYS}});Object.defineProperty(exports,"TIER_LIMITS",{enumerable:true,get:function(){return _index12.TIER_LIMITS}});Object.defineProperty(exports,"UpgradeModal",{enumerable:true,get:function(){return _index12.UpgradeModal}});Object.defineProperty(exports,"UpgradePrompt",{enumerable:true,get:function(){return _index12.UpgradePrompt}});Object.defineProperty(exports,"absoluteFill",{enumerable:true,get:function(){return _index3.absoluteFill}});Object.defineProperty(exports,"assertAccountAccess",{enumerable:true,get:function(){return _licenseModule.assertAccountAccess}});Object.defineProperty(exports,"browserRouter",{enumerable:true,get:function(){return _browserNavigation.browserRouter}});Object.defineProperty(exports,"buoyColors",{enumerable:true,get:function(){return _gameUIColors.buoyColors}});Object.defineProperty(exports,"classifyPreviewItem",{enumerable:true,get:function(){return _snapshotProviderKit.classifyPreviewItem}});Object.defineProperty(exports,"countBuoyListener",{enumerable:true,get:function(){return _index3.countBuoyListener}});Object.defineProperty(exports,"createRestoreScope",{enumerable:true,get:function(){return _snapshotProviderKit.createRestoreScope}});Object.defineProperty(exports,"dialColors",{enumerable:true,get:function(){return _gameUIColors.dialColors}});Object.defineProperty(exports,"displayValue",{enumerable:true,get:function(){return _index3.displayValue}});Object.defineProperty(exports,"emptyRestoreResult",{enumerable:true,get:function(){return _snapshotProviderKit.emptyRestoreResult}});Object.defineProperty(exports,"entityColor",{enumerable:true,get:function(){return _stateTools.entityColor}});Object.defineProperty(exports,"failedRestore",{enumerable:true,get:function(){return _snapshotProviderKit.failedRestore}});Object.defineProperty(exports,"flattenObject",{enumerable:true,get:function(){return _index3.flattenObject}});Object.defineProperty(exports,"formatPath",{enumerable:true,get:function(){return _index3.formatPath}});Object.defineProperty(exports,"formatValue",{enumerable:true,get:function(){return _index3.formatValue}});Object.defineProperty(exports,"formatValuePreview",{enumerable:true,get:function(){return _stateTools.formatValuePreview}});Object.defineProperty(exports,"gameUIColors",{enumerable:true,get:function(){return _gameUIColors.gameUIColors}});Object.defineProperty(exports,"getAccountAccess",{enumerable:true,get:function(){return _licenseModule.getAccountAccess}});Object.defineProperty(exports,"getCachedOptionalModule",{enumerable:true,get:function(){return _index3.getCachedOptionalModule}});Object.defineProperty(exports,"getConstructorName",{enumerable:true,get:function(){return _index3.getConstructorName}});Object.defineProperty(exports,"getDevServerOrigin",{enumerable:true,get:function(){return _index3.getDevServerOrigin}});Object.defineProperty(exports,"getDeviceInfo",{enumerable:true,get:function(){return _index1.getDeviceInfo}});Object.defineProperty(exports,"getRealAppState",{enumerable:true,get:function(){return _index3.getRealAppState}});Object.defineProperty(exports,"getRenderCaptureProvider",{enumerable:true,get:function(){return _index3.getRenderCaptureProvider}});Object.defineProperty(exports,"getSafeAreaInsets",{enumerable:true,get:function(){return _index3.getSafeAreaInsets}});Object.defineProperty(exports,"getSafeCurrentPathname",{enumerable:true,get:function(){return _index3.getSafeCurrentPathname}});Object.defineProperty(exports,"getSafeCurrentRoute",{enumerable:true,get:function(){return _index3.getSafeCurrentRoute}});Object.defineProperty(exports,"getSafeRouter",{enumerable:true,get:function(){return _index3.getSafeRouter}});Object.defineProperty(exports,"getStateSnapshotProvider",{enumerable:true,get:function(){return _index3.getStateSnapshotProvider}});Object.defineProperty(exports,"getStateSnapshotProviders",{enumerable:true,get:function(){return _index3.getStateSnapshotProviders}});Object.defineProperty(exports,"getStorageBackendType",{enumerable:true,get:function(){return _index3.getStorageBackendType}});Object.defineProperty(exports,"getTypeColor",{enumerable:true,get:function(){return _index3.getTypeColor}});Object.defineProperty(exports,"getUseAccountAccess",{enumerable:true,get:function(){return _licenseModule.getUseAccountAccess}});Object.defineProperty(exports,"getUseIsPro",{enumerable:true,get:function(){return _index12.getUseIsPro}});Object.defineProperty(exports,"getUseLicense",{enumerable:true,get:function(){return _index12.getUseLicense}});Object.defineProperty(exports,"getUseTier",{enumerable:true,get:function(){return _index12.getUseTier}});Object.defineProperty(exports,"getValueSize",{enumerable:true,get:function(){return _index3.getValueSize}});Object.defineProperty(exports,"getValueType",{enumerable:true,get:function(){return _index3.getValueType}});Object.defineProperty(exports,"guardToolAdapter",{enumerable:true,get:function(){return _toolActionRegistry.guardToolAdapter}});Object.defineProperty(exports,"hasAccountAccess",{enumerable:true,get:function(){return _licenseModule.hasAccountAccess}});Object.defineProperty(exports,"isEmpty",{enumerable:true,get:function(){return _index3.isEmpty}});Object.defineProperty(exports,"isExpoRouterAvailable",{enumerable:true,get:function(){return _index3.isExpoRouterAvailable}});Object.defineProperty(exports,"isJsonSerializable",{enumerable:true,get:function(){return _index3.isJsonSerializable}});Object.defineProperty(exports,"isPlainObjectUtil",{enumerable:true,get:function(){return _typeHelpers.isPlainObject}});Object.defineProperty(exports,"isPrimitive",{enumerable:true,get:function(){return _index3.isPrimitive}});Object.defineProperty(exports,"isProNow",{enumerable:true,get:function(){return _licenseModule.isProNow}});Object.defineProperty(exports,"isUsingPersistentStorage",{enumerable:true,get:function(){return _index3.isUsingPersistentStorage}});Object.defineProperty(exports,"isValidJson",{enumerable:true,get:function(){return _index3.isValidJson}});Object.defineProperty(exports,"loadOptionalModule",{enumerable:true,get:function(){return _index3.loadOptionalModule}});Object.defineProperty(exports,"logDeviceInfo",{enumerable:true,get:function(){return _index1.logDeviceInfo}});Object.defineProperty(exports,"macOSColors",{enumerable:true,get:function(){return _macOSDesignSystemColors.macOSColors}});Object.defineProperty(exports,"night",{enumerable:true,get:function(){return _nightTheme.night}});Object.defineProperty(exports,"normalizeEnvironment",{enumerable:true,get:function(){return _types.normalizeEnvironment}});Object.defineProperty(exports,"notifySubscriberCountChange",{enumerable:true,get:function(){return _index3.notifySubscriberCountChange}});Object.defineProperty(exports,"parseDisplayValue",{enumerable:true,get:function(){return _index3.parseDisplayValue}});Object.defineProperty(exports,"parseValue",{enumerable:true,get:function(){return _index3.parseValue}});Object.defineProperty(exports,"persistentStorage",{enumerable:true,get:function(){return _index3.persistentStorage}});Object.defineProperty(exports,"realNow",{enumerable:true,get:function(){return _index3.realNow}});Object.defineProperty(exports,"refreshGameUIColors",{enumerable:true,get:function(){return _gameUIColors.refreshGameUIColors}});Object.defineProperty(exports,"registerBrowserRouter",{enumerable:true,get:function(){return _browserNavigation.registerBrowserRouter}});Object.defineProperty(exports,"registerStateSnapshotProvider",{enumerable:true,get:function(){return _index3.registerStateSnapshotProvider}});Object.defineProperty(exports,"reloadApp",{enumerable:true,get:function(){return _index3.reloadApp}});Object.defineProperty(exports,"resetPersistedStateCache",{enumerable:true,get:function(){return _index1.resetPersistedStateCache}});Object.defineProperty(exports,"resolveEffectiveTier",{enumerable:true,get:function(){return _index12.resolveEffectiveTier}});Object.defineProperty(exports,"resolveReloadStrategy",{enumerable:true,get:function(){return _index3.resolveReloadStrategy}});Object.defineProperty(exports,"retryAccountAccess",{enumerable:true,get:function(){return _licenseModule.retryAccountAccess}});Object.defineProperty(exports,"safeStringify",{enumerable:true,get:function(){return _index3.safeStringify}});Object.defineProperty(exports,"scheduleReloadApp",{enumerable:true,get:function(){return _index3.scheduleReloadApp}});Object.defineProperty(exports,"setRenderCaptureProvider",{enumerable:true,get:function(){return _index3.setRenderCaptureProvider}});Object.defineProperty(exports,"shallowDiffSummary",{enumerable:true,get:function(){return _stateTools.shallowDiffSummary}});Object.defineProperty(exports,"signOutOfBuoy",{enumerable:true,get:function(){return _index12.signOutOfBuoy}});Object.defineProperty(exports,"skippedRestore",{enumerable:true,get:function(){return _snapshotProviderKit.skippedRestore}});Object.defineProperty(exports,"startSettingsSync",{enumerable:true,get:function(){return _settingsSync.startSettingsSync}});Object.defineProperty(exports,"subscribeAccountAccess",{enumerable:true,get:function(){return _licenseModule.subscribeAccountAccess}});Object.defineProperty(exports,"subscribeBrowserNavigation",{enumerable:true,get:function(){return _browserNavigation.subscribeBrowserNavigation}});Object.defineProperty(exports,"subscribeRealAppState",{enumerable:true,get:function(){return _index3.subscribeRealAppState}});Object.defineProperty(exports,"subscribeToStateSnapshotProviders",{enumerable:true,get:function(){return _index3.subscribeToStateSnapshotProviders}});Object.defineProperty(exports,"subscribeToSubscriberCountChanges",{enumerable:true,get:function(){return _index3.subscribeToSubscriberCountChanges}});Object.defineProperty(exports,"subscriberCountNotifier",{enumerable:true,get:function(){return _index3.subscriberCountNotifier}});Object.defineProperty(exports,"superJsonDeserialize",{enumerable:true,get:function(){return _index3.superJsonDeserialize}});Object.defineProperty(exports,"superJsonSerialize",{enumerable:true,get:function(){return _index3.superJsonSerialize}});Object.defineProperty(exports,"truncateText",{enumerable:true,get:function(){return _index3.truncateText}});Object.defineProperty(exports,"unionKeys",{enumerable:true,get:function(){return _snapshotProviderKit.unionKeys}});Object.defineProperty(exports,"useChangeLog",{enumerable:true,get:function(){return _index1.useChangeLog}});Object.defineProperty(exports,"useDeviceInfo",{enumerable:true,get:function(){return _index1.useDeviceInfo}});Object.defineProperty(exports,"useEventStoreEvents",{enumerable:true,get:function(){return _index1.useEventStoreEvents}});Object.defineProperty(exports,"useFeatureGate",{enumerable:true,get:function(){return _index12.useFeatureGate}});Object.defineProperty(exports,"useFilterManager",{enumerable:true,get:function(){return _index1.useFilterManager}});Object.defineProperty(exports,"useHintsContext",{enumerable:true,get:function(){return _index10.useHintsContext}});Object.defineProperty(exports,"useHintsDisabled",{enumerable:true,get:function(){return _index10.useHintsDisabled}});Object.defineProperty(exports,"useLimit",{enumerable:true,get:function(){return _index12.useLimit}});Object.defineProperty(exports,"usePersistedState",{enumerable:true,get:function(){return _index1.usePersistedState}});Object.defineProperty(exports,"useSafeAreaInsets",{enumerable:true,get:function(){return _index1.useSafeAreaInsets}});Object.defineProperty(exports,"useSafeGlobalSearchParams",{enumerable:true,get:function(){return _index3.useSafeGlobalSearchParams}});Object.defineProperty(exports,"useSafePathname",{enumerable:true,get:function(){return _index3.useSafePathname}});Object.defineProperty(exports,"useSafeRouter",{enumerable:true,get:function(){return _index3.useSafeRouter}});Object.defineProperty(exports,"useSafeSegments",{enumerable:true,get:function(){return _index3.useSafeSegments}});Object.defineProperty(exports,"useSubscribedValue",{enumerable:true,get:function(){return _index1.useSubscribedValue}});Object.defineProperty(exports,"wontApply",{enumerable:true,get:function(){return _snapshotProviderKit.wontApply}});var _index=require("./ui/index.js");Object.keys(_index).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index[e]}})});var _index2=require("./stores/index.js");Object.keys(_index2).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index2[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index2[e]}})});var _keyedArrays=require("./sync/keyedArrays.js");Object.keys(_keyedArrays).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_keyedArrays[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _keyedArrays[e]}})});var _valueShape=require("./sync/valueShape.js");Object.keys(_valueShape).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_valueShape[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _valueShape[e]}})});var _valuePath=require("./sync/valuePath.js");Object.keys(_valuePath).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_valuePath[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _valuePath[e]}})});var _typedEdit=require("./sync/typedEdit.js");Object.keys(_typedEdit).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_typedEdit[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _typedEdit[e]}})});var _wireBudget=require("./sync/wireBudget.js");Object.keys(_wireBudget).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_wireBudget[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _wireBudget[e]}})});var _wireForm=require("./sync/wireForm.js");Object.keys(_wireForm).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_wireForm[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _wireForm[e]}})});var _toolSyncAdapter=require("./sync/toolSyncAdapter.js");Object.keys(_toolSyncAdapter).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolSyncAdapter[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolSyncAdapter[e]}})});var _settingsSync=require("./sync/settingsSync.js");var _defineTool=require("./tools/defineTool.js");Object.keys(_defineTool).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_defineTool[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _defineTool[e]}})});var _toolActionRegistry=require("./sync/toolActionRegistry.js");Object.keys(_toolActionRegistry).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolActionRegistry[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolActionRegistry[e]}})});var _toolUiBridge=require("./sync/toolUiBridge.js");Object.keys(_toolUiBridge).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolUiBridge[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolUiBridge[e]}})});var _toolScreenHeader=require("./sync/toolScreenHeader.js");Object.keys(_toolScreenHeader).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolScreenHeader[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolScreenHeader[e]}})});var _index3=require("./utils/index.js");var _toolModules=require("./utils/toolModules.js");Object.keys(_toolModules).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolModules[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolModules[e]}})});var _browserNavigation=require("./utils/browserNavigation.js");var _snapshotProviderKit=require("./utils/snapshotProviderKit.js");var _stateTools=require("./utils/stateTools.js");var _index4=require("./utils/formatting/index.js");Object.keys(_index4).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index4[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index4[e]}})});var _index5=require("./utils/time/index.js");Object.keys(_index5).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index5[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index5[e]}})});var _typeHelpers=require("./utils/typeHelpers.js");var _index6=require("./icons/index.js");Object.keys(_index6).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index6[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index6[e]}})});var _index7=require("./clipboard/index.js");Object.keys(_index7).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index7[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index7[e]}})});var _index8=require("./logger/index.js");Object.keys(_index8).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index8[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index8[e]}})});var _index9=require("./settings/index.js");Object.keys(_index9).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index9[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index9[e]}})});var _index0=require("./storage/index.js");Object.keys(_index0).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index0[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index0[e]}})});var _index1=require("./hooks/index.js");var _JsModal=require("./JsModal");var _nightTheme=require("./ui/night/nightTheme.js");var _primitives=require("./ui/night/primitives.js");var _gameUIColors=require("./ui/gameUI/constants/gameUIColors.js");var _macOSDesignSystemColors=require("./ui/gameUI/constants/macOSDesignSystemColors.js");var _EnvironmentIndicator=require("./env/EnvironmentIndicator");var _EnvironmentSelector=require("./env/EnvironmentSelector.js");var _EnvironmentSelectorInline=require("./env/EnvironmentSelectorInline");var _types=require("./types/types.js");var _index10=require("./context/index.js");var _index11=require("./history/index.js");Object.keys(_index11).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index11[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index11[e]}})});var _index12=require("./license/index.js");var _licenseModule=require("./license/licenseModule.js");var _AccountSetup=require("./license/AccountSetup");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"FeatureGate",{enumerable:true,get:function(){return _FeatureGate.FeatureGate}});Object.defineProperty(exports,"FreeAccountPrompt",{enumerable:true,get:function(){return _FreeAccountPrompt.FreeAccountPrompt}});Object.defineProperty(exports,"LOGIN_COMMAND",{enumerable:true,get:function(){return _FreeAccountPrompt.LOGIN_COMMAND}});Object.defineProperty(exports,"LicenseEntryModal",{enumerable:true,get:function(){return _LicenseEntryModal.LicenseEntryModal}});Object.defineProperty(exports,"ProBadge",{enumerable:true,get:function(){return _FeatureGate.ProBadge}});Object.defineProperty(exports,"ProFeatureBanner",{enumerable:true,get:function(){return _FeatureGate.ProFeatureBanner}});Object.defineProperty(exports,"ProUpgradeModal",{enumerable:true,get:function(){return _FeatureGate.ProUpgradeModal}});Object.defineProperty(exports,"TIER_LIMITS",{enumerable:true,get:function(){return _tierLimits.TIER_LIMITS}});Object.defineProperty(exports,"UpgradeModal",{enumerable:true,get:function(){return _FeatureGate.UpgradeModal}});Object.defineProperty(exports,"UpgradePrompt",{enumerable:true,get:function(){return _FeatureGate.UpgradePrompt}});Object.defineProperty(exports,"getUseIsPro",{enumerable:true,get:function(){return _licenseModule.getUseIsPro}});Object.defineProperty(exports,"getUseLicense",{enumerable:true,get:function(){return _licenseModule.getUseLicense}});Object.defineProperty(exports,"getUseTier",{enumerable:true,get:function(){return _licenseModule.getUseTier}});Object.defineProperty(exports,"resolveEffectiveTier",{enumerable:true,get:function(){return _tierLimits.resolveEffectiveTier}});Object.defineProperty(exports,"useFeatureGate",{enumerable:true,get:function(){return _FeatureGate.useFeatureGate}});Object.defineProperty(exports,"useLimit",{enumerable:true,get:function(){return _tierLimits.useLimit}});var _FeatureGate=require("./FeatureGate.js");var _LicenseEntryModal=require("./LicenseEntryModal.js");var _FreeAccountPrompt=require("./FreeAccountPrompt.js");var _licenseModule=require("./licenseModule.js");var _tierLimits=require("./tierLimits.js");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"FeatureGate",{enumerable:true,get:function(){return _FeatureGate.FeatureGate}});Object.defineProperty(exports,"FreeAccountPrompt",{enumerable:true,get:function(){return _FreeAccountPrompt.FreeAccountPrompt}});Object.defineProperty(exports,"LOGIN_COMMAND",{enumerable:true,get:function(){return _FreeAccountPrompt.LOGIN_COMMAND}});Object.defineProperty(exports,"LicenseEntryModal",{enumerable:true,get:function(){return _LicenseEntryModal.LicenseEntryModal}});Object.defineProperty(exports,"ProBadge",{enumerable:true,get:function(){return _FeatureGate.ProBadge}});Object.defineProperty(exports,"ProFeatureBanner",{enumerable:true,get:function(){return _FeatureGate.ProFeatureBanner}});Object.defineProperty(exports,"ProUpgradeModal",{enumerable:true,get:function(){return _FeatureGate.ProUpgradeModal}});Object.defineProperty(exports,"TIER_LIMITS",{enumerable:true,get:function(){return _tierLimits.TIER_LIMITS}});Object.defineProperty(exports,"UpgradeModal",{enumerable:true,get:function(){return _FeatureGate.UpgradeModal}});Object.defineProperty(exports,"UpgradePrompt",{enumerable:true,get:function(){return _FeatureGate.UpgradePrompt}});Object.defineProperty(exports,"getUseIsPro",{enumerable:true,get:function(){return _licenseModule.getUseIsPro}});Object.defineProperty(exports,"getUseLicense",{enumerable:true,get:function(){return _licenseModule.getUseLicense}});Object.defineProperty(exports,"getUseTier",{enumerable:true,get:function(){return _licenseModule.getUseTier}});Object.defineProperty(exports,"resolveEffectiveTier",{enumerable:true,get:function(){return _tierLimits.resolveEffectiveTier}});Object.defineProperty(exports,"signOutOfBuoy",{enumerable:true,get:function(){return _licenseModule.signOutOfBuoy}});Object.defineProperty(exports,"useFeatureGate",{enumerable:true,get:function(){return _FeatureGate.useFeatureGate}});Object.defineProperty(exports,"useLimit",{enumerable:true,get:function(){return _tierLimits.useLimit}});var _FeatureGate=require("./FeatureGate.js");var _LicenseEntryModal=require("./LicenseEntryModal.js");var _FreeAccountPrompt=require("./FreeAccountPrompt.js");var _licenseModule=require("./licenseModule.js");var _tierLimits=require("./tierLimits.js");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.assertAccountAccess=assertAccountAccess;exports.getAccountAccess=getAccountAccess;exports.getUseAccountAccess=getUseAccountAccess;exports.getUseIsPro=getUseIsPro;exports.getUseLicense=getUseLicense;exports.getUseTier=getUseTier;exports.hasAccountAccess=hasAccountAccess;exports.isProNow=isProNow;exports.retryAccountAccess=retryAccountAccess;exports.subscribeAccountAccess=subscribeAccountAccess;var licenseModule=_interopRequireWildcard(require("@buoy-gg/license"));var _accountRuntime=require("./accountRuntime");function _interopRequireWildcard(e,s){if("function"==typeof WeakMap)var i=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(t,o){if(!o&&t&&t.__esModule)return t;var n,u,r={__proto__:null,default:t};if(null===t||"object"!=typeof t&&"function"!=typeof t)return r;if(n=o?a:i){if(n.has(t))return n.get(t);n.set(t,r)}for(const c in t)"default"!==c&&{}.hasOwnProperty.call(t,c)&&((u=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(t,c))&&(u.get||u.set)?n(r,c,u):r[c]=t[c]);return r})(e,s)}let _useIsPro=null;let _useLicense=null;let _useTier=null;let _licenseLoadAttempted=false;function loadLicenseModuleCentral(){if(_licenseLoadAttempted)return;_licenseLoadAttempted=true;try{const e=licenseModule;if(e){_useIsPro=e.useIsPro??null;_useLicense=e.useLicense??null;_useTier=e.useTier??null}}catch{}}function getUseIsPro(){loadLicenseModuleCentral();return _useIsPro??(()=>false)}function getUseLicense(){loadLicenseModuleCentral();return _useLicense}function getUseTier(){loadLicenseModuleCentral();return _useTier??(()=>"free")}function isProNow(){try{return licenseModule.isPro?.()??false}catch{return false}}const LOCKED={status:"locked",reason:"account_required",validUntil:null};function accountManager(){if(!(0,_accountRuntime.canInitializeAccount)())return null;try{const e=licenseModule.LicenseManager;void e?.initialize?.();return e}catch{return null}}function getAccountAccess(){return accountManager()?.getAccountAccess?.()??LOCKED}function hasAccountAccess(){return getAccountAccess().status==="admitted"}function assertAccountAccess(){if(!hasAccountAccess())throw new Error("A verified Buoy account is required. Run npx buoy login, then reload your app.")}function subscribeAccountAccess(e){return accountManager()?.subscribe?.(e)??(()=>{})}function getUseAccountAccess(){try{return licenseModule.useAccountAccess??(()=>LOCKED)}catch{return()=>LOCKED}}async function retryAccountAccess(){const e=accountManager();const s=e?.getState?.().licenseKey;if(s)await e.setLicenseKey(s,{force:true});else await e?.initialize?.()}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.assertAccountAccess=assertAccountAccess;exports.getAccountAccess=getAccountAccess;exports.getSyncCredential=getSyncCredential;exports.getUseAccountAccess=getUseAccountAccess;exports.getUseIsPro=getUseIsPro;exports.getUseLicense=getUseLicense;exports.getUseTier=getUseTier;exports.hasAccountAccess=hasAccountAccess;exports.isProNow=isProNow;exports.retryAccountAccess=retryAccountAccess;exports.signOutOfBuoy=signOutOfBuoy;exports.subscribeAccountAccess=subscribeAccountAccess;var licenseModule=_interopRequireWildcard(require("@buoy-gg/license"));var _accountRuntime=require("./accountRuntime");function _interopRequireWildcard(e,s){if("function"==typeof WeakMap)var i=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(t,o){if(!o&&t&&t.__esModule)return t;var n,u,r={__proto__:null,default:t};if(null===t||"object"!=typeof t&&"function"!=typeof t)return r;if(n=o?a:i){if(n.has(t))return n.get(t);n.set(t,r)}for(const c in t)"default"!==c&&{}.hasOwnProperty.call(t,c)&&((u=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(t,c))&&(u.get||u.set)?n(r,c,u):r[c]=t[c]);return r})(e,s)}let _useIsPro=null;let _useLicense=null;let _useTier=null;let _licenseLoadAttempted=false;function loadLicenseModuleCentral(){if(_licenseLoadAttempted)return;_licenseLoadAttempted=true;try{const e=licenseModule;if(e){_useIsPro=e.useIsPro??null;_useLicense=e.useLicense??null;_useTier=e.useTier??null}}catch{}}function getUseIsPro(){loadLicenseModuleCentral();return _useIsPro??(()=>false)}function getUseLicense(){loadLicenseModuleCentral();return _useLicense}function getUseTier(){loadLicenseModuleCentral();return _useTier??(()=>"free")}function isProNow(){try{return licenseModule.isPro?.()??false}catch{return false}}const LOCKED={status:"locked",reason:"account_required",validUntil:null};function accountManager(){if(!(0,_accountRuntime.canInitializeAccount)())return null;try{const e=licenseModule.LicenseManager;void e?.initialize?.();return e}catch{return null}}function getAccountAccess(){return accountManager()?.getAccountAccess?.()??LOCKED}function hasAccountAccess(){return getAccountAccess().status==="admitted"}function assertAccountAccess(){if(!hasAccountAccess())throw new Error("A verified Buoy account is required. Run npx buoy login, then reload your app.")}function subscribeAccountAccess(e){return accountManager()?.subscribe?.(e)??(()=>{})}function getUseAccountAccess(){try{return licenseModule.useAccountAccess??(()=>LOCKED)}catch{return()=>LOCKED}}async function retryAccountAccess(){const e=accountManager();const s=e?.getState?.().licenseKey;if(s)await e.setLicenseKey(s,{force:true});else await e?.initialize?.()}async function signOutOfBuoy(){try{await licenseModule.SessionManager?.signOut()}catch{}}function getSyncCredential(){try{return licenseModule.getSyncCredential?.()??null}catch{return null}}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ignoredPatternsStore=void 0;Object.defineProperty(exports,"isUrlIgnored",{enumerable:true,get:function(){return _ignoredPatternsCore.isUrlIgnored}});Object.defineProperty(exports,"urlMatchesIgnoredPattern",{enumerable:true,get:function(){return _ignoredPatternsCore.urlMatchesIgnoredPattern}});exports.useIgnoredPatterns=useIgnoredPatterns;var _react=require("react");var _persistentStorage=require("../utils/persistentStorage");var _devToolsStorageKeys=require("../storage/devToolsStorageKeys.js");var _ignoredPatternsCore=require("./ignoredPatternsCore.js");const DEFAULT_PATTERNS=_ignoredPatternsCore.DEFAULT_IGNORED_PATTERNS;function migratePatterns(r){if(!Array.isArray(r))return[];const t=[];for(const e of r){if(typeof e==="string"&&e.trim()){t.push({value:e,mode:"contains"})}else if(e&&typeof e==="object"&&typeof e.value==="string"){const s=e;t.push({value:s.value,mode:s.mode==="exact"?"exact":"contains"})}}return t}function ensureDefaults(r){const t=[...r];for(const e of DEFAULT_PATTERNS){if(!t.some(s=>s.value===e.value)){t.push({...e})}}return t}class IgnoredPatternsStore{patterns=ensureDefaults(DEFAULT_PATTERNS.map(t=>({...t})));listeners=new Set;loaded=false;loadPromise=null;dirty=false;getPatterns(){return this.patterns}subscribe(t){this.listeners.add(t);void this.ensureLoaded();return()=>{this.listeners.delete(t)}}emit(){this.listeners.forEach(t=>t())}ensureLoaded(){if(this.loaded)return Promise.resolve();if(this.loadPromise)return this.loadPromise;this.loadPromise=(async()=>{try{const t=await _persistentStorage.persistentStorage.getItem(_devToolsStorageKeys.devToolsStorageKeys.network.ignoredDomains());if(t&&!this.dirty){const e=ensureDefaults(migratePatterns(JSON.parse(t)));this.patterns=e}}catch{}finally{this.loaded=true;this.emit()}})();return this.loadPromise}persist(){_persistentStorage.persistentStorage.setItem(_devToolsStorageKeys.devToolsStorageKeys.network.ignoredDomains(),JSON.stringify(this.patterns)).catch(()=>{})}commit(t){this.dirty=true;this.patterns=t;this.emit();this.persist()}add(t){const e=t.value.trim();if(!e)return;if(this.patterns.some(s=>s.value===e))return;this.commit([...this.patterns,{value:e,mode:t.mode}])}remove(t){if(!this.patterns.some(e=>e.value===t))return;this.commit(this.patterns.filter(e=>e.value!==t))}toggle(t){const e=t.trim();if(!e)return;this.commit(this.patterns.some(s=>s.value===e)?this.patterns.filter(s=>s.value!==e):[...this.patterns,{value:e,mode:"contains"}])}toggleMode(t){if(!this.patterns.some(e=>e.value===t))return;this.commit(this.patterns.map(e=>e.value===t?{...e,mode:e.mode==="contains"?"exact":"contains"}:e))}}const ignoredPatternsStore=exports.ignoredPatternsStore=new IgnoredPatternsStore;const addPattern=r=>ignoredPatternsStore.add(r);const removePattern=r=>ignoredPatternsStore.remove(r);const togglePattern=r=>ignoredPatternsStore.toggle(r);const togglePatternMode=r=>ignoredPatternsStore.toggleMode(r);function useIgnoredPatterns(){const[r,t]=(0,_react.useState)(()=>ignoredPatternsStore.getPatterns());(0,_react.useEffect)(()=>{return ignoredPatternsStore.subscribe(()=>{t(ignoredPatternsStore.getPatterns())})},[]);const e=(0,_react.useMemo)(()=>new Set(r.map(s=>s.value)),[r]);return{patterns:r,values:e,add:addPattern,remove:removePattern,toggle:togglePattern,toggleMode:togglePatternMode}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ignoredPatternsStore=void 0;Object.defineProperty(exports,"isUrlIgnored",{enumerable:true,get:function(){return _ignoredPatternsCore.isUrlIgnored}});Object.defineProperty(exports,"urlMatchesIgnoredPattern",{enumerable:true,get:function(){return _ignoredPatternsCore.urlMatchesIgnoredPattern}});exports.useIgnoredPatterns=useIgnoredPatterns;var _react=require("react");var _persistentStorage=require("../utils/persistentStorage");var _devToolsStorageKeys=require("../storage/devToolsStorageKeys.js");var _ignoredPatternsCore=require("./ignoredPatternsCore.js");const DEFAULT_PATTERNS=_ignoredPatternsCore.DEFAULT_IGNORED_PATTERNS;function migratePatterns(r){if(!Array.isArray(r))return[];const e=[];for(const t of r){if(typeof t==="string"&&t.trim()){e.push({value:t,mode:"contains"})}else if(t&&typeof t==="object"&&typeof t.value==="string"){const s=t;e.push({value:s.value,mode:s.mode==="exact"?"exact":"contains"})}}return e}function ensureDefaults(r){const e=[...r];for(const t of DEFAULT_PATTERNS){if(!e.some(s=>s.value===t.value)){e.push({...t})}}return e}class IgnoredPatternsStore{patterns=ensureDefaults(DEFAULT_PATTERNS.map(e=>({...e})));teamPatterns=[];merged=this.patterns;listeners=new Set;loaded=false;loadPromise=null;dirty=false;getPatterns(){return this.merged}isTeamOnly(e){return!this.patterns.some(t=>t.value===e)&&this.teamPatterns.some(t=>t.value===e)}setTeamPatterns(e){this.teamPatterns=migratePatterns(e);this.remerge();this.emit()}reload(){this.loaded=false;this.loadPromise=null;this.dirty=false;return this.ensureLoaded()}remerge(){const e=this.teamPatterns.filter(t=>!this.patterns.some(s=>s.value===t.value));this.merged=e.length>0?[...this.patterns,...e]:this.patterns}subscribe(e){this.listeners.add(e);void this.ensureLoaded();return()=>{this.listeners.delete(e)}}emit(){this.listeners.forEach(e=>e())}ensureLoaded(){if(this.loaded)return Promise.resolve();if(this.loadPromise)return this.loadPromise;this.loadPromise=(async()=>{try{const e=await _persistentStorage.persistentStorage.getItem(_devToolsStorageKeys.devToolsStorageKeys.network.ignoredDomains());if(e&&!this.dirty){const t=ensureDefaults(migratePatterns(JSON.parse(e)));this.patterns=t;this.remerge()}}catch{}finally{this.loaded=true;this.emit()}})();return this.loadPromise}persist(){_persistentStorage.persistentStorage.setItem(_devToolsStorageKeys.devToolsStorageKeys.network.ignoredDomains(),JSON.stringify(this.patterns)).catch(()=>{})}commit(e){this.dirty=true;this.patterns=e;this.remerge();this.emit();this.persist()}add(e){const t=e.value.trim();if(!t)return;if(this.patterns.some(s=>s.value===t))return;this.commit([...this.patterns,{value:t,mode:e.mode}])}remove(e){if(!this.patterns.some(t=>t.value===e))return;this.commit(this.patterns.filter(t=>t.value!==e))}toggle(e){const t=e.trim();if(!t)return;this.commit(this.patterns.some(s=>s.value===t)?this.patterns.filter(s=>s.value!==t):[...this.patterns,{value:t,mode:"contains"}])}toggleMode(e){if(!this.patterns.some(t=>t.value===e))return;this.commit(this.patterns.map(t=>t.value===e?{...t,mode:t.mode==="contains"?"exact":"contains"}:t))}}const ignoredPatternsStore=exports.ignoredPatternsStore=new IgnoredPatternsStore;const addPattern=r=>ignoredPatternsStore.add(r);const removePattern=r=>ignoredPatternsStore.remove(r);const togglePattern=r=>ignoredPatternsStore.toggle(r);const togglePatternMode=r=>ignoredPatternsStore.toggleMode(r);function useIgnoredPatterns(){const[r,e]=(0,_react.useState)(()=>ignoredPatternsStore.getPatterns());(0,_react.useEffect)(()=>{return ignoredPatternsStore.subscribe(()=>{e(ignoredPatternsStore.getPatterns())})},[]);const t=(0,_react.useMemo)(()=>new Set(r.map(s=>s.value)),[r]);return{patterns:r,values:t,add:addPattern,remove:removePattern,toggle:togglePattern,toggleMode:togglePatternMode}}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.TEAM_SETTING_KEYS=exports.SettingsSync=exports.SYNC_META_KEY=exports.PERSONAL_SETTING_KEYS=void 0;exports.startSettingsSync=startSettingsSync;var _persistentStorage=require("../utils/persistentStorage");var _storageWrites=require("../utils/storageWrites.js");var _licenseModule=require("../license/licenseModule.js");var _ignoredPatternsStore=require("../stores/ignoredPatternsStore");const PERSONAL_SETTING_KEYS=exports.PERSONAL_SETTING_KEYS=new Set(["@react_buoy_settings_theme","@react_buoy_settings_preferences","@react_buoy_settings_global","@react_buoy_dev_tools_settings","@react_buoy_settings_tooltip_shown","@react_buoy_modal_hint_acknowledged","@react_buoy_clipboard_hint_acknowledged","@react_buoy_network_filters","@react_buoy_network_preferences","@react_buoy_network_copy_options","@react_buoy_storage_filters","@react_buoy_storage_event_filters","@react_buoy_storage_key_filters","@react_buoy_storage_pinned_keys","@react_buoy_storage_preferences","@react_buoy_storage_diff_viewer_mode","@react_buoy_rq_filters","@react_buoy_rq_preferences","@react_buoy_route_events_event_filters","@react_buoy_route_events_detail_view","@react_buoy_route_events_diff_viewer_mode","@react_buoy_sentry_filters","@react_buoy_sentry_preferences","@react_buoy_highlight_updates_filters","@react_buoy_highlight_updates_settings","@react_buoy_highlight_updates_copy_settings","@react_buoy_events_enabled_sources","@react_buoy_events_copy_settings","@react_buoy_time_machine_diff_viewer_mode","@react_buoy_network_ignored_domains","@react_buoy_network_ignored_urls","@react_buoy_rq_ignored_patterns","@react_buoy_rq_included_patterns"]);const TEAM_SETTING_KEYS=exports.TEAM_SETTING_KEYS=new Set(["@react_buoy_network_ignored_domains","@react_buoy_network_ignored_urls","@react_buoy_rq_ignored_patterns","@react_buoy_rq_included_patterns"]);const SYNC_META_KEY=exports.SYNC_META_KEY="@react_buoy_settings_sync_meta";const IGNORED_DOMAINS="@react_buoy_network_ignored_domains";const PUSH_DELAY_MS=2e3;const RETRY_MS=3e4;const PULL_EVERY_MS=15*6e4;const CALL_TIMEOUT_MS=15e3;function defaultDeps(){return{storage:_persistentStorage.persistentStorage,credential:_licenseModule.getSyncCredential,fetch:(r,e)=>fetch(r,e),subscribeWrites:_storageWrites.subscribeStorageWrites,setTimer:(r,e)=>setTimeout(r,e),clearTimer:r=>clearTimeout(r),onTeam:r=>_ignoredPatternsStore.ignoredPatternsStore.setTeamPatterns(parseList(r[IGNORED_DOMAINS])),onApplied:r=>{if(r.includes(IGNORED_DOMAINS))void _ignoredPatternsStore.ignoredPatternsStore.reload()}}}function parseList(r){if(!r)return[];try{return JSON.parse(r)}catch{return[]}}class SettingsSync{started=false;pending=new Map;applying=new Set;pushTimer=null;pullTimer=null;unsubscribe=null;refusedToken=null;constructor(e=defaultDeps()){this.deps=e}start(){if(this.started)return;this.started=true;this.unsubscribe=this.deps.subscribeWrites((e,s)=>this.onWrite(e,s));void this.pull()}stop(){this.started=false;this.unsubscribe?.();this.unsubscribe=null;if(this.pushTimer!==null)this.deps.clearTimer(this.pushTimer);if(this.pullTimer!==null)this.deps.clearTimer(this.pullTimer);this.pushTimer=this.pullTimer=null}credential(){const e=this.deps.credential();return e&&e.token!==this.refusedToken?e:null}call(e,s,n){return new Promise((u,a)=>{const i=this.deps.setTimer(()=>a(new Error("timeout")),CALL_TIMEOUT_MS);this.deps.fetch(`${s.origin.replace(/\/$/,"")}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({access_token:s.token,...n})}).then(_=>{this.deps.clearTimer(i);u(_)},_=>{this.deps.clearTimer(i);a(_)})})}schedulePull(e){if(!this.started)return;if(this.pullTimer!==null)this.deps.clearTimer(this.pullTimer);this.pullTimer=this.deps.setTimer(()=>{this.pullTimer=null;void this.pull()},e)}async readMeta(){try{const e=await this.deps.storage.getItem(SYNC_META_KEY);const s=e?JSON.parse(e):{};return s&&typeof s==="object"?s:{}}catch{return{}}}async writeMeta(e){await this.deps.storage.setItem(SYNC_META_KEY,JSON.stringify(e)).catch(()=>{})}async pull(){const e=this.credential();if(!e)return this.schedulePull(RETRY_MS);let s;let n;try{const t=await this.call("/api/settings/pull",e,{});s=t.status;n=await t.json().catch(()=>null)}catch{return this.schedulePull(RETRY_MS)}if(s===401||s===403){this.refusedToken=e.token;return this.schedulePull(RETRY_MS)}if(s!==200||!n)return this.schedulePull(RETRY_MS);const u=n.personal??{};const a=await this.readMeta();const i=[];for(const[t,o]of Object.entries(u)){if(!PERSONAL_SETTING_KEYS.has(t)||this.pending.has(t))continue;if(typeof o?.value!=="string"||!(o.updatedAt>(a[t]??0)))continue;this.applying.add(t);try{await this.deps.storage.setItem(t,o.value)}finally{this.applying.delete(t)}a[t]=o.updatedAt;i.push(t)}for(const t of PERSONAL_SETTING_KEYS){if(t in u||t in a||this.pending.has(t))continue;const o=await this.deps.storage.getItem(t).catch(()=>null);if(o!==null)this.pending.set(t,o)}await this.writeMeta(a);if(i.length>0)this.deps.onApplied(i);const _={};for(const[t,o]of Object.entries(n.team??{})){if(TEAM_SETTING_KEYS.has(t)&&typeof o?.value==="string")_[t]=o.value}this.deps.onTeam(_);if(this.pending.size>0)this.schedulePush(0);this.schedulePull(PULL_EVERY_MS)}onWrite(e,s){if(!this.started||this.applying.has(e)||!PERSONAL_SETTING_KEYS.has(e))return;this.pending.set(e,s);this.schedulePush(PUSH_DELAY_MS)}schedulePush(e){if(this.pushTimer!==null)this.deps.clearTimer(this.pushTimer);this.pushTimer=this.deps.setTimer(()=>{this.pushTimer=null;void this.push()},e)}async push(){if(this.pending.size===0)return;const e=this.credential();if(!e)return this.schedulePush(RETRY_MS);const s=new Map(this.pending);let n;let u;try{const i=await this.call("/api/settings/push",e,{changes:Object.fromEntries(s)});n=i.status;u=await i.json().catch(()=>null)}catch{return this.schedulePush(RETRY_MS)}if(n===401||n===403){this.refusedToken=e.token;return this.schedulePush(RETRY_MS)}if(n!==200||!u||typeof u.updatedAt!=="number")return this.schedulePush(RETRY_MS);const a=await this.readMeta();for(const[i,_]of s){if(this.pending.get(i)===_)this.pending.delete(i);a[i]=u.updatedAt}await this.writeMeta(a);if(this.pending.size>0)this.schedulePush(PUSH_DELAY_MS)}}exports.SettingsSync=SettingsSync;let shared=null;function startSettingsSync(){shared??=new SettingsSync;shared.start()}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getStorageBackendType=getStorageBackendType;exports.isUsingPersistentStorage=isUsingPersistentStorage;exports.persistentStorage=void 0;exports.resetStorageInit=resetStorageInit;var _devToolsStorageKeys=require("../storage/devToolsStorageKeys.js");let storageBackend=null;let initPromise=null;let initWarningShown=false;let FileSystem=null;let AsyncStorage=null;const memoryStore=new Map;function isWebEnvironment(){return typeof window!=="undefined"&&window?.localStorage!==void 0}const STORAGE_DIR_NAME="react-buoy";const HEALTH_CHECK_FILE_NAME=".health-check";function getStorageDir(){if(!FileSystem?.documentDirectory)return null;return`${FileSystem.documentDirectory}${STORAGE_DIR_NAME}/`}function encodeKeyForFs(t){return encodeURIComponent(t.replace(/~/g,"~0").replace(/\//g,"~1"))}function decodeKeyFromFs(t){return decodeURIComponent(t).replace(/~1/g,"/").replace(/~0/g,"~")}function getFilePath(t){const e=getStorageDir();if(!e)return null;return`${e}${encodeKeyForFs(t)}.json`}function loadFileSystem(){if(FileSystem)return FileSystem;try{const t=require("expo-file-system/legacy");FileSystem=t?.default||t;if(FileSystem&&FileSystem.documentDirectory){return FileSystem}FileSystem=null}catch{}try{const t=require("expo-file-system");FileSystem=t?.default||t;if(FileSystem&&FileSystem.documentDirectory){return FileSystem}FileSystem=null}catch{}return null}function loadAsyncStorage(){if(AsyncStorage)return AsyncStorage;try{const t=require("@react-native-async-storage/async-storage");AsyncStorage=t?.default||t;if(AsyncStorage&&typeof AsyncStorage.getItem==="function"){return AsyncStorage}AsyncStorage=null}catch{}return null}async function testFileSystem(){const t=loadFileSystem();if(!t||!t.documentDirectory){return false}const e=getStorageDir();if(!e)return false;const r=`${e}${HEALTH_CHECK_FILE_NAME}`;try{const n=await t.getInfoAsync(e);if(!n.exists){await t.makeDirectoryAsync(e,{intermediates:true})}const s=`health-check-${Date.now()}`;await t.writeAsStringAsync(r,s);const a=await t.readAsStringAsync(r);if(a!==s){return false}await t.deleteAsync(r,{idempotent:true});return true}catch(n){console.warn("[React Buoy] FileSystem health check failed:",n);return false}}async function migrateFromAsyncStorage(){const t=loadAsyncStorage();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(a=>a.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base));if(r.length===0){return}const n=await t.multiGet(r);let s=0;for(const[a,o]of n){if(o!==null){await fileSystemStorage.setItem(a,o);s++}}void s}catch(e){console.warn("[React Buoy] Migration failed:",e)}}const fileSystemStorage={async getItem(t){const e=loadFileSystem();if(!e)return null;const r=getFilePath(t);if(!r)return null;try{const n=await e.getInfoAsync(r);if(!n.exists){return null}const s=await e.readAsStringAsync(r);return s}catch{return null}},async setItem(t,e){const r=loadFileSystem();if(!r)return;const n=getStorageDir();const s=getFilePath(t);if(!n||!s)return;try{const a=await r.getInfoAsync(n);if(!a.exists){await r.makeDirectoryAsync(n,{intermediates:true})}await r.writeAsStringAsync(s,e)}catch(a){console.warn("[React Buoy] FileSystem write failed:",a)}},async removeItem(t){const e=loadFileSystem();if(!e)return;const r=getFilePath(t);if(!r)return;try{await e.deleteAsync(r,{idempotent:true})}catch{}},async getAllKeys(){const t=loadFileSystem();if(!t)return[];const e=getStorageDir();if(!e)return[];try{const r=await t.getInfoAsync(e);if(!r.exists)return[];const n=await t.readDirectoryAsync(e);return n.filter(s=>s.endsWith(".json")).map(s=>decodeKeyFromFs(s.replace(".json","")))}catch{return[]}},async multiGet(t){const e=[];for(const r of t){const n=await this.getItem(r);e.push([r,n])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){const t=loadFileSystem();if(!t)return;const e=getStorageDir();if(!e)return;try{await t.deleteAsync(e,{idempotent:true})}catch{}}};const asyncStorageAdapter={async getItem(t){const e=loadAsyncStorage();if(!e)return memoryStore.get(t)??null;try{return await e.getItem(t)}catch{return memoryStore.get(t)??null}},async setItem(t,e){const r=loadAsyncStorage();if(!r){memoryStore.set(t,e);return}try{await r.setItem(t,e)}catch{memoryStore.set(t,e)}},async removeItem(t){const e=loadAsyncStorage();memoryStore.delete(t);if(!e)return;try{await e.removeItem(t)}catch{}},async getAllKeys(){const t=loadAsyncStorage();if(!t)return Array.from(memoryStore.keys());try{const e=await t.getAllKeys();return e.filter(r=>r.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base))}catch{return Array.from(memoryStore.keys())}},async multiGet(t){const e=loadAsyncStorage();if(!e){return t.map(r=>[r,memoryStore.get(r)??null])}try{const r=await e.multiGet(t);return r}catch{return t.map(r=>[r,memoryStore.get(r)??null])}},async multiRemove(t){t.forEach(r=>memoryStore.delete(r));const e=loadAsyncStorage();if(!e)return;try{await e.multiRemove(t)}catch{}},async clear(){memoryStore.clear();const t=loadAsyncStorage();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(n=>n.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base));if(r.length>0){await t.multiRemove(r)}}catch{}}};const localStorageAdapter={async getItem(t){if(!isWebEnvironment())return memoryStore.get(t)??null;try{return window.localStorage.getItem(t)}catch{return memoryStore.get(t)??null}},async setItem(t,e){if(!isWebEnvironment()){memoryStore.set(t,e);return}try{window.localStorage.setItem(t,e)}catch{memoryStore.set(t,e)}},async removeItem(t){memoryStore.delete(t);if(!isWebEnvironment())return;try{window.localStorage.removeItem(t)}catch{}},async getAllKeys(){if(!isWebEnvironment())return Array.from(memoryStore.keys());try{const t=[];const e=window.localStorage;for(let r=0;r<e.length;r++){const n=e.key(r);if(n&&n.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base)){t.push(n)}}return t}catch{return Array.from(memoryStore.keys())}},async multiGet(t){const e=[];for(const r of t){const n=await this.getItem(r);e.push([r,n])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){memoryStore.clear();if(!isWebEnvironment())return;try{const t=await this.getAllKeys();const e=window.localStorage;for(const r of t){e.removeItem(r)}}catch{}}};const memoryStorage={async getItem(t){return memoryStore.get(t)??null},async setItem(t,e){memoryStore.set(t,e)},async removeItem(t){memoryStore.delete(t)},async getAllKeys(){return Array.from(memoryStore.keys())},async multiGet(t){return t.map(e=>[e,memoryStore.get(e)??null])},async multiRemove(t){t.forEach(e=>memoryStore.delete(e))},async clear(){memoryStore.clear()}};async function initStorage(){if(storageBackend!==null)return;const t=await testFileSystem();if(t){const e=await fileSystemStorage.getAllKeys();if(e.length===0){await migrateFromAsyncStorage()}storageBackend="filesystem"}else if(isWebEnvironment()){storageBackend="localstorage"}else{const e=loadAsyncStorage();if(e){storageBackend="asyncstorage";if(!initWarningShown){initWarningShown=true;console.warn("[React Buoy] Using AsyncStorage fallback. Settings may be lost if AsyncStorage is cleared. Install expo-file-system for persistent storage.")}}else{storageBackend="memory";if(!initWarningShown){initWarningShown=true;console.warn("[React Buoy] Using in-memory storage. Settings will be lost on app restart.")}}}}function ensureInit(){if(!initPromise){initPromise=initStorage()}return initPromise}function getStorage(){switch(storageBackend){case"filesystem":return fileSystemStorage;case"asyncstorage":return asyncStorageAdapter;case"localstorage":return localStorageAdapter;case"memory":default:return memoryStorage}}const persistentStorage=exports.persistentStorage={async getItem(t){await ensureInit();return getStorage().getItem(t)},async setItem(t,e){await ensureInit();return getStorage().setItem(t,e)},async removeItem(t){await ensureInit();return getStorage().removeItem(t)},async getAllKeys(){await ensureInit();return getStorage().getAllKeys()},async multiGet(t){await ensureInit();return getStorage().multiGet(t)},async multiRemove(t){await ensureInit();return getStorage().multiRemove(t)},async clear(){await ensureInit();return getStorage().clear()}};async function isUsingPersistentStorage(){await ensureInit();return storageBackend==="filesystem"}async function getStorageBackendType(){await ensureInit();return storageBackend??"memory"}function resetStorageInit(){storageBackend=null;initPromise=null;initWarningShown=false}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getStorageBackendType=getStorageBackendType;exports.isUsingPersistentStorage=isUsingPersistentStorage;exports.persistentStorage=void 0;exports.resetStorageInit=resetStorageInit;var _devToolsStorageKeys=require("../storage/devToolsStorageKeys.js");var _storageWrites=require("./storageWrites.js");let storageBackend=null;let initPromise=null;let initWarningShown=false;let FileSystem=null;let AsyncStorage=null;const memoryStore=new Map;function isWebEnvironment(){return typeof window!=="undefined"&&window?.localStorage!==void 0}const STORAGE_DIR_NAME="react-buoy";const HEALTH_CHECK_FILE_NAME=".health-check";function getStorageDir(){if(!FileSystem?.documentDirectory)return null;return`${FileSystem.documentDirectory}${STORAGE_DIR_NAME}/`}function encodeKeyForFs(t){return encodeURIComponent(t.replace(/~/g,"~0").replace(/\//g,"~1"))}function decodeKeyFromFs(t){return decodeURIComponent(t).replace(/~1/g,"/").replace(/~0/g,"~")}function getFilePath(t){const e=getStorageDir();if(!e)return null;return`${e}${encodeKeyForFs(t)}.json`}function loadFileSystem(){if(FileSystem)return FileSystem;try{const t=require("expo-file-system/legacy");FileSystem=t?.default||t;if(FileSystem&&FileSystem.documentDirectory){return FileSystem}FileSystem=null}catch{}try{const t=require("expo-file-system");FileSystem=t?.default||t;if(FileSystem&&FileSystem.documentDirectory){return FileSystem}FileSystem=null}catch{}return null}function loadAsyncStorage(){if(AsyncStorage)return AsyncStorage;try{const t=require("@react-native-async-storage/async-storage");AsyncStorage=t?.default||t;if(AsyncStorage&&typeof AsyncStorage.getItem==="function"){return AsyncStorage}AsyncStorage=null}catch{}return null}async function testFileSystem(){const t=loadFileSystem();if(!t||!t.documentDirectory){return false}const e=getStorageDir();if(!e)return false;const r=`${e}${HEALTH_CHECK_FILE_NAME}`;try{const n=await t.getInfoAsync(e);if(!n.exists){await t.makeDirectoryAsync(e,{intermediates:true})}const s=`health-check-${Date.now()}`;await t.writeAsStringAsync(r,s);const a=await t.readAsStringAsync(r);if(a!==s){return false}await t.deleteAsync(r,{idempotent:true});return true}catch(n){console.warn("[React Buoy] FileSystem health check failed:",n);return false}}async function migrateFromAsyncStorage(){const t=loadAsyncStorage();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(a=>a.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base));if(r.length===0){return}const n=await t.multiGet(r);let s=0;for(const[a,o]of n){if(o!==null){await fileSystemStorage.setItem(a,o);s++}}void s}catch(e){console.warn("[React Buoy] Migration failed:",e)}}const fileSystemStorage={async getItem(t){const e=loadFileSystem();if(!e)return null;const r=getFilePath(t);if(!r)return null;try{const n=await e.getInfoAsync(r);if(!n.exists){return null}const s=await e.readAsStringAsync(r);return s}catch{return null}},async setItem(t,e){const r=loadFileSystem();if(!r)return;const n=getStorageDir();const s=getFilePath(t);if(!n||!s)return;try{const a=await r.getInfoAsync(n);if(!a.exists){await r.makeDirectoryAsync(n,{intermediates:true})}await r.writeAsStringAsync(s,e)}catch(a){console.warn("[React Buoy] FileSystem write failed:",a)}},async removeItem(t){const e=loadFileSystem();if(!e)return;const r=getFilePath(t);if(!r)return;try{await e.deleteAsync(r,{idempotent:true})}catch{}},async getAllKeys(){const t=loadFileSystem();if(!t)return[];const e=getStorageDir();if(!e)return[];try{const r=await t.getInfoAsync(e);if(!r.exists)return[];const n=await t.readDirectoryAsync(e);return n.filter(s=>s.endsWith(".json")).map(s=>decodeKeyFromFs(s.replace(".json","")))}catch{return[]}},async multiGet(t){const e=[];for(const r of t){const n=await this.getItem(r);e.push([r,n])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){const t=loadFileSystem();if(!t)return;const e=getStorageDir();if(!e)return;try{await t.deleteAsync(e,{idempotent:true})}catch{}}};const asyncStorageAdapter={async getItem(t){const e=loadAsyncStorage();if(!e)return memoryStore.get(t)??null;try{return await e.getItem(t)}catch{return memoryStore.get(t)??null}},async setItem(t,e){const r=loadAsyncStorage();if(!r){memoryStore.set(t,e);return}try{await r.setItem(t,e)}catch{memoryStore.set(t,e)}},async removeItem(t){const e=loadAsyncStorage();memoryStore.delete(t);if(!e)return;try{await e.removeItem(t)}catch{}},async getAllKeys(){const t=loadAsyncStorage();if(!t)return Array.from(memoryStore.keys());try{const e=await t.getAllKeys();return e.filter(r=>r.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base))}catch{return Array.from(memoryStore.keys())}},async multiGet(t){const e=loadAsyncStorage();if(!e){return t.map(r=>[r,memoryStore.get(r)??null])}try{const r=await e.multiGet(t);return r}catch{return t.map(r=>[r,memoryStore.get(r)??null])}},async multiRemove(t){t.forEach(r=>memoryStore.delete(r));const e=loadAsyncStorage();if(!e)return;try{await e.multiRemove(t)}catch{}},async clear(){memoryStore.clear();const t=loadAsyncStorage();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(n=>n.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base));if(r.length>0){await t.multiRemove(r)}}catch{}}};const localStorageAdapter={async getItem(t){if(!isWebEnvironment())return memoryStore.get(t)??null;try{return window.localStorage.getItem(t)}catch{return memoryStore.get(t)??null}},async setItem(t,e){if(!isWebEnvironment()){memoryStore.set(t,e);return}try{window.localStorage.setItem(t,e)}catch{memoryStore.set(t,e)}},async removeItem(t){memoryStore.delete(t);if(!isWebEnvironment())return;try{window.localStorage.removeItem(t)}catch{}},async getAllKeys(){if(!isWebEnvironment())return Array.from(memoryStore.keys());try{const t=[];const e=window.localStorage;for(let r=0;r<e.length;r++){const n=e.key(r);if(n&&n.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base)){t.push(n)}}return t}catch{return Array.from(memoryStore.keys())}},async multiGet(t){const e=[];for(const r of t){const n=await this.getItem(r);e.push([r,n])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){memoryStore.clear();if(!isWebEnvironment())return;try{const t=await this.getAllKeys();const e=window.localStorage;for(const r of t){e.removeItem(r)}}catch{}}};const memoryStorage={async getItem(t){return memoryStore.get(t)??null},async setItem(t,e){memoryStore.set(t,e)},async removeItem(t){memoryStore.delete(t)},async getAllKeys(){return Array.from(memoryStore.keys())},async multiGet(t){return t.map(e=>[e,memoryStore.get(e)??null])},async multiRemove(t){t.forEach(e=>memoryStore.delete(e))},async clear(){memoryStore.clear()}};async function initStorage(){if(storageBackend!==null)return;const t=await testFileSystem();if(t){const e=await fileSystemStorage.getAllKeys();if(e.length===0){await migrateFromAsyncStorage()}storageBackend="filesystem"}else if(isWebEnvironment()){storageBackend="localstorage"}else{const e=loadAsyncStorage();if(e){storageBackend="asyncstorage";if(!initWarningShown){initWarningShown=true;console.warn("[React Buoy] Using AsyncStorage fallback. Settings may be lost if AsyncStorage is cleared. Install expo-file-system for persistent storage.")}}else{storageBackend="memory";if(!initWarningShown){initWarningShown=true;console.warn("[React Buoy] Using in-memory storage. Settings will be lost on app restart.")}}}}function ensureInit(){if(!initPromise){initPromise=initStorage()}return initPromise}function getStorage(){switch(storageBackend){case"filesystem":return fileSystemStorage;case"asyncstorage":return asyncStorageAdapter;case"localstorage":return localStorageAdapter;case"memory":default:return memoryStorage}}const persistentStorage=exports.persistentStorage={async getItem(t){await ensureInit();return getStorage().getItem(t)},async setItem(t,e){await ensureInit();await getStorage().setItem(t,e);(0,_storageWrites.notifyStorageWrite)(t,e)},async removeItem(t){await ensureInit();await getStorage().removeItem(t);(0,_storageWrites.notifyStorageWrite)(t,null)},async getAllKeys(){await ensureInit();return getStorage().getAllKeys()},async multiGet(t){await ensureInit();return getStorage().multiGet(t)},async multiRemove(t){await ensureInit();return getStorage().multiRemove(t)},async clear(){await ensureInit();return getStorage().clear()}};async function isUsingPersistentStorage(){await ensureInit();return storageBackend==="filesystem"}async function getStorageBackendType(){await ensureInit();return storageBackend??"memory"}function resetStorageInit(){storageBackend=null;initPromise=null;initWarningShown=false}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getStorageBackendType=getStorageBackendType;exports.isUsingPersistentStorage=isUsingPersistentStorage;exports.persistentStorage=void 0;var _devToolsStorageKeys=require("../storage/devToolsStorageKeys.js");const pending=new Map;function storage(){try{return typeof window==="undefined"?null:window.localStorage}catch{return null}}const persistentStorage=exports.persistentStorage={async getItem(e){if(pending.has(e))return pending.get(e)??null;try{return storage()?.getItem(e)??null}catch{return null}},async setItem(e,t){pending.set(e,t);try{const s=storage();if(s){s.setItem(e,t);pending.delete(e)}}catch{}},async removeItem(e){pending.set(e,null);try{const t=storage();if(t){t.removeItem(e);pending.delete(e)}}catch{}},async getAllKeys(){const e=new Set;try{const t=storage();if(t)for(let s=0;s<t.length;s++){const r=t.key(s);if(r?.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base))e.add(r)}}catch{}for(const[t,s]of pending){if(!t.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base))continue;if(s===null)e.delete(t);else e.add(t)}return[...e]},async multiGet(e){return Promise.all(e.map(async t=>[t,await persistentStorage.getItem(t)]))},async multiRemove(e){await Promise.all(e.map(t=>persistentStorage.removeItem(t)))},async clear(){await persistentStorage.multiRemove(await persistentStorage.getAllKeys())}};async function isUsingPersistentStorage(){return storage()!==null}async function getStorageBackendType(){return storage()?"localstorage":"memory"}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getStorageBackendType=getStorageBackendType;exports.isUsingPersistentStorage=isUsingPersistentStorage;exports.persistentStorage=void 0;var _devToolsStorageKeys=require("../storage/devToolsStorageKeys.js");var _storageWrites=require("./storageWrites.js");const pending=new Map;function storage(){try{return typeof window==="undefined"?null:window.localStorage}catch{return null}}const persistentStorage=exports.persistentStorage={async getItem(e){if(pending.has(e))return pending.get(e)??null;try{return storage()?.getItem(e)??null}catch{return null}},async setItem(e,t){pending.set(e,t);try{const r=storage();if(r){r.setItem(e,t);pending.delete(e)}}catch{}(0,_storageWrites.notifyStorageWrite)(e,t)},async removeItem(e){pending.set(e,null);try{const t=storage();if(t){t.removeItem(e);pending.delete(e)}}catch{}(0,_storageWrites.notifyStorageWrite)(e,null)},async getAllKeys(){const e=new Set;try{const t=storage();if(t)for(let r=0;r<t.length;r++){const s=t.key(r);if(s?.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base))e.add(s)}}catch{}for(const[t,r]of pending){if(!t.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base))continue;if(r===null)e.delete(t);else e.add(t)}return[...e]},async multiGet(e){return Promise.all(e.map(async t=>[t,await persistentStorage.getItem(t)]))},async multiRemove(e){await Promise.all(e.map(t=>persistentStorage.removeItem(t)))},async clear(){await persistentStorage.multiRemove(await persistentStorage.getAllKeys())}};async function isUsingPersistentStorage(){return storage()!==null}async function getStorageBackendType(){return storage()?"localstorage":"memory"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.notifyStorageWrite=notifyStorageWrite;exports.subscribeStorageWrites=subscribeStorageWrites;const listeners=new Set;function subscribeStorageWrites(e){listeners.add(e);return()=>listeners.delete(e)}function notifyStorageWrite(e,t){for(const r of[...listeners]){try{r(e,t)}catch{}}}
@@ -1 +1 @@
1
- "use strict";export*from"./ui/index.js";export*from"./stores/index.js";export*from"./sync/keyedArrays.js";export*from"./sync/valueShape.js";export*from"./sync/valuePath.js";export*from"./sync/typedEdit.js";export*from"./sync/wireBudget.js";export*from"./sync/wireForm.js";export*from"./sync/toolSyncAdapter.js";export*from"./tools/defineTool.js";export*from"./sync/toolActionRegistry.js";export*from"./sync/toolUiBridge.js";export*from"./sync/toolScreenHeader.js";export{absoluteFill,displayValue,parseDisplayValue,getSafeAreaInsets,persistentStorage,isUsingPersistentStorage,getStorageBackendType,safeStringify,getValueType,isPrimitive,isJsonSerializable,isValidJson,getConstructorName,isEmpty,getValueSize,parseValue,formatValue,getTypeColor,truncateText,flattenObject,formatPath,loadOptionalModule,getCachedOptionalModule,setRenderCaptureProvider,getRenderCaptureProvider,registerStateSnapshotProvider,getStateSnapshotProviders,getStateSnapshotProvider,subscribeToStateSnapshotProviders,superJsonSerialize,superJsonDeserialize,realNow,getRealAppState,subscribeRealAppState,BUOY_SYNTHETIC_MARK,countBuoyListener,reloadApp,scheduleReloadApp,resolveReloadStrategy,REMOTE_RELOAD_DELAY_MS,getDevServerOrigin,Subscribable,subscriberCountNotifier,subscribeToSubscriberCountChanges,notifySubscriberCountChange,useSafeRouter,useSafePathname,useSafeSegments,useSafeGlobalSearchParams,getSafeRouter,getSafeCurrentPathname,getSafeCurrentRoute,isExpoRouterAvailable}from"./utils/index.js";export*from"./utils/toolModules.js";export{registerBrowserRouter,browserRouter,subscribeBrowserNavigation}from"./utils/browserNavigation.js";export{PREVIEW_ITEM_RENDER_BYTE_LIMIT,createRestoreScope,emptyRestoreResult,failedRestore,skippedRestore,classifyPreviewItem,wontApply,unionKeys}from"./utils/snapshotProviderKit.js";export{entityColor,formatValuePreview,shallowDiffSummary}from"./utils/stateTools.js";export*from"./utils/formatting/index.js";export*from"./utils/time/index.js";export{isPlainObject as isPlainObjectUtil}from"./utils/typeHelpers.js";export*from"./icons/index.js";export*from"./clipboard/index.js";export*from"./logger/index.js";export*from"./settings/index.js";export*from"./storage/index.js";export{useSafeAreaInsets,useFilterManager,usePersistedState,resetPersistedStateCache,useChangeLog,useSubscribedValue,useEventStoreEvents,useDeviceInfo,getDeviceInfo,logDeviceInfo}from"./hooks/index.js";export{JsModal}from"./JsModal";export{night,NIGHT_LABEL_TRACKING}from"./ui/night/nightTheme.js";export{NightSectionLabel,NightFootnote,NightCard,NightSeparator,NightRows,NightSwitch,NightChip,NightButton,NightSegmented,NightBadge}from"./ui/night/primitives.js";export{gameUIColors,buoyColors}from"./ui/gameUI/constants/gameUIColors.js";export{refreshGameUIColors}from"./ui/gameUI/constants/gameUIColors.js";export{macOSColors}from"./ui/gameUI/constants/macOSDesignSystemColors.js";export{dialColors}from"./ui/gameUI/constants/gameUIColors.js";export{EnvironmentIndicator}from"./env/EnvironmentIndicator";export{EnvironmentSelector}from"./env/EnvironmentSelector.js";export{EnvironmentSelectorInline}from"./env/EnvironmentSelectorInline";export{normalizeEnvironment}from"./types/types.js";export{HintsProvider,useHintsDisabled,useHintsContext}from"./context/index.js";export*from"./history/index.js";export{FeatureGate,UpgradePrompt,useFeatureGate,ProFeatureBanner,UpgradeModal,LicenseEntryModal,ProBadge,ProUpgradeModal,FreeAccountPrompt,LOGIN_COMMAND,getUseIsPro,getUseLicense,getUseTier,TIER_LIMITS,useLimit,resolveEffectiveTier}from"./license/index.js";export{getAccountAccess,hasAccountAccess,assertAccountAccess,subscribeAccountAccess,getUseAccountAccess,retryAccountAccess,isProNow}from"./license/licenseModule.js";export{guardToolAdapter}from"./sync/toolActionRegistry.js";export{AccountSetup}from"./license/AccountSetup";
1
+ "use strict";export*from"./ui/index.js";export*from"./stores/index.js";export*from"./sync/keyedArrays.js";export*from"./sync/valueShape.js";export*from"./sync/valuePath.js";export*from"./sync/typedEdit.js";export*from"./sync/wireBudget.js";export*from"./sync/wireForm.js";export*from"./sync/toolSyncAdapter.js";export{startSettingsSync,SettingsSync,PERSONAL_SETTING_KEYS,TEAM_SETTING_KEYS}from"./sync/settingsSync.js";export*from"./tools/defineTool.js";export*from"./sync/toolActionRegistry.js";export*from"./sync/toolUiBridge.js";export*from"./sync/toolScreenHeader.js";export{absoluteFill,displayValue,parseDisplayValue,getSafeAreaInsets,persistentStorage,isUsingPersistentStorage,getStorageBackendType,safeStringify,getValueType,isPrimitive,isJsonSerializable,isValidJson,getConstructorName,isEmpty,getValueSize,parseValue,formatValue,getTypeColor,truncateText,flattenObject,formatPath,loadOptionalModule,getCachedOptionalModule,setRenderCaptureProvider,getRenderCaptureProvider,registerStateSnapshotProvider,getStateSnapshotProviders,getStateSnapshotProvider,subscribeToStateSnapshotProviders,superJsonSerialize,superJsonDeserialize,realNow,getRealAppState,subscribeRealAppState,BUOY_SYNTHETIC_MARK,countBuoyListener,reloadApp,scheduleReloadApp,resolveReloadStrategy,REMOTE_RELOAD_DELAY_MS,getDevServerOrigin,Subscribable,subscriberCountNotifier,subscribeToSubscriberCountChanges,notifySubscriberCountChange,useSafeRouter,useSafePathname,useSafeSegments,useSafeGlobalSearchParams,getSafeRouter,getSafeCurrentPathname,getSafeCurrentRoute,isExpoRouterAvailable}from"./utils/index.js";export*from"./utils/toolModules.js";export{registerBrowserRouter,browserRouter,subscribeBrowserNavigation}from"./utils/browserNavigation.js";export{PREVIEW_ITEM_RENDER_BYTE_LIMIT,createRestoreScope,emptyRestoreResult,failedRestore,skippedRestore,classifyPreviewItem,wontApply,unionKeys}from"./utils/snapshotProviderKit.js";export{entityColor,formatValuePreview,shallowDiffSummary}from"./utils/stateTools.js";export*from"./utils/formatting/index.js";export*from"./utils/time/index.js";export{isPlainObject as isPlainObjectUtil}from"./utils/typeHelpers.js";export*from"./icons/index.js";export*from"./clipboard/index.js";export*from"./logger/index.js";export*from"./settings/index.js";export*from"./storage/index.js";export{useSafeAreaInsets,useFilterManager,usePersistedState,resetPersistedStateCache,useChangeLog,useSubscribedValue,useEventStoreEvents,useDeviceInfo,getDeviceInfo,logDeviceInfo}from"./hooks/index.js";export{JsModal}from"./JsModal";export{night,NIGHT_LABEL_TRACKING}from"./ui/night/nightTheme.js";export{NightSectionLabel,NightFootnote,NightCard,NightSeparator,NightRows,NightSwitch,NightChip,NightButton,NightSegmented,NightBadge}from"./ui/night/primitives.js";export{gameUIColors,buoyColors}from"./ui/gameUI/constants/gameUIColors.js";export{refreshGameUIColors}from"./ui/gameUI/constants/gameUIColors.js";export{macOSColors}from"./ui/gameUI/constants/macOSDesignSystemColors.js";export{dialColors}from"./ui/gameUI/constants/gameUIColors.js";export{EnvironmentIndicator}from"./env/EnvironmentIndicator";export{EnvironmentSelector}from"./env/EnvironmentSelector.js";export{EnvironmentSelectorInline}from"./env/EnvironmentSelectorInline";export{normalizeEnvironment}from"./types/types.js";export{HintsProvider,useHintsDisabled,useHintsContext}from"./context/index.js";export*from"./history/index.js";export{FeatureGate,UpgradePrompt,useFeatureGate,ProFeatureBanner,UpgradeModal,LicenseEntryModal,ProBadge,ProUpgradeModal,FreeAccountPrompt,LOGIN_COMMAND,getUseIsPro,getUseLicense,getUseTier,signOutOfBuoy,TIER_LIMITS,useLimit,resolveEffectiveTier}from"./license/index.js";export{getAccountAccess,hasAccountAccess,assertAccountAccess,subscribeAccountAccess,getUseAccountAccess,retryAccountAccess,isProNow}from"./license/licenseModule.js";export{guardToolAdapter}from"./sync/toolActionRegistry.js";export{AccountSetup}from"./license/AccountSetup";
@@ -1 +1 @@
1
- "use strict";export{FeatureGate,UpgradePrompt,useFeatureGate,ProFeatureBanner,UpgradeModal,ProBadge,ProUpgradeModal}from"./FeatureGate.js";export{LicenseEntryModal}from"./LicenseEntryModal.js";export{FreeAccountPrompt,LOGIN_COMMAND}from"./FreeAccountPrompt.js";export{getUseIsPro,getUseLicense,getUseTier}from"./licenseModule.js";export{TIER_LIMITS,useLimit,resolveEffectiveTier}from"./tierLimits.js";
1
+ "use strict";export{FeatureGate,UpgradePrompt,useFeatureGate,ProFeatureBanner,UpgradeModal,ProBadge,ProUpgradeModal}from"./FeatureGate.js";export{LicenseEntryModal}from"./LicenseEntryModal.js";export{FreeAccountPrompt,LOGIN_COMMAND}from"./FreeAccountPrompt.js";export{getUseIsPro,getUseLicense,getUseTier,signOutOfBuoy}from"./licenseModule.js";export{TIER_LIMITS,useLimit,resolveEffectiveTier}from"./tierLimits.js";
@@ -1 +1 @@
1
- "use strict";import*as t from"@buoy-gg/license";import{canInitializeAccount as l}from"./accountRuntime";let u=null;let o=null;let i=null;let a=false;function n(){if(a)return;a=true;try{const e=t;if(e){u=e.useIsPro??null;o=e.useLicense??null;i=e.useTier??null}}catch{}}export function getUseIsPro(){n();return u??(()=>false)}export function getUseLicense(){n();return o}export function getUseTier(){n();return i??(()=>"free")}export function isProNow(){try{return t.isPro?.()??false}catch{return false}}const c={status:"locked",reason:"account_required",validUntil:null};function r(){if(!l())return null;try{const e=t.LicenseManager;void e?.initialize?.();return e}catch{return null}}export function getAccountAccess(){return r()?.getAccountAccess?.()??c}export function hasAccountAccess(){return getAccountAccess().status==="admitted"}export function assertAccountAccess(){if(!hasAccountAccess())throw new Error("A verified Buoy account is required. Run npx buoy login, then reload your app.")}export function subscribeAccountAccess(e){return r()?.subscribe?.(e)??(()=>{})}export function getUseAccountAccess(){try{return t.useAccountAccess??(()=>c)}catch{return()=>c}}export async function retryAccountAccess(){const e=r();const s=e?.getState?.().licenseKey;if(s)await e.setLicenseKey(s,{force:true});else await e?.initialize?.()}
1
+ "use strict";import*as t from"@buoy-gg/license";import{canInitializeAccount as l}from"./accountRuntime";let s=null;let o=null;let i=null;let a=false;function n(){if(a)return;a=true;try{const e=t;if(e){s=e.useIsPro??null;o=e.useLicense??null;i=e.useTier??null}}catch{}}export function getUseIsPro(){n();return s??(()=>false)}export function getUseLicense(){n();return o}export function getUseTier(){n();return i??(()=>"free")}export function isProNow(){try{return t.isPro?.()??false}catch{return false}}const r={status:"locked",reason:"account_required",validUntil:null};function c(){if(!l())return null;try{const e=t.LicenseManager;void e?.initialize?.();return e}catch{return null}}export function getAccountAccess(){return c()?.getAccountAccess?.()??r}export function hasAccountAccess(){return getAccountAccess().status==="admitted"}export function assertAccountAccess(){if(!hasAccountAccess())throw new Error("A verified Buoy account is required. Run npx buoy login, then reload your app.")}export function subscribeAccountAccess(e){return c()?.subscribe?.(e)??(()=>{})}export function getUseAccountAccess(){try{return t.useAccountAccess??(()=>r)}catch{return()=>r}}export async function retryAccountAccess(){const e=c();const u=e?.getState?.().licenseKey;if(u)await e.setLicenseKey(u,{force:true});else await e?.initialize?.()}export async function signOutOfBuoy(){try{await t.SessionManager?.signOut()}catch{}}export function getSyncCredential(){try{return t.getSyncCredential?.()??null}catch{return null}}
@@ -1 +1 @@
1
- "use strict";import{useEffect as m,useMemo as d,useState as u}from"react";import{persistentStorage as o}from"../utils/persistentStorage";import{devToolsStorageKeys as i}from"../storage/devToolsStorageKeys.js";import{DEFAULT_IGNORED_PATTERNS as l}from"./ignoredPatternsCore.js";export{urlMatchesIgnoredPattern,isUrlIgnored}from"./ignoredPatternsCore.js";const n=l;function c(s){if(!Array.isArray(s))return[];const e=[];for(const t of s){if(typeof t==="string"&&t.trim()){e.push({value:t,mode:"contains"})}else if(t&&typeof t==="object"&&typeof t.value==="string"){const r=t;e.push({value:r.value,mode:r.mode==="exact"?"exact":"contains"})}}return e}function a(s){const e=[...s];for(const t of n){if(!e.some(r=>r.value===t.value)){e.push({...t})}}return e}class h{patterns=a(n.map(e=>({...e})));listeners=new Set;loaded=false;loadPromise=null;dirty=false;getPatterns(){return this.patterns}subscribe(e){this.listeners.add(e);void this.ensureLoaded();return()=>{this.listeners.delete(e)}}emit(){this.listeners.forEach(e=>e())}ensureLoaded(){if(this.loaded)return Promise.resolve();if(this.loadPromise)return this.loadPromise;this.loadPromise=(async()=>{try{const e=await o.getItem(i.network.ignoredDomains());if(e&&!this.dirty){const t=a(c(JSON.parse(e)));this.patterns=t}}catch{}finally{this.loaded=true;this.emit()}})();return this.loadPromise}persist(){o.setItem(i.network.ignoredDomains(),JSON.stringify(this.patterns)).catch(()=>{})}commit(e){this.dirty=true;this.patterns=e;this.emit();this.persist()}add(e){const t=e.value.trim();if(!t)return;if(this.patterns.some(r=>r.value===t))return;this.commit([...this.patterns,{value:t,mode:e.mode}])}remove(e){if(!this.patterns.some(t=>t.value===e))return;this.commit(this.patterns.filter(t=>t.value!==e))}toggle(e){const t=e.trim();if(!t)return;this.commit(this.patterns.some(r=>r.value===t)?this.patterns.filter(r=>r.value!==t):[...this.patterns,{value:t,mode:"contains"}])}toggleMode(e){if(!this.patterns.some(t=>t.value===e))return;this.commit(this.patterns.map(t=>t.value===e?{...t,mode:t.mode==="contains"?"exact":"contains"}:t))}}export const ignoredPatternsStore=new h;const f=s=>ignoredPatternsStore.add(s);const g=s=>ignoredPatternsStore.remove(s);const p=s=>ignoredPatternsStore.toggle(s);const v=s=>ignoredPatternsStore.toggleMode(s);export function useIgnoredPatterns(){const[s,e]=u(()=>ignoredPatternsStore.getPatterns());m(()=>{return ignoredPatternsStore.subscribe(()=>{e(ignoredPatternsStore.getPatterns())})},[]);const t=d(()=>new Set(s.map(r=>r.value)),[s]);return{patterns:s,values:t,add:f,remove:g,toggle:p,toggleMode:v}}
1
+ "use strict";import{useEffect as d,useMemo as l,useState as u}from"react";import{persistentStorage as i}from"../utils/persistentStorage";import{devToolsStorageKeys as o}from"../storage/devToolsStorageKeys.js";import{DEFAULT_IGNORED_PATTERNS as h}from"./ignoredPatternsCore.js";export{urlMatchesIgnoredPattern,isUrlIgnored}from"./ignoredPatternsCore.js";const n=h;function a(s){if(!Array.isArray(s))return[];const t=[];for(const e of s){if(typeof e==="string"&&e.trim()){t.push({value:e,mode:"contains"})}else if(e&&typeof e==="object"&&typeof e.value==="string"){const r=e;t.push({value:r.value,mode:r.mode==="exact"?"exact":"contains"})}}return t}function m(s){const t=[...s];for(const e of n){if(!t.some(r=>r.value===e.value)){t.push({...e})}}return t}class c{patterns=m(n.map(t=>({...t})));teamPatterns=[];merged=this.patterns;listeners=new Set;loaded=false;loadPromise=null;dirty=false;getPatterns(){return this.merged}isTeamOnly(t){return!this.patterns.some(e=>e.value===t)&&this.teamPatterns.some(e=>e.value===t)}setTeamPatterns(t){this.teamPatterns=a(t);this.remerge();this.emit()}reload(){this.loaded=false;this.loadPromise=null;this.dirty=false;return this.ensureLoaded()}remerge(){const t=this.teamPatterns.filter(e=>!this.patterns.some(r=>r.value===e.value));this.merged=t.length>0?[...this.patterns,...t]:this.patterns}subscribe(t){this.listeners.add(t);void this.ensureLoaded();return()=>{this.listeners.delete(t)}}emit(){this.listeners.forEach(t=>t())}ensureLoaded(){if(this.loaded)return Promise.resolve();if(this.loadPromise)return this.loadPromise;this.loadPromise=(async()=>{try{const t=await i.getItem(o.network.ignoredDomains());if(t&&!this.dirty){const e=m(a(JSON.parse(t)));this.patterns=e;this.remerge()}}catch{}finally{this.loaded=true;this.emit()}})();return this.loadPromise}persist(){i.setItem(o.network.ignoredDomains(),JSON.stringify(this.patterns)).catch(()=>{})}commit(t){this.dirty=true;this.patterns=t;this.remerge();this.emit();this.persist()}add(t){const e=t.value.trim();if(!e)return;if(this.patterns.some(r=>r.value===e))return;this.commit([...this.patterns,{value:e,mode:t.mode}])}remove(t){if(!this.patterns.some(e=>e.value===t))return;this.commit(this.patterns.filter(e=>e.value!==t))}toggle(t){const e=t.trim();if(!e)return;this.commit(this.patterns.some(r=>r.value===e)?this.patterns.filter(r=>r.value!==e):[...this.patterns,{value:e,mode:"contains"}])}toggleMode(t){if(!this.patterns.some(e=>e.value===t))return;this.commit(this.patterns.map(e=>e.value===t?{...e,mode:e.mode==="contains"?"exact":"contains"}:e))}}export const ignoredPatternsStore=new c;const g=s=>ignoredPatternsStore.add(s);const f=s=>ignoredPatternsStore.remove(s);const p=s=>ignoredPatternsStore.toggle(s);const P=s=>ignoredPatternsStore.toggleMode(s);export function useIgnoredPatterns(){const[s,t]=u(()=>ignoredPatternsStore.getPatterns());d(()=>{return ignoredPatternsStore.subscribe(()=>{t(ignoredPatternsStore.getPatterns())})},[]);const e=l(()=>new Set(s.map(r=>r.value)),[s]);return{patterns:s,values:e,add:g,remove:f,toggle:p,toggleMode:P}}
@@ -0,0 +1 @@
1
+ "use strict";import{persistentStorage as f}from"../utils/persistentStorage";import{subscribeStorageWrites as y}from"../utils/storageWrites.js";import{getSyncCredential as g}from"../license/licenseModule.js";import{ignoredPatternsStore as l}from"../stores/ignoredPatternsStore";export const PERSONAL_SETTING_KEYS=new Set(["@react_buoy_settings_theme","@react_buoy_settings_preferences","@react_buoy_settings_global","@react_buoy_dev_tools_settings","@react_buoy_settings_tooltip_shown","@react_buoy_modal_hint_acknowledged","@react_buoy_clipboard_hint_acknowledged","@react_buoy_network_filters","@react_buoy_network_preferences","@react_buoy_network_copy_options","@react_buoy_storage_filters","@react_buoy_storage_event_filters","@react_buoy_storage_key_filters","@react_buoy_storage_pinned_keys","@react_buoy_storage_preferences","@react_buoy_storage_diff_viewer_mode","@react_buoy_rq_filters","@react_buoy_rq_preferences","@react_buoy_route_events_event_filters","@react_buoy_route_events_detail_view","@react_buoy_route_events_diff_viewer_mode","@react_buoy_sentry_filters","@react_buoy_sentry_preferences","@react_buoy_highlight_updates_filters","@react_buoy_highlight_updates_settings","@react_buoy_highlight_updates_copy_settings","@react_buoy_events_enabled_sources","@react_buoy_events_copy_settings","@react_buoy_time_machine_diff_viewer_mode","@react_buoy_network_ignored_domains","@react_buoy_network_ignored_urls","@react_buoy_rq_ignored_patterns","@react_buoy_rq_included_patterns"]);export const TEAM_SETTING_KEYS=new Set(["@react_buoy_network_ignored_domains","@react_buoy_network_ignored_urls","@react_buoy_rq_ignored_patterns","@react_buoy_rq_included_patterns"]);export const SYNC_META_KEY="@react_buoy_settings_sync_meta";const h="@react_buoy_network_ignored_domains";const d=2e3;const c=3e4;const m=15*6e4;const b=15e3;function T(){return{storage:f,credential:g,fetch:(i,e)=>fetch(i,e),subscribeWrites:y,setTimer:(i,e)=>setTimeout(i,e),clearTimer:i=>clearTimeout(i),onTeam:i=>l.setTeamPatterns(w(i[h])),onApplied:i=>{if(i.includes(h))void l.reload()}}}function w(i){if(!i)return[];try{return JSON.parse(i)}catch{return[]}}export class SettingsSync{started=false;pending=new Map;applying=new Set;pushTimer=null;pullTimer=null;unsubscribe=null;refusedToken=null;constructor(e=T()){this.deps=e}start(){if(this.started)return;this.started=true;this.unsubscribe=this.deps.subscribeWrites((e,s)=>this.onWrite(e,s));void this.pull()}stop(){this.started=false;this.unsubscribe?.();this.unsubscribe=null;if(this.pushTimer!==null)this.deps.clearTimer(this.pushTimer);if(this.pullTimer!==null)this.deps.clearTimer(this.pullTimer);this.pushTimer=this.pullTimer=null}credential(){const e=this.deps.credential();return e&&e.token!==this.refusedToken?e:null}call(e,s,n){return new Promise((u,a)=>{const r=this.deps.setTimer(()=>a(new Error("timeout")),b);this.deps.fetch(`${s.origin.replace(/\/$/,"")}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({access_token:s.token,...n})}).then(_=>{this.deps.clearTimer(r);u(_)},_=>{this.deps.clearTimer(r);a(_)})})}schedulePull(e){if(!this.started)return;if(this.pullTimer!==null)this.deps.clearTimer(this.pullTimer);this.pullTimer=this.deps.setTimer(()=>{this.pullTimer=null;void this.pull()},e)}async readMeta(){try{const e=await this.deps.storage.getItem(SYNC_META_KEY);const s=e?JSON.parse(e):{};return s&&typeof s==="object"?s:{}}catch{return{}}}async writeMeta(e){await this.deps.storage.setItem(SYNC_META_KEY,JSON.stringify(e)).catch(()=>{})}async pull(){const e=this.credential();if(!e)return this.schedulePull(c);let s;let n;try{const t=await this.call("/api/settings/pull",e,{});s=t.status;n=await t.json().catch(()=>null)}catch{return this.schedulePull(c)}if(s===401||s===403){this.refusedToken=e.token;return this.schedulePull(c)}if(s!==200||!n)return this.schedulePull(c);const u=n.personal??{};const a=await this.readMeta();const r=[];for(const[t,o]of Object.entries(u)){if(!PERSONAL_SETTING_KEYS.has(t)||this.pending.has(t))continue;if(typeof o?.value!=="string"||!(o.updatedAt>(a[t]??0)))continue;this.applying.add(t);try{await this.deps.storage.setItem(t,o.value)}finally{this.applying.delete(t)}a[t]=o.updatedAt;r.push(t)}for(const t of PERSONAL_SETTING_KEYS){if(t in u||t in a||this.pending.has(t))continue;const o=await this.deps.storage.getItem(t).catch(()=>null);if(o!==null)this.pending.set(t,o)}await this.writeMeta(a);if(r.length>0)this.deps.onApplied(r);const _={};for(const[t,o]of Object.entries(n.team??{})){if(TEAM_SETTING_KEYS.has(t)&&typeof o?.value==="string")_[t]=o.value}this.deps.onTeam(_);if(this.pending.size>0)this.schedulePush(0);this.schedulePull(m)}onWrite(e,s){if(!this.started||this.applying.has(e)||!PERSONAL_SETTING_KEYS.has(e))return;this.pending.set(e,s);this.schedulePush(d)}schedulePush(e){if(this.pushTimer!==null)this.deps.clearTimer(this.pushTimer);this.pushTimer=this.deps.setTimer(()=>{this.pushTimer=null;void this.push()},e)}async push(){if(this.pending.size===0)return;const e=this.credential();if(!e)return this.schedulePush(c);const s=new Map(this.pending);let n;let u;try{const r=await this.call("/api/settings/push",e,{changes:Object.fromEntries(s)});n=r.status;u=await r.json().catch(()=>null)}catch{return this.schedulePush(c)}if(n===401||n===403){this.refusedToken=e.token;return this.schedulePush(c)}if(n!==200||!u||typeof u.updatedAt!=="number")return this.schedulePush(c);const a=await this.readMeta();for(const[r,_]of s){if(this.pending.get(r)===_)this.pending.delete(r);a[r]=u.updatedAt}await this.writeMeta(a);if(this.pending.size>0)this.schedulePush(d)}}let p=null;export function startSettingsSync(){p??=new SettingsSync;p.start()}
@@ -1 +1 @@
1
- "use strict";import{devToolsStorageKeys as h}from"../storage/devToolsStorageKeys.js";let i=null;let I=null;let w=false;let o=null;let y=null;const n=new Map;function m(){return typeof window!=="undefined"&&window?.localStorage!==void 0}const v="react-buoy";const K=".health-check";function d(){if(!o?.documentDirectory)return null;return`${o.documentDirectory}${v}/`}function R(t){return encodeURIComponent(t.replace(/~/g,"~0").replace(/\//g,"~1"))}function D(t){return decodeURIComponent(t).replace(/~1/g,"/").replace(/~0/g,"~")}function A(t){const e=d();if(!e)return null;return`${e}${R(t)}.json`}function g(){if(o)return o;try{const t=require("expo-file-system/legacy");o=t?.default||t;if(o&&o.documentDirectory){return o}o=null}catch{}try{const t=require("expo-file-system");o=t?.default||t;if(o&&o.documentDirectory){return o}o=null}catch{}return null}function l(){if(y)return y;try{const t=require("@react-native-async-storage/async-storage");y=t?.default||t;if(y&&typeof y.getItem==="function"){return y}y=null}catch{}return null}async function F(){const t=g();if(!t||!t.documentDirectory){return false}const e=d();if(!e)return false;const r=`${e}${K}`;try{const a=await t.getInfoAsync(e);if(!a.exists){await t.makeDirectoryAsync(e,{intermediates:true})}const s=`health-check-${Date.now()}`;await t.writeAsStringAsync(r,s);const c=await t.readAsStringAsync(r);if(c!==s){return false}await t.deleteAsync(r,{idempotent:true});return true}catch(a){console.warn("[React Buoy] FileSystem health check failed:",a);return false}}async function x(){const t=l();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(c=>c.startsWith(h.base));if(r.length===0){return}const a=await t.multiGet(r);let s=0;for(const[c,p]of a){if(p!==null){await S.setItem(c,p);s++}}void s}catch(e){console.warn("[React Buoy] Migration failed:",e)}}const S={async getItem(t){const e=g();if(!e)return null;const r=A(t);if(!r)return null;try{const a=await e.getInfoAsync(r);if(!a.exists){return null}const s=await e.readAsStringAsync(r);return s}catch{return null}},async setItem(t,e){const r=g();if(!r)return;const a=d();const s=A(t);if(!a||!s)return;try{const c=await r.getInfoAsync(a);if(!c.exists){await r.makeDirectoryAsync(a,{intermediates:true})}await r.writeAsStringAsync(s,e)}catch(c){console.warn("[React Buoy] FileSystem write failed:",c)}},async removeItem(t){const e=g();if(!e)return;const r=A(t);if(!r)return;try{await e.deleteAsync(r,{idempotent:true})}catch{}},async getAllKeys(){const t=g();if(!t)return[];const e=d();if(!e)return[];try{const r=await t.getInfoAsync(e);if(!r.exists)return[];const a=await t.readDirectoryAsync(e);return a.filter(s=>s.endsWith(".json")).map(s=>D(s.replace(".json","")))}catch{return[]}},async multiGet(t){const e=[];for(const r of t){const a=await this.getItem(r);e.push([r,a])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){const t=g();if(!t)return;const e=d();if(!e)return;try{await t.deleteAsync(e,{idempotent:true})}catch{}}};const b={async getItem(t){const e=l();if(!e)return n.get(t)??null;try{return await e.getItem(t)}catch{return n.get(t)??null}},async setItem(t,e){const r=l();if(!r){n.set(t,e);return}try{await r.setItem(t,e)}catch{n.set(t,e)}},async removeItem(t){const e=l();n.delete(t);if(!e)return;try{await e.removeItem(t)}catch{}},async getAllKeys(){const t=l();if(!t)return Array.from(n.keys());try{const e=await t.getAllKeys();return e.filter(r=>r.startsWith(h.base))}catch{return Array.from(n.keys())}},async multiGet(t){const e=l();if(!e){return t.map(r=>[r,n.get(r)??null])}try{const r=await e.multiGet(t);return r}catch{return t.map(r=>[r,n.get(r)??null])}},async multiRemove(t){t.forEach(r=>n.delete(r));const e=l();if(!e)return;try{await e.multiRemove(t)}catch{}},async clear(){n.clear();const t=l();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(a=>a.startsWith(h.base));if(r.length>0){await t.multiRemove(r)}}catch{}}};const k={async getItem(t){if(!m())return n.get(t)??null;try{return window.localStorage.getItem(t)}catch{return n.get(t)??null}},async setItem(t,e){if(!m()){n.set(t,e);return}try{window.localStorage.setItem(t,e)}catch{n.set(t,e)}},async removeItem(t){n.delete(t);if(!m())return;try{window.localStorage.removeItem(t)}catch{}},async getAllKeys(){if(!m())return Array.from(n.keys());try{const t=[];const e=window.localStorage;for(let r=0;r<e.length;r++){const a=e.key(r);if(a&&a.startsWith(h.base)){t.push(a)}}return t}catch{return Array.from(n.keys())}},async multiGet(t){const e=[];for(const r of t){const a=await this.getItem(r);e.push([r,a])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){n.clear();if(!m())return;try{const t=await this.getAllKeys();const e=window.localStorage;for(const r of t){e.removeItem(r)}}catch{}}};const E={async getItem(t){return n.get(t)??null},async setItem(t,e){n.set(t,e)},async removeItem(t){n.delete(t)},async getAllKeys(){return Array.from(n.keys())},async multiGet(t){return t.map(e=>[e,n.get(e)??null])},async multiRemove(t){t.forEach(e=>n.delete(e))},async clear(){n.clear()}};async function G(){if(i!==null)return;const t=await F();if(t){const e=await S.getAllKeys();if(e.length===0){await x()}i="filesystem"}else if(m()){i="localstorage"}else{const e=l();if(e){i="asyncstorage";if(!w){w=true;console.warn("[React Buoy] Using AsyncStorage fallback. Settings may be lost if AsyncStorage is cleared. Install expo-file-system for persistent storage.")}}else{i="memory";if(!w){w=true;console.warn("[React Buoy] Using in-memory storage. Settings will be lost on app restart.")}}}}function u(){if(!I){I=G()}return I}function f(){switch(i){case"filesystem":return S;case"asyncstorage":return b;case"localstorage":return k;case"memory":default:return E}}export const persistentStorage={async getItem(t){await u();return f().getItem(t)},async setItem(t,e){await u();return f().setItem(t,e)},async removeItem(t){await u();return f().removeItem(t)},async getAllKeys(){await u();return f().getAllKeys()},async multiGet(t){await u();return f().multiGet(t)},async multiRemove(t){await u();return f().multiRemove(t)},async clear(){await u();return f().clear()}};export async function isUsingPersistentStorage(){await u();return i==="filesystem"}export async function getStorageBackendType(){await u();return i??"memory"}export function resetStorageInit(){i=null;I=null;w=false}
1
+ "use strict";import{devToolsStorageKeys as h}from"../storage/devToolsStorageKeys.js";import{notifyStorageWrite as v}from"./storageWrites.js";let i=null;let I=null;let w=false;let o=null;let y=null;const n=new Map;function m(){return typeof window!=="undefined"&&window?.localStorage!==void 0}const K="react-buoy";const R=".health-check";function d(){if(!o?.documentDirectory)return null;return`${o.documentDirectory}${K}/`}function D(t){return encodeURIComponent(t.replace(/~/g,"~0").replace(/\//g,"~1"))}function F(t){return decodeURIComponent(t).replace(/~1/g,"/").replace(/~0/g,"~")}function A(t){const e=d();if(!e)return null;return`${e}${D(t)}.json`}function g(){if(o)return o;try{const t=require("expo-file-system/legacy");o=t?.default||t;if(o&&o.documentDirectory){return o}o=null}catch{}try{const t=require("expo-file-system");o=t?.default||t;if(o&&o.documentDirectory){return o}o=null}catch{}return null}function l(){if(y)return y;try{const t=require("@react-native-async-storage/async-storage");y=t?.default||t;if(y&&typeof y.getItem==="function"){return y}y=null}catch{}return null}async function x(){const t=g();if(!t||!t.documentDirectory){return false}const e=d();if(!e)return false;const r=`${e}${R}`;try{const a=await t.getInfoAsync(e);if(!a.exists){await t.makeDirectoryAsync(e,{intermediates:true})}const s=`health-check-${Date.now()}`;await t.writeAsStringAsync(r,s);const c=await t.readAsStringAsync(r);if(c!==s){return false}await t.deleteAsync(r,{idempotent:true});return true}catch(a){console.warn("[React Buoy] FileSystem health check failed:",a);return false}}async function b(){const t=l();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(c=>c.startsWith(h.base));if(r.length===0){return}const a=await t.multiGet(r);let s=0;for(const[c,p]of a){if(p!==null){await S.setItem(c,p);s++}}void s}catch(e){console.warn("[React Buoy] Migration failed:",e)}}const S={async getItem(t){const e=g();if(!e)return null;const r=A(t);if(!r)return null;try{const a=await e.getInfoAsync(r);if(!a.exists){return null}const s=await e.readAsStringAsync(r);return s}catch{return null}},async setItem(t,e){const r=g();if(!r)return;const a=d();const s=A(t);if(!a||!s)return;try{const c=await r.getInfoAsync(a);if(!c.exists){await r.makeDirectoryAsync(a,{intermediates:true})}await r.writeAsStringAsync(s,e)}catch(c){console.warn("[React Buoy] FileSystem write failed:",c)}},async removeItem(t){const e=g();if(!e)return;const r=A(t);if(!r)return;try{await e.deleteAsync(r,{idempotent:true})}catch{}},async getAllKeys(){const t=g();if(!t)return[];const e=d();if(!e)return[];try{const r=await t.getInfoAsync(e);if(!r.exists)return[];const a=await t.readDirectoryAsync(e);return a.filter(s=>s.endsWith(".json")).map(s=>F(s.replace(".json","")))}catch{return[]}},async multiGet(t){const e=[];for(const r of t){const a=await this.getItem(r);e.push([r,a])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){const t=g();if(!t)return;const e=d();if(!e)return;try{await t.deleteAsync(e,{idempotent:true})}catch{}}};const E={async getItem(t){const e=l();if(!e)return n.get(t)??null;try{return await e.getItem(t)}catch{return n.get(t)??null}},async setItem(t,e){const r=l();if(!r){n.set(t,e);return}try{await r.setItem(t,e)}catch{n.set(t,e)}},async removeItem(t){const e=l();n.delete(t);if(!e)return;try{await e.removeItem(t)}catch{}},async getAllKeys(){const t=l();if(!t)return Array.from(n.keys());try{const e=await t.getAllKeys();return e.filter(r=>r.startsWith(h.base))}catch{return Array.from(n.keys())}},async multiGet(t){const e=l();if(!e){return t.map(r=>[r,n.get(r)??null])}try{const r=await e.multiGet(t);return r}catch{return t.map(r=>[r,n.get(r)??null])}},async multiRemove(t){t.forEach(r=>n.delete(r));const e=l();if(!e)return;try{await e.multiRemove(t)}catch{}},async clear(){n.clear();const t=l();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(a=>a.startsWith(h.base));if(r.length>0){await t.multiRemove(r)}}catch{}}};const G={async getItem(t){if(!m())return n.get(t)??null;try{return window.localStorage.getItem(t)}catch{return n.get(t)??null}},async setItem(t,e){if(!m()){n.set(t,e);return}try{window.localStorage.setItem(t,e)}catch{n.set(t,e)}},async removeItem(t){n.delete(t);if(!m())return;try{window.localStorage.removeItem(t)}catch{}},async getAllKeys(){if(!m())return Array.from(n.keys());try{const t=[];const e=window.localStorage;for(let r=0;r<e.length;r++){const a=e.key(r);if(a&&a.startsWith(h.base)){t.push(a)}}return t}catch{return Array.from(n.keys())}},async multiGet(t){const e=[];for(const r of t){const a=await this.getItem(r);e.push([r,a])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){n.clear();if(!m())return;try{const t=await this.getAllKeys();const e=window.localStorage;for(const r of t){e.removeItem(r)}}catch{}}};const W={async getItem(t){return n.get(t)??null},async setItem(t,e){n.set(t,e)},async removeItem(t){n.delete(t)},async getAllKeys(){return Array.from(n.keys())},async multiGet(t){return t.map(e=>[e,n.get(e)??null])},async multiRemove(t){t.forEach(e=>n.delete(e))},async clear(){n.clear()}};async function k(){if(i!==null)return;const t=await x();if(t){const e=await S.getAllKeys();if(e.length===0){await b()}i="filesystem"}else if(m()){i="localstorage"}else{const e=l();if(e){i="asyncstorage";if(!w){w=true;console.warn("[React Buoy] Using AsyncStorage fallback. Settings may be lost if AsyncStorage is cleared. Install expo-file-system for persistent storage.")}}else{i="memory";if(!w){w=true;console.warn("[React Buoy] Using in-memory storage. Settings will be lost on app restart.")}}}}function u(){if(!I){I=k()}return I}function f(){switch(i){case"filesystem":return S;case"asyncstorage":return E;case"localstorage":return G;case"memory":default:return W}}export const persistentStorage={async getItem(t){await u();return f().getItem(t)},async setItem(t,e){await u();await f().setItem(t,e);v(t,e)},async removeItem(t){await u();await f().removeItem(t);v(t,null)},async getAllKeys(){await u();return f().getAllKeys()},async multiGet(t){await u();return f().multiGet(t)},async multiRemove(t){await u();return f().multiRemove(t)},async clear(){await u();return f().clear()}};export async function isUsingPersistentStorage(){await u();return i==="filesystem"}export async function getStorageBackendType(){await u();return i??"memory"}export function resetStorageInit(){i=null;I=null;w=false}
@@ -1 +1 @@
1
- "use strict";import{devToolsStorageKeys as o}from"../storage/devToolsStorageKeys.js";const a=new Map;function r(){try{return typeof window==="undefined"?null:window.localStorage}catch{return null}}export const persistentStorage={async getItem(t){if(a.has(t))return a.get(t)??null;try{return r()?.getItem(t)??null}catch{return null}},async setItem(t,e){a.set(t,e);try{const n=r();if(n){n.setItem(t,e);a.delete(t)}}catch{}},async removeItem(t){a.set(t,null);try{const e=r();if(e){e.removeItem(t);a.delete(t)}}catch{}},async getAllKeys(){const t=new Set;try{const e=r();if(e)for(let n=0;n<e.length;n++){const s=e.key(n);if(s?.startsWith(o.base))t.add(s)}}catch{}for(const[e,n]of a){if(!e.startsWith(o.base))continue;if(n===null)t.delete(e);else t.add(e)}return[...t]},async multiGet(t){return Promise.all(t.map(async e=>[e,await persistentStorage.getItem(e)]))},async multiRemove(t){await Promise.all(t.map(e=>persistentStorage.removeItem(e)))},async clear(){await persistentStorage.multiRemove(await persistentStorage.getAllKeys())}};export async function isUsingPersistentStorage(){return r()!==null}export async function getStorageBackendType(){return r()?"localstorage":"memory"}
1
+ "use strict";import{devToolsStorageKeys as o}from"../storage/devToolsStorageKeys.js";import{notifyStorageWrite as c}from"./storageWrites.js";const r=new Map;function a(){try{return typeof window==="undefined"?null:window.localStorage}catch{return null}}export const persistentStorage={async getItem(t){if(r.has(t))return r.get(t)??null;try{return a()?.getItem(t)??null}catch{return null}},async setItem(t,e){r.set(t,e);try{const n=a();if(n){n.setItem(t,e);r.delete(t)}}catch{}c(t,e)},async removeItem(t){r.set(t,null);try{const e=a();if(e){e.removeItem(t);r.delete(t)}}catch{}c(t,null)},async getAllKeys(){const t=new Set;try{const e=a();if(e)for(let n=0;n<e.length;n++){const s=e.key(n);if(s?.startsWith(o.base))t.add(s)}}catch{}for(const[e,n]of r){if(!e.startsWith(o.base))continue;if(n===null)t.delete(e);else t.add(e)}return[...t]},async multiGet(t){return Promise.all(t.map(async e=>[e,await persistentStorage.getItem(e)]))},async multiRemove(t){await Promise.all(t.map(e=>persistentStorage.removeItem(e)))},async clear(){await persistentStorage.multiRemove(await persistentStorage.getAllKeys())}};export async function isUsingPersistentStorage(){return a()!==null}export async function getStorageBackendType(){return a()?"localstorage":"memory"}
@@ -0,0 +1 @@
1
+ "use strict";const e=new Set;export function subscribeStorageWrites(t){e.add(t);return()=>e.delete(t)}export function notifyStorageWrite(t,r){for(const o of[...e]){try{o(t,r)}catch{}}}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated safe area implementation
3
3
  * Detected: none
4
- * Generated at: 2026-09-30T22:52:38.881Z
4
+ * Generated at: 2026-10-03T14:49:02.191Z
5
5
  *
6
6
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
7
7
  *
@@ -7,6 +7,8 @@ export * from "./sync/typedEdit";
7
7
  export * from "./sync/wireBudget";
8
8
  export * from "./sync/wireForm";
9
9
  export * from "./sync/toolSyncAdapter";
10
+ export { startSettingsSync, SettingsSync, PERSONAL_SETTING_KEYS, TEAM_SETTING_KEYS } from "./sync/settingsSync";
11
+ export type { SettingsSyncDeps } from "./sync/settingsSync";
10
12
  export * from "./tools/defineTool";
11
13
  export * from "./sync/toolActionRegistry";
12
14
  export * from "./sync/toolUiBridge";
@@ -46,7 +48,7 @@ export type { Environment } from "./types/types";
46
48
  export { normalizeEnvironment } from "./types/types";
47
49
  export { HintsProvider, useHintsDisabled, useHintsContext } from "./context";
48
50
  export * from "./history";
49
- export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, LicenseEntryModal, ProBadge, ProUpgradeModal, FreeAccountPrompt, LOGIN_COMMAND, getUseIsPro, getUseLicense, getUseTier, TIER_LIMITS, useLimit, resolveEffectiveTier } from "./license";
51
+ export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, LicenseEntryModal, ProBadge, ProUpgradeModal, FreeAccountPrompt, LOGIN_COMMAND, getUseIsPro, getUseLicense, getUseTier, signOutOfBuoy, TIER_LIMITS, useLimit, resolveEffectiveTier } from "./license";
50
52
  export type { FeatureGateProps, ProFeatureBannerProps, UpgradeModalProps, LicenseEntryModalProps, ProUpgradeModalProps, FreeAccountPromptProps, BuoyTier, TierLimitKey } from "./license";
51
53
  export { getAccountAccess, hasAccountAccess, assertAccountAccess, subscribeAccountAccess, getUseAccountAccess, retryAccountAccess, isProNow } from "./license/licenseModule";
52
54
  export { guardToolAdapter } from "./sync/toolActionRegistry";
@@ -4,7 +4,7 @@ export { LicenseEntryModal } from "./LicenseEntryModal";
4
4
  export { FreeAccountPrompt, LOGIN_COMMAND } from "./FreeAccountPrompt";
5
5
  export type { FreeAccountPromptProps } from "./FreeAccountPrompt";
6
6
  export type { LicenseEntryModalProps, LicenseState } from "./LicenseEntryModal";
7
- export { getUseIsPro, getUseLicense, getUseTier, } from "./licenseModule";
7
+ export { getUseIsPro, getUseLicense, getUseTier, signOutOfBuoy, } from "./licenseModule";
8
8
  export type { BuoyTier } from "./licenseModule";
9
9
  export { TIER_LIMITS, useLimit, resolveEffectiveTier } from "./tierLimits";
10
10
  export type { TierLimitKey } from "./tierLimits";
@@ -46,5 +46,15 @@ export declare function assertAccountAccess(): void;
46
46
  export declare function subscribeAccountAccess(listener: () => void): () => void;
47
47
  export declare function getUseAccountAccess(): () => AccountAccess;
48
48
  export declare function retryAccountAccess(): Promise<void>;
49
+ /**
50
+ * Sign out of "Sign in with Buoy" on this device and on buoy.gg. A no-op
51
+ * without the license package or without a sign-in.
52
+ */
53
+ export declare function signOutOfBuoy(): Promise<void>;
54
+ /** The token settings sync sends to buoy.gg, or null (signed out, a plain key, or an old license package). */
55
+ export declare function getSyncCredential(): {
56
+ token: string;
57
+ origin: string;
58
+ } | null;
49
59
  export {};
50
60
  //# sourceMappingURL=licenseModule.d.ts.map
@@ -19,14 +19,29 @@ type Listener = () => void;
19
19
  * Events tool, on mobile or on the desktop dashboard) shares the same patterns.
20
20
  */
21
21
  declare class IgnoredPatternsStore {
22
+ /** This person's own patterns: the list that is saved (and synced as theirs). */
22
23
  private patterns;
24
+ /**
25
+ * The team's shared patterns (settings sync, BUOY_SIGN_IN_PLAN.md Phase 3).
26
+ * Read-only here, never saved locally; team admins edit it on buoy.gg.
27
+ */
28
+ private teamPatterns;
29
+ /** Own + team, built once per change so the reference stays stable. */
30
+ private merged;
23
31
  private readonly listeners;
24
32
  private loaded;
25
33
  private loadPromise;
26
34
  /** Set once a mutation happens so a slow initial load can't clobber it. */
27
35
  private dirty;
28
- /** Current patterns (stable reference until a mutation occurs). */
36
+ /** Own and team patterns together (stable reference until a change). */
29
37
  getPatterns(): IgnoredPattern[];
38
+ /** Whether a pattern comes only from the team list (so it can't be removed here). */
39
+ isTeamOnly(value: string): boolean;
40
+ /** Settings sync hands over the team's list. Both lists add up. */
41
+ setTeamPatterns(raw: unknown): void;
42
+ /** Re-read this person's list (settings sync just saved a newer copy). */
43
+ reload(): Promise<void>;
44
+ private remerge;
30
45
  subscribe(listener: Listener): () => void;
31
46
  private emit;
32
47
  private ensureLoaded;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Settings that follow you (BUOY_SIGN_IN_PLAN.md Phase 3).
3
+ *
4
+ * When this app holds a Buoy sign-in or a dev token, allow-listed settings
5
+ * sync with buoy.gg:
6
+ *
7
+ * - pull on start (and every 15 minutes): a remote setting is saved here if
8
+ * it changed since this device last synced it, unless this device has an
9
+ * unsent change to the same setting (that one is newer);
10
+ * - push a moment after a change: writes to allow-listed keys are batched
11
+ * for 2 seconds, then sent;
12
+ * - first sync on a device: local settings buoy.gg doesn't have yet are
13
+ * sent, so an existing setup follows the person to their next device;
14
+ * - team lists (Business) merge into ignoredPatternsStore. They are read
15
+ * here, never written: team admins edit them on buoy.gg.
16
+ *
17
+ * buoy.gg keeps its own allow-list and drops anything else, so this list is
18
+ * only the client's half of the rule. Keep both in step (apps/website
19
+ * settingsKeys.ts; test/settingsKeys checks).
20
+ */
21
+ import { type DevToolsStorage } from "../utils/persistentStorage";
22
+ export declare const PERSONAL_SETTING_KEYS: ReadonlySet<string>;
23
+ export declare const TEAM_SETTING_KEYS: ReadonlySet<string>;
24
+ /** Which version of each setting this device last synced (server times, seconds). Never synced itself. */
25
+ export declare const SYNC_META_KEY = "@react_buoy_settings_sync_meta";
26
+ export interface SettingsSyncDeps {
27
+ storage: Pick<DevToolsStorage, "getItem" | "setItem">;
28
+ credential: () => {
29
+ token: string;
30
+ origin: string;
31
+ } | null;
32
+ fetch: (url: string, init: {
33
+ method: string;
34
+ headers: Record<string, string>;
35
+ body: string;
36
+ }) => Promise<{
37
+ status: number;
38
+ json(): Promise<unknown>;
39
+ }>;
40
+ subscribeWrites: (listener: (key: string, value: string | null) => void) => () => void;
41
+ setTimer: (fn: () => void, ms: number) => unknown;
42
+ clearTimer: (handle: unknown) => void;
43
+ /** The team's lists arrive here. */
44
+ onTeam: (team: Record<string, string>) => void;
45
+ /** Settings this device just took from buoy.gg, so live stores can re-read them. */
46
+ onApplied: (keys: string[]) => void;
47
+ }
48
+ export declare class SettingsSync {
49
+ private readonly deps;
50
+ private started;
51
+ /** Changes waiting to be sent: key → value (null = removed). */
52
+ private readonly pending;
53
+ /** Keys being saved FROM buoy.gg right now; their writes must not echo back. */
54
+ private readonly applying;
55
+ private pushTimer;
56
+ private pullTimer;
57
+ private unsubscribe;
58
+ /** The token buoy.gg last turned down; sync waits for a different one. */
59
+ private refusedToken;
60
+ constructor(deps?: SettingsSyncDeps);
61
+ /** Starts syncing. Safe to call more than once. */
62
+ start(): void;
63
+ stop(): void;
64
+ private credential;
65
+ private call;
66
+ private schedulePull;
67
+ private readMeta;
68
+ private writeMeta;
69
+ /** Reads buoy.gg's copy and saves what changed. Never throws. */
70
+ pull(): Promise<void>;
71
+ private onWrite;
72
+ private schedulePush;
73
+ /** Sends waiting changes. Keeps them for later when buoy.gg can't be reached. Never throws. */
74
+ push(): Promise<void>;
75
+ }
76
+ /** Starts settings sync for this app. Called by FloatingDevTools; safe to call often. */
77
+ export declare function startSettingsSync(): void;
78
+ //# sourceMappingURL=settingsSync.d.ts.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tells listeners about every persistentStorage write (settingsSync.ts uses
3
+ * it to send allow-listed settings to buoy.gg). `null` means removed.
4
+ * Listener errors never reach the write.
5
+ */
6
+ type WriteListener = (key: string, value: string | null) => void;
7
+ export declare function subscribeStorageWrites(listener: WriteListener): () => void;
8
+ export declare function notifyStorageWrite(key: string, value: string | null): void;
9
+ export {};
10
+ //# sourceMappingURL=storageWrites.d.ts.map
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated safe area implementation
3
3
  * Detected: none
4
- * Generated at: 2026-09-30T22:52:38.881Z
4
+ * Generated at: 2026-10-03T14:49:02.191Z
5
5
  *
6
6
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
7
7
  *