@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.
- package/README.md +3 -3
- package/dist/cjs/BaseStorage.d.ts +3 -2
- package/dist/cjs/BaseStorage.d.ts.map +1 -1
- package/dist/cjs/BaseStorage.js +12 -21
- package/dist/cjs/BaseStorage.js.map +1 -1
- package/dist/cjs/CookieStorage.d.ts +10 -0
- package/dist/cjs/CookieStorage.d.ts.map +1 -0
- package/dist/cjs/CookieStorage.js +16 -0
- package/dist/cjs/CookieStorage.js.map +1 -0
- package/dist/cjs/CookieStorageAdapter.d.ts +19 -0
- package/dist/cjs/CookieStorageAdapter.d.ts.map +1 -0
- package/dist/cjs/CookieStorageAdapter.js +111 -0
- package/dist/cjs/CookieStorageAdapter.js.map +1 -0
- package/dist/cjs/DefaultCookieStorageKeys.d.ts +3 -0
- package/dist/cjs/DefaultCookieStorageKeys.d.ts.map +1 -0
- package/dist/cjs/DefaultCookieStorageKeys.js +3 -0
- package/dist/cjs/DefaultCookieStorageKeys.js.map +1 -0
- package/dist/cjs/LocalStorage.d.ts.map +1 -1
- package/dist/cjs/LocalStorage.js +2 -1
- package/dist/cjs/LocalStorage.js.map +1 -1
- package/dist/cjs/NativeStorageAdapter.d.ts +13 -0
- package/dist/cjs/NativeStorageAdapter.d.ts.map +1 -0
- package/dist/cjs/NativeStorageAdapter.js +52 -0
- package/dist/cjs/NativeStorageAdapter.js.map +1 -0
- package/dist/cjs/SessionStorage.d.ts.map +1 -1
- package/dist/cjs/SessionStorage.js +2 -1
- package/dist/cjs/SessionStorage.js.map +1 -1
- package/dist/cjs/StorageObservable.d.ts +4 -3
- package/dist/cjs/StorageObservable.d.ts.map +1 -1
- package/dist/cjs/StorageObservable.js +2 -2
- package/dist/cjs/StorageObservable.js.map +1 -1
- package/dist/cjs/Store.d.ts +10 -0
- package/dist/cjs/Store.d.ts.map +1 -0
- package/dist/cjs/Store.js +3 -0
- package/dist/cjs/Store.js.map +1 -0
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/BaseStorage.d.ts +3 -2
- package/dist/esm/BaseStorage.d.ts.map +1 -1
- package/dist/esm/BaseStorage.js +12 -21
- package/dist/esm/BaseStorage.js.map +1 -1
- package/dist/esm/CookieStorage.d.ts +10 -0
- package/dist/esm/CookieStorage.d.ts.map +1 -0
- package/dist/esm/CookieStorage.js +13 -0
- package/dist/esm/CookieStorage.js.map +1 -0
- package/dist/esm/CookieStorageAdapter.d.ts +19 -0
- package/dist/esm/CookieStorageAdapter.d.ts.map +1 -0
- package/dist/esm/CookieStorageAdapter.js +107 -0
- package/dist/esm/CookieStorageAdapter.js.map +1 -0
- package/dist/esm/DefaultCookieStorageKeys.d.ts +3 -0
- package/dist/esm/DefaultCookieStorageKeys.d.ts.map +1 -0
- package/dist/esm/DefaultCookieStorageKeys.js +2 -0
- package/dist/esm/DefaultCookieStorageKeys.js.map +1 -0
- package/dist/esm/LocalStorage.d.ts.map +1 -1
- package/dist/esm/LocalStorage.js +2 -1
- package/dist/esm/LocalStorage.js.map +1 -1
- package/dist/esm/NativeStorageAdapter.d.ts +13 -0
- package/dist/esm/NativeStorageAdapter.d.ts.map +1 -0
- package/dist/esm/NativeStorageAdapter.js +48 -0
- package/dist/esm/NativeStorageAdapter.js.map +1 -0
- package/dist/esm/SessionStorage.d.ts.map +1 -1
- package/dist/esm/SessionStorage.js +2 -1
- package/dist/esm/SessionStorage.js.map +1 -1
- package/dist/esm/StorageObservable.d.ts +4 -3
- package/dist/esm/StorageObservable.d.ts.map +1 -1
- package/dist/esm/StorageObservable.js +2 -2
- package/dist/esm/StorageObservable.js.map +1 -1
- package/dist/esm/Store.d.ts +10 -0
- package/dist/esm/Store.d.ts.map +1 -0
- package/dist/esm/Store.js +2 -0
- package/dist/esm/Store.js.map +1 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- 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).
|
|
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/
|
|
23
|
+
npm install @efficimo/storage
|
|
24
24
|
|
|
25
25
|
# with React hook
|
|
26
|
-
npm install @efficimo/
|
|
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
|
-
|
|
3
|
+
import type { Store } from "./Store";
|
|
4
|
+
export declare class BaseStorage<StorageKey extends string, Options = never> {
|
|
4
5
|
#private;
|
|
5
|
-
constructor(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;
|
|
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"}
|
package/dist/cjs/BaseStorage.js
CHANGED
|
@@ -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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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":";;;;;;;;;;;;;;;AAAA,qDAA0F;AAC1F,2DAAwD;
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultCookieStorageKeys.d.ts","sourceRoot":"","sources":["../../src/DefaultCookieStorageKeys.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,wBAAwB;CAAG"}
|
|
@@ -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;
|
|
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"}
|
package/dist/cjs/LocalStorage.js
CHANGED
|
@@ -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;
|
|
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;
|
|
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;
|
|
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:
|
|
6
|
-
subscribe: (subscriber: Subscriber<string | null>) => import("@efficimo/observable").
|
|
7
|
-
next: (value: string | null | SetFunction<string | null>) =>
|
|
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;
|
|
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 =
|
|
12
|
+
this.next = (value) => {
|
|
13
13
|
const prevValue = this.storage.getItem(this.key);
|
|
14
|
-
const newValue = (0, observable_1.isSetFunction)(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;
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":""}
|
package/dist/cjs/index.d.ts
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.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -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
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -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
|
-
|
|
3
|
+
import type { Store } from "./Store";
|
|
4
|
+
export declare class BaseStorage<StorageKey extends string, Options = never> {
|
|
4
5
|
#private;
|
|
5
|
-
constructor(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;
|
|
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"}
|
package/dist/esm/BaseStorage.js
CHANGED
|
@@ -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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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":";;;;;;;;;;;;AAAA,OAAO,EAAE,4BAA4B,EAAwB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultCookieStorageKeys.d.ts","sourceRoot":"","sources":["../../src/DefaultCookieStorageKeys.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,wBAAwB;CAAG"}
|
|
@@ -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;
|
|
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"}
|
package/dist/esm/LocalStorage.js
CHANGED
|
@@ -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;
|
|
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;
|
|
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;
|
|
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:
|
|
6
|
-
subscribe: (subscriber: Subscriber<string | null>) => import("@efficimo/observable").
|
|
7
|
-
next: (value: string | null | SetFunction<string | null>) =>
|
|
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;
|
|
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 =
|
|
9
|
+
this.next = (value) => {
|
|
10
10
|
const prevValue = this.storage.getItem(this.key);
|
|
11
|
-
const newValue = isSetFunction(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;
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":""}
|
package/dist/esm/index.d.ts
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.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -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
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
56
|
+
"@efficimo/observable": "^0.3.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/node": "^25.0.0",
|