katanakit-js 2.2.1 → 2.12.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -437
- package/dist/adapters/astro/astro.service.d.ts +103 -15
- package/dist/adapters/astro/astro.service.d.ts.map +1 -1
- package/dist/adapters/astro/astro.service.js +145 -75
- package/dist/adapters/astro/astro.service.js.map +1 -1
- package/dist/adapters/astro/index.d.ts +1 -1
- package/dist/adapters/astro/index.d.ts.map +1 -1
- package/dist/adapters/astro/index.js +1 -1
- package/dist/adapters/astro/index.js.map +1 -1
- package/dist/adapters/astro/rss.service.d.ts +85 -105
- package/dist/adapters/astro/rss.service.d.ts.map +1 -1
- package/dist/adapters/astro/rss.service.js +172 -168
- package/dist/adapters/astro/rss.service.js.map +1 -1
- package/dist/adapters/astro/seo.service.d.ts +10 -0
- package/dist/adapters/astro/seo.service.d.ts.map +1 -0
- package/dist/adapters/astro/seo.service.js +3 -0
- package/dist/adapters/astro/seo.service.js.map +1 -0
- package/dist/adapters/express/app.d.ts +30 -1
- package/dist/adapters/express/app.d.ts.map +1 -1
- package/dist/adapters/express/app.js +31 -3
- package/dist/adapters/express/app.js.map +1 -1
- package/dist/adapters/express/index.d.ts +2 -2
- package/dist/adapters/express/index.d.ts.map +1 -1
- package/dist/adapters/express/index.js +2 -2
- package/dist/adapters/express/index.js.map +1 -1
- package/dist/adapters/express/main.js +2 -2
- package/dist/adapters/express/main.js.map +1 -1
- package/dist/adapters/express/products.controller.d.ts +67 -8
- package/dist/adapters/express/products.controller.d.ts.map +1 -1
- package/dist/adapters/express/products.controller.js +105 -49
- package/dist/adapters/express/products.controller.js.map +1 -1
- package/dist/adapters/express/server.d.ts +37 -13
- package/dist/adapters/express/server.d.ts.map +1 -1
- package/dist/adapters/express/server.js +118 -53
- package/dist/adapters/express/server.js.map +1 -1
- package/dist/adapters/nuxt/nuxt.service.d.ts +8 -6
- package/dist/adapters/nuxt/nuxt.service.d.ts.map +1 -1
- package/dist/adapters/nuxt/nuxt.service.js +34 -10
- package/dist/adapters/nuxt/nuxt.service.js.map +1 -1
- package/dist/adapters/vue/vue.service.d.ts +5 -2
- package/dist/adapters/vue/vue.service.d.ts.map +1 -1
- package/dist/adapters/vue/vue.service.js +41 -7
- package/dist/adapters/vue/vue.service.js.map +1 -1
- package/dist/config/index.d.ts +2 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/seo-meta.types.d.ts +177 -0
- package/dist/config/seo-meta.types.d.ts.map +1 -0
- package/dist/config/seo-meta.types.js +11 -0
- package/dist/config/seo-meta.types.js.map +1 -0
- package/dist/config/seo.service.d.ts +41 -58
- package/dist/config/seo.service.d.ts.map +1 -1
- package/dist/config/seo.service.js +468 -136
- package/dist/config/seo.service.js.map +1 -1
- package/dist/config/site.config.d.ts +10 -50
- package/dist/config/site.config.d.ts.map +1 -1
- package/dist/config/site.config.js +8 -36
- package/dist/config/site.config.js.map +1 -1
- package/dist/core/index.d.ts +1 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/services/dates.service.d.ts +149 -22
- package/dist/core/services/dates.service.d.ts.map +1 -1
- package/dist/core/services/dates.service.js +201 -54
- package/dist/core/services/dates.service.js.map +1 -1
- package/dist/core/services/error.service.d.ts +32 -20
- package/dist/core/services/error.service.d.ts.map +1 -1
- package/dist/core/services/error.service.js +44 -32
- package/dist/core/services/error.service.js.map +1 -1
- package/dist/core/services/formatter.service.d.ts +245 -35
- package/dist/core/services/formatter.service.d.ts.map +1 -1
- package/dist/core/services/formatter.service.js +281 -57
- package/dist/core/services/formatter.service.js.map +1 -1
- package/dist/core/services/generator.service.d.ts +115 -26
- package/dist/core/services/generator.service.d.ts.map +1 -1
- package/dist/core/services/generator.service.js +191 -56
- package/dist/core/services/generator.service.js.map +1 -1
- package/dist/core/services/geometry.service.d.ts +369 -39
- package/dist/core/services/geometry.service.d.ts.map +1 -1
- package/dist/core/services/geometry.service.js +424 -66
- package/dist/core/services/geometry.service.js.map +1 -1
- package/dist/core/services/http.service.d.ts +244 -21
- package/dist/core/services/http.service.d.ts.map +1 -1
- package/dist/core/services/http.service.js +419 -98
- package/dist/core/services/http.service.js.map +1 -1
- package/dist/core/services/logger.service.d.ts +95 -29
- package/dist/core/services/logger.service.d.ts.map +1 -1
- package/dist/core/services/logger.service.js +167 -41
- package/dist/core/services/logger.service.js.map +1 -1
- package/dist/core/services/reactive.service.d.ts +146 -19
- package/dist/core/services/reactive.service.d.ts.map +1 -1
- package/dist/core/services/reactive.service.js +278 -137
- package/dist/core/services/reactive.service.js.map +1 -1
- package/dist/core/services/timing.service.d.ts +142 -20
- package/dist/core/services/timing.service.d.ts.map +1 -1
- package/dist/core/services/timing.service.js +324 -185
- package/dist/core/services/timing.service.js.map +1 -1
- package/dist/core/services/utils.service.d.ts +228 -43
- package/dist/core/services/utils.service.d.ts.map +1 -1
- package/dist/core/services/utils.service.js +305 -125
- package/dist/core/services/utils.service.js.map +1 -1
- package/dist/infrastructure/dom/dom.service.d.ts +307 -44
- package/dist/infrastructure/dom/dom.service.d.ts.map +1 -1
- package/dist/infrastructure/dom/dom.service.js +408 -129
- package/dist/infrastructure/dom/dom.service.js.map +1 -1
- package/dist/infrastructure/index.d.ts +0 -3
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +0 -3
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/infrastructure/observer/observer.service.d.ts +124 -31
- package/dist/infrastructure/observer/observer.service.d.ts.map +1 -1
- package/dist/infrastructure/observer/observer.service.js +227 -131
- package/dist/infrastructure/observer/observer.service.js.map +1 -1
- package/dist/infrastructure/sensors/sensors.service.d.ts +154 -22
- package/dist/infrastructure/sensors/sensors.service.d.ts.map +1 -1
- package/dist/infrastructure/sensors/sensors.service.js +264 -112
- package/dist/infrastructure/sensors/sensors.service.js.map +1 -1
- package/dist/infrastructure/storage/storage.service.d.ts +123 -45
- package/dist/infrastructure/storage/storage.service.d.ts.map +1 -1
- package/dist/infrastructure/storage/storage.service.js +236 -66
- package/dist/infrastructure/storage/storage.service.js.map +1 -1
- package/dist/infrastructure/theme/theme.service.d.ts +93 -29
- package/dist/infrastructure/theme/theme.service.d.ts.map +1 -1
- package/dist/infrastructure/theme/theme.service.js +198 -96
- package/dist/infrastructure/theme/theme.service.js.map +1 -1
- package/dist/infrastructure/viewport/viewport.service.d.ts +233 -35
- package/dist/infrastructure/viewport/viewport.service.d.ts.map +1 -1
- package/dist/infrastructure/viewport/viewport.service.js +358 -139
- package/dist/infrastructure/viewport/viewport.service.js.map +1 -1
- package/dist/infrastructure/worker/worker.service.d.ts +84 -38
- package/dist/infrastructure/worker/worker.service.d.ts.map +1 -1
- package/dist/infrastructure/worker/worker.service.js +234 -133
- package/dist/infrastructure/worker/worker.service.js.map +1 -1
- package/dist/prisma/index.d.ts +2 -0
- package/dist/prisma/index.d.ts.map +1 -0
- package/dist/prisma/index.js +2 -0
- package/dist/prisma/index.js.map +1 -0
- package/dist/prisma/schema.json +11 -33
- package/dist/prisma/use-prisma.d.ts +68 -0
- package/dist/prisma/use-prisma.d.ts.map +1 -0
- package/dist/prisma/use-prisma.js +82 -0
- package/dist/prisma/use-prisma.js.map +1 -0
- package/dist/types/index.d.ts +20 -12
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +124 -125
- package/CHANGELOG.md +0 -101
|
@@ -1,48 +1,126 @@
|
|
|
1
1
|
import type { StorageStrategy, StorageTarget } from "../../types/index.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
3
|
+
* Creates a new in-memory `Storage` instance.
|
|
4
|
+
*
|
|
5
|
+
* @returns A fresh `MemoryStorage` that conforms to the Web Storage API.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const mem = createMemoryStorage();
|
|
10
|
+
* mem.setItem("key", JSON.stringify({ a: 1 }));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function createMemoryStorage(): Storage;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a strategy backed by `window.localStorage`.
|
|
16
|
+
*
|
|
17
|
+
* @param storage - Optional storage instance (defaults to `window.localStorage`).
|
|
18
|
+
* @returns A {@link StorageStrategy}.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const strategy = LocalStorageStrategy();
|
|
23
|
+
* strategy.useSetItem("token", "abc123");
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function LocalStorageStrategy(storage?: Storage): StorageStrategy;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a strategy backed by `window.sessionStorage`.
|
|
29
|
+
*
|
|
30
|
+
* @param storage - Optional storage instance (defaults to `window.sessionStorage`).
|
|
31
|
+
* @returns A {@link StorageStrategy}.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const strategy = SessionStorageStrategy();
|
|
36
|
+
* strategy.useSetItem("session", data);
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function SessionStorageStrategy(storage?: Storage): StorageStrategy;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a strategy backed by an in-memory store (SSR / private-mode fallback).
|
|
42
|
+
*
|
|
43
|
+
* @returns A {@link StorageStrategy} using an in-memory `Storage` backend.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* const strategy = MemoryStorageStrategy();
|
|
48
|
+
* strategy.useSetItem("temp", "value");
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function MemoryStorageStrategy(): StorageStrategy;
|
|
52
|
+
/**
|
|
53
|
+
* Runs `fn` with request-isolated in-memory storage (SSR).
|
|
54
|
+
* Use this around a request handler so `useSetStorage` / `useGetStorage`
|
|
55
|
+
* share state within the request but not across requests.
|
|
56
|
+
*
|
|
57
|
+
* @typeParam T - Return type of `fn`.
|
|
58
|
+
* @param fn - The function to run within the storage scope.
|
|
59
|
+
* @returns The return value of `fn`.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* import { useRunStorageScope, useSetStorage, useGetStorage } from "katanakit-js";
|
|
64
|
+
*
|
|
65
|
+
* export default defineEventHandler((event) => {
|
|
66
|
+
* return useRunStorageScope(() => {
|
|
67
|
+
* useSetStorage("req-id", event.context.id);
|
|
68
|
+
* return useGetStorage("req-id");
|
|
69
|
+
* });
|
|
70
|
+
* });
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function useRunStorageScope<T>(fn: () => T): T;
|
|
74
|
+
/**
|
|
75
|
+
* Retrieves a value from storage by key.
|
|
76
|
+
*
|
|
77
|
+
* @typeParam T - Expected value type.
|
|
78
|
+
* @param key - The storage key.
|
|
79
|
+
* @param target - Which storage backend to use (default: `"localStorage"`).
|
|
80
|
+
* @returns The deserialized value, or `null` if not found.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* const token = useGetStorage<string>("auth_token");
|
|
85
|
+
* const session = useGetStorage<SessionData>("session", "sessionStorage");
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare const useGetStorage: <T = unknown>(key: string, target?: StorageTarget) => T | null;
|
|
89
|
+
/**
|
|
90
|
+
* Stores a value under the given key (serialized as JSON).
|
|
91
|
+
*
|
|
92
|
+
* @param key - The storage key.
|
|
93
|
+
* @param value - The value to store.
|
|
94
|
+
* @param target - Which storage backend to use (default: `"localStorage"`).
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* useSetStorage("auth_token", "abc123");
|
|
99
|
+
* useSetStorage("user", { name: "Alice" }, "sessionStorage");
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export declare const useSetStorage: (key: string, value: unknown, target?: StorageTarget) => void;
|
|
103
|
+
/**
|
|
104
|
+
* Removes a value from storage by key.
|
|
105
|
+
*
|
|
106
|
+
* @param key - The storage key to remove.
|
|
107
|
+
* @param target - Which storage backend to use (default: `"localStorage"`).
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts
|
|
111
|
+
* useRemoveStorage("auth_token");
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export declare const useRemoveStorage: (key: string, target?: StorageTarget) => void;
|
|
115
|
+
/**
|
|
116
|
+
* Clears all values from the specified storage backend.
|
|
117
|
+
*
|
|
118
|
+
* @param target - Which storage backend to clear (default: `"localStorage"`).
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* useClearStorage("sessionStorage");
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare const useClearStorage: (target?: StorageTarget) => void;
|
|
48
126
|
//# sourceMappingURL=storage.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2F3E;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,OAA6B,GAAG,eAAe,CAE5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,OAA+B,GAAG,eAAe,CAEhG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AA0ED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEpD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,GAAG,OAAO,OACnC,MAAM,WACH,aAAa,KACnB,CAAC,GAAG,IAAkD,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,QACpB,MAAM,SACJ,OAAO,WACN,aAAa,KACnB,IAAsD,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,QAAS,MAAM,WAAU,aAAa,KAAoB,IAC5C,CAAC;AAE5C;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,YAAY,aAAa,KAAoB,IACtC,CAAC"}
|
|
@@ -1,33 +1,63 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Strategy factories (plain objects implementing StorageStrategy)
|
|
4
|
+
// ============================================================
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
6
|
+
* Creates a `StorageStrategy` backed by a Web Storage backend (`localStorage`
|
|
7
|
+
* or `sessionStorage`) with safe JSON serialization and error handling.
|
|
8
|
+
*
|
|
9
|
+
* @param storage - A native `Storage` instance (e.g. `window.localStorage`).
|
|
10
|
+
* @returns A {@link StorageStrategy} object.
|
|
3
11
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
function createWebStorageStrategy(storage) {
|
|
13
|
+
return {
|
|
14
|
+
useGetItem(key) {
|
|
15
|
+
try {
|
|
16
|
+
const raw = storage.getItem(key);
|
|
17
|
+
return raw ? JSON.parse(raw) : null;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
try {
|
|
21
|
+
return storage.getItem(key);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
useSetItem(key, value) {
|
|
29
|
+
try {
|
|
30
|
+
const serialized = typeof value === "string" ? value : JSON.stringify(value);
|
|
31
|
+
storage.setItem(key, serialized);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Quota exceeded, private mode, or unavailable storage — ignore.
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
useRemoveItem(key) {
|
|
38
|
+
try {
|
|
39
|
+
storage.removeItem(key);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Ignore unavailable storage.
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
useClear() {
|
|
46
|
+
try {
|
|
47
|
+
storage.clear();
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Ignore unavailable storage.
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
};
|
|
28
54
|
}
|
|
55
|
+
// ============================================================
|
|
56
|
+
// In-memory Storage implementation
|
|
57
|
+
// ============================================================
|
|
29
58
|
/**
|
|
30
|
-
* In-memory
|
|
59
|
+
* In-memory `Storage` implementation used as an SSR / private-mode fallback.
|
|
60
|
+
* Each instance owns its own Map — never share one across requests.
|
|
31
61
|
*/
|
|
32
62
|
class MemoryStorage {
|
|
33
63
|
store = new Map();
|
|
@@ -51,58 +81,198 @@ class MemoryStorage {
|
|
|
51
81
|
}
|
|
52
82
|
}
|
|
53
83
|
/**
|
|
54
|
-
*
|
|
84
|
+
* Creates a new in-memory `Storage` instance.
|
|
85
|
+
*
|
|
86
|
+
* @returns A fresh `MemoryStorage` that conforms to the Web Storage API.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* const mem = createMemoryStorage();
|
|
91
|
+
* mem.setItem("key", JSON.stringify({ a: 1 }));
|
|
92
|
+
* ```
|
|
55
93
|
*/
|
|
56
|
-
export
|
|
57
|
-
|
|
58
|
-
super(window.localStorage);
|
|
59
|
-
}
|
|
94
|
+
export function createMemoryStorage() {
|
|
95
|
+
return new MemoryStorage();
|
|
60
96
|
}
|
|
97
|
+
// ============================================================
|
|
98
|
+
// Concrete strategy factories
|
|
99
|
+
// ============================================================
|
|
61
100
|
/**
|
|
62
|
-
*
|
|
101
|
+
* Creates a strategy backed by `window.localStorage`.
|
|
102
|
+
*
|
|
103
|
+
* @param storage - Optional storage instance (defaults to `window.localStorage`).
|
|
104
|
+
* @returns A {@link StorageStrategy}.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```ts
|
|
108
|
+
* const strategy = LocalStorageStrategy();
|
|
109
|
+
* strategy.useSetItem("token", "abc123");
|
|
110
|
+
* ```
|
|
63
111
|
*/
|
|
64
|
-
export
|
|
65
|
-
|
|
66
|
-
super(window.sessionStorage);
|
|
67
|
-
}
|
|
112
|
+
export function LocalStorageStrategy(storage = window.localStorage) {
|
|
113
|
+
return createWebStorageStrategy(storage);
|
|
68
114
|
}
|
|
69
115
|
/**
|
|
70
|
-
*
|
|
116
|
+
* Creates a strategy backed by `window.sessionStorage`.
|
|
117
|
+
*
|
|
118
|
+
* @param storage - Optional storage instance (defaults to `window.sessionStorage`).
|
|
119
|
+
* @returns A {@link StorageStrategy}.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```ts
|
|
123
|
+
* const strategy = SessionStorageStrategy();
|
|
124
|
+
* strategy.useSetItem("session", data);
|
|
125
|
+
* ```
|
|
71
126
|
*/
|
|
72
|
-
export
|
|
73
|
-
|
|
74
|
-
super(new MemoryStorage());
|
|
75
|
-
}
|
|
127
|
+
export function SessionStorageStrategy(storage = window.sessionStorage) {
|
|
128
|
+
return createWebStorageStrategy(storage);
|
|
76
129
|
}
|
|
77
130
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
131
|
+
* Creates a strategy backed by an in-memory store (SSR / private-mode fallback).
|
|
132
|
+
*
|
|
133
|
+
* @returns A {@link StorageStrategy} using an in-memory `Storage` backend.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* const strategy = MemoryStorageStrategy();
|
|
138
|
+
* strategy.useSetItem("temp", "value");
|
|
139
|
+
* ```
|
|
80
140
|
*/
|
|
81
|
-
export
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
141
|
+
export function MemoryStorageStrategy() {
|
|
142
|
+
return createWebStorageStrategy(createMemoryStorage());
|
|
143
|
+
}
|
|
144
|
+
/** Request-scoped storage strategies for SSR (avoids cross-request leaks). */
|
|
145
|
+
const ssrStorageAls = new AsyncLocalStorage();
|
|
146
|
+
/** Lazily-initialized browser strategies (cached once). */
|
|
147
|
+
let browserStrategies = null;
|
|
148
|
+
function createMemoryStrategies() {
|
|
149
|
+
return {
|
|
150
|
+
localStorage: MemoryStorageStrategy(),
|
|
151
|
+
sessionStorage: MemoryStorageStrategy(),
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function tryCreateBrowserStrategies() {
|
|
155
|
+
const local = tryCreateWebStorage("localStorage");
|
|
156
|
+
const session = tryCreateWebStorage("sessionStorage");
|
|
157
|
+
return {
|
|
158
|
+
localStorage: local ?? MemoryStorageStrategy(),
|
|
159
|
+
sessionStorage: session ?? MemoryStorageStrategy(),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Probes Web Storage availability (Safari private mode throws on setItem).
|
|
164
|
+
*
|
|
165
|
+
* @param kind - Which storage backend to probe.
|
|
166
|
+
* @returns A {@link StorageStrategy} or `null` if the backend is unavailable.
|
|
167
|
+
*/
|
|
168
|
+
function tryCreateWebStorage(kind) {
|
|
169
|
+
try {
|
|
170
|
+
const storage = window[kind];
|
|
171
|
+
const probeKey = "__kk_storage_probe__";
|
|
172
|
+
storage.setItem(probeKey, "1");
|
|
173
|
+
storage.removeItem(probeKey);
|
|
174
|
+
return kind === "localStorage" ? LocalStorageStrategy(storage) : SessionStorageStrategy(storage);
|
|
90
175
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
176
|
+
catch {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Resolves the active strategy map: browser strategies (cached), ALS-scoped
|
|
182
|
+
* strategies (SSR request), or ephemeral memory strategies (SSR fallback).
|
|
183
|
+
*/
|
|
184
|
+
function getStrategies() {
|
|
185
|
+
const hasWindow = typeof window !== "undefined";
|
|
186
|
+
if (hasWindow) {
|
|
187
|
+
if (!browserStrategies) {
|
|
188
|
+
browserStrategies = tryCreateBrowserStrategies();
|
|
98
189
|
}
|
|
99
|
-
return
|
|
190
|
+
return browserStrategies;
|
|
100
191
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
192
|
+
// SSR: prefer ALS-scoped strategies (isolated per request).
|
|
193
|
+
const scoped = ssrStorageAls.getStore();
|
|
194
|
+
if (scoped)
|
|
195
|
+
return scoped;
|
|
196
|
+
// No scope — ephemeral store (no cross-request leak, no cross-call persistence).
|
|
197
|
+
return createMemoryStrategies();
|
|
105
198
|
}
|
|
106
|
-
//
|
|
107
|
-
|
|
199
|
+
// ============================================================
|
|
200
|
+
// Public API
|
|
201
|
+
// ============================================================
|
|
202
|
+
/**
|
|
203
|
+
* Runs `fn` with request-isolated in-memory storage (SSR).
|
|
204
|
+
* Use this around a request handler so `useSetStorage` / `useGetStorage`
|
|
205
|
+
* share state within the request but not across requests.
|
|
206
|
+
*
|
|
207
|
+
* @typeParam T - Return type of `fn`.
|
|
208
|
+
* @param fn - The function to run within the storage scope.
|
|
209
|
+
* @returns The return value of `fn`.
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```ts
|
|
213
|
+
* import { useRunStorageScope, useSetStorage, useGetStorage } from "katanakit-js";
|
|
214
|
+
*
|
|
215
|
+
* export default defineEventHandler((event) => {
|
|
216
|
+
* return useRunStorageScope(() => {
|
|
217
|
+
* useSetStorage("req-id", event.context.id);
|
|
218
|
+
* return useGetStorage("req-id");
|
|
219
|
+
* });
|
|
220
|
+
* });
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
export function useRunStorageScope(fn) {
|
|
224
|
+
return ssrStorageAls.run(createMemoryStrategies(), fn);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Retrieves a value from storage by key.
|
|
228
|
+
*
|
|
229
|
+
* @typeParam T - Expected value type.
|
|
230
|
+
* @param key - The storage key.
|
|
231
|
+
* @param target - Which storage backend to use (default: `"localStorage"`).
|
|
232
|
+
* @returns The deserialized value, or `null` if not found.
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```ts
|
|
236
|
+
* const token = useGetStorage<string>("auth_token");
|
|
237
|
+
* const session = useGetStorage<SessionData>("session", "sessionStorage");
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
export const useGetStorage = (key, target = "localStorage") => getStrategies()[target].useGetItem(key);
|
|
241
|
+
/**
|
|
242
|
+
* Stores a value under the given key (serialized as JSON).
|
|
243
|
+
*
|
|
244
|
+
* @param key - The storage key.
|
|
245
|
+
* @param value - The value to store.
|
|
246
|
+
* @param target - Which storage backend to use (default: `"localStorage"`).
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```ts
|
|
250
|
+
* useSetStorage("auth_token", "abc123");
|
|
251
|
+
* useSetStorage("user", { name: "Alice" }, "sessionStorage");
|
|
252
|
+
* ```
|
|
253
|
+
*/
|
|
254
|
+
export const useSetStorage = (key, value, target = "localStorage") => getStrategies()[target].useSetItem(key, value);
|
|
255
|
+
/**
|
|
256
|
+
* Removes a value from storage by key.
|
|
257
|
+
*
|
|
258
|
+
* @param key - The storage key to remove.
|
|
259
|
+
* @param target - Which storage backend to use (default: `"localStorage"`).
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```ts
|
|
263
|
+
* useRemoveStorage("auth_token");
|
|
264
|
+
* ```
|
|
265
|
+
*/
|
|
266
|
+
export const useRemoveStorage = (key, target = "localStorage") => getStrategies()[target].useRemoveItem(key);
|
|
267
|
+
/**
|
|
268
|
+
* Clears all values from the specified storage backend.
|
|
269
|
+
*
|
|
270
|
+
* @param target - Which storage backend to clear (default: `"localStorage"`).
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```ts
|
|
274
|
+
* useClearStorage("sessionStorage");
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
export const useClearStorage = (target = "localStorage") => getStrategies()[target].useClear();
|
|
108
278
|
//# sourceMappingURL=storage.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,94 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export declare const
|
|
1
|
+
import type { ThemeMode, ThemeOptions } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Initializes the theme system. Reads the stored preference (or falls back
|
|
4
|
+
* to `defaultMode`), applies the theme, and registers a system color-scheme
|
|
5
|
+
* listener for `"system"` mode.
|
|
6
|
+
*
|
|
7
|
+
* @param options - Configuration for the theme system.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* useInitTheme({
|
|
12
|
+
* defaultMode: "dark",
|
|
13
|
+
* storageKey: "app-theme",
|
|
14
|
+
* onChange: (mode, resolved) => console.log(mode, resolved),
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const useInitTheme: (options?: ThemeOptions) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Sets the theme mode and persists it to storage.
|
|
21
|
+
*
|
|
22
|
+
* @param newMode - The desired theme mode (`"light"`, `"dark"`, or `"system"`).
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* useSetThemeMode("dark");
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare const useSetThemeMode: (newMode: ThemeMode) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Returns the current theme mode (may be `"system"`).
|
|
32
|
+
*
|
|
33
|
+
* @returns The active {@link ThemeMode}.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* const current = useGetThemeMode(); // "light" | "dark" | "system"
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare const useGetThemeMode: () => ThemeMode;
|
|
41
|
+
/**
|
|
42
|
+
* Returns the resolved theme (`"light"` or `"dark"`), accounting for system
|
|
43
|
+
* preference when mode is `"system"`.
|
|
44
|
+
*
|
|
45
|
+
* @returns The resolved color scheme.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const scheme = useGetResolved(); // "light" or "dark"
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare const useGetResolved: () => "light" | "dark";
|
|
53
|
+
/**
|
|
54
|
+
* Checks whether the user's OS is set to prefer a dark color scheme.
|
|
55
|
+
*
|
|
56
|
+
* @returns `true` if the system prefers dark mode.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* if (usePrefersColorScheme()) {
|
|
61
|
+
* // user prefers dark
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare const usePrefersColorScheme: () => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Toggles between `"light"` and `"dark"` (ignores `"system"`).
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* useToggleTheme(); // light -> dark, dark -> light
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare const useToggleTheme: () => void;
|
|
75
|
+
/**
|
|
76
|
+
* Resets the theme to `"system"` and removes the stored preference.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* useResetTheme();
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare const useResetTheme: () => void;
|
|
84
|
+
/**
|
|
85
|
+
* Cleans up the media-query listener. Call this when the theme system is
|
|
86
|
+
* no longer needed (e.g. during teardown in tests).
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* useDestroyTheme();
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare const useDestroyTheme: () => void;
|
|
30
94
|
//# sourceMappingURL=theme.service.d.ts.map
|