even-toolkit 1.5.6 → 1.5.9

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.
@@ -55,6 +55,8 @@ export declare class EvenHubBridge {
55
55
  imuEnable(): Promise<void>;
56
56
  imuDisable(): Promise<void>;
57
57
  onEvent(handler: (event: EvenHubEvent) => void): void;
58
+ setLocalStorage(key: string, value: string): Promise<boolean>;
59
+ getLocalStorage(key: string): Promise<string>;
58
60
  dispose(): void;
59
61
  }
60
62
  //# sourceMappingURL=bridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../glasses/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../glasses/bridge.ts"],"names":[],"mappings":"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"}
@@ -272,6 +272,27 @@ export class EvenHubBridge {
272
272
  onEvent(handler) {
273
273
  this.sdk.addEventListener(handler);
274
274
  }
275
+ // ── Persistent storage (survives WebView restarts) ──
276
+ async setLocalStorage(key, value) {
277
+ if (!this.rawBridge)
278
+ return false;
279
+ try {
280
+ return await this.rawBridge.setLocalStorage(key, value);
281
+ }
282
+ catch {
283
+ return false;
284
+ }
285
+ }
286
+ async getLocalStorage(key) {
287
+ if (!this.rawBridge)
288
+ return '';
289
+ try {
290
+ return await this.rawBridge.getLocalStorage(key);
291
+ }
292
+ catch {
293
+ return '';
294
+ }
295
+ }
275
296
  dispose() {
276
297
  this.rawBridge = null;
277
298
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../glasses/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../glasses/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Persistent storage for Even Hub apps.
3
+ *
4
+ * The Even Hub WebView doesn't persist browser localStorage across app restarts.
5
+ * This module uses the SDK's `bridge.setLocalStorage/getLocalStorage` which DO persist,
6
+ * with browser localStorage as a sync-read cache and fallback for web/dev.
7
+ *
8
+ * Usage:
9
+ * import { storageSet, storageGetSync, hydrateFromSDK } from 'even-toolkit/storage';
10
+ *
11
+ * // In main.tsx — hydrate before render:
12
+ * hydrateFromSDK(['my-app:settings', 'my-app:data']).finally(() => {
13
+ * createRoot(...).render(<App />);
14
+ * });
15
+ *
16
+ * // Read (synchronous):
17
+ * const data = storageGetSync<MyData>('my-app:data', defaultValue);
18
+ *
19
+ * // Write (dual-write to localStorage + SDK bridge):
20
+ * storageSet('my-app:data', data);
21
+ */
22
+ /**
23
+ * Read a JSON value synchronously from browser localStorage.
24
+ * Call `hydrateFromSDK()` at startup to ensure localStorage has the latest SDK data.
25
+ */
26
+ export declare function storageGetSync<T>(key: string, fallback: T): T;
27
+ /**
28
+ * Write a JSON-serializable value to both localStorage and SDK bridge.
29
+ */
30
+ export declare function storageSet(key: string, value: unknown): void;
31
+ /**
32
+ * Write a raw string value to both localStorage and SDK bridge.
33
+ * Use for pre-serialized or encrypted values that shouldn't be double-stringified.
34
+ */
35
+ export declare function storageSetRaw(key: string, value: string): void;
36
+ /**
37
+ * Remove a key from both localStorage and SDK bridge.
38
+ */
39
+ export declare function storageRemove(key: string): void;
40
+ /**
41
+ * Hydrate browser localStorage from SDK bridge on app startup.
42
+ * Call once before React renders so `storageGetSync` reads fresh data.
43
+ * Gets the raw SDK bridge directly (doesn't depend on useGlasses).
44
+ *
45
+ * @param keys - All storage keys used by the app
46
+ */
47
+ export declare function hydrateFromSDK(keys: string[]): Promise<void>;
48
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../glasses/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAqCH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAM7D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAO5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAM9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM/C;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAYlE"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Persistent storage for Even Hub apps.
3
+ *
4
+ * The Even Hub WebView doesn't persist browser localStorage across app restarts.
5
+ * This module uses the SDK's `bridge.setLocalStorage/getLocalStorage` which DO persist,
6
+ * with browser localStorage as a sync-read cache and fallback for web/dev.
7
+ *
8
+ * Usage:
9
+ * import { storageSet, storageGetSync, hydrateFromSDK } from 'even-toolkit/storage';
10
+ *
11
+ * // In main.tsx — hydrate before render:
12
+ * hydrateFromSDK(['my-app:settings', 'my-app:data']).finally(() => {
13
+ * createRoot(...).render(<App />);
14
+ * });
15
+ *
16
+ * // Read (synchronous):
17
+ * const data = storageGetSync<MyData>('my-app:data', defaultValue);
18
+ *
19
+ * // Write (dual-write to localStorage + SDK bridge):
20
+ * storageSet('my-app:data', data);
21
+ */
22
+ /**
23
+ * Get a bridge object that has setLocalStorage/getLocalStorage.
24
+ * Checks window.__evenBridge (our wrapper) first,
25
+ * then tries the raw SDK bridge directly via waitForEvenAppBridge.
26
+ */
27
+ function getBridge() {
28
+ const bridge = window.__evenBridge;
29
+ if (bridge?.setLocalStorage)
30
+ return bridge;
31
+ // Also check raw bridge exposed on the wrapper
32
+ if (bridge?.rawBridge?.setLocalStorage)
33
+ return bridge.rawBridge;
34
+ return null;
35
+ }
36
+ /**
37
+ * Try to get a raw SDK bridge for hydration (before useGlasses sets window.__evenBridge).
38
+ * Returns null if SDK is not available (web/dev environment).
39
+ */
40
+ async function getRawBridgeForHydration() {
41
+ // If our wrapper is already set, use it
42
+ const existing = getBridge();
43
+ if (existing)
44
+ return existing;
45
+ // Try to get raw bridge directly from the SDK
46
+ try {
47
+ const { EvenBetterSdk } = await import('@jappyjan/even-better-sdk');
48
+ const raw = await Promise.race([
49
+ EvenBetterSdk.getRawBridge(),
50
+ new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 2000)),
51
+ ]);
52
+ return raw;
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Read a JSON value synchronously from browser localStorage.
60
+ * Call `hydrateFromSDK()` at startup to ensure localStorage has the latest SDK data.
61
+ */
62
+ export function storageGetSync(key, fallback) {
63
+ try {
64
+ const raw = localStorage.getItem(key);
65
+ if (raw)
66
+ return JSON.parse(raw);
67
+ }
68
+ catch { /* ignore */ }
69
+ return fallback;
70
+ }
71
+ /**
72
+ * Write a JSON-serializable value to both localStorage and SDK bridge.
73
+ */
74
+ export function storageSet(key, value) {
75
+ const json = JSON.stringify(value);
76
+ try {
77
+ localStorage.setItem(key, json);
78
+ }
79
+ catch { /* ignore */ }
80
+ const bridge = getBridge();
81
+ if (bridge?.setLocalStorage) {
82
+ bridge.setLocalStorage(key, json).catch(() => { });
83
+ }
84
+ }
85
+ /**
86
+ * Write a raw string value to both localStorage and SDK bridge.
87
+ * Use for pre-serialized or encrypted values that shouldn't be double-stringified.
88
+ */
89
+ export function storageSetRaw(key, value) {
90
+ try {
91
+ localStorage.setItem(key, value);
92
+ }
93
+ catch { /* ignore */ }
94
+ const bridge = getBridge();
95
+ if (bridge?.setLocalStorage) {
96
+ bridge.setLocalStorage(key, value).catch(() => { });
97
+ }
98
+ }
99
+ /**
100
+ * Remove a key from both localStorage and SDK bridge.
101
+ */
102
+ export function storageRemove(key) {
103
+ localStorage.removeItem(key);
104
+ const bridge = getBridge();
105
+ if (bridge?.setLocalStorage) {
106
+ bridge.setLocalStorage(key, '').catch(() => { });
107
+ }
108
+ }
109
+ /**
110
+ * Hydrate browser localStorage from SDK bridge on app startup.
111
+ * Call once before React renders so `storageGetSync` reads fresh data.
112
+ * Gets the raw SDK bridge directly (doesn't depend on useGlasses).
113
+ *
114
+ * @param keys - All storage keys used by the app
115
+ */
116
+ export async function hydrateFromSDK(keys) {
117
+ const bridge = await getRawBridgeForHydration();
118
+ if (!bridge?.getLocalStorage)
119
+ return;
120
+ for (const key of keys) {
121
+ try {
122
+ const value = await bridge.getLocalStorage(key);
123
+ if (value && value !== '') {
124
+ localStorage.setItem(key, value);
125
+ }
126
+ }
127
+ catch { /* ignore */ }
128
+ }
129
+ }
130
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../glasses/storage.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "highlight" | "default" | "ghost" | "danger" | "secondary" | null | undefined;
4
+ variant?: "default" | "highlight" | "ghost" | "danger" | "secondary" | null | undefined;
5
5
  size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  declare const cardVariants: (props?: ({
4
4
  variant?: "default" | "elevated" | "interactive" | null | undefined;
5
- padding?: "none" | "default" | "sm" | "lg" | null | undefined;
5
+ padding?: "default" | "none" | "sm" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
8
8
  }
@@ -1,6 +1,6 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  declare const skeletonVariants: (props?: ({
3
- rounded?: "none" | "default" | "full" | null | undefined;
3
+ rounded?: "default" | "none" | "full" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  interface SkeletonProps extends VariantProps<typeof skeletonVariants> {
6
6
  width?: string | number;
package/glasses/bridge.ts CHANGED
@@ -321,6 +321,26 @@ export class EvenHubBridge {
321
321
  this.sdk.addEventListener(handler);
322
322
  }
323
323
 
324
+ // ── Persistent storage (survives WebView restarts) ──
325
+
326
+ async setLocalStorage(key: string, value: string): Promise<boolean> {
327
+ if (!this.rawBridge) return false;
328
+ try {
329
+ return await (this.rawBridge as any).setLocalStorage(key, value);
330
+ } catch {
331
+ return false;
332
+ }
333
+ }
334
+
335
+ async getLocalStorage(key: string): Promise<string> {
336
+ if (!this.rawBridge) return '';
337
+ try {
338
+ return await (this.rawBridge as any).getLocalStorage(key);
339
+ } catch {
340
+ return '';
341
+ }
342
+ }
343
+
324
344
  dispose(): void {
325
345
  this.rawBridge = null;
326
346
  }
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Persistent storage for Even Hub apps.
3
+ *
4
+ * The Even Hub WebView doesn't persist browser localStorage across app restarts.
5
+ * This module uses the SDK's `bridge.setLocalStorage/getLocalStorage` which DO persist,
6
+ * with browser localStorage as a sync-read cache and fallback for web/dev.
7
+ *
8
+ * Usage:
9
+ * import { storageSet, storageGetSync, hydrateFromSDK } from 'even-toolkit/storage';
10
+ *
11
+ * // In main.tsx — hydrate before render:
12
+ * hydrateFromSDK(['my-app:settings', 'my-app:data']).finally(() => {
13
+ * createRoot(...).render(<App />);
14
+ * });
15
+ *
16
+ * // Read (synchronous):
17
+ * const data = storageGetSync<MyData>('my-app:data', defaultValue);
18
+ *
19
+ * // Write (dual-write to localStorage + SDK bridge):
20
+ * storageSet('my-app:data', data);
21
+ */
22
+
23
+ /**
24
+ * Get a bridge object that has setLocalStorage/getLocalStorage.
25
+ * Checks window.__evenBridge (our wrapper) first,
26
+ * then tries the raw SDK bridge directly via waitForEvenAppBridge.
27
+ */
28
+ function getBridge(): any {
29
+ const bridge = (window as any).__evenBridge;
30
+ if (bridge?.setLocalStorage) return bridge;
31
+ // Also check raw bridge exposed on the wrapper
32
+ if (bridge?.rawBridge?.setLocalStorage) return bridge.rawBridge;
33
+ return null;
34
+ }
35
+
36
+ /**
37
+ * Try to get a raw SDK bridge for hydration (before useGlasses sets window.__evenBridge).
38
+ * Returns null if SDK is not available (web/dev environment).
39
+ */
40
+ async function getRawBridgeForHydration(): Promise<any> {
41
+ // If our wrapper is already set, use it
42
+ const existing = getBridge();
43
+ if (existing) return existing;
44
+
45
+ // Try to get raw bridge directly from the SDK
46
+ try {
47
+ const { EvenBetterSdk } = await import('@jappyjan/even-better-sdk');
48
+ const raw = await Promise.race([
49
+ EvenBetterSdk.getRawBridge(),
50
+ new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 2000)),
51
+ ]);
52
+ return raw;
53
+ } catch {
54
+ return null;
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Read a JSON value synchronously from browser localStorage.
60
+ * Call `hydrateFromSDK()` at startup to ensure localStorage has the latest SDK data.
61
+ */
62
+ export function storageGetSync<T>(key: string, fallback: T): T {
63
+ try {
64
+ const raw = localStorage.getItem(key);
65
+ if (raw) return JSON.parse(raw);
66
+ } catch { /* ignore */ }
67
+ return fallback;
68
+ }
69
+
70
+ /**
71
+ * Write a JSON-serializable value to both localStorage and SDK bridge.
72
+ */
73
+ export function storageSet(key: string, value: unknown): void {
74
+ const json = JSON.stringify(value);
75
+ try { localStorage.setItem(key, json); } catch { /* ignore */ }
76
+ const bridge = getBridge();
77
+ if (bridge?.setLocalStorage) {
78
+ bridge.setLocalStorage(key, json).catch(() => {});
79
+ }
80
+ }
81
+
82
+ /**
83
+ * Write a raw string value to both localStorage and SDK bridge.
84
+ * Use for pre-serialized or encrypted values that shouldn't be double-stringified.
85
+ */
86
+ export function storageSetRaw(key: string, value: string): void {
87
+ try { localStorage.setItem(key, value); } catch { /* ignore */ }
88
+ const bridge = getBridge();
89
+ if (bridge?.setLocalStorage) {
90
+ bridge.setLocalStorage(key, value).catch(() => {});
91
+ }
92
+ }
93
+
94
+ /**
95
+ * Remove a key from both localStorage and SDK bridge.
96
+ */
97
+ export function storageRemove(key: string): void {
98
+ localStorage.removeItem(key);
99
+ const bridge = getBridge();
100
+ if (bridge?.setLocalStorage) {
101
+ bridge.setLocalStorage(key, '').catch(() => {});
102
+ }
103
+ }
104
+
105
+ /**
106
+ * Hydrate browser localStorage from SDK bridge on app startup.
107
+ * Call once before React renders so `storageGetSync` reads fresh data.
108
+ * Gets the raw SDK bridge directly (doesn't depend on useGlasses).
109
+ *
110
+ * @param keys - All storage keys used by the app
111
+ */
112
+ export async function hydrateFromSDK(keys: string[]): Promise<void> {
113
+ const bridge = await getRawBridgeForHydration();
114
+ if (!bridge?.getLocalStorage) return;
115
+
116
+ for (const key of keys) {
117
+ try {
118
+ const value = await bridge.getLocalStorage(key);
119
+ if (value && value !== '') {
120
+ localStorage.setItem(key, value);
121
+ }
122
+ } catch { /* ignore */ }
123
+ }
124
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "even-toolkit",
3
- "version": "1.5.6",
3
+ "version": "1.5.9",
4
4
  "bin": {
5
5
  "even-toolkit": "./bin/create.js"
6
6
  },
@@ -77,6 +77,10 @@
77
77
  "types": "./dist/glasses/splash.d.ts",
78
78
  "import": "./dist/glasses/splash.js"
79
79
  },
80
+ "./storage": {
81
+ "types": "./dist/glasses/storage.d.ts",
82
+ "import": "./dist/glasses/storage.js"
83
+ },
80
84
  "./text-clean": {
81
85
  "types": "./dist/glasses/text-clean.d.ts",
82
86
  "import": "./dist/glasses/text-clean.js"