even-toolkit 1.6.0 → 1.6.1
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.
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Persistent storage for Even Hub apps.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Writes to BOTH the SDK bridge AND browser localStorage.
|
|
5
|
+
* Reads from SDK bridge first, falls back to localStorage.
|
|
6
|
+
* This ensures persistence on the real Even Hub (bridge)
|
|
7
|
+
* and in development/simulator (localStorage).
|
|
7
8
|
*/
|
|
8
|
-
/** Read a JSON value
|
|
9
|
+
/** Read a JSON value — tries SDK bridge first, then localStorage */
|
|
9
10
|
export declare function storageGet<T>(key: string, fallback: T): Promise<T>;
|
|
10
|
-
/** Read a raw string
|
|
11
|
+
/** Read a raw string — tries SDK bridge first, then localStorage */
|
|
11
12
|
export declare function storageGetRaw(key: string): Promise<string>;
|
|
12
|
-
/** Write a JSON value to SDK
|
|
13
|
+
/** Write a JSON value to BOTH SDK bridge and localStorage */
|
|
13
14
|
export declare function storageSet(key: string, value: unknown): Promise<void>;
|
|
14
|
-
/** Write a raw string to SDK
|
|
15
|
+
/** Write a raw string to BOTH SDK bridge and localStorage */
|
|
15
16
|
export declare function storageSetRaw(key: string, value: string): Promise<void>;
|
|
16
|
-
/** Remove a key from SDK
|
|
17
|
+
/** Remove a key from BOTH SDK bridge and localStorage */
|
|
17
18
|
export declare function storageRemove(key: string): Promise<void>;
|
|
18
19
|
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../glasses/storage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../glasses/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwBH,oEAAoE;AACpE,wBAAsB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAaxE;AAED,oEAAoE;AACpE,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAahE;AAED,6DAA6D;AAC7D,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3E;AAED,6DAA6D;AAC7D,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E;AAED,yDAAyD;AACzD,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9D"}
|
package/dist/glasses/storage.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Persistent storage for Even Hub apps.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Writes to BOTH the SDK bridge AND browser localStorage.
|
|
5
|
+
* Reads from SDK bridge first, falls back to localStorage.
|
|
6
|
+
* This ensures persistence on the real Even Hub (bridge)
|
|
7
|
+
* and in development/simulator (localStorage).
|
|
7
8
|
*/
|
|
8
9
|
function getBridge() {
|
|
9
10
|
const bridge = window.__evenBridge;
|
|
@@ -29,59 +30,84 @@ async function getRawBridge() {
|
|
|
29
30
|
return null;
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
/** Read a JSON value
|
|
33
|
+
/** Read a JSON value — tries SDK bridge first, then localStorage */
|
|
33
34
|
export async function storageGet(key, fallback) {
|
|
34
35
|
const bridge = getBridge() ?? await getRawBridge();
|
|
35
|
-
if (
|
|
36
|
-
|
|
36
|
+
if (bridge?.getLocalStorage) {
|
|
37
|
+
try {
|
|
38
|
+
const raw = await bridge.getLocalStorage(key);
|
|
39
|
+
if (raw && raw !== '')
|
|
40
|
+
return JSON.parse(raw);
|
|
41
|
+
}
|
|
42
|
+
catch { /* fall through */ }
|
|
43
|
+
}
|
|
37
44
|
try {
|
|
38
|
-
const raw =
|
|
39
|
-
if (raw
|
|
45
|
+
const raw = localStorage.getItem(key);
|
|
46
|
+
if (raw)
|
|
40
47
|
return JSON.parse(raw);
|
|
41
48
|
}
|
|
42
49
|
catch { /* ignore */ }
|
|
43
50
|
return fallback;
|
|
44
51
|
}
|
|
45
|
-
/** Read a raw string
|
|
52
|
+
/** Read a raw string — tries SDK bridge first, then localStorage */
|
|
46
53
|
export async function storageGetRaw(key) {
|
|
47
54
|
const bridge = getBridge() ?? await getRawBridge();
|
|
48
|
-
if (
|
|
49
|
-
|
|
55
|
+
if (bridge?.getLocalStorage) {
|
|
56
|
+
try {
|
|
57
|
+
const val = await bridge.getLocalStorage(key);
|
|
58
|
+
if (val && val !== '')
|
|
59
|
+
return val;
|
|
60
|
+
}
|
|
61
|
+
catch { /* fall through */ }
|
|
62
|
+
}
|
|
50
63
|
try {
|
|
51
|
-
return
|
|
64
|
+
return localStorage.getItem(key) ?? '';
|
|
52
65
|
}
|
|
53
66
|
catch {
|
|
54
67
|
return '';
|
|
55
68
|
}
|
|
56
69
|
}
|
|
57
|
-
/** Write a JSON value to SDK
|
|
70
|
+
/** Write a JSON value to BOTH SDK bridge and localStorage */
|
|
58
71
|
export async function storageSet(key, value) {
|
|
59
|
-
const
|
|
60
|
-
if (!bridge?.setLocalStorage)
|
|
61
|
-
return;
|
|
72
|
+
const json = JSON.stringify(value);
|
|
62
73
|
try {
|
|
63
|
-
|
|
74
|
+
localStorage.setItem(key, json);
|
|
64
75
|
}
|
|
65
76
|
catch { /* ignore */ }
|
|
77
|
+
const bridge = getBridge();
|
|
78
|
+
if (bridge?.setLocalStorage) {
|
|
79
|
+
try {
|
|
80
|
+
await bridge.setLocalStorage(key, json);
|
|
81
|
+
}
|
|
82
|
+
catch { /* ignore */ }
|
|
83
|
+
}
|
|
66
84
|
}
|
|
67
|
-
/** Write a raw string to SDK
|
|
85
|
+
/** Write a raw string to BOTH SDK bridge and localStorage */
|
|
68
86
|
export async function storageSetRaw(key, value) {
|
|
69
|
-
const bridge = getBridge();
|
|
70
|
-
if (!bridge?.setLocalStorage)
|
|
71
|
-
return;
|
|
72
87
|
try {
|
|
73
|
-
|
|
88
|
+
localStorage.setItem(key, value);
|
|
74
89
|
}
|
|
75
90
|
catch { /* ignore */ }
|
|
91
|
+
const bridge = getBridge();
|
|
92
|
+
if (bridge?.setLocalStorage) {
|
|
93
|
+
try {
|
|
94
|
+
await bridge.setLocalStorage(key, value);
|
|
95
|
+
}
|
|
96
|
+
catch { /* ignore */ }
|
|
97
|
+
}
|
|
76
98
|
}
|
|
77
|
-
/** Remove a key from SDK
|
|
99
|
+
/** Remove a key from BOTH SDK bridge and localStorage */
|
|
78
100
|
export async function storageRemove(key) {
|
|
79
|
-
const bridge = getBridge();
|
|
80
|
-
if (!bridge?.setLocalStorage)
|
|
81
|
-
return;
|
|
82
101
|
try {
|
|
83
|
-
|
|
102
|
+
localStorage.removeItem(key);
|
|
84
103
|
}
|
|
85
104
|
catch { /* ignore */ }
|
|
105
|
+
const bridge = getBridge();
|
|
106
|
+
if (bridge?.setLocalStorage) {
|
|
107
|
+
try {
|
|
108
|
+
await bridge.setLocalStorage(key, '');
|
|
109
|
+
}
|
|
110
|
+
catch { /* ignore */ }
|
|
111
|
+
}
|
|
86
112
|
}
|
|
87
113
|
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../glasses/storage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../glasses/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,SAAS,SAAS;IAChB,MAAM,MAAM,GAAI,MAAc,CAAC,YAAY,CAAC;IAC5C,IAAI,MAAM,EAAE,eAAe;QAAE,OAAO,MAAM,CAAC;IAC3C,IAAI,MAAM,EAAE,SAAS,EAAE,eAAe;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC7B,aAAa,CAAC,YAAY,EAAE;YAC5B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACjF,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAI,GAAW,EAAE,QAAW;IAC1D,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,MAAM,YAAY,EAAE,CAAC;IACnD,IAAI,MAAM,EAAE,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,MAAM,YAAY,EAAE,CAAC;IACnD,IAAI,MAAM,EAAE,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,KAAc;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,MAAM,EAAE,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,KAAa;IAC5D,IAAI,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,MAAM,EAAE,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,IAAI,CAAC;QAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,MAAM,EAAE,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
|
package/glasses/storage.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Persistent storage for Even Hub apps.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Writes to BOTH the SDK bridge AND browser localStorage.
|
|
5
|
+
* Reads from SDK bridge first, falls back to localStorage.
|
|
6
|
+
* This ensures persistence on the real Even Hub (bridge)
|
|
7
|
+
* and in development/simulator (localStorage).
|
|
7
8
|
*/
|
|
8
9
|
|
|
9
10
|
function getBridge(): any {
|
|
@@ -28,51 +29,62 @@ async function getRawBridge(): Promise<any> {
|
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
/** Read a JSON value
|
|
32
|
+
/** Read a JSON value — tries SDK bridge first, then localStorage */
|
|
32
33
|
export async function storageGet<T>(key: string, fallback: T): Promise<T> {
|
|
33
34
|
const bridge = getBridge() ?? await getRawBridge();
|
|
34
|
-
if (
|
|
35
|
+
if (bridge?.getLocalStorage) {
|
|
36
|
+
try {
|
|
37
|
+
const raw = await bridge.getLocalStorage(key);
|
|
38
|
+
if (raw && raw !== '') return JSON.parse(raw);
|
|
39
|
+
} catch { /* fall through */ }
|
|
40
|
+
}
|
|
35
41
|
try {
|
|
36
|
-
const raw =
|
|
37
|
-
if (raw
|
|
42
|
+
const raw = localStorage.getItem(key);
|
|
43
|
+
if (raw) return JSON.parse(raw);
|
|
38
44
|
} catch { /* ignore */ }
|
|
39
45
|
return fallback;
|
|
40
46
|
}
|
|
41
47
|
|
|
42
|
-
/** Read a raw string
|
|
48
|
+
/** Read a raw string — tries SDK bridge first, then localStorage */
|
|
43
49
|
export async function storageGetRaw(key: string): Promise<string> {
|
|
44
50
|
const bridge = getBridge() ?? await getRawBridge();
|
|
45
|
-
if (
|
|
51
|
+
if (bridge?.getLocalStorage) {
|
|
52
|
+
try {
|
|
53
|
+
const val = await bridge.getLocalStorage(key);
|
|
54
|
+
if (val && val !== '') return val;
|
|
55
|
+
} catch { /* fall through */ }
|
|
56
|
+
}
|
|
46
57
|
try {
|
|
47
|
-
return
|
|
58
|
+
return localStorage.getItem(key) ?? '';
|
|
48
59
|
} catch {
|
|
49
60
|
return '';
|
|
50
61
|
}
|
|
51
62
|
}
|
|
52
63
|
|
|
53
|
-
/** Write a JSON value to SDK
|
|
64
|
+
/** Write a JSON value to BOTH SDK bridge and localStorage */
|
|
54
65
|
export async function storageSet(key: string, value: unknown): Promise<void> {
|
|
66
|
+
const json = JSON.stringify(value);
|
|
67
|
+
try { localStorage.setItem(key, json); } catch { /* ignore */ }
|
|
55
68
|
const bridge = getBridge();
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
} catch { /* ignore */ }
|
|
69
|
+
if (bridge?.setLocalStorage) {
|
|
70
|
+
try { await bridge.setLocalStorage(key, json); } catch { /* ignore */ }
|
|
71
|
+
}
|
|
60
72
|
}
|
|
61
73
|
|
|
62
|
-
/** Write a raw string to SDK
|
|
74
|
+
/** Write a raw string to BOTH SDK bridge and localStorage */
|
|
63
75
|
export async function storageSetRaw(key: string, value: string): Promise<void> {
|
|
76
|
+
try { localStorage.setItem(key, value); } catch { /* ignore */ }
|
|
64
77
|
const bridge = getBridge();
|
|
65
|
-
if (
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
} catch { /* ignore */ }
|
|
78
|
+
if (bridge?.setLocalStorage) {
|
|
79
|
+
try { await bridge.setLocalStorage(key, value); } catch { /* ignore */ }
|
|
80
|
+
}
|
|
69
81
|
}
|
|
70
82
|
|
|
71
|
-
/** Remove a key from SDK
|
|
83
|
+
/** Remove a key from BOTH SDK bridge and localStorage */
|
|
72
84
|
export async function storageRemove(key: string): Promise<void> {
|
|
85
|
+
try { localStorage.removeItem(key); } catch { /* ignore */ }
|
|
73
86
|
const bridge = getBridge();
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
} catch { /* ignore */ }
|
|
87
|
+
if (bridge?.setLocalStorage) {
|
|
88
|
+
try { await bridge.setLocalStorage(key, ''); } catch { /* ignore */ }
|
|
89
|
+
}
|
|
78
90
|
}
|