@buoy-gg/storage 2.1.10 → 2.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/storage/components/StorageEventCard.js +2 -1
- package/lib/commonjs/storage/components/StorageEventDetailContent.js +12 -10
- package/lib/commonjs/storage/components/StorageKeyCard.js +32 -22
- package/lib/commonjs/storage/components/StorageKeyRow.js +4 -1
- package/lib/commonjs/storage/components/StorageModalWithTabs.js +104 -102
- package/lib/module/storage/components/StorageEventCard.js +3 -2
- package/lib/module/storage/components/StorageEventDetailContent.js +12 -10
- package/lib/module/storage/components/StorageKeyCard.js +32 -22
- package/lib/module/storage/components/StorageKeyRow.js +4 -1
- package/lib/module/storage/components/StorageModalWithTabs.js +105 -103
- package/lib/typescript/storage/components/StorageEventCard.d.ts.map +1 -1
- package/lib/typescript/storage/components/StorageEventDetailContent.d.ts.map +1 -1
- package/lib/typescript/storage/components/StorageKeyCard.d.ts.map +1 -1
- package/lib/typescript/storage/components/StorageModalWithTabs.d.ts.map +1 -1
- package/package.json +14 -13
- package/LICENSE +0 -58
|
@@ -87,6 +87,7 @@ const StorageEventCard = exports.StorageEventCard = /*#__PURE__*/(0, _react.memo
|
|
|
87
87
|
const actionColor = getActionColor(data.lastAction);
|
|
88
88
|
const actionLabel = (0, _storageActionHelpers.translateStorageAction)(data.lastAction);
|
|
89
89
|
const totalOps = data.totalOperations ?? 1;
|
|
90
|
+
const relativeTime = (0, _sharedUi.useRelativeTime)(data.lastEventTimestamp);
|
|
90
91
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.CompactRow
|
|
91
92
|
// Status section (left) - shows "Storage" with action-colored dot
|
|
92
93
|
, {
|
|
@@ -103,7 +104,7 @@ const StorageEventCard = exports.StorageEventCard = /*#__PURE__*/(0, _react.memo
|
|
|
103
104
|
showChevron: showChevron
|
|
104
105
|
// Bottom right - timestamp
|
|
105
106
|
,
|
|
106
|
-
bottomRightText:
|
|
107
|
+
bottomRightText: relativeTime
|
|
107
108
|
// Interaction
|
|
108
109
|
,
|
|
109
110
|
isSelected: isSelected,
|
|
@@ -145,7 +145,8 @@ function StorageEventDetailContent({
|
|
|
145
145
|
const selectedEvent = navigationItems[selectedEventIndex];
|
|
146
146
|
const valueToShow = selectedEvent?.data?.value ?? conversation.currentValue;
|
|
147
147
|
const action = selectedEvent?.action;
|
|
148
|
-
|
|
148
|
+
// Compute type from the parsed value so it matches what we actually render
|
|
149
|
+
const valueType = getValueType((0, _sharedUi.parseValue)(valueToShow));
|
|
149
150
|
const actionColor = getActionColor(action || "");
|
|
150
151
|
|
|
151
152
|
// Get events for diff comparison
|
|
@@ -250,17 +251,13 @@ function StorageEventDetailContent({
|
|
|
250
251
|
})]
|
|
251
252
|
})]
|
|
252
253
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
253
|
-
style: styles.
|
|
254
|
-
children:
|
|
254
|
+
style: styles.dataViewerContainer,
|
|
255
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataViewer.DataViewer, {
|
|
255
256
|
title: "",
|
|
256
257
|
data: parsed,
|
|
257
|
-
showTypeFilter:
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
children: valueType === "array" ? "[]" : "{}"
|
|
261
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
262
|
-
style: styles.valueText,
|
|
263
|
-
children: parsed === null ? "null" : parsed === undefined ? "undefined" : valueType === "string" ? `"${parsed}"` : String(parsed)
|
|
258
|
+
showTypeFilter: true,
|
|
259
|
+
rawMode: true,
|
|
260
|
+
initialExpanded: true
|
|
264
261
|
})
|
|
265
262
|
})]
|
|
266
263
|
});
|
|
@@ -530,5 +527,10 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
530
527
|
fontSize: 8,
|
|
531
528
|
fontWeight: "700",
|
|
532
529
|
fontFamily: "monospace"
|
|
530
|
+
},
|
|
531
|
+
dataViewerContainer: {
|
|
532
|
+
marginTop: -12,
|
|
533
|
+
marginHorizontal: -12,
|
|
534
|
+
marginBottom: -12
|
|
533
535
|
}
|
|
534
536
|
});
|
|
@@ -221,28 +221,38 @@ function StorageKeyCard({
|
|
|
221
221
|
style: styles.cardBody,
|
|
222
222
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
223
223
|
style: styles.dataViewerContainer,
|
|
224
|
-
children:
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
224
|
+
children: (() => {
|
|
225
|
+
const parsed = typeof storageKey.value === "string" ? (() => {
|
|
226
|
+
try {
|
|
227
|
+
return JSON.parse(storageKey.value);
|
|
228
|
+
} catch {
|
|
229
|
+
return storageKey.value;
|
|
230
|
+
}
|
|
231
|
+
})() : storageKey.value;
|
|
232
|
+
const isSimple = typeof parsed === "string" || typeof parsed === "number" || typeof parsed === "boolean";
|
|
233
|
+
return isSimple ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
234
|
+
style: styles.simpleValueContainer,
|
|
235
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
236
|
+
style: styles.simpleValueLabel,
|
|
237
|
+
children: "Current Value:"
|
|
238
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
239
|
+
style: styles.simpleValueBox,
|
|
240
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
241
|
+
style: styles.simpleValueContent,
|
|
242
|
+
selectable: true,
|
|
243
|
+
children: String(parsed)
|
|
244
|
+
})
|
|
245
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
246
|
+
style: styles.valueTypeText,
|
|
247
|
+
children: ["Type: ", (0, _valueType.getValueTypeLabel)(storageKey.value)]
|
|
248
|
+
})]
|
|
249
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataViewer.DataViewer, {
|
|
250
|
+
title: "Current Value",
|
|
251
|
+
data: parsed,
|
|
252
|
+
showTypeFilter: false,
|
|
253
|
+
rawMode: true
|
|
254
|
+
});
|
|
255
|
+
})()
|
|
246
256
|
}), hasExpectedValue && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
247
257
|
style: styles.valueContainer,
|
|
248
258
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
@@ -147,7 +147,10 @@ function StorageKeyRow({
|
|
|
147
147
|
style: styles.dataViewerContainer,
|
|
148
148
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataViewer.DataViewer, {
|
|
149
149
|
data: parsedValue,
|
|
150
|
-
title: "
|
|
150
|
+
title: "",
|
|
151
|
+
showTypeFilter: true,
|
|
152
|
+
rawMode: true,
|
|
153
|
+
initialExpanded: true
|
|
151
154
|
})
|
|
152
155
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
153
156
|
style: styles.expandedRow,
|
|
@@ -575,117 +575,119 @@ function StorageModalWithTabs({
|
|
|
575
575
|
setSelectedConversationKey(null);
|
|
576
576
|
setSelectedEventIndex(0);
|
|
577
577
|
} : onBack;
|
|
578
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
setSelectedEventIndex(0);
|
|
604
|
-
}
|
|
605
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
|
|
606
|
-
title: selectedConversation.key
|
|
607
|
-
})]
|
|
608
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
|
|
609
|
-
children: [onBack && /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
|
|
610
|
-
onBack: onBack
|
|
611
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
|
|
612
|
-
title: "",
|
|
613
|
-
children: isSearchActive ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.SearchBar, {
|
|
614
|
-
value: searchQuery,
|
|
615
|
-
onChange: setSearchQuery,
|
|
616
|
-
onClear: () => {
|
|
617
|
-
setSearchQuery("");
|
|
618
|
-
setIsSearchActive(false);
|
|
619
|
-
},
|
|
620
|
-
placeholder: "Search storage keys...",
|
|
621
|
-
autoFocus: true,
|
|
622
|
-
onSubmitEditing: () => setIsSearchActive(false),
|
|
623
|
-
returnKeyType: "search",
|
|
624
|
-
suggestions: allStorageKeys,
|
|
625
|
-
containerStyle: styles.headerSearchContainer
|
|
626
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TabSelector, {
|
|
627
|
-
tabs: [{
|
|
628
|
-
key: "browser",
|
|
629
|
-
label: "Storage"
|
|
630
|
-
}, {
|
|
631
|
-
key: "events",
|
|
632
|
-
label: `Events${filteredEvents.length > 0 ? ` (${filteredEvents.length})` : ""}`
|
|
633
|
-
}],
|
|
634
|
-
activeTab: activeTab,
|
|
635
|
-
onTabChange: tab => {
|
|
636
|
-
setActiveTab(tab);
|
|
637
|
-
setSelectedHistoryKey(null);
|
|
638
|
-
setSelectedHistoryEventIndex(null);
|
|
578
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TickProvider, {
|
|
579
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
|
|
580
|
+
visible: visible,
|
|
581
|
+
onClose: onClose,
|
|
582
|
+
onBack: currentBackHandler,
|
|
583
|
+
onMinimize: onMinimize,
|
|
584
|
+
persistenceKey: persistenceKey,
|
|
585
|
+
header: {
|
|
586
|
+
showToggleButton: true,
|
|
587
|
+
customContent: showFilters ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
|
|
588
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
|
|
589
|
+
onBack: () => setShowFilters(false)
|
|
590
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
|
|
591
|
+
title: "Filters"
|
|
592
|
+
})]
|
|
593
|
+
}) : selectedHistoryKey ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
|
|
594
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
|
|
595
|
+
onBack: selectedHistoryEventIndex !== null ? () => setSelectedHistoryEventIndex(null) : handleBackFromHistory
|
|
596
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
|
|
597
|
+
title: `${selectedHistoryKey} History`,
|
|
598
|
+
centered: true
|
|
599
|
+
})]
|
|
600
|
+
}) : selectedConversation ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
|
|
601
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
|
|
602
|
+
onBack: () => {
|
|
639
603
|
setSelectedConversationKey(null);
|
|
640
604
|
setSelectedEventIndex(0);
|
|
641
605
|
}
|
|
642
|
-
})
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
606
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
|
|
607
|
+
title: selectedConversation.key
|
|
608
|
+
})]
|
|
609
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
|
|
610
|
+
children: [onBack && /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
|
|
611
|
+
onBack: onBack
|
|
612
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
|
|
613
|
+
title: "",
|
|
614
|
+
children: isSearchActive ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.SearchBar, {
|
|
615
|
+
value: searchQuery,
|
|
616
|
+
onChange: setSearchQuery,
|
|
617
|
+
onClear: () => {
|
|
618
|
+
setSearchQuery("");
|
|
619
|
+
setIsSearchActive(false);
|
|
620
|
+
},
|
|
621
|
+
placeholder: "Search storage keys...",
|
|
622
|
+
autoFocus: true,
|
|
623
|
+
onSubmitEditing: () => setIsSearchActive(false),
|
|
624
|
+
returnKeyType: "search",
|
|
625
|
+
suggestions: allStorageKeys,
|
|
626
|
+
containerStyle: styles.headerSearchContainer
|
|
627
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TabSelector, {
|
|
628
|
+
tabs: [{
|
|
629
|
+
key: "browser",
|
|
630
|
+
label: "Storage"
|
|
631
|
+
}, {
|
|
632
|
+
key: "events",
|
|
633
|
+
label: `Events${filteredEvents.length > 0 ? ` (${filteredEvents.length})` : ""}`
|
|
634
|
+
}],
|
|
635
|
+
activeTab: activeTab,
|
|
636
|
+
onTabChange: tab => {
|
|
637
|
+
setActiveTab(tab);
|
|
638
|
+
setSelectedHistoryKey(null);
|
|
639
|
+
setSelectedHistoryEventIndex(null);
|
|
640
|
+
setSelectedConversationKey(null);
|
|
641
|
+
setSelectedEventIndex(0);
|
|
642
|
+
}
|
|
650
643
|
})
|
|
651
|
-
}),
|
|
644
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions, {
|
|
652
645
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
653
|
-
onPress:
|
|
654
|
-
style: styles.iconButton,
|
|
655
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.
|
|
646
|
+
onPress: handleToggleFilters,
|
|
647
|
+
style: [styles.iconButton, (ignoredPatterns.size > 0 || enabledStorageTypes.size < 3) && styles.activeFilterButton],
|
|
648
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Filter, {
|
|
656
649
|
size: 14,
|
|
657
|
-
color: _sharedUi.macOSColors.text.secondary
|
|
650
|
+
color: ignoredPatterns.size > 0 || enabledStorageTypes.size < 3 ? _sharedUi.macOSColors.semantic.debug : _sharedUi.macOSColors.text.secondary
|
|
658
651
|
})
|
|
659
|
-
}), /*#__PURE__*/(0, _jsxRuntime.
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
652
|
+
}), activeTab === "browser" && !isSearchActive && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
653
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
654
|
+
onPress: () => setIsSearchActive(true),
|
|
655
|
+
style: styles.iconButton,
|
|
656
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Search, {
|
|
657
|
+
size: 14,
|
|
658
|
+
color: _sharedUi.macOSColors.text.secondary
|
|
659
|
+
})
|
|
660
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarCopyButton, {
|
|
661
|
+
value: getStorageSnapshot,
|
|
662
|
+
disabled: storageDataRef.current.length === 0,
|
|
663
|
+
buttonStyle: styles.iconButton
|
|
664
|
+
})]
|
|
665
|
+
}), activeTab === "events" && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
666
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarCopyButton, {
|
|
667
|
+
value: getEventsSnapshot,
|
|
668
|
+
disabled: filteredEvents.length === 0,
|
|
669
|
+
buttonStyle: styles.iconButton
|
|
670
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.PowerToggleButton, {
|
|
671
|
+
isEnabled: isListening,
|
|
672
|
+
onToggle: handleToggleListening,
|
|
673
|
+
accessibilityLabel: "Toggle storage event monitoring"
|
|
674
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarClearButton, {
|
|
675
|
+
onPress: handleClearEvents,
|
|
676
|
+
buttonStyle: styles.iconButton
|
|
677
|
+
})]
|
|
676
678
|
})]
|
|
677
679
|
})]
|
|
678
|
-
})
|
|
679
|
-
}
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
680
|
+
})
|
|
681
|
+
},
|
|
682
|
+
onModeChange: handleModeChange,
|
|
683
|
+
enablePersistence: true,
|
|
684
|
+
initialMode: "bottomSheet",
|
|
685
|
+
enableGlitchEffects: true,
|
|
686
|
+
styles: {},
|
|
687
|
+
footer: footerNode,
|
|
688
|
+
footerHeight: footerNode ? 68 : 0,
|
|
689
|
+
children: renderContent()
|
|
690
|
+
})
|
|
689
691
|
});
|
|
690
692
|
}
|
|
691
693
|
const styles = _reactNative.StyleSheet.create({
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { memo } from "react";
|
|
12
|
-
import {
|
|
12
|
+
import { useRelativeTime, macOSColors, parseValue, CompactRow } from "@buoy-gg/shared-ui";
|
|
13
13
|
import { translateStorageAction } from "../utils/storageActionHelpers";
|
|
14
14
|
|
|
15
15
|
/** Value type for storage events */
|
|
@@ -82,6 +82,7 @@ export const StorageEventCard = /*#__PURE__*/memo(function StorageEventCard({
|
|
|
82
82
|
const actionColor = getActionColor(data.lastAction);
|
|
83
83
|
const actionLabel = translateStorageAction(data.lastAction);
|
|
84
84
|
const totalOps = data.totalOperations ?? 1;
|
|
85
|
+
const relativeTime = useRelativeTime(data.lastEventTimestamp);
|
|
85
86
|
return /*#__PURE__*/_jsx(CompactRow
|
|
86
87
|
// Status section (left) - shows "Storage" with action-colored dot
|
|
87
88
|
, {
|
|
@@ -98,7 +99,7 @@ export const StorageEventCard = /*#__PURE__*/memo(function StorageEventCard({
|
|
|
98
99
|
showChevron: showChevron
|
|
99
100
|
// Bottom right - timestamp
|
|
100
101
|
,
|
|
101
|
-
bottomRightText:
|
|
102
|
+
bottomRightText: relativeTime
|
|
102
103
|
// Interaction
|
|
103
104
|
,
|
|
104
105
|
isSelected: isSelected,
|
|
@@ -139,7 +139,8 @@ export function StorageEventDetailContent({
|
|
|
139
139
|
const selectedEvent = navigationItems[selectedEventIndex];
|
|
140
140
|
const valueToShow = selectedEvent?.data?.value ?? conversation.currentValue;
|
|
141
141
|
const action = selectedEvent?.action;
|
|
142
|
-
|
|
142
|
+
// Compute type from the parsed value so it matches what we actually render
|
|
143
|
+
const valueType = getValueType(parseValue(valueToShow));
|
|
143
144
|
const actionColor = getActionColor(action || "");
|
|
144
145
|
|
|
145
146
|
// Get events for diff comparison
|
|
@@ -244,17 +245,13 @@ export function StorageEventDetailContent({
|
|
|
244
245
|
})]
|
|
245
246
|
})]
|
|
246
247
|
}), /*#__PURE__*/_jsx(View, {
|
|
247
|
-
style: styles.
|
|
248
|
-
children:
|
|
248
|
+
style: styles.dataViewerContainer,
|
|
249
|
+
children: /*#__PURE__*/_jsx(DataViewer, {
|
|
249
250
|
title: "",
|
|
250
251
|
data: parsed,
|
|
251
|
-
showTypeFilter:
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
children: valueType === "array" ? "[]" : "{}"
|
|
255
|
-
}) : /*#__PURE__*/_jsx(Text, {
|
|
256
|
-
style: styles.valueText,
|
|
257
|
-
children: parsed === null ? "null" : parsed === undefined ? "undefined" : valueType === "string" ? `"${parsed}"` : String(parsed)
|
|
252
|
+
showTypeFilter: true,
|
|
253
|
+
rawMode: true,
|
|
254
|
+
initialExpanded: true
|
|
258
255
|
})
|
|
259
256
|
})]
|
|
260
257
|
});
|
|
@@ -524,5 +521,10 @@ const styles = StyleSheet.create({
|
|
|
524
521
|
fontSize: 8,
|
|
525
522
|
fontWeight: "700",
|
|
526
523
|
fontFamily: "monospace"
|
|
524
|
+
},
|
|
525
|
+
dataViewerContainer: {
|
|
526
|
+
marginTop: -12,
|
|
527
|
+
marginHorizontal: -12,
|
|
528
|
+
marginBottom: -12
|
|
527
529
|
}
|
|
528
530
|
});
|
|
@@ -218,28 +218,38 @@ export function StorageKeyCard({
|
|
|
218
218
|
style: styles.cardBody,
|
|
219
219
|
children: [/*#__PURE__*/_jsx(View, {
|
|
220
220
|
style: styles.dataViewerContainer,
|
|
221
|
-
children:
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
221
|
+
children: (() => {
|
|
222
|
+
const parsed = typeof storageKey.value === "string" ? (() => {
|
|
223
|
+
try {
|
|
224
|
+
return JSON.parse(storageKey.value);
|
|
225
|
+
} catch {
|
|
226
|
+
return storageKey.value;
|
|
227
|
+
}
|
|
228
|
+
})() : storageKey.value;
|
|
229
|
+
const isSimple = typeof parsed === "string" || typeof parsed === "number" || typeof parsed === "boolean";
|
|
230
|
+
return isSimple ? /*#__PURE__*/_jsxs(View, {
|
|
231
|
+
style: styles.simpleValueContainer,
|
|
232
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
233
|
+
style: styles.simpleValueLabel,
|
|
234
|
+
children: "Current Value:"
|
|
235
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
236
|
+
style: styles.simpleValueBox,
|
|
237
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
238
|
+
style: styles.simpleValueContent,
|
|
239
|
+
selectable: true,
|
|
240
|
+
children: String(parsed)
|
|
241
|
+
})
|
|
242
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
243
|
+
style: styles.valueTypeText,
|
|
244
|
+
children: ["Type: ", getValueTypeLabel(storageKey.value)]
|
|
245
|
+
})]
|
|
246
|
+
}) : /*#__PURE__*/_jsx(DataViewer, {
|
|
247
|
+
title: "Current Value",
|
|
248
|
+
data: parsed,
|
|
249
|
+
showTypeFilter: false,
|
|
250
|
+
rawMode: true
|
|
251
|
+
});
|
|
252
|
+
})()
|
|
243
253
|
}), hasExpectedValue && /*#__PURE__*/_jsxs(View, {
|
|
244
254
|
style: styles.valueContainer,
|
|
245
255
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
@@ -144,7 +144,10 @@ export function StorageKeyRow({
|
|
|
144
144
|
style: styles.dataViewerContainer,
|
|
145
145
|
children: /*#__PURE__*/_jsx(DataViewer, {
|
|
146
146
|
data: parsedValue,
|
|
147
|
-
title: "
|
|
147
|
+
title: "",
|
|
148
|
+
showTypeFilter: true,
|
|
149
|
+
rawMode: true,
|
|
150
|
+
initialExpanded: true
|
|
148
151
|
})
|
|
149
152
|
}) : /*#__PURE__*/_jsxs(View, {
|
|
150
153
|
style: styles.expandedRow,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useState, useCallback, useEffect, useRef, useMemo } from "react";
|
|
4
4
|
import { Text, View, TouchableOpacity, StyleSheet, FlatList, Alert } from "react-native";
|
|
5
5
|
import AsyncStorage from "@react-native-async-storage/async-storage";
|
|
6
|
-
import { JsModal, ModalHeader, TabSelector, parseValue, devToolsStorageKeys, macOSColors, Database, Filter, Search, SearchBar, PowerToggleButton, ToolbarCopyButton, ToolbarClearButton, truncatePayload } from "@buoy-gg/shared-ui";
|
|
6
|
+
import { JsModal, ModalHeader, TabSelector, parseValue, devToolsStorageKeys, macOSColors, Database, Filter, Search, SearchBar, PowerToggleButton, ToolbarCopyButton, ToolbarClearButton, truncatePayload, TickProvider } from "@buoy-gg/shared-ui";
|
|
7
7
|
import { StorageBrowserMode } from "./StorageBrowserMode";
|
|
8
8
|
import { clearAllAppStorage, clearAllStorageIncludingDevTools } from "../utils/clearAllStorage";
|
|
9
9
|
import { ProFeatureBanner } from "@buoy-gg/shared-ui";
|
|
@@ -571,117 +571,119 @@ export function StorageModalWithTabs({
|
|
|
571
571
|
setSelectedConversationKey(null);
|
|
572
572
|
setSelectedEventIndex(0);
|
|
573
573
|
} : onBack;
|
|
574
|
-
return /*#__PURE__*/_jsx(
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
setSelectedEventIndex(0);
|
|
600
|
-
}
|
|
601
|
-
}), /*#__PURE__*/_jsx(ModalHeader.Content, {
|
|
602
|
-
title: selectedConversation.key
|
|
603
|
-
})]
|
|
604
|
-
}) : /*#__PURE__*/_jsxs(ModalHeader, {
|
|
605
|
-
children: [onBack && /*#__PURE__*/_jsx(ModalHeader.Navigation, {
|
|
606
|
-
onBack: onBack
|
|
607
|
-
}), /*#__PURE__*/_jsx(ModalHeader.Content, {
|
|
608
|
-
title: "",
|
|
609
|
-
children: isSearchActive ? /*#__PURE__*/_jsx(SearchBar, {
|
|
610
|
-
value: searchQuery,
|
|
611
|
-
onChange: setSearchQuery,
|
|
612
|
-
onClear: () => {
|
|
613
|
-
setSearchQuery("");
|
|
614
|
-
setIsSearchActive(false);
|
|
615
|
-
},
|
|
616
|
-
placeholder: "Search storage keys...",
|
|
617
|
-
autoFocus: true,
|
|
618
|
-
onSubmitEditing: () => setIsSearchActive(false),
|
|
619
|
-
returnKeyType: "search",
|
|
620
|
-
suggestions: allStorageKeys,
|
|
621
|
-
containerStyle: styles.headerSearchContainer
|
|
622
|
-
}) : /*#__PURE__*/_jsx(TabSelector, {
|
|
623
|
-
tabs: [{
|
|
624
|
-
key: "browser",
|
|
625
|
-
label: "Storage"
|
|
626
|
-
}, {
|
|
627
|
-
key: "events",
|
|
628
|
-
label: `Events${filteredEvents.length > 0 ? ` (${filteredEvents.length})` : ""}`
|
|
629
|
-
}],
|
|
630
|
-
activeTab: activeTab,
|
|
631
|
-
onTabChange: tab => {
|
|
632
|
-
setActiveTab(tab);
|
|
633
|
-
setSelectedHistoryKey(null);
|
|
634
|
-
setSelectedHistoryEventIndex(null);
|
|
574
|
+
return /*#__PURE__*/_jsx(TickProvider, {
|
|
575
|
+
children: /*#__PURE__*/_jsx(JsModal, {
|
|
576
|
+
visible: visible,
|
|
577
|
+
onClose: onClose,
|
|
578
|
+
onBack: currentBackHandler,
|
|
579
|
+
onMinimize: onMinimize,
|
|
580
|
+
persistenceKey: persistenceKey,
|
|
581
|
+
header: {
|
|
582
|
+
showToggleButton: true,
|
|
583
|
+
customContent: showFilters ? /*#__PURE__*/_jsxs(ModalHeader, {
|
|
584
|
+
children: [/*#__PURE__*/_jsx(ModalHeader.Navigation, {
|
|
585
|
+
onBack: () => setShowFilters(false)
|
|
586
|
+
}), /*#__PURE__*/_jsx(ModalHeader.Content, {
|
|
587
|
+
title: "Filters"
|
|
588
|
+
})]
|
|
589
|
+
}) : selectedHistoryKey ? /*#__PURE__*/_jsxs(ModalHeader, {
|
|
590
|
+
children: [/*#__PURE__*/_jsx(ModalHeader.Navigation, {
|
|
591
|
+
onBack: selectedHistoryEventIndex !== null ? () => setSelectedHistoryEventIndex(null) : handleBackFromHistory
|
|
592
|
+
}), /*#__PURE__*/_jsx(ModalHeader.Content, {
|
|
593
|
+
title: `${selectedHistoryKey} History`,
|
|
594
|
+
centered: true
|
|
595
|
+
})]
|
|
596
|
+
}) : selectedConversation ? /*#__PURE__*/_jsxs(ModalHeader, {
|
|
597
|
+
children: [/*#__PURE__*/_jsx(ModalHeader.Navigation, {
|
|
598
|
+
onBack: () => {
|
|
635
599
|
setSelectedConversationKey(null);
|
|
636
600
|
setSelectedEventIndex(0);
|
|
637
601
|
}
|
|
638
|
-
})
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
602
|
+
}), /*#__PURE__*/_jsx(ModalHeader.Content, {
|
|
603
|
+
title: selectedConversation.key
|
|
604
|
+
})]
|
|
605
|
+
}) : /*#__PURE__*/_jsxs(ModalHeader, {
|
|
606
|
+
children: [onBack && /*#__PURE__*/_jsx(ModalHeader.Navigation, {
|
|
607
|
+
onBack: onBack
|
|
608
|
+
}), /*#__PURE__*/_jsx(ModalHeader.Content, {
|
|
609
|
+
title: "",
|
|
610
|
+
children: isSearchActive ? /*#__PURE__*/_jsx(SearchBar, {
|
|
611
|
+
value: searchQuery,
|
|
612
|
+
onChange: setSearchQuery,
|
|
613
|
+
onClear: () => {
|
|
614
|
+
setSearchQuery("");
|
|
615
|
+
setIsSearchActive(false);
|
|
616
|
+
},
|
|
617
|
+
placeholder: "Search storage keys...",
|
|
618
|
+
autoFocus: true,
|
|
619
|
+
onSubmitEditing: () => setIsSearchActive(false),
|
|
620
|
+
returnKeyType: "search",
|
|
621
|
+
suggestions: allStorageKeys,
|
|
622
|
+
containerStyle: styles.headerSearchContainer
|
|
623
|
+
}) : /*#__PURE__*/_jsx(TabSelector, {
|
|
624
|
+
tabs: [{
|
|
625
|
+
key: "browser",
|
|
626
|
+
label: "Storage"
|
|
627
|
+
}, {
|
|
628
|
+
key: "events",
|
|
629
|
+
label: `Events${filteredEvents.length > 0 ? ` (${filteredEvents.length})` : ""}`
|
|
630
|
+
}],
|
|
631
|
+
activeTab: activeTab,
|
|
632
|
+
onTabChange: tab => {
|
|
633
|
+
setActiveTab(tab);
|
|
634
|
+
setSelectedHistoryKey(null);
|
|
635
|
+
setSelectedHistoryEventIndex(null);
|
|
636
|
+
setSelectedConversationKey(null);
|
|
637
|
+
setSelectedEventIndex(0);
|
|
638
|
+
}
|
|
646
639
|
})
|
|
647
|
-
}),
|
|
640
|
+
}), /*#__PURE__*/_jsxs(ModalHeader.Actions, {
|
|
648
641
|
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
649
|
-
onPress:
|
|
650
|
-
style: styles.iconButton,
|
|
651
|
-
children: /*#__PURE__*/_jsx(
|
|
642
|
+
onPress: handleToggleFilters,
|
|
643
|
+
style: [styles.iconButton, (ignoredPatterns.size > 0 || enabledStorageTypes.size < 3) && styles.activeFilterButton],
|
|
644
|
+
children: /*#__PURE__*/_jsx(Filter, {
|
|
652
645
|
size: 14,
|
|
653
|
-
color: macOSColors.text.secondary
|
|
646
|
+
color: ignoredPatterns.size > 0 || enabledStorageTypes.size < 3 ? macOSColors.semantic.debug : macOSColors.text.secondary
|
|
654
647
|
})
|
|
655
|
-
}), /*#__PURE__*/
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
648
|
+
}), activeTab === "browser" && !isSearchActive && /*#__PURE__*/_jsxs(_Fragment, {
|
|
649
|
+
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
650
|
+
onPress: () => setIsSearchActive(true),
|
|
651
|
+
style: styles.iconButton,
|
|
652
|
+
children: /*#__PURE__*/_jsx(Search, {
|
|
653
|
+
size: 14,
|
|
654
|
+
color: macOSColors.text.secondary
|
|
655
|
+
})
|
|
656
|
+
}), /*#__PURE__*/_jsx(ToolbarCopyButton, {
|
|
657
|
+
value: getStorageSnapshot,
|
|
658
|
+
disabled: storageDataRef.current.length === 0,
|
|
659
|
+
buttonStyle: styles.iconButton
|
|
660
|
+
})]
|
|
661
|
+
}), activeTab === "events" && /*#__PURE__*/_jsxs(_Fragment, {
|
|
662
|
+
children: [/*#__PURE__*/_jsx(ToolbarCopyButton, {
|
|
663
|
+
value: getEventsSnapshot,
|
|
664
|
+
disabled: filteredEvents.length === 0,
|
|
665
|
+
buttonStyle: styles.iconButton
|
|
666
|
+
}), /*#__PURE__*/_jsx(PowerToggleButton, {
|
|
667
|
+
isEnabled: isListening,
|
|
668
|
+
onToggle: handleToggleListening,
|
|
669
|
+
accessibilityLabel: "Toggle storage event monitoring"
|
|
670
|
+
}), /*#__PURE__*/_jsx(ToolbarClearButton, {
|
|
671
|
+
onPress: handleClearEvents,
|
|
672
|
+
buttonStyle: styles.iconButton
|
|
673
|
+
})]
|
|
672
674
|
})]
|
|
673
675
|
})]
|
|
674
|
-
})
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
676
|
+
})
|
|
677
|
+
},
|
|
678
|
+
onModeChange: handleModeChange,
|
|
679
|
+
enablePersistence: true,
|
|
680
|
+
initialMode: "bottomSheet",
|
|
681
|
+
enableGlitchEffects: true,
|
|
682
|
+
styles: {},
|
|
683
|
+
footer: footerNode,
|
|
684
|
+
footerHeight: footerNode ? 68 : 0,
|
|
685
|
+
children: renderContent()
|
|
686
|
+
})
|
|
685
687
|
});
|
|
686
688
|
}
|
|
687
689
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageEventCard.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageEventCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,WAAW,GACX,QAAQ,GACR,OAAO,CAAC;AAEZ;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAU7D;AAED,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,kBAAkB,EAAE,IAAI,CAAC;IACzB,uCAAuC;IACvC,YAAY,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IACpC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,UAAU,qBAAqB;IAC7B,4BAA4B;IAC5B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,sCAAsC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAsDD,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"StorageEventCard.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageEventCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,WAAW,GACX,QAAQ,GACR,OAAO,CAAC;AAEZ;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAU7D;AAED,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,kBAAkB,EAAE,IAAI,CAAC;IACzB,uCAAuC;IACvC,YAAY,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IACpC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,UAAU,qBAAqB;IAC7B,4BAA4B;IAC5B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,sCAAsC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAsDD,eAAO,MAAM,gBAAgB,6DA8B3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageEventDetailContent.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageEventDetailContent.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AA6BlE,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,KAAK,YAAY,GACb,CAAC,iBAAiB,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAC/C,CAAC,SAAS,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE3C,UAAU,sBAAsB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EACL,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,WAAW,GACX,QAAQ,GACR,OAAO,CAAC;IACZ,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CACtC;AAED,UAAU,8BAA8B;IACtC,YAAY,EAAE,sBAAsB,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AA2CD,wBAAgB,yBAAyB,CAAC,EACxC,YAAY,EACZ,kBAAsB,EACtB,kBAA6B,EAC7B,qBAA6B,GAC9B,EAAE,8BAA8B,+
|
|
1
|
+
{"version":3,"file":"StorageEventDetailContent.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageEventDetailContent.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AA6BlE,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,KAAK,YAAY,GACb,CAAC,iBAAiB,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAC/C,CAAC,SAAS,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE3C,UAAU,sBAAsB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EACL,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,WAAW,GACX,QAAQ,GACR,OAAO,CAAC;IACZ,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CACtC;AAED,UAAU,8BAA8B;IACtC,YAAY,EAAE,sBAAsB,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AA2CD,wBAAgB,yBAAyB,CAAC,EACxC,YAAY,EACZ,kBAAsB,EACtB,kBAA6B,EAC7B,qBAA6B,GAC9B,EAAE,8BAA8B,+BA+YhC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,kBAAsB,EACtB,kBAA6B,GAC9B,EAAE;IACD,YAAY,EAAE,sBAAsB,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,+BAkBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageKeyCard.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageKeyCard.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA8B1C,UAAU,mBAAmB;IAC3B,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAiED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,UAAU,EACV,QAAQ,GACT,EAAE,mBAAmB,+
|
|
1
|
+
{"version":3,"file":"StorageKeyCard.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageKeyCard.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA8B1C,UAAU,mBAAmB;IAC3B,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAiED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,UAAU,EACV,QAAQ,GACT,EAAE,mBAAmB,+BAiMrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageModalWithTabs.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageModalWithTabs.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StorageModalWithTabs.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageModalWithTabs.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAsB9C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,UAAU,yBAAyB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC5C;AAqBD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,mBAAwB,GACzB,EAAE,yBAAyB,sCAqyB3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/storage",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.11",
|
|
4
4
|
"description": "storage package",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -25,22 +25,29 @@
|
|
|
25
25
|
"lib"
|
|
26
26
|
],
|
|
27
27
|
"sideEffects": false,
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "bob build",
|
|
30
|
+
"typecheck": "tsc --noEmit",
|
|
31
|
+
"prepublishOnly": "bob build",
|
|
32
|
+
"clean": "rimraf lib",
|
|
33
|
+
"test": "pnpm run typecheck"
|
|
34
|
+
},
|
|
28
35
|
"dependencies": {
|
|
29
|
-
"@buoy-gg/floating-tools-core": "
|
|
30
|
-
"@buoy-gg/shared-ui": "
|
|
36
|
+
"@buoy-gg/floating-tools-core": "workspace:*",
|
|
37
|
+
"@buoy-gg/shared-ui": "workspace:*"
|
|
31
38
|
},
|
|
32
39
|
"peerDependencies": {
|
|
33
|
-
"@buoy-gg/license": "2.1.
|
|
40
|
+
"@buoy-gg/license": "2.1.11",
|
|
34
41
|
"@react-native-async-storage/async-storage": ">=1.0.0",
|
|
35
42
|
"react": "*",
|
|
36
43
|
"react-native": "*"
|
|
37
44
|
},
|
|
38
45
|
"devDependencies": {
|
|
46
|
+
"@buoy-gg/license": "workspace:*",
|
|
39
47
|
"@react-native-async-storage/async-storage": "^2.1.0",
|
|
40
48
|
"@types/react": "^19.1.0",
|
|
41
49
|
"@types/react-native": "^0.73.0",
|
|
42
|
-
"typescript": "~5.8.3"
|
|
43
|
-
"@buoy-gg/license": "2.1.10"
|
|
50
|
+
"typescript": "~5.8.3"
|
|
44
51
|
},
|
|
45
52
|
"react-native-builder-bob": {
|
|
46
53
|
"source": "src",
|
|
@@ -73,11 +80,5 @@
|
|
|
73
80
|
"publishConfig": {
|
|
74
81
|
"access": "public",
|
|
75
82
|
"tag": "latest"
|
|
76
|
-
},
|
|
77
|
-
"scripts": {
|
|
78
|
-
"build": "bob build",
|
|
79
|
-
"typecheck": "tsc --noEmit",
|
|
80
|
-
"clean": "rimraf lib",
|
|
81
|
-
"test": "pnpm run typecheck"
|
|
82
83
|
}
|
|
83
|
-
}
|
|
84
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
PROPRIETARY SOFTWARE LICENSE
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024-present Buoy. All rights reserved.
|
|
4
|
-
|
|
5
|
-
This software and its source code are proprietary and confidential.
|
|
6
|
-
|
|
7
|
-
NOTICE: This is NOT open source software. This software is licensed,
|
|
8
|
-
not sold, and is protected by copyright laws and international treaties.
|
|
9
|
-
|
|
10
|
-
TERMS AND CONDITIONS:
|
|
11
|
-
|
|
12
|
-
1. LICENSE GRANT
|
|
13
|
-
Subject to the terms of this Agreement and payment of applicable fees,
|
|
14
|
-
Buoy grants you a limited, non-exclusive, non-transferable license
|
|
15
|
-
to use the compiled software packages in your applications.
|
|
16
|
-
|
|
17
|
-
2. RESTRICTIONS
|
|
18
|
-
You may NOT:
|
|
19
|
-
- Copy, modify, or distribute the source code
|
|
20
|
-
- Reverse engineer, decompile, or disassemble the software
|
|
21
|
-
- Remove or alter any proprietary notices or labels
|
|
22
|
-
- Sublicense, rent, lease, or lend the software
|
|
23
|
-
- Use the software to create competing products
|
|
24
|
-
- Share access credentials with unauthorized parties
|
|
25
|
-
|
|
26
|
-
3. OWNERSHIP
|
|
27
|
-
React Buoy retains all right, title, and interest in the software,
|
|
28
|
-
including all intellectual property rights. This license does not
|
|
29
|
-
grant you any rights to trademarks or service marks.
|
|
30
|
-
|
|
31
|
-
4. TERMINATION
|
|
32
|
-
This license is effective until terminated. Your rights under this
|
|
33
|
-
license will terminate automatically without notice if you fail to
|
|
34
|
-
comply with any of its terms. Upon termination, you must cease all
|
|
35
|
-
use and destroy all copies of the software.
|
|
36
|
-
|
|
37
|
-
5. DISCLAIMER OF WARRANTIES
|
|
38
|
-
THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
|
|
39
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
40
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
|
|
41
|
-
|
|
42
|
-
6. LIMITATION OF LIABILITY
|
|
43
|
-
IN NO EVENT SHALL BUOY BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
|
|
44
|
-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN
|
|
45
|
-
CONNECTION WITH THIS LICENSE OR THE USE OF THE SOFTWARE.
|
|
46
|
-
|
|
47
|
-
7. GOVERNING LAW
|
|
48
|
-
This Agreement shall be governed by and construed in accordance with
|
|
49
|
-
the laws of the United States, without regard to its conflict of
|
|
50
|
-
law provisions.
|
|
51
|
-
|
|
52
|
-
For licensing inquiries and subscription information:
|
|
53
|
-
- Website: https://buoy.gg
|
|
54
|
-
- Email: AustinLovesWorking@gmail.com
|
|
55
|
-
|
|
56
|
-
Unauthorized reproduction or distribution of this software, or any
|
|
57
|
-
portion of it, may result in severe civil and criminal penalties,
|
|
58
|
-
and will be prosecuted to the maximum extent possible under the law.
|