react-native-nitro-storage 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -24
- package/android/CMakeLists.txt +30 -24
- package/android/src/main/cpp/AndroidStorageAdapterCpp.cpp +10 -0
- package/android/src/main/cpp/AndroidStorageAdapterCpp.hpp +13 -0
- package/android/src/main/cpp/cpp-adapter.cpp +3 -2
- package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +10 -0
- package/cpp/bindings/HybridStorage.cpp +59 -17
- package/cpp/bindings/HybridStorage.hpp +4 -0
- package/cpp/core/NativeStorageAdapter.hpp +3 -0
- package/ios/IOSStorageAdapterCpp.hpp +3 -0
- package/ios/IOSStorageAdapterCpp.mm +41 -77
- package/lib/commonjs/Storage.nitro.js +0 -7
- package/lib/commonjs/Storage.nitro.js.map +1 -1
- package/lib/commonjs/Storage.types.js +13 -0
- package/lib/commonjs/Storage.types.js.map +1 -0
- package/lib/commonjs/index.js +127 -14
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +268 -0
- package/lib/commonjs/index.web.js.map +1 -0
- package/lib/commonjs/migration.js +39 -0
- package/lib/commonjs/migration.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/Storage.nitro.js +1 -6
- package/lib/module/Storage.nitro.js.map +1 -1
- package/lib/module/Storage.types.js +9 -0
- package/lib/module/Storage.types.js.map +1 -0
- package/lib/module/index.js +122 -13
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +257 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/migration.js +35 -0
- package/lib/module/migration.js.map +1 -0
- package/lib/typescript/Storage.nitro.d.ts +5 -6
- package/lib/typescript/Storage.nitro.d.ts.map +1 -1
- package/lib/typescript/Storage.types.d.ts +6 -0
- package/lib/typescript/Storage.types.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +20 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +50 -0
- package/lib/typescript/index.web.d.ts.map +1 -0
- package/lib/typescript/migration.d.ts +12 -0
- package/lib/typescript/migration.d.ts.map +1 -0
- package/nitrogen/generated/android/NitroStorage+autolinking.cmake +1 -1
- package/nitrogen/generated/android/NitroStorage+autolinking.gradle +1 -1
- package/nitrogen/generated/android/NitroStorageOnLoad.cpp +1 -1
- package/nitrogen/generated/android/NitroStorageOnLoad.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitrostorage/NitroStorageOnLoad.kt +1 -1
- package/nitrogen/generated/ios/NitroStorage+autolinking.rb +2 -2
- package/nitrogen/generated/ios/NitroStorage-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/NitroStorage-Swift-Cxx-Bridge.hpp +1 -1
- package/nitrogen/generated/ios/NitroStorage-Swift-Cxx-Umbrella.hpp +1 -1
- package/nitrogen/generated/ios/NitroStorageAutolinking.mm +1 -1
- package/nitrogen/generated/ios/NitroStorageAutolinking.swift +1 -1
- package/nitrogen/generated/shared/c++/HybridStorageSpec.cpp +5 -1
- package/nitrogen/generated/shared/c++/HybridStorageSpec.hpp +6 -1
- package/package.json +7 -25
- package/src/Storage.nitro.ts +6 -7
- package/src/Storage.types.ts +5 -0
- package/src/index.ts +153 -16
- package/src/index.web.ts +341 -0
- package/src/migration.ts +53 -0
package/lib/commonjs/index.js
CHANGED
|
@@ -6,14 +6,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
Object.defineProperty(exports, "StorageScope", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _Storage.StorageScope;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
exports.createStorageItem = createStorageItem;
|
|
13
|
+
exports.getBatch = getBatch;
|
|
14
|
+
exports.removeBatch = removeBatch;
|
|
15
|
+
exports.setBatch = setBatch;
|
|
16
|
+
exports.storage = void 0;
|
|
17
|
+
exports.useSetStorage = useSetStorage;
|
|
13
18
|
exports.useStorage = useStorage;
|
|
14
19
|
var _react = require("react");
|
|
15
20
|
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
16
|
-
var
|
|
21
|
+
var _Storage = require("./Storage.types");
|
|
17
22
|
let _storageModule = null;
|
|
18
23
|
function getStorageModule() {
|
|
19
24
|
if (!_storageModule) {
|
|
@@ -21,6 +26,26 @@ function getStorageModule() {
|
|
|
21
26
|
}
|
|
22
27
|
return _storageModule;
|
|
23
28
|
}
|
|
29
|
+
const memoryStore = new Map();
|
|
30
|
+
const memoryListeners = new Set();
|
|
31
|
+
function notifyMemoryListeners(key, value) {
|
|
32
|
+
memoryListeners.forEach(listener => listener(key, value));
|
|
33
|
+
}
|
|
34
|
+
const storage = exports.storage = {
|
|
35
|
+
clear: scope => {
|
|
36
|
+
if (scope === _Storage.StorageScope.Memory) {
|
|
37
|
+
memoryStore.clear();
|
|
38
|
+
notifyMemoryListeners("", undefined);
|
|
39
|
+
} else {
|
|
40
|
+
getStorageModule().clear(scope);
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
clearAll: () => {
|
|
44
|
+
storage.clear(_Storage.StorageScope.Memory);
|
|
45
|
+
storage.clear(_Storage.StorageScope.Disk);
|
|
46
|
+
storage.clear(_Storage.StorageScope.Secure);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
24
49
|
function defaultSerialize(value) {
|
|
25
50
|
return JSON.stringify(value);
|
|
26
51
|
}
|
|
@@ -30,21 +55,41 @@ function defaultDeserialize(value) {
|
|
|
30
55
|
function createStorageItem(config) {
|
|
31
56
|
const serialize = config.serialize ?? defaultSerialize;
|
|
32
57
|
const deserialize = config.deserialize ?? defaultDeserialize;
|
|
58
|
+
const isMemory = config.scope === _Storage.StorageScope.Memory;
|
|
33
59
|
const listeners = new Set();
|
|
34
60
|
let unsubscribe = null;
|
|
35
61
|
const ensureSubscription = () => {
|
|
36
62
|
if (!unsubscribe) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
63
|
+
if (isMemory) {
|
|
64
|
+
const listener = key => {
|
|
65
|
+
if (key === "" || key === config.key) {
|
|
66
|
+
lastRaw = undefined;
|
|
67
|
+
lastValue = undefined;
|
|
68
|
+
listeners.forEach(l => l());
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
memoryListeners.add(listener);
|
|
72
|
+
unsubscribe = () => memoryListeners.delete(listener);
|
|
73
|
+
} else {
|
|
74
|
+
unsubscribe = getStorageModule().addOnChange(config.scope, key => {
|
|
75
|
+
if (key === "" || key === config.key) {
|
|
76
|
+
lastRaw = undefined;
|
|
77
|
+
lastValue = undefined;
|
|
78
|
+
listeners.forEach(listener => listener());
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
42
82
|
}
|
|
43
83
|
};
|
|
44
84
|
let lastRaw;
|
|
45
85
|
let lastValue;
|
|
46
86
|
const get = () => {
|
|
47
|
-
|
|
87
|
+
let raw;
|
|
88
|
+
if (isMemory) {
|
|
89
|
+
raw = memoryStore.get(config.key);
|
|
90
|
+
} else {
|
|
91
|
+
raw = getStorageModule().get(config.key, config.scope);
|
|
92
|
+
}
|
|
48
93
|
if (raw === lastRaw && lastValue !== undefined) {
|
|
49
94
|
return lastValue;
|
|
50
95
|
}
|
|
@@ -52,16 +97,32 @@ function createStorageItem(config) {
|
|
|
52
97
|
if (raw === undefined) {
|
|
53
98
|
lastValue = config.defaultValue;
|
|
54
99
|
} else {
|
|
55
|
-
|
|
100
|
+
if (isMemory) {
|
|
101
|
+
lastValue = raw;
|
|
102
|
+
} else {
|
|
103
|
+
lastValue = deserialize(raw);
|
|
104
|
+
}
|
|
56
105
|
}
|
|
57
106
|
return lastValue;
|
|
58
107
|
};
|
|
59
|
-
const set =
|
|
60
|
-
const
|
|
61
|
-
|
|
108
|
+
const set = valueOrFn => {
|
|
109
|
+
const currentValue = get();
|
|
110
|
+
const newValue = typeof valueOrFn === "function" ? valueOrFn(currentValue) : valueOrFn;
|
|
111
|
+
if (isMemory) {
|
|
112
|
+
memoryStore.set(config.key, newValue);
|
|
113
|
+
notifyMemoryListeners(config.key, newValue);
|
|
114
|
+
} else {
|
|
115
|
+
const serialized = serialize(newValue);
|
|
116
|
+
getStorageModule().set(config.key, serialized, config.scope);
|
|
117
|
+
}
|
|
62
118
|
};
|
|
63
119
|
const deleteItem = () => {
|
|
64
|
-
|
|
120
|
+
if (isMemory) {
|
|
121
|
+
memoryStore.delete(config.key);
|
|
122
|
+
notifyMemoryListeners(config.key, undefined);
|
|
123
|
+
} else {
|
|
124
|
+
getStorageModule().remove(config.key, config.scope);
|
|
125
|
+
}
|
|
65
126
|
};
|
|
66
127
|
const subscribe = callback => {
|
|
67
128
|
ensureSubscription();
|
|
@@ -78,11 +139,63 @@ function createStorageItem(config) {
|
|
|
78
139
|
get,
|
|
79
140
|
set,
|
|
80
141
|
delete: deleteItem,
|
|
81
|
-
subscribe
|
|
142
|
+
subscribe,
|
|
143
|
+
serialize,
|
|
144
|
+
deserialize,
|
|
145
|
+
_triggerListeners: () => {
|
|
146
|
+
lastRaw = undefined;
|
|
147
|
+
lastValue = undefined;
|
|
148
|
+
listeners.forEach(l => l());
|
|
149
|
+
},
|
|
150
|
+
scope: config.scope,
|
|
151
|
+
key: config.key
|
|
82
152
|
};
|
|
83
153
|
}
|
|
84
154
|
function useStorage(item) {
|
|
85
155
|
const value = (0, _react.useSyncExternalStore)(item.subscribe, item.get, item.get);
|
|
86
156
|
return [value, item.set];
|
|
87
157
|
}
|
|
158
|
+
function useSetStorage(item) {
|
|
159
|
+
return item.set;
|
|
160
|
+
}
|
|
161
|
+
function getBatch(items, scope) {
|
|
162
|
+
if (scope === _Storage.StorageScope.Memory) {
|
|
163
|
+
return items.map(item => item.get());
|
|
164
|
+
}
|
|
165
|
+
const keys = items.map(item => item.key);
|
|
166
|
+
const rawValues = getStorageModule().getBatch(keys, scope);
|
|
167
|
+
return items.map((item, idx) => {
|
|
168
|
+
const raw = rawValues[idx];
|
|
169
|
+
if (raw === undefined) {
|
|
170
|
+
return item.get();
|
|
171
|
+
}
|
|
172
|
+
return item.deserialize(raw);
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
function setBatch(items, scope) {
|
|
176
|
+
if (scope === _Storage.StorageScope.Memory) {
|
|
177
|
+
items.forEach(({
|
|
178
|
+
item,
|
|
179
|
+
value
|
|
180
|
+
}) => item.set(value));
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const keys = items.map(i => i.item.key);
|
|
184
|
+
const values = items.map(i => i.item.serialize(i.value));
|
|
185
|
+
getStorageModule().setBatch(keys, values, scope);
|
|
186
|
+
items.forEach(({
|
|
187
|
+
item
|
|
188
|
+
}) => {
|
|
189
|
+
item._triggerListeners();
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
function removeBatch(items, scope) {
|
|
193
|
+
if (scope === _Storage.StorageScope.Memory) {
|
|
194
|
+
items.forEach(item => item.delete());
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const keys = items.map(item => item.key);
|
|
198
|
+
getStorageModule().removeBatch(keys, scope);
|
|
199
|
+
items.forEach(item => item.delete());
|
|
200
|
+
}
|
|
88
201
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeNitroModules","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeNitroModules","_Storage","_storageModule","getStorageModule","NitroModules","createHybridObject","memoryStore","Map","memoryListeners","Set","notifyMemoryListeners","key","value","forEach","listener","storage","exports","clear","scope","StorageScope","Memory","undefined","clearAll","Disk","Secure","defaultSerialize","JSON","stringify","defaultDeserialize","parse","createStorageItem","config","serialize","deserialize","isMemory","listeners","unsubscribe","ensureSubscription","lastRaw","lastValue","l","add","delete","addOnChange","get","raw","defaultValue","set","valueOrFn","currentValue","newValue","serialized","deleteItem","remove","subscribe","callback","size","_triggerListeners","useStorage","item","useSyncExternalStore","useSetStorage","getBatch","items","map","keys","rawValues","idx","setBatch","i","values","removeBatch"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAIG,cAA8B,GAAG,IAAI;AAEzC,SAASC,gBAAgBA,CAAA,EAAY;EACnC,IAAI,CAACD,cAAc,EAAE;IACnBA,cAAc,GAAGE,qCAAY,CAACC,kBAAkB,CAAU,SAAS,CAAC;EACtE;EACA,OAAOH,cAAc;AACvB;AAEA,MAAMI,WAAW,GAAG,IAAIC,GAAG,CAAc,CAAC;AAC1C,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAAoC,CAAC;AAEpE,SAASC,qBAAqBA,CAACC,GAAW,EAAEC,KAAU,EAAE;EACtDJ,eAAe,CAACK,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAACH,GAAG,EAAEC,KAAK,CAAC,CAAC;AAC7D;AAEO,MAAMG,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG;EACrBE,KAAK,EAAGC,KAAmB,IAAK;IAC9B,IAAIA,KAAK,KAAKC,qBAAY,CAACC,MAAM,EAAE;MACjCd,WAAW,CAACW,KAAK,CAAC,CAAC;MACnBP,qBAAqB,CAAC,EAAE,EAAEW,SAAS,CAAC;IACtC,CAAC,MAAM;MACLlB,gBAAgB,CAAC,CAAC,CAACc,KAAK,CAACC,KAAK,CAAC;IACjC;EACF,CAAC;EACDI,QAAQ,EAAEA,CAAA,KAAM;IACdP,OAAO,CAACE,KAAK,CAACE,qBAAY,CAACC,MAAM,CAAC;IAClCL,OAAO,CAACE,KAAK,CAACE,qBAAY,CAACI,IAAI,CAAC;IAChCR,OAAO,CAACE,KAAK,CAACE,qBAAY,CAACK,MAAM,CAAC;EACpC;AACF,CAAC;AAsBD,SAASC,gBAAgBA,CAAIb,KAAQ,EAAU;EAC7C,OAAOc,IAAI,CAACC,SAAS,CAACf,KAAK,CAAC;AAC9B;AAEA,SAASgB,kBAAkBA,CAAIhB,KAAa,EAAK;EAC/C,OAAOc,IAAI,CAACG,KAAK,CAACjB,KAAK,CAAC;AAC1B;AAEO,SAASkB,iBAAiBA,CAC/BC,MAA4B,EACZ;EAChB,MAAMC,SAAS,GAAGD,MAAM,CAACC,SAAS,IAAIP,gBAAgB;EACtD,MAAMQ,WAAW,GAAGF,MAAM,CAACE,WAAW,IAAIL,kBAAkB;EAC5D,MAAMM,QAAQ,GAAGH,MAAM,CAACb,KAAK,KAAKC,qBAAY,CAACC,MAAM;EAErD,MAAMe,SAAS,GAAG,IAAI1B,GAAG,CAAa,CAAC;EACvC,IAAI2B,WAAgC,GAAG,IAAI;EAE3C,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAI,CAACD,WAAW,EAAE;MAChB,IAAIF,QAAQ,EAAE;QACZ,MAAMpB,QAAQ,GAAIH,GAAW,IAAK;UAChC,IAAIA,GAAG,KAAK,EAAE,IAAIA,GAAG,KAAKoB,MAAM,CAACpB,GAAG,EAAE;YACpC2B,OAAO,GAAGjB,SAAS;YACnBkB,SAAS,GAAGlB,SAAS;YACrBc,SAAS,CAACtB,OAAO,CAAE2B,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;UAC/B;QACF,CAAC;QACDhC,eAAe,CAACiC,GAAG,CAAC3B,QAAQ,CAAC;QAC7BsB,WAAW,GAAGA,CAAA,KAAM5B,eAAe,CAACkC,MAAM,CAAC5B,QAAQ,CAAC;MACtD,CAAC,MAAM;QACLsB,WAAW,GAAGjC,gBAAgB,CAAC,CAAC,CAACwC,WAAW,CAACZ,MAAM,CAACb,KAAK,EAAGP,GAAG,IAAK;UAClE,IAAIA,GAAG,KAAK,EAAE,IAAIA,GAAG,KAAKoB,MAAM,CAACpB,GAAG,EAAE;YACpC2B,OAAO,GAAGjB,SAAS;YACnBkB,SAAS,GAAGlB,SAAS;YACrBc,SAAS,CAACtB,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;UAC7C;QACF,CAAC,CAAC;MACJ;IACF;EACF,CAAC;EAED,IAAIwB,OAA2B;EAC/B,IAAIC,SAAwB;EAE5B,MAAMK,GAAG,GAAGA,CAAA,KAAS;IACnB,IAAIC,GAAuB;IAE3B,IAAIX,QAAQ,EAAE;MACZW,GAAG,GAAGvC,WAAW,CAACsC,GAAG,CAACb,MAAM,CAACpB,GAAG,CAAC;IACnC,CAAC,MAAM;MACLkC,GAAG,GAAG1C,gBAAgB,CAAC,CAAC,CAACyC,GAAG,CAACb,MAAM,CAACpB,GAAG,EAAEoB,MAAM,CAACb,KAAK,CAAC;IACxD;IAEA,IAAI2B,GAAG,KAAKP,OAAO,IAAIC,SAAS,KAAKlB,SAAS,EAAE;MAC9C,OAAOkB,SAAS;IAClB;IAEAD,OAAO,GAAGO,GAAG;IAEb,IAAIA,GAAG,KAAKxB,SAAS,EAAE;MACrBkB,SAAS,GAAGR,MAAM,CAACe,YAAiB;IACtC,CAAC,MAAM;MACL,IAAIZ,QAAQ,EAAE;QACZK,SAAS,GAAGM,GAAQ;MACtB,CAAC,MAAM;QACLN,SAAS,GAAGN,WAAW,CAACY,GAAG,CAAC;MAC9B;IACF;IAEA,OAAON,SAAS;EAClB,CAAC;EAED,MAAMQ,GAAG,GAAIC,SAA+B,IAAW;IACrD,MAAMC,YAAY,GAAGL,GAAG,CAAC,CAAC;IAC1B,MAAMM,QAAQ,GACZ,OAAOF,SAAS,KAAK,UAAU,GAC1BA,SAAS,CAAoBC,YAAY,CAAC,GAC3CD,SAAS;IAEf,IAAId,QAAQ,EAAE;MACZ5B,WAAW,CAACyC,GAAG,CAAChB,MAAM,CAACpB,GAAG,EAAEuC,QAAQ,CAAC;MACrCxC,qBAAqB,CAACqB,MAAM,CAACpB,GAAG,EAAEuC,QAAQ,CAAC;IAC7C,CAAC,MAAM;MACL,MAAMC,UAAU,GAAGnB,SAAS,CAACkB,QAAQ,CAAC;MACtC/C,gBAAgB,CAAC,CAAC,CAAC4C,GAAG,CAAChB,MAAM,CAACpB,GAAG,EAAEwC,UAAU,EAAEpB,MAAM,CAACb,KAAK,CAAC;IAC9D;EACF,CAAC;EAED,MAAMkC,UAAU,GAAGA,CAAA,KAAY;IAC7B,IAAIlB,QAAQ,EAAE;MACZ5B,WAAW,CAACoC,MAAM,CAACX,MAAM,CAACpB,GAAG,CAAC;MAC9BD,qBAAqB,CAACqB,MAAM,CAACpB,GAAG,EAAEU,SAAS,CAAC;IAC9C,CAAC,MAAM;MACLlB,gBAAgB,CAAC,CAAC,CAACkD,MAAM,CAACtB,MAAM,CAACpB,GAAG,EAAEoB,MAAM,CAACb,KAAK,CAAC;IACrD;EACF,CAAC;EAED,MAAMoC,SAAS,GAAIC,QAAoB,IAAmB;IACxDlB,kBAAkB,CAAC,CAAC;IACpBF,SAAS,CAACM,GAAG,CAACc,QAAQ,CAAC;IACvB,OAAO,MAAM;MACXpB,SAAS,CAACO,MAAM,CAACa,QAAQ,CAAC;MAC1B,IAAIpB,SAAS,CAACqB,IAAI,KAAK,CAAC,IAAIpB,WAAW,EAAE;QACvCA,WAAW,CAAC,CAAC;QACbA,WAAW,GAAG,IAAI;MACpB;IACF,CAAC;EACH,CAAC;EAED,OAAO;IACLQ,GAAG;IACHG,GAAG;IACHL,MAAM,EAAEU,UAAU;IAClBE,SAAS;IACTtB,SAAS;IACTC,WAAW;IACXwB,iBAAiB,EAAEA,CAAA,KAAM;MACvBnB,OAAO,GAAGjB,SAAS;MACnBkB,SAAS,GAAGlB,SAAS;MACrBc,SAAS,CAACtB,OAAO,CAAE2B,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACDtB,KAAK,EAAEa,MAAM,CAACb,KAAK;IACnBP,GAAG,EAAEoB,MAAM,CAACpB;EACd,CAAC;AACH;AAEO,SAAS+C,UAAUA,CACxBC,IAAoB,EACwB;EAC5C,MAAM/C,KAAK,GAAG,IAAAgD,2BAAoB,EAACD,IAAI,CAACL,SAAS,EAAEK,IAAI,CAACf,GAAG,EAAEe,IAAI,CAACf,GAAG,CAAC;EACtE,OAAO,CAAChC,KAAK,EAAE+C,IAAI,CAACZ,GAAG,CAAC;AAC1B;AAEO,SAASc,aAAaA,CAAIF,IAAoB,EAAE;EACrD,OAAOA,IAAI,CAACZ,GAAG;AACjB;AAEO,SAASe,QAAQA,CACtBC,KAAyB,EACzB7C,KAAmB,EACZ;EACP,IAAIA,KAAK,KAAKC,qBAAY,CAACC,MAAM,EAAE;IACjC,OAAO2C,KAAK,CAACC,GAAG,CAAEL,IAAI,IAAKA,IAAI,CAACf,GAAG,CAAC,CAAC,CAAC;EACxC;EAEA,MAAMqB,IAAI,GAAGF,KAAK,CAACC,GAAG,CAAEL,IAAI,IAAKA,IAAI,CAAChD,GAAG,CAAC;EAC1C,MAAMuD,SAAS,GAAG/D,gBAAgB,CAAC,CAAC,CAAC2D,QAAQ,CAACG,IAAI,EAAE/C,KAAK,CAAC;EAE1D,OAAO6C,KAAK,CAACC,GAAG,CAAC,CAACL,IAAI,EAAEQ,GAAG,KAAK;IAC9B,MAAMtB,GAAG,GAAGqB,SAAS,CAACC,GAAG,CAAC;IAC1B,IAAItB,GAAG,KAAKxB,SAAS,EAAE;MACrB,OAAOsC,IAAI,CAACf,GAAG,CAAC,CAAC;IACnB;IACA,OAAOe,IAAI,CAAC1B,WAAW,CAACY,GAAG,CAAC;EAC9B,CAAC,CAAC;AACJ;AAEO,SAASuB,QAAQA,CACtBL,KAA+C,EAC/C7C,KAAmB,EACb;EACN,IAAIA,KAAK,KAAKC,qBAAY,CAACC,MAAM,EAAE;IACjC2C,KAAK,CAAClD,OAAO,CAAC,CAAC;MAAE8C,IAAI;MAAE/C;IAAM,CAAC,KAAK+C,IAAI,CAACZ,GAAG,CAACnC,KAAK,CAAC,CAAC;IACnD;EACF;EAEA,MAAMqD,IAAI,GAAGF,KAAK,CAACC,GAAG,CAAEK,CAAC,IAAKA,CAAC,CAACV,IAAI,CAAChD,GAAG,CAAC;EACzC,MAAM2D,MAAM,GAAGP,KAAK,CAACC,GAAG,CAAEK,CAAC,IAAKA,CAAC,CAACV,IAAI,CAAC3B,SAAS,CAACqC,CAAC,CAACzD,KAAK,CAAC,CAAC;EAE1DT,gBAAgB,CAAC,CAAC,CAACiE,QAAQ,CAACH,IAAI,EAAEK,MAAM,EAAEpD,KAAK,CAAC;EAEhD6C,KAAK,CAAClD,OAAO,CAAC,CAAC;IAAE8C;EAAK,CAAC,KAAK;IAC1BA,IAAI,CAACF,iBAAiB,CAAC,CAAC;EAC1B,CAAC,CAAC;AACJ;AAEO,SAASc,WAAWA,CACzBR,KAAyB,EACzB7C,KAAmB,EACb;EACN,IAAIA,KAAK,KAAKC,qBAAY,CAACC,MAAM,EAAE;IACjC2C,KAAK,CAAClD,OAAO,CAAE8C,IAAI,IAAKA,IAAI,CAACjB,MAAM,CAAC,CAAC,CAAC;IACtC;EACF;EAEA,MAAMuB,IAAI,GAAGF,KAAK,CAACC,GAAG,CAAEL,IAAI,IAAKA,IAAI,CAAChD,GAAG,CAAC;EAC1CR,gBAAgB,CAAC,CAAC,CAACoE,WAAW,CAACN,IAAI,EAAE/C,KAAK,CAAC;EAC3C6C,KAAK,CAAClD,OAAO,CAAE8C,IAAI,IAAKA,IAAI,CAACjB,MAAM,CAAC,CAAC,CAAC;AACxC","ignoreList":[]}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StorageScope = void 0;
|
|
7
|
+
exports.createStorageItem = createStorageItem;
|
|
8
|
+
exports.getBatch = getBatch;
|
|
9
|
+
exports.removeBatch = removeBatch;
|
|
10
|
+
exports.setBatch = setBatch;
|
|
11
|
+
exports.storage = void 0;
|
|
12
|
+
exports.useSetStorage = useSetStorage;
|
|
13
|
+
exports.useStorage = useStorage;
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
let StorageScope = exports.StorageScope = /*#__PURE__*/function (StorageScope) {
|
|
16
|
+
StorageScope[StorageScope["Memory"] = 0] = "Memory";
|
|
17
|
+
StorageScope[StorageScope["Disk"] = 1] = "Disk";
|
|
18
|
+
StorageScope[StorageScope["Secure"] = 2] = "Secure";
|
|
19
|
+
return StorageScope;
|
|
20
|
+
}({});
|
|
21
|
+
const diskListeners = new Map();
|
|
22
|
+
const secureListeners = new Map();
|
|
23
|
+
function notifyDiskListeners(key) {
|
|
24
|
+
diskListeners.get(key)?.forEach(cb => cb());
|
|
25
|
+
}
|
|
26
|
+
function notifySecureListeners(key) {
|
|
27
|
+
secureListeners.get(key)?.forEach(cb => cb());
|
|
28
|
+
}
|
|
29
|
+
const WebStorage = {
|
|
30
|
+
name: "Storage",
|
|
31
|
+
equals: other => other === WebStorage,
|
|
32
|
+
dispose: () => {},
|
|
33
|
+
set: (key, value, scope) => {
|
|
34
|
+
if (scope === StorageScope.Disk) {
|
|
35
|
+
localStorage?.setItem(key, value);
|
|
36
|
+
notifyDiskListeners(key);
|
|
37
|
+
} else if (scope === StorageScope.Secure) {
|
|
38
|
+
sessionStorage?.setItem(key, value);
|
|
39
|
+
notifySecureListeners(key);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
get: (key, scope) => {
|
|
43
|
+
if (scope === StorageScope.Disk) {
|
|
44
|
+
return localStorage?.getItem(key) ?? undefined;
|
|
45
|
+
} else if (scope === StorageScope.Secure) {
|
|
46
|
+
return sessionStorage?.getItem(key) ?? undefined;
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
},
|
|
50
|
+
remove: (key, scope) => {
|
|
51
|
+
if (scope === StorageScope.Disk) {
|
|
52
|
+
localStorage?.removeItem(key);
|
|
53
|
+
notifyDiskListeners(key);
|
|
54
|
+
} else if (scope === StorageScope.Secure) {
|
|
55
|
+
sessionStorage?.removeItem(key);
|
|
56
|
+
notifySecureListeners(key);
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
clear: scope => {
|
|
60
|
+
if (scope === StorageScope.Disk) {
|
|
61
|
+
localStorage?.clear();
|
|
62
|
+
diskListeners.forEach(listeners => {
|
|
63
|
+
listeners.forEach(cb => cb());
|
|
64
|
+
});
|
|
65
|
+
} else if (scope === StorageScope.Secure) {
|
|
66
|
+
sessionStorage?.clear();
|
|
67
|
+
secureListeners.forEach(listeners => {
|
|
68
|
+
listeners.forEach(cb => cb());
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
setBatch: (keys, values, scope) => {
|
|
73
|
+
keys.forEach((key, i) => WebStorage.set(key, values[i], scope));
|
|
74
|
+
},
|
|
75
|
+
getBatch: (keys, scope) => {
|
|
76
|
+
return keys.map(key => WebStorage.get(key, scope));
|
|
77
|
+
},
|
|
78
|
+
removeBatch: (keys, scope) => {
|
|
79
|
+
keys.forEach(key => WebStorage.remove(key, scope));
|
|
80
|
+
},
|
|
81
|
+
addOnChange: (_scope, _callback) => {
|
|
82
|
+
return () => {};
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const memoryStore = new Map();
|
|
86
|
+
const memoryListeners = new Set();
|
|
87
|
+
function notifyMemoryListeners(key, value) {
|
|
88
|
+
memoryListeners.forEach(listener => listener(key, value));
|
|
89
|
+
}
|
|
90
|
+
const storage = exports.storage = {
|
|
91
|
+
clear: scope => {
|
|
92
|
+
if (scope === StorageScope.Memory) {
|
|
93
|
+
memoryStore.clear();
|
|
94
|
+
notifyMemoryListeners("", undefined);
|
|
95
|
+
} else {
|
|
96
|
+
WebStorage.clear(scope);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
clearAll: () => {
|
|
100
|
+
storage.clear(StorageScope.Memory);
|
|
101
|
+
storage.clear(StorageScope.Disk);
|
|
102
|
+
storage.clear(StorageScope.Secure);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
function defaultSerialize(value) {
|
|
106
|
+
return JSON.stringify(value);
|
|
107
|
+
}
|
|
108
|
+
function defaultDeserialize(value) {
|
|
109
|
+
return JSON.parse(value);
|
|
110
|
+
}
|
|
111
|
+
function createStorageItem(config) {
|
|
112
|
+
const serialize = config.serialize ?? defaultSerialize;
|
|
113
|
+
const deserialize = config.deserialize ?? defaultDeserialize;
|
|
114
|
+
const isMemory = config.scope === StorageScope.Memory;
|
|
115
|
+
const listeners = new Set();
|
|
116
|
+
let unsubscribe = null;
|
|
117
|
+
let lastRaw;
|
|
118
|
+
let lastValue;
|
|
119
|
+
const ensureSubscription = () => {
|
|
120
|
+
if (!unsubscribe) {
|
|
121
|
+
if (isMemory) {
|
|
122
|
+
const listener = key => {
|
|
123
|
+
if (key === config.key) {
|
|
124
|
+
lastRaw = undefined;
|
|
125
|
+
lastValue = undefined;
|
|
126
|
+
listeners.forEach(l => l());
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
memoryListeners.add(listener);
|
|
130
|
+
unsubscribe = () => memoryListeners.delete(listener);
|
|
131
|
+
} else if (config.scope === StorageScope.Disk) {
|
|
132
|
+
const listener = () => {
|
|
133
|
+
lastRaw = undefined;
|
|
134
|
+
lastValue = undefined;
|
|
135
|
+
listeners.forEach(l => l());
|
|
136
|
+
};
|
|
137
|
+
if (!diskListeners.has(config.key)) {
|
|
138
|
+
diskListeners.set(config.key, new Set());
|
|
139
|
+
}
|
|
140
|
+
diskListeners.get(config.key).add(listener);
|
|
141
|
+
unsubscribe = () => diskListeners.get(config.key)?.delete(listener);
|
|
142
|
+
} else if (config.scope === StorageScope.Secure) {
|
|
143
|
+
const listener = () => {
|
|
144
|
+
lastRaw = undefined;
|
|
145
|
+
lastValue = undefined;
|
|
146
|
+
listeners.forEach(l => l());
|
|
147
|
+
};
|
|
148
|
+
if (!secureListeners.has(config.key)) {
|
|
149
|
+
secureListeners.set(config.key, new Set());
|
|
150
|
+
}
|
|
151
|
+
secureListeners.get(config.key).add(listener);
|
|
152
|
+
unsubscribe = () => secureListeners.get(config.key)?.delete(listener);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
const get = () => {
|
|
157
|
+
let raw;
|
|
158
|
+
if (isMemory) {
|
|
159
|
+
raw = memoryStore.get(config.key);
|
|
160
|
+
} else {
|
|
161
|
+
raw = WebStorage.get(config.key, config.scope);
|
|
162
|
+
}
|
|
163
|
+
if (raw === lastRaw && lastValue !== undefined) {
|
|
164
|
+
return lastValue;
|
|
165
|
+
}
|
|
166
|
+
lastRaw = raw;
|
|
167
|
+
if (raw === undefined) {
|
|
168
|
+
lastValue = config.defaultValue;
|
|
169
|
+
} else {
|
|
170
|
+
lastValue = isMemory ? raw : deserialize(raw);
|
|
171
|
+
}
|
|
172
|
+
return lastValue;
|
|
173
|
+
};
|
|
174
|
+
const set = valueOrFn => {
|
|
175
|
+
const currentValue = get();
|
|
176
|
+
const newValue = typeof valueOrFn === "function" ? valueOrFn(currentValue) : valueOrFn;
|
|
177
|
+
lastRaw = undefined;
|
|
178
|
+
if (isMemory) {
|
|
179
|
+
memoryStore.set(config.key, newValue);
|
|
180
|
+
notifyMemoryListeners(config.key, newValue);
|
|
181
|
+
} else {
|
|
182
|
+
WebStorage.set(config.key, serialize(newValue), config.scope);
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
const deleteItem = () => {
|
|
186
|
+
lastRaw = undefined;
|
|
187
|
+
if (isMemory) {
|
|
188
|
+
memoryStore.delete(config.key);
|
|
189
|
+
notifyMemoryListeners(config.key, undefined);
|
|
190
|
+
} else {
|
|
191
|
+
WebStorage.remove(config.key, config.scope);
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
const subscribe = callback => {
|
|
195
|
+
ensureSubscription();
|
|
196
|
+
listeners.add(callback);
|
|
197
|
+
return () => {
|
|
198
|
+
listeners.delete(callback);
|
|
199
|
+
if (listeners.size === 0 && unsubscribe) {
|
|
200
|
+
unsubscribe();
|
|
201
|
+
unsubscribe = null;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
return {
|
|
206
|
+
get,
|
|
207
|
+
set,
|
|
208
|
+
delete: deleteItem,
|
|
209
|
+
subscribe,
|
|
210
|
+
serialize,
|
|
211
|
+
deserialize,
|
|
212
|
+
_triggerListeners: () => {
|
|
213
|
+
lastRaw = undefined;
|
|
214
|
+
lastValue = undefined;
|
|
215
|
+
listeners.forEach(l => l());
|
|
216
|
+
},
|
|
217
|
+
scope: config.scope,
|
|
218
|
+
key: config.key
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
function useStorage(item) {
|
|
222
|
+
const value = (0, _react.useSyncExternalStore)(item.subscribe, item.get, item.get);
|
|
223
|
+
return [value, item.set];
|
|
224
|
+
}
|
|
225
|
+
function useSetStorage(item) {
|
|
226
|
+
return item.set;
|
|
227
|
+
}
|
|
228
|
+
function getBatch(items, scope) {
|
|
229
|
+
if (scope === StorageScope.Memory) {
|
|
230
|
+
return items.map(item => item.get());
|
|
231
|
+
}
|
|
232
|
+
const keys = items.map(item => item.key);
|
|
233
|
+
const rawValues = WebStorage.getBatch(keys, scope);
|
|
234
|
+
return items.map((item, idx) => {
|
|
235
|
+
const raw = rawValues[idx];
|
|
236
|
+
if (raw === undefined) {
|
|
237
|
+
return item.get();
|
|
238
|
+
}
|
|
239
|
+
return item.deserialize(raw);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
function setBatch(items, scope) {
|
|
243
|
+
if (scope === StorageScope.Memory) {
|
|
244
|
+
items.forEach(({
|
|
245
|
+
item,
|
|
246
|
+
value
|
|
247
|
+
}) => item.set(value));
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const keys = items.map(i => i.item.key);
|
|
251
|
+
const values = items.map(i => i.item.serialize(i.value));
|
|
252
|
+
WebStorage.setBatch(keys, values, scope);
|
|
253
|
+
items.forEach(({
|
|
254
|
+
item
|
|
255
|
+
}) => {
|
|
256
|
+
item._triggerListeners();
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
function removeBatch(items, scope) {
|
|
260
|
+
if (scope === StorageScope.Memory) {
|
|
261
|
+
items.forEach(item => item.delete());
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
const keys = items.map(item => item.key);
|
|
265
|
+
WebStorage.removeBatch(keys, scope);
|
|
266
|
+
items.forEach(item => item.delete());
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=index.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","StorageScope","exports","diskListeners","Map","secureListeners","notifyDiskListeners","key","get","forEach","cb","notifySecureListeners","WebStorage","name","equals","other","dispose","set","value","scope","Disk","localStorage","setItem","Secure","sessionStorage","getItem","undefined","remove","removeItem","clear","listeners","setBatch","keys","values","i","getBatch","map","removeBatch","addOnChange","_scope","_callback","memoryStore","memoryListeners","Set","notifyMemoryListeners","listener","storage","Memory","clearAll","defaultSerialize","JSON","stringify","defaultDeserialize","parse","createStorageItem","config","serialize","deserialize","isMemory","unsubscribe","lastRaw","lastValue","ensureSubscription","l","add","delete","has","raw","defaultValue","valueOrFn","currentValue","newValue","deleteItem","subscribe","callback","size","_triggerListeners","useStorage","item","useSyncExternalStore","useSetStorage","items","rawValues","idx"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAA6C,IAEjCC,YAAY,GAAAC,OAAA,CAAAD,YAAA,0BAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAuBxB,MAAME,aAAa,GAAG,IAAIC,GAAG,CAA0B,CAAC;AACxD,MAAMC,eAAe,GAAG,IAAID,GAAG,CAA0B,CAAC;AAE1D,SAASE,mBAAmBA,CAACC,GAAW,EAAE;EACxCJ,aAAa,CAACK,GAAG,CAACD,GAAG,CAAC,EAAEE,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;AAC/C;AAEA,SAASC,qBAAqBA,CAACJ,GAAW,EAAE;EAC1CF,eAAe,CAACG,GAAG,CAACD,GAAG,CAAC,EAAEE,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;AACjD;AAEA,MAAME,UAAmB,GAAG;EAC1BC,IAAI,EAAE,SAAS;EACfC,MAAM,EAAGC,KAAK,IAAKA,KAAK,KAAKH,UAAU;EACvCI,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBC,GAAG,EAAEA,CAACV,GAAW,EAAEW,KAAa,EAAEC,KAAa,KAAK;IAClD,IAAIA,KAAK,KAAKlB,YAAY,CAACmB,IAAI,EAAE;MAC/BC,YAAY,EAAEC,OAAO,CAACf,GAAG,EAAEW,KAAK,CAAC;MACjCZ,mBAAmB,CAACC,GAAG,CAAC;IAC1B,CAAC,MAAM,IAAIY,KAAK,KAAKlB,YAAY,CAACsB,MAAM,EAAE;MACxCC,cAAc,EAAEF,OAAO,CAACf,GAAG,EAAEW,KAAK,CAAC;MACnCP,qBAAqB,CAACJ,GAAG,CAAC;IAC5B;EACF,CAAC;EAEDC,GAAG,EAAEA,CAACD,GAAW,EAAEY,KAAa,KAAK;IACnC,IAAIA,KAAK,KAAKlB,YAAY,CAACmB,IAAI,EAAE;MAC/B,OAAOC,YAAY,EAAEI,OAAO,CAAClB,GAAG,CAAC,IAAImB,SAAS;IAChD,CAAC,MAAM,IAAIP,KAAK,KAAKlB,YAAY,CAACsB,MAAM,EAAE;MACxC,OAAOC,cAAc,EAAEC,OAAO,CAAClB,GAAG,CAAC,IAAImB,SAAS;IAClD;IACA,OAAOA,SAAS;EAClB,CAAC;EACDC,MAAM,EAAEA,CAACpB,GAAW,EAAEY,KAAa,KAAK;IACtC,IAAIA,KAAK,KAAKlB,YAAY,CAACmB,IAAI,EAAE;MAC/BC,YAAY,EAAEO,UAAU,CAACrB,GAAG,CAAC;MAC7BD,mBAAmB,CAACC,GAAG,CAAC;IAC1B,CAAC,MAAM,IAAIY,KAAK,KAAKlB,YAAY,CAACsB,MAAM,EAAE;MACxCC,cAAc,EAAEI,UAAU,CAACrB,GAAG,CAAC;MAC/BI,qBAAqB,CAACJ,GAAG,CAAC;IAC5B;EACF,CAAC;EAEDsB,KAAK,EAAGV,KAAa,IAAK;IACxB,IAAIA,KAAK,KAAKlB,YAAY,CAACmB,IAAI,EAAE;MAC/BC,YAAY,EAAEQ,KAAK,CAAC,CAAC;MACrB1B,aAAa,CAACM,OAAO,CAAEqB,SAAS,IAAK;QACnCA,SAAS,CAACrB,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;MACjC,CAAC,CAAC;IACJ,CAAC,MAAM,IAAIS,KAAK,KAAKlB,YAAY,CAACsB,MAAM,EAAE;MACxCC,cAAc,EAAEK,KAAK,CAAC,CAAC;MACvBxB,eAAe,CAACI,OAAO,CAAEqB,SAAS,IAAK;QACrCA,SAAS,CAACrB,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;MACjC,CAAC,CAAC;IACJ;EACF,CAAC;EACDqB,QAAQ,EAAEA,CAACC,IAAc,EAAEC,MAAgB,EAAEd,KAAa,KAAK;IAC7Da,IAAI,CAACvB,OAAO,CAAC,CAACF,GAAG,EAAE2B,CAAC,KAAKtB,UAAU,CAACK,GAAG,CAACV,GAAG,EAAE0B,MAAM,CAACC,CAAC,CAAC,EAAEf,KAAK,CAAC,CAAC;EACjE,CAAC;EACDgB,QAAQ,EAAEA,CAACH,IAAc,EAAEb,KAAa,KAAK;IAC3C,OAAOa,IAAI,CAACI,GAAG,CAAE7B,GAAG,IAAKK,UAAU,CAACJ,GAAG,CAACD,GAAG,EAAEY,KAAK,CAAC,CAAC;EACtD,CAAC;EACDkB,WAAW,EAAEA,CAACL,IAAc,EAAEb,KAAa,KAAK;IAC9Ca,IAAI,CAACvB,OAAO,CAAEF,GAAG,IAAKK,UAAU,CAACe,MAAM,CAACpB,GAAG,EAAEY,KAAK,CAAC,CAAC;EACtD,CAAC;EACDmB,WAAW,EAAEA,CACXC,MAAc,EACdC,SAA2D,KACxD;IACH,OAAO,MAAM,CAAC,CAAC;EACjB;AACF,CAAC;AAED,MAAMC,WAAW,GAAG,IAAIrC,GAAG,CAAc,CAAC;AAC1C,MAAMsC,eAAe,GAAG,IAAIC,GAAG,CAAoC,CAAC;AAEpE,SAASC,qBAAqBA,CAACrC,GAAW,EAAEW,KAAU,EAAE;EACtDwB,eAAe,CAACjC,OAAO,CAAEoC,QAAQ,IAAKA,QAAQ,CAACtC,GAAG,EAAEW,KAAK,CAAC,CAAC;AAC7D;AAEO,MAAM4B,OAAO,GAAA5C,OAAA,CAAA4C,OAAA,GAAG;EACrBjB,KAAK,EAAGV,KAAmB,IAAK;IAC9B,IAAIA,KAAK,KAAKlB,YAAY,CAAC8C,MAAM,EAAE;MACjCN,WAAW,CAACZ,KAAK,CAAC,CAAC;MACnBe,qBAAqB,CAAC,EAAE,EAAElB,SAAS,CAAC;IACtC,CAAC,MAAM;MACLd,UAAU,CAACiB,KAAK,CAACV,KAAK,CAAC;IACzB;EACF,CAAC;EACD6B,QAAQ,EAAEA,CAAA,KAAM;IACdF,OAAO,CAACjB,KAAK,CAAC5B,YAAY,CAAC8C,MAAM,CAAC;IAClCD,OAAO,CAACjB,KAAK,CAAC5B,YAAY,CAACmB,IAAI,CAAC;IAChC0B,OAAO,CAACjB,KAAK,CAAC5B,YAAY,CAACsB,MAAM,CAAC;EACpC;AACF,CAAC;AAsBD,SAAS0B,gBAAgBA,CAAI/B,KAAQ,EAAU;EAC7C,OAAOgC,IAAI,CAACC,SAAS,CAACjC,KAAK,CAAC;AAC9B;AAEA,SAASkC,kBAAkBA,CAAIlC,KAAa,EAAK;EAC/C,OAAOgC,IAAI,CAACG,KAAK,CAACnC,KAAK,CAAC;AAC1B;AAEO,SAASoC,iBAAiBA,CAC/BC,MAA4B,EACZ;EAChB,MAAMC,SAAS,GAAGD,MAAM,CAACC,SAAS,IAAIP,gBAAgB;EACtD,MAAMQ,WAAW,GAAGF,MAAM,CAACE,WAAW,IAAIL,kBAAkB;EAC5D,MAAMM,QAAQ,GAAGH,MAAM,CAACpC,KAAK,KAAKlB,YAAY,CAAC8C,MAAM;EAErD,MAAMjB,SAAS,GAAG,IAAIa,GAAG,CAAa,CAAC;EACvC,IAAIgB,WAAgC,GAAG,IAAI;EAC3C,IAAIC,OAA2B;EAC/B,IAAIC,SAAwB;EAE5B,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAI,CAACH,WAAW,EAAE;MAChB,IAAID,QAAQ,EAAE;QACZ,MAAMb,QAAQ,GAAItC,GAAW,IAAK;UAChC,IAAIA,GAAG,KAAKgD,MAAM,CAAChD,GAAG,EAAE;YACtBqD,OAAO,GAAGlC,SAAS;YACnBmC,SAAS,GAAGnC,SAAS;YACrBI,SAAS,CAACrB,OAAO,CAAEsD,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;UAC/B;QACF,CAAC;QACDrB,eAAe,CAACsB,GAAG,CAACnB,QAAQ,CAAC;QAC7Bc,WAAW,GAAGA,CAAA,KAAMjB,eAAe,CAACuB,MAAM,CAACpB,QAAQ,CAAC;MACtD,CAAC,MAAM,IAAIU,MAAM,CAACpC,KAAK,KAAKlB,YAAY,CAACmB,IAAI,EAAE;QAC7C,MAAMyB,QAAQ,GAAGA,CAAA,KAAM;UACrBe,OAAO,GAAGlC,SAAS;UACnBmC,SAAS,GAAGnC,SAAS;UACrBI,SAAS,CAACrB,OAAO,CAAEsD,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC5D,aAAa,CAAC+D,GAAG,CAACX,MAAM,CAAChD,GAAG,CAAC,EAAE;UAClCJ,aAAa,CAACc,GAAG,CAACsC,MAAM,CAAChD,GAAG,EAAE,IAAIoC,GAAG,CAAC,CAAC,CAAC;QAC1C;QACAxC,aAAa,CAACK,GAAG,CAAC+C,MAAM,CAAChD,GAAG,CAAC,CAAEyD,GAAG,CAACnB,QAAQ,CAAC;QAC5Cc,WAAW,GAAGA,CAAA,KAAMxD,aAAa,CAACK,GAAG,CAAC+C,MAAM,CAAChD,GAAG,CAAC,EAAE0D,MAAM,CAACpB,QAAQ,CAAC;MACrE,CAAC,MAAM,IAAIU,MAAM,CAACpC,KAAK,KAAKlB,YAAY,CAACsB,MAAM,EAAE;QAC/C,MAAMsB,QAAQ,GAAGA,CAAA,KAAM;UACrBe,OAAO,GAAGlC,SAAS;UACnBmC,SAAS,GAAGnC,SAAS;UACrBI,SAAS,CAACrB,OAAO,CAAEsD,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC1D,eAAe,CAAC6D,GAAG,CAACX,MAAM,CAAChD,GAAG,CAAC,EAAE;UACpCF,eAAe,CAACY,GAAG,CAACsC,MAAM,CAAChD,GAAG,EAAE,IAAIoC,GAAG,CAAC,CAAC,CAAC;QAC5C;QACAtC,eAAe,CAACG,GAAG,CAAC+C,MAAM,CAAChD,GAAG,CAAC,CAAEyD,GAAG,CAACnB,QAAQ,CAAC;QAC9Cc,WAAW,GAAGA,CAAA,KAAMtD,eAAe,CAACG,GAAG,CAAC+C,MAAM,CAAChD,GAAG,CAAC,EAAE0D,MAAM,CAACpB,QAAQ,CAAC;MACvE;IACF;EACF,CAAC;EAED,MAAMrC,GAAG,GAAGA,CAAA,KAAS;IACnB,IAAI2D,GAAuB;IAC3B,IAAIT,QAAQ,EAAE;MACZS,GAAG,GAAG1B,WAAW,CAACjC,GAAG,CAAC+C,MAAM,CAAChD,GAAG,CAAC;IACnC,CAAC,MAAM;MACL4D,GAAG,GAAGvD,UAAU,CAACJ,GAAG,CAAC+C,MAAM,CAAChD,GAAG,EAAEgD,MAAM,CAACpC,KAAK,CAAC;IAChD;IAEA,IAAIgD,GAAG,KAAKP,OAAO,IAAIC,SAAS,KAAKnC,SAAS,EAAE;MAC9C,OAAOmC,SAAS;IAClB;IAEAD,OAAO,GAAGO,GAAG;IAEb,IAAIA,GAAG,KAAKzC,SAAS,EAAE;MACrBmC,SAAS,GAAGN,MAAM,CAACa,YAAiB;IACtC,CAAC,MAAM;MACLP,SAAS,GAAGH,QAAQ,GAAIS,GAAG,GAASV,WAAW,CAACU,GAAG,CAAC;IACtD;IAEA,OAAON,SAAS;EAClB,CAAC;EAED,MAAM5C,GAAG,GAAIoD,SAA+B,IAAW;IACrD,MAAMC,YAAY,GAAG9D,GAAG,CAAC,CAAC;IAC1B,MAAM+D,QAAQ,GACZ,OAAOF,SAAS,KAAK,UAAU,GAC1BA,SAAS,CAAoBC,YAAY,CAAC,GAC3CD,SAAS;IAEfT,OAAO,GAAGlC,SAAS;IAEnB,IAAIgC,QAAQ,EAAE;MACZjB,WAAW,CAACxB,GAAG,CAACsC,MAAM,CAAChD,GAAG,EAAEgE,QAAQ,CAAC;MACrC3B,qBAAqB,CAACW,MAAM,CAAChD,GAAG,EAAEgE,QAAQ,CAAC;IAC7C,CAAC,MAAM;MACL3D,UAAU,CAACK,GAAG,CAACsC,MAAM,CAAChD,GAAG,EAAEiD,SAAS,CAACe,QAAQ,CAAC,EAAEhB,MAAM,CAACpC,KAAK,CAAC;IAC/D;EACF,CAAC;EAED,MAAMqD,UAAU,GAAGA,CAAA,KAAY;IAC7BZ,OAAO,GAAGlC,SAAS;IAEnB,IAAIgC,QAAQ,EAAE;MACZjB,WAAW,CAACwB,MAAM,CAACV,MAAM,CAAChD,GAAG,CAAC;MAC9BqC,qBAAqB,CAACW,MAAM,CAAChD,GAAG,EAAEmB,SAAS,CAAC;IAC9C,CAAC,MAAM;MACLd,UAAU,CAACe,MAAM,CAAC4B,MAAM,CAAChD,GAAG,EAAEgD,MAAM,CAACpC,KAAK,CAAC;IAC7C;EACF,CAAC;EAED,MAAMsD,SAAS,GAAIC,QAAoB,IAAmB;IACxDZ,kBAAkB,CAAC,CAAC;IACpBhC,SAAS,CAACkC,GAAG,CAACU,QAAQ,CAAC;IACvB,OAAO,MAAM;MACX5C,SAAS,CAACmC,MAAM,CAACS,QAAQ,CAAC;MAC1B,IAAI5C,SAAS,CAAC6C,IAAI,KAAK,CAAC,IAAIhB,WAAW,EAAE;QACvCA,WAAW,CAAC,CAAC;QACbA,WAAW,GAAG,IAAI;MACpB;IACF,CAAC;EACH,CAAC;EAED,OAAO;IACLnD,GAAG;IACHS,GAAG;IACHgD,MAAM,EAAEO,UAAU;IAClBC,SAAS;IACTjB,SAAS;IACTC,WAAW;IACXmB,iBAAiB,EAAEA,CAAA,KAAM;MACvBhB,OAAO,GAAGlC,SAAS;MACnBmC,SAAS,GAAGnC,SAAS;MACrBI,SAAS,CAACrB,OAAO,CAAEsD,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD5C,KAAK,EAAEoC,MAAM,CAACpC,KAAK;IACnBZ,GAAG,EAAEgD,MAAM,CAAChD;EACd,CAAC;AACH;AAEO,SAASsE,UAAUA,CACxBC,IAAoB,EACwB;EAC5C,MAAM5D,KAAK,GAAG,IAAA6D,2BAAoB,EAACD,IAAI,CAACL,SAAS,EAAEK,IAAI,CAACtE,GAAG,EAAEsE,IAAI,CAACtE,GAAG,CAAC;EACtE,OAAO,CAACU,KAAK,EAAE4D,IAAI,CAAC7D,GAAG,CAAC;AAC1B;AAEO,SAAS+D,aAAaA,CAAIF,IAAoB,EAAE;EACrD,OAAOA,IAAI,CAAC7D,GAAG;AACjB;AAEO,SAASkB,QAAQA,CACtB8C,KAAyB,EACzB9D,KAAmB,EACZ;EACP,IAAIA,KAAK,KAAKlB,YAAY,CAAC8C,MAAM,EAAE;IACjC,OAAOkC,KAAK,CAAC7C,GAAG,CAAE0C,IAAI,IAAKA,IAAI,CAACtE,GAAG,CAAC,CAAC,CAAC;EACxC;EAEA,MAAMwB,IAAI,GAAGiD,KAAK,CAAC7C,GAAG,CAAE0C,IAAI,IAAKA,IAAI,CAACvE,GAAG,CAAC;EAC1C,MAAM2E,SAAS,GAAGtE,UAAU,CAACuB,QAAQ,CAACH,IAAI,EAAEb,KAAK,CAAC;EAElD,OAAO8D,KAAK,CAAC7C,GAAG,CAAC,CAAC0C,IAAI,EAAEK,GAAG,KAAK;IAC9B,MAAMhB,GAAG,GAAGe,SAAS,CAACC,GAAG,CAAC;IAC1B,IAAIhB,GAAG,KAAKzC,SAAS,EAAE;MACrB,OAAOoD,IAAI,CAACtE,GAAG,CAAC,CAAC;IACnB;IACA,OAAOsE,IAAI,CAACrB,WAAW,CAACU,GAAG,CAAC;EAC9B,CAAC,CAAC;AACJ;AAEO,SAASpC,QAAQA,CACtBkD,KAA+C,EAC/C9D,KAAmB,EACb;EACN,IAAIA,KAAK,KAAKlB,YAAY,CAAC8C,MAAM,EAAE;IACjCkC,KAAK,CAACxE,OAAO,CAAC,CAAC;MAAEqE,IAAI;MAAE5D;IAAM,CAAC,KAAK4D,IAAI,CAAC7D,GAAG,CAACC,KAAK,CAAC,CAAC;IACnD;EACF;EAEA,MAAMc,IAAI,GAAGiD,KAAK,CAAC7C,GAAG,CAAEF,CAAC,IAAKA,CAAC,CAAC4C,IAAI,CAACvE,GAAG,CAAC;EACzC,MAAM0B,MAAM,GAAGgD,KAAK,CAAC7C,GAAG,CAAEF,CAAC,IAAKA,CAAC,CAAC4C,IAAI,CAACtB,SAAS,CAACtB,CAAC,CAAChB,KAAK,CAAC,CAAC;EAC1DN,UAAU,CAACmB,QAAQ,CAACC,IAAI,EAAEC,MAAM,EAAEd,KAAK,CAAC;EAExC8D,KAAK,CAACxE,OAAO,CAAC,CAAC;IAAEqE;EAAK,CAAC,KAAK;IAC1BA,IAAI,CAACF,iBAAiB,CAAC,CAAC;EAC1B,CAAC,CAAC;AACJ;AAEO,SAASvC,WAAWA,CACzB4C,KAAyB,EACzB9D,KAAmB,EACb;EACN,IAAIA,KAAK,KAAKlB,YAAY,CAAC8C,MAAM,EAAE;IACjCkC,KAAK,CAACxE,OAAO,CAAEqE,IAAI,IAAKA,IAAI,CAACb,MAAM,CAAC,CAAC,CAAC;IACtC;EACF;EAEA,MAAMjC,IAAI,GAAGiD,KAAK,CAAC7C,GAAG,CAAE0C,IAAI,IAAKA,IAAI,CAACvE,GAAG,CAAC;EAC1CK,UAAU,CAACyB,WAAW,CAACL,IAAI,EAAEb,KAAK,CAAC;EACnC8D,KAAK,CAACxE,OAAO,CAAEqE,IAAI,IAAKA,IAAI,CAACb,MAAM,CAAC,CAAC,CAAC;AACxC","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.migrateFromMMKV = migrateFromMMKV;
|
|
7
|
+
function migrateFromMMKV(mmkv, item, deleteFromMMKV = false) {
|
|
8
|
+
const key = item.key;
|
|
9
|
+
if (!mmkv.contains(key)) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const value = mmkv.getString(key);
|
|
13
|
+
if (value !== undefined) {
|
|
14
|
+
try {
|
|
15
|
+
const parsed = JSON.parse(value);
|
|
16
|
+
item.set(parsed);
|
|
17
|
+
} catch {
|
|
18
|
+
item.set(value);
|
|
19
|
+
}
|
|
20
|
+
if (deleteFromMMKV) {
|
|
21
|
+
mmkv.delete(key);
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
const num = mmkv.getNumber(key);
|
|
26
|
+
if (num !== undefined) {
|
|
27
|
+
item.set(num);
|
|
28
|
+
if (deleteFromMMKV) mmkv.delete(key);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
const bool = mmkv.getBoolean(key);
|
|
32
|
+
if (bool !== undefined) {
|
|
33
|
+
item.set(bool);
|
|
34
|
+
if (deleteFromMMKV) mmkv.delete(key);
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["migrateFromMMKV","mmkv","item","deleteFromMMKV","key","contains","value","getString","undefined","parsed","JSON","parse","set","delete","num","getNumber","bool","getBoolean"],"sourceRoot":"../../src","sources":["migration.ts"],"mappings":";;;;;;AAWO,SAASA,eAAeA,CAC7BC,IAAc,EACdC,IAAoB,EACpBC,cAAc,GAAG,KAAK,EACb;EACT,MAAMC,GAAG,GAAGF,IAAI,CAACE,GAAG;EACpB,IAAI,CAACH,IAAI,CAACI,QAAQ,CAACD,GAAG,CAAC,EAAE;IACvB,OAAO,KAAK;EACd;EAEA,MAAME,KAAK,GAAGL,IAAI,CAACM,SAAS,CAACH,GAAG,CAAC;EAEjC,IAAIE,KAAK,KAAKE,SAAS,EAAE;IACvB,IAAI;MACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACL,KAAK,CAAC;MAChCJ,IAAI,CAACU,GAAG,CAACH,MAAM,CAAC;IAClB,CAAC,CAAC,MAAM;MACNP,IAAI,CAACU,GAAG,CAACN,KAAU,CAAC;IACtB;IAEA,IAAIH,cAAc,EAAE;MAClBF,IAAI,CAACY,MAAM,CAACT,GAAG,CAAC;IAClB;IACA,OAAO,IAAI;EACb;EAEA,MAAMU,GAAG,GAAGb,IAAI,CAACc,SAAS,CAACX,GAAG,CAAC;EAC/B,IAAIU,GAAG,KAAKN,SAAS,EAAE;IACrBN,IAAI,CAACU,GAAG,CAACE,GAAQ,CAAC;IAClB,IAAIX,cAAc,EAAEF,IAAI,CAACY,MAAM,CAACT,GAAG,CAAC;IACpC,OAAO,IAAI;EACb;EAEA,MAAMY,IAAI,GAAGf,IAAI,CAACgB,UAAU,CAACb,GAAG,CAAC;EACjC,IAAIY,IAAI,KAAKR,SAAS,EAAE;IACtBN,IAAI,CAACU,GAAG,CAACI,IAAS,CAAC;IACnB,IAAIb,cAAc,EAAEF,IAAI,CAACY,MAAM,CAACT,GAAG,CAAC;IACpC,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export
|
|
4
|
-
StorageScope[StorageScope["Memory"] = 0] = "Memory";
|
|
5
|
-
StorageScope[StorageScope["Disk"] = 1] = "Disk";
|
|
6
|
-
StorageScope[StorageScope["Secure"] = 2] = "Secure";
|
|
7
|
-
return StorageScope;
|
|
8
|
-
}({});
|
|
3
|
+
export {};
|
|
9
4
|
//# sourceMappingURL=Storage.nitro.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["Storage.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export let StorageScope = /*#__PURE__*/function (StorageScope) {
|
|
4
|
+
StorageScope[StorageScope["Memory"] = 0] = "Memory";
|
|
5
|
+
StorageScope[StorageScope["Disk"] = 1] = "Disk";
|
|
6
|
+
StorageScope[StorageScope["Secure"] = 2] = "Secure";
|
|
7
|
+
return StorageScope;
|
|
8
|
+
}({});
|
|
9
|
+
//# sourceMappingURL=Storage.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StorageScope"],"sourceRoot":"../../src","sources":["Storage.types.ts"],"mappings":";;AAAA,WAAYA,YAAY,0BAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|