@efficimo/storage 0.1.0 → 0.2.0

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.
Files changed (78) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/BaseStorage.d.ts +3 -2
  3. package/dist/cjs/BaseStorage.d.ts.map +1 -1
  4. package/dist/cjs/BaseStorage.js +12 -21
  5. package/dist/cjs/BaseStorage.js.map +1 -1
  6. package/dist/cjs/CookieStorage.d.ts +10 -0
  7. package/dist/cjs/CookieStorage.d.ts.map +1 -0
  8. package/dist/cjs/CookieStorage.js +16 -0
  9. package/dist/cjs/CookieStorage.js.map +1 -0
  10. package/dist/cjs/CookieStorageAdapter.d.ts +19 -0
  11. package/dist/cjs/CookieStorageAdapter.d.ts.map +1 -0
  12. package/dist/cjs/CookieStorageAdapter.js +111 -0
  13. package/dist/cjs/CookieStorageAdapter.js.map +1 -0
  14. package/dist/cjs/DefaultCookieStorageKeys.d.ts +3 -0
  15. package/dist/cjs/DefaultCookieStorageKeys.d.ts.map +1 -0
  16. package/dist/cjs/DefaultCookieStorageKeys.js +3 -0
  17. package/dist/cjs/DefaultCookieStorageKeys.js.map +1 -0
  18. package/dist/cjs/LocalStorage.d.ts.map +1 -1
  19. package/dist/cjs/LocalStorage.js +2 -1
  20. package/dist/cjs/LocalStorage.js.map +1 -1
  21. package/dist/cjs/NativeStorageAdapter.d.ts +13 -0
  22. package/dist/cjs/NativeStorageAdapter.d.ts.map +1 -0
  23. package/dist/cjs/NativeStorageAdapter.js +52 -0
  24. package/dist/cjs/NativeStorageAdapter.js.map +1 -0
  25. package/dist/cjs/SessionStorage.d.ts.map +1 -1
  26. package/dist/cjs/SessionStorage.js +2 -1
  27. package/dist/cjs/SessionStorage.js.map +1 -1
  28. package/dist/cjs/StorageObservable.d.ts +4 -3
  29. package/dist/cjs/StorageObservable.d.ts.map +1 -1
  30. package/dist/cjs/StorageObservable.js +2 -2
  31. package/dist/cjs/StorageObservable.js.map +1 -1
  32. package/dist/cjs/Store.d.ts +10 -0
  33. package/dist/cjs/Store.d.ts.map +1 -0
  34. package/dist/cjs/Store.js +3 -0
  35. package/dist/cjs/Store.js.map +1 -0
  36. package/dist/cjs/index.d.ts +5 -0
  37. package/dist/cjs/index.d.ts.map +1 -1
  38. package/dist/cjs/index.js +5 -0
  39. package/dist/cjs/index.js.map +1 -1
  40. package/dist/esm/BaseStorage.d.ts +3 -2
  41. package/dist/esm/BaseStorage.d.ts.map +1 -1
  42. package/dist/esm/BaseStorage.js +12 -21
  43. package/dist/esm/BaseStorage.js.map +1 -1
  44. package/dist/esm/CookieStorage.d.ts +10 -0
  45. package/dist/esm/CookieStorage.d.ts.map +1 -0
  46. package/dist/esm/CookieStorage.js +13 -0
  47. package/dist/esm/CookieStorage.js.map +1 -0
  48. package/dist/esm/CookieStorageAdapter.d.ts +19 -0
  49. package/dist/esm/CookieStorageAdapter.d.ts.map +1 -0
  50. package/dist/esm/CookieStorageAdapter.js +107 -0
  51. package/dist/esm/CookieStorageAdapter.js.map +1 -0
  52. package/dist/esm/DefaultCookieStorageKeys.d.ts +3 -0
  53. package/dist/esm/DefaultCookieStorageKeys.d.ts.map +1 -0
  54. package/dist/esm/DefaultCookieStorageKeys.js +2 -0
  55. package/dist/esm/DefaultCookieStorageKeys.js.map +1 -0
  56. package/dist/esm/LocalStorage.d.ts.map +1 -1
  57. package/dist/esm/LocalStorage.js +2 -1
  58. package/dist/esm/LocalStorage.js.map +1 -1
  59. package/dist/esm/NativeStorageAdapter.d.ts +13 -0
  60. package/dist/esm/NativeStorageAdapter.d.ts.map +1 -0
  61. package/dist/esm/NativeStorageAdapter.js +48 -0
  62. package/dist/esm/NativeStorageAdapter.js.map +1 -0
  63. package/dist/esm/SessionStorage.d.ts.map +1 -1
  64. package/dist/esm/SessionStorage.js +2 -1
  65. package/dist/esm/SessionStorage.js.map +1 -1
  66. package/dist/esm/StorageObservable.d.ts +4 -3
  67. package/dist/esm/StorageObservable.d.ts.map +1 -1
  68. package/dist/esm/StorageObservable.js +2 -2
  69. package/dist/esm/StorageObservable.js.map +1 -1
  70. package/dist/esm/Store.d.ts +10 -0
  71. package/dist/esm/Store.d.ts.map +1 -0
  72. package/dist/esm/Store.js +2 -0
  73. package/dist/esm/Store.js.map +1 -0
  74. package/dist/esm/index.d.ts +5 -0
  75. package/dist/esm/index.d.ts.map +1 -1
  76. package/dist/esm/index.js +5 -0
  77. package/dist/esm/index.js.map +1 -1
  78. package/package.json +2 -2
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  > Subscribe to browser storage. Typed keys, reactive updates, cross-tab sync — no boilerplate.
9
9
 
10
- Built on [`@efficimo/observable`](https://www.npmjs.com/package/@efficimo/observable). Zero additional dependencies.
10
+ Built on [`@efficimo/observable`](https://www.npmjs.com/package/@efficimo/observable).
11
11
 
12
12
  ## Packages
13
13
 
@@ -20,10 +20,10 @@ Built on [`@efficimo/observable`](https://www.npmjs.com/package/@efficimo/observ
20
20
 
21
21
  ```bash
22
22
  # core only
23
- npm install @efficimo/observable @efficimo/storage
23
+ npm install @efficimo/storage
24
24
 
25
25
  # with React hook
26
- npm install @efficimo/observable @efficimo/storage @efficimo/storage-react
26
+ npm install @efficimo/storage @efficimo/storage-react
27
27
  ```
28
28
 
29
29
  ## Quick start
@@ -1,8 +1,9 @@
1
1
  import { JsonSerializeObservableValue, type SafeParseSchema } from "@efficimo/observable";
2
2
  import { StorageObservable } from "./StorageObservable";
3
- export declare class BaseStorage<StorageKey extends string> {
3
+ import type { Store } from "./Store";
4
+ export declare class BaseStorage<StorageKey extends string, Options = never> {
4
5
  #private;
5
- constructor(storage: Storage);
6
+ constructor(storage: Store<StorageKey, Options>);
6
7
  getObservable<StorageKeyParam extends StorageKey>(storageKey: StorageKeyParam, defaultValue?: string | null): StorageObservable<StorageKey>;
7
8
  getSerializedObservable<StorageKeyParam extends StorageKey, Value>(storageKey: StorageKeyParam, schema: SafeParseSchema<Value>, defaultValue?: Value): JsonSerializeObservableValue<Value>;
8
9
  get<StorageKeyParam extends StorageKey>(storageKey: StorageKeyParam, defaultValue?: string | null): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStorage.d.ts","sourceRoot":"","sources":["../../src/BaseStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAgBxD,qBAAa,WAAW,CAAC,UAAU,SAAS,MAAM;;gBAM7B,OAAO,EAAE,OAAO;IAqB5B,aAAa,CAAC,eAAe,SAAS,UAAU,EACrD,UAAU,EAAE,eAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,iBAAiB,CAAC,UAAU,CAAC;IAQzB,uBAAuB,CAAC,eAAe,SAAS,UAAU,EAAE,KAAK,EACtE,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,EAC9B,YAAY,CAAC,EAAE,KAAK,GACnB,4BAA4B,CAAC,KAAK,CAAC;IAQ/B,GAAG,CAAC,eAAe,SAAS,UAAU,EAC3C,UAAU,EAAE,eAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,GAAG,IAAI;IAIT,GAAG,CAAC,eAAe,SAAS,UAAU,EAC3C,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,IAAI;IAIA,GAAG,CAAC,eAAe,SAAS,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO;IAU7E,MAAM,CAAC,eAAe,SAAS,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAI7E,KAAK,IAAI,IAAI;CAIrB"}
1
+ {"version":3,"file":"BaseStorage.d.ts","sourceRoot":"","sources":["../../src/BaseStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAgBrC,qBAAa,WAAW,CAAC,UAAU,SAAS,MAAM,EAAE,OAAO,GAAG,KAAK;;gBAM9C,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAkB/C,aAAa,CAAC,eAAe,SAAS,UAAU,EACrD,UAAU,EAAE,eAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,iBAAiB,CAAC,UAAU,CAAC;IAQzB,uBAAuB,CAAC,eAAe,SAAS,UAAU,EAAE,KAAK,EACtE,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,EAC9B,YAAY,CAAC,EAAE,KAAK,GACnB,4BAA4B,CAAC,KAAK,CAAC;IAQ/B,GAAG,CAAC,eAAe,SAAS,UAAU,EAC3C,UAAU,EAAE,eAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,GAAG,IAAI;IAIT,GAAG,CAAC,eAAe,SAAS,UAAU,EAC3C,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,IAAI;IAIA,GAAG,CAAC,eAAe,SAAS,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO;IAI7E,MAAM,CAAC,eAAe,SAAS,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAI7E,KAAK,IAAI,IAAI;CAIrB"}
@@ -28,22 +28,18 @@ class BaseStorage {
28
28
  _BaseStorage_observables.set(this, void 0);
29
29
  __classPrivateFieldSet(this, _BaseStorage_observables, {}, "f");
30
30
  __classPrivateFieldSet(this, _BaseStorage_storage, storage, "f");
31
- if (typeof window !== "undefined") {
32
- window.addEventListener("storage", (event) => {
33
- if (event.storageArea === __classPrivateFieldGet(this, _BaseStorage_storage, "f")) {
34
- if (null === event.key) {
35
- for (const observable of Object.values(__classPrivateFieldGet(this, _BaseStorage_observables, "f"))) {
36
- observable.next(null);
37
- }
38
- __classPrivateFieldSet(this, _BaseStorage_observables, {}, "f");
39
- }
40
- else {
41
- const observable = __classPrivateFieldGet(this, _BaseStorage_observables, "f")[event.key];
42
- observable?.next(event.newValue);
43
- }
31
+ storage.onExternalChange?.((key, value) => {
32
+ if (key === null) {
33
+ for (const observable of Object.values(__classPrivateFieldGet(this, _BaseStorage_observables, "f"))) {
34
+ observable.next(null);
44
35
  }
45
- });
46
- }
36
+ __classPrivateFieldSet(this, _BaseStorage_observables, {}, "f");
37
+ }
38
+ else {
39
+ __classPrivateFieldGet(this, _BaseStorage_observables, "f")[key]?.next(value);
40
+ }
41
+ });
42
+ storage.init();
47
43
  }
48
44
  getObservable(storageKey, defaultValue) {
49
45
  if (__classPrivateFieldGet(this, _BaseStorage_observables, "f")[storageKey] == null) {
@@ -61,12 +57,7 @@ class BaseStorage {
61
57
  this.getObservable(storageKey).next(data);
62
58
  }
63
59
  has(storageKey) {
64
- for (let i = 0; i < __classPrivateFieldGet(this, _BaseStorage_storage, "f").length; i++) {
65
- if (__classPrivateFieldGet(this, _BaseStorage_storage, "f").key(i) === storageKey) {
66
- return true;
67
- }
68
- }
69
- return false;
60
+ return __classPrivateFieldGet(this, _BaseStorage_storage, "f").has(storageKey);
70
61
  }
71
62
  remove(storageKey) {
72
63
  this.getObservable(storageKey).next(null);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStorage.js","sourceRoot":"","sources":["../../src/BaseStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseStorage.js","sourceRoot":"","sources":["../../src/BaseStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAA0F;AAC1F,2DAAwD;AAGxD,MAAM,gBAAgB,GAAG,CACvB,OAAmC,EACnC,GAAe,EACf,YAA4B,EACG,EAAE;IACjC,MAAM,GAAG,GAAG,IAAI,qCAAiB,CAAa,GAAG,EAAE,OAAO,CAAC,CAAC;IAE5D,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAa,WAAW;IAMtB,YAAmB,OAAmC;QALtD,uCAAqC;QACrC,2CAEE;QAGA,uBAAA,IAAI,4BAAgB,EAAE,MAAA,CAAC;QACvB,uBAAA,IAAI,wBAAY,OAAO,MAAA,CAAC;QAExB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAA,IAAI,gCAAa,CAAC,EAAE,CAAC;oBACzD,UAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,CAAC;gBACD,uBAAA,IAAI,4BAAgB,EAAE,MAAA,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,uBAAA,IAAI,gCAAa,CAAC,GAAiB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAEM,aAAa,CAClB,UAA2B,EAC3B,YAA4B;QAE5B,IAAI,uBAAA,IAAI,gCAAa,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1C,uBAAA,IAAI,gCAAa,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,uBAAA,IAAI,4BAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,uBAAA,IAAI,gCAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEM,uBAAuB,CAC5B,UAA2B,EAC3B,MAA8B,EAC9B,YAAoB;QAEpB,OAAO,IAAI,yCAA4B,CACrC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAC1F,MAAM,EACN,YAAY,CACb,CAAC;IACJ,CAAC;IAEM,GAAG,CACR,UAA2B,EAC3B,YAA4B;QAE5B,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjE,CAAC;IAEM,GAAG,CACR,UAA2B,EAC3B,IAAmB;QAEnB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,GAAG,CAAqC,UAA2B;QACxE,OAAO,uBAAA,IAAI,4BAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAqC,UAA2B;QAC3E,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK;QACV,uBAAA,IAAI,4BAAS,CAAC,KAAK,EAAE,CAAC;QACtB,uBAAA,IAAI,4BAAgB,EAAE,MAAA,CAAC;IACzB,CAAC;CACF;AAzED,kCAyEC"}
@@ -0,0 +1,10 @@
1
+ import { BaseStorage } from "./BaseStorage";
2
+ import { type CookieOptions } from "./CookieStorageAdapter";
3
+ import type { DefaultCookieStorageKeys } from "./DefaultCookieStorageKeys";
4
+ export type { CookieOptions };
5
+ declare class _CookieStorage extends BaseStorage<keyof DefaultCookieStorageKeys & string, CookieOptions> {
6
+ static _instance: _CookieStorage | null;
7
+ static getInstance(): _CookieStorage;
8
+ }
9
+ export declare const CookieStorage: _CookieStorage;
10
+ //# sourceMappingURL=CookieStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorage.d.ts","sourceRoot":"","sources":["../../src/CookieStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,wBAAwB,CAAC;AAClF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,cAAM,cAAe,SAAQ,WAAW,CAAC,MAAM,wBAAwB,GAAG,MAAM,EAAE,aAAa,CAAC;IAC9F,MAAM,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE/C,MAAM,CAAC,WAAW,IAAI,cAAc;CAOrC;AAED,eAAO,MAAM,aAAa,gBAA+B,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CookieStorage = void 0;
4
+ const BaseStorage_1 = require("./BaseStorage");
5
+ const CookieStorageAdapter_1 = require("./CookieStorageAdapter");
6
+ class _CookieStorage extends BaseStorage_1.BaseStorage {
7
+ static getInstance() {
8
+ if (_CookieStorage._instance == null) {
9
+ _CookieStorage._instance = new _CookieStorage(new CookieStorageAdapter_1.CookieStorageAdapter());
10
+ }
11
+ return _CookieStorage._instance;
12
+ }
13
+ }
14
+ _CookieStorage._instance = null;
15
+ exports.CookieStorage = _CookieStorage.getInstance();
16
+ //# sourceMappingURL=CookieStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorage.js","sourceRoot":"","sources":["../../src/CookieStorage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,iEAAkF;AAKlF,MAAM,cAAe,SAAQ,yBAAmE;IAG9F,MAAM,CAAC,WAAW;QAChB,IAAI,cAAc,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACrC,cAAc,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,2CAAoB,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;;AARM,wBAAS,GAA0B,IAAI,CAAC;AAWpC,QAAA,aAAa,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Store } from "./Store";
2
+ export interface CookieOptions {
3
+ path?: string;
4
+ domain?: string;
5
+ maxAge?: number;
6
+ sameSite?: CookieSameSite;
7
+ }
8
+ export declare class CookieStorageAdapter implements Store<string, CookieOptions> {
9
+ #private;
10
+ constructor(options?: CookieOptions);
11
+ getItem(key: string): string | null;
12
+ setItem(key: string, value: string, options?: CookieOptions): void;
13
+ removeItem(key: string): void;
14
+ has(key: string): boolean;
15
+ clear(): void;
16
+ init(): void;
17
+ onExternalChange: (handler: (key: string | null, value: string | null) => void) => void;
18
+ }
19
+ //# sourceMappingURL=CookieStorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorageAdapter.d.ts","sourceRoot":"","sources":["../../src/CookieStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,qBAAa,oBAAqB,YAAW,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC;;gBAI3D,OAAO,GAAE,aAAkB;IAIvC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAQlE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;IAsBb,IAAI,IAAI,IAAI;IAYZ,gBAAgB,GAAI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KAAG,IAAI,CAEpF;CA6BH"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _CookieStorageAdapter_instances, _CookieStorageAdapter_options, _CookieStorageAdapter_onExternalChangeHandler, _CookieStorageAdapter_store, _CookieStorageAdapter_buildInit, _CookieStorageAdapter_entries;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CookieStorageAdapter = void 0;
16
+ class CookieStorageAdapter {
17
+ constructor(options = {}) {
18
+ _CookieStorageAdapter_instances.add(this);
19
+ _CookieStorageAdapter_options.set(this, void 0);
20
+ _CookieStorageAdapter_onExternalChangeHandler.set(this, null);
21
+ this.onExternalChange = (handler) => {
22
+ __classPrivateFieldSet(this, _CookieStorageAdapter_onExternalChangeHandler, handler, "f");
23
+ };
24
+ __classPrivateFieldSet(this, _CookieStorageAdapter_options, options, "f");
25
+ }
26
+ getItem(key) {
27
+ return __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_entries).call(this).find(([k]) => k === key)?.[1] ?? null;
28
+ }
29
+ setItem(key, value, options) {
30
+ __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_store).call(this)
31
+ .set(__classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_buildInit).call(this, key, value, options))
32
+ .catch((err) => {
33
+ throw new Error(`Failed to set cookie "${key}": ${err}`);
34
+ });
35
+ }
36
+ removeItem(key) {
37
+ const opts = __classPrivateFieldGet(this, _CookieStorageAdapter_options, "f");
38
+ __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_store).call(this)
39
+ .delete({ name: key, domain: opts.domain ?? null, path: opts.path })
40
+ .catch((err) => {
41
+ throw new Error(`Failed to delete cookie "${key}": ${err}`);
42
+ });
43
+ }
44
+ has(key) {
45
+ return this.getItem(key) !== null;
46
+ }
47
+ clear() {
48
+ __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_store).call(this)
49
+ .getAll()
50
+ .then((cookies) => {
51
+ for (const cookie of cookies) {
52
+ if (cookie.name == null)
53
+ continue;
54
+ __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_store).call(this)
55
+ .delete({
56
+ name: cookie.name,
57
+ domain: __classPrivateFieldGet(this, _CookieStorageAdapter_options, "f").domain ?? null,
58
+ path: __classPrivateFieldGet(this, _CookieStorageAdapter_options, "f").path,
59
+ })
60
+ .catch((err) => {
61
+ throw new Error(`Failed to delete cookie "${cookie.name}": ${err}`);
62
+ });
63
+ }
64
+ })
65
+ .catch((err) => {
66
+ throw new Error(`Failed to clear cookies: ${err}`);
67
+ });
68
+ }
69
+ init() {
70
+ if (typeof window === "undefined" || !window.cookieStore)
71
+ return;
72
+ window.cookieStore.onchange = (event) => {
73
+ for (const cookie of event.changed) {
74
+ __classPrivateFieldGet(this, _CookieStorageAdapter_onExternalChangeHandler, "f")?.call(this, cookie.name ?? null, cookie.value ?? null);
75
+ }
76
+ for (const cookie of event.deleted) {
77
+ __classPrivateFieldGet(this, _CookieStorageAdapter_onExternalChangeHandler, "f")?.call(this, cookie.name ?? null, null);
78
+ }
79
+ };
80
+ }
81
+ }
82
+ exports.CookieStorageAdapter = CookieStorageAdapter;
83
+ _CookieStorageAdapter_options = new WeakMap(), _CookieStorageAdapter_onExternalChangeHandler = new WeakMap(), _CookieStorageAdapter_instances = new WeakSet(), _CookieStorageAdapter_store = function _CookieStorageAdapter_store() {
84
+ if (typeof window === "undefined" || !window.cookieStore) {
85
+ throw new Error("cookieStore is not available in this environment");
86
+ }
87
+ return window.cookieStore;
88
+ }, _CookieStorageAdapter_buildInit = function _CookieStorageAdapter_buildInit(name, value, options) {
89
+ const opts = { ...__classPrivateFieldGet(this, _CookieStorageAdapter_options, "f"), ...options };
90
+ const init = { name, value };
91
+ if (opts.path != null)
92
+ init.path = opts.path;
93
+ if (opts.domain != null)
94
+ init.domain = opts.domain;
95
+ if (opts.maxAge != null)
96
+ init.expires = Date.now() + opts.maxAge * 1000;
97
+ if (opts.sameSite != null)
98
+ init.sameSite = opts.sameSite;
99
+ return init;
100
+ }, _CookieStorageAdapter_entries = function _CookieStorageAdapter_entries() {
101
+ if (typeof document === "undefined" || !document.cookie)
102
+ return [];
103
+ return document.cookie
104
+ .split("; ")
105
+ .filter(Boolean)
106
+ .map((c) => {
107
+ const eq = c.indexOf("=");
108
+ return [decodeURIComponent(c.slice(0, eq)), decodeURIComponent(c.slice(eq + 1))];
109
+ });
110
+ };
111
+ //# sourceMappingURL=CookieStorageAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorageAdapter.js","sourceRoot":"","sources":["../../src/CookieStorageAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export interface DefaultCookieStorageKeys {
2
+ }
3
+ //# sourceMappingURL=DefaultCookieStorageKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultCookieStorageKeys.d.ts","sourceRoot":"","sources":["../../src/DefaultCookieStorageKeys.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,wBAAwB;CAAG"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DefaultCookieStorageKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultCookieStorageKeys.js","sourceRoot":"","sources":["../../src/DefaultCookieStorageKeys.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorage.d.ts","sourceRoot":"","sources":["../../src/LocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,cAAM,aAAc,SAAQ,WAAW,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;IAC7E,MAAM,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAQ;IAE9C,MAAM,CAAC,WAAW,IAAI,aAAa;CAOpC;AAED,eAAO,MAAM,YAAY,eAA8B,CAAC"}
1
+ {"version":3,"file":"LocalStorage.d.ts","sourceRoot":"","sources":["../../src/LocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGzE,cAAM,aAAc,SAAQ,WAAW,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;IAC7E,MAAM,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAQ;IAE9C,MAAM,CAAC,WAAW,IAAI,aAAa;CAOpC;AAED,eAAO,MAAM,YAAY,eAA8B,CAAC"}
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LocalStorage = void 0;
4
4
  const BaseStorage_1 = require("./BaseStorage");
5
+ const NativeStorageAdapter_1 = require("./NativeStorageAdapter");
5
6
  class _LocalStorage extends BaseStorage_1.BaseStorage {
6
7
  static getInstance() {
7
8
  if (_LocalStorage._instance == null) {
8
- _LocalStorage._instance = new _LocalStorage(localStorage);
9
+ _LocalStorage._instance = new _LocalStorage(new NativeStorageAdapter_1.NativeStorageAdapter(localStorage));
9
10
  }
10
11
  return _LocalStorage._instance;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../src/LocalStorage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAG5C,MAAM,aAAc,SAAQ,yBAAmD;IAG7E,MAAM,CAAC,WAAW;QAChB,IAAI,aAAa,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACpC,aAAa,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;;AARM,uBAAS,GAAyB,IAAI,CAAC;AAWnC,QAAA,YAAY,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../src/LocalStorage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,iEAA8D;AAE9D,MAAM,aAAc,SAAQ,yBAAmD;IAG7E,MAAM,CAAC,WAAW;QAChB,IAAI,aAAa,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACpC,aAAa,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,2CAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;;AARM,uBAAS,GAAyB,IAAI,CAAC;AAWnC,QAAA,YAAY,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Store } from "./Store";
2
+ export declare class NativeStorageAdapter implements Store {
3
+ #private;
4
+ constructor(storage: Storage);
5
+ getItem(key: string): string | null;
6
+ setItem(key: string, value: string): void;
7
+ removeItem(key: string): void;
8
+ has(key: string): boolean;
9
+ clear(): void;
10
+ init(): void;
11
+ onExternalChange: (handler: (key: string | null, value: string | null) => void) => void;
12
+ }
13
+ //# sourceMappingURL=NativeStorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeStorageAdapter.d.ts","sourceRoot":"","sources":["../../src/NativeStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,oBAAqB,YAAW,KAAK;;gBAIpC,OAAO,EAAE,OAAO;IAI5B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAQZ,gBAAgB,GAAI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KAAG,IAAI,CAEpF;CACH"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _NativeStorageAdapter_storage, _NativeStorageAdapter_onExternalChangeHandler;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.NativeStorageAdapter = void 0;
16
+ class NativeStorageAdapter {
17
+ constructor(storage) {
18
+ _NativeStorageAdapter_storage.set(this, void 0);
19
+ _NativeStorageAdapter_onExternalChangeHandler.set(this, null);
20
+ this.onExternalChange = (handler) => {
21
+ __classPrivateFieldSet(this, _NativeStorageAdapter_onExternalChangeHandler, handler, "f");
22
+ };
23
+ __classPrivateFieldSet(this, _NativeStorageAdapter_storage, storage, "f");
24
+ }
25
+ getItem(key) {
26
+ return __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").getItem(key);
27
+ }
28
+ setItem(key, value) {
29
+ __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").setItem(key, value);
30
+ }
31
+ removeItem(key) {
32
+ __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").removeItem(key);
33
+ }
34
+ has(key) {
35
+ return __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").getItem(key) !== null;
36
+ }
37
+ clear() {
38
+ __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").clear();
39
+ }
40
+ init() {
41
+ if (typeof window === "undefined")
42
+ return;
43
+ window.addEventListener("storage", (event) => {
44
+ if (event.storageArea !== __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f"))
45
+ return;
46
+ __classPrivateFieldGet(this, _NativeStorageAdapter_onExternalChangeHandler, "f")?.call(this, event.key, event.newValue);
47
+ });
48
+ }
49
+ }
50
+ exports.NativeStorageAdapter = NativeStorageAdapter;
51
+ _NativeStorageAdapter_storage = new WeakMap(), _NativeStorageAdapter_onExternalChangeHandler = new WeakMap();
52
+ //# sourceMappingURL=NativeStorageAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeStorageAdapter.js","sourceRoot":"","sources":["../../src/NativeStorageAdapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,MAAa,oBAAoB;IAI/B,YAAY,OAAgB;QAHnB,gDAAkB;QAC3B,wDAAwF,IAAI,EAAC;QAkC7F,qBAAgB,GAAG,CAAC,OAA2D,EAAQ,EAAE;YACvF,uBAAA,IAAI,iDAA4B,OAAO,MAAA,CAAC;QAC1C,CAAC,CAAC;QAjCA,uBAAA,IAAI,iCAAY,OAAO,MAAA,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,OAAO,uBAAA,IAAI,qCAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,KAAa;QAChC,uBAAA,IAAI,qCAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,uBAAA,IAAI,qCAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,uBAAA,IAAI,qCAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK;QACH,uBAAA,IAAI,qCAAS,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,IAAI;QACF,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3C,IAAI,KAAK,CAAC,WAAW,KAAK,uBAAA,IAAI,qCAAS;gBAAE,OAAO;YAChD,uBAAA,IAAI,qDAAyB,EAAE,KAA/B,IAAI,EAA4B,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;CAKF;AAvCD,oDAuCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStorage.d.ts","sourceRoot":"","sources":["../../src/SessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,cAAM,eAAgB,SAAQ,WAAW,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;IACjF,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEhD,MAAM,CAAC,WAAW,IAAI,eAAe;CAOtC;AAED,eAAO,MAAM,cAAc,iBAAgC,CAAC"}
1
+ {"version":3,"file":"SessionStorage.d.ts","sourceRoot":"","sources":["../../src/SessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAG7E,cAAM,eAAgB,SAAQ,WAAW,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;IACjF,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEhD,MAAM,CAAC,WAAW,IAAI,eAAe;CAOtC;AAED,eAAO,MAAM,cAAc,iBAAgC,CAAC"}
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SessionStorage = void 0;
4
4
  const BaseStorage_1 = require("./BaseStorage");
5
+ const NativeStorageAdapter_1 = require("./NativeStorageAdapter");
5
6
  class _SessionStorage extends BaseStorage_1.BaseStorage {
6
7
  static getInstance() {
7
8
  if (_SessionStorage._instance == null) {
8
- _SessionStorage._instance = new _SessionStorage(sessionStorage);
9
+ _SessionStorage._instance = new _SessionStorage(new NativeStorageAdapter_1.NativeStorageAdapter(sessionStorage));
9
10
  }
10
11
  return _SessionStorage._instance;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStorage.js","sourceRoot":"","sources":["../../src/SessionStorage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAG5C,MAAM,eAAgB,SAAQ,yBAAqD;IAGjF,MAAM,CAAC,WAAW;QAChB,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACtC,eAAe,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,eAAe,CAAC,SAAS,CAAC;IACnC,CAAC;;AARM,yBAAS,GAA2B,IAAI,CAAC;AAWrC,QAAA,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"SessionStorage.js","sourceRoot":"","sources":["../../src/SessionStorage.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,iEAA8D;AAE9D,MAAM,eAAgB,SAAQ,yBAAqD;IAGjF,MAAM,CAAC,WAAW;QAChB,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACtC,eAAe,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,IAAI,2CAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,eAAe,CAAC,SAAS,CAAC;IACnC,CAAC;;AARM,yBAAS,GAA2B,IAAI,CAAC;AAWrC,QAAA,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { Observable, type ObservableValueInterface, type SetFunction, type Subscriber } from "@efficimo/observable";
2
+ import type { Store } from "./Store";
2
3
  export declare class StorageObservable<StorageKey extends string> extends Observable<string | null> implements ObservableValueInterface<string | null> {
3
4
  private key;
4
5
  private storage;
5
- constructor(key: StorageKey, storage: Storage);
6
- subscribe: (subscriber: Subscriber<string | null>) => import("@efficimo/observable").Subscription;
7
- next: (value: string | null | SetFunction<string | null>) => Promise<void>;
6
+ constructor(key: StorageKey, storage: Store<StorageKey, unknown>);
7
+ subscribe: (subscriber: Subscriber<string | null>) => import("@efficimo/observable").SubscriptionInterface;
8
+ next: (value: string | null | SetFunction<string | null>) => void;
8
9
  getValue: () => string | null;
9
10
  }
10
11
  //# sourceMappingURL=StorageObservable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageObservable.d.ts","sourceRoot":"","sources":["../../src/StorageObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,iBAAiB,CAAC,UAAU,SAAS,MAAM,CACtD,SAAQ,UAAU,CAAC,MAAM,GAAG,IAAI,CAChC,YAAW,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;IAElD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAU;gBAEb,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;IAM7C,SAAS,GAAI,YAAY,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,iDAGhD;IAEF,IAAI,GAAU,OAAO,MAAM,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,mBAe7D;IAEF,QAAQ,sBAEN;CACH"}
1
+ {"version":3,"file":"StorageObservable.d.ts","sourceRoot":"","sources":["../../src/StorageObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,iBAAiB,CAAC,UAAU,SAAS,MAAM,CACtD,SAAQ,UAAU,CAAC,MAAM,GAAG,IAAI,CAChC,YAAW,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;IAElD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAA6B;gBAEhC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAMhE,SAAS,GAAI,YAAY,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,0DAGhD;IAEF,IAAI,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,KAAG,IAAI,CAe9D;IAEF,QAAQ,sBAEN;CACH"}
@@ -9,9 +9,9 @@ class StorageObservable extends observable_1.Observable {
9
9
  subscriber(this.storage.getItem(this.key));
10
10
  return super.subscribe(subscriber);
11
11
  };
12
- this.next = async (value) => {
12
+ this.next = (value) => {
13
13
  const prevValue = this.storage.getItem(this.key);
14
- const newValue = (0, observable_1.isSetFunction)(value) ? await value(prevValue) : value;
14
+ const newValue = (0, observable_1.isSetFunction)(value) ? value(prevValue) : value;
15
15
  if (prevValue === newValue) {
16
16
  return;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StorageObservable.js","sourceRoot":"","sources":["../../src/StorageObservable.ts"],"names":[],"mappings":";;;AAAA,qDAM8B;AAE9B,MAAa,iBACX,SAAQ,uBAAyB;IAMjC,YAAY,GAAe,EAAE,OAAgB;QAC3C,KAAK,EAAE,CAAC;QAKV,cAAS,GAAG,CAAC,UAAqC,EAAE,EAAE;YACpD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,SAAI,GAAG,KAAK,EAAE,KAAiD,EAAE,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEvE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,aAAQ,GAAG,GAAG,EAAE;YACd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC;QA5BA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CA2BF;AAtCD,8CAsCC"}
1
+ {"version":3,"file":"StorageObservable.js","sourceRoot":"","sources":["../../src/StorageObservable.ts"],"names":[],"mappings":";;;AAAA,qDAM8B;AAG9B,MAAa,iBACX,SAAQ,uBAAyB;IAMjC,YAAY,GAAe,EAAE,OAAmC;QAC9D,KAAK,EAAE,CAAC;QAKV,cAAS,GAAG,CAAC,UAAqC,EAAE,EAAE;YACpD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,SAAI,GAAG,CAAC,KAAiD,EAAQ,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEjE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,aAAQ,GAAG,GAAG,EAAE;YACd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC;QA5BA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CA2BF;AAtCD,8CAsCC"}
@@ -0,0 +1,10 @@
1
+ export interface Store<StorageKey extends string = string, Options = void> {
2
+ getItem(key: StorageKey, options?: Options): string | null;
3
+ setItem(key: StorageKey, value: string, options?: Options): void;
4
+ removeItem(key: StorageKey): void;
5
+ has(key: StorageKey): boolean;
6
+ clear(): void;
7
+ init(): void;
8
+ onExternalChange?: (handler: (key: string | null, value: string | null) => void) => void;
9
+ }
10
+ //# sourceMappingURL=Store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,IAAI;IACvE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACjE,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC;IAC9B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC;CAC1F"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":""}
@@ -1,7 +1,12 @@
1
1
  export * from "./BaseStorage";
2
+ export * from "./CookieStorage";
3
+ export * from "./CookieStorageAdapter";
4
+ export * from "./DefaultCookieStorageKeys";
2
5
  export * from "./DefaultLocalStorageKeys";
3
6
  export * from "./DefaultSessionStorageKeys";
4
7
  export * from "./LocalStorage";
8
+ export * from "./NativeStorageAdapter";
5
9
  export * from "./SessionStorage";
6
10
  export * from "./StorageObservable";
11
+ export * from "./Store";
7
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -15,9 +15,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./BaseStorage"), exports);
18
+ __exportStar(require("./CookieStorage"), exports);
19
+ __exportStar(require("./CookieStorageAdapter"), exports);
20
+ __exportStar(require("./DefaultCookieStorageKeys"), exports);
18
21
  __exportStar(require("./DefaultLocalStorageKeys"), exports);
19
22
  __exportStar(require("./DefaultSessionStorageKeys"), exports);
20
23
  __exportStar(require("./LocalStorage"), exports);
24
+ __exportStar(require("./NativeStorageAdapter"), exports);
21
25
  __exportStar(require("./SessionStorage"), exports);
22
26
  __exportStar(require("./StorageObservable"), exports);
27
+ __exportStar(require("./Store"), exports);
23
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,4DAA0C;AAC1C,8DAA4C;AAC5C,iDAA+B;AAC/B,mDAAiC;AACjC,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,kDAAgC;AAChC,yDAAuC;AACvC,6DAA2C;AAC3C,4DAA0C;AAC1C,8DAA4C;AAC5C,iDAA+B;AAC/B,yDAAuC;AACvC,mDAAiC;AACjC,sDAAoC;AACpC,0CAAwB"}
@@ -1,8 +1,9 @@
1
1
  import { JsonSerializeObservableValue, type SafeParseSchema } from "@efficimo/observable";
2
2
  import { StorageObservable } from "./StorageObservable";
3
- export declare class BaseStorage<StorageKey extends string> {
3
+ import type { Store } from "./Store";
4
+ export declare class BaseStorage<StorageKey extends string, Options = never> {
4
5
  #private;
5
- constructor(storage: Storage);
6
+ constructor(storage: Store<StorageKey, Options>);
6
7
  getObservable<StorageKeyParam extends StorageKey>(storageKey: StorageKeyParam, defaultValue?: string | null): StorageObservable<StorageKey>;
7
8
  getSerializedObservable<StorageKeyParam extends StorageKey, Value>(storageKey: StorageKeyParam, schema: SafeParseSchema<Value>, defaultValue?: Value): JsonSerializeObservableValue<Value>;
8
9
  get<StorageKeyParam extends StorageKey>(storageKey: StorageKeyParam, defaultValue?: string | null): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStorage.d.ts","sourceRoot":"","sources":["../../src/BaseStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAgBxD,qBAAa,WAAW,CAAC,UAAU,SAAS,MAAM;;gBAM7B,OAAO,EAAE,OAAO;IAqB5B,aAAa,CAAC,eAAe,SAAS,UAAU,EACrD,UAAU,EAAE,eAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,iBAAiB,CAAC,UAAU,CAAC;IAQzB,uBAAuB,CAAC,eAAe,SAAS,UAAU,EAAE,KAAK,EACtE,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,EAC9B,YAAY,CAAC,EAAE,KAAK,GACnB,4BAA4B,CAAC,KAAK,CAAC;IAQ/B,GAAG,CAAC,eAAe,SAAS,UAAU,EAC3C,UAAU,EAAE,eAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,GAAG,IAAI;IAIT,GAAG,CAAC,eAAe,SAAS,UAAU,EAC3C,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,IAAI;IAIA,GAAG,CAAC,eAAe,SAAS,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO;IAU7E,MAAM,CAAC,eAAe,SAAS,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAI7E,KAAK,IAAI,IAAI;CAIrB"}
1
+ {"version":3,"file":"BaseStorage.d.ts","sourceRoot":"","sources":["../../src/BaseStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAgBrC,qBAAa,WAAW,CAAC,UAAU,SAAS,MAAM,EAAE,OAAO,GAAG,KAAK;;gBAM9C,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAkB/C,aAAa,CAAC,eAAe,SAAS,UAAU,EACrD,UAAU,EAAE,eAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,iBAAiB,CAAC,UAAU,CAAC;IAQzB,uBAAuB,CAAC,eAAe,SAAS,UAAU,EAAE,KAAK,EACtE,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,EAC9B,YAAY,CAAC,EAAE,KAAK,GACnB,4BAA4B,CAAC,KAAK,CAAC;IAQ/B,GAAG,CAAC,eAAe,SAAS,UAAU,EAC3C,UAAU,EAAE,eAAe,EAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,GAAG,IAAI;IAIT,GAAG,CAAC,eAAe,SAAS,UAAU,EAC3C,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,IAAI;IAIA,GAAG,CAAC,eAAe,SAAS,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO;IAI7E,MAAM,CAAC,eAAe,SAAS,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAI7E,KAAK,IAAI,IAAI;CAIrB"}
@@ -25,22 +25,18 @@ export class BaseStorage {
25
25
  _BaseStorage_observables.set(this, void 0);
26
26
  __classPrivateFieldSet(this, _BaseStorage_observables, {}, "f");
27
27
  __classPrivateFieldSet(this, _BaseStorage_storage, storage, "f");
28
- if (typeof window !== "undefined") {
29
- window.addEventListener("storage", (event) => {
30
- if (event.storageArea === __classPrivateFieldGet(this, _BaseStorage_storage, "f")) {
31
- if (null === event.key) {
32
- for (const observable of Object.values(__classPrivateFieldGet(this, _BaseStorage_observables, "f"))) {
33
- observable.next(null);
34
- }
35
- __classPrivateFieldSet(this, _BaseStorage_observables, {}, "f");
36
- }
37
- else {
38
- const observable = __classPrivateFieldGet(this, _BaseStorage_observables, "f")[event.key];
39
- observable?.next(event.newValue);
40
- }
28
+ storage.onExternalChange?.((key, value) => {
29
+ if (key === null) {
30
+ for (const observable of Object.values(__classPrivateFieldGet(this, _BaseStorage_observables, "f"))) {
31
+ observable.next(null);
41
32
  }
42
- });
43
- }
33
+ __classPrivateFieldSet(this, _BaseStorage_observables, {}, "f");
34
+ }
35
+ else {
36
+ __classPrivateFieldGet(this, _BaseStorage_observables, "f")[key]?.next(value);
37
+ }
38
+ });
39
+ storage.init();
44
40
  }
45
41
  getObservable(storageKey, defaultValue) {
46
42
  if (__classPrivateFieldGet(this, _BaseStorage_observables, "f")[storageKey] == null) {
@@ -58,12 +54,7 @@ export class BaseStorage {
58
54
  this.getObservable(storageKey).next(data);
59
55
  }
60
56
  has(storageKey) {
61
- for (let i = 0; i < __classPrivateFieldGet(this, _BaseStorage_storage, "f").length; i++) {
62
- if (__classPrivateFieldGet(this, _BaseStorage_storage, "f").key(i) === storageKey) {
63
- return true;
64
- }
65
- }
66
- return false;
57
+ return __classPrivateFieldGet(this, _BaseStorage_storage, "f").has(storageKey);
67
58
  }
68
59
  remove(storageKey) {
69
60
  this.getObservable(storageKey).next(null);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStorage.js","sourceRoot":"","sources":["../../src/BaseStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseStorage.js","sourceRoot":"","sources":["../../src/BaseStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,4BAA4B,EAAwB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,gBAAgB,GAAG,CACvB,OAAmC,EACnC,GAAe,EACf,YAA4B,EACG,EAAE;IACjC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAa,GAAG,EAAE,OAAO,CAAC,CAAC;IAE5D,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,OAAO,WAAW;IAMtB,YAAmB,OAAmC;QALtD,uCAAqC;QACrC,2CAEE;QAGA,uBAAA,IAAI,4BAAgB,EAAE,MAAA,CAAC;QACvB,uBAAA,IAAI,wBAAY,OAAO,MAAA,CAAC;QAExB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAA,IAAI,gCAAa,CAAC,EAAE,CAAC;oBACzD,UAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,CAAC;gBACD,uBAAA,IAAI,4BAAgB,EAAE,MAAA,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,uBAAA,IAAI,gCAAa,CAAC,GAAiB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAEM,aAAa,CAClB,UAA2B,EAC3B,YAA4B;QAE5B,IAAI,uBAAA,IAAI,gCAAa,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1C,uBAAA,IAAI,gCAAa,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,uBAAA,IAAI,4BAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,uBAAA,IAAI,gCAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEM,uBAAuB,CAC5B,UAA2B,EAC3B,MAA8B,EAC9B,YAAoB;QAEpB,OAAO,IAAI,4BAA4B,CACrC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAC1F,MAAM,EACN,YAAY,CACb,CAAC;IACJ,CAAC;IAEM,GAAG,CACR,UAA2B,EAC3B,YAA4B;QAE5B,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjE,CAAC;IAEM,GAAG,CACR,UAA2B,EAC3B,IAAmB;QAEnB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,GAAG,CAAqC,UAA2B;QACxE,OAAO,uBAAA,IAAI,4BAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAqC,UAA2B;QAC3E,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK;QACV,uBAAA,IAAI,4BAAS,CAAC,KAAK,EAAE,CAAC;QACtB,uBAAA,IAAI,4BAAgB,EAAE,MAAA,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { BaseStorage } from "./BaseStorage";
2
+ import { type CookieOptions } from "./CookieStorageAdapter";
3
+ import type { DefaultCookieStorageKeys } from "./DefaultCookieStorageKeys";
4
+ export type { CookieOptions };
5
+ declare class _CookieStorage extends BaseStorage<keyof DefaultCookieStorageKeys & string, CookieOptions> {
6
+ static _instance: _CookieStorage | null;
7
+ static getInstance(): _CookieStorage;
8
+ }
9
+ export declare const CookieStorage: _CookieStorage;
10
+ //# sourceMappingURL=CookieStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorage.d.ts","sourceRoot":"","sources":["../../src/CookieStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,wBAAwB,CAAC;AAClF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,cAAM,cAAe,SAAQ,WAAW,CAAC,MAAM,wBAAwB,GAAG,MAAM,EAAE,aAAa,CAAC;IAC9F,MAAM,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE/C,MAAM,CAAC,WAAW,IAAI,cAAc;CAOrC;AAED,eAAO,MAAM,aAAa,gBAA+B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { BaseStorage } from "./BaseStorage";
2
+ import { CookieStorageAdapter } from "./CookieStorageAdapter";
3
+ class _CookieStorage extends BaseStorage {
4
+ static getInstance() {
5
+ if (_CookieStorage._instance == null) {
6
+ _CookieStorage._instance = new _CookieStorage(new CookieStorageAdapter());
7
+ }
8
+ return _CookieStorage._instance;
9
+ }
10
+ }
11
+ _CookieStorage._instance = null;
12
+ export const CookieStorage = _CookieStorage.getInstance();
13
+ //# sourceMappingURL=CookieStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorage.js","sourceRoot":"","sources":["../../src/CookieStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAsB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAKlF,MAAM,cAAe,SAAQ,WAAmE;IAG9F,MAAM,CAAC,WAAW;QAChB,IAAI,cAAc,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACrC,cAAc,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;;AARM,wBAAS,GAA0B,IAAI,CAAC;AAWjD,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Store } from "./Store";
2
+ export interface CookieOptions {
3
+ path?: string;
4
+ domain?: string;
5
+ maxAge?: number;
6
+ sameSite?: CookieSameSite;
7
+ }
8
+ export declare class CookieStorageAdapter implements Store<string, CookieOptions> {
9
+ #private;
10
+ constructor(options?: CookieOptions);
11
+ getItem(key: string): string | null;
12
+ setItem(key: string, value: string, options?: CookieOptions): void;
13
+ removeItem(key: string): void;
14
+ has(key: string): boolean;
15
+ clear(): void;
16
+ init(): void;
17
+ onExternalChange: (handler: (key: string | null, value: string | null) => void) => void;
18
+ }
19
+ //# sourceMappingURL=CookieStorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorageAdapter.d.ts","sourceRoot":"","sources":["../../src/CookieStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,qBAAa,oBAAqB,YAAW,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC;;gBAI3D,OAAO,GAAE,aAAkB;IAIvC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAQlE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;IAsBb,IAAI,IAAI,IAAI;IAYZ,gBAAgB,GAAI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KAAG,IAAI,CAEpF;CA6BH"}
@@ -0,0 +1,107 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _CookieStorageAdapter_instances, _CookieStorageAdapter_options, _CookieStorageAdapter_onExternalChangeHandler, _CookieStorageAdapter_store, _CookieStorageAdapter_buildInit, _CookieStorageAdapter_entries;
13
+ export class CookieStorageAdapter {
14
+ constructor(options = {}) {
15
+ _CookieStorageAdapter_instances.add(this);
16
+ _CookieStorageAdapter_options.set(this, void 0);
17
+ _CookieStorageAdapter_onExternalChangeHandler.set(this, null);
18
+ this.onExternalChange = (handler) => {
19
+ __classPrivateFieldSet(this, _CookieStorageAdapter_onExternalChangeHandler, handler, "f");
20
+ };
21
+ __classPrivateFieldSet(this, _CookieStorageAdapter_options, options, "f");
22
+ }
23
+ getItem(key) {
24
+ return __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_entries).call(this).find(([k]) => k === key)?.[1] ?? null;
25
+ }
26
+ setItem(key, value, options) {
27
+ __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_store).call(this)
28
+ .set(__classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_buildInit).call(this, key, value, options))
29
+ .catch((err) => {
30
+ throw new Error(`Failed to set cookie "${key}": ${err}`);
31
+ });
32
+ }
33
+ removeItem(key) {
34
+ const opts = __classPrivateFieldGet(this, _CookieStorageAdapter_options, "f");
35
+ __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_store).call(this)
36
+ .delete({ name: key, domain: opts.domain ?? null, path: opts.path })
37
+ .catch((err) => {
38
+ throw new Error(`Failed to delete cookie "${key}": ${err}`);
39
+ });
40
+ }
41
+ has(key) {
42
+ return this.getItem(key) !== null;
43
+ }
44
+ clear() {
45
+ __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_store).call(this)
46
+ .getAll()
47
+ .then((cookies) => {
48
+ for (const cookie of cookies) {
49
+ if (cookie.name == null)
50
+ continue;
51
+ __classPrivateFieldGet(this, _CookieStorageAdapter_instances, "m", _CookieStorageAdapter_store).call(this)
52
+ .delete({
53
+ name: cookie.name,
54
+ domain: __classPrivateFieldGet(this, _CookieStorageAdapter_options, "f").domain ?? null,
55
+ path: __classPrivateFieldGet(this, _CookieStorageAdapter_options, "f").path,
56
+ })
57
+ .catch((err) => {
58
+ throw new Error(`Failed to delete cookie "${cookie.name}": ${err}`);
59
+ });
60
+ }
61
+ })
62
+ .catch((err) => {
63
+ throw new Error(`Failed to clear cookies: ${err}`);
64
+ });
65
+ }
66
+ init() {
67
+ if (typeof window === "undefined" || !window.cookieStore)
68
+ return;
69
+ window.cookieStore.onchange = (event) => {
70
+ for (const cookie of event.changed) {
71
+ __classPrivateFieldGet(this, _CookieStorageAdapter_onExternalChangeHandler, "f")?.call(this, cookie.name ?? null, cookie.value ?? null);
72
+ }
73
+ for (const cookie of event.deleted) {
74
+ __classPrivateFieldGet(this, _CookieStorageAdapter_onExternalChangeHandler, "f")?.call(this, cookie.name ?? null, null);
75
+ }
76
+ };
77
+ }
78
+ }
79
+ _CookieStorageAdapter_options = new WeakMap(), _CookieStorageAdapter_onExternalChangeHandler = new WeakMap(), _CookieStorageAdapter_instances = new WeakSet(), _CookieStorageAdapter_store = function _CookieStorageAdapter_store() {
80
+ if (typeof window === "undefined" || !window.cookieStore) {
81
+ throw new Error("cookieStore is not available in this environment");
82
+ }
83
+ return window.cookieStore;
84
+ }, _CookieStorageAdapter_buildInit = function _CookieStorageAdapter_buildInit(name, value, options) {
85
+ const opts = { ...__classPrivateFieldGet(this, _CookieStorageAdapter_options, "f"), ...options };
86
+ const init = { name, value };
87
+ if (opts.path != null)
88
+ init.path = opts.path;
89
+ if (opts.domain != null)
90
+ init.domain = opts.domain;
91
+ if (opts.maxAge != null)
92
+ init.expires = Date.now() + opts.maxAge * 1000;
93
+ if (opts.sameSite != null)
94
+ init.sameSite = opts.sameSite;
95
+ return init;
96
+ }, _CookieStorageAdapter_entries = function _CookieStorageAdapter_entries() {
97
+ if (typeof document === "undefined" || !document.cookie)
98
+ return [];
99
+ return document.cookie
100
+ .split("; ")
101
+ .filter(Boolean)
102
+ .map((c) => {
103
+ const eq = c.indexOf("=");
104
+ return [decodeURIComponent(c.slice(0, eq)), decodeURIComponent(c.slice(eq + 1))];
105
+ });
106
+ };
107
+ //# sourceMappingURL=CookieStorageAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorageAdapter.js","sourceRoot":"","sources":["../../src/CookieStorageAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export interface DefaultCookieStorageKeys {
2
+ }
3
+ //# sourceMappingURL=DefaultCookieStorageKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultCookieStorageKeys.d.ts","sourceRoot":"","sources":["../../src/DefaultCookieStorageKeys.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,wBAAwB;CAAG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DefaultCookieStorageKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultCookieStorageKeys.js","sourceRoot":"","sources":["../../src/DefaultCookieStorageKeys.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorage.d.ts","sourceRoot":"","sources":["../../src/LocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,cAAM,aAAc,SAAQ,WAAW,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;IAC7E,MAAM,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAQ;IAE9C,MAAM,CAAC,WAAW,IAAI,aAAa;CAOpC;AAED,eAAO,MAAM,YAAY,eAA8B,CAAC"}
1
+ {"version":3,"file":"LocalStorage.d.ts","sourceRoot":"","sources":["../../src/LocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGzE,cAAM,aAAc,SAAQ,WAAW,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;IAC7E,MAAM,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAQ;IAE9C,MAAM,CAAC,WAAW,IAAI,aAAa;CAOpC;AAED,eAAO,MAAM,YAAY,eAA8B,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { BaseStorage } from "./BaseStorage";
2
+ import { NativeStorageAdapter } from "./NativeStorageAdapter";
2
3
  class _LocalStorage extends BaseStorage {
3
4
  static getInstance() {
4
5
  if (_LocalStorage._instance == null) {
5
- _LocalStorage._instance = new _LocalStorage(localStorage);
6
+ _LocalStorage._instance = new _LocalStorage(new NativeStorageAdapter(localStorage));
6
7
  }
7
8
  return _LocalStorage._instance;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../src/LocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,aAAc,SAAQ,WAAmD;IAG7E,MAAM,CAAC,WAAW;QAChB,IAAI,aAAa,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACpC,aAAa,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;;AARM,uBAAS,GAAyB,IAAI,CAAC;AAWhD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../src/LocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,aAAc,SAAQ,WAAmD;IAG7E,MAAM,CAAC,WAAW;QAChB,IAAI,aAAa,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACpC,aAAa,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;;AARM,uBAAS,GAAyB,IAAI,CAAC;AAWhD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Store } from "./Store";
2
+ export declare class NativeStorageAdapter implements Store {
3
+ #private;
4
+ constructor(storage: Storage);
5
+ getItem(key: string): string | null;
6
+ setItem(key: string, value: string): void;
7
+ removeItem(key: string): void;
8
+ has(key: string): boolean;
9
+ clear(): void;
10
+ init(): void;
11
+ onExternalChange: (handler: (key: string | null, value: string | null) => void) => void;
12
+ }
13
+ //# sourceMappingURL=NativeStorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeStorageAdapter.d.ts","sourceRoot":"","sources":["../../src/NativeStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,oBAAqB,YAAW,KAAK;;gBAIpC,OAAO,EAAE,OAAO;IAI5B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAQZ,gBAAgB,GAAI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KAAG,IAAI,CAEpF;CACH"}
@@ -0,0 +1,48 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _NativeStorageAdapter_storage, _NativeStorageAdapter_onExternalChangeHandler;
13
+ export class NativeStorageAdapter {
14
+ constructor(storage) {
15
+ _NativeStorageAdapter_storage.set(this, void 0);
16
+ _NativeStorageAdapter_onExternalChangeHandler.set(this, null);
17
+ this.onExternalChange = (handler) => {
18
+ __classPrivateFieldSet(this, _NativeStorageAdapter_onExternalChangeHandler, handler, "f");
19
+ };
20
+ __classPrivateFieldSet(this, _NativeStorageAdapter_storage, storage, "f");
21
+ }
22
+ getItem(key) {
23
+ return __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").getItem(key);
24
+ }
25
+ setItem(key, value) {
26
+ __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").setItem(key, value);
27
+ }
28
+ removeItem(key) {
29
+ __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").removeItem(key);
30
+ }
31
+ has(key) {
32
+ return __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").getItem(key) !== null;
33
+ }
34
+ clear() {
35
+ __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f").clear();
36
+ }
37
+ init() {
38
+ if (typeof window === "undefined")
39
+ return;
40
+ window.addEventListener("storage", (event) => {
41
+ if (event.storageArea !== __classPrivateFieldGet(this, _NativeStorageAdapter_storage, "f"))
42
+ return;
43
+ __classPrivateFieldGet(this, _NativeStorageAdapter_onExternalChangeHandler, "f")?.call(this, event.key, event.newValue);
44
+ });
45
+ }
46
+ }
47
+ _NativeStorageAdapter_storage = new WeakMap(), _NativeStorageAdapter_onExternalChangeHandler = new WeakMap();
48
+ //# sourceMappingURL=NativeStorageAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeStorageAdapter.js","sourceRoot":"","sources":["../../src/NativeStorageAdapter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAM,OAAO,oBAAoB;IAI/B,YAAY,OAAgB;QAHnB,gDAAkB;QAC3B,wDAAwF,IAAI,EAAC;QAkC7F,qBAAgB,GAAG,CAAC,OAA2D,EAAQ,EAAE;YACvF,uBAAA,IAAI,iDAA4B,OAAO,MAAA,CAAC;QAC1C,CAAC,CAAC;QAjCA,uBAAA,IAAI,iCAAY,OAAO,MAAA,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,OAAO,uBAAA,IAAI,qCAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,KAAa;QAChC,uBAAA,IAAI,qCAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,uBAAA,IAAI,qCAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,uBAAA,IAAI,qCAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK;QACH,uBAAA,IAAI,qCAAS,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,IAAI;QACF,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3C,IAAI,KAAK,CAAC,WAAW,KAAK,uBAAA,IAAI,qCAAS;gBAAE,OAAO;YAChD,uBAAA,IAAI,qDAAyB,EAAE,KAA/B,IAAI,EAA4B,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;CAKF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStorage.d.ts","sourceRoot":"","sources":["../../src/SessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,cAAM,eAAgB,SAAQ,WAAW,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;IACjF,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEhD,MAAM,CAAC,WAAW,IAAI,eAAe;CAOtC;AAED,eAAO,MAAM,cAAc,iBAAgC,CAAC"}
1
+ {"version":3,"file":"SessionStorage.d.ts","sourceRoot":"","sources":["../../src/SessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAG7E,cAAM,eAAgB,SAAQ,WAAW,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;IACjF,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEhD,MAAM,CAAC,WAAW,IAAI,eAAe;CAOtC;AAED,eAAO,MAAM,cAAc,iBAAgC,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { BaseStorage } from "./BaseStorage";
2
+ import { NativeStorageAdapter } from "./NativeStorageAdapter";
2
3
  class _SessionStorage extends BaseStorage {
3
4
  static getInstance() {
4
5
  if (_SessionStorage._instance == null) {
5
- _SessionStorage._instance = new _SessionStorage(sessionStorage);
6
+ _SessionStorage._instance = new _SessionStorage(new NativeStorageAdapter(sessionStorage));
6
7
  }
7
8
  return _SessionStorage._instance;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStorage.js","sourceRoot":"","sources":["../../src/SessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,eAAgB,SAAQ,WAAqD;IAGjF,MAAM,CAAC,WAAW;QAChB,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACtC,eAAe,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,eAAe,CAAC,SAAS,CAAC;IACnC,CAAC;;AARM,yBAAS,GAA2B,IAAI,CAAC;AAWlD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"SessionStorage.js","sourceRoot":"","sources":["../../src/SessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,eAAgB,SAAQ,WAAqD;IAGjF,MAAM,CAAC,WAAW;QAChB,IAAI,eAAe,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACtC,eAAe,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,eAAe,CAAC,SAAS,CAAC;IACnC,CAAC;;AARM,yBAAS,GAA2B,IAAI,CAAC;AAWlD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { Observable, type ObservableValueInterface, type SetFunction, type Subscriber } from "@efficimo/observable";
2
+ import type { Store } from "./Store";
2
3
  export declare class StorageObservable<StorageKey extends string> extends Observable<string | null> implements ObservableValueInterface<string | null> {
3
4
  private key;
4
5
  private storage;
5
- constructor(key: StorageKey, storage: Storage);
6
- subscribe: (subscriber: Subscriber<string | null>) => import("@efficimo/observable").Subscription;
7
- next: (value: string | null | SetFunction<string | null>) => Promise<void>;
6
+ constructor(key: StorageKey, storage: Store<StorageKey, unknown>);
7
+ subscribe: (subscriber: Subscriber<string | null>) => import("@efficimo/observable").SubscriptionInterface;
8
+ next: (value: string | null | SetFunction<string | null>) => void;
8
9
  getValue: () => string | null;
9
10
  }
10
11
  //# sourceMappingURL=StorageObservable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageObservable.d.ts","sourceRoot":"","sources":["../../src/StorageObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,iBAAiB,CAAC,UAAU,SAAS,MAAM,CACtD,SAAQ,UAAU,CAAC,MAAM,GAAG,IAAI,CAChC,YAAW,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;IAElD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAU;gBAEb,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;IAM7C,SAAS,GAAI,YAAY,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,iDAGhD;IAEF,IAAI,GAAU,OAAO,MAAM,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,mBAe7D;IAEF,QAAQ,sBAEN;CACH"}
1
+ {"version":3,"file":"StorageObservable.d.ts","sourceRoot":"","sources":["../../src/StorageObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,iBAAiB,CAAC,UAAU,SAAS,MAAM,CACtD,SAAQ,UAAU,CAAC,MAAM,GAAG,IAAI,CAChC,YAAW,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;IAElD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAA6B;gBAEhC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAMhE,SAAS,GAAI,YAAY,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,0DAGhD;IAEF,IAAI,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,KAAG,IAAI,CAe9D;IAEF,QAAQ,sBAEN;CACH"}
@@ -6,9 +6,9 @@ export class StorageObservable extends Observable {
6
6
  subscriber(this.storage.getItem(this.key));
7
7
  return super.subscribe(subscriber);
8
8
  };
9
- this.next = async (value) => {
9
+ this.next = (value) => {
10
10
  const prevValue = this.storage.getItem(this.key);
11
- const newValue = isSetFunction(value) ? await value(prevValue) : value;
11
+ const newValue = isSetFunction(value) ? value(prevValue) : value;
12
12
  if (prevValue === newValue) {
13
13
  return;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StorageObservable.js","sourceRoot":"","sources":["../../src/StorageObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,GAIX,MAAM,sBAAsB,CAAC;AAE9B,MAAM,OAAO,iBACX,SAAQ,UAAyB;IAMjC,YAAY,GAAe,EAAE,OAAgB;QAC3C,KAAK,EAAE,CAAC;QAKV,cAAS,GAAG,CAAC,UAAqC,EAAE,EAAE;YACpD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,SAAI,GAAG,KAAK,EAAE,KAAiD,EAAE,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEvE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,aAAQ,GAAG,GAAG,EAAE;YACd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC;QA5BA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CA2BF"}
1
+ {"version":3,"file":"StorageObservable.js","sourceRoot":"","sources":["../../src/StorageObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,GAIX,MAAM,sBAAsB,CAAC;AAG9B,MAAM,OAAO,iBACX,SAAQ,UAAyB;IAMjC,YAAY,GAAe,EAAE,OAAmC;QAC9D,KAAK,EAAE,CAAC;QAKV,cAAS,GAAG,CAAC,UAAqC,EAAE,EAAE;YACpD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,SAAI,GAAG,CAAC,KAAiD,EAAQ,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEjE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,aAAQ,GAAG,GAAG,EAAE;YACd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC;QA5BA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CA2BF"}
@@ -0,0 +1,10 @@
1
+ export interface Store<StorageKey extends string = string, Options = void> {
2
+ getItem(key: StorageKey, options?: Options): string | null;
3
+ setItem(key: StorageKey, value: string, options?: Options): void;
4
+ removeItem(key: StorageKey): void;
5
+ has(key: StorageKey): boolean;
6
+ clear(): void;
7
+ init(): void;
8
+ onExternalChange?: (handler: (key: string | null, value: string | null) => void) => void;
9
+ }
10
+ //# sourceMappingURL=Store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,IAAI;IACvE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACjE,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC;IAC9B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC;CAC1F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":""}
@@ -1,7 +1,12 @@
1
1
  export * from "./BaseStorage";
2
+ export * from "./CookieStorage";
3
+ export * from "./CookieStorageAdapter";
4
+ export * from "./DefaultCookieStorageKeys";
2
5
  export * from "./DefaultLocalStorageKeys";
3
6
  export * from "./DefaultSessionStorageKeys";
4
7
  export * from "./LocalStorage";
8
+ export * from "./NativeStorageAdapter";
5
9
  export * from "./SessionStorage";
6
10
  export * from "./StorageObservable";
11
+ export * from "./Store";
7
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,7 +1,12 @@
1
1
  export * from "./BaseStorage";
2
+ export * from "./CookieStorage";
3
+ export * from "./CookieStorageAdapter";
4
+ export * from "./DefaultCookieStorageKeys";
2
5
  export * from "./DefaultLocalStorageKeys";
3
6
  export * from "./DefaultSessionStorageKeys";
4
7
  export * from "./LocalStorage";
8
+ export * from "./NativeStorageAdapter";
5
9
  export * from "./SessionStorage";
6
10
  export * from "./StorageObservable";
11
+ export * from "./Store";
7
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@efficimo/storage",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Subscribe to browser storage. Typed keys, reactive updates, cross-tab sync — no boilerplate.",
5
5
  "author": "efficimo",
6
6
  "license": "MIT",
@@ -53,7 +53,7 @@
53
53
  "prepublishOnly": "npm run build && npm run typecheck"
54
54
  },
55
55
  "dependencies": {
56
- "@efficimo/observable": "^0.2.0"
56
+ "@efficimo/observable": "^0.3.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@types/node": "^25.0.0",