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
- * Uses the SDK bridge's setLocalStorage/getLocalStorage directly.
5
- * No browser localStorage, no caching — the SDK bridge is the single source of truth.
6
- * Falls back silently when SDK is not available (web/dev).
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 from SDK storage */
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 from SDK storage */
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 storage */
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 storage */
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 storage */
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;;;;;;GAMG;AAwBH,yCAAyC;AACzC,wBAAsB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQxE;AAED,yCAAyC;AACzC,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhE;AAED,wCAAwC;AACxC,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3E;AAED,wCAAwC;AACxC,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E;AAED,oCAAoC;AACpC,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9D"}
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"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * Persistent storage for Even Hub apps.
3
3
  *
4
- * Uses the SDK bridge's setLocalStorage/getLocalStorage directly.
5
- * No browser localStorage, no caching — the SDK bridge is the single source of truth.
6
- * Falls back silently when SDK is not available (web/dev).
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 from SDK storage */
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 (!bridge?.getLocalStorage)
36
- return fallback;
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 = await bridge.getLocalStorage(key);
39
- if (raw && 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 from SDK storage */
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 (!bridge?.getLocalStorage)
49
- return '';
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 await bridge.getLocalStorage(key);
64
+ return localStorage.getItem(key) ?? '';
52
65
  }
53
66
  catch {
54
67
  return '';
55
68
  }
56
69
  }
57
- /** Write a JSON value to SDK storage */
70
+ /** Write a JSON value to BOTH SDK bridge and localStorage */
58
71
  export async function storageSet(key, value) {
59
- const bridge = getBridge();
60
- if (!bridge?.setLocalStorage)
61
- return;
72
+ const json = JSON.stringify(value);
62
73
  try {
63
- await bridge.setLocalStorage(key, JSON.stringify(value));
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 storage */
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
- await bridge.setLocalStorage(key, value);
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 storage */
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
- await bridge.setLocalStorage(key, '');
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":"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"}
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"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * Persistent storage for Even Hub apps.
3
3
  *
4
- * Uses the SDK bridge's setLocalStorage/getLocalStorage directly.
5
- * No browser localStorage, no caching — the SDK bridge is the single source of truth.
6
- * Falls back silently when SDK is not available (web/dev).
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 from SDK storage */
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 (!bridge?.getLocalStorage) return fallback;
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 = await bridge.getLocalStorage(key);
37
- if (raw && raw !== '') return JSON.parse(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 from SDK storage */
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 (!bridge?.getLocalStorage) return '';
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 await bridge.getLocalStorage(key);
58
+ return localStorage.getItem(key) ?? '';
48
59
  } catch {
49
60
  return '';
50
61
  }
51
62
  }
52
63
 
53
- /** Write a JSON value to SDK storage */
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 (!bridge?.setLocalStorage) return;
57
- try {
58
- await bridge.setLocalStorage(key, JSON.stringify(value));
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 storage */
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 (!bridge?.setLocalStorage) return;
66
- try {
67
- await bridge.setLocalStorage(key, value);
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 storage */
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 (!bridge?.setLocalStorage) return;
75
- try {
76
- await bridge.setLocalStorage(key, '');
77
- } catch { /* ignore */ }
87
+ if (bridge?.setLocalStorage) {
88
+ try { await bridge.setLocalStorage(key, ''); } catch { /* ignore */ }
89
+ }
78
90
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "even-toolkit",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "bin": {
5
5
  "even-toolkit": "./bin/create.js"
6
6
  },