katanakit-js 3.2.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.
- package/README.md +453 -326
- package/dist/adapters/angular/fetch.d.ts +37 -0
- package/dist/adapters/angular/fetch.d.ts.map +1 -0
- package/dist/adapters/angular/fetch.js +67 -0
- package/dist/adapters/angular/fetch.js.map +1 -0
- package/dist/adapters/angular/index.d.ts +5 -0
- package/dist/adapters/angular/index.d.ts.map +1 -0
- package/dist/adapters/angular/index.js +5 -0
- package/dist/adapters/angular/index.js.map +1 -0
- package/dist/adapters/angular/query.d.ts +90 -0
- package/dist/adapters/angular/query.d.ts.map +1 -0
- package/dist/adapters/angular/query.js +103 -0
- package/dist/adapters/angular/query.js.map +1 -0
- package/dist/adapters/angular/watch.d.ts +34 -0
- package/dist/adapters/angular/watch.d.ts.map +1 -0
- package/dist/adapters/angular/watch.js +38 -0
- package/dist/adapters/angular/watch.js.map +1 -0
- package/dist/adapters/assistant/assistant.service.js +1 -1
- package/dist/adapters/assistant/assistant.service.js.map +1 -1
- package/dist/adapters/astro/astro.service.d.ts +0 -1
- package/dist/adapters/astro/astro.service.d.ts.map +1 -1
- package/dist/adapters/astro/astro.service.js +0 -1
- package/dist/adapters/astro/astro.service.js.map +1 -1
- package/dist/adapters/bun/dummyjson.service.d.ts +88 -0
- package/dist/adapters/bun/dummyjson.service.d.ts.map +1 -0
- package/dist/adapters/bun/dummyjson.service.js +149 -0
- package/dist/adapters/bun/dummyjson.service.js.map +1 -0
- package/dist/adapters/bun/index.d.ts +5 -0
- package/dist/adapters/bun/index.d.ts.map +1 -0
- package/dist/adapters/bun/index.js +5 -0
- package/dist/adapters/bun/index.js.map +1 -0
- package/dist/adapters/bun/main.d.ts +2 -0
- package/dist/adapters/bun/main.d.ts.map +1 -0
- package/dist/adapters/bun/main.js +6 -0
- package/dist/adapters/bun/main.js.map +1 -0
- package/dist/adapters/bun/routes.d.ts +62 -0
- package/dist/adapters/bun/routes.d.ts.map +1 -0
- package/dist/adapters/bun/routes.js +60 -0
- package/dist/adapters/bun/routes.js.map +1 -0
- package/dist/adapters/bun/seed.d.ts +65 -0
- package/dist/adapters/bun/seed.d.ts.map +1 -0
- package/dist/adapters/bun/seed.js +117 -0
- package/dist/adapters/bun/seed.js.map +1 -0
- package/dist/adapters/bun/server.d.ts +53 -0
- package/dist/adapters/bun/server.d.ts.map +1 -0
- package/dist/adapters/bun/server.js +64 -0
- package/dist/adapters/bun/server.js.map +1 -0
- package/dist/adapters/express/app.d.ts +2 -1
- package/dist/adapters/express/app.d.ts.map +1 -1
- package/dist/adapters/express/app.js +14 -2
- package/dist/adapters/express/app.js.map +1 -1
- package/dist/adapters/express/products.controller.d.ts.map +1 -1
- package/dist/adapters/express/products.controller.js +3 -1
- package/dist/adapters/express/products.controller.js.map +1 -1
- package/dist/adapters/express/server.js +2 -2
- package/dist/adapters/express/server.js.map +1 -1
- package/dist/adapters/notion/notion.service.d.ts +4 -2
- package/dist/adapters/notion/notion.service.d.ts.map +1 -1
- package/dist/adapters/notion/notion.service.js +19 -5
- package/dist/adapters/notion/notion.service.js.map +1 -1
- package/dist/adapters/react/fetch.d.ts +44 -0
- package/dist/adapters/react/fetch.d.ts.map +1 -0
- package/dist/adapters/react/fetch.js +74 -0
- package/dist/adapters/react/fetch.js.map +1 -0
- package/dist/adapters/react/index.d.ts +5 -0
- package/dist/adapters/react/index.d.ts.map +1 -0
- package/dist/adapters/react/index.js +5 -0
- package/dist/adapters/react/index.js.map +1 -0
- package/dist/adapters/react/query.d.ts +59 -0
- package/dist/adapters/react/query.d.ts.map +1 -0
- package/dist/adapters/react/query.js +86 -0
- package/dist/adapters/react/query.js.map +1 -0
- package/dist/adapters/react/watch.d.ts +37 -0
- package/dist/adapters/react/watch.d.ts.map +1 -0
- package/dist/adapters/react/watch.js +39 -0
- package/dist/adapters/react/watch.js.map +1 -0
- package/dist/adapters/solid/fetch.d.ts +43 -0
- package/dist/adapters/solid/fetch.d.ts.map +1 -0
- package/dist/adapters/solid/fetch.js +72 -0
- package/dist/adapters/solid/fetch.js.map +1 -0
- package/dist/adapters/solid/index.d.ts +5 -0
- package/dist/adapters/solid/index.d.ts.map +1 -0
- package/dist/adapters/solid/index.js +5 -0
- package/dist/adapters/solid/index.js.map +1 -0
- package/dist/adapters/solid/query.d.ts +60 -0
- package/dist/adapters/solid/query.d.ts.map +1 -0
- package/dist/adapters/solid/query.js +88 -0
- package/dist/adapters/solid/query.js.map +1 -0
- package/dist/adapters/solid/watch.d.ts +32 -0
- package/dist/adapters/solid/watch.d.ts.map +1 -0
- package/dist/adapters/solid/watch.js +36 -0
- package/dist/adapters/solid/watch.js.map +1 -0
- package/dist/adapters/svelte/fetch.d.ts +40 -0
- package/dist/adapters/svelte/fetch.d.ts.map +1 -0
- package/dist/adapters/svelte/fetch.js +75 -0
- package/dist/adapters/svelte/fetch.js.map +1 -0
- package/dist/adapters/svelte/index.d.ts +5 -0
- package/dist/adapters/svelte/index.d.ts.map +1 -0
- package/dist/adapters/svelte/index.js +5 -0
- package/dist/adapters/svelte/index.js.map +1 -0
- package/dist/adapters/svelte/query.d.ts +60 -0
- package/dist/adapters/svelte/query.d.ts.map +1 -0
- package/dist/adapters/svelte/query.js +78 -0
- package/dist/adapters/svelte/query.js.map +1 -0
- package/dist/adapters/svelte/watch.d.ts +32 -0
- package/dist/adapters/svelte/watch.d.ts.map +1 -0
- package/dist/adapters/svelte/watch.js +41 -0
- package/dist/adapters/svelte/watch.js.map +1 -0
- package/dist/adapters/telegram/telegram.service.js +1 -1
- package/dist/adapters/telegram/telegram.service.js.map +1 -1
- package/dist/adapters/vanilla/index.d.ts +3 -0
- package/dist/adapters/vanilla/index.d.ts.map +1 -0
- package/dist/adapters/vanilla/index.js +3 -0
- package/dist/adapters/vanilla/index.js.map +1 -0
- package/dist/adapters/vanilla/query.d.ts +69 -0
- package/dist/adapters/vanilla/query.d.ts.map +1 -0
- package/dist/adapters/vanilla/query.js +76 -0
- package/dist/adapters/vanilla/query.js.map +1 -0
- package/dist/adapters/vue/index.d.ts +1 -0
- package/dist/adapters/vue/index.d.ts.map +1 -1
- package/dist/adapters/vue/index.js +1 -0
- package/dist/adapters/vue/index.js.map +1 -1
- package/dist/adapters/vue/query.d.ts +35 -87
- package/dist/adapters/vue/query.d.ts.map +1 -1
- package/dist/adapters/vue/query.js +57 -168
- package/dist/adapters/vue/query.js.map +1 -1
- package/dist/adapters/vue/vue.service.d.ts +9 -5
- package/dist/adapters/vue/vue.service.d.ts.map +1 -1
- package/dist/adapters/vue/vue.service.js +7 -3
- package/dist/adapters/vue/vue.service.js.map +1 -1
- package/dist/adapters/whatsapp/whatsapp.service.js +1 -1
- package/dist/adapters/whatsapp/whatsapp.service.js.map +1 -1
- package/dist/adapters/wordpress/wordpress.service.d.ts +2 -1
- package/dist/adapters/wordpress/wordpress.service.d.ts.map +1 -1
- package/dist/adapters/wordpress/wordpress.service.js +10 -5
- package/dist/adapters/wordpress/wordpress.service.js.map +1 -1
- package/dist/core/services/agent.service.d.ts.map +1 -1
- package/dist/core/services/agent.service.js +9 -1
- package/dist/core/services/agent.service.js.map +1 -1
- package/dist/core/services/dates.service.d.ts.map +1 -1
- package/dist/core/services/dates.service.js +2 -1
- package/dist/core/services/dates.service.js.map +1 -1
- package/dist/core/services/error.service.d.ts +1 -1
- package/dist/core/services/error.service.js +1 -1
- package/dist/core/services/http.service.d.ts +26 -5
- package/dist/core/services/http.service.d.ts.map +1 -1
- package/dist/core/services/http.service.js +30 -6
- package/dist/core/services/http.service.js.map +1 -1
- package/dist/core/services/logger.service.d.ts +10 -67
- package/dist/core/services/logger.service.d.ts.map +1 -1
- package/dist/core/services/logger.service.js +13 -139
- package/dist/core/services/logger.service.js.map +1 -1
- package/dist/core/services/query.service.d.ts +87 -130
- package/dist/core/services/query.service.d.ts.map +1 -1
- package/dist/core/services/query.service.js +99 -366
- package/dist/core/services/query.service.js.map +1 -1
- package/dist/core/services/reactive.service.d.ts.map +1 -1
- package/dist/core/services/reactive.service.js +7 -10
- package/dist/core/services/reactive.service.js.map +1 -1
- package/dist/core/services/timing.service.js +8 -8
- package/dist/core/services/timing.service.js.map +1 -1
- package/dist/core/services/utils.service.d.ts.map +1 -1
- package/dist/core/services/utils.service.js +3 -0
- package/dist/core/services/utils.service.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/dom/dom.service.d.ts.map +1 -1
- package/dist/infrastructure/dom/dom.service.js +18 -4
- package/dist/infrastructure/dom/dom.service.js.map +1 -1
- package/dist/infrastructure/observer/observer.service.js +2 -2
- package/dist/infrastructure/observer/observer.service.js.map +1 -1
- package/dist/infrastructure/sensors/sensors.service.js +6 -6
- package/dist/infrastructure/sensors/sensors.service.js.map +1 -1
- package/dist/infrastructure/storage/storage.service.d.ts.map +1 -1
- package/dist/infrastructure/storage/storage.service.js +12 -2
- package/dist/infrastructure/storage/storage.service.js.map +1 -1
- package/dist/prisma/assistant.store.d.ts +3 -0
- package/dist/prisma/assistant.store.d.ts.map +1 -1
- package/dist/prisma/assistant.store.js +12 -6
- package/dist/prisma/assistant.store.js.map +1 -1
- package/dist/prisma/use-prisma.d.ts +5 -4
- package/dist/prisma/use-prisma.d.ts.map +1 -1
- package/dist/prisma/use-prisma.js +5 -4
- package/dist/prisma/use-prisma.js.map +1 -1
- package/dist/types/index.d.ts +2 -6
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +251 -185
- package/dist/prisma/db.d.ts +0 -4
- package/dist/prisma/db.d.ts.map +0 -1
- package/dist/prisma/db.js +0 -12
- package/dist/prisma/db.js.map +0 -1
|
@@ -1,377 +1,110 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}, {})
|
|
13
|
-
: v);
|
|
14
|
-
}
|
|
15
|
-
function delayMs(base, attempt) {
|
|
16
|
-
return Math.min(base * 2 ** attempt, 30_000);
|
|
17
|
-
}
|
|
18
|
-
// ============================================================
|
|
19
|
-
// QueryCache — manages individual query entries
|
|
20
|
-
// ============================================================
|
|
21
|
-
class QueryCache {
|
|
22
|
-
// biome-ignore lint/suspicious/noExplicitAny: internal type erasure for the cache map.
|
|
23
|
-
entries = new Map();
|
|
24
|
-
get(hash) {
|
|
25
|
-
return this.entries.get(hash);
|
|
26
|
-
}
|
|
27
|
-
set(hash, entry) {
|
|
28
|
-
// biome-ignore lint/suspicious/noExplicitAny: internal type erasure.
|
|
29
|
-
this.entries.set(hash, entry);
|
|
30
|
-
}
|
|
31
|
-
delete(hash) {
|
|
32
|
-
const entry = this.entries.get(hash);
|
|
33
|
-
if (entry?.gcTimeout)
|
|
34
|
-
clearTimeout(entry.gcTimeout);
|
|
35
|
-
this.entries.delete(hash);
|
|
36
|
-
}
|
|
37
|
-
// biome-ignore lint/suspicious/noExplicitAny: internal type erasure.
|
|
38
|
-
entries_() {
|
|
39
|
-
return this.entries;
|
|
40
|
-
}
|
|
41
|
-
scheduleGC(hash, cacheTime) {
|
|
42
|
-
const entry = this.get(hash);
|
|
43
|
-
if (!entry || entry.subscriberCount > 0)
|
|
44
|
-
return;
|
|
45
|
-
entry.gcTimeout = setTimeout(() => {
|
|
46
|
-
this.delete(hash);
|
|
47
|
-
}, cacheTime);
|
|
48
|
-
}
|
|
49
|
-
cancelGC(hash) {
|
|
50
|
-
const entry = this.get(hash);
|
|
51
|
-
if (entry?.gcTimeout) {
|
|
52
|
-
clearTimeout(entry.gcTimeout);
|
|
53
|
-
entry.gcTimeout = null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// ============================================================
|
|
58
|
-
// QueryClient — the main public API
|
|
59
|
-
// ============================================================
|
|
60
|
-
export class QueryClient {
|
|
61
|
-
cache;
|
|
62
|
-
defaults;
|
|
63
|
-
constructor(config = {}) {
|
|
64
|
-
this.cache = new QueryCache();
|
|
65
|
-
this.defaults = config.defaultOptions ?? {};
|
|
66
|
-
}
|
|
67
|
-
// ----------------------------------------------------------
|
|
68
|
-
// Core: fetchQuery
|
|
69
|
-
// ----------------------------------------------------------
|
|
70
|
-
/**
|
|
71
|
-
* Fetches data for a query key, using the cache when possible.
|
|
72
|
-
* Returns the cached data immediately if fresh, then optionally
|
|
73
|
-
* refetches in the background (stale-while-revalidate).
|
|
74
|
-
*/
|
|
75
|
-
async fetchQuery(config) {
|
|
76
|
-
const mergedConfig = this.mergeDefaults(config);
|
|
77
|
-
const hash = hashQueryKey(mergedConfig.queryKey);
|
|
78
|
-
let entry = this.cache.get(hash);
|
|
79
|
-
if (!entry) {
|
|
80
|
-
entry = this.createEntry(mergedConfig);
|
|
81
|
-
this.cache.set(hash, entry);
|
|
82
|
-
}
|
|
83
|
-
// Cancel GC if the entry was scheduled for removal.
|
|
84
|
-
this.cache.cancelGC(hash);
|
|
85
|
-
// If data is fresh, return it immediately.
|
|
86
|
-
if (entry.state.status === "success" && !this.isStale(entry)) {
|
|
87
|
-
return entry.state.data;
|
|
88
|
-
}
|
|
89
|
-
// If a fetch is already in flight, deduplicate.
|
|
90
|
-
if (entry.fetchPromise) {
|
|
91
|
-
const result = await entry.fetchPromise;
|
|
92
|
-
if (result.ok)
|
|
93
|
-
return result.data;
|
|
94
|
-
throw result.error;
|
|
95
|
-
}
|
|
96
|
-
// Execute fetch.
|
|
97
|
-
return this.executeFetch(entry, hash);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Prefetches data into the cache without returning it.
|
|
101
|
-
* Useful for anticipatory fetching.
|
|
102
|
-
*/
|
|
103
|
-
async prefetchQuery(config) {
|
|
104
|
-
try {
|
|
105
|
-
await this.fetchQuery(config);
|
|
106
|
-
}
|
|
107
|
-
catch {
|
|
108
|
-
// Prefetch errors are silently ignored.
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Returns the cached data for a query key, or undefined if not cached.
|
|
113
|
-
*/
|
|
114
|
-
getQueryData(queryKey) {
|
|
115
|
-
const hash = hashQueryKey(queryKey);
|
|
116
|
-
const entry = this.cache.get(hash);
|
|
117
|
-
return entry?.state.data ?? undefined;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Sets query data directly in the cache (optimistic updates).
|
|
121
|
-
*/
|
|
122
|
-
setQueryData(queryKey, updater) {
|
|
123
|
-
const hash = hashQueryKey(queryKey);
|
|
124
|
-
const entry = this.cache.get(hash);
|
|
125
|
-
if (!entry)
|
|
126
|
-
return;
|
|
127
|
-
const oldData = entry.state.data;
|
|
128
|
-
const newData = typeof updater === "function" ? updater(oldData) : updater;
|
|
129
|
-
entry.state = {
|
|
130
|
-
...entry.state,
|
|
131
|
-
data: newData,
|
|
132
|
-
status: "success",
|
|
133
|
-
dataUpdatedAt: Date.now(),
|
|
134
|
-
isLoading: false,
|
|
135
|
-
isSuccess: true,
|
|
136
|
-
isError: false,
|
|
137
|
-
};
|
|
138
|
-
this.notifyObservers(entry);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Marks queries matching the filter as stale and optionally refetches
|
|
142
|
-
* active queries.
|
|
143
|
-
*/
|
|
144
|
-
async invalidateQueries(filters) {
|
|
145
|
-
const prefix = filters?.queryKey ? hashQueryKey(filters.queryKey) : undefined;
|
|
146
|
-
for (const [hash, entry] of this.cache.entries_()) {
|
|
147
|
-
if (prefix && !hash.startsWith(prefix))
|
|
148
|
-
continue;
|
|
149
|
-
entry.state.isStale = true;
|
|
150
|
-
this.notifyObservers(entry);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Removes a query from the cache.
|
|
155
|
-
*/
|
|
156
|
-
removeQueries(queryKey) {
|
|
157
|
-
const hash = hashQueryKey(queryKey);
|
|
158
|
-
this.cache.delete(hash);
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Clears the entire cache.
|
|
162
|
-
*/
|
|
163
|
-
clear() {
|
|
164
|
-
for (const [hash] of this.cache.entries_()) {
|
|
165
|
-
this.cache.delete(hash);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Returns the current state of a cached query (reactive signal).
|
|
170
|
-
* Subscribes to future updates.
|
|
171
|
-
*/
|
|
172
|
-
getQueryState(queryKey) {
|
|
173
|
-
const hash = hashQueryKey(queryKey);
|
|
174
|
-
const entry = this.cache.get(hash);
|
|
175
|
-
return entry?.state;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Subscribes to state changes for a specific query.
|
|
179
|
-
* Returns an unsubscribe function.
|
|
180
|
-
*/
|
|
181
|
-
subscribe(queryKey, observer) {
|
|
182
|
-
const hash = hashQueryKey(queryKey);
|
|
183
|
-
let entry = this.cache.get(hash);
|
|
184
|
-
if (!entry) {
|
|
185
|
-
entry = this.createEntry({
|
|
186
|
-
queryKey,
|
|
187
|
-
queryFn: () => Promise.resolve({ data: null, error: null, url: "", status: 0, ok: true }),
|
|
188
|
-
});
|
|
189
|
-
this.cache.set(hash, entry);
|
|
190
|
-
}
|
|
191
|
-
entry.observers.add(observer);
|
|
192
|
-
entry.subscriberCount++;
|
|
193
|
-
this.cache.cancelGC(hash);
|
|
194
|
-
const captured = entry;
|
|
195
|
-
return () => {
|
|
196
|
-
captured.observers.delete(observer);
|
|
197
|
-
captured.subscriberCount--;
|
|
198
|
-
if (captured.subscriberCount === 0) {
|
|
199
|
-
this.cache.scheduleGC(hash, captured.config.cacheTime ?? FIVE_MINUTES);
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Cancels an in-flight request for a query.
|
|
205
|
-
*/
|
|
206
|
-
cancelQueries(queryKey) {
|
|
207
|
-
const hash = hashQueryKey(queryKey);
|
|
208
|
-
const entry = this.cache.get(hash);
|
|
209
|
-
if (!entry)
|
|
210
|
-
return;
|
|
211
|
-
// The fetch itself uses AbortController via the underlying useFetch.
|
|
212
|
-
// We mark the fetchPromise as null to prevent result application.
|
|
213
|
-
entry.fetchPromise = null;
|
|
214
|
-
}
|
|
215
|
-
// ----------------------------------------------------------
|
|
216
|
-
// Internal
|
|
217
|
-
// ----------------------------------------------------------
|
|
218
|
-
mergeDefaults(config) {
|
|
219
|
-
const qDefaults = this.defaults?.queries ?? {};
|
|
220
|
-
return {
|
|
221
|
-
staleTime: 0,
|
|
222
|
-
cacheTime: FIVE_MINUTES,
|
|
223
|
-
retry: 3,
|
|
224
|
-
retryDelay: 1000,
|
|
225
|
-
refetchOnWindowFocus: true,
|
|
226
|
-
refetchOnReconnect: true,
|
|
227
|
-
enabled: true,
|
|
228
|
-
...qDefaults,
|
|
229
|
-
...config,
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
createEntry(config) {
|
|
233
|
-
return {
|
|
234
|
-
state: {
|
|
235
|
-
status: "idle",
|
|
236
|
-
data: null,
|
|
237
|
-
error: null,
|
|
238
|
-
isLoading: false,
|
|
239
|
-
isSuccess: false,
|
|
240
|
-
isError: false,
|
|
241
|
-
isStale: true,
|
|
242
|
-
dataUpdatedAt: 0,
|
|
243
|
-
errorUpdatedAt: 0,
|
|
244
|
-
fetchCount: 0,
|
|
245
|
-
},
|
|
246
|
-
config,
|
|
247
|
-
observers: new Set(),
|
|
248
|
-
gcTimeout: null,
|
|
249
|
-
retryCount: 0,
|
|
250
|
-
fetchPromise: null,
|
|
251
|
-
subscriberCount: 0,
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
// biome-ignore lint/suspicious/noExplicitAny: internal type erasure.
|
|
255
|
-
isStale(entry) {
|
|
256
|
-
if (entry.state.isStale)
|
|
257
|
-
return true;
|
|
258
|
-
const staleTime = entry.config.staleTime ?? 0;
|
|
259
|
-
if (staleTime === Infinity)
|
|
260
|
-
return false;
|
|
261
|
-
return Date.now() - entry.state.dataUpdatedAt > staleTime;
|
|
262
|
-
}
|
|
263
|
-
async executeFetch(entry, hash) {
|
|
264
|
-
const maxRetries = entry.config.retry ?? 3;
|
|
265
|
-
const baseDelay = entry.config.retryDelay ?? 1000;
|
|
266
|
-
entry.state = {
|
|
267
|
-
...entry.state,
|
|
268
|
-
status: "loading",
|
|
269
|
-
isLoading: true,
|
|
270
|
-
fetchCount: entry.state.fetchCount + 1,
|
|
271
|
-
};
|
|
272
|
-
this.notifyObservers(entry);
|
|
273
|
-
const fetchWithRetry = async (attempt) => {
|
|
274
|
-
const result = await entry.config.queryFn();
|
|
275
|
-
if (!result.ok && attempt < maxRetries) {
|
|
276
|
-
await new Promise((r) => setTimeout(r, delayMs(baseDelay, attempt)));
|
|
277
|
-
entry.retryCount = attempt + 1;
|
|
278
|
-
return fetchWithRetry(attempt + 1);
|
|
279
|
-
}
|
|
280
|
-
return result;
|
|
281
|
-
};
|
|
282
|
-
const fetchPromise = fetchWithRetry(0);
|
|
283
|
-
entry.fetchPromise = fetchPromise;
|
|
284
|
-
try {
|
|
285
|
-
const result = await fetchPromise;
|
|
286
|
-
// If the entry was removed or superseded, discard.
|
|
287
|
-
if (this.cache.get(hash) !== entry) {
|
|
288
|
-
return result.ok ? result.data : Promise.reject(result.error);
|
|
289
|
-
}
|
|
290
|
-
if (result.ok) {
|
|
291
|
-
entry.state = {
|
|
292
|
-
status: "success",
|
|
293
|
-
data: result.data,
|
|
294
|
-
error: null,
|
|
295
|
-
isLoading: false,
|
|
296
|
-
isSuccess: true,
|
|
297
|
-
isError: false,
|
|
298
|
-
isStale: false,
|
|
299
|
-
dataUpdatedAt: Date.now(),
|
|
300
|
-
errorUpdatedAt: entry.state.errorUpdatedAt,
|
|
301
|
-
fetchCount: entry.state.fetchCount,
|
|
302
|
-
};
|
|
303
|
-
entry.retryCount = 0;
|
|
304
|
-
entry.config.onSuccess?.(result.data);
|
|
305
|
-
}
|
|
306
|
-
else {
|
|
307
|
-
entry.state = {
|
|
308
|
-
...entry.state,
|
|
309
|
-
status: "error",
|
|
310
|
-
error: result.error,
|
|
311
|
-
isLoading: false,
|
|
312
|
-
isSuccess: false,
|
|
313
|
-
isError: true,
|
|
314
|
-
errorUpdatedAt: Date.now(),
|
|
315
|
-
};
|
|
316
|
-
entry.config.onError?.(result.error);
|
|
317
|
-
}
|
|
318
|
-
entry.fetchPromise = null;
|
|
319
|
-
this.notifyObservers(entry);
|
|
320
|
-
if (result.ok)
|
|
321
|
-
return result.data;
|
|
322
|
-
throw result.error;
|
|
323
|
-
}
|
|
324
|
-
catch (err) {
|
|
325
|
-
entry.fetchPromise = null;
|
|
326
|
-
if (this.cache.get(hash) === entry) {
|
|
327
|
-
const error = err instanceof Error
|
|
328
|
-
? { message: err.message, status: 0 }
|
|
329
|
-
: { message: String(err), status: 0 };
|
|
330
|
-
entry.state = {
|
|
331
|
-
...entry.state,
|
|
332
|
-
status: "error",
|
|
333
|
-
error,
|
|
334
|
-
isLoading: false,
|
|
335
|
-
isError: true,
|
|
336
|
-
errorUpdatedAt: Date.now(),
|
|
337
|
-
};
|
|
338
|
-
this.notifyObservers(entry);
|
|
339
|
-
}
|
|
340
|
-
throw err;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
// biome-ignore lint/suspicious/noExplicitAny: internal type erasure.
|
|
344
|
-
notifyObservers(entry) {
|
|
345
|
-
for (const observer of entry.observers) {
|
|
346
|
-
try {
|
|
347
|
-
observer(entry.state);
|
|
348
|
-
}
|
|
349
|
-
catch {
|
|
350
|
-
// Observer errors are swallowed.
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
// ============================================================
|
|
356
|
-
// Singleton facade
|
|
357
|
-
// ============================================================
|
|
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). */
|
|
358
12
|
let instance = null;
|
|
359
13
|
/**
|
|
360
|
-
*
|
|
361
|
-
*
|
|
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
|
+
* ```
|
|
362
47
|
*/
|
|
363
48
|
export function useQueryClient() {
|
|
364
|
-
|
|
365
|
-
instance = new QueryClient();
|
|
366
|
-
}
|
|
367
|
-
return instance;
|
|
49
|
+
return (instance ??= new QueryClient());
|
|
368
50
|
}
|
|
369
51
|
/**
|
|
370
|
-
*
|
|
371
|
-
*
|
|
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
|
+
* ```
|
|
372
66
|
*/
|
|
373
|
-
export function useInitQueryClient(config) {
|
|
67
|
+
export function useInitQueryClient(config = {}) {
|
|
68
|
+
instance?.clear();
|
|
374
69
|
instance = new QueryClient(config);
|
|
375
70
|
return instance;
|
|
376
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
|
+
}
|
|
377
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":"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"}
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/reactive.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EAEZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,MAAM,sBAAsB,CAAC;AAqB9B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CA+BtF;
|
|
1
|
+
{"version":3,"file":"reactive.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/reactive.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EAEZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,MAAM,sBAAsB,CAAC;AAqB9B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CA+BtF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EACnC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,GAC9B,MAAM,IAAI,CAwCZ;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC9B,WAAW,EAAE,MAAM,CAAC,EACpB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,GAC9B,YAAY,CAAC,CAAC,CAAC,CAQjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,YAAY,UAAQ,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAKjG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACvC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,CAAC,EAChB,MAAM,GAAE,aAA8B,GACpC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CA6BpC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EACzC,YAAY,EAAE,CAAC,EACf,OAAO,SAAM,GACX,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAuBhE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAmB/D"}
|
|
@@ -56,7 +56,7 @@ export function useCreateSignal(initialValue) {
|
|
|
56
56
|
listener(value, oldValue);
|
|
57
57
|
}
|
|
58
58
|
catch (error) {
|
|
59
|
-
useLogger("
|
|
59
|
+
useLogger("[createSignal] Listener error:", error, "error");
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
});
|
|
@@ -70,9 +70,6 @@ export function useCreateSignal(initialValue) {
|
|
|
70
70
|
};
|
|
71
71
|
return [get, set];
|
|
72
72
|
}
|
|
73
|
-
const [counter, updateCounter] = useCreateSignal(0);
|
|
74
|
-
useLogger("log", "Counter values is: ", counter);
|
|
75
|
-
useLogger("log", "Counter updated is: ", updateCounter(1));
|
|
76
73
|
/**
|
|
77
74
|
* Creates a side effect that re-runs whenever any of the provided signals
|
|
78
75
|
* emit a new value. An optional cleanup function returned from the callback
|
|
@@ -103,14 +100,14 @@ export function useCreateEffect(callback, signals) {
|
|
|
103
100
|
cleanup();
|
|
104
101
|
}
|
|
105
102
|
catch (error) {
|
|
106
|
-
useLogger("
|
|
103
|
+
useLogger("[createEffect] Previous cleanup error:", error, "error");
|
|
107
104
|
}
|
|
108
105
|
}
|
|
109
106
|
try {
|
|
110
107
|
cleanup = callback();
|
|
111
108
|
}
|
|
112
109
|
catch (error) {
|
|
113
|
-
useLogger("
|
|
110
|
+
useLogger("[createEffect] Effect execution error:", error, "error");
|
|
114
111
|
}
|
|
115
112
|
};
|
|
116
113
|
const unsubscribes = signals.map((signal) => {
|
|
@@ -126,7 +123,7 @@ export function useCreateEffect(callback, signals) {
|
|
|
126
123
|
cleanup();
|
|
127
124
|
}
|
|
128
125
|
catch (error) {
|
|
129
|
-
useLogger("
|
|
126
|
+
useLogger("[createEffect] Final cleanup error:", error, "error");
|
|
130
127
|
}
|
|
131
128
|
}
|
|
132
129
|
for (const unsub of unsubscribes) {
|
|
@@ -209,7 +206,7 @@ export function useCreateStorageSignal(key, fallbackValue, target = "localStorag
|
|
|
209
206
|
}
|
|
210
207
|
}
|
|
211
208
|
catch (error) {
|
|
212
|
-
useLogger(
|
|
209
|
+
useLogger(`[createStorageSignal] Error reading from ${target}:`, error, "error");
|
|
213
210
|
}
|
|
214
211
|
const [get, set] = useCreateSignal(initial);
|
|
215
212
|
const setWithStorage = (nextValue) => {
|
|
@@ -219,7 +216,7 @@ export function useCreateStorageSignal(key, fallbackValue, target = "localStorag
|
|
|
219
216
|
useSetStorage(key, newValue, target);
|
|
220
217
|
}
|
|
221
218
|
catch (error) {
|
|
222
|
-
useLogger(
|
|
219
|
+
useLogger(`[createStorageSignal] Error writing to ${target}:`, error, "error");
|
|
223
220
|
}
|
|
224
221
|
return newValue;
|
|
225
222
|
});
|
|
@@ -291,7 +288,7 @@ export function useCreateBatch() {
|
|
|
291
288
|
callback();
|
|
292
289
|
}
|
|
293
290
|
catch (error) {
|
|
294
|
-
useLogger("
|
|
291
|
+
useLogger("[createBatch] Batch block error:", error, "error");
|
|
295
292
|
}
|
|
296
293
|
finally {
|
|
297
294
|
if (!wasBatching) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.service.js","sourceRoot":"","sources":["../../../src/core/services/reactive.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAS/F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,+BAA+B;AAC/B,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,MAAM,UAAU,GAAoB,IAAI,GAAG,EAAE,CAAC;AAE9C;;;;;GAKG;AACH,SAAS,MAAM,CAAC,QAAoB;IACnC,IAAI,UAAU,EAAE,CAAC;QAChB,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACP,QAAQ,EAAE,CAAC;IACZ,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,eAAe,CAAI,YAAe;IACjD,IAAI,KAAK,GAAG,YAAY,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE/C,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAoB,CAAC;IAE7C,MAAM,GAAG,GAAoB,CAAC,SAAS,EAAE,EAAE;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,KAAK,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAE,SAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9F,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,EAAE;gBACX,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC;wBACJ,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC3B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"reactive.service.js","sourceRoot":"","sources":["../../../src/core/services/reactive.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAS/F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,+BAA+B;AAC/B,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,MAAM,UAAU,GAAoB,IAAI,GAAG,EAAE,CAAC;AAE9C;;;;;GAKG;AACH,SAAS,MAAM,CAAC,QAAoB;IACnC,IAAI,UAAU,EAAE,CAAC;QAChB,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACP,QAAQ,EAAE,CAAC;IACZ,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,eAAe,CAAI,YAAe;IACjD,IAAI,KAAK,GAAG,YAAY,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE/C,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAoB,CAAC;IAE7C,MAAM,GAAG,GAAoB,CAAC,SAAS,EAAE,EAAE;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,KAAK,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAE,SAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9F,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,EAAE;gBACX,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC;wBACJ,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC3B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,SAAS,CAAC,gCAAgC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC7D,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC;IAEF,GAAG,CAAC,YAAY,GAAG,CAAC,QAA2B,EAAgB,EAAE;QAChE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,GAAG,EAAE;YACX,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAC9B,QAAmC,EACnC,OAAgC;IAEhC,IAAI,OAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,GAAG,EAAE;QACpB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC;gBACJ,OAAO,EAAE,CAAC;YACX,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,CAAC,wCAAwC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACrE,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,OAAO,GAAG,QAAQ,EAAyB,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,SAAS,CAAC,wCAAwC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;IAEV,OAAO,GAAG,EAAE;QACX,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC;gBACJ,OAAO,EAAE,CAAC;YACX,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,CAAC,qCAAqC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YAClC,KAAK,EAAE,CAAC;QACT,CAAC;IACF,CAAC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAC5B,WAAoB,EACpB,OAAgC;IAEhC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,CAAI,WAAW,EAAE,CAAC,CAAC;IAErD,eAAe,CAAC,GAAG,EAAE;QACpB,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACpB,CAAC,EAAE,OAAO,CAAC,CAAC;IAEZ,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,YAAY,GAAG,KAAK;IACnD,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,CAAU,YAAY,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CACrC,GAAW,EACX,aAAgB,EAChB,SAAwB,cAAc;IAEtC,IAAI,OAAO,GAAM,aAAa,CAAC;IAE/B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,aAAa,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,GAAG,MAAM,CAAC;QAClB,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,SAAS,CAAC,4CAA4C,MAAM,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,CAAI,OAAO,CAAC,CAAC;IAE/C,MAAM,cAAc,GAAoB,CAAC,SAAS,EAAE,EAAE;QACrD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAE,SAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEhG,IAAI,CAAC;gBACJ,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,CAAC,0CAA0C,MAAM,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChF,CAAC;YAED,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,wBAAwB,CACvC,YAAe,EACf,OAAO,GAAG,GAAG;IAEb,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,CAAI,YAAY,CAAC,CAAC;IACpD,IAAI,SAAoD,CAAC;IAEzD,MAAM,YAAY,GAAgD,CAAC,CAAC,SAAS,EAAE,EAAE;QAChF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QAED,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,GAAG,CAAC,SAAS,CAAC,CAAC;YACf,SAAS,GAAG,SAAS,CAAC;QACvB,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC,CAAgD,CAAC;IAElD,YAAY,CAAC,SAAS,GAAG,GAAG,EAAE;QAC7B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,SAAS,GAAG,SAAS,CAAC;QACvB,CAAC;IACF,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO,CAAC,QAAoB,EAAE,EAAE;QAC/B,MAAM,WAAW,GAAG,UAAU,CAAC;QAC/B,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC;YACJ,QAAQ,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,SAAS,CAAC,kCAAkC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,UAAU,GAAG,KAAK,CAAC;gBACnB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC5B,MAAM,EAAE,CAAC;gBACV,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,CAAC;AACH,CAAC"}
|