@buoy-gg/storage 7.0.32 → 7.0.33
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/GameUIStorageBrowser.js +54 -13
- package/lib/commonjs/storage/components/StorageModalWithTabs.js +20 -12
- package/lib/module/storage/components/GameUIStorageBrowser.js +55 -14
- package/lib/module/storage/components/StorageModalWithTabs.js +22 -14
- package/lib/typescript/storage/components/GameUIStorageBrowser.d.ts.map +1 -1
- package/lib/typescript/storage/components/StorageModalWithTabs.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -861,19 +861,60 @@ function GameUIStorageBrowser({
|
|
|
861
861
|
children: searchQuery ? "Upgrade to Pro to search your full storage" : "Upgrade to Pro to unlock full storage access"
|
|
862
862
|
})]
|
|
863
863
|
}) : null;
|
|
864
|
-
const emptyStateNode =
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
864
|
+
const emptyStateNode = (() => {
|
|
865
|
+
// Short-circuits on the first real key, so this costs nothing.
|
|
866
|
+
const hasAnyKeys = allStorageKeys.some(k => !(0, _sharedUi.isDevToolsStorageKey)(k.key));
|
|
867
|
+
|
|
868
|
+
// Three causes here are unlike any other tool's: an empty MISSING or
|
|
869
|
+
// ISSUES list is a PASS, not a failure, and an empty VALID list means
|
|
870
|
+
// everything is broken. Those skip the shared resolver and say so.
|
|
871
|
+
let content;
|
|
872
|
+
if (searchQuery || !hasAnyKeys) {
|
|
873
|
+
content = (0, _sharedUi.resolveListEmptyState)({
|
|
874
|
+
subject: "keys",
|
|
875
|
+
verb: "registered",
|
|
876
|
+
search: searchQuery,
|
|
877
|
+
total: hasAnyKeys ? 1 : 0,
|
|
878
|
+
waiting: {
|
|
879
|
+
// Previously this fell into the "all" branch and claimed every key
|
|
880
|
+
// had an issue — of the zero keys that exist.
|
|
881
|
+
otto: "empty",
|
|
882
|
+
title: "No storage keys",
|
|
883
|
+
message: "Nothing is registered for this tool to read."
|
|
884
|
+
}
|
|
885
|
+
});
|
|
886
|
+
if (searchQuery && hasAnyKeys) {
|
|
887
|
+
// No count: the pre-search total would mean re-running the whole key
|
|
888
|
+
// pipeline a second time for a number the sentence does not need.
|
|
889
|
+
content = {
|
|
890
|
+
...content,
|
|
891
|
+
message: "No keys match. Clear the search to see them."
|
|
892
|
+
};
|
|
893
|
+
}
|
|
894
|
+
} else if (activeFilter === "missing") {
|
|
895
|
+
content = {
|
|
896
|
+
otto: "thumbsup",
|
|
897
|
+
title: "No missing keys",
|
|
898
|
+
message: "All required keys are present"
|
|
899
|
+
};
|
|
900
|
+
} else if (activeFilter === "issues") {
|
|
901
|
+
content = {
|
|
902
|
+
otto: "cool",
|
|
903
|
+
title: "No issues found",
|
|
904
|
+
message: "All storage keys are correctly configured"
|
|
905
|
+
};
|
|
906
|
+
} else {
|
|
907
|
+
content = {
|
|
908
|
+
otto: "broken",
|
|
909
|
+
title: "No valid keys found",
|
|
910
|
+
message: "All keys have issues or are missing"
|
|
911
|
+
};
|
|
912
|
+
}
|
|
913
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolEmptyState, {
|
|
914
|
+
...content,
|
|
915
|
+
testID: "buoy-storage-keys-empty"
|
|
916
|
+
});
|
|
917
|
+
})();
|
|
877
918
|
const upgradeModalNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ProUpgradeModal, {
|
|
878
919
|
visible: showUpgradeModal,
|
|
879
920
|
onClose: () => setShowUpgradeModal(false),
|
|
@@ -676,18 +676,26 @@ function StorageModalWithTabs({
|
|
|
676
676
|
const filtered = storageTypeFilter !== "all";
|
|
677
677
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
678
678
|
style: styles.flexFill,
|
|
679
|
-
children: [eventTypeFilterBar, /*#__PURE__*/(0, _jsxRuntime.
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
}
|
|
679
|
+
children: [eventTypeFilterBar, /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolEmptyState, {
|
|
680
|
+
testID: "buoy-storage-events-empty"
|
|
681
|
+
// Three literal causes, no search on this tab — so it renders
|
|
682
|
+
// through the shared shell without the shared resolver. The
|
|
683
|
+
// backend pills need their own sentence naming the pill that
|
|
684
|
+
// undoes them, which the generic "Filtered Out" would drop.
|
|
685
|
+
,
|
|
686
|
+
...(!isListening ? {
|
|
687
|
+
otto: "paused",
|
|
688
|
+
title: "Event listener is paused",
|
|
689
|
+
message: "Press play to start monitoring"
|
|
690
|
+
} : filtered ? {
|
|
691
|
+
otto: "filtering",
|
|
692
|
+
title: `No ${storageTypeFilter} events`,
|
|
693
|
+
message: "Other backends have events — pick All Types to see them"
|
|
694
|
+
} : {
|
|
695
|
+
otto: "listening",
|
|
696
|
+
title: "No storage events yet",
|
|
697
|
+
message: "Storage operations will appear here"
|
|
698
|
+
})
|
|
691
699
|
})]
|
|
692
700
|
});
|
|
693
701
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useMemo, useCallback, useState, useEffect, useRef } from "react";
|
|
4
4
|
import { StyleSheet, Text, View, TouchableOpacity, ScrollView, Alert } from "react-native";
|
|
5
5
|
import { absoluteFill, useLimit, TIER_LIMITS } from "@buoy-gg/shared-ui";
|
|
6
|
-
import { Database, Zap, ProBadge, ProUpgradeModal } from "@buoy-gg/shared-ui";
|
|
6
|
+
import { Database, Zap, ProBadge, ProUpgradeModal, ToolEmptyState, resolveListEmptyState } from "@buoy-gg/shared-ui";
|
|
7
7
|
import { isDevToolsStorageKey } from "@buoy-gg/shared-ui";
|
|
8
8
|
import { StorageKeySection, storageRowId } from "./StorageKeySection";
|
|
9
9
|
import { StorageKeyDetailScreen } from "./StorageKeyDetailScreen";
|
|
@@ -859,19 +859,60 @@ export function GameUIStorageBrowser({
|
|
|
859
859
|
children: searchQuery ? "Upgrade to Pro to search your full storage" : "Upgrade to Pro to unlock full storage access"
|
|
860
860
|
})]
|
|
861
861
|
}) : null;
|
|
862
|
-
const emptyStateNode =
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
862
|
+
const emptyStateNode = (() => {
|
|
863
|
+
// Short-circuits on the first real key, so this costs nothing.
|
|
864
|
+
const hasAnyKeys = allStorageKeys.some(k => !isDevToolsStorageKey(k.key));
|
|
865
|
+
|
|
866
|
+
// Three causes here are unlike any other tool's: an empty MISSING or
|
|
867
|
+
// ISSUES list is a PASS, not a failure, and an empty VALID list means
|
|
868
|
+
// everything is broken. Those skip the shared resolver and say so.
|
|
869
|
+
let content;
|
|
870
|
+
if (searchQuery || !hasAnyKeys) {
|
|
871
|
+
content = resolveListEmptyState({
|
|
872
|
+
subject: "keys",
|
|
873
|
+
verb: "registered",
|
|
874
|
+
search: searchQuery,
|
|
875
|
+
total: hasAnyKeys ? 1 : 0,
|
|
876
|
+
waiting: {
|
|
877
|
+
// Previously this fell into the "all" branch and claimed every key
|
|
878
|
+
// had an issue — of the zero keys that exist.
|
|
879
|
+
otto: "empty",
|
|
880
|
+
title: "No storage keys",
|
|
881
|
+
message: "Nothing is registered for this tool to read."
|
|
882
|
+
}
|
|
883
|
+
});
|
|
884
|
+
if (searchQuery && hasAnyKeys) {
|
|
885
|
+
// No count: the pre-search total would mean re-running the whole key
|
|
886
|
+
// pipeline a second time for a number the sentence does not need.
|
|
887
|
+
content = {
|
|
888
|
+
...content,
|
|
889
|
+
message: "No keys match. Clear the search to see them."
|
|
890
|
+
};
|
|
891
|
+
}
|
|
892
|
+
} else if (activeFilter === "missing") {
|
|
893
|
+
content = {
|
|
894
|
+
otto: "thumbsup",
|
|
895
|
+
title: "No missing keys",
|
|
896
|
+
message: "All required keys are present"
|
|
897
|
+
};
|
|
898
|
+
} else if (activeFilter === "issues") {
|
|
899
|
+
content = {
|
|
900
|
+
otto: "cool",
|
|
901
|
+
title: "No issues found",
|
|
902
|
+
message: "All storage keys are correctly configured"
|
|
903
|
+
};
|
|
904
|
+
} else {
|
|
905
|
+
content = {
|
|
906
|
+
otto: "broken",
|
|
907
|
+
title: "No valid keys found",
|
|
908
|
+
message: "All keys have issues or are missing"
|
|
909
|
+
};
|
|
910
|
+
}
|
|
911
|
+
return /*#__PURE__*/_jsx(ToolEmptyState, {
|
|
912
|
+
...content,
|
|
913
|
+
testID: "buoy-storage-keys-empty"
|
|
914
|
+
});
|
|
915
|
+
})();
|
|
875
916
|
const upgradeModalNode = /*#__PURE__*/_jsx(ProUpgradeModal, {
|
|
876
917
|
visible: showUpgradeModal,
|
|
877
918
|
onClose: () => setShowUpgradeModal(false),
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useState, useCallback, useEffect, useRef, useMemo } from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { 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, night,
|
|
6
|
+
import { JsModal, ModalHeader, TabSelector, parseValue, devToolsStorageKeys, macOSColors, night, ToolEmptyState, Filter, RefreshCw, Search, SearchBar, PowerToggleButton, ToolbarCopyButton, ToolbarClearButton, truncatePayload, TickProvider, useLimit, TIER_LIMITS, windowDragProps } from "@buoy-gg/shared-ui";
|
|
7
7
|
import { StorageBrowserMode } from "./StorageBrowserMode";
|
|
8
8
|
import { StorageTypeFilterBar, countByStorageType } from "./StorageTypeFilterBar";
|
|
9
9
|
import { clearAllAppStorage, clearAllStorageIncludingDevTools } from "../utils/clearAllStorage";
|
|
@@ -671,18 +671,26 @@ export function StorageModalWithTabs({
|
|
|
671
671
|
const filtered = storageTypeFilter !== "all";
|
|
672
672
|
return /*#__PURE__*/_jsxs(View, {
|
|
673
673
|
style: styles.flexFill,
|
|
674
|
-
children: [eventTypeFilterBar, /*#__PURE__*/
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
}
|
|
674
|
+
children: [eventTypeFilterBar, /*#__PURE__*/_jsx(ToolEmptyState, {
|
|
675
|
+
testID: "buoy-storage-events-empty"
|
|
676
|
+
// Three literal causes, no search on this tab — so it renders
|
|
677
|
+
// through the shared shell without the shared resolver. The
|
|
678
|
+
// backend pills need their own sentence naming the pill that
|
|
679
|
+
// undoes them, which the generic "Filtered Out" would drop.
|
|
680
|
+
,
|
|
681
|
+
...(!isListening ? {
|
|
682
|
+
otto: "paused",
|
|
683
|
+
title: "Event listener is paused",
|
|
684
|
+
message: "Press play to start monitoring"
|
|
685
|
+
} : filtered ? {
|
|
686
|
+
otto: "filtering",
|
|
687
|
+
title: `No ${storageTypeFilter} events`,
|
|
688
|
+
message: "Other backends have events — pick All Types to see them"
|
|
689
|
+
} : {
|
|
690
|
+
otto: "listening",
|
|
691
|
+
title: "No storage events yet",
|
|
692
|
+
message: "Storage operations will appear here"
|
|
693
|
+
})
|
|
686
694
|
})]
|
|
687
695
|
});
|
|
688
696
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameUIStorageBrowser.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/GameUIStorageBrowser.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,gBAAgB,EACjB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"GameUIStorageBrowser.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/GameUIStorageBrowser.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAmBf,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAmB,MAAM,UAAU,CAAC;AAK/E,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AA4C9B;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAmC,CAAC;AAEpE,UAAU,yBAAyB;IACjC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,mBAAmB,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;IACvD;;;;OAIG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC3D,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,KAAK,IAAI,CAAC;IACX,yCAAyC;IACzC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,kCAAkC;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IACjD,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,mBAAwB,EACxB,WAAmB,EACnB,eAA0C,EAC1C,eAAe,EACf,YAAY,EACZ,WAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,SAAgB,EAChB,SAAS,EACT,aAAa,GACd,EAAE,yBAAyB,+BA2nC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageModalWithTabs.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageModalWithTabs.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,UAAU,CAAC;AAY9D,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAchF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAqC,CAAC;AAExE,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;IAC3C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IAClD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAqBD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,mBAAwB,EACxB,MAAc,EACd,WAAW,EACX,SAAS,EACT,aAAa,GACd,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"StorageModalWithTabs.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageModalWithTabs.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,UAAU,CAAC;AAY9D,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAchF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAqC,CAAC;AAExE,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;IAC3C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IAClD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAqBD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,mBAAwB,EACxB,MAAc,EACd,WAAW,EACX,SAAS,EACT,aAAa,GACd,EAAE,yBAAyB,sCAsiC3B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,GAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,+BAG9E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/storage",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.33",
|
|
4
4
|
"description": "Browse & edit AsyncStorage, MMKV & SecureStore inside your React Native app, with change history. Part of Buoy devtools.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"**/snapshotProvider.ts"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@buoy-gg/floating-tools-core": "^7.0.
|
|
33
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
32
|
+
"@buoy-gg/floating-tools-core": "^7.0.33",
|
|
33
|
+
"@buoy-gg/shared-ui": "^7.0.33"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@buoy-gg/license": "7.0.
|
|
36
|
+
"@buoy-gg/license": "7.0.33",
|
|
37
37
|
"@react-native-async-storage/async-storage": "^2.0.0 || ^3.1.0",
|
|
38
38
|
"react": "*",
|
|
39
39
|
"react-native": "*"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@types/react": "^19.1.0",
|
|
44
44
|
"@types/react-native": "^0.73.0",
|
|
45
45
|
"typescript": "~5.8.3",
|
|
46
|
-
"@buoy-gg/license": "^7.0.
|
|
46
|
+
"@buoy-gg/license": "^7.0.33"
|
|
47
47
|
},
|
|
48
48
|
"react-native-builder-bob": {
|
|
49
49
|
"source": "src",
|