@gaddario98/react-core 2.1.4 → 2.1.6
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 +630 -4
- package/dist/pages/index.d.ts +527 -682
- package/dist/pages/index.js +242 -258
- package/dist/pages/index.js.map +1 -1
- package/dist/pages/index.mjs +242 -258
- package/dist/pages/index.mjs.map +1 -1
- package/dist/queries/index.d.ts +25 -4
- package/dist/queries/index.js +211 -216
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/index.mjs +211 -216
- package/dist/queries/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../queries/atoms/queryResultAtoms.ts","../../queries/utils/request.ts","../../queries/config.ts","../../../../node_modules/tslib/tslib.es6.js","../../queries/hooks/useQueryApi.ts","../../queries/hooks/useMutateApi.ts","../../queries/hooks/useMultipleQuery.ts","../../queries/hooks/useMultipleMutation.ts","../../queries/hooks/useMultipleWebSocket.ts","../../queries/hooks/useApi.ts","../../queries/hooks/useWebSocket.ts","../../queries/hooks/useInvalidateQueries.ts","../../queries/hooks/useJotaiQueryResult.ts","../../queries/hooks/useApiValues.ts","../../../../node_modules/@tanstack/query-core/build/modern/utils.js","../../../../node_modules/@tanstack/query-core/build/modern/thenable.js","../../../../node_modules/@tanstack/query-core/build/modern/hydration.js","../../../../node_modules/@tanstack/query-persist-client-core/build/modern/persist.js","../../../../node_modules/@tanstack/react-query-persist-client/build/modern/PersistQueryClientProvider.js","../../queries/context/QueriesContext.tsx","../../queries/utils/encryption.ts"],"sourcesContent":["import { atom } from 'jotai'\nimport { atomWithStorage, createJSONStorage, selectAtom } from 'jotai/utils'\nimport { storage } from '@gaddario98/react-state'\nimport type { UseMutationResult } from '@tanstack/react-query'\nimport type { QueriesArray, QueryResult } from '../types'\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type QueryStoreEntry<Q extends QueriesArray = QueriesArray> =\n QueryResult<Q[number]['response']>\n\nexport type MutationStoreEntry<Q extends QueriesArray = QueriesArray> =\n UseMutationResult<Q[number]['response'], Error, Q[number]['props'], unknown>\n// ============================================================================\n// Default Values\n// ============================================================================\n\nexport const DEFAULT_QUERY_ENTRY: QueryStoreEntry = Object.freeze({\n data: undefined,\n isLoading: false,\n isLoadingMapped: false,\n isFetching: false,\n isPending: false,\n isSuccess: false,\n isError: false,\n isStale: false,\n error: null,\n dataUpdatedAt: 0,\n errorUpdatedAt: 0,\n fetchStatus: 'idle' as const,\n refetch: () => Promise.resolve(),\n})\n\nexport const DEFAULT_MUTATION_ENTRY: MutationStoreEntry = Object.freeze({\n data: undefined,\n status: 'idle',\n error: null,\n variables: undefined,\n submittedAt: 0,\n isIdle: true,\n isPending: false,\n isSuccess: false,\n isError: false,\n mutate: () => {},\n mutateAsync: async () => Promise.resolve(undefined),\n reset: () => {},\n context: 0,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n} as MutationStoreEntry)\n\n// ============================================================================\n// Global Atoms (single atom for all queries, single atom for all mutations)\n// ============================================================================\n\n/**\n * Global atom storing all query results.\n * Key format: \"scopeId:queryKey\"\n */\nexport const queriesAtom = atomWithStorage<Record<string, QueryStoreEntry>>(\n 'queries-atom',\n {},\n createJSONStorage<Record<string, QueryStoreEntry>>(() => storage),{ getOnInit: true }\n)\n\n/**\n * Global atom storing all mutation results.\n * Key format: \"scopeId:mutationKey\"\n */\nexport const mutationsAtom = atom<Record<string, MutationStoreEntry>>({})\n\n// ============================================================================\n// Helper to generate composite keys\n// ============================================================================\n\nexport const getCompositeKey = (scopeId: string, key: string): string =>\n `${scopeId}:${key}`\n\n// ============================================================================\n// Derived Atoms for specific scope access\n// ============================================================================\n\n/**\n * Creates a derived atom for accessing queries of a specific scope.\n */\nexport const createScopeQueriesAtom = (scopeId: string) =>\n atom(\n (get) => {\n const allQueries = get(queriesAtom)\n const prefix = `${scopeId}:`\n const scopeQueries: Record<string, QueryStoreEntry> = {}\n\n for (const [key, value] of Object.entries(allQueries)) {\n if (key.startsWith(prefix)) {\n scopeQueries[key.slice(prefix.length)] = value\n }\n }\n\n return scopeQueries\n },\n (get, set, update: Record<string, QueryStoreEntry>) => {\n const allQueries = get(queriesAtom)\n const prefix = `${scopeId}:`\n const newQueries = { ...allQueries }\n\n // Remove old scope entries\n for (const key of Object.keys(newQueries)) {\n if (key.startsWith(prefix)) {\n delete newQueries[key]\n }\n }\n\n // Add new scope entries\n for (const [key, value] of Object.entries(update)) {\n newQueries[`${prefix}${key}`] = value\n }\n\n set(queriesAtom, newQueries)\n },\n )\n\n/**\n * Creates a derived atom for accessing mutations of a specific scope.\n */\nexport const createScopeMutationsAtom = (scopeId: string) =>\n atom(\n (get) => {\n const allMutations = get(mutationsAtom)\n const prefix = `${scopeId}:`\n const scopeMutations: Record<string, MutationStoreEntry> = {}\n\n for (const [key, value] of Object.entries(allMutations)) {\n if (key.startsWith(prefix)) {\n scopeMutations[key.slice(prefix.length)] = value\n }\n }\n\n return scopeMutations\n },\n (get, set, update: Record<string, MutationStoreEntry>) => {\n const allMutations = get(mutationsAtom)\n const prefix = `${scopeId}:`\n const newMutations = { ...allMutations }\n\n // Remove old scope entries\n for (const key of Object.keys(newMutations)) {\n if (key.startsWith(prefix)) {\n delete newMutations[key]\n }\n }\n\n // Add new scope entries\n for (const [key, value] of Object.entries(update)) {\n newMutations[`${prefix}${key}`] = value\n }\n\n set(mutationsAtom, newMutations)\n },\n )\n\n// ============================================================================\n// Selectors for single query/mutation access\n// ============================================================================\n\nexport const createQuerySelector = <Q extends QueriesArray>(\n scopeId: string,\n queryKey: string,\n) => {\n const compositeKey = getCompositeKey(scopeId, queryKey)\n return selectAtom<Record<string, QueryStoreEntry<Q>>, QueryStoreEntry<Q>>(\n queriesAtom,\n (queries) => {\n const entry = queries[compositeKey]\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return entry ?? DEFAULT_QUERY_ENTRY\n },\n (a, b) =>\n a === b ||\n (a.data === b.data &&\n a.isLoading === b.isLoading &&\n a.isFetching === b.isFetching &&\n a.error === b.error),\n )\n}\n\nexport const createMutationSelector = <Q extends QueriesArray>(\n scopeId: string,\n mutationKey: string,\n) => {\n const compositeKey = getCompositeKey(scopeId, mutationKey)\n return selectAtom<\n Record<string, MutationStoreEntry<Q>>,\n MutationStoreEntry<Q>\n >(\n mutationsAtom,\n (mutations) => {\n const entry = mutations[compositeKey]\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return entry ?? DEFAULT_MUTATION_ENTRY\n },\n (a, b) =>\n a === b ||\n (a.data === b.data && a.isPending === b.isPending && a.error === b.error),\n )\n}\n","import axios from 'axios'\nimport type { ApiRequestFnProps } from '../config'\nimport type { AxiosRequestConfig, AxiosResponse } from 'axios'\n\nconst apiClient = axios.create({\n timeout: 30000,\n headers: {\n 'Content-Type': 'application/json',\n },\n})\n\napiClient.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n throw new Error(\n error.response.data?.message ||\n error.response.data?.error ||\n `Error ${error.response.status}`,\n )\n } else if (error.request) {\n throw new Error(\n 'No response from server - request timeout or network issue',\n )\n } else {\n throw new Error('Request configuration error')\n }\n },\n)\n\nexport const apiRequest = async <TProps, TResponse, TConverter = TProps>({\n method,\n url,\n body,\n headers,\n converter,\n}: ApiRequestFnProps<TProps, TConverter>): Promise<TResponse> => {\n try {\n const isPrimitive =\n typeof body === 'string' ||\n typeof body === 'number' ||\n typeof body === 'boolean'\n\n let finalUrl = url\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let finalBody:any = body\n\n // 1. Primitive Body Handling (Append to URL)\n if (isPrimitive && body) {\n if (method !== 'POST') {\n finalUrl = `${url}/${body}`\n finalBody = undefined\n }\n }\n\n // 2. Object Body Handling (Path Param Replacement)\n if (!isPrimitive && typeof body === 'object' && body !== null) {\n // Look for :param in string\n // e.g. /users/:uid/availability\n const pathParams = finalUrl.match(/:[a-zA-Z0-9_]+/g)\n\n if (pathParams) {\n // Create shallow copy to avoid mutating original\n finalBody = { ...body }\n\n pathParams.forEach((param) => {\n if (finalBody){\n const key = param.substring(1) // remove :\n if (key in finalBody) {\n finalUrl = finalUrl.replace(param, String(finalBody[key]))\n // Optional: remove from body if it was used in path?\n // Usually yes for simple IDs, maybe not for others.\n // Let's remove to keep body clean.\n delete finalBody[key]\n }}\n })\n }\n\n // Also handle case where we append ID to end if URL ends with / and we have 'id' or 'uid' in body?\n // No, explicit :param or explicit append logic is safer.\n // But we have logic for 'updateUser' where we just set endpoint ['api', 'users'] and method PUT.\n // We expect /users/123.\n // If body is { uid: 123, ...data }, we want /users/123.\n // If no :param is found, and method is PUT/DELETE/PATCH, and body has 'id' or 'uid', should we append?\n // User asked to eliminate customRequest.\n // Let's add: \"If method is PUT/DELETE/PATCH, and no :param replacement happened, and body has (id|uid), append it.\"\n const hasId = 'id' in finalBody || 'uid' in finalBody\n if (\n (method === 'PUT' || method === 'DELETE' || method === 'PATCH') &&\n hasId &&\n !pathParams\n ) {\n const id = finalBody.id || finalBody.uid\n if (id) {\n finalUrl = `${finalUrl}/${id}`\n // We generally DON'T remove ID from body in this implicit case as it might be needed for validation\n // But for cleaner API calls we might want to.\n // Let's keep it safe: Don't remove ID here.\n }\n }\n }\n\n const data = converter && finalBody ? converter(finalBody) : finalBody\n const response: AxiosResponse<TResponse> = await apiClient({\n url: finalUrl,\n method,\n data,\n headers,\n })\n\n if (response.status >= 200 && response.status < 300) {\n return response.data\n }\n\n throw new Error(`Request failed with status ${response.status}`)\n } catch (error) {\n console.error('API Request Error:', error)\n if (error instanceof Error) {\n throw error\n }\n throw new Error('Unknown error occurred')\n }\n}\n\nexport const fetchRequest = async <TProps, TResponse>(\n url: string,\n headers?: AxiosRequestConfig['headers'],\n): Promise<TResponse> => {\n return apiRequest<TProps, TResponse>({ url, method: 'GET', headers })\n}\n","import { atomStateGenerator } from '@gaddario98/react-state'\nimport { QueryClient } from '@tanstack/react-query'\nimport { apiRequest } from './utils/request'\nimport type { ApiMethod, Endpoint } from './types'\nimport type { PersistQueryClientOptions } from '@tanstack/react-query-persist-client'\nimport type { AxiosRequestConfig } from 'axios'\n\nexport interface EncryptionConfig {\n secretKey: string\n enabled?: boolean\n // Optional custom functions to override default AES-GCM\n encryptFn?: (data: unknown, key: string) => Promise<string>\n decryptFn?: (data: string, key: string) => Promise<unknown>\n}\n// Lazy initialization to avoid side effects at module load time\n\nexport type ApiConverter<TProps, TConverter> = (props: TProps) => TConverter\nexport interface ApiRequestFnProps<TProps, TConverter = TProps> {\n url: string\n method: ApiMethod\n body?: TProps\n headers?: AxiosRequestConfig['headers']\n converter?: ApiConverter<TProps, TConverter>\n}\nexport interface ApiNotificationMessage {\n message: string\n type: 'success' | 'error' | 'info' | 'warning'\n autoHideDuration?: number\n textTransOption?: Record<string, unknown>\n ns?: string\n}\nexport interface ApiConfig {\n endpoints: Endpoint\n requestFn: <TProps, TResponse, TConverter = TProps>(\n props: ApiRequestFnProps<TProps, TConverter>,\n ) => Promise<TResponse>\n validateAuthFn?: () => boolean\n defaultHeaders?: Record<string, string>\n persistOptions?: Omit<PersistQueryClientOptions, 'queryClient'>\n queryClient: QueryClient\n websocketConfig?: {\n url: string\n onMessage?: (message: unknown) => void\n autoConnect?: boolean\n }\n encryption?: EncryptionConfig\n showNotification?: (notification: ApiNotificationMessage) => void\n}\nconst _endpoints: Endpoint = {\n custom: '',\n api: 'http://localhost:3000', // import.meta.env.VITE_API_URL ||\n}\n\nconst defaultQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: 2,\n // staleTime: 2 * 60 * 1000,\n },\n },\n})\nexport const {\n atom: apiConfigAtom,\n useValue: useApiConfigValue,\n useState: useApiConfigState,\n useReset: useApiConfigReset,\n} = atomStateGenerator<ApiConfig>({\n key: 'apiConfig',\n defaultValue: {\n endpoints: _endpoints,\n requestFn: apiRequest,\n queryClient: defaultQueryClient,\n },\n persist: false,\n})\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { useQuery } from '@tanstack/react-query'\nimport { useSetAtom } from 'jotai'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { getCompositeKey, queriesAtom } from '../atoms/queryResultAtoms'\nimport { useApiConfigValue } from '../config'\nimport type { CustomQueryOptions, QueryResult } from '../types'\n\nexport const useQueryApi = <TResponse>(\n options: CustomQueryOptions<TResponse>,\n id: string = 'default',\n): QueryResult<TResponse> => {\n const {\n endpoint,\n queryKey,\n enabled = true,\n headers,\n disableAuthControl,\n onDataChanged,\n customQueryFn,\n disableLoading,\n ...restOptions\n } = options\n\n const { requestFn, validateAuthFn, defaultHeaders,endpoints } =\n useApiConfigValue()\n\n const fullEndpoint = useMemo(() => {\n const [key, path] = endpoint\n const baseUrl = endpoints[key]\n return [baseUrl, path].filter(Boolean).join('/')\n }, [endpoint, endpoints])\n\n const isLogged = useMemo(\n () => (validateAuthFn ? validateAuthFn() : true),\n [validateAuthFn],\n )\n const queryFn = useCallback(async () => {\n if (customQueryFn) {\n const res = await customQueryFn()\n return res\n }\n\n const mergedHeaders = {\n ...defaultHeaders,\n ...headers,\n }\n\n const res = await requestFn<unknown, TResponse>({\n url: fullEndpoint,\n method: 'GET',\n headers: mergedHeaders,\n })\n return res\n }, [customQueryFn, defaultHeaders, fullEndpoint, headers, requestFn])\n\n const enabledFinal = useMemo(() => {\n if (disableAuthControl) {\n return enabled\n }\n return enabled && isLogged\n }, [disableAuthControl, enabled, isLogged])\n const result = useQuery<TResponse, Error>({\n queryKey,\n queryFn,\n enabled: enabledFinal,\n retry: 1,\n retryDelay: 1000,\n ...restOptions,\n })\n const ref = useRef({ onDataChanged, refetch: result.refetch })\n\n useEffect(() => {\n ref.current = { onDataChanged, refetch: result.refetch }\n }, [onDataChanged, result.refetch])\n\n useEffect(() => {\n ref.current.onDataChanged?.(result.data)\n }, [result.data])\n\n // Sync to Jotai atom for persistence\n const setQueriesAtom = useSetAtom(queriesAtom)\n const queryKeyStr = queryKey.join('-')\n const compositeKey = getCompositeKey(id, queryKeyStr)\n\n useEffect(() => {\n setQueriesAtom((prev) => ({\n ...prev,\n [compositeKey]: {\n data: result.data,\n isLoading: result.isLoading,\n isLoadingMapped: !disableLoading && result.isLoading,\n isFetching: result.isFetching,\n isPending: result.isPending,\n isSuccess: result.isSuccess,\n isError: result.isError,\n isStale: result.isStale,\n error: result.error,\n dataUpdatedAt: result.dataUpdatedAt,\n errorUpdatedAt: result.errorUpdatedAt,\n fetchStatus: result.fetchStatus,\n refetch: result.refetch,\n },\n }))\n }, [\n result.data,\n result.isLoading,\n result.isFetching,\n result.isPending,\n result.isSuccess,\n result.isError,\n result.isStale,\n result.error,\n result.dataUpdatedAt,\n result.errorUpdatedAt,\n result.fetchStatus,\n setQueriesAtom,\n compositeKey,\n disableLoading,\n result.refetch,\n ])\n\n return {\n data: result.data,\n isLoadingMapped: !disableLoading && result.isLoading,\n isLoading: result.isLoading,\n isFetching: result.isFetching,\n isPending: result.isPending,\n error: result.error,\n refetch: () => ref.current.refetch(),\n }\n}\n","import { useMutation } from '@tanstack/react-query'\nimport { useSetAtom } from 'jotai'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport {\n getCompositeKey,\n mutationsAtom\n} from '../atoms/queryResultAtoms'\nimport { useApiConfigValue } from '../config'\nimport type {\n MutationStoreEntry} from '../atoms/queryResultAtoms';\nimport type { MutationFunctionContext } from '@tanstack/react-query'\nimport type { CustomMutationOptions } from '../types'\n\nexport const useMutateApi = <TProps, TResponse>(\n options: CustomMutationOptions<TProps, TResponse>,\n id: string = 'default',\n) => {\n const {\n endpoint,\n method,\n headers,\n queryKeyToInvalidate,\n customRequest,\n converter,\n isTest,\n notification,\n ...restOptions\n } = useMemo(() => options, [options])\n const { requestFn, validateAuthFn, defaultHeaders, showNotification,endpoints } = useApiConfigValue()\n const { queryClient } = useApiConfigValue()\n\n const [key, path] = useMemo(() => endpoint, [endpoint])\n const baseUrl = useMemo(() => endpoints[key] ?? '', [endpoints, key])\n const fullEndpoint = useMemo(\n () => [baseUrl, path].filter(Boolean).join('/'),\n [baseUrl, path],\n )\n const executeMutation = useCallback(\n async (data: TProps) => {\n if (isTest) {\n return 'test' as unknown as TResponse\n }\n\n // Auth validation\n const isValidAuth = validateAuthFn ? validateAuthFn() : true\n\n if ( !isValidAuth) {\n throw new Error('Utente non autenticato')\n }\n\n const mergedHeaders = {\n ...defaultHeaders,\n ...headers,\n }\n\n if (customRequest) {\n return customRequest(fullEndpoint, method, data)\n }\n\n return requestFn<TProps, TResponse>({\n url: fullEndpoint,\n method,\n body: data,\n headers: mergedHeaders,\n converter,\n })\n \n },\n [converter, customRequest, defaultHeaders, fullEndpoint, headers, isTest, method, requestFn, validateAuthFn],\n )\n const onSuccess = useCallback(\n (\n data: TResponse,\n variables: TProps,\n onMutateResult: unknown,\n context: MutationFunctionContext,\n ) => {\n // Notifications\n const notificationProps =\n typeof notification?.success === 'function'\n ? notification.success(data)\n : notification?.success\n\n if (notificationProps?.message) {\n showNotification?.({\n message: notificationProps.message,\n type: notificationProps.type ?? 'success',\n ...notificationProps,\n })\n }\n restOptions.onSuccess?.(data, variables, onMutateResult, context)\n\n // Invalidate queries\n if (queryKeyToInvalidate) {\n queryKeyToInvalidate.forEach((qKey) => {\n queryClient.invalidateQueries({ queryKey: [qKey], exact: false })\n })\n }\n },\n [\n notification,\n queryClient,\n queryKeyToInvalidate,\n restOptions,\n showNotification,\n ],\n )\n const onError = useCallback(\n (\n error: Error,\n variables: TProps,\n onMutateResult: unknown,\n context: MutationFunctionContext,\n ) => {\n const notificationProps =\n typeof notification?.error === 'function'\n ? notification.error(error.message)\n : notification?.error\n\n if (notificationProps?.message || error.message) {\n showNotification?.({\n message:\n notificationProps?.message ||\n error.message ||\n 'An unexpected error occurred',\n type: notificationProps?.type ?? 'error',\n ...notificationProps,\n })\n }\n\n restOptions.onError?.(error, variables, onMutateResult, context)\n },\n [notification, restOptions, showNotification],\n )\n const ref = useRef({ executeMutation, onSuccess, onError })\n\n useEffect(() => {\n ref.current = { executeMutation, onSuccess, onError }\n }, [executeMutation, onSuccess, onError])\n\n const result = useMutation<TResponse, Error, TProps>({\n mutationFn: (data) => {\n return ref.current.executeMutation(data)\n },\n ...restOptions,\n onSuccess: (data, variables, onMutateResult, context) => {\n ref.current.onSuccess(data, variables, onMutateResult, context)\n },\n onError: (error, variables, onMutateResult, context) => {\n ref.current.onError(error, variables, onMutateResult, context)\n },\n })\n\n // Sync to Jotai atom for persistence\n const setMutationsAtom = useSetAtom(mutationsAtom)\n const mutationKey = restOptions.mutationKey?.join('-') ?? fullEndpoint\n const compositeKey = getCompositeKey(id, mutationKey)\n\n useEffect(() => {\n setMutationsAtom((prev) => ({\n ...prev,\n [compositeKey]: {\n data: result.data,\n status: result.status,\n error: result.error,\n variables: result.variables,\n submittedAt: result.submittedAt,\n isIdle: result.isIdle,\n isPending: result.isPending,\n isSuccess: result.isSuccess,\n isError: result.isError,\n } as MutationStoreEntry,\n }))\n }, [\n result.data,\n result.status,\n result.error,\n result.variables,\n result.submittedAt,\n result.isIdle,\n result.isPending,\n result.isSuccess,\n result.isError,\n setMutationsAtom,\n compositeKey,\n ])\n\n return result\n}\n","import { useQueries } from '@tanstack/react-query'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useApiConfigValue } from '../config'\nimport type { MultipleQueryResponse, QueriesArray, QueryProps } from '../types'\nimport type { UseQueryResult } from '@tanstack/react-query'\n\nexport const useMultipleQuery = <Q extends QueriesArray>(\n settings: Array<QueryProps<Q[number]['key'], Q[number]['response']>> = [],\n) => {\n const { requestFn, validateAuthFn, defaultHeaders, queryClient, endpoints } =\n useApiConfigValue()\n\n const generateEndpoint = useCallback(\n (endpoint: [string, string] | [string]) => {\n const [key, path] = endpoint\n const baseUrl = endpoints[key]\n return [baseUrl, path].filter(Boolean).join('/')\n },\n [endpoints],\n )\n const isLogged = useMemo(\n () => (validateAuthFn ? validateAuthFn() : true),\n [validateAuthFn],\n )\n\n const generateQueryFn = useCallback(\n async ({\n endpoint,\n customQueryFn,\n headers,\n }: QueryProps<Q[number]['key'], Q[number]['response']>) => {\n const fullEndpoint = generateEndpoint(endpoint)\n\n if (customQueryFn) {\n const res = await customQueryFn()\n return res\n }\n\n const mergedHeaders = {\n ...defaultHeaders,\n ...headers,\n }\n\n return await requestFn({\n url: fullEndpoint,\n method: 'GET',\n headers: mergedHeaders,\n })\n },\n [defaultHeaders, generateEndpoint, requestFn],\n )\n\n const ref = useRef({\n settings,\n data: {} as Record<Q[number]['key'], Q[number]['response']>,\n results: {} as Record<\n string,\n MultipleQueryResponse<Q>[keyof MultipleQueryResponse<Q>]\n >,\n })\n\n useEffect(() => {\n ref.current.settings = settings\n }, [settings])\n\n const queries = useMemo(() => {\n return settings.map((setting) => {\n const { queryKey, enabled = true, disableAuthControl, ...rest } = setting\n\n return {\n queryKey,\n queryFn: () => generateQueryFn(setting),\n enabled: !!enabled && (disableAuthControl || !!isLogged),\n ...rest,\n }\n })\n }, [settings, isLogged, generateQueryFn])\n\n const combine = useCallback(\n (results: Array<UseQueryResult<Q[number]['response'], Error>>) => {\n return results.reduce<MultipleQueryResponse<Q>>((prev, result, index) => {\n const setting = ref.current.settings[index]\n\n const keyToMap = setting.keyToMap\n Object.assign(prev, {\n [keyToMap]: {\n data: result.data as Q[number]['response'],\n isLoadingMapped: !setting.disableLoading && result.isLoading,\n isLoading: result.isLoading,\n isFetching: result.isFetching,\n isPending: result.isPending,\n error: result.error,\n refetch: result.refetch,\n },\n })\n\n return prev\n }, {} as MultipleQueryResponse<Q>)\n },\n [],\n )\n\n const result = useQueries(\n {\n queries,\n combine,\n },\n queryClient,\n )\n\n useEffect(() => {\n ref.current.settings.forEach((setting) => {\n const { keyToMap, onDataChanged, onStateChange } = setting\n if (!onDataChanged && !onStateChange) return\n\n const currentResult = result[keyToMap]\n const prevResult = ref.current.results[keyToMap]\n\n // Handle onStateChange\n if (onStateChange) {\n if (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n !prevResult ||\n prevResult.data !== currentResult.data ||\n prevResult.isLoading !== currentResult.isLoading ||\n prevResult.isLoadingMapped !== currentResult.isLoadingMapped ||\n prevResult.isFetching !== currentResult.isFetching ||\n prevResult.isPending !== currentResult.isPending ||\n prevResult.error !== currentResult.error\n ) {\n ref.current.results[keyToMap] = currentResult\n onStateChange(currentResult)\n }\n }\n\n // Handle onDataChanged (Legacy support + specific data changes)\n if (onDataChanged) {\n const currentData = currentResult.data\n const prevData = ref.current.data[keyToMap]\n\n if (currentData !== undefined && currentData !== prevData) {\n ref.current.data[keyToMap] = currentData\n onDataChanged(currentData)\n }\n }\n })\n }, [result])\n\n return result\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback, useEffect, useMemo, useReducer, useRef } from \"react\";\nimport { useApiConfigValue } from \"../config\";\nimport { DEFAULT_MUTATION_ENTRY } from \".\";\nimport type {\n AllMutation,\n MutationActionInternal,\n MutationConfig,\n MutationItem,\n MutationStateInternal,\n QueriesArray,\n} from \"../types\";\n\nconst defaultState: MutationStateInternal = DEFAULT_MUTATION_ENTRY;\n\ntype MutationStates = Record<string, MutationStateInternal>;\n\nconst mutationReducer = (\n state: MutationStates,\n action: MutationActionInternal,\n): MutationStates => {\n switch (action.type) {\n case \"RESET\":\n return {\n ...state,\n [action.key]: { ...defaultState },\n };\n case \"PENDING\":\n return {\n ...state,\n [action.key]: {\n status: \"pending\",\n data: undefined,\n error: null,\n submittedAt: action.submittedAt,\n variables: action.variables,\n },\n };\n case \"SUCCESS\":\n return {\n ...state,\n [action.key]: {\n ...state[action.key],\n status: \"success\",\n data: action.data,\n error: null,\n },\n };\n case \"ERROR\":\n return {\n ...state,\n [action.key]: {\n ...state[action.key],\n status: \"error\",\n error: action.error,\n },\n };\n default:\n return state;\n }\n};\n\nconst initMutationStates = <Q extends QueriesArray>(\n configs: Array<MutationItem<Q>>,\n): MutationStates => {\n const states: MutationStates = {};\n configs.forEach((config) => {\n states[config.key] = { ...defaultState };\n });\n return states;\n};\n\nexport const useMultipleMutation = <Q extends QueriesArray>(\n configs: Array<MutationItem<Q>>,\n): AllMutation<Q> => {\n const {\n requestFn,\n validateAuthFn,\n defaultHeaders,\n queryClient,\n showNotification,\n endpoints,\n } = useApiConfigValue();\n\n const [reducerStates, dispatchReducer] = useReducer(\n mutationReducer,\n configs,\n initMutationStates,\n );\n\n // Accessor for current state\n const getState = useCallback(\n (key: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return reducerStates[key] || defaultState;\n },\n [reducerStates],\n );\n\n // Dispatcher that handles both modes\n const dispatch = useCallback((action: MutationActionInternal) => {\n dispatchReducer(action);\n }, []);\n\n const executeMutation = useCallback(\n async <TProps, TResponse>(\n key: string,\n config: MutationConfig<TProps, TResponse>,\n data: TProps,\n mutationOptions?: {\n onSuccess?: (\n data: TResponse,\n variables: TProps,\n onMutateResult: unknown,\n context: unknown,\n ) => void;\n onError?: (\n error: Error,\n variables: TProps,\n onMutateResult: unknown,\n context: unknown,\n ) => void;\n onSettled?: (\n data: TResponse | undefined,\n error: Error | null,\n variables: TProps,\n onMutateResult: unknown,\n context: unknown,\n ) => void;\n },\n ): Promise<TResponse> => {\n const {\n endpoint,\n method,\n headers,\n queryKeyToInvalidate,\n customRequest,\n converter,\n isTest,\n notification,\n mutateOptions,\n } = config;\n\n dispatch({\n type: \"PENDING\",\n key,\n submittedAt: Date.now(),\n variables: data,\n });\n\n let context: unknown;\n\n try {\n // Auth validation\n const isValidAuth = validateAuthFn ? validateAuthFn() : true;\n\n if (!isValidAuth) {\n throw new Error(\"Utente non autenticato\");\n }\n\n // Build endpoint\n const [endpointKey, path] = endpoint;\n const baseUrl = endpoints[endpointKey] ?? \"\";\n const fullEndpoint = [baseUrl, path].filter(Boolean).join(\"/\");\n\n // Merge headers\n const mergedHeaders = {\n ...defaultHeaders,\n ...headers,\n };\n\n // Execute request\n let result: TResponse;\n\n if (isTest) {\n result = \"test\" as unknown as TResponse;\n } else if (customRequest) {\n result = await customRequest(fullEndpoint, method, data);\n } else {\n result = await requestFn({\n url: fullEndpoint,\n method,\n body: data,\n headers: mergedHeaders,\n converter,\n });\n }\n\n dispatch({ type: \"SUCCESS\", key, data: result });\n\n // Invalidate queries\n if (queryKeyToInvalidate) {\n queryKeyToInvalidate.forEach((qKey) => {\n queryClient.invalidateQueries({ queryKey: [qKey], exact: false });\n });\n }\n\n // Success notification\n const notificationProps =\n typeof notification?.success === \"function\"\n ? notification.success(result)\n : notification?.success;\n\n if (notificationProps?.message) {\n showNotification?.({\n message: notificationProps.message,\n type: notificationProps.type ?? \"success\",\n ...notificationProps,\n });\n }\n\n // Callbacks\n // @ts-expect-error - MutateOptions callback signature varies by TanStack Query version\n mutateOptions?.onSuccess?.(result, data, context);\n mutationOptions?.onSuccess?.(result, data, undefined, context);\n\n return result;\n } catch (error) {\n const err = error instanceof Error ? error : new Error(\"Unknown error\");\n dispatch({ type: \"ERROR\", key, error: err });\n\n // Error notification\n const notificationProps =\n typeof notification?.error === \"function\"\n ? notification.error(err.message)\n : notification?.error;\n\n if (notificationProps?.message || err.message) {\n showNotification?.({\n message:\n notificationProps?.message ||\n err.message ||\n \"An unexpected error occurred\",\n type: notificationProps?.type ?? \"error\",\n ...notificationProps,\n });\n }\n\n // Callbacks\n // @ts-expect-error - MutateOptions callback signature varies by TanStack Query version\n mutateOptions?.onError?.(err, data, context);\n mutationOptions?.onError?.(err, data, undefined, context);\n\n throw err;\n }\n },\n [\n queryClient,\n validateAuthFn,\n defaultHeaders,\n endpoints,\n requestFn,\n showNotification,\n dispatch, // dispatch is now stable/wrapped\n ],\n );\n\n const ref = useRef({ dispatch, executeMutation });\n\n useEffect(() => {\n ref.current = { dispatch, executeMutation };\n }, [dispatch, executeMutation]);\n\n const allMutation = useMemo(() => {\n const result = {} as AllMutation<Q>;\n\n configs.forEach((item) => {\n // In silent mode, this is just the INITIAL state (or whatever triggered last render).\n // The real data comes from Proxy if used.\n const state = getState(item.key);\n const mutationConfig = item.mutationConfig;\n\n const mutationKey = item.key as keyof AllMutation<Q>;\n\n type CurrentMutation = Extract<\n Q[number],\n { key: typeof item.key; type: \"mutation\" }\n >;\n type MutationData = CurrentMutation[\"response\"];\n type MutationVariables = CurrentMutation[\"props\"];\n\n result[mutationKey] = {\n // State\n data: state.data as MutationData,\n error: state.error as Error,\n isIdle: state.status === \"idle\",\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n status: state.status,\n variables: state.variables as MutationVariables,\n submittedAt: state.submittedAt ?? 0,\n endpoint: mutationConfig.endpoint,\n\n // Methods\n mutate: (\n data: MutationVariables,\n mutationOptions?: {\n onSuccess?: (\n data: MutationData,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n onError?: (\n error: Error,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n onSettled?: (\n data: MutationData | undefined,\n error: Error | null,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n },\n ) => {\n ref.current.executeMutation(\n item.key,\n mutationConfig,\n data,\n mutationOptions,\n );\n },\n mutateAsync: (\n data: MutationVariables,\n mutationOptions?: {\n onSuccess?: (\n data: MutationData,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n onError?: (\n error: Error,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n onSettled?: (\n data: MutationData | undefined,\n error: Error | null,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n },\n ) => {\n return ref.current.executeMutation(\n item.key,\n mutationConfig,\n data,\n mutationOptions,\n );\n },\n reset: () => ref.current.dispatch({ type: \"RESET\", key: item.key }),\n\n // Compatibility fields\n failureCount: 0,\n failureReason: null,\n context: undefined,\n isPaused: false,\n } as AllMutation<Q>[keyof AllMutation<Q>];\n item.mutationConfig.onStateChange?.(result[mutationKey]);\n });\n\n return result;\n }, [getState, configs]);\n\n return allMutation;\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useApiConfigValue } from '../config'\nimport type { MultipleWebSocketResponse, WebSocketDefinition } from '../types'\n\nexport const useMultipleWebSocket = <K extends string>(\n configs: Array<WebSocketDefinition<K>> = [],\n): MultipleWebSocketResponse<K> => {\n const { websocketConfig } = useApiConfigValue()\n const { queryClient } = useApiConfigValue()\n\n const socketsRef = useRef<Map<string, WebSocket>>(new Map())\n const [statuses, setStatuses] = useState<\n Map<string, 'connecting' | 'open' | 'closed'>\n >(new Map())\n const [lastMessages, setLastMessages] = useState<Map<string, unknown>>(\n new Map(),\n )\n\n // Stabilize configs reference\n const stableConfigs = useMemo(() => configs, [configs])\n\n useEffect(() => {\n const sockets = socketsRef.current\n\n stableConfigs.forEach((config) => {\n const url = config.endpoint || websocketConfig?.url\n const shouldConnect =\n config.autoConnect !== false &&\n (websocketConfig?.autoConnect || config.endpoint)\n\n if (!url || !shouldConnect) return\n\n // Skip if already connected\n if (sockets.has(config.key)) return\n\n setStatuses((prev) => new Map(prev).set(config.key, 'connecting'))\n\n const ws = new WebSocket(url)\n sockets.set(config.key, ws)\n\n ws.onopen = () => {\n setStatuses((prev) => new Map(prev).set(config.key, 'open'))\n console.log(`WebSocket [${config.key}] connected`)\n }\n\n ws.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data)\n setLastMessages((prev) => new Map(prev).set(config.key, data))\n\n // Global handler\n websocketConfig?.onMessage?.(data)\n\n // Local handler\n config.onMessage?.(data)\n\n // Auto invalidation\n if (\n config.invalidateQueriesOnMessage &&\n Array.isArray(config.invalidateQueriesOnMessage)\n ) {\n config.invalidateQueriesOnMessage.forEach((key) => {\n queryClient.invalidateQueries({ queryKey: [key], exact: false })\n })\n }\n } catch (e) {\n console.error(`WebSocket [${config.key}] message parse error`, e)\n }\n }\n\n ws.onclose = () => {\n setStatuses((prev) => new Map(prev).set(config.key, 'closed'))\n console.log(`WebSocket [${config.key}] disconnected`)\n sockets.delete(config.key)\n }\n })\n\n return () => {\n sockets.forEach((ws, key) => {\n ws.close()\n sockets.delete(key)\n })\n }\n }, [stableConfigs, websocketConfig, queryClient])\n\n const createSendMessage = useCallback(\n (key: string) => (message: unknown) => {\n const ws = socketsRef.current.get(key)\n if (ws?.readyState === WebSocket.OPEN) {\n ws.send(JSON.stringify(message))\n } else {\n console.warn(`WebSocket [${key}] is not open`)\n }\n },\n [],\n )\n\n const result = useMemo(() => {\n const mapped = {} as MultipleWebSocketResponse<K>\n\n stableConfigs.forEach((config) => {\n mapped[config.key] = {\n lastMessage: lastMessages.get(config.key) ?? null,\n sendMessage: createSendMessage(config.key),\n status: statuses.get(config.key) ?? 'closed',\n }\n })\n\n return mapped\n }, [stableConfigs, lastMessages, statuses, createSendMessage])\n\n return result\n}\n","import { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useSetAtom } from 'jotai'\nimport {\n getCompositeKey,\n mutationsAtom,\n queriesAtom,\n} from '../atoms/queryResultAtoms'\nimport { useMultipleMutation } from './useMultipleMutation'\nimport { useMultipleQuery } from './useMultipleQuery'\nimport { useMultipleWebSocket } from './useMultipleWebSocket'\nimport type {\n MutationStoreEntry,\n QueryStoreEntry,\n} from '../atoms/queryResultAtoms'\nimport type {\n ContextValue,\n ExtractWebSocket,\n MultipleQueryResponse,\n MutationItem,\n QueriesArray,\n QueryConfigArray,\n QueryItem,\n QueryProps,\n} from '../types'\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface UseApiOptions {\n /**\n * Unique identifier for this scope. Used as the key prefix for Jotai atoms.\n * @default 'default'\n */\n scopeId?: string\n /**\n * Whether to persist query/mutation results to Jotai atoms.\n * @default true\n */\n persistToAtoms?: boolean\n}\n\n// ============================================================================\n// Main Hook\n// ============================================================================\n\n/**\n * Main hook that integrates TanStack Query with Jotai for state persistence.\n */\nexport function useApi<Q extends QueriesArray>(\n configs: QueryConfigArray<Q>,\n options?: UseApiOptions,\n): ContextValue<Q>\n\n/**\n * @deprecated Use options object instead: useApi(configs, { scopeId: 'my-scope' })\n */\nexport function useApi<Q extends QueriesArray>(\n configs: QueryConfigArray<Q>,\n id?: string,\n): ContextValue<Q>\n\nexport function useApi<Q extends QueriesArray>(\n configs: QueryConfigArray<Q>,\n optionsOrId?: UseApiOptions | string,\n): ContextValue<Q> {\n const options: UseApiOptions =\n typeof optionsOrId === 'string'\n ? { scopeId: optionsOrId }\n : (optionsOrId ?? {})\n\n const { scopeId = 'default', persistToAtoms = true } = options\n\n // Global atom setters\n const setQueriesAtom = useSetAtom(queriesAtom)\n const setMutationsAtom = useSetAtom(mutationsAtom)\n\n // Update a single query in the global atom\n const updateQueryAtom = useCallback(\n (key: string, state: QueryStoreEntry) => {\n const compositeKey = getCompositeKey(scopeId, key)\n setQueriesAtom((prev) => ({\n ...prev,\n [compositeKey]: state,\n }))\n },\n [setQueriesAtom, scopeId],\n )\n\n // Update a single mutation in the global atom\n const updateMutationAtom = useCallback(\n (key: string, state: MutationStoreEntry) => {\n const compositeKey = getCompositeKey(scopeId, key)\n setMutationsAtom((prev) => ({\n ...prev,\n [compositeKey]: state,\n }))\n },\n [setMutationsAtom, scopeId],\n )\n\n // Enhanced query configs with atom persistence\n const enhancedQueryConfigs = useMemo(() => {\n const items = configs.filter((q): q is QueryItem<Q> => q.type === 'query')\n\n return items\n .map((item) => {\n if (!item.queryConfig) return null\n\n const key = item.key\n const originalOnStateChange = item.queryConfig.onStateChange\n\n return {\n ...item.queryConfig,\n keyToMap: key,\n onStateChange: (state: MultipleQueryResponse<Q>[string]): void => {\n if (persistToAtoms) {\n updateQueryAtom(key, state)\n }\n originalOnStateChange?.(state)\n },\n options: item.queryConfig.options,\n }\n })\n .filter(Boolean) as unknown as Array<\n QueryProps<Q[number]['key'], Q[number]['response']>\n >\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(configs),\n persistToAtoms,\n updateQueryAtom,\n ])\n\n // Enhanced mutation configs with atom persistence\n const enhancedMutationItems = useMemo(() => {\n const items = configs.filter(\n (q): q is MutationItem<Q> => q.type === 'mutation' && !!q.mutationConfig,\n )\n\n return items.map((item) => {\n const key = item.key\n const originalOnStateChange = item.mutationConfig.onStateChange\n\n return {\n ...item,\n mutationConfig: {\n ...item.mutationConfig,\n onStateChange: (state: MutationStoreEntry): void => {\n if (persistToAtoms) {\n updateMutationAtom(key, state)\n }\n originalOnStateChange?.(state)\n },\n },\n }\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(configs), persistToAtoms, updateMutationAtom])\n\n const webSocketItems = useMemo(\n () =>\n configs.filter((q): q is ExtractWebSocket<Q> => q.type === 'websocket'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(configs)],\n )\n\n // Execute hooks\n const allQuery = useMultipleQuery<Q>(enhancedQueryConfigs)\n const allMutation = useMultipleMutation<Q>(enhancedMutationItems)\n const allWebSocket = useMultipleWebSocket<Q[number]['key']>(webSocketItems)\n\n const queryKeys = enhancedQueryConfigs.map((el) => el.keyToMap)\n const mutationKeys = enhancedMutationItems.map((el) => el.key)\n\n const ref = useRef({ allQuery, allMutation, queryKeys, mutationKeys })\n useEffect(() => {\n ref.current = { allQuery, allMutation, queryKeys, mutationKeys }\n }, [allQuery, allMutation, queryKeys, mutationKeys])\n\n const refreshQueries = useCallback(() => {\n ref.current.queryKeys.forEach((k) => {\n ref.current.allQuery[k].refetch()\n })\n }, [])\n\n return {\n allQuery,\n allMutation,\n allWebSocket,\n refreshQueries,\n }\n}\n\nexport default useApi\n","import { useCallback, useEffect, useRef, useState } from 'react'\nimport { useApiConfigValue } from '../config'\nimport type { WebSocketResult } from '../types'\n\nexport const useWebSocket = (\n endpoint?: string, // specific socket endpoint if different from default\n options?: {\n onMessage?: (data: unknown) => void\n invalidateQueriesOnMessage?: Array<string>\n },\n): WebSocketResult => {\n const { websocketConfig } = useApiConfigValue()\n const { queryClient } = useApiConfigValue()\n const socketRef = useRef<WebSocket | null>(null)\n const [status, setStatus] = useState<'connecting' | 'open' | 'closed'>(\n 'closed',\n )\n const [lastMessage, setLastMessage] = useState<unknown>(null)\n\n const url = endpoint || websocketConfig?.url\n\n useEffect(() => {\n if (!url || (!websocketConfig?.autoConnect && !endpoint)) return\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setStatus('connecting')\n const ws = new WebSocket(url)\n socketRef.current = ws\n\n ws.onopen = () => {\n setStatus('open')\n console.log('WebSocket connected')\n }\n\n ws.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data)\n setLastMessage(data)\n\n // Global handler\n websocketConfig?.onMessage?.(data)\n\n // Local handler\n options?.onMessage?.(data)\n\n // Auto invalidation\n if (\n options?.invalidateQueriesOnMessage &&\n Array.isArray(options.invalidateQueriesOnMessage)\n ) {\n options.invalidateQueriesOnMessage.forEach((key) => {\n // Simple invalidation if message matches or triggers generic invalidation\n queryClient.invalidateQueries({ queryKey: [key], exact: false })\n })\n }\n } catch (e) {\n console.error('WebSocket message parse error', e)\n }\n }\n\n ws.onclose = () => {\n setStatus('closed')\n console.log('WebSocket disconnected')\n }\n\n return () => {\n ws.close()\n socketRef.current = null\n }\n }, [url, websocketConfig, queryClient, options, endpoint])\n\n const sendMessage = useCallback((message: unknown) => {\n if (socketRef.current?.readyState === WebSocket.OPEN) {\n socketRef.current.send(JSON.stringify(message))\n } else {\n console.warn('WebSocket is not open')\n }\n }, [])\n\n return {\n lastMessage,\n sendMessage,\n status,\n }\n}\n","import { useCallback } from 'react'\nimport { useApiConfigValue } from '../config'\n\nexport const useInvalidateQueries = () => {\n const { queryClient } = useApiConfigValue()\n const invalidateQueries = useCallback(\n async (queryKeys: Array<Array<string>>) => {\n await Promise.all(\n queryKeys.map(async (queryKey) => {\n await queryClient.invalidateQueries<Array<string>>({ queryKey, exact: false })\n \n }),\n )\n },\n [queryClient],\n )\n\n return { invalidateQueries }\n}\n","import { useMemo } from \"react\";\nimport { useAtomValue } from \"jotai\";\nimport {\n DEFAULT_MUTATION_ENTRY,\n DEFAULT_QUERY_ENTRY,\n mutationsAtom,\n queriesAtom,\n} from \"../atoms\";\nimport type { MutationStoreEntry, QueryStoreEntry } from \"../atoms\";\nimport type { QueriesArray } from \"../types\";\n\n// ============================================================================\n// Bulk Query/Mutation Hooks\n// ============================================================================\n\n/**\n * Hook to read all queries for a scope.\n */\nexport function useJotaiQueries<Q extends QueriesArray>(options: {\n scopeId: string;\n}) {\n const { scopeId } = options;\n const allQueries = useAtomValue(queriesAtom) as Record<\n string,\n QueryStoreEntry<Q>\n >;\n\n return useMemo(() => {\n const prefix = `${scopeId}:`;\n const scopeQueries: Record<string, QueryStoreEntry<Q>> = {};\n\n for (const [key, value] of Object.entries(allQueries)) {\n if (key.startsWith(prefix)) {\n scopeQueries[key.slice(prefix.length)] = value;\n }\n }\n\n return scopeQueries;\n }, [allQueries, scopeId]);\n}\n\n/**\n * Hook to read all mutations for a scope.\n */\nexport function useJotaiMutations<Q extends QueriesArray>(options: {\n scopeId: string;\n}) {\n const { scopeId } = options;\n const allMutations =\n useAtomValue<Record<string, MutationStoreEntry<Q>>>(mutationsAtom);\n\n return useMemo(() => {\n const prefix = `${scopeId}:`;\n const scopeMutations: Record<string, MutationStoreEntry<Q>> = {};\n for (const [key, value] of Object.entries(allMutations)) {\n if (key.startsWith(prefix)) {\n scopeMutations[key.slice(prefix.length)] = value;\n }\n }\n\n return scopeMutations;\n }, [allMutations, scopeId]);\n}\n\n// ============================================================================\n// Utility Exports\n// ============================================================================\n\nexport { DEFAULT_QUERY_ENTRY, DEFAULT_MUTATION_ENTRY };\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport equal from \"fast-deep-equal\";\nimport {\n DEFAULT_MUTATION_ENTRY,\n DEFAULT_QUERY_ENTRY,\n useJotaiMutations,\n useJotaiQueries,\n} from \".\";\nimport type { GetApiValuesFunction, QueriesArray } from \"../types\";\n\nconst getValueAtPath = (\n obj: unknown,\n path: string,\n defaultObj?: unknown,\n): unknown => {\n if (!path) return undefined;\n const normalized = path.replace(/\\[(\\d+)\\]/g, \".$1\");\n const parts = normalized.split(\".\").filter(Boolean);\n let current: unknown = obj;\n\n for (let index = 0; index < parts.length; index++) {\n const part = parts[index];\n if (current == null) return undefined;\n if (typeof current !== \"object\") return undefined;\n\n const record = current as Record<string, unknown>;\n\n // Only apply the default entry when the *root* key is missing (e.g. queryKey not found).\n // For deeper missing paths, return undefined so callers can use the provided defaultValue.\n if (!(part in record)) {\n if (index === 0 && defaultObj !== undefined) {\n current = defaultObj;\n continue;\n }\n return undefined;\n }\n\n current = record[part];\n }\n\n return current;\n};\n\ninterface UseApiValuesProps {\n scopeId: string;\n}\n\nexport const useApiValues = <Q extends QueriesArray>({\n scopeId,\n}: UseApiValuesProps) => {\n const allQuery = useJotaiQueries<Q>({ scopeId });\n const allMutation = useJotaiMutations<Q>({ scopeId });\n const subscriptions = useRef(new Map<string, unknown>());\n const [trigger, setTrigger] = useState(0);\n\n const dataRef = useRef({\n query: allQuery,\n mutation: allMutation,\n });\n\n // Sync dataRef with latest values\n useEffect(() => {\n let internalTrigger = false;\n const currentQuery = dataRef.current.query;\n subscriptions.current.forEach((_, key) => {\n const [type, keyPath] = key.split(\":\");\n if (type === \"query\") {\n const newValue = getValueAtPath(allQuery, keyPath);\n const oldValue = getValueAtPath(currentQuery, keyPath);\n // console.log(key, !equal(newValue, oldValue), newValue, oldValue)\n if (!equal(newValue, oldValue)) {\n internalTrigger = true;\n }\n }\n if (type === \"mutation\") {\n const newValue = getValueAtPath(allMutation, keyPath);\n const oldValue = getValueAtPath(dataRef.current.mutation, keyPath);\n if (!equal(newValue, oldValue)) {\n internalTrigger = true;\n }\n }\n });\n dataRef.current = {\n query: allQuery,\n mutation: allMutation,\n };\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (internalTrigger) {\n setTrigger((v) => v + 1);\n }\n }, [allQuery, allMutation]);\n\n // get che legge dallo store e registra le dipendenze\n const get = useCallback(\n (\n type: Parameters<GetApiValuesFunction<Q>>[0],\n key: Parameters<GetApiValuesFunction<Q>>[1],\n defaultValue?: Parameters<GetApiValuesFunction<Q>>[2],\n ) => {\n const keyMap = `${type}:${key}`;\n const defaultQueries =\n type === \"query\"\n ? DEFAULT_QUERY_ENTRY\n : // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n type === \"mutation\"\n ? DEFAULT_MUTATION_ENTRY\n : undefined;\n\n const value =\n getValueAtPath(dataRef.current[type], String(key), defaultQueries) ??\n defaultValue;\n subscriptions.current.set(keyMap, value);\n return subscriptions.current.get(keyMap);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [trigger],\n ) as GetApiValuesFunction<Q>;\n\n return { get };\n};\n","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/hydration.ts\nimport { tryResolveSync } from \"./thenable.js\";\nimport { noop } from \"./utils.js\";\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData, shouldRedactErrors) {\n const dehydratePromise = () => {\n const promise = query.promise?.then(serializeData).catch((error) => {\n if (!shouldRedactErrors(error)) {\n return Promise.reject(error);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n });\n promise?.catch(noop);\n return promise;\n };\n return {\n dehydratedAt: Date.now(),\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: dehydratePromise()\n },\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction defaultShouldRedactErrors(_) {\n return true;\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const shouldRedactErrors = options.shouldRedactErrors ?? client.getDefaultOptions().dehydrate?.shouldRedactErrors ?? defaultShouldRedactErrors;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData, shouldRedactErrors)] : []\n );\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(\n ({ queryKey, state, queryHash, meta, promise, dehydratedAt }) => {\n const syncData = promise ? tryResolveSync(promise) : void 0;\n const rawData = state.data === void 0 ? syncData?.data : state.data;\n const data = rawData === void 0 ? rawData : deserializeData(rawData);\n let query = queryCache.get(queryHash);\n const existingQueryIsPending = query?.state.status === \"pending\";\n const existingQueryIsFetching = query?.state.fetchStatus === \"fetching\";\n if (query) {\n const hasNewerSyncData = syncData && // We only need this undefined check to handle older dehydration\n // payloads that might not have dehydratedAt\n dehydratedAt !== void 0 && dehydratedAt > query.state.dataUpdatedAt;\n if (state.dataUpdatedAt > query.state.dataUpdatedAt || hasNewerSyncData) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: \"idle\",\n status: data !== void 0 ? \"success\" : state.status\n }\n );\n }\n if (promise && !existingQueryIsPending && !existingQueryIsFetching && // Only hydrate if dehydration is newer than any existing data,\n // this is always true for new queries\n (dehydratedAt === void 0 || dehydratedAt > query.state.dataUpdatedAt)) {\n query.fetch(void 0, {\n // RSC transformed promises are not thenable\n initialPromise: Promise.resolve(promise).then(deserializeData)\n }).catch(noop);\n }\n }\n );\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","// src/persist.ts\nimport { dehydrate, hydrate } from \"@tanstack/query-core\";\nvar cacheEventTypes = [\"added\", \"removed\", \"updated\"];\nfunction isCacheEventType(eventType) {\n return cacheEventTypes.includes(eventType);\n}\nasync function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1e3 * 60 * 60 * 24,\n buster = \"\",\n hydrateOptions\n}) {\n try {\n const persistedClient = await persister.restoreClient();\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge;\n const busted = persistedClient.buster !== buster;\n if (expired || busted) {\n return persister.removeClient();\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions);\n }\n } else {\n return persister.removeClient();\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(err);\n console.warn(\n \"Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.\"\n );\n }\n await persister.removeClient();\n throw err;\n }\n}\nasync function persistQueryClientSave({\n queryClient,\n persister,\n buster = \"\",\n dehydrateOptions\n}) {\n const persistClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions)\n };\n await persister.persistClient(persistClient);\n}\nfunction persistQueryClientSubscribe(props) {\n const unsubscribeQueryCache = props.queryClient.getQueryCache().subscribe((event) => {\n if (isCacheEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n const unsubscribeMutationCache = props.queryClient.getMutationCache().subscribe((event) => {\n if (isCacheEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n return () => {\n unsubscribeQueryCache();\n unsubscribeMutationCache();\n };\n}\nfunction persistQueryClient(props) {\n let hasUnsubscribed = false;\n let persistQueryClientUnsubscribe;\n const unsubscribe = () => {\n hasUnsubscribed = true;\n persistQueryClientUnsubscribe?.();\n };\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props);\n }\n });\n return [unsubscribe, restorePromise];\n}\nexport {\n persistQueryClient,\n persistQueryClientRestore,\n persistQueryClientSave,\n persistQueryClientSubscribe\n};\n//# sourceMappingURL=persist.js.map","\"use client\";\n\n// src/PersistQueryClientProvider.tsx\nimport * as React from \"react\";\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe\n} from \"@tanstack/query-persist-client-core\";\nimport { IsRestoringProvider, QueryClientProvider } from \"@tanstack/react-query\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}) => {\n const [isRestoring, setIsRestoring] = React.useState(true);\n const refs = React.useRef({ persistOptions, onSuccess, onError });\n const didRestore = React.useRef(false);\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess, onError };\n });\n React.useEffect(() => {\n const options = {\n ...refs.current.persistOptions,\n queryClient: props.client\n };\n if (!didRestore.current) {\n didRestore.current = true;\n persistQueryClientRestore(options).then(() => refs.current.onSuccess?.()).catch(() => refs.current.onError?.()).finally(() => {\n setIsRestoring(false);\n });\n }\n return isRestoring ? void 0 : persistQueryClientSubscribe(options);\n }, [props.client, isRestoring]);\n return /* @__PURE__ */ jsx(QueryClientProvider, { ...props, children: /* @__PURE__ */ jsx(IsRestoringProvider, { value: isRestoring, children }) });\n};\nexport {\n PersistQueryClientProvider\n};\n//# sourceMappingURL=PersistQueryClientProvider.js.map","import { QueryClientProvider } from \"@tanstack/react-query\";\nimport { PersistQueryClientProvider } from \"@tanstack/react-query-persist-client\";\nimport { useApiConfigValue } from \"../config\";\nimport type { PropsWithChildren } from \"react\";\n\nexport const QueriesProvider: React.FC<PropsWithChildren> = ({ children }) => {\n const { queryClient, persistOptions } = useApiConfigValue();\n\n if (persistOptions?.persister) {\n return (\n <PersistQueryClientProvider\n client={queryClient}\n persistOptions={persistOptions}\n >\n {children}\n </PersistQueryClientProvider>\n );\n }\n\n return (\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n );\n};\n","export const algorithm = {\n name: 'AES-GCM',\n length: 256,\n}\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport const str2ab = (str: string): ArrayBuffer => {\n return encoder.encode(str).buffer\n}\n\nexport const ab2str = (buf: ArrayBuffer): string => {\n return decoder.decode(buf)\n}\n\nexport const importKey = async (secretKey: string): Promise<CryptoKey> => {\n const keyData = encoder.encode(secretKey)\n const keyHash = await window.crypto.subtle.digest('SHA-256', keyData)\n\n return window.crypto.subtle.importKey('raw', keyHash, algorithm, false, [\n 'encrypt',\n 'decrypt',\n ])\n}\n\nexport const encryptData = async (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any,\n secretKey: string,\n): Promise<string> => {\n try {\n const key = await importKey(secretKey)\n const iv = window.crypto.getRandomValues(new Uint8Array(12))\n const encodedData = new TextEncoder().encode(JSON.stringify(data))\n\n const encryptedContent = await window.crypto.subtle.encrypt(\n {\n name: algorithm.name,\n iv: iv,\n },\n key,\n encodedData,\n )\n\n // Combine IV and encrypted data, then encode to base64 for transport\n const encryptedArray = new Uint8Array(\n iv.byteLength + encryptedContent.byteLength,\n )\n encryptedArray.set(iv, 0)\n encryptedArray.set(new Uint8Array(encryptedContent), iv.byteLength)\n\n // Convert to base64 string\n // Using a binary string conversion to ensure btoa works correctly\n let binary = ''\n const bytes = encryptedArray\n const len = bytes.byteLength\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i])\n }\n return window.btoa(binary)\n } catch (error) {\n console.error('Encryption failed:', error)\n throw new Error('Encryption failed')\n }\n}\n\nexport const decryptData = async (\n encryptedData: string,\n secretKey: string,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n): Promise<any> => {\n try {\n const key = await importKey(secretKey)\n\n const binaryString = window.atob(encryptedData)\n const len = binaryString.length\n const bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n\n // Extract IV (first 12 bytes) and content\n const iv = bytes.slice(0, 12)\n const content = bytes.slice(12)\n\n const decryptedContent = await window.crypto.subtle.decrypt(\n {\n name: algorithm.name,\n iv: iv,\n },\n key,\n content,\n )\n\n const decodedData = new TextDecoder().decode(decryptedContent)\n return JSON.parse(decodedData)\n } catch (error) {\n console.error('Decryption failed:', error)\n throw new Error('Decryption failed')\n }\n}\n"],"names":["DEFAULT_QUERY_ENTRY","Object","freeze","data","undefined","isLoading","isLoadingMapped","isFetching","isPending","isSuccess","isError","isStale","error","dataUpdatedAt","errorUpdatedAt","fetchStatus","refetch","Promise","resolve","DEFAULT_MUTATION_ENTRY","status","variables","submittedAt","isIdle","mutate","mutateAsync","reset","context","failureCount","failureReason","isPaused","queriesAtom","atomWithStorage","createJSONStorage","storage","getOnInit","mutationsAtom","atom","getCompositeKey","scopeId","key","createScopeQueriesAtom","get","allQueries","prefix","scopeQueries","value","entries","startsWith","slice","length","set","update","newQueries","assign","keys","createScopeMutationsAtom","allMutations","scopeMutations","newMutations","createQuerySelector","queryKey","compositeKey","selectAtom","queries","entry","a","b","createMutationSelector","mutationKey","mutations","apiClient","axios","create","timeout","headers","interceptors","response","use","Error","_a","message","_b","request","apiRequest","method","url","body","converter","isPrimitive","finalUrl","finalBody","pathParams","match","forEach","param","substring","replace","String","hasId","id","uid","console","fetchRequest","_endpoints","custom","api","defaultQueryClient","QueryClient","defaultOptions","retry","apiConfigAtom","useValue","useApiConfigValue","useState","useApiConfigState","useReset","useApiConfigReset","atomStateGenerator","defaultValue","endpoints","requestFn","queryClient","persist","__rest","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","propertyIsEnumerable","SuppressedError","suppressed","name","useQueryApi","options","endpoint","enabled","disableAuthControl","onDataChanged","customQueryFn","disableLoading","restOptions","validateAuthFn","defaultHeaders","fullEndpoint","useMemo","path","baseUrl","filter","Boolean","join","isLogged","queryFn","useCallback","res","mergedHeaders","enabledFinal","result","useQuery","retryDelay","ref","useRef","useEffect","current","setQueriesAtom","useSetAtom","queryKeyStr","prev","useMutateApi","_c","queryKeyToInvalidate","customRequest","isTest","notification","showNotification","executeMutation","isValidAuth","onSuccess","onMutateResult","notificationProps","success","type","qKey","invalidateQueries","exact","onError","useMutation","mutationFn","setMutationsAtom","useMultipleQuery","t0","$","t1","settings","t2","generateEndpoint","t3","t4","t5","endpoint_0","generateQueryFn","t6","Symbol","for","t7","results","t8","t9","t10","t11","setting","t12","rest","map","reduce","index","setting_0","keyToMap","combine","result_0","useQueries","t13","t14","setting_1","keyToMap_0","onStateChange","currentResult","prevResult","currentData","prevData","defaultState","mutationReducer","state","action","initMutationStates","configs","states","config","useMultipleMutation","reducerStates","dispatchReducer","useReducer","getState","dispatch","mutationOptions","mutateOptions","Date","now","endpointKey","_d","err","_e","_f","_g","allMutation","item","mutationConfig","useMultipleWebSocket","websocketConfig","socketsRef","Map","statuses","setStatuses","lastMessages","setLastMessages","stableConfigs","sockets","shouldConnect","autoConnect","has","ws","WebSocket","onopen","log","onmessage","event","JSON","parse","onMessage","invalidateQueriesOnMessage","Array","isArray","onclose","delete","close","createSendMessage","readyState","OPEN","send","stringify","warn","mapped","lastMessage","sendMessage","useApi","optionsOrId","persistToAtoms","updateQueryAtom","updateMutationAtom","enhancedQueryConfigs","items","q","queryConfig","originalOnStateChange","enhancedMutationItems","webSocketItems","allQuery","allWebSocket","queryKeys","el","mutationKeys","refreshQueries","k","useWebSocket","socketRef","setStatus","setLastMessage","useInvalidateQueries","all","useJotaiQueries","useAtomValue","useJotaiMutations","getValueAtPath","obj","defaultObj","normalized","parts","split","part","record","useApiValues","subscriptions","trigger","setTrigger","dataRef","query","mutation","internalTrigger","currentQuery","_","keyPath","newValue","oldValue","equal","v","keyMap","defaultQueries","noop","tryResolveSync","promise","then","catch","defaultTransformerFn","dehydrateMutation","scope","meta","dehydrateQuery","serializeData","shouldRedactErrors","dehydratePromise","reject","process","env","NODE_ENV","queryHash","dehydratedAt","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","defaultShouldRedactErrors","dehydrate","client","filterMutation","shouldDehydrateMutation","getDefaultOptions","getMutationCache","getAll","flatMap","filterQuery","shouldDehydrateQuery","getQueryCache","hydrate","dehydratedState","mutationCache","queryCache","deserializeData","build","syncData","rawData","existingQueryIsPending","existingQueryIsFetching","hasNewerSyncData","_ignored","serializedState","setState","fetch","initialPromise","cacheEventTypes","isCacheEventType","eventType","includes","persistQueryClientRestore","persister","maxAge","buster","hydrateOptions","persistedClient","restoreClient","timestamp","expired","busted","removeClient","clientState","persistQueryClientSave","dehydrateOptions","persistClient","persistQueryClientSubscribe","props","unsubscribeQueryCache","subscribe","unsubscribeMutationCache","PersistQueryClientProvider","children","persistOptions","isRestoring","setIsRestoring","React","refs","didRestore","finally","jsx","QueryClientProvider","IsRestoringProvider","QueriesProvider","_jsx","algorithm","encoder","TextEncoder","decoder","TextDecoder","str2ab","str","encode","buffer","ab2str","buf","decode","importKey","secretKey","keyData","keyHash","window","crypto","subtle","digest","encryptData","iv","getRandomValues","Uint8Array","encodedData","encryptedContent","encrypt","encryptedArray","byteLength","binary","bytes","len","fromCharCode","btoa","decryptData","encryptedData","binaryString","atob","charCodeAt","content","decryptedContent","decrypt","decodedData"],"mappings":"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","x_google_ignoreList":[3,14,15,16,17,18]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../queries/utils/request.ts","../../queries/config.ts","../../queries/atoms/queryResultAtoms.ts","../../../../node_modules/tslib/tslib.es6.js","../../queries/hooks/useQueryApi.ts","../../queries/hooks/useMutateApi.ts","../../queries/hooks/useMultipleQuery.ts","../../queries/hooks/useMultipleMutation.ts","../../queries/hooks/useMultipleWebSocket.ts","../../queries/hooks/useApi.ts","../../queries/hooks/useWebSocket.ts","../../queries/hooks/useInvalidateQueries.ts","../../queries/hooks/useJotaiQueryResult.ts","../../queries/hooks/useApiValues.ts","../../../../node_modules/@tanstack/query-core/build/modern/utils.js","../../../../node_modules/@tanstack/query-core/build/modern/thenable.js","../../../../node_modules/@tanstack/query-core/build/modern/hydration.js","../../../../node_modules/@tanstack/query-persist-client-core/build/modern/persist.js","../../../../node_modules/@tanstack/react-query-persist-client/build/modern/PersistQueryClientProvider.js","../../queries/context/QueriesContext.tsx","../../queries/utils/encryption.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { ApiRequestFnProps } from \"../config\";\nimport type { AxiosRequestConfig, AxiosResponse } from \"axios\";\n\nconst apiClient = axios.create({\n timeout: 30000,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n});\n\napiClient.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n throw new Error(\n error.response.data?.message ||\n error.response.data?.error ||\n `Error ${error.response.status}`,\n );\n } else if (error.request) {\n throw new Error(\n \"No response from server - request timeout or network issue\",\n );\n } else {\n throw new Error(\"Request configuration error\");\n }\n },\n);\n\nexport const apiRequest = async <TProps, TResponse, TConverter = TProps>({\n method,\n url,\n body,\n headers,\n converter,\n}: ApiRequestFnProps<TProps, TConverter>): Promise<TResponse> => {\n try {\n const isPrimitive =\n typeof body === \"string\" ||\n typeof body === \"number\" ||\n typeof body === \"boolean\";\n\n let finalUrl = url;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let finalBody: any = body;\n\n // 1. Primitive Body Handling (Append to URL)\n if (isPrimitive && body) {\n if (method !== \"POST\") {\n finalUrl = `${url}/${body}`;\n finalBody = undefined;\n }\n }\n\n // 2. Object Body Handling (Path Param Replacement)\n if (!isPrimitive && typeof body === \"object\" && body !== null) {\n // Look for :param in string\n // e.g. /users/:uid/availability\n const pathParams = finalUrl.match(/:[a-zA-Z0-9_]+/g);\n\n if (pathParams) {\n // Create shallow copy to avoid mutating original\n finalBody = { ...body };\n\n pathParams.forEach((param) => {\n if (finalBody) {\n const key = param.substring(1); // remove :\n if (key in finalBody) {\n finalUrl = finalUrl.replace(param, String(finalBody[key]));\n // Optional: remove from body if it was used in path?\n // Usually yes for simple IDs, maybe not for others.\n // Let's remove to keep body clean.\n delete finalBody[key];\n }\n }\n });\n }\n }\n\n const data = converter && finalBody ? converter(finalBody) : finalBody;\n const response: AxiosResponse<TResponse> = await apiClient({\n url: finalUrl,\n method,\n data,\n headers,\n });\n\n if (response.status >= 200 && response.status < 300) {\n return response.data;\n }\n\n throw new Error(`Request failed with status ${response.status}`);\n } catch (error) {\n console.error(\"API Request Error:\", error);\n if (error instanceof Error) {\n throw error;\n }\n throw new Error(\"Unknown error occurred\");\n }\n};\n\nexport const fetchRequest = async <TProps, TResponse>(\n url: string,\n headers?: AxiosRequestConfig[\"headers\"],\n): Promise<TResponse> => {\n return apiRequest<TProps, TResponse>({ url, method: \"GET\", headers });\n};\n","import { atomStateGenerator } from '@gaddario98/react-state'\nimport { QueryClient } from '@tanstack/react-query'\nimport { apiRequest } from './utils/request'\nimport type { ApiMethod, Endpoint } from './types'\nimport type { PersistQueryClientOptions } from '@tanstack/react-query-persist-client'\nimport type { AxiosRequestConfig } from 'axios'\n\nexport interface EncryptionConfig {\n secretKey: string\n enabled?: boolean\n // Optional custom functions to override default AES-GCM\n encryptFn?: (data: unknown, key: string) => Promise<string>\n decryptFn?: (data: string, key: string) => Promise<unknown>\n}\n// Lazy initialization to avoid side effects at module load time\n\nexport type ApiConverter<TProps, TConverter> = (props: TProps) => TConverter\nexport interface ApiRequestFnProps<TProps, TConverter = TProps> {\n url: string\n method: ApiMethod\n body?: TProps\n headers?: AxiosRequestConfig['headers']\n converter?: ApiConverter<TProps, TConverter>\n}\nexport interface ApiNotificationMessage {\n message: string\n type: 'success' | 'error' | 'info' | 'warning'\n autoHideDuration?: number\n textTransOption?: Record<string, unknown>\n ns?: string\n}\nexport interface ApiConfig {\n endpoints: Endpoint\n requestFn: <TProps, TResponse, TConverter = TProps>(\n props: ApiRequestFnProps<TProps, TConverter>,\n ) => Promise<TResponse>\n validateAuthFn?: () => boolean\n defaultHeaders?: Record<string, string>\n persistOptions?: Omit<PersistQueryClientOptions, 'queryClient'>\n queryClient: QueryClient\n websocketConfig?: {\n url: string\n onMessage?: (message: unknown) => void\n autoConnect?: boolean\n }\n encryption?: EncryptionConfig\n showNotification?: (notification: ApiNotificationMessage) => void\n /**\n * Whether to persist query results to storage (e.g. localStorage).\n * Defaults to `true` for backward compatibility.\n * Set to `false` to use an in-memory atom without any storage persistence.\n */\n persistQueries?: boolean\n}\nconst _endpoints: Endpoint = {\n custom: '',\n api: 'http://localhost:3000', // import.meta.env.VITE_API_URL ||\n}\n\nconst defaultQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: 2,\n // staleTime: 2 * 60 * 1000,\n },\n },\n})\nexport const {\n atom: apiConfigAtom,\n useValue: useApiConfigValue,\n useState: useApiConfigState,\n useReset: useApiConfigReset,\n} = atomStateGenerator<ApiConfig>({\n key: 'apiConfig',\n defaultValue: {\n endpoints: _endpoints,\n requestFn: apiRequest,\n queryClient: defaultQueryClient,\n },\n persist: false,\n})\n","import { atom } from \"jotai\";\nimport { atomWithStorage, createJSONStorage, selectAtom } from \"jotai/utils\";\nimport { storage } from \"@gaddario98/react-state\";\nimport type { UseMutationResult } from \"@tanstack/react-query\";\nimport type { QueriesArray, QueryResult } from \"../types\";\nimport { apiConfigAtom } from \"../config\";\n\ntype SetStateAction<S> = S | ((prevState: S) => S);\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport type QueryStoreEntry<Q extends QueriesArray = QueriesArray> =\n QueryResult<Q[number][\"response\"]>;\n\nexport type MutationStoreEntry<Q extends QueriesArray = QueriesArray> =\n UseMutationResult<Q[number][\"response\"], Error, Q[number][\"props\"], unknown>;\n// ============================================================================\n// Default Values\n// ============================================================================\n\nexport const DEFAULT_QUERY_ENTRY: QueryStoreEntry = Object.freeze({\n data: undefined,\n isLoading: false,\n isLoadingMapped: false,\n isFetching: false,\n isPending: false,\n isSuccess: false,\n isError: false,\n isStale: false,\n error: null,\n dataUpdatedAt: 0,\n errorUpdatedAt: 0,\n fetchStatus: \"idle\" as const,\n refetch: () => Promise.resolve(),\n});\n\nexport const DEFAULT_MUTATION_ENTRY: MutationStoreEntry = Object.freeze({\n data: undefined,\n status: \"idle\",\n error: null,\n variables: undefined,\n submittedAt: 0,\n isIdle: true,\n isPending: false,\n isSuccess: false,\n isError: false,\n mutate: () => {},\n mutateAsync: async () => Promise.resolve(undefined),\n reset: () => {},\n context: 0,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n} as MutationStoreEntry);\n\n// ============================================================================\n// Global Atoms (single atom for all queries, single atom for all mutations)\n// ============================================================================\n\n/**\n * Global atom storing all query results with localStorage persistence.\n * Used when `persistQueries` is `true` (default).\n */\nexport const queriesAtomWithStorage = atomWithStorage<\n Record<string, QueryStoreEntry>\n>(\n \"queries-atom\",\n {},\n createJSONStorage<Record<string, QueryStoreEntry>>(() => storage),\n { getOnInit: true },\n);\n\n/**\n * Global atom storing all query results in memory only (no persistence).\n * Used when `persistQueries` is `false`.\n */\nexport const queriesAtomBase = atom<Record<string, QueryStoreEntry>>({});\n\n/**\n * Global atom storing all query results.\n * Delegates to `queriesAtomWithStorage` or `queriesAtomBase` based on\n * the `persistQueries` flag in `ApiConfig` (defaults to `true`).\n * Key format: \"scopeId:queryKey\"\n */\nexport const queriesAtom = atom(\n (get) => {\n const { persistQueries = true } = get(apiConfigAtom);\n return persistQueries ? get(queriesAtomWithStorage) : get(queriesAtomBase);\n },\n (get, set, update: SetStateAction<Record<string, QueryStoreEntry>>) => {\n const { persistQueries = true } = get(apiConfigAtom);\n if (persistQueries) {\n set(queriesAtomWithStorage, update);\n } else {\n set(queriesAtomBase, update);\n }\n },\n);\n\n/**\n * Global atom storing all mutation results.\n * Key format: \"scopeId:mutationKey\"\n */\nexport const mutationsAtom = atom<Record<string, MutationStoreEntry>>({});\n\n// ============================================================================\n// Helper to generate composite keys\n// ============================================================================\n\nexport const getCompositeKey = (scopeId: string, key: string): string =>\n `${scopeId}:${key}`;\n\n// ============================================================================\n// Derived Atoms for specific scope access\n// ============================================================================\n\n/**\n * Creates a derived atom for accessing queries of a specific scope.\n */\nexport const createScopeQueriesAtom = (scopeId: string) =>\n atom(\n (get) => {\n const allQueries = get(queriesAtom);\n const prefix = `${scopeId}:`;\n const scopeQueries: Record<string, QueryStoreEntry> = {};\n\n for (const [key, value] of Object.entries(allQueries)) {\n if (key.startsWith(prefix)) {\n scopeQueries[key.slice(prefix.length)] = value;\n }\n }\n\n return scopeQueries;\n },\n (get, set, update: Record<string, QueryStoreEntry>) => {\n const allQueries = get(queriesAtom);\n const prefix = `${scopeId}:`;\n const newQueries = { ...allQueries };\n\n // Remove old scope entries\n for (const key of Object.keys(newQueries)) {\n if (key.startsWith(prefix)) {\n delete newQueries[key];\n }\n }\n\n // Add new scope entries\n for (const [key, value] of Object.entries(update)) {\n newQueries[`${prefix}${key}`] = value;\n }\n\n set(queriesAtom, newQueries);\n },\n );\n\n/**\n * Creates a derived atom for accessing mutations of a specific scope.\n */\nexport const createScopeMutationsAtom = (scopeId: string) =>\n atom(\n (get) => {\n const allMutations = get(mutationsAtom);\n const prefix = `${scopeId}:`;\n const scopeMutations: Record<string, MutationStoreEntry> = {};\n\n for (const [key, value] of Object.entries(allMutations)) {\n if (key.startsWith(prefix)) {\n scopeMutations[key.slice(prefix.length)] = value;\n }\n }\n\n return scopeMutations;\n },\n (get, set, update: Record<string, MutationStoreEntry>) => {\n const allMutations = get(mutationsAtom);\n const prefix = `${scopeId}:`;\n const newMutations = { ...allMutations };\n\n // Remove old scope entries\n for (const key of Object.keys(newMutations)) {\n if (key.startsWith(prefix)) {\n delete newMutations[key];\n }\n }\n\n // Add new scope entries\n for (const [key, value] of Object.entries(update)) {\n newMutations[`${prefix}${key}`] = value;\n }\n\n set(mutationsAtom, newMutations);\n },\n );\n\n// ============================================================================\n// Selectors for single query/mutation access\n// ============================================================================\n\nexport const createQuerySelector = <Q extends QueriesArray>(\n scopeId: string,\n queryKey: string,\n) => {\n const compositeKey = getCompositeKey(scopeId, queryKey);\n return selectAtom<Record<string, QueryStoreEntry<Q>>, QueryStoreEntry<Q>>(\n queriesAtom,\n (queries) => {\n const entry = queries[compositeKey];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return entry ?? DEFAULT_QUERY_ENTRY;\n },\n (a, b) =>\n a === b ||\n (a.data === b.data &&\n a.isLoading === b.isLoading &&\n a.isFetching === b.isFetching &&\n a.error === b.error),\n );\n};\n\nexport const createMutationSelector = <Q extends QueriesArray>(\n scopeId: string,\n mutationKey: string,\n) => {\n const compositeKey = getCompositeKey(scopeId, mutationKey);\n return selectAtom<\n Record<string, MutationStoreEntry<Q>>,\n MutationStoreEntry<Q>\n >(\n mutationsAtom,\n (mutations) => {\n const entry = mutations[compositeKey];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return entry ?? DEFAULT_MUTATION_ENTRY;\n },\n (a, b) =>\n a === b ||\n (a.data === b.data && a.isPending === b.isPending && a.error === b.error),\n );\n};\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { useQuery } from '@tanstack/react-query'\nimport { useSetAtom } from 'jotai'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { getCompositeKey, queriesAtom } from '../atoms/queryResultAtoms'\nimport { useApiConfigValue } from '../config'\nimport type { CustomQueryOptions, QueryResult } from '../types'\n\nexport const useQueryApi = <TResponse>(\n options: CustomQueryOptions<TResponse>,\n id: string = 'default',\n): QueryResult<TResponse> => {\n const {\n endpoint,\n queryKey,\n enabled = true,\n headers,\n disableAuthControl,\n onDataChanged,\n customQueryFn,\n disableLoading,\n ...restOptions\n } = options\n\n const { requestFn, validateAuthFn, defaultHeaders,endpoints } =\n useApiConfigValue()\n\n const fullEndpoint = useMemo(() => {\n const [key, path] = endpoint\n const baseUrl = endpoints[key]\n return [baseUrl, path].filter(Boolean).join('/')\n }, [endpoint, endpoints])\n\n const isLogged = useMemo(\n () => (validateAuthFn ? validateAuthFn() : true),\n [validateAuthFn],\n )\n const queryFn = useCallback(async () => {\n if (customQueryFn) {\n const res = await customQueryFn()\n return res\n }\n\n const mergedHeaders = {\n ...defaultHeaders,\n ...headers,\n }\n\n const res = await requestFn<unknown, TResponse>({\n url: fullEndpoint,\n method: 'GET',\n headers: mergedHeaders,\n })\n return res\n }, [customQueryFn, defaultHeaders, fullEndpoint, headers, requestFn])\n\n const enabledFinal = useMemo(() => {\n if (disableAuthControl) {\n return enabled\n }\n return enabled && isLogged\n }, [disableAuthControl, enabled, isLogged])\n const result = useQuery<TResponse, Error>({\n queryKey,\n queryFn,\n enabled: enabledFinal,\n retry: 1,\n retryDelay: 1000,\n ...restOptions,\n })\n const ref = useRef({ onDataChanged, refetch: result.refetch })\n\n useEffect(() => {\n ref.current = { onDataChanged, refetch: result.refetch }\n }, [onDataChanged, result.refetch])\n\n useEffect(() => {\n ref.current.onDataChanged?.(result.data)\n }, [result.data])\n\n // Sync to Jotai atom for persistence\n const setQueriesAtom = useSetAtom(queriesAtom)\n const queryKeyStr = queryKey.join('-')\n const compositeKey = getCompositeKey(id, queryKeyStr)\n\n useEffect(() => {\n setQueriesAtom((prev) => ({\n ...prev,\n [compositeKey]: {\n data: result.data,\n isLoading: result.isLoading,\n isLoadingMapped: !disableLoading && result.isLoading,\n isFetching: result.isFetching,\n isPending: result.isPending,\n isSuccess: result.isSuccess,\n isError: result.isError,\n isStale: result.isStale,\n error: result.error,\n dataUpdatedAt: result.dataUpdatedAt,\n errorUpdatedAt: result.errorUpdatedAt,\n fetchStatus: result.fetchStatus,\n refetch: result.refetch,\n },\n }))\n }, [\n result.data,\n result.isLoading,\n result.isFetching,\n result.isPending,\n result.isSuccess,\n result.isError,\n result.isStale,\n result.error,\n result.dataUpdatedAt,\n result.errorUpdatedAt,\n result.fetchStatus,\n setQueriesAtom,\n compositeKey,\n disableLoading,\n result.refetch,\n ])\n\n return {\n data: result.data,\n isLoadingMapped: !disableLoading && result.isLoading,\n isLoading: result.isLoading,\n isFetching: result.isFetching,\n isPending: result.isPending,\n error: result.error,\n refetch: () => ref.current.refetch(),\n }\n}\n","import { useMutation } from '@tanstack/react-query'\nimport { useSetAtom } from 'jotai'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport {\n getCompositeKey,\n mutationsAtom\n} from '../atoms/queryResultAtoms'\nimport { useApiConfigValue } from '../config'\nimport type {\n MutationStoreEntry} from '../atoms/queryResultAtoms';\nimport type { MutationFunctionContext } from '@tanstack/react-query'\nimport type { CustomMutationOptions } from '../types'\n\nexport const useMutateApi = <TProps, TResponse>(\n options: CustomMutationOptions<TProps, TResponse>,\n id: string = 'default',\n) => {\n const {\n endpoint,\n method,\n headers,\n queryKeyToInvalidate,\n customRequest,\n converter,\n isTest,\n notification,\n ...restOptions\n } = useMemo(() => options, [options])\n const { requestFn, validateAuthFn, defaultHeaders, showNotification,endpoints } = useApiConfigValue()\n const { queryClient } = useApiConfigValue()\n\n const [key, path] = useMemo(() => endpoint, [endpoint])\n const baseUrl = useMemo(() => endpoints[key] ?? '', [endpoints, key])\n const fullEndpoint = useMemo(\n () => [baseUrl, path].filter(Boolean).join('/'),\n [baseUrl, path],\n )\n const executeMutation = useCallback(\n async (data: TProps) => {\n if (isTest) {\n return 'test' as unknown as TResponse\n }\n\n // Auth validation\n const isValidAuth = validateAuthFn ? validateAuthFn() : true\n\n if ( !isValidAuth) {\n throw new Error('Utente non autenticato')\n }\n\n const mergedHeaders = {\n ...defaultHeaders,\n ...headers,\n }\n\n if (customRequest) {\n return customRequest(fullEndpoint, method, data)\n }\n\n return requestFn<TProps, TResponse>({\n url: fullEndpoint,\n method,\n body: data,\n headers: mergedHeaders,\n converter,\n })\n \n },\n [converter, customRequest, defaultHeaders, fullEndpoint, headers, isTest, method, requestFn, validateAuthFn],\n )\n const onSuccess = useCallback(\n (\n data: TResponse,\n variables: TProps,\n onMutateResult: unknown,\n context: MutationFunctionContext,\n ) => {\n // Notifications\n const notificationProps =\n typeof notification?.success === 'function'\n ? notification.success(data)\n : notification?.success\n\n if (notificationProps?.message) {\n showNotification?.({\n message: notificationProps.message,\n type: notificationProps.type ?? 'success',\n ...notificationProps,\n })\n }\n restOptions.onSuccess?.(data, variables, onMutateResult, context)\n\n // Invalidate queries\n if (queryKeyToInvalidate) {\n queryKeyToInvalidate.forEach((qKey) => {\n queryClient.invalidateQueries({ queryKey: [qKey], exact: false })\n })\n }\n },\n [\n notification,\n queryClient,\n queryKeyToInvalidate,\n restOptions,\n showNotification,\n ],\n )\n const onError = useCallback(\n (\n error: Error,\n variables: TProps,\n onMutateResult: unknown,\n context: MutationFunctionContext,\n ) => {\n const notificationProps =\n typeof notification?.error === 'function'\n ? notification.error(error.message)\n : notification?.error\n\n if (notificationProps?.message || error.message) {\n showNotification?.({\n message:\n notificationProps?.message ||\n error.message ||\n 'An unexpected error occurred',\n type: notificationProps?.type ?? 'error',\n ...notificationProps,\n })\n }\n\n restOptions.onError?.(error, variables, onMutateResult, context)\n },\n [notification, restOptions, showNotification],\n )\n const ref = useRef({ executeMutation, onSuccess, onError })\n\n useEffect(() => {\n ref.current = { executeMutation, onSuccess, onError }\n }, [executeMutation, onSuccess, onError])\n\n const result = useMutation<TResponse, Error, TProps>({\n mutationFn: (data) => {\n return ref.current.executeMutation(data)\n },\n ...restOptions,\n onSuccess: (data, variables, onMutateResult, context) => {\n ref.current.onSuccess(data, variables, onMutateResult, context)\n },\n onError: (error, variables, onMutateResult, context) => {\n ref.current.onError(error, variables, onMutateResult, context)\n },\n })\n\n // Sync to Jotai atom for persistence\n const setMutationsAtom = useSetAtom(mutationsAtom)\n const mutationKey = restOptions.mutationKey?.join('-') ?? fullEndpoint\n const compositeKey = getCompositeKey(id, mutationKey)\n\n useEffect(() => {\n setMutationsAtom((prev) => ({\n ...prev,\n [compositeKey]: {\n data: result.data,\n status: result.status,\n error: result.error,\n variables: result.variables,\n submittedAt: result.submittedAt,\n isIdle: result.isIdle,\n isPending: result.isPending,\n isSuccess: result.isSuccess,\n isError: result.isError,\n } as MutationStoreEntry,\n }))\n }, [\n result.data,\n result.status,\n result.error,\n result.variables,\n result.submittedAt,\n result.isIdle,\n result.isPending,\n result.isSuccess,\n result.isError,\n setMutationsAtom,\n compositeKey,\n ])\n\n return result\n}\n","import { useQueries } from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { useApiConfigValue } from \"../config\";\nimport type { MultipleQueryResponse, QueriesArray, QueryProps } from \"../types\";\nimport type { UseQueryResult } from \"@tanstack/react-query\";\n\nexport const useMultipleQuery = <Q extends QueriesArray>(\n settings: Array<QueryProps<Q[number][\"key\"], Q[number][\"response\"]>> = [],\n) => {\n const { requestFn, validateAuthFn, defaultHeaders, queryClient, endpoints } =\n useApiConfigValue();\n\n const generateEndpoint = useCallback(\n (endpoint: [string, string] | [string]) => {\n const [key, path] = endpoint;\n const baseUrl = endpoints[key];\n return [baseUrl, path].filter(Boolean).join(\"/\");\n },\n [endpoints],\n );\n const isLogged = useMemo(\n () => (validateAuthFn ? validateAuthFn() : true),\n [validateAuthFn],\n );\n\n const generateQueryFn = useCallback(\n async ({\n endpoint,\n customQueryFn,\n headers,\n }: QueryProps<Q[number][\"key\"], Q[number][\"response\"]>) => {\n const fullEndpoint = generateEndpoint(endpoint);\n\n if (customQueryFn) {\n const res = await customQueryFn();\n return res;\n }\n\n const mergedHeaders = {\n ...defaultHeaders,\n ...headers,\n };\n\n return await requestFn({\n url: fullEndpoint,\n method: \"GET\",\n headers: mergedHeaders,\n });\n },\n [defaultHeaders, generateEndpoint, requestFn],\n );\n\n const ref = useRef({\n data: {} as Record<Q[number][\"key\"], Q[number][\"response\"]>,\n results: {} as Record<\n string,\n MultipleQueryResponse<Q>[keyof MultipleQueryResponse<Q>]\n >,\n });\n\n const queries = useMemo(() => {\n return settings.map((setting) => {\n const { queryKey, enabled = true, disableAuthControl, ...rest } = setting;\n\n return {\n queryKey,\n queryFn: () => generateQueryFn(setting),\n enabled: !!enabled && (disableAuthControl || !!isLogged),\n ...rest,\n };\n });\n }, [settings, isLogged, generateQueryFn]);\n\n const combine = useCallback(\n (results: Array<UseQueryResult<Q[number][\"response\"], Error>>) => {\n return results.reduce<MultipleQueryResponse<Q>>((prev, result, index) => {\n const setting = settings[index];\n if (!setting) return prev;\n\n const keyToMap = setting.keyToMap;\n Object.assign(prev, {\n [keyToMap]: {\n data: result.data as Q[number][\"response\"],\n isLoadingMapped: !setting.disableLoading && result.isLoading,\n isLoading: result.isLoading,\n isFetching: result.isFetching,\n isPending: result.isPending,\n error: result.error,\n refetch: result.refetch,\n },\n });\n\n return prev;\n }, {} as MultipleQueryResponse<Q>);\n },\n [settings],\n );\n\n const result = useQueries(\n {\n queries,\n combine,\n },\n queryClient,\n );\n\n useEffect(() => {\n settings.forEach((setting) => {\n const { keyToMap, onDataChanged, onStateChange } = setting;\n if (!onDataChanged && !onStateChange) return;\n\n const currentResult = result[keyToMap];\n if (!currentResult) return;\n const prevResult = ref.current.results[keyToMap];\n\n // Handle onStateChange\n if (onStateChange) {\n if (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n !prevResult ||\n prevResult.data !== currentResult.data ||\n prevResult.isLoading !== currentResult.isLoading ||\n prevResult.isLoadingMapped !== currentResult.isLoadingMapped ||\n prevResult.isFetching !== currentResult.isFetching ||\n prevResult.isPending !== currentResult.isPending ||\n prevResult.error !== currentResult.error\n ) {\n ref.current.results[keyToMap] = currentResult;\n onStateChange(currentResult);\n }\n }\n\n // Handle onDataChanged (Legacy support + specific data changes)\n if (onDataChanged) {\n const currentData = currentResult.data;\n const prevData = ref.current.data[keyToMap];\n\n if (currentData !== undefined && currentData !== prevData) {\n ref.current.data[keyToMap] = currentData;\n onDataChanged(currentData);\n }\n }\n });\n }, [result, settings]);\n\n return result;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback, useEffect, useMemo, useReducer, useRef } from \"react\";\nimport { useApiConfigValue } from \"../config\";\nimport { DEFAULT_MUTATION_ENTRY } from \".\";\nimport type {\n AllMutation,\n MutationActionInternal,\n MutationConfig,\n MutationItem,\n MutationStateInternal,\n QueriesArray,\n} from \"../types\";\n\nconst defaultState: MutationStateInternal = DEFAULT_MUTATION_ENTRY;\n\ntype MutationStates = Record<string, MutationStateInternal>;\n\nconst mutationReducer = (\n state: MutationStates,\n action: MutationActionInternal,\n): MutationStates => {\n switch (action.type) {\n case \"RESET\":\n return {\n ...state,\n [action.key]: { ...defaultState },\n };\n case \"PENDING\":\n return {\n ...state,\n [action.key]: {\n status: \"pending\",\n data: undefined,\n error: null,\n submittedAt: action.submittedAt,\n variables: action.variables,\n },\n };\n case \"SUCCESS\":\n return {\n ...state,\n [action.key]: {\n ...state[action.key],\n status: \"success\",\n data: action.data,\n error: null,\n },\n };\n case \"ERROR\":\n return {\n ...state,\n [action.key]: {\n ...state[action.key],\n status: \"error\",\n error: action.error,\n },\n };\n default:\n return state;\n }\n};\n\nconst initMutationStates = <Q extends QueriesArray>(\n configs: Array<MutationItem<Q>>,\n): MutationStates => {\n const states: MutationStates = {};\n configs.forEach((config) => {\n states[config.key] = { ...defaultState };\n });\n return states;\n};\n\nexport const useMultipleMutation = <Q extends QueriesArray>(\n configs: Array<MutationItem<Q>>,\n): AllMutation<Q> => {\n const {\n requestFn,\n validateAuthFn,\n defaultHeaders,\n queryClient,\n showNotification,\n endpoints,\n } = useApiConfigValue();\n\n const [reducerStates, dispatchReducer] = useReducer(\n mutationReducer,\n configs,\n initMutationStates,\n );\n\n // Accessor for current state\n const getState = useCallback(\n (key: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return reducerStates[key] || defaultState;\n },\n [reducerStates],\n );\n\n // Dispatcher that handles both modes\n const dispatch = useCallback((action: MutationActionInternal) => {\n dispatchReducer(action);\n }, []);\n\n const executeMutation = useCallback(\n async <TProps, TResponse>(\n key: string,\n config: MutationConfig<TProps, TResponse>,\n data: TProps,\n mutationOptions?: {\n onSuccess?: (\n data: TResponse,\n variables: TProps,\n onMutateResult: unknown,\n context: unknown,\n ) => void;\n onError?: (\n error: Error,\n variables: TProps,\n onMutateResult: unknown,\n context: unknown,\n ) => void;\n onSettled?: (\n data: TResponse | undefined,\n error: Error | null,\n variables: TProps,\n onMutateResult: unknown,\n context: unknown,\n ) => void;\n },\n ): Promise<TResponse> => {\n const {\n endpoint,\n method,\n headers,\n queryKeyToInvalidate,\n customRequest,\n converter,\n isTest,\n notification,\n mutateOptions,\n } = config;\n\n dispatch({\n type: \"PENDING\",\n key,\n submittedAt: Date.now(),\n variables: data,\n });\n\n let context: unknown;\n\n try {\n // Auth validation\n const isValidAuth = validateAuthFn ? validateAuthFn() : true;\n\n if (!isValidAuth) {\n throw new Error(\"Utente non autenticato\");\n }\n\n // Build endpoint\n const [endpointKey, path] = endpoint;\n const baseUrl = endpoints[endpointKey] ?? \"\";\n const fullEndpoint = [baseUrl, path].filter(Boolean).join(\"/\");\n\n // Merge headers\n const mergedHeaders = {\n ...defaultHeaders,\n ...headers,\n };\n\n // Execute request\n let result: TResponse;\n\n if (isTest) {\n result = \"test\" as unknown as TResponse;\n } else if (customRequest) {\n result = await customRequest(fullEndpoint, method, data);\n } else {\n result = await requestFn({\n url: fullEndpoint,\n method,\n body: data,\n headers: mergedHeaders,\n converter,\n });\n }\n\n dispatch({ type: \"SUCCESS\", key, data: result });\n\n // Invalidate queries\n if (queryKeyToInvalidate) {\n queryKeyToInvalidate.forEach((qKey) => {\n queryClient.invalidateQueries({ queryKey: [qKey], exact: false });\n });\n }\n\n // Success notification\n const notificationProps =\n typeof notification?.success === \"function\"\n ? notification.success(result)\n : notification?.success;\n\n if (notificationProps?.message) {\n showNotification?.({\n message: notificationProps.message,\n type: notificationProps.type ?? \"success\",\n ...notificationProps,\n });\n }\n\n // Callbacks\n // @ts-expect-error - MutateOptions callback signature varies by TanStack Query version\n mutateOptions?.onSuccess?.(result, data, context);\n mutationOptions?.onSuccess?.(result, data, undefined, context);\n\n return result;\n } catch (error) {\n const err = error instanceof Error ? error : new Error(\"Unknown error\");\n dispatch({ type: \"ERROR\", key, error: err });\n\n // Error notification\n const notificationProps =\n typeof notification?.error === \"function\"\n ? notification.error(err.message)\n : notification?.error;\n\n if (notificationProps?.message || err.message) {\n showNotification?.({\n message:\n notificationProps?.message ||\n err.message ||\n \"An unexpected error occurred\",\n type: notificationProps?.type ?? \"error\",\n ...notificationProps,\n });\n }\n\n // Callbacks\n // @ts-expect-error - MutateOptions callback signature varies by TanStack Query version\n mutateOptions?.onError?.(err, data, context);\n mutationOptions?.onError?.(err, data, undefined, context);\n\n throw err;\n }\n },\n [\n queryClient,\n validateAuthFn,\n defaultHeaders,\n endpoints,\n requestFn,\n showNotification,\n dispatch, // dispatch is now stable/wrapped\n ],\n );\n\n const ref = useRef({ dispatch, executeMutation });\n\n useEffect(() => {\n ref.current = { dispatch, executeMutation };\n }, [dispatch, executeMutation]);\n\n const allMutation = useMemo(() => {\n const result = {} as AllMutation<Q>;\n\n configs.forEach((item) => {\n // In silent mode, this is just the INITIAL state (or whatever triggered last render).\n // The real data comes from Proxy if used.\n const state = getState(item.key);\n const mutationConfig = item.mutationConfig;\n\n const mutationKey = item.key as keyof AllMutation<Q>;\n\n type CurrentMutation = Extract<\n Q[number],\n { key: typeof item.key; type: \"mutation\" }\n >;\n type MutationData = CurrentMutation[\"response\"];\n type MutationVariables = CurrentMutation[\"props\"];\n\n result[mutationKey] = {\n // State\n data: state.data as MutationData,\n error: state.error as Error,\n isIdle: state.status === \"idle\",\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n status: state.status,\n variables: state.variables as MutationVariables,\n submittedAt: state.submittedAt ?? 0,\n endpoint: mutationConfig.endpoint,\n\n // Methods\n mutate: (\n data: MutationVariables,\n mutationOptions?: {\n onSuccess?: (\n data: MutationData,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n onError?: (\n error: Error,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n onSettled?: (\n data: MutationData | undefined,\n error: Error | null,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n },\n ) => {\n ref.current.executeMutation(\n item.key,\n mutationConfig,\n data,\n mutationOptions,\n );\n },\n mutateAsync: (\n data: MutationVariables,\n mutationOptions?: {\n onSuccess?: (\n data: MutationData,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n onError?: (\n error: Error,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n onSettled?: (\n data: MutationData | undefined,\n error: Error | null,\n variables: MutationVariables,\n onMutateResult: unknown,\n context: any,\n ) => void;\n },\n ) => {\n return ref.current.executeMutation(\n item.key,\n mutationConfig,\n data,\n mutationOptions,\n );\n },\n reset: () => ref.current.dispatch({ type: \"RESET\", key: item.key }),\n\n // Compatibility fields\n failureCount: 0,\n failureReason: null,\n context: undefined,\n isPaused: false,\n } as AllMutation<Q>[keyof AllMutation<Q>];\n item.mutationConfig.onStateChange?.(result[mutationKey]);\n });\n\n return result;\n }, [getState, configs]);\n\n return allMutation;\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useApiConfigValue } from '../config'\nimport type { MultipleWebSocketResponse, WebSocketDefinition } from '../types'\n\nexport const useMultipleWebSocket = <K extends string>(\n configs: Array<WebSocketDefinition<K>> = [],\n): MultipleWebSocketResponse<K> => {\n const { websocketConfig } = useApiConfigValue()\n const { queryClient } = useApiConfigValue()\n\n const socketsRef = useRef<Map<string, WebSocket>>(new Map())\n const [statuses, setStatuses] = useState<\n Map<string, 'connecting' | 'open' | 'closed'>\n >(new Map())\n const [lastMessages, setLastMessages] = useState<Map<string, unknown>>(\n new Map(),\n )\n\n // Stabilize configs reference\n const stableConfigs = useMemo(() => configs, [configs])\n\n useEffect(() => {\n const sockets = socketsRef.current\n\n stableConfigs.forEach((config) => {\n const url = config.endpoint || websocketConfig?.url\n const shouldConnect =\n config.autoConnect !== false &&\n (websocketConfig?.autoConnect || config.endpoint)\n\n if (!url || !shouldConnect) return\n\n // Skip if already connected\n if (sockets.has(config.key)) return\n\n setStatuses((prev) => new Map(prev).set(config.key, 'connecting'))\n\n const ws = new WebSocket(url)\n sockets.set(config.key, ws)\n\n ws.onopen = () => {\n setStatuses((prev) => new Map(prev).set(config.key, 'open'))\n console.log(`WebSocket [${config.key}] connected`)\n }\n\n ws.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data)\n setLastMessages((prev) => new Map(prev).set(config.key, data))\n\n // Global handler\n websocketConfig?.onMessage?.(data)\n\n // Local handler\n config.onMessage?.(data)\n\n // Auto invalidation\n if (\n config.invalidateQueriesOnMessage &&\n Array.isArray(config.invalidateQueriesOnMessage)\n ) {\n config.invalidateQueriesOnMessage.forEach((key) => {\n queryClient.invalidateQueries({ queryKey: [key], exact: false })\n })\n }\n } catch (e) {\n console.error(`WebSocket [${config.key}] message parse error`, e)\n }\n }\n\n ws.onclose = () => {\n setStatuses((prev) => new Map(prev).set(config.key, 'closed'))\n console.log(`WebSocket [${config.key}] disconnected`)\n sockets.delete(config.key)\n }\n })\n\n return () => {\n sockets.forEach((ws, key) => {\n ws.close()\n sockets.delete(key)\n })\n }\n }, [stableConfigs, websocketConfig, queryClient])\n\n const createSendMessage = useCallback(\n (key: string) => (message: unknown) => {\n const ws = socketsRef.current.get(key)\n if (ws?.readyState === WebSocket.OPEN) {\n ws.send(JSON.stringify(message))\n } else {\n console.warn(`WebSocket [${key}] is not open`)\n }\n },\n [],\n )\n\n const result = useMemo(() => {\n const mapped = {} as MultipleWebSocketResponse<K>\n\n stableConfigs.forEach((config) => {\n mapped[config.key] = {\n lastMessage: lastMessages.get(config.key) ?? null,\n sendMessage: createSendMessage(config.key),\n status: statuses.get(config.key) ?? 'closed',\n }\n })\n\n return mapped\n }, [stableConfigs, lastMessages, statuses, createSendMessage])\n\n return result\n}\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { useSetAtom } from \"jotai\";\nimport {\n getCompositeKey,\n mutationsAtom,\n queriesAtom,\n} from \"../atoms/queryResultAtoms\";\nimport { useMultipleMutation } from \"./useMultipleMutation\";\nimport { useMultipleQuery } from \"./useMultipleQuery\";\nimport { useMultipleWebSocket } from \"./useMultipleWebSocket\";\nimport type {\n MutationStoreEntry,\n QueryStoreEntry,\n} from \"../atoms/queryResultAtoms\";\nimport type {\n ContextValue,\n ExtractWebSocket,\n MultipleQueryResponse,\n MutationItem,\n QueriesArray,\n QueryConfigArray,\n QueryItem,\n QueryProps,\n} from \"../types\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface UseApiOptions {\n /**\n * Unique identifier for this scope. Used as the key prefix for Jotai atoms.\n * @default 'default'\n */\n scopeId?: string;\n /**\n * Whether to persist query/mutation results to Jotai atoms.\n * @default true\n */\n persistToAtoms?: boolean;\n}\n\n// ============================================================================\n// Main Hook\n// ============================================================================\n\n/**\n * Main hook that integrates TanStack Query with Jotai for state persistence.\n */\nexport function useApi<Q extends QueriesArray>(\n configs: QueryConfigArray<Q>,\n options?: UseApiOptions,\n): ContextValue<Q>;\n\n/**\n * @deprecated Use options object instead: useApi(configs, { scopeId: 'my-scope' })\n */\nexport function useApi<Q extends QueriesArray>(\n configs: QueryConfigArray<Q>,\n id?: string,\n): ContextValue<Q>;\n\nexport function useApi<Q extends QueriesArray>(\n configs: QueryConfigArray<Q>,\n optionsOrId?: UseApiOptions | string,\n): ContextValue<Q> {\n const options: UseApiOptions =\n typeof optionsOrId === \"string\"\n ? { scopeId: optionsOrId }\n : (optionsOrId ?? {});\n\n const { scopeId = \"default\", persistToAtoms = true } = options;\n\n // Global atom setters\n const setQueriesAtom = useSetAtom(queriesAtom);\n const setMutationsAtom = useSetAtom(mutationsAtom);\n\n // Update a single query in the global atom\n const updateQueryAtom = useCallback(\n (key: string, state: QueryStoreEntry) => {\n const compositeKey = getCompositeKey(scopeId, key);\n setQueriesAtom((prev) => ({\n ...prev,\n [compositeKey]: state,\n }));\n },\n [setQueriesAtom, scopeId],\n );\n\n // Update a single mutation in the global atom\n const updateMutationAtom = useCallback(\n (key: string, state: MutationStoreEntry) => {\n const compositeKey = getCompositeKey(scopeId, key);\n setMutationsAtom((prev) => ({\n ...prev,\n [compositeKey]: state,\n }));\n },\n [setMutationsAtom, scopeId],\n );\n\n // Enhanced query configs with atom persistence\n const enhancedQueryConfigs = useMemo(() => {\n const items = configs.filter((q): q is QueryItem<Q> => q.type === \"query\");\n\n return items\n .map((item) => {\n if (!item.queryConfig) return null;\n\n const hasValidQueryKey =\n Array.isArray(item.queryConfig.queryKey) &&\n item.queryConfig.queryKey.length > 0;\n const hasValidEndpoint =\n Array.isArray(item.queryConfig.endpoint) &&\n item.queryConfig.endpoint.length > 0;\n\n if (!hasValidQueryKey || !hasValidEndpoint) {\n return null;\n }\n\n const key = item.key;\n const originalOnStateChange = item.queryConfig.onStateChange;\n\n return {\n ...item.queryConfig,\n keyToMap: key,\n onStateChange: (state: MultipleQueryResponse<Q>[string]): void => {\n if (persistToAtoms) {\n updateQueryAtom(key, state);\n }\n originalOnStateChange?.(state);\n },\n options: item.queryConfig.options,\n };\n })\n .filter(Boolean) as unknown as Array<\n QueryProps<Q[number][\"key\"], Q[number][\"response\"]>\n >;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(configs),\n persistToAtoms,\n updateQueryAtom,\n ]);\n\n // Enhanced mutation configs with atom persistence\n const enhancedMutationItems = useMemo(() => {\n const items = configs.filter(\n (q): q is MutationItem<Q> => q.type === \"mutation\" && !!q.mutationConfig,\n );\n\n return items.map((item) => {\n const key = item.key;\n const originalOnStateChange = item.mutationConfig.onStateChange;\n\n return {\n ...item,\n mutationConfig: {\n ...item.mutationConfig,\n onStateChange: (state: MutationStoreEntry): void => {\n if (persistToAtoms) {\n updateMutationAtom(key, state);\n }\n originalOnStateChange?.(state);\n },\n },\n };\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(configs), persistToAtoms, updateMutationAtom]);\n\n const webSocketItems = useMemo(\n () =>\n configs.filter((q): q is ExtractWebSocket<Q> => q.type === \"websocket\"),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(configs)],\n );\n\n // Execute hooks\n const allQuery = useMultipleQuery<Q>(enhancedQueryConfigs);\n const allMutation = useMultipleMutation<Q>(enhancedMutationItems);\n const allWebSocket = useMultipleWebSocket<Q[number][\"key\"]>(webSocketItems);\n\n const queryKeys = enhancedQueryConfigs.map((el) => el.keyToMap);\n const mutationKeys = enhancedMutationItems.map((el) => el.key);\n\n const ref = useRef({ allQuery, allMutation, queryKeys, mutationKeys });\n useEffect(() => {\n ref.current = { allQuery, allMutation, queryKeys, mutationKeys };\n }, [allQuery, allMutation, queryKeys, mutationKeys]);\n\n const refreshQueries = useCallback(() => {\n ref.current.queryKeys.forEach((k) => {\n ref.current.allQuery[k]?.refetch();\n });\n }, []);\n\n return {\n allQuery,\n allMutation,\n allWebSocket,\n refreshQueries,\n };\n}\n\nexport default useApi;\n","import { useCallback, useEffect, useRef, useState } from 'react'\nimport { useApiConfigValue } from '../config'\nimport type { WebSocketResult } from '../types'\n\nexport const useWebSocket = (\n endpoint?: string, // specific socket endpoint if different from default\n options?: {\n onMessage?: (data: unknown) => void\n invalidateQueriesOnMessage?: Array<string>\n },\n): WebSocketResult => {\n const { websocketConfig } = useApiConfigValue()\n const { queryClient } = useApiConfigValue()\n const socketRef = useRef<WebSocket | null>(null)\n const [status, setStatus] = useState<'connecting' | 'open' | 'closed'>(\n 'closed',\n )\n const [lastMessage, setLastMessage] = useState<unknown>(null)\n\n const url = endpoint || websocketConfig?.url\n\n useEffect(() => {\n if (!url || (!websocketConfig?.autoConnect && !endpoint)) return\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setStatus('connecting')\n const ws = new WebSocket(url)\n socketRef.current = ws\n\n ws.onopen = () => {\n setStatus('open')\n console.log('WebSocket connected')\n }\n\n ws.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data)\n setLastMessage(data)\n\n // Global handler\n websocketConfig?.onMessage?.(data)\n\n // Local handler\n options?.onMessage?.(data)\n\n // Auto invalidation\n if (\n options?.invalidateQueriesOnMessage &&\n Array.isArray(options.invalidateQueriesOnMessage)\n ) {\n options.invalidateQueriesOnMessage.forEach((key) => {\n // Simple invalidation if message matches or triggers generic invalidation\n queryClient.invalidateQueries({ queryKey: [key], exact: false })\n })\n }\n } catch (e) {\n console.error('WebSocket message parse error', e)\n }\n }\n\n ws.onclose = () => {\n setStatus('closed')\n console.log('WebSocket disconnected')\n }\n\n return () => {\n ws.close()\n socketRef.current = null\n }\n }, [url, websocketConfig, queryClient, options, endpoint])\n\n const sendMessage = useCallback((message: unknown) => {\n if (socketRef.current?.readyState === WebSocket.OPEN) {\n socketRef.current.send(JSON.stringify(message))\n } else {\n console.warn('WebSocket is not open')\n }\n }, [])\n\n return {\n lastMessage,\n sendMessage,\n status,\n }\n}\n","import { useCallback } from 'react'\nimport { useApiConfigValue } from '../config'\n\nexport const useInvalidateQueries = () => {\n const { queryClient } = useApiConfigValue()\n const invalidateQueries = useCallback(\n async (queryKeys: Array<Array<string>>) => {\n await Promise.all(\n queryKeys.map(async (queryKey) => {\n await queryClient.invalidateQueries<Array<string>>({ queryKey, exact: false })\n \n }),\n )\n },\n [queryClient],\n )\n\n return { invalidateQueries }\n}\n","import { useMemo } from \"react\";\nimport { useAtomValue } from \"jotai\";\nimport {\n DEFAULT_MUTATION_ENTRY,\n DEFAULT_QUERY_ENTRY,\n mutationsAtom,\n queriesAtom,\n} from \"../atoms\";\nimport type { MutationStoreEntry, QueryStoreEntry } from \"../atoms\";\nimport type { QueriesArray } from \"../types\";\n\n// ============================================================================\n// Bulk Query/Mutation Hooks\n// ============================================================================\n\n/**\n * Hook to read all queries for a scope.\n */\nexport function useJotaiQueries<Q extends QueriesArray>(options: {\n scopeId: string;\n}) {\n const { scopeId } = options;\n const allQueries = useAtomValue(queriesAtom) as Record<\n string,\n QueryStoreEntry<Q>\n >;\n\n return useMemo(() => {\n const prefix = `${scopeId}:`;\n const scopeQueries: Record<string, QueryStoreEntry<Q>> = {};\n\n for (const [key, value] of Object.entries(allQueries)) {\n if (key.startsWith(prefix)) {\n scopeQueries[key.slice(prefix.length)] = value;\n }\n }\n\n return scopeQueries;\n }, [allQueries, scopeId]);\n}\n\n/**\n * Hook to read all mutations for a scope.\n */\nexport function useJotaiMutations<Q extends QueriesArray>(options: {\n scopeId: string;\n}) {\n const { scopeId } = options;\n const allMutations =\n useAtomValue<Record<string, MutationStoreEntry<Q>>>(mutationsAtom);\n\n return useMemo(() => {\n const prefix = `${scopeId}:`;\n const scopeMutations: Record<string, MutationStoreEntry<Q>> = {};\n for (const [key, value] of Object.entries(allMutations)) {\n if (key.startsWith(prefix)) {\n scopeMutations[key.slice(prefix.length)] = value;\n }\n }\n\n return scopeMutations;\n }, [allMutations, scopeId]);\n}\n\n// ============================================================================\n// Utility Exports\n// ============================================================================\n\nexport { DEFAULT_QUERY_ENTRY, DEFAULT_MUTATION_ENTRY };\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport equal from \"fast-deep-equal\";\nimport {\n DEFAULT_MUTATION_ENTRY,\n DEFAULT_QUERY_ENTRY,\n useJotaiMutations,\n useJotaiQueries,\n} from \".\";\nimport type { GetApiValuesFunction, QueriesArray } from \"../types\";\n\nconst getValueAtPath = (\n obj: unknown,\n path: string,\n defaultObj?: unknown,\n): unknown => {\n if (!path) return undefined;\n const normalized = path.replace(/\\[(\\d+)\\]/g, \".$1\");\n const parts = normalized.split(\".\").filter(Boolean);\n let current: unknown = obj;\n\n for (let index = 0; index < parts.length; index++) {\n const part = parts[index];\n if (current == null) return undefined;\n if (typeof current !== \"object\") return undefined;\n\n const record = current as Record<string, unknown>;\n\n // Only apply the default entry when the *root* key is missing (e.g. queryKey not found).\n // For deeper missing paths, return undefined so callers can use the provided defaultValue.\n if (!(part in record)) {\n if (index === 0 && defaultObj !== undefined) {\n current = defaultObj;\n continue;\n }\n return undefined;\n }\n\n current = record[part];\n }\n\n return current;\n};\n\ninterface UseApiValuesProps {\n scopeId: string;\n}\n\nexport const useApiValues = <Q extends QueriesArray>({\n scopeId,\n}: UseApiValuesProps) => {\n const allQuery = useJotaiQueries<Q>({ scopeId });\n const allMutation = useJotaiMutations<Q>({ scopeId });\n const subscriptions = useRef(new Map<string, unknown>());\n const [trigger, setTrigger] = useState(0);\n\n const dataRef = useRef({\n query: allQuery,\n mutation: allMutation,\n });\n\n // Sync dataRef with latest values\n useEffect(() => {\n let internalTrigger = false;\n const currentQuery = dataRef.current.query;\n subscriptions.current.forEach((_, key) => {\n const [type, keyPath] = key.split(\":\");\n if (type === \"query\") {\n const newValue = getValueAtPath(allQuery, keyPath);\n const oldValue = getValueAtPath(currentQuery, keyPath);\n // console.log(key, !equal(newValue, oldValue), newValue, oldValue)\n if (!equal(newValue, oldValue)) {\n internalTrigger = true;\n }\n }\n if (type === \"mutation\") {\n const newValue = getValueAtPath(allMutation, keyPath);\n const oldValue = getValueAtPath(dataRef.current.mutation, keyPath);\n if (!equal(newValue, oldValue)) {\n internalTrigger = true;\n }\n }\n });\n dataRef.current = {\n query: allQuery,\n mutation: allMutation,\n };\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (internalTrigger) {\n setTrigger((v) => v + 1);\n }\n }, [allQuery, allMutation]);\n\n // get che legge dallo store e registra le dipendenze\n const get = useCallback(\n (\n type: Parameters<GetApiValuesFunction<Q>>[0],\n key: Parameters<GetApiValuesFunction<Q>>[1],\n defaultValue?: Parameters<GetApiValuesFunction<Q>>[2],\n ) => {\n const keyMap = `${type}:${key}`;\n const defaultQueries =\n type === \"query\"\n ? DEFAULT_QUERY_ENTRY\n : // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n type === \"mutation\"\n ? DEFAULT_MUTATION_ENTRY\n : undefined;\n\n const value =\n getValueAtPath(dataRef.current[type], String(key), defaultQueries) ??\n defaultValue;\n subscriptions.current.set(keyMap, value);\n return subscriptions.current.get(keyMap);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [trigger],\n ) as GetApiValuesFunction<Q>;\n\n return { get };\n};\n","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/hydration.ts\nimport { tryResolveSync } from \"./thenable.js\";\nimport { noop } from \"./utils.js\";\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData, shouldRedactErrors) {\n const dehydratePromise = () => {\n const promise = query.promise?.then(serializeData).catch((error) => {\n if (!shouldRedactErrors(error)) {\n return Promise.reject(error);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n });\n promise?.catch(noop);\n return promise;\n };\n return {\n dehydratedAt: Date.now(),\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: dehydratePromise()\n },\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction defaultShouldRedactErrors(_) {\n return true;\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const shouldRedactErrors = options.shouldRedactErrors ?? client.getDefaultOptions().dehydrate?.shouldRedactErrors ?? defaultShouldRedactErrors;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData, shouldRedactErrors)] : []\n );\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(\n ({ queryKey, state, queryHash, meta, promise, dehydratedAt }) => {\n const syncData = promise ? tryResolveSync(promise) : void 0;\n const rawData = state.data === void 0 ? syncData?.data : state.data;\n const data = rawData === void 0 ? rawData : deserializeData(rawData);\n let query = queryCache.get(queryHash);\n const existingQueryIsPending = query?.state.status === \"pending\";\n const existingQueryIsFetching = query?.state.fetchStatus === \"fetching\";\n if (query) {\n const hasNewerSyncData = syncData && // We only need this undefined check to handle older dehydration\n // payloads that might not have dehydratedAt\n dehydratedAt !== void 0 && dehydratedAt > query.state.dataUpdatedAt;\n if (state.dataUpdatedAt > query.state.dataUpdatedAt || hasNewerSyncData) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: \"idle\",\n status: data !== void 0 ? \"success\" : state.status\n }\n );\n }\n if (promise && !existingQueryIsPending && !existingQueryIsFetching && // Only hydrate if dehydration is newer than any existing data,\n // this is always true for new queries\n (dehydratedAt === void 0 || dehydratedAt > query.state.dataUpdatedAt)) {\n query.fetch(void 0, {\n // RSC transformed promises are not thenable\n initialPromise: Promise.resolve(promise).then(deserializeData)\n }).catch(noop);\n }\n }\n );\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","// src/persist.ts\nimport { dehydrate, hydrate } from \"@tanstack/query-core\";\nvar cacheEventTypes = [\"added\", \"removed\", \"updated\"];\nfunction isCacheEventType(eventType) {\n return cacheEventTypes.includes(eventType);\n}\nasync function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1e3 * 60 * 60 * 24,\n buster = \"\",\n hydrateOptions\n}) {\n try {\n const persistedClient = await persister.restoreClient();\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge;\n const busted = persistedClient.buster !== buster;\n if (expired || busted) {\n return persister.removeClient();\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions);\n }\n } else {\n return persister.removeClient();\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(err);\n console.warn(\n \"Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.\"\n );\n }\n await persister.removeClient();\n throw err;\n }\n}\nasync function persistQueryClientSave({\n queryClient,\n persister,\n buster = \"\",\n dehydrateOptions\n}) {\n const persistClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions)\n };\n await persister.persistClient(persistClient);\n}\nfunction persistQueryClientSubscribe(props) {\n const unsubscribeQueryCache = props.queryClient.getQueryCache().subscribe((event) => {\n if (isCacheEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n const unsubscribeMutationCache = props.queryClient.getMutationCache().subscribe((event) => {\n if (isCacheEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n return () => {\n unsubscribeQueryCache();\n unsubscribeMutationCache();\n };\n}\nfunction persistQueryClient(props) {\n let hasUnsubscribed = false;\n let persistQueryClientUnsubscribe;\n const unsubscribe = () => {\n hasUnsubscribed = true;\n persistQueryClientUnsubscribe?.();\n };\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props);\n }\n });\n return [unsubscribe, restorePromise];\n}\nexport {\n persistQueryClient,\n persistQueryClientRestore,\n persistQueryClientSave,\n persistQueryClientSubscribe\n};\n//# sourceMappingURL=persist.js.map","\"use client\";\n\n// src/PersistQueryClientProvider.tsx\nimport * as React from \"react\";\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe\n} from \"@tanstack/query-persist-client-core\";\nimport { IsRestoringProvider, QueryClientProvider } from \"@tanstack/react-query\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}) => {\n const [isRestoring, setIsRestoring] = React.useState(true);\n const refs = React.useRef({ persistOptions, onSuccess, onError });\n const didRestore = React.useRef(false);\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess, onError };\n });\n React.useEffect(() => {\n const options = {\n ...refs.current.persistOptions,\n queryClient: props.client\n };\n if (!didRestore.current) {\n didRestore.current = true;\n persistQueryClientRestore(options).then(() => refs.current.onSuccess?.()).catch(() => refs.current.onError?.()).finally(() => {\n setIsRestoring(false);\n });\n }\n return isRestoring ? void 0 : persistQueryClientSubscribe(options);\n }, [props.client, isRestoring]);\n return /* @__PURE__ */ jsx(QueryClientProvider, { ...props, children: /* @__PURE__ */ jsx(IsRestoringProvider, { value: isRestoring, children }) });\n};\nexport {\n PersistQueryClientProvider\n};\n//# sourceMappingURL=PersistQueryClientProvider.js.map","import { QueryClientProvider } from \"@tanstack/react-query\";\nimport { PersistQueryClientProvider } from \"@tanstack/react-query-persist-client\";\nimport { useApiConfigValue } from \"../config\";\nimport type { PropsWithChildren } from \"react\";\n\nexport const QueriesProvider: React.FC<PropsWithChildren> = ({ children }) => {\n const { queryClient, persistOptions } = useApiConfigValue();\n\n if (persistOptions?.persister) {\n return (\n <PersistQueryClientProvider\n client={queryClient}\n persistOptions={persistOptions}\n >\n {children}\n </PersistQueryClientProvider>\n );\n }\n\n return (\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n );\n};\n","export const algorithm = {\n name: 'AES-GCM',\n length: 256,\n}\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport const str2ab = (str: string): ArrayBuffer => {\n return encoder.encode(str).buffer\n}\n\nexport const ab2str = (buf: ArrayBuffer): string => {\n return decoder.decode(buf)\n}\n\nexport const importKey = async (secretKey: string): Promise<CryptoKey> => {\n const keyData = encoder.encode(secretKey)\n const keyHash = await window.crypto.subtle.digest('SHA-256', keyData)\n\n return window.crypto.subtle.importKey('raw', keyHash, algorithm, false, [\n 'encrypt',\n 'decrypt',\n ])\n}\n\nexport const encryptData = async (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any,\n secretKey: string,\n): Promise<string> => {\n try {\n const key = await importKey(secretKey)\n const iv = window.crypto.getRandomValues(new Uint8Array(12))\n const encodedData = new TextEncoder().encode(JSON.stringify(data))\n\n const encryptedContent = await window.crypto.subtle.encrypt(\n {\n name: algorithm.name,\n iv: iv,\n },\n key,\n encodedData,\n )\n\n // Combine IV and encrypted data, then encode to base64 for transport\n const encryptedArray = new Uint8Array(\n iv.byteLength + encryptedContent.byteLength,\n )\n encryptedArray.set(iv, 0)\n encryptedArray.set(new Uint8Array(encryptedContent), iv.byteLength)\n\n // Convert to base64 string\n // Using a binary string conversion to ensure btoa works correctly\n let binary = ''\n const bytes = encryptedArray\n const len = bytes.byteLength\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i])\n }\n return window.btoa(binary)\n } catch (error) {\n console.error('Encryption failed:', error)\n throw new Error('Encryption failed')\n }\n}\n\nexport const decryptData = async (\n encryptedData: string,\n secretKey: string,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n): Promise<any> => {\n try {\n const key = await importKey(secretKey)\n\n const binaryString = window.atob(encryptedData)\n const len = binaryString.length\n const bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n\n // Extract IV (first 12 bytes) and content\n const iv = bytes.slice(0, 12)\n const content = bytes.slice(12)\n\n const decryptedContent = await window.crypto.subtle.decrypt(\n {\n name: algorithm.name,\n iv: iv,\n },\n key,\n content,\n )\n\n const decodedData = new TextDecoder().decode(decryptedContent)\n return JSON.parse(decodedData)\n } catch (error) {\n console.error('Decryption failed:', error)\n throw new Error('Decryption failed')\n }\n}\n"],"names":["apiClient","axios","create","timeout","headers","interceptors","response","use","error","Error","_a","data","message","_b","status","request","apiRequest","method","url","body","converter","isPrimitive","finalUrl","finalBody","undefined","pathParams","match","Object","assign","forEach","param","key","substring","replace","String","console","fetchRequest","_endpoints","custom","api","defaultQueryClient","QueryClient","defaultOptions","queries","retry","atom","apiConfigAtom","useValue","useApiConfigValue","useState","useApiConfigState","useReset","useApiConfigReset","atomStateGenerator","defaultValue","endpoints","requestFn","queryClient","persist","DEFAULT_QUERY_ENTRY","freeze","isLoading","isLoadingMapped","isFetching","isPending","isSuccess","isError","isStale","dataUpdatedAt","errorUpdatedAt","fetchStatus","refetch","Promise","resolve","DEFAULT_MUTATION_ENTRY","variables","submittedAt","isIdle","mutate","mutateAsync","reset","context","failureCount","failureReason","isPaused","queriesAtomWithStorage","atomWithStorage","createJSONStorage","storage","getOnInit","queriesAtomBase","queriesAtom","get","persistQueries","set","update","mutationsAtom","getCompositeKey","scopeId","createScopeQueriesAtom","allQueries","prefix","scopeQueries","value","entries","startsWith","slice","length","newQueries","keys","createScopeMutationsAtom","allMutations","scopeMutations","newMutations","createQuerySelector","queryKey","compositeKey","selectAtom","entry","a","b","createMutationSelector","mutationKey","mutations","__rest","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","propertyIsEnumerable","SuppressedError","suppressed","name","useQueryApi","options","id","endpoint","enabled","disableAuthControl","onDataChanged","customQueryFn","disableLoading","restOptions","validateAuthFn","defaultHeaders","fullEndpoint","useMemo","path","baseUrl","filter","Boolean","join","isLogged","queryFn","useCallback","res","mergedHeaders","enabledFinal","result","useQuery","retryDelay","ref","useRef","useEffect","current","setQueriesAtom","useSetAtom","queryKeyStr","prev","useMutateApi","_c","queryKeyToInvalidate","customRequest","isTest","notification","showNotification","executeMutation","isValidAuth","onSuccess","onMutateResult","notificationProps","success","type","qKey","invalidateQueries","exact","onError","useMutation","mutationFn","setMutationsAtom","useMultipleQuery","t0","$","t1","settings","t2","generateEndpoint","t3","t4","t5","endpoint_0","generateQueryFn","Symbol","for","results","t6","t7","setting","t8","rest","map","reduce","index","setting_0","keyToMap","combine","result_0","useQueries","t10","t9","setting_1","keyToMap_0","onStateChange","currentResult","prevResult","currentData","prevData","defaultState","mutationReducer","state","action","initMutationStates","configs","states","config","useMultipleMutation","reducerStates","dispatchReducer","useReducer","getState","dispatch","mutationOptions","mutateOptions","Date","now","endpointKey","_d","err","_e","_f","_g","allMutation","item","mutationConfig","useMultipleWebSocket","websocketConfig","socketsRef","Map","statuses","setStatuses","lastMessages","setLastMessages","stableConfigs","sockets","shouldConnect","autoConnect","has","ws","WebSocket","onopen","log","onmessage","event","JSON","parse","onMessage","invalidateQueriesOnMessage","Array","isArray","onclose","delete","close","createSendMessage","readyState","OPEN","send","stringify","warn","mapped","lastMessage","sendMessage","useApi","optionsOrId","persistToAtoms","updateQueryAtom","updateMutationAtom","enhancedQueryConfigs","items","q","queryConfig","hasValidQueryKey","hasValidEndpoint","originalOnStateChange","enhancedMutationItems","webSocketItems","allQuery","allWebSocket","queryKeys","el","mutationKeys","refreshQueries","k","useWebSocket","socketRef","setStatus","setLastMessage","useInvalidateQueries","all","useJotaiQueries","useAtomValue","useJotaiMutations","getValueAtPath","obj","defaultObj","normalized","parts","split","part","record","useApiValues","subscriptions","trigger","setTrigger","dataRef","query","mutation","internalTrigger","currentQuery","_","keyPath","newValue","oldValue","equal","v","keyMap","defaultQueries","noop","tryResolveSync","promise","then","catch","defaultTransformerFn","dehydrateMutation","scope","meta","dehydrateQuery","serializeData","shouldRedactErrors","dehydratePromise","reject","process","env","NODE_ENV","queryHash","dehydratedAt","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","defaultShouldRedactErrors","dehydrate","client","filterMutation","shouldDehydrateMutation","getDefaultOptions","getMutationCache","getAll","flatMap","filterQuery","shouldDehydrateQuery","getQueryCache","hydrate","dehydratedState","mutationCache","queryCache","deserializeData","build","syncData","rawData","existingQueryIsPending","existingQueryIsFetching","hasNewerSyncData","_ignored","serializedState","setState","fetch","initialPromise","cacheEventTypes","isCacheEventType","eventType","includes","persistQueryClientRestore","persister","maxAge","buster","hydrateOptions","persistedClient","restoreClient","timestamp","expired","busted","removeClient","clientState","persistQueryClientSave","dehydrateOptions","persistClient","persistQueryClientSubscribe","props","unsubscribeQueryCache","subscribe","unsubscribeMutationCache","PersistQueryClientProvider","children","persistOptions","isRestoring","setIsRestoring","React","refs","didRestore","finally","jsx","QueryClientProvider","IsRestoringProvider","QueriesProvider","_jsx","algorithm","encoder","TextEncoder","decoder","TextDecoder","str2ab","str","encode","buffer","ab2str","buf","decode","importKey","secretKey","keyData","keyHash","window","crypto","subtle","digest","encryptData","iv","getRandomValues","Uint8Array","encodedData","encryptedContent","encrypt","encryptedArray","byteLength","binary","bytes","len","fromCharCode","btoa","decryptData","encryptedData","binaryString","atob","charCodeAt","content","decryptedContent","decrypt","decodedData"],"mappings":"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","x_google_ignoreList":[3,14,15,16,17,18]}
|