katanakit-js 4.0.2 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +54 -55
  2. package/dist/adapters/angular/index.d.ts +1 -0
  3. package/dist/adapters/angular/index.d.ts.map +1 -1
  4. package/dist/adapters/angular/index.js +1 -0
  5. package/dist/adapters/angular/index.js.map +1 -1
  6. package/dist/adapters/angular/query.d.ts +56 -73
  7. package/dist/adapters/angular/query.d.ts.map +1 -1
  8. package/dist/adapters/angular/query.js +66 -129
  9. package/dist/adapters/angular/query.js.map +1 -1
  10. package/dist/adapters/react/index.d.ts +1 -0
  11. package/dist/adapters/react/index.d.ts.map +1 -1
  12. package/dist/adapters/react/index.js +1 -0
  13. package/dist/adapters/react/index.js.map +1 -1
  14. package/dist/adapters/react/query.d.ts +27 -72
  15. package/dist/adapters/react/query.d.ts.map +1 -1
  16. package/dist/adapters/react/query.js +51 -165
  17. package/dist/adapters/react/query.js.map +1 -1
  18. package/dist/adapters/solid/index.d.ts +1 -0
  19. package/dist/adapters/solid/index.d.ts.map +1 -1
  20. package/dist/adapters/solid/index.js +1 -0
  21. package/dist/adapters/solid/index.js.map +1 -1
  22. package/dist/adapters/solid/query.d.ts +32 -74
  23. package/dist/adapters/solid/query.d.ts.map +1 -1
  24. package/dist/adapters/solid/query.js +56 -131
  25. package/dist/adapters/solid/query.js.map +1 -1
  26. package/dist/adapters/svelte/index.d.ts +1 -0
  27. package/dist/adapters/svelte/index.d.ts.map +1 -1
  28. package/dist/adapters/svelte/index.js +1 -0
  29. package/dist/adapters/svelte/index.js.map +1 -1
  30. package/dist/adapters/svelte/query.d.ts +24 -72
  31. package/dist/adapters/svelte/query.d.ts.map +1 -1
  32. package/dist/adapters/svelte/query.js +41 -135
  33. package/dist/adapters/svelte/query.js.map +1 -1
  34. package/dist/adapters/vanilla/index.d.ts +3 -0
  35. package/dist/adapters/vanilla/index.d.ts.map +1 -0
  36. package/dist/adapters/vanilla/index.js +3 -0
  37. package/dist/adapters/vanilla/index.js.map +1 -0
  38. package/dist/adapters/vanilla/query.d.ts +69 -0
  39. package/dist/adapters/vanilla/query.d.ts.map +1 -0
  40. package/dist/adapters/vanilla/query.js +76 -0
  41. package/dist/adapters/vanilla/query.js.map +1 -0
  42. package/dist/adapters/vue/index.d.ts +1 -0
  43. package/dist/adapters/vue/index.d.ts.map +1 -1
  44. package/dist/adapters/vue/index.js +1 -0
  45. package/dist/adapters/vue/index.js.map +1 -1
  46. package/dist/adapters/vue/query.d.ts +35 -86
  47. package/dist/adapters/vue/query.d.ts.map +1 -1
  48. package/dist/adapters/vue/query.js +57 -168
  49. package/dist/adapters/vue/query.js.map +1 -1
  50. package/dist/core/services/query.service.d.ts +87 -134
  51. package/dist/core/services/query.service.d.ts.map +1 -1
  52. package/dist/core/services/query.service.js +99 -378
  53. package/dist/core/services/query.service.js.map +1 -1
  54. package/package.json +10 -3
@@ -1,389 +1,110 @@
1
- // ============================================================
2
- // Helpers
3
- // ============================================================
4
- const FIVE_MINUTES = 5 * 60 * 1_000;
5
- function hashQueryKey(key) {
6
- return JSON.stringify(key, (_, v) => typeof v === "object" && v !== null && !Array.isArray(v)
7
- ? Object.keys(v)
8
- .sort()
9
- .reduce((sorted, k) => {
10
- sorted[k] = v[k];
11
- return sorted;
12
- }, {})
13
- : v);
14
- }
15
- function delayMs(base, attempt) {
16
- return Math.min(base * 2 ** attempt, 30_000);
17
- }
18
- function isKeyPrefix(prefix, key) {
19
- if (prefix.length > key.length)
20
- return false;
21
- return prefix.every((part, index) => part === key[index]);
22
- }
23
- // ============================================================
24
- // QueryCache — manages individual query entries
25
- // ============================================================
26
- class QueryCache {
27
- entries = new Map();
28
- get(hash) {
29
- return this.entries.get(hash);
30
- }
31
- set(hash, entry) {
32
- this.entries.set(hash, entry);
33
- }
34
- delete(hash) {
35
- const entry = this.entries.get(hash);
36
- if (entry?.gcTimeout)
37
- clearTimeout(entry.gcTimeout);
38
- this.entries.delete(hash);
39
- }
40
- entries_() {
41
- return this.entries;
42
- }
43
- scheduleGC(hash, cacheTime) {
44
- const entry = this.get(hash);
45
- if (!entry || entry.subscriberCount > 0)
46
- return;
47
- entry.gcTimeout = setTimeout(() => {
48
- this.delete(hash);
49
- }, cacheTime);
50
- }
51
- cancelGC(hash) {
52
- const entry = this.get(hash);
53
- if (entry?.gcTimeout) {
54
- clearTimeout(entry.gcTimeout);
55
- entry.gcTimeout = null;
56
- }
57
- }
58
- }
59
- // ============================================================
60
- // QueryClient — the main public API
61
- // ============================================================
62
- export class QueryClient {
63
- cache;
64
- defaults;
65
- constructor(config = {}) {
66
- this.cache = new QueryCache();
67
- this.defaults = config.defaultOptions ?? {};
68
- }
69
- // ----------------------------------------------------------
70
- // Core: fetchQuery
71
- // ----------------------------------------------------------
72
- /**
73
- * Fetches data for a query key, using the cache when possible.
74
- * Returns the cached data immediately if fresh, then optionally
75
- * refetches in the background (stale-while-revalidate).
76
- */
77
- async fetchQuery(config) {
78
- const mergedConfig = this.mergeDefaults(config);
79
- const hash = hashQueryKey(mergedConfig.queryKey);
80
- let entry = this.cache.get(hash);
81
- if (!entry) {
82
- entry = this.createEntry(mergedConfig);
83
- this.cache.set(hash, entry);
84
- }
85
- else {
86
- // `subscribe()` may have created a placeholder entry whose `queryFn`
87
- // returns an empty result. Always refresh the config with the real one.
88
- entry.config = mergedConfig;
89
- }
90
- // Cancel GC if the entry was scheduled for removal.
91
- this.cache.cancelGC(hash);
92
- // A new fetch supersedes any prior cancellation.
93
- entry.cancelled = false;
94
- // If data is fresh, return it immediately.
95
- if (entry.state.status === "success" && !this.isStale(entry)) {
96
- return entry.state.data;
97
- }
98
- // If a fetch is already in flight, deduplicate.
99
- if (entry.fetchPromise) {
100
- const result = await entry.fetchPromise;
101
- if (result.ok)
102
- return result.data;
103
- throw result.error;
104
- }
105
- // Execute fetch.
106
- return this.executeFetch(entry, hash);
107
- }
108
- /**
109
- * Prefetches data into the cache without returning it.
110
- * Useful for anticipatory fetching.
111
- */
112
- async prefetchQuery(config) {
113
- try {
114
- await this.fetchQuery(config);
115
- }
116
- catch {
117
- // Prefetch errors are silently ignored.
118
- }
119
- }
120
- /**
121
- * Returns the cached data for a query key, or undefined if not cached.
122
- */
123
- getQueryData(queryKey) {
124
- const hash = hashQueryKey(queryKey);
125
- const entry = this.cache.get(hash);
126
- return entry?.state.data ?? undefined;
127
- }
128
- /**
129
- * Sets query data directly in the cache (optimistic updates).
130
- */
131
- setQueryData(queryKey, updater) {
132
- const hash = hashQueryKey(queryKey);
133
- const entry = this.cache.get(hash);
134
- if (!entry)
135
- return;
136
- const oldData = entry.state.data;
137
- const newData = typeof updater === "function" ? updater(oldData) : updater;
138
- entry.state = {
139
- ...entry.state,
140
- data: newData,
141
- status: "success",
142
- dataUpdatedAt: Date.now(),
143
- isLoading: false,
144
- isSuccess: true,
145
- isError: false,
146
- };
147
- this.notifyObservers(entry);
148
- }
149
- /**
150
- * Marks queries matching the filter as stale and optionally refetches
151
- * active queries.
152
- */
153
- async invalidateQueries(filters) {
154
- const prefixKey = filters?.queryKey;
155
- for (const entry of this.cache.entries_().values()) {
156
- const entryKey = entry.config.queryKey;
157
- if (prefixKey && !isKeyPrefix(prefixKey, entryKey))
158
- continue;
159
- entry.state.isStale = true;
160
- this.notifyObservers(entry);
161
- }
162
- }
163
- /**
164
- * Removes a query from the cache.
165
- */
166
- removeQueries(queryKey) {
167
- const hash = hashQueryKey(queryKey);
168
- this.cache.delete(hash);
169
- }
170
- /**
171
- * Clears the entire cache.
172
- */
173
- clear() {
174
- for (const [hash] of this.cache.entries_()) {
175
- this.cache.delete(hash);
176
- }
177
- }
178
- /**
179
- * Returns the current state of a cached query (reactive signal).
180
- * Subscribes to future updates.
181
- */
182
- getQueryState(queryKey) {
183
- const hash = hashQueryKey(queryKey);
184
- const entry = this.cache.get(hash);
185
- return entry?.state;
186
- }
187
- /**
188
- * Subscribes to state changes for a specific query.
189
- * Returns an unsubscribe function.
190
- */
191
- subscribe(queryKey, observer) {
192
- const hash = hashQueryKey(queryKey);
193
- let entry = this.cache.get(hash);
194
- if (!entry) {
195
- entry = this.createEntry({
196
- queryKey,
197
- queryFn: () => Promise.resolve({ data: null, error: null, url: "", status: 0, ok: true }),
198
- });
199
- this.cache.set(hash, entry);
200
- }
201
- entry.observers.add(observer);
202
- entry.subscriberCount++;
203
- this.cache.cancelGC(hash);
204
- const captured = entry;
205
- return () => {
206
- captured.observers.delete(observer);
207
- captured.subscriberCount--;
208
- if (captured.subscriberCount === 0) {
209
- this.cache.scheduleGC(hash, captured.config.cacheTime ?? FIVE_MINUTES);
210
- }
211
- };
212
- }
213
- /**
214
- * Cancels an in-flight request for a query.
215
- *
216
- * Marks the entry as cancelled; the next time its fetch resolves, the
217
- * result is discarded without updating state or notifying observers.
218
- */
219
- cancelQueries(queryKey) {
220
- const hash = hashQueryKey(queryKey);
221
- const entry = this.cache.get(hash);
222
- if (!entry)
223
- return;
224
- entry.cancelled = true;
225
- entry.fetchPromise = null;
226
- }
227
- // ----------------------------------------------------------
228
- // Internal
229
- // ----------------------------------------------------------
230
- mergeDefaults(config) {
231
- const qDefaults = this.defaults?.queries ?? {};
232
- return {
233
- staleTime: 0,
234
- cacheTime: FIVE_MINUTES,
235
- retry: 3,
236
- retryDelay: 1000,
237
- refetchOnWindowFocus: true,
238
- refetchOnReconnect: true,
239
- enabled: true,
240
- ...qDefaults,
241
- ...config,
242
- };
243
- }
244
- createEntry(config) {
245
- return {
246
- state: {
247
- status: "idle",
248
- data: null,
249
- error: null,
250
- isLoading: false,
251
- isSuccess: false,
252
- isError: false,
253
- isStale: true,
254
- dataUpdatedAt: 0,
255
- errorUpdatedAt: 0,
256
- fetchCount: 0,
257
- },
258
- config,
259
- observers: new Set(),
260
- gcTimeout: null,
261
- retryCount: 0,
262
- fetchPromise: null,
263
- subscriberCount: 0,
264
- cancelled: false,
265
- };
266
- }
267
- isStale(entry) {
268
- if (entry.state.isStale)
269
- return true;
270
- const staleTime = entry.config.staleTime ?? 0;
271
- if (staleTime === Infinity)
272
- return false;
273
- return Date.now() - entry.state.dataUpdatedAt > staleTime;
274
- }
275
- async executeFetch(entry, hash) {
276
- const maxRetries = entry.config.retry ?? 3;
277
- const baseDelay = entry.config.retryDelay ?? 1000;
278
- entry.state = {
279
- ...entry.state,
280
- status: "loading",
281
- isLoading: true,
282
- fetchCount: entry.state.fetchCount + 1,
283
- };
284
- this.notifyObservers(entry);
285
- const fetchWithRetry = async (attempt) => {
286
- const result = await entry.config.queryFn();
287
- if (!result.ok && attempt < maxRetries) {
288
- await new Promise((r) => setTimeout(r, delayMs(baseDelay, attempt)));
289
- entry.retryCount = attempt + 1;
290
- return fetchWithRetry(attempt + 1);
291
- }
292
- return result;
293
- };
294
- const fetchPromise = fetchWithRetry(0);
295
- entry.fetchPromise = fetchPromise;
296
- let result;
297
- try {
298
- result = await fetchPromise;
299
- }
300
- catch (err) {
301
- entry.fetchPromise = null;
302
- const error = err instanceof Error
303
- ? { message: err.message, status: 0 }
304
- : { message: String(err), status: 0 };
305
- this.applyError(entry, hash, error);
306
- throw error;
307
- }
308
- entry.fetchPromise = null;
309
- // Cancellation wins over result application.
310
- if (entry.cancelled) {
311
- return Promise.reject({
312
- message: "Query cancelled",
313
- status: 0,
314
- });
315
- }
316
- // If the entry was removed or superseded, discard.
317
- if (this.cache.get(hash) !== entry) {
318
- return result.ok ? result.data : Promise.reject(result.error);
319
- }
320
- if (result.ok) {
321
- entry.state = {
322
- status: "success",
323
- data: result.data,
324
- error: null,
325
- isLoading: false,
326
- isSuccess: true,
327
- isError: false,
328
- isStale: false,
329
- dataUpdatedAt: Date.now(),
330
- errorUpdatedAt: entry.state.errorUpdatedAt,
331
- fetchCount: entry.state.fetchCount,
332
- };
333
- entry.retryCount = 0;
334
- entry.config.onSuccess?.(result.data);
335
- this.notifyObservers(entry);
336
- return result.data;
337
- }
338
- this.applyError(entry, hash, result.error);
339
- entry.config.onError?.(result.error);
340
- throw result.error;
341
- }
342
- applyError(entry, hash, error) {
343
- if (this.cache.get(hash) !== entry)
344
- return;
345
- entry.state = {
346
- ...entry.state,
347
- status: "error",
348
- error,
349
- isLoading: false,
350
- isSuccess: false,
351
- isError: true,
352
- errorUpdatedAt: Date.now(),
353
- };
354
- this.notifyObservers(entry);
355
- }
356
- notifyObservers(entry) {
357
- for (const observer of entry.observers) {
358
- try {
359
- observer(entry.state);
360
- }
361
- catch {
362
- // Observer errors are swallowed.
363
- }
364
- }
365
- }
366
- }
367
- // ============================================================
368
- // Singleton facade
369
- // ============================================================
1
+ import { QueryClient, } from "@tanstack/query-core";
2
+ /**
3
+ * Query engine — a thin facade over {@link https://tanstack.com/query | TanStack Query Core}.
4
+ *
5
+ * The full `@tanstack/query-core` API is re-exported from here (and therefore
6
+ * from `katanakit-js`), so consumers get TanStack's cache, retries, stale-while-
7
+ * revalidate, focus/reconnect refetch, garbage collection and infinite queries
8
+ * without installing TanStack separately.
9
+ */
10
+ export * from "@tanstack/query-core";
11
+ /** Module-level {@link QueryClient} singleton shared by every adapter (browser). */
370
12
  let instance = null;
371
13
  /**
372
- * Returns the global {@link QueryClient} singleton.
373
- * Creates one with default options on first call.
14
+ * Creates a **new** {@link QueryClient}. Use this on the server (SSR) to get one
15
+ * client per request and avoid sharing a process-global cache across users.
16
+ *
17
+ * @param config - TanStack {@link QueryClientConfig} (caches, default options).
18
+ * @returns A fresh {@link QueryClient}.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * // Server: one client per request, then dehydrate/hydrate.
23
+ * const client = useCreateQueryClient();
24
+ * await client.prefetchQuery({ queryKey, queryFn });
25
+ * const state = dehydrate(client);
26
+ * ```
27
+ */
28
+ export function useCreateQueryClient(config = {}) {
29
+ return new QueryClient(config);
30
+ }
31
+ /**
32
+ * Returns the shared {@link QueryClient} singleton, creating one on first call.
33
+ *
34
+ * This is a **process-global** instance: it is the right default in the browser,
35
+ * but on the server it would leak cached data across requests. Use
36
+ * {@link useCreateQueryClient} per request when running under SSR.
37
+ *
38
+ * @returns The shared {@link QueryClient}.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * import { useQueryClient } from "katanakit-js";
43
+ *
44
+ * const client = useQueryClient();
45
+ * await client.invalidateQueries({ queryKey: ["users"] });
46
+ * ```
374
47
  */
375
48
  export function useQueryClient() {
376
- if (!instance) {
377
- instance = new QueryClient();
378
- }
379
- return instance;
49
+ return (instance ??= new QueryClient());
380
50
  }
381
51
  /**
382
- * Initialises the global {@link QueryClient} singleton with custom options.
383
- * Must be called before any `useQuery` call.
52
+ * Replaces the shared {@link QueryClient} singleton with a configured instance.
53
+ * The previous client's caches are cleared before swapping.
54
+ *
55
+ * @param config - TanStack {@link QueryClientConfig} (caches, default options).
56
+ * @returns The newly created {@link QueryClient}.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * import { useInitQueryClient } from "katanakit-js";
61
+ *
62
+ * useInitQueryClient({
63
+ * defaultOptions: { queries: { staleTime: 60_000, retry: 2 } },
64
+ * });
65
+ * ```
384
66
  */
385
- export function useInitQueryClient(config) {
67
+ export function useInitQueryClient(config = {}) {
68
+ instance?.clear();
386
69
  instance = new QueryClient(config);
387
70
  return instance;
388
71
  }
72
+ /**
73
+ * Bridges a KatanaKit Safe Result fetcher into a TanStack `queryFn`.
74
+ *
75
+ * TanStack expects `queryFn` to resolve with data and **throw** on failure;
76
+ * KatanaKit returns `{ data, error, ok }`. This adapter unwraps the Safe Result
77
+ * so the two fit together. Throws a real `Error` (with `status`) so `instanceof`
78
+ * checks and error boundaries work; the upstream response body is **not** placed
79
+ * on the thrown error.
80
+ *
81
+ * Receives TanStack's {@link QueryFunctionContext}, so you can forward
82
+ * `signal` for real request cancellation.
83
+ *
84
+ * @typeParam T - The resolved data type.
85
+ * @param fn - A function returning a Safe Result (e.g. `() => useGetApi(...)`).
86
+ * @returns A `queryFn` that throws on error.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * import { useSafeQueryFn, useGetApi, useFetch } from "katanakit-js";
91
+ *
92
+ * // Simple: the Safe Result gate.
93
+ * queryFn: useSafeQueryFn(() => useGetApi("pokeapi", "pokemonById", { params: { id } }))
94
+ *
95
+ * // With cancellation: forward TanStack's AbortSignal into the request.
96
+ * queryFn: useSafeQueryFn(({ signal }) =>
97
+ * useFetch("pokeapi", "pokemonById", { method: "GET", urlOptions: { params: { id } }, signal }),
98
+ * )
99
+ * ```
100
+ */
101
+ export function useSafeQueryFn(fn) {
102
+ return async (context) => {
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
+ };
109
+ }
389
110
  //# sourceMappingURL=query.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.service.js","sourceRoot":"","sources":["../../../src/core/services/query.service.ts"],"names":[],"mappings":"AAiFA,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAEpC,SAAS,YAAY,CAAC,GAAa;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAA4B,CAAC;aACxC,IAAI,EAAE;aACN,MAAM,CACN,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACZ,MAAkC,CAAC,CAAC,CAAC,GAAI,CAA6B,CAAC,CAAC,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC;QACf,CAAC,EACD,EAA6B,CAC7B;QACH,CAAC,CAAC,CAAC,CACJ,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,OAAe;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,WAAW,CAAC,MAAgB,EAAE,GAAa;IACnD,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;AAE/D,MAAM,UAAU;IACP,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IAErD,GAAG,CAAI,IAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAA8B,CAAC;IAC5D,CAAC;IAED,GAAG,CAAI,IAAY,EAAE,KAAoB;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAwB,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,IAAY;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,UAAU,CAAI,IAAY,EAAE,SAAiB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC;YAAE,OAAO;QAChD,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,EAAE,SAAS,CAAC,CAAC;IACf,CAAC;IAED,QAAQ,CAAI,IAAY;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;YACtB,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACF,CAAC;CACD;AAiBD,+DAA+D;AAC/D,oCAAoC;AACpC,+DAA+D;AAE/D,MAAM,OAAO,WAAW;IACf,KAAK,CAAa;IAClB,QAAQ,CAAsC;IAEtD,YAAY,SAA4B,EAAE;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,6DAA6D;IAC7D,mBAAmB;IACnB,6DAA6D;IAE7D;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAI,MAAsB;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,IAAI,CAAC,WAAW,CAAI,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,qEAAqE;YACrE,wEAAwE;YACxE,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;QAC7B,CAAC;QAED,oDAAoD;QACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE1B,iDAAiD;QACjD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAExB,2CAA2C;QAC3C,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC,KAAK,CAAC,IAAS,CAAC;QAC9B,CAAC;QAED,gDAAgD;QAChD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC;YACxC,IAAI,MAAM,CAAC,EAAE;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC;YAClC,MAAM,MAAM,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,iBAAiB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAI,MAAsB;QAC5C,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACR,wCAAwC;QACzC,CAAC;IACF,CAAC;IAED;;OAEG;IACH,YAAY,CAAI,QAAkB;QACjC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,IAAI,CAAC,CAAC;QACtC,OAAO,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,YAAY,CAAI,QAAkB,EAAE,OAAwC;QAC3E,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,OAAO,GACZ,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAE,OAAgC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEtF,KAAK,CAAC,KAAK,GAAG;YACb,GAAG,KAAK,CAAC,KAAK;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;YACzB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,KAAK;SACd,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAiC;QACxD,MAAM,SAAS,GAAG,OAAO,EAAE,QAAQ,CAAC;QAEpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,MAAM,QAAQ,GAAI,KAA6B,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChE,IAAI,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAAE,SAAS;YAC5D,KAA6B,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,eAAe,CAAC,KAA4B,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAkB;QAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,aAAa,CAAI,QAAkB;QAClC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,IAAI,CAAC,CAAC;QACtC,OAAO,KAAK,EAAE,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,SAAS,CAAI,QAAkB,EAAE,QAA0B;QAC1D,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,IAAI,CAAC,WAAW,CAAI;gBAC3B,QAAQ;gBACR,OAAO,EAAE,GAAG,EAAE,CACb,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,CAAC;aACzF,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAkC,CAAC,CAAC;QACxD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE1B,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,OAAO,GAAG,EAAE;YACX,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAkC,CAAC,CAAC;YAC9D,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC;YACxE,CAAC;QACF,CAAC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,QAAkB;QAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,6DAA6D;IAC7D,WAAW;IACX,6DAA6D;IAErD,aAAa,CAAI,MAAsB;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;QAC/C,OAAO;YACN,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,IAAI;YAChB,oBAAoB,EAAE,IAAI;YAC1B,kBAAkB,EAAE,IAAI;YACxB,OAAO,EAAE,IAAI;YACb,GAAG,SAAS;YACZ,GAAG,MAAM;SACT,CAAC;IACH,CAAC;IAEO,WAAW,CAAI,MAAsB;QAC5C,OAAO;YACN,KAAK,EAAE;gBACN,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,CAAC;gBAChB,cAAc,EAAE,CAAC;gBACjB,UAAU,EAAE,CAAC;aACb;YACD,MAAM;YACN,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,KAAK;SAChB,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,KAAsB;QACrC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,YAAY,CAAI,KAAoB,EAAE,IAAY;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;QAElD,KAAK,CAAC,KAAK,GAAG;YACb,GAAG,KAAK,CAAC,KAAK;YACd,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;SACtC,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAM,cAAc,GAAG,KAAK,EAAE,OAAe,EAA2B,EAAE;YACzE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAE5C,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;gBACxC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrE,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;gBAC/B,OAAO,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACvC,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QAElC,IAAI,MAAsB,CAAC;QAC3B,IAAI,CAAC;YACJ,MAAM,GAAG,MAAM,YAAY,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1B,MAAM,KAAK,GACV,GAAG,YAAY,KAAK;gBACnB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;gBACrC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,KAAK,CAAC;QACb,CAAC;QAED,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAE1B,6CAA6C;QAC7C,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,MAAM,CAAC;gBACrB,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,CAAC;aACG,CAAC,CAAC;QAChB,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,KAAK,CAAC,KAAK,GAAG;gBACb,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;gBACzB,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc;gBAC1C,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU;aAClC,CAAC;YACF,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YACrB,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,MAAM,CAAC,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,MAAM,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,UAAU,CAAI,KAAoB,EAAE,IAAY,EAAE,KAAe;QACxE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO;QAC3C,KAAK,CAAC,KAAK,GAAG;YACb,GAAG,KAAK,CAAC,KAAK;YACd,MAAM,EAAE,OAAO;YACf,KAAK;YACL,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;SAC1B,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,eAAe,CAAC,KAAsB;QAC7C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC;gBACJ,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACR,iCAAiC;YAClC,CAAC;QACF,CAAC;IACF,CAAC;CACD;AAED,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D;AAE/D,IAAI,QAAQ,GAAuB,IAAI,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAyB;IAC3D,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AACjB,CAAC"}
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,oFAAoF;AACpF,IAAI,QAAQ,GAAuB,IAAI,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA4B,EAAE;IAClE,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO,CAAC,QAAQ,KAAK,IAAI,WAAW,EAAE,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA4B,EAAE;IAChE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,cAAc,CAC7B,EAA8D;IAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,MAAM,CAAC,IAAS,CAAC;IACzB,CAAC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "katanakit-js",
3
- "version": "4.0.2",
3
+ "version": "4.0.3",
4
4
  "description": "KatanaKit — a sharp, framework-agnostic TypeScript service toolkit organized with hexagonal architecture.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -82,6 +82,11 @@
82
82
  "import": "./dist/adapters/angular/index.js",
83
83
  "default": "./dist/adapters/angular/index.js"
84
84
  },
85
+ "./adapters/vanilla": {
86
+ "types": "./dist/adapters/vanilla/index.d.ts",
87
+ "import": "./dist/adapters/vanilla/index.js",
88
+ "default": "./dist/adapters/vanilla/index.js"
89
+ },
85
90
  "./prisma": {
86
91
  "types": "./dist/prisma/index.d.ts",
87
92
  "import": "./dist/prisma/index.js",
@@ -113,6 +118,7 @@
113
118
  "whatsapp:dev": "tsx src/adapters/whatsapp/main.ts",
114
119
  "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
115
120
  "check": "eslint ./src && tsc6 --noEmit && vitest run",
121
+ "examples:check": "tsc6 -p tsconfig.examples.json && tsc6 -p tsconfig.examples.solid.json",
116
122
  "fix": "eslint --fix ./src && tsc6 --noEmit && vitest run",
117
123
  "build": "bun run clean && bun run check && tsc6 -p tsconfig.json",
118
124
  "release": "bun run build && bun run bump:patch && npm publish --access public && git push && git push --tags && node scripts/generate-release-notes.mjs \"v$(node -p \"require('./package.json').version\")\" | gh release create \"v$(node -p \"require('./package.json').version\")\" --notes-file -",
@@ -132,7 +138,7 @@
132
138
  },
133
139
  "repository": {
134
140
  "type": "git",
135
- "url": "git@github.com:senseikatana/katanakit.git"
141
+ "url": "git+https://github.com/senseikatana/katanakit-js.git"
136
142
  },
137
143
  "keywords": [
138
144
  "api",
@@ -158,13 +164,14 @@
158
164
  "author": "senseikatana - Sergio Jurado",
159
165
  "license": "MIT",
160
166
  "bugs": {
161
- "url": "https://github.com/senseikatana/katanakit/issues"
167
+ "url": "https://github.com/senseikatana/katanakit-js/issues"
162
168
  },
163
169
  "unpkg": "./dist/index.js",
164
170
  "jsdelivr": "./dist/index.js",
165
171
  "dependencies": {
166
172
  "@js-temporal/polyfill": "0.5.1",
167
173
  "@prisma/orm-postgres": "8.0.0-rc.8",
174
+ "@tanstack/query-core": "5.103.2",
168
175
  "express-rate-limit": "8.7.0"
169
176
  },
170
177
  "peerDependencies": {