katanakit-js 6.2.0 → 6.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -3
- package/dist/adapters/better-auth/better-auth.service.d.ts +83 -0
- package/dist/adapters/better-auth/better-auth.service.d.ts.map +1 -0
- package/dist/adapters/better-auth/better-auth.service.js +110 -0
- package/dist/adapters/better-auth/better-auth.service.js.map +1 -0
- package/dist/adapters/better-auth/client.d.ts +51 -0
- package/dist/adapters/better-auth/client.d.ts.map +1 -0
- package/dist/adapters/better-auth/client.js +67 -0
- package/dist/adapters/better-auth/client.js.map +1 -0
- package/dist/adapters/better-auth/index.d.ts +3 -0
- package/dist/adapters/better-auth/index.d.ts.map +1 -0
- package/dist/adapters/better-auth/index.js +3 -0
- package/dist/adapters/better-auth/index.js.map +1 -0
- package/dist/adapters/express/server.d.ts +133 -1
- package/dist/adapters/express/server.d.ts.map +1 -1
- package/dist/adapters/express/server.js +199 -97
- package/dist/adapters/express/server.js.map +1 -1
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +2 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/insforge/insforge.service.d.ts +139 -4
- package/dist/adapters/insforge/insforge.service.d.ts.map +1 -1
- package/dist/adapters/insforge/insforge.service.js +383 -213
- package/dist/adapters/insforge/insforge.service.js.map +1 -1
- package/dist/adapters/notion/notion.service.d.ts +130 -144
- package/dist/adapters/notion/notion.service.d.ts.map +1 -1
- package/dist/adapters/notion/notion.service.js +330 -341
- package/dist/adapters/notion/notion.service.js.map +1 -1
- package/dist/adapters/photoswipe/index.d.ts +2 -0
- package/dist/adapters/photoswipe/index.d.ts.map +1 -0
- package/dist/adapters/photoswipe/index.js +2 -0
- package/dist/adapters/photoswipe/index.js.map +1 -0
- package/dist/adapters/photoswipe/photoswipe.service.d.ts +99 -0
- package/dist/adapters/photoswipe/photoswipe.service.d.ts.map +1 -0
- package/dist/adapters/photoswipe/photoswipe.service.js +150 -0
- package/dist/adapters/photoswipe/photoswipe.service.js.map +1 -0
- package/dist/adapters/telegram/telegram.service.d.ts +82 -13
- package/dist/adapters/telegram/telegram.service.d.ts.map +1 -1
- package/dist/adapters/telegram/telegram.service.js +133 -55
- package/dist/adapters/telegram/telegram.service.js.map +1 -1
- package/dist/adapters/wordpress/wordpress.service.d.ts +181 -110
- package/dist/adapters/wordpress/wordpress.service.d.ts.map +1 -1
- package/dist/adapters/wordpress/wordpress.service.js +556 -465
- package/dist/adapters/wordpress/wordpress.service.js.map +1 -1
- package/dist/config/seo.service.d.ts +1 -1
- package/dist/config/seo.service.d.ts.map +1 -1
- package/dist/config/seo.service.js +1 -1
- package/dist/config/seo.service.js.map +1 -1
- package/dist/core/services/access.service.d.ts +167 -4
- package/dist/core/services/access.service.d.ts.map +1 -1
- package/dist/core/services/access.service.js +241 -31
- package/dist/core/services/access.service.js.map +1 -1
- package/dist/core/services/agent.service.d.ts +182 -27
- package/dist/core/services/agent.service.d.ts.map +1 -1
- package/dist/core/services/agent.service.js +296 -164
- package/dist/core/services/agent.service.js.map +1 -1
- package/dist/core/services/assistant.service.d.ts +96 -5
- package/dist/core/services/assistant.service.d.ts.map +1 -1
- package/dist/core/services/assistant.service.js +171 -66
- package/dist/core/services/assistant.service.js.map +1 -1
- package/dist/core/services/dates.service.d.ts +183 -11
- package/dist/core/services/dates.service.d.ts.map +1 -1
- package/dist/core/services/dates.service.js +256 -57
- package/dist/core/services/dates.service.js.map +1 -1
- package/dist/core/services/http.service.d.ts +172 -133
- package/dist/core/services/http.service.d.ts.map +1 -1
- package/dist/core/services/http.service.js +367 -310
- package/dist/core/services/http.service.js.map +1 -1
- package/dist/core/services/logger.service.d.ts +96 -34
- package/dist/core/services/logger.service.d.ts.map +1 -1
- package/dist/core/services/logger.service.js +128 -41
- package/dist/core/services/logger.service.js.map +1 -1
- package/dist/core/services/query.service.d.ts +101 -0
- package/dist/core/services/query.service.d.ts.map +1 -1
- package/dist/core/services/query.service.js +131 -14
- package/dist/core/services/query.service.js.map +1 -1
- package/dist/core/services/utils.service.d.ts +286 -131
- package/dist/core/services/utils.service.d.ts.map +1 -1
- package/dist/core/services/utils.service.js +417 -227
- package/dist/core/services/utils.service.js.map +1 -1
- package/dist/core/services/validation.service.d.ts +48 -3
- package/dist/core/services/validation.service.d.ts.map +1 -1
- package/dist/core/services/validation.service.js +75 -23
- package/dist/core/services/validation.service.js.map +1 -1
- package/dist/infrastructure/decorators/cache.decorator.d.ts +53 -0
- package/dist/infrastructure/decorators/cache.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/cache.decorator.js +47 -0
- package/dist/infrastructure/decorators/cache.decorator.js.map +1 -0
- package/dist/infrastructure/decorators/index.d.ts +4 -0
- package/dist/infrastructure/decorators/index.d.ts.map +1 -0
- package/dist/infrastructure/decorators/index.js +4 -0
- package/dist/infrastructure/decorators/index.js.map +1 -0
- package/dist/infrastructure/decorators/logger.decorator.d.ts +38 -0
- package/dist/infrastructure/decorators/logger.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/logger.decorator.js +66 -0
- package/dist/infrastructure/decorators/logger.decorator.js.map +1 -0
- package/dist/infrastructure/decorators/retry.decorator.d.ts +37 -0
- package/dist/infrastructure/decorators/retry.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/retry.decorator.js +54 -0
- package/dist/infrastructure/decorators/retry.decorator.js.map +1 -0
- package/dist/infrastructure/index.d.ts +1 -0
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +1 -0
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/styles.css +2 -0
- package/package.json +49 -14
- package/scss/_flags.scss +179 -0
- package/scss/_functions.scss +168 -0
- package/scss/_mixins.scss +658 -0
- package/scss/_reset.scss +275 -0
- package/scss/_utilities.scss +449 -0
- package/scss/_variables.scss +539 -0
- package/scss/components/_index.scss +50 -0
- package/scss/demo.scss +12 -0
- package/scss/main.scss +56 -0
|
@@ -8,8 +8,133 @@ import { QueryClient, } from "@tanstack/query-core";
|
|
|
8
8
|
* without installing TanStack separately.
|
|
9
9
|
*/
|
|
10
10
|
export * from "@tanstack/query-core";
|
|
11
|
-
/**
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* QueryClientFactory - Factory Pattern para crear instancias de QueryClient.
|
|
13
|
+
*
|
|
14
|
+
* Centraliza la creación de clientes: `create()` fabrica un cliente nuevo
|
|
15
|
+
* (por petición en SSR) y `createShared()` reemplaza el singleton compartido.
|
|
16
|
+
* El resto del código no llama `new QueryClient()` directamente, así que la
|
|
17
|
+
* política de creación vive en un único punto (Open/Closed).
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* // SSR: un cliente por petición
|
|
22
|
+
* const client = QueryClientFactory.create({ defaultOptions: { queries: { staleTime: 60_000 } } });
|
|
23
|
+
*
|
|
24
|
+
* // Browser: singleton compartido
|
|
25
|
+
* QueryClientFactory.createShared();
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export class QueryClientFactory {
|
|
29
|
+
/**
|
|
30
|
+
* Fabrica un **nuevo** {@link QueryClient}. Úsalo en el servidor (SSR) para
|
|
31
|
+
* obtener un cliente por petición y evitar compartir la caché global.
|
|
32
|
+
*
|
|
33
|
+
* @param config - TanStack {@link QueryClientConfig} (caches, default options).
|
|
34
|
+
* @returns Un {@link QueryClient} fresco.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* const client = QueryClientFactory.create();
|
|
39
|
+
* await client.prefetchQuery({ queryKey, queryFn });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
static create(config = {}) {
|
|
43
|
+
return new QueryClient(config);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Reemplaza el singleton compartido con un cliente configurado.
|
|
47
|
+
* Limpia la caché del cliente anterior antes de intercambiarlo.
|
|
48
|
+
*
|
|
49
|
+
* @param config - TanStack {@link QueryClientConfig}.
|
|
50
|
+
* @returns El nuevo {@link QueryClient} compartido.
|
|
51
|
+
*/
|
|
52
|
+
static createShared(config = {}) {
|
|
53
|
+
return QueryService.getInstance().useInit(config);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* QueryService - Singleton para el QueryClient compartido.
|
|
58
|
+
*
|
|
59
|
+
* Aplica el patrón Singleton: una única instancia mantiene el
|
|
60
|
+
* {@link QueryClient} global que comparten todos los adaptadores de
|
|
61
|
+
* framework (browser). En SSR, usa {@link QueryClientFactory.create} para
|
|
62
|
+
* un cliente por petición.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* const client = QueryService.getInstance().useGetClient();
|
|
67
|
+
* await client.invalidateQueries({ queryKey: ["users"] });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export class QueryService {
|
|
71
|
+
static instance;
|
|
72
|
+
/** Shared {@link QueryClient} singleton (browser). */
|
|
73
|
+
client = null;
|
|
74
|
+
/**
|
|
75
|
+
* Constructor privado - enforce singleton.
|
|
76
|
+
*/
|
|
77
|
+
constructor() { }
|
|
78
|
+
/**
|
|
79
|
+
* Obtiene la instancia única del QueryService (Singleton).
|
|
80
|
+
*
|
|
81
|
+
* @returns La instancia única de {@link QueryService}.
|
|
82
|
+
*/
|
|
83
|
+
static getInstance() {
|
|
84
|
+
if (!QueryService.instance) {
|
|
85
|
+
QueryService.instance = new QueryService();
|
|
86
|
+
}
|
|
87
|
+
return QueryService.instance;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Returns the shared {@link QueryClient}, creating one on first call.
|
|
91
|
+
*
|
|
92
|
+
* This is a **process-global** instance: it is the right default in the browser,
|
|
93
|
+
* but on the server it would leak cached data across requests. Use
|
|
94
|
+
* {@link QueryClientFactory.create} per request when running under SSR.
|
|
95
|
+
*
|
|
96
|
+
* @returns The shared {@link QueryClient}.
|
|
97
|
+
*/
|
|
98
|
+
useGetClient() {
|
|
99
|
+
this.client ??= QueryClientFactory.create();
|
|
100
|
+
return this.client;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Replaces the shared {@link QueryClient} with a configured instance.
|
|
104
|
+
* The previous client's caches are cleared before swapping.
|
|
105
|
+
*
|
|
106
|
+
* @param config - TanStack {@link QueryClientConfig} (caches, default options).
|
|
107
|
+
* @returns The newly created {@link QueryClient}.
|
|
108
|
+
*/
|
|
109
|
+
useInit(config = {}) {
|
|
110
|
+
this.client?.clear();
|
|
111
|
+
this.client = QueryClientFactory.create(config);
|
|
112
|
+
return this.client;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Bridges a KatanaKit Safe Result fetcher into a TanStack `queryFn`.
|
|
116
|
+
*
|
|
117
|
+
* TanStack expects `queryFn` to resolve with data and **throw** on failure;
|
|
118
|
+
* KatanaKit returns `{ data, error, ok }`. This adapter unwraps the Safe Result
|
|
119
|
+
* so the two fit together. Throws a real `Error` (with `status`) so `instanceof`
|
|
120
|
+
* checks and error boundaries work.
|
|
121
|
+
*
|
|
122
|
+
* @typeParam T - The resolved data type.
|
|
123
|
+
* @param fn - A function returning a Safe Result (e.g. `() => useGetApi(...)`).
|
|
124
|
+
* @returns A `queryFn` that throws on error.
|
|
125
|
+
*/
|
|
126
|
+
useSafeQueryFn(fn) {
|
|
127
|
+
return async (context) => {
|
|
128
|
+
const result = await fn(context);
|
|
129
|
+
if (!result.ok) {
|
|
130
|
+
throw Object.assign(new Error(result.error.message), {
|
|
131
|
+
status: result.error.status,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return result.data;
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
13
138
|
/**
|
|
14
139
|
* Creates a **new** {@link QueryClient}. Use this on the server (SSR) to get one
|
|
15
140
|
* client per request and avoid sharing a process-global cache across users.
|
|
@@ -26,7 +151,7 @@ let instance = null;
|
|
|
26
151
|
* ```
|
|
27
152
|
*/
|
|
28
153
|
export function useCreateQueryClient(config = {}) {
|
|
29
|
-
return
|
|
154
|
+
return QueryClientFactory.create(config);
|
|
30
155
|
}
|
|
31
156
|
/**
|
|
32
157
|
* Returns the shared {@link QueryClient} singleton, creating one on first call.
|
|
@@ -46,7 +171,7 @@ export function useCreateQueryClient(config = {}) {
|
|
|
46
171
|
* ```
|
|
47
172
|
*/
|
|
48
173
|
export function useQueryClient() {
|
|
49
|
-
return (
|
|
174
|
+
return QueryService.getInstance().useGetClient();
|
|
50
175
|
}
|
|
51
176
|
/**
|
|
52
177
|
* Replaces the shared {@link QueryClient} singleton with a configured instance.
|
|
@@ -65,9 +190,7 @@ export function useQueryClient() {
|
|
|
65
190
|
* ```
|
|
66
191
|
*/
|
|
67
192
|
export function useInitQueryClient(config = {}) {
|
|
68
|
-
|
|
69
|
-
instance = new QueryClient(config);
|
|
70
|
-
return instance;
|
|
193
|
+
return QueryService.getInstance().useInit(config);
|
|
71
194
|
}
|
|
72
195
|
/**
|
|
73
196
|
* Bridges a KatanaKit Safe Result fetcher into a TanStack `queryFn`.
|
|
@@ -99,12 +222,6 @@ export function useInitQueryClient(config = {}) {
|
|
|
99
222
|
* ```
|
|
100
223
|
*/
|
|
101
224
|
export function useSafeQueryFn(fn) {
|
|
102
|
-
return
|
|
103
|
-
const result = await fn(context);
|
|
104
|
-
if (!result.ok) {
|
|
105
|
-
throw Object.assign(new Error(result.error.message), { status: result.error.status });
|
|
106
|
-
}
|
|
107
|
-
return result.data;
|
|
108
|
-
};
|
|
225
|
+
return QueryService.getInstance().useSafeQueryFn(fn);
|
|
109
226
|
}
|
|
110
227
|
//# sourceMappingURL=query.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.service.js","sourceRoot":"","sources":["../../../src/core/services/query.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,GAGX,MAAM,sBAAsB,CAAC;AAI9B;;;;;;;GAOG;AACH,cAAc,sBAAsB,CAAC;AAErC,
|
|
1
|
+
{"version":3,"file":"query.service.js","sourceRoot":"","sources":["../../../src/core/services/query.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,GAGX,MAAM,sBAAsB,CAAC;AAI9B;;;;;;;GAOG;AACH,cAAc,sBAAsB,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAkB;IAC9B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,MAAM,CAAC,SAA4B,EAAE;QAC3C,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,SAA4B,EAAE;QACjD,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACD;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAY;IAChB,MAAM,CAAC,QAAQ,CAAe;IAEtC,sDAAsD;IAC9C,MAAM,GAAuB,IAAI,CAAC;IAE1C;;OAEG;IACH,gBAAuB,CAAC;IAExB;;;;OAIG;IACH,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC5B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY;QACX,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,SAA4B,EAAE;QACrC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,cAAc,CACb,EAA8D;QAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;oBACpD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC3B,CAAC,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,IAAS,CAAC;QACzB,CAAC,CAAC;IACH,CAAC;CACD;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA4B,EAAE;IAClE,OAAO,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA4B,EAAE;IAChE,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,cAAc,CAC7B,EAA8D;IAE9D,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC"}
|