@xylex-group/athena 1.4.1 → 1.6.0

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/dist/react.d.ts CHANGED
@@ -1,6 +1,237 @@
1
1
  import { p as AthenaGatewayHookConfig, q as AthenaGatewayHookResult } from './errors-DQerAaXC.js';
2
2
  export { r as AthenaDeletePayload, s as AthenaFetchPayload, e as AthenaGatewayCallOptions, h as AthenaGatewayError, i as AthenaGatewayErrorCode, f as AthenaGatewayErrorDetails, t as AthenaGatewayResponse, u as AthenaInsertPayload, g as AthenaRpcCallOptions, j as AthenaRpcFilter, k as AthenaRpcFilterOperator, l as AthenaRpcOrder, m as AthenaRpcPayload, v as AthenaUpdatePayload, o as isAthenaGatewayError } from './errors-DQerAaXC.js';
3
+ import * as react from 'react';
4
+ import { ReactNode } from 'react';
3
5
 
4
6
  declare function useAthenaGateway(config?: AthenaGatewayHookConfig): AthenaGatewayHookResult;
5
7
 
6
- export { AthenaGatewayHookConfig, AthenaGatewayHookResult, useAthenaGateway };
8
+ type QueryStatus = 'idle' | 'loading' | 'success' | 'error';
9
+ type AthenaCacheMode = 'none' | 'memory';
10
+ type QueryKey = readonly unknown[] | string;
11
+ interface AthenaQueryError {
12
+ message: string;
13
+ status?: number;
14
+ code?: string;
15
+ details?: unknown;
16
+ raw?: unknown;
17
+ }
18
+ type AthenaRetryDelay = number | ((attempt: number) => number);
19
+ type AthenaRetryCount = number | false;
20
+ interface AthenaResponseLike<T> {
21
+ data?: T | null;
22
+ error?: unknown;
23
+ status?: number;
24
+ raw?: unknown;
25
+ }
26
+ interface AthenaQueryRequestLog {
27
+ requestId: number;
28
+ queryKey: QueryKey;
29
+ queryKeyToken: string;
30
+ attempt: number;
31
+ startedAt: number;
32
+ endedAt?: number;
33
+ }
34
+ interface AthenaMutationRequestLog<TVariables = unknown> {
35
+ requestId: number;
36
+ mutationKey?: QueryKey;
37
+ mutationKeyToken?: string;
38
+ attempt: number;
39
+ startedAt: number;
40
+ endedAt?: number;
41
+ variables?: TVariables;
42
+ }
43
+ interface AthenaQueryResult<TData = unknown> {
44
+ data: TData | undefined;
45
+ error: AthenaQueryError | null;
46
+ status: number;
47
+ raw: unknown;
48
+ }
49
+ interface AthenaMutationResultData<TData = unknown> {
50
+ data: TData | undefined;
51
+ error: AthenaQueryError | null;
52
+ status: number;
53
+ raw: unknown;
54
+ }
55
+ interface AthenaQueryState<TData = unknown> {
56
+ status: QueryStatus;
57
+ isFetching: boolean;
58
+ data: TData | undefined;
59
+ error: AthenaQueryError | null;
60
+ lastRequest?: AthenaQueryRequestLog;
61
+ lastResponse?: unknown;
62
+ updatedAt?: number;
63
+ }
64
+ interface AthenaMutationState<TVariables = unknown, TData = unknown> {
65
+ status: QueryStatus;
66
+ data: TData | undefined;
67
+ error: AthenaQueryError | null;
68
+ isLoading: boolean;
69
+ lastVariables?: TVariables;
70
+ lastRequest?: AthenaMutationRequestLog<TVariables>;
71
+ lastResponse?: unknown;
72
+ updatedAt?: number;
73
+ }
74
+ interface UseQueryOptions<TQueryFnData, TData = TQueryFnData> {
75
+ queryKey: QueryKey;
76
+ queryFn: () => Promise<TQueryFnData>;
77
+ enabled?: boolean;
78
+ initialData?: TData;
79
+ refetchOnMount?: boolean;
80
+ refetchOnWindowFocus?: boolean;
81
+ refetchOnReconnect?: boolean;
82
+ retry?: AthenaRetryCount;
83
+ retryDelay?: AthenaRetryDelay;
84
+ select?: (data: TQueryFnData) => TData;
85
+ onSuccess?: (data: TData) => void;
86
+ onError?: (error: AthenaQueryError) => void;
87
+ onSettled?: (data: TData | undefined, error: AthenaQueryError | null) => void;
88
+ }
89
+ interface UseQueryResult<TData> {
90
+ data: TData | undefined;
91
+ error: AthenaQueryError | null;
92
+ isLoading: boolean;
93
+ isFetching: boolean;
94
+ isSuccess: boolean;
95
+ isError: boolean;
96
+ status: QueryStatus;
97
+ refetch: () => Promise<AthenaQueryResult<TData>>;
98
+ reset: () => void;
99
+ lastResponse?: unknown;
100
+ lastRequest?: AthenaQueryRequestLog;
101
+ }
102
+ interface UseMutationOptions<TVariables, TMutationFnData, TData = TMutationFnData> {
103
+ mutationFn: (variables: TVariables) => Promise<TMutationFnData>;
104
+ mutationKey?: QueryKey;
105
+ onMutate?: (variables: TVariables) => void | Promise<void>;
106
+ onSuccess?: (data: TData, variables: TVariables) => void;
107
+ onError?: (error: AthenaQueryError, variables: TVariables) => void;
108
+ onSettled?: (data: TData | undefined, error: AthenaQueryError | null, variables: TVariables) => void;
109
+ select?: (data: TMutationFnData) => TData;
110
+ retry?: AthenaRetryCount;
111
+ retryDelay?: AthenaRetryDelay;
112
+ }
113
+ interface UseMutationResult<TVariables, TData> {
114
+ mutate: (variables: TVariables) => void;
115
+ mutateAsync: (variables: TVariables) => Promise<TData>;
116
+ data: TData | undefined;
117
+ error: AthenaQueryError | null;
118
+ isIdle: boolean;
119
+ isLoading: boolean;
120
+ isSuccess: boolean;
121
+ isError: boolean;
122
+ status: QueryStatus;
123
+ reset: () => void;
124
+ lastResponse?: unknown;
125
+ lastVariables?: TVariables;
126
+ lastRequest?: AthenaMutationRequestLog<TVariables>;
127
+ }
128
+ interface AthenaCachePolicy {
129
+ mode?: AthenaCacheMode;
130
+ staleTime?: number;
131
+ gcTime?: number;
132
+ }
133
+ interface AthenaQueryDefaults {
134
+ retry?: AthenaRetryCount;
135
+ retryDelay?: AthenaRetryDelay;
136
+ refetchOnMount?: boolean;
137
+ refetchOnWindowFocus?: boolean;
138
+ refetchOnReconnect?: boolean;
139
+ }
140
+ interface AthenaMutationDefaults {
141
+ retry?: AthenaRetryCount;
142
+ retryDelay?: AthenaRetryDelay;
143
+ }
144
+ interface AthenaQueryClientConfig {
145
+ cache?: AthenaCachePolicy;
146
+ defaultQueryOptions?: AthenaQueryDefaults;
147
+ defaultMutationOptions?: AthenaMutationDefaults;
148
+ }
149
+ type AthenaRuntimeEventType = 'query_updated' | 'query_reset' | 'query_gc' | 'mutation_updated' | 'mutation_reset';
150
+ interface AthenaRuntimeBaseEvent {
151
+ type: AthenaRuntimeEventType;
152
+ timestamp: number;
153
+ }
154
+ interface AthenaQueryEvent extends AthenaRuntimeBaseEvent {
155
+ type: 'query_updated' | 'query_reset' | 'query_gc';
156
+ key: string;
157
+ state: AthenaQueryState<unknown>;
158
+ }
159
+ interface AthenaMutationEvent extends AthenaRuntimeBaseEvent {
160
+ type: 'mutation_updated' | 'mutation_reset';
161
+ key: string;
162
+ state: AthenaMutationState<unknown, unknown>;
163
+ }
164
+ type AthenaRuntimeEvent = AthenaQueryEvent | AthenaMutationEvent;
165
+ interface AthenaStateAdapter {
166
+ onQueryUpdated?: (event: AthenaQueryEvent) => void;
167
+ onMutationUpdated?: (event: AthenaMutationEvent) => void;
168
+ onEvent?: (event: AthenaRuntimeEvent) => void;
169
+ }
170
+ type AthenaUnsubscribe = () => void;
171
+
172
+ type ExecuteQueryInput<TQueryFnData, TData> = {
173
+ queryKey: QueryKey;
174
+ queryKeyToken: string;
175
+ queryFn: () => Promise<TQueryFnData>;
176
+ select?: (data: TQueryFnData) => TData;
177
+ retry?: number | false;
178
+ retryDelay?: number | ((attempt: number) => number);
179
+ dedupe?: boolean;
180
+ force?: boolean;
181
+ };
182
+ type ExecuteMutationInput<TVariables, TMutationFnData, TData> = {
183
+ mutationKey?: QueryKey;
184
+ mutationKeyToken: string;
185
+ variables: TVariables;
186
+ mutationFn: (variables: TVariables) => Promise<TMutationFnData>;
187
+ select?: (data: TMutationFnData) => TData;
188
+ retry?: number | false;
189
+ retryDelay?: number | ((attempt: number) => number);
190
+ };
191
+ declare class AthenaQueryClient {
192
+ private readonly queryEntries;
193
+ private readonly mutationEntries;
194
+ private readonly inflightQueries;
195
+ private readonly eventSubscribers;
196
+ private readonly adapters;
197
+ private requestCounter;
198
+ readonly config: AthenaQueryClientConfig;
199
+ readonly defaultQueryOptions: AthenaQueryDefaults;
200
+ readonly defaultMutationOptions: AthenaMutationDefaults;
201
+ constructor(config?: AthenaQueryClientConfig);
202
+ getQueryKeyToken(queryKey: QueryKey): string;
203
+ getMutationKeyToken(mutationKey?: QueryKey): string;
204
+ getQueryState<TData = unknown>(key: string): AthenaQueryState<TData>;
205
+ getMutationState<TVariables = unknown, TData = unknown>(key: string): AthenaMutationState<TVariables, TData>;
206
+ subscribeQuery(key: string, listener: () => void): AthenaUnsubscribe;
207
+ subscribeMutation(key: string, listener: () => void): AthenaUnsubscribe;
208
+ subscribeEvents(listener: (event: AthenaRuntimeEvent) => void): AthenaUnsubscribe;
209
+ attachAdapter(adapter: AthenaStateAdapter): AthenaUnsubscribe;
210
+ resetQuery(queryKey: QueryKey): void;
211
+ resetMutation(mutationKey?: QueryKey): void;
212
+ executeQuery<TQueryFnData, TData = TQueryFnData>(input: ExecuteQueryInput<TQueryFnData, TData>): Promise<AthenaQueryResult<TData>>;
213
+ executeMutation<TVariables, TMutationFnData, TData = TMutationFnData>(input: ExecuteMutationInput<TVariables, TMutationFnData, TData>): Promise<AthenaMutationResultData<TData>>;
214
+ private ensureQueryEntry;
215
+ private ensureMutationEntry;
216
+ private scheduleQueryGc;
217
+ private scheduleMutationGc;
218
+ private setQueryState;
219
+ private setMutationState;
220
+ private emitEvent;
221
+ }
222
+ declare function createAthenaQueryClient(config?: AthenaQueryClientConfig): AthenaQueryClient;
223
+ declare function attachStateAdapter(client: AthenaQueryClient, adapter: AthenaStateAdapter): AthenaUnsubscribe;
224
+
225
+ interface AthenaQueryClientProviderProps {
226
+ client?: AthenaQueryClient;
227
+ config?: AthenaQueryClientConfig;
228
+ children: ReactNode;
229
+ }
230
+ declare function AthenaQueryClientProvider(props: AthenaQueryClientProviderProps): react.FunctionComponentElement<react.ProviderProps<AthenaQueryClient | null>>;
231
+ declare function useAthenaQueryClient(): AthenaQueryClient;
232
+
233
+ declare function useQuery<TQueryFnData, TData = TQueryFnData>(options: UseQueryOptions<TQueryFnData, TData>): UseQueryResult<TData>;
234
+
235
+ declare function useMutation<TVariables, TMutationFnData, TData = TMutationFnData>(options: UseMutationOptions<TVariables, TMutationFnData, TData>): UseMutationResult<TVariables, TData>;
236
+
237
+ export { type AthenaCacheMode, type AthenaCachePolicy, AthenaGatewayHookConfig, AthenaGatewayHookResult, type AthenaMutationDefaults, type AthenaMutationEvent, type AthenaMutationRequestLog, type AthenaMutationResultData, type AthenaMutationState, AthenaQueryClient, type AthenaQueryClientConfig, AthenaQueryClientProvider, type AthenaQueryDefaults, type AthenaQueryError, type AthenaQueryEvent, type AthenaQueryRequestLog, type AthenaQueryResult, type AthenaQueryState, type AthenaResponseLike, type AthenaRetryCount, type AthenaRetryDelay, type AthenaRuntimeBaseEvent, type AthenaRuntimeEvent, type AthenaRuntimeEventType, type AthenaStateAdapter, type AthenaUnsubscribe, type QueryKey, type QueryStatus, type UseMutationOptions, type UseMutationResult, type UseQueryOptions, type UseQueryResult, attachStateAdapter, createAthenaQueryClient, useAthenaGateway, useAthenaQueryClient, useMutation, useQuery };