@eminuckan/spine 0.2.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/CHANGELOG.md +47 -0
- package/LICENSE +21 -0
- package/README.md +425 -0
- package/dist/api-client/index.d.ts +3 -0
- package/dist/api-client/index.js +4 -0
- package/dist/api-client/server.d.ts +4 -0
- package/dist/api-client/server.js +5 -0
- package/dist/api-client-Ftxqm3Ep.js +212 -0
- package/dist/api-client-Ftxqm3Ep.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.js +0 -0
- package/dist/auth/server.d.ts +3 -0
- package/dist/auth/server.js +6 -0
- package/dist/auth.server-C979TR6W.js +724 -0
- package/dist/auth.server-C979TR6W.js.map +1 -0
- package/dist/auth.server-DU-x2LPA.js +5 -0
- package/dist/identity/index.d.ts +4 -0
- package/dist/identity/index.js +3 -0
- package/dist/identity/server.d.ts +4 -0
- package/dist/identity/server.js +4 -0
- package/dist/identity-CFa1txoj.js +235 -0
- package/dist/identity-CFa1txoj.js.map +1 -0
- package/dist/index-BIJOC8Fb.d.ts +272 -0
- package/dist/index-BIJOC8Fb.d.ts.map +1 -0
- package/dist/index-Bt9XE6gj.d.ts +104 -0
- package/dist/index-Bt9XE6gj.d.ts.map +1 -0
- package/dist/index-C2hGpzGr.d.ts +74 -0
- package/dist/index-C2hGpzGr.d.ts.map +1 -0
- package/dist/index-CfQsb3l_.d.ts +170 -0
- package/dist/index-CfQsb3l_.d.ts.map +1 -0
- package/dist/index-D6RK_5vm.d.ts +199 -0
- package/dist/index-D6RK_5vm.d.ts.map +1 -0
- package/dist/index-DrttYPAj.d.ts +30 -0
- package/dist/index-DrttYPAj.d.ts.map +1 -0
- package/dist/index-geY2ynnN.d.ts +141 -0
- package/dist/index-geY2ynnN.d.ts.map +1 -0
- package/dist/index-kr8Wk7v5.d.ts +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +10 -0
- package/dist/logging/index.d.ts +3 -0
- package/dist/logging/index.js +3 -0
- package/dist/logging-_h2mi3L9.js +118 -0
- package/dist/logging-_h2mi3L9.js.map +1 -0
- package/dist/permissions/index.d.ts +2 -0
- package/dist/permissions/index.js +3 -0
- package/dist/permissions-D5ScGGnd.js +281 -0
- package/dist/permissions-D5ScGGnd.js.map +1 -0
- package/dist/query-client/index.d.ts +2 -0
- package/dist/query-client/index.js +3 -0
- package/dist/query-client-DRPQIKHX.js +174 -0
- package/dist/query-client-DRPQIKHX.js.map +1 -0
- package/dist/react-router/index.d.ts +12 -0
- package/dist/react-router/index.js +10 -0
- package/dist/react-router/server.d.ts +18 -0
- package/dist/react-router/server.js +17 -0
- package/dist/redis-session-storage.server-DhufyPjd.js +250 -0
- package/dist/redis-session-storage.server-DhufyPjd.js.map +1 -0
- package/dist/server-BoeUiXSh.d.ts +40 -0
- package/dist/server-BoeUiXSh.d.ts.map +1 -0
- package/dist/server-C-DiVP9e.js +185 -0
- package/dist/server-C-DiVP9e.js.map +1 -0
- package/dist/server-CLbksnvg.d.ts +144 -0
- package/dist/server-CLbksnvg.d.ts.map +1 -0
- package/dist/server-CNp6gjFE.js +78 -0
- package/dist/server-CNp6gjFE.js.map +1 -0
- package/dist/server-CXGaRaiS.d.ts +256 -0
- package/dist/server-CXGaRaiS.d.ts.map +1 -0
- package/dist/server-CiSbg-9C.js +352 -0
- package/dist/server-CiSbg-9C.js.map +1 -0
- package/dist/server-DLgH3FRR.js +312 -0
- package/dist/server-DLgH3FRR.js.map +1 -0
- package/dist/server-DazqdM63.d.ts +93 -0
- package/dist/server-DazqdM63.d.ts.map +1 -0
- package/dist/server-iWm3oeCM.js +145 -0
- package/dist/server-iWm3oeCM.js.map +1 -0
- package/dist/server-zEKMDpP7.d.ts +80 -0
- package/dist/server-zEKMDpP7.d.ts.map +1 -0
- package/dist/server.d.ts +18 -0
- package/dist/server.js +17 -0
- package/dist/signalr/index.d.ts +4 -0
- package/dist/signalr/index.js +3 -0
- package/dist/signalr-BJGcXc0m.js +274 -0
- package/dist/signalr-BJGcXc0m.js.map +1 -0
- package/dist/src-D7mh9MKA.js +0 -0
- package/dist/tenant/index.d.ts +3 -0
- package/dist/tenant/index.js +3 -0
- package/dist/tenant/server.d.ts +3 -0
- package/dist/tenant/server.js +5 -0
- package/dist/tenant-C6KPaSCX.js +256 -0
- package/dist/tenant-C6KPaSCX.js.map +1 -0
- package/dist/types-BTjFzIhv.d.ts +31 -0
- package/dist/types-BTjFzIhv.d.ts.map +1 -0
- package/dist/types-DoIfDhl6.d.ts +55 -0
- package/dist/types-DoIfDhl6.d.ts.map +1 -0
- package/dist/types-DufLRY7A.d.ts +164 -0
- package/dist/types-DufLRY7A.d.ts.map +1 -0
- package/dist/types-uDrDMkCq.d.ts +93 -0
- package/dist/types-uDrDMkCq.d.ts.map +1 -0
- package/package.json +147 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import * as zustand7 from "zustand";
|
|
2
|
+
import * as zustand8 from "zustand";
|
|
3
|
+
import { ComponentProps, ReactNode } from "react";
|
|
4
|
+
import * as react_jsx_runtime4 from "react/jsx-runtime";
|
|
5
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
6
|
+
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
7
|
+
import * as react_jsx_runtime2 from "react/jsx-runtime";
|
|
8
|
+
import * as react_jsx_runtime3 from "react/jsx-runtime";
|
|
9
|
+
|
|
10
|
+
//#region src/permissions/types.d.ts
|
|
11
|
+
/**
|
|
12
|
+
* Permission Types
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Permission code string type
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Permission Types
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Permission code string type
|
|
22
|
+
*/
|
|
23
|
+
type PermissionCode = string;
|
|
24
|
+
/**
|
|
25
|
+
* Permission module types
|
|
26
|
+
*/
|
|
27
|
+
type PermissionModule = 'Identity' | 'PropertyManagement' | 'Leasing' | 'Accounting' | 'Tasks' | 'People' | 'Organization' | 'Subscription';
|
|
28
|
+
/**
|
|
29
|
+
* Permission check options
|
|
30
|
+
*/
|
|
31
|
+
interface PermissionCheckOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Operator for multiple permissions check
|
|
34
|
+
* @default 'OR'
|
|
35
|
+
*/
|
|
36
|
+
operator?: 'AND' | 'OR';
|
|
37
|
+
/**
|
|
38
|
+
* Enable wildcard pattern matching
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
wildcard?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Permission check result
|
|
45
|
+
*/
|
|
46
|
+
interface PermissionCheckResult {
|
|
47
|
+
hasPermission: boolean;
|
|
48
|
+
matchedPermissions: PermissionCode[];
|
|
49
|
+
missingPermissions: PermissionCode[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Field permission result
|
|
53
|
+
*/
|
|
54
|
+
interface FieldPermissionResult {
|
|
55
|
+
canView: boolean;
|
|
56
|
+
canEdit: boolean;
|
|
57
|
+
canCreate: boolean;
|
|
58
|
+
canDelete: boolean;
|
|
59
|
+
} //#endregion
|
|
60
|
+
//#region src/permissions/permission-service.d.ts
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
63
|
+
/**
|
|
64
|
+
* Permission Checker Class
|
|
65
|
+
*
|
|
66
|
+
* Provides methods for checking user permissions.
|
|
67
|
+
*/
|
|
68
|
+
declare class PermissionChecker {
|
|
69
|
+
private permissions;
|
|
70
|
+
private permissionArray;
|
|
71
|
+
constructor(permissions: PermissionCode[]);
|
|
72
|
+
/**
|
|
73
|
+
* Check if user has a single permission
|
|
74
|
+
*/
|
|
75
|
+
hasPermission(permission: PermissionCode): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Check multiple permissions with AND/OR logic
|
|
78
|
+
*/
|
|
79
|
+
hasPermissions(permissions: PermissionCode[], options?: PermissionCheckOptions): PermissionCheckResult;
|
|
80
|
+
/**
|
|
81
|
+
* Check wildcard permission pattern
|
|
82
|
+
*/
|
|
83
|
+
private hasWildcardPermission;
|
|
84
|
+
/**
|
|
85
|
+
* Check if user has any permission in a module
|
|
86
|
+
*/
|
|
87
|
+
hasModulePermission(module: PermissionModule): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Get field-level permissions for an entity
|
|
90
|
+
*/
|
|
91
|
+
getFieldPermissions(module: PermissionModule, entity: string): FieldPermissionResult;
|
|
92
|
+
/**
|
|
93
|
+
* Get all permissions
|
|
94
|
+
*/
|
|
95
|
+
getAllPermissions(): readonly PermissionCode[];
|
|
96
|
+
/**
|
|
97
|
+
* Get permissions for a specific module
|
|
98
|
+
*/
|
|
99
|
+
getModulePermissions(module: PermissionModule): PermissionCode[];
|
|
100
|
+
/**
|
|
101
|
+
* Check if user has any permissions
|
|
102
|
+
*/
|
|
103
|
+
hasAnyPermissions(): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Get permission count
|
|
106
|
+
*/
|
|
107
|
+
getPermissionCount(): number;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/permissions/permission-store.d.ts
|
|
112
|
+
//# sourceMappingURL=permission-service.d.ts.map
|
|
113
|
+
/**
|
|
114
|
+
* Permission store state interface
|
|
115
|
+
*/
|
|
116
|
+
interface PermissionState {
|
|
117
|
+
checker: PermissionChecker;
|
|
118
|
+
permissions: PermissionCode[];
|
|
119
|
+
isLoading: boolean;
|
|
120
|
+
setPermissions: (permissions: PermissionCode[]) => void;
|
|
121
|
+
setLoading: (isLoading: boolean) => void;
|
|
122
|
+
reset: () => void;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Selectors for selective subscription
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Permission store
|
|
130
|
+
*/
|
|
131
|
+
declare const usePermissionStore: zustand8.UseBoundStore<zustand7.StoreApi<PermissionState>>;
|
|
132
|
+
/**
|
|
133
|
+
* Initialize permission store
|
|
134
|
+
*/
|
|
135
|
+
declare function initializePermissions(permissions: PermissionCode[], isLoading?: boolean): void;
|
|
136
|
+
/**
|
|
137
|
+
* Get permission checker outside React components
|
|
138
|
+
*/
|
|
139
|
+
declare function getPermissionChecker(): PermissionChecker;
|
|
140
|
+
/**
|
|
141
|
+
* Get all permissions outside React components
|
|
142
|
+
*/
|
|
143
|
+
declare function getPermissions(): PermissionCode[];
|
|
144
|
+
|
|
145
|
+
//#endregion
|
|
146
|
+
//#region src/permissions/permission-initializer.d.ts
|
|
147
|
+
interface PermissionInitializerProps {
|
|
148
|
+
permissions: PermissionCode[];
|
|
149
|
+
isLoading?: boolean;
|
|
150
|
+
children: ReactNode;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Component that initializes permissions from props
|
|
154
|
+
*/
|
|
155
|
+
declare function PermissionInitializer({
|
|
156
|
+
permissions,
|
|
157
|
+
isLoading,
|
|
158
|
+
children
|
|
159
|
+
}: PermissionInitializerProps): react_jsx_runtime4.JSX.Element;
|
|
160
|
+
|
|
161
|
+
//#endregion
|
|
162
|
+
//#region src/permissions/hooks.d.ts
|
|
163
|
+
/**
|
|
164
|
+
* Hook for checking a single permission
|
|
165
|
+
*/
|
|
166
|
+
declare function usePermission(permission: PermissionCode): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Alias for usePermission
|
|
169
|
+
*/
|
|
170
|
+
declare const useHasPermission: typeof usePermission;
|
|
171
|
+
/**
|
|
172
|
+
* Hook for checking multiple permissions
|
|
173
|
+
*/
|
|
174
|
+
declare function usePermissions(permissions: PermissionCode[], options?: PermissionCheckOptions): PermissionCheckResult;
|
|
175
|
+
/**
|
|
176
|
+
* Alias for usePermissions
|
|
177
|
+
*/
|
|
178
|
+
declare const useHasPermissions: typeof usePermissions;
|
|
179
|
+
/**
|
|
180
|
+
* Hook for checking module-level permissions
|
|
181
|
+
*/
|
|
182
|
+
declare function useModulePermission(module: PermissionModule): boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Alias for useModulePermission
|
|
185
|
+
*/
|
|
186
|
+
declare const useHasModulePermission: typeof useModulePermission;
|
|
187
|
+
/**
|
|
188
|
+
* Hook for getting a memoized permission checker function
|
|
189
|
+
*/
|
|
190
|
+
declare function usePermissionChecker(): (permission: PermissionCode) => boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Hook for getting all user permissions
|
|
193
|
+
*/
|
|
194
|
+
declare function useAllPermissions(): readonly PermissionCode[];
|
|
195
|
+
|
|
196
|
+
//#endregion
|
|
197
|
+
//#region src/permissions/components.d.ts
|
|
198
|
+
/**
|
|
199
|
+
* Hook for field-level permissions
|
|
200
|
+
*/
|
|
201
|
+
interface ProtectedButtonProps extends ComponentProps<'button'> {
|
|
202
|
+
permission: PermissionCode;
|
|
203
|
+
fallback?: ReactNode;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Button that only renders if user has the required permission
|
|
207
|
+
*/
|
|
208
|
+
declare function ProtectedButton({
|
|
209
|
+
permission,
|
|
210
|
+
fallback,
|
|
211
|
+
children,
|
|
212
|
+
...props
|
|
213
|
+
}: ProtectedButtonProps): react_jsx_runtime0.JSX.Element;
|
|
214
|
+
interface ProtectedLinkProps extends ComponentProps<'a'> {
|
|
215
|
+
permission: PermissionCode;
|
|
216
|
+
fallback?: ReactNode;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Link that only renders if user has the required permission
|
|
220
|
+
*/
|
|
221
|
+
declare function ProtectedLink({
|
|
222
|
+
permission,
|
|
223
|
+
fallback,
|
|
224
|
+
children,
|
|
225
|
+
...props
|
|
226
|
+
}: ProtectedLinkProps): react_jsx_runtime1.JSX.Element;
|
|
227
|
+
interface ProtectedSectionProps {
|
|
228
|
+
permission?: PermissionCode;
|
|
229
|
+
permissions?: PermissionCode[];
|
|
230
|
+
options?: PermissionCheckOptions;
|
|
231
|
+
fallback?: ReactNode;
|
|
232
|
+
children: ReactNode;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Section that only renders if user has the required permission(s)
|
|
236
|
+
*/
|
|
237
|
+
declare function ProtectedSection({
|
|
238
|
+
permission,
|
|
239
|
+
permissions,
|
|
240
|
+
options,
|
|
241
|
+
fallback,
|
|
242
|
+
children
|
|
243
|
+
}: ProtectedSectionProps): react_jsx_runtime2.JSX.Element;
|
|
244
|
+
interface ProtectedActionProps {
|
|
245
|
+
permission: PermissionCode;
|
|
246
|
+
onAction: () => void;
|
|
247
|
+
children: (props: {
|
|
248
|
+
onClick: () => void;
|
|
249
|
+
disabled: boolean;
|
|
250
|
+
}) => ReactNode;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Render prop component for protected actions
|
|
254
|
+
*/
|
|
255
|
+
declare function ProtectedAction({
|
|
256
|
+
permission,
|
|
257
|
+
onAction,
|
|
258
|
+
children
|
|
259
|
+
}: ProtectedActionProps): react_jsx_runtime3.JSX.Element;
|
|
260
|
+
|
|
261
|
+
//#endregion
|
|
262
|
+
//#region src/permissions/constants.d.ts
|
|
263
|
+
/**
|
|
264
|
+
* Available permission modules
|
|
265
|
+
*/
|
|
266
|
+
declare const PERMISSION_MODULES: PermissionModule[];
|
|
267
|
+
|
|
268
|
+
//#endregion
|
|
269
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
270
|
+
|
|
271
|
+
export { FieldPermissionResult, PERMISSION_MODULES as PERMISSION_MODULES$1, PermissionCheckOptions, PermissionCheckResult, PermissionChecker as PermissionChecker$1, PermissionCode, PermissionInitializer as PermissionInitializer$1, PermissionModule, ProtectedAction as ProtectedAction$1, ProtectedButton as ProtectedButton$1, ProtectedLink as ProtectedLink$1, ProtectedSection as ProtectedSection$1, getPermissionChecker as getPermissionChecker$1, getPermissions as getPermissions$1, initializePermissions as initializePermissions$1, useAllPermissions as useAllPermissions$1, useHasModulePermission as useHasModulePermission$1, useHasPermission as useHasPermission$1, useHasPermissions as useHasPermissions$1, useModulePermission as useModulePermission$1, usePermission as usePermission$1, usePermissionChecker as usePermissionChecker$1, usePermissionStore as usePermissionStore$1, usePermissions as usePermissions$1 };
|
|
272
|
+
//# sourceMappingURL=index-BIJOC8Fb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BIJOC8Fb.d.ts","names":[],"sources":["../src/permissions/types.ts","../src/permissions/permission-service.ts","../src/permissions/permission-store.ts","../src/permissions/permission-initializer.tsx","../src/permissions/hooks.ts","../src/permissions/components.tsx","../src/permissions/constants.ts"],"sourcesContent":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;KAOY,cAAA;;;;KAKA,gBAAA;;;;UAaK,sBAAA;;AAlBjB;;;;EAKY;;;;EAaK,QAAA,CAAA,EAAA,OAAA;;;;AAiBjB;AAAsC,UAArB,qBAAA,CAAqB;EAAA,aAEhB,EAAA,OAAA;EAAc,kBACd,EADA,cACA,EAAA;EAAc,kBAAA,EAAd,cAAc,EAAA;;;;AAMpC;UAAiB,qBAAA;;;;;;;;;;;;;;cChCJ,iBAAA;;;2BAIc;;ADhB3B;;4BCwB4B;;ADnB5B;;8BC2BiB,4BACJ,yBACR;;ADhBL;;;;AAiBA;;EAAsC,mBAEhB,CAAA,MAAA,EC6CQ,gBD7CR,CAAA,EAAA,OAAA;EAAc;AACA;;8BCqDxB,mCAEP;;ADjDL;;gCC+DgC;;;;+BAOD,mBAAmB;;;AAtGlD;EAA8B,iBAAA,CAAA,CAAA,EAAA,OAAA;EAAA;;;EAoBC,kBAClB,CAAA,CAAA,EAAA,MAAA;;;;;;;;;UC3BH,eAAA;WACC;eACI;;gCAEiB;;EFVpB,KAAA,EAAA,GAAA,GAAA,IAAc;;;;AAK1B;;AAaA;;;cEgBa,oBAAkB,QAAA,CAAA,cAAA,QAAA,CAAA,SAAA;AFC/B;;;AAGsB,iBEkBN,qBAAA,CFlBM,WAAA,EEmBP,cFnBO,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA;AAAc;;;iBE6BpB,oBAAA,CAAA,GAAwB;AFvBxC;;;iBE8BgB,cAAA,CAAA,GAAkB;;;;UCvExB,0BAAA;eACK;;YAEH;;;;;iBAMI,qBAAA;;;;GAIb,6BAA0B,kBAAA,CAAA,GAAA,CAAA;;;;;;;iBCVb,aAAA,aAA0B;;;;cAQ7B,yBAAgB;;;AJd7B;iBImBgB,cAAA,cACD,4BACH,yBAAsB;;;AJhBlC;cI4Ba,0BAAiB;;;AJf9B;iBIoBgB,mBAAA,SAA4B;;;AJH5C;AAAsC,cIWzB,sBJXyB,EAAA,OIWH,mBJXG;;;AAGF;iBIapB,oBAAA,CAAA,gBAGC;;;AJVjB;iBIkBgB,iBAAA,CAAA,YAA8B;;;;;;;UCvDpC,oBAAA,SAA6B;cACzB;aACD;;;;;iBAMG,eAAA;;;;;GAKb,uBAAoB,kBAAA,CAAA,GAAA,CAAA;UAcb,kBAAA,SAA2B;ELlCzB,UAAA,EKmCE,cLnCY;aKoCb;;;AL/Bb;;iBKqCgB,aAAA;;;;;GAKb,qBAAkB,kBAAA,CAAA,GAAA,CAAA;UAcX,qBAAA;EL3CO,UAAA,CAAA,EK4CF,cL5CwB;gBK6CvB;YACJ;aACC;EL9BI,QAAA,EK+BL,SL/BK;;;;AAGmB;iBKkCpB,gBAAA;;;;;;GAMb,wBAAqB,kBAAA,CAAA,GAAA,CAAA;UA8Bd,oBAAA;cACI;ELjEG,QAAA,EAAA,GAAA,GAAA,IAAA;;;;QKmEkD;;;;;AJnGtD,iBIyGG,eAAA,CJzGc;EAAA,UAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EI6G3B,oBJ7G2B,CAAA,EI6GP,kBAAA,CAAA,GAAA,CAAA,OJ7GO;;;;;;;cKVjB,oBAAoB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { OrganizationData, TenantContextType, TenantMembership } from "./types-DoIfDhl6.js";
|
|
2
|
+
import * as zustand12 from "zustand";
|
|
3
|
+
import * as zustand13 from "zustand";
|
|
4
|
+
import { ReactNode } from "react";
|
|
5
|
+
import * as react_jsx_runtime14 from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region src/tenant/tenant-store.d.ts
|
|
8
|
+
interface TenantState {
|
|
9
|
+
currentTenant: string | null;
|
|
10
|
+
availableTenants: string[];
|
|
11
|
+
memberships: Map<string, TenantMembership>;
|
|
12
|
+
organizations: Map<string, OrganizationData>;
|
|
13
|
+
isLoading: boolean;
|
|
14
|
+
isSwitching: boolean;
|
|
15
|
+
setCurrentTenant: (tenantId: string | null) => void;
|
|
16
|
+
setAvailableTenants: (tenants: string[]) => void;
|
|
17
|
+
setMemberships: (memberships: TenantMembership[]) => void;
|
|
18
|
+
setOrganization: (tenantId: string, data: OrganizationData) => void;
|
|
19
|
+
addOrganization: (tenantId: string, data: OrganizationData) => void;
|
|
20
|
+
setLoading: (loading: boolean) => void;
|
|
21
|
+
setSwitching: (switching: boolean) => void;
|
|
22
|
+
fetchOrganization: (tenantId: string) => Promise<void>;
|
|
23
|
+
switchTenant: (tenantId: string) => Promise<void>;
|
|
24
|
+
getMembership: (tenantId: string) => TenantMembership | null;
|
|
25
|
+
getCurrentMembership: () => TenantMembership | null;
|
|
26
|
+
getTenantName: (tenantId: string) => string;
|
|
27
|
+
getOrganization: (tenantId: string) => OrganizationData | null;
|
|
28
|
+
getCurrentOrganization: () => OrganizationData | null;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Configure tenant store endpoints
|
|
32
|
+
*/
|
|
33
|
+
declare function configureTenantEndpoints(config: {
|
|
34
|
+
organizationEndpoint?: string;
|
|
35
|
+
tenantSwitchEndpoint?: string;
|
|
36
|
+
}): void;
|
|
37
|
+
declare const useTenantStore: zustand13.UseBoundStore<Omit<zustand12.StoreApi<TenantState>, "setState" | "devtools"> & {
|
|
38
|
+
setState(partial: TenantState | Partial<TenantState> | ((state: TenantState) => TenantState | Partial<TenantState>), replace?: false | undefined, action?: (string | {
|
|
39
|
+
[x: string]: unknown;
|
|
40
|
+
[x: number]: unknown;
|
|
41
|
+
[x: symbol]: unknown;
|
|
42
|
+
type: string;
|
|
43
|
+
}) | undefined): void;
|
|
44
|
+
setState(state: TenantState | ((state: TenantState) => TenantState), replace: true, action?: (string | {
|
|
45
|
+
[x: string]: unknown;
|
|
46
|
+
[x: number]: unknown;
|
|
47
|
+
[x: symbol]: unknown;
|
|
48
|
+
type: string;
|
|
49
|
+
}) | undefined): void;
|
|
50
|
+
devtools: {
|
|
51
|
+
cleanup: () => void;
|
|
52
|
+
};
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* Initialize store with server data
|
|
56
|
+
*/
|
|
57
|
+
declare function initializeTenantStore(currentTenant: string | null, availableTenants: string[], memberships?: TenantMembership[]): void; //#endregion
|
|
58
|
+
//#region src/tenant/tenant-context.d.ts
|
|
59
|
+
interface TenantProviderProps {
|
|
60
|
+
children: ReactNode;
|
|
61
|
+
initialTenant?: string | null;
|
|
62
|
+
initialTenants?: string[];
|
|
63
|
+
initialMemberships?: TenantMembership[];
|
|
64
|
+
onTenantChange?: () => void;
|
|
65
|
+
}
|
|
66
|
+
declare function TenantProvider({
|
|
67
|
+
children,
|
|
68
|
+
initialTenant,
|
|
69
|
+
initialTenants,
|
|
70
|
+
initialMemberships,
|
|
71
|
+
onTenantChange
|
|
72
|
+
}: TenantProviderProps): react_jsx_runtime14.JSX.Element;
|
|
73
|
+
/**
|
|
74
|
+
* Hook for using tenant context
|
|
75
|
+
*/
|
|
76
|
+
declare function useTenant(): TenantContextType;
|
|
77
|
+
/**
|
|
78
|
+
* Hook for current tenant only
|
|
79
|
+
*/
|
|
80
|
+
declare function useCurrentTenant(): string | null;
|
|
81
|
+
/**
|
|
82
|
+
* Hook for tenant switching
|
|
83
|
+
*/
|
|
84
|
+
declare function useTenantSwitcher(): {
|
|
85
|
+
switchTenant: (tenantId: string) => void;
|
|
86
|
+
isLoading: boolean;
|
|
87
|
+
availableTenants: string[];
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Hook for current organization
|
|
91
|
+
*/
|
|
92
|
+
declare function useCurrentOrganization(): OrganizationData | null;
|
|
93
|
+
/**
|
|
94
|
+
* Hook for organization operations
|
|
95
|
+
*/
|
|
96
|
+
declare function useOrganization(): {
|
|
97
|
+
organization: OrganizationData | null;
|
|
98
|
+
refreshOrganization: () => void;
|
|
99
|
+
isLoading: boolean;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
//#endregion
|
|
103
|
+
export { TenantProvider as TenantProvider$1, configureTenantEndpoints as configureTenantEndpoints$1, initializeTenantStore as initializeTenantStore$1, useCurrentOrganization as useCurrentOrganization$1, useCurrentTenant as useCurrentTenant$1, useOrganization as useOrganization$1, useTenant as useTenant$1, useTenantStore as useTenantStore$1, useTenantSwitcher as useTenantSwitcher$1 };
|
|
104
|
+
//# sourceMappingURL=index-Bt9XE6gj.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Bt9XE6gj.d.ts","names":[],"sources":["../src/tenant/tenant-store.ts","../src/tenant/tenant-context.tsx"],"sourcesContent":null,"mappings":";;;;;;;UAUU,WAAA;EAAA,aAAA,EAAW,MAAA,GAAA,IAAA;EAAA,gBAAA,EAAA,MAAA,EAAA;EAAA,WAIM,EAAZ,GAAY,CAAA,MAAA,EAAA,gBAAA,CAAA;EAAgB,aAA5B,EACE,GADF,CAAA,MAAA,EACc,gBADd,CAAA;EAAG,SACW,EAAA,OAAA;EAAgB,WAA5B,EAAA,OAAA;EAAG,gBAOY,EAAA,CAAA,QAAA,EAAA,MAAA,GAAA,IAAA,EAAA,GAAA,IAAA;EAAgB,mBACJ,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,EAAA,GAAA,IAAA;EAAgB,cAChB,EAAA,CAAA,WAAA,EAFZ,gBAEY,EAAA,EAAA,GAAA,IAAA;EAAgB,eAKjB,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,IAAA,EANC,gBAMD,EAAA,GAAA,IAAA;EAAO,eACZ,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,IAAA,EANM,gBAMN,EAAA,GAAA,IAAA;EAAO,UAGN,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EAAgB,YACzB,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EAAgB,iBAEL,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAPE,OAOF,CAAA,IAAA,CAAA;EAAgB,YACzB,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAPM,OAON,CAAA,IAAA,CAAA;EAAgB,aAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAJT,gBAIS,GAAA,IAAA;8BAHlB;;yCAEW;EAazB,sBAAA,EAAA,GAAwB,GAZR,gBAYQ,GAAA,IAAA;AAYxC;;;;AAA2B,iBAZX,wBAAA,CAYW,MAAA,EAAA;EAAA,oBAAA,CAAA,EAAA,MAAA;;;cAAd,0BAAc,cAAA,KAAA,SAAA,CAAA,SAAA;oBAAA;;;;;;gBAAA,aAAA,GAAA,CAAA,CAAA,KAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAiJX,CAjJW,EAAA,CAAA,MAAA,GAAA;IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,OAAA;;;;EAiJX,CAAA,CAAA,GAAA,SAAA,CAAA,EAAA,IAAA;;;;ACtMqE,CAAA,CAAA;;;;AAQ9C,iBD8LvB,qBAAA,CC9LuB,aAAA,EAAA,MAAA,GAAA,IAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,CAAA,EDiMvB,gBCjMuB,EAAA,CAAA,EAAA,IAAA,CAAA;;ADR2B,UCIxD,mBAAA,CDFW;EAAA,QAAA,ECGT,SDHS;EAAA,aAIM,CAAA,EAAA,MAAA,GAAA,IAAA;EAAgB,cAA5B,CAAA,EAAA,MAAA,EAAA;EAAG,kBACW,CAAA,ECCN,gBDDM,EAAA;EAAgB,cAA5B,CAAA,EAAA,GAAA,GAAA,IAAA;;AAQ2B,iBCH5B,cAAA,CDG4B;EAAA,QAAA;EAAA,aAAA;EAAA,cAAA;EAAA,kBAAA;EAAA;AAAA,CAAA,ECGzC,mBDHyC,CAAA,ECGtB,mBAAA,CAAA,GAAA,CAAA,ODHsB;;;;AAUL,iBC6GvB,SAAA,CAAA,CD7GuB,EC6GV,iBD7GU;;;;AAIS,iBCsHhC,gBAAA,CAAA,CDtHgC,EAAA,MAAA,GAAA,IAAA;;;;AAYhC,iBCkHA,iBAAA,CAAA,CDlHwB,EAAA;EAY3B,YAAA,EAAA,CAAA,QA4IZ,EAAA,MAAA,EAAA,GAAA,IAAA;EAAA,SAAA,EAAA,OAAA;EAAA,gBA5I0B,EAAA,MAAA,EAAA;CAAA;;;;iBC8GX,sBAAA,CAAA,GAA0B;;;;iBAQ1B,eAAA,CAAA;gBAAe"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { IdentityContextChangedEvent, IdentityContextData } from "./types-uDrDMkCq.js";
|
|
2
|
+
import * as zustand10 from "zustand";
|
|
3
|
+
import * as zustand11 from "zustand";
|
|
4
|
+
import { ReactNode } from "react";
|
|
5
|
+
import * as react_jsx_runtime9 from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region src/identity/identity-store.d.ts
|
|
8
|
+
interface IdentityState {
|
|
9
|
+
context: IdentityContextData;
|
|
10
|
+
setContext: (context: Partial<IdentityContextData>) => void;
|
|
11
|
+
refreshContext: () => Promise<void>;
|
|
12
|
+
refreshPermissions: () => Promise<void>;
|
|
13
|
+
reset: () => void;
|
|
14
|
+
}
|
|
15
|
+
interface IdentityUnauthorizedDetails {
|
|
16
|
+
reason: 'current-user-missing' | 'unauthorized';
|
|
17
|
+
logoutPath: string;
|
|
18
|
+
response?: Response;
|
|
19
|
+
}
|
|
20
|
+
interface IdentityStoreConfig {
|
|
21
|
+
contextEndpoint?: string;
|
|
22
|
+
permissionsEndpoint?: string;
|
|
23
|
+
logoutPath?: string;
|
|
24
|
+
fetcher?: typeof fetch;
|
|
25
|
+
onUnauthorized?: (details: IdentityUnauthorizedDetails) => void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Configure the identity store for different app/back-end conventions.
|
|
29
|
+
*/
|
|
30
|
+
declare function configureIdentityStore(config: IdentityStoreConfig): void;
|
|
31
|
+
/**
|
|
32
|
+
* Reset identity store configuration to the built-in defaults.
|
|
33
|
+
*/
|
|
34
|
+
declare function resetIdentityStoreConfig(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Backward-compatible endpoint-only configuration helper.
|
|
37
|
+
*/
|
|
38
|
+
declare function configureIdentityEndpoints(config: {
|
|
39
|
+
contextEndpoint?: string;
|
|
40
|
+
permissionsEndpoint?: string;
|
|
41
|
+
}): void;
|
|
42
|
+
declare const useIdentityStore: zustand11.UseBoundStore<zustand10.StoreApi<IdentityState>>;
|
|
43
|
+
declare const useIsOnboarded: () => boolean | undefined;
|
|
44
|
+
declare const useHasSubscription: () => boolean | undefined;
|
|
45
|
+
declare const useUserTenants: () => {
|
|
46
|
+
tenants: string[] | undefined;
|
|
47
|
+
currentTenant: string | undefined;
|
|
48
|
+
};
|
|
49
|
+
declare const useUserPermissions: () => string[] | undefined;
|
|
50
|
+
declare const useIdentityContext: () => {
|
|
51
|
+
context: IdentityContextData;
|
|
52
|
+
refreshContext: () => Promise<void>;
|
|
53
|
+
refreshPermissions: () => Promise<void>;
|
|
54
|
+
}; //#endregion
|
|
55
|
+
//#region src/identity/identity-context-provider.d.ts
|
|
56
|
+
interface IdentityContextProviderProps {
|
|
57
|
+
children: ReactNode;
|
|
58
|
+
initialContext?: Partial<IdentityContextData>;
|
|
59
|
+
accessToken?: string | null;
|
|
60
|
+
signalRClient?: {
|
|
61
|
+
onIdentityContextChanged: (handler: (event: IdentityContextChangedEvent) => void) => () => void;
|
|
62
|
+
disconnect: () => Promise<void>;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
declare function IdentityContextProvider({
|
|
66
|
+
children,
|
|
67
|
+
initialContext,
|
|
68
|
+
accessToken,
|
|
69
|
+
signalRClient
|
|
70
|
+
}: IdentityContextProviderProps): react_jsx_runtime9.JSX.Element;
|
|
71
|
+
|
|
72
|
+
//#endregion
|
|
73
|
+
export { IdentityContextProvider as IdentityContextProvider$1, IdentityStoreConfig, IdentityUnauthorizedDetails, configureIdentityEndpoints as configureIdentityEndpoints$1, configureIdentityStore as configureIdentityStore$1, resetIdentityStoreConfig as resetIdentityStoreConfig$1, useHasSubscription as useHasSubscription$1, useIdentityContext as useIdentityContext$1, useIdentityStore as useIdentityStore$1, useIsOnboarded as useIsOnboarded$1, useUserPermissions as useUserPermissions$1, useUserTenants as useUserTenants$1 };
|
|
74
|
+
//# sourceMappingURL=index-C2hGpzGr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-C2hGpzGr.d.ts","names":[],"sources":["../src/identity/identity-store.ts","../src/identity/identity-context-provider.tsx"],"sourcesContent":null,"mappings":";;;;;;;UA+BU,aAAA;EAAA,OAAA,EACC,mBADY;EAAA,UAAA,EAAA,CAAA,OAAA,EAIC,OAJD,CAIS,mBAJT,CAAA,EAAA,GAAA,IAAA;EAAA,cACZ,EAAA,GAAA,GAIa,OAJb,CAAA,IAAA,CAAA;EAAmB,kBAGE,EAAA,GAAA,GAEJ,OAFI,CAAA,IAAA,CAAA;EAAmB,KAA3B,EAAA,GAAA,GAAA,IAAA;;AAEI,UAIX,2BAAA,CAJW;EAAO,MAAA,EAAA,sBAAA,GAAA,cAAA;EAIlB,UAAA,EAAA,MAAA;EAMA,QAAA,CAAA,EAHJ,QAGI;;AAIE,UAJF,mBAAA,CAIE;EAAK,eACK,CAAA,EAAA,MAAA;EAA2B,mBAAA,CAAA,EAAA,MAAA;;mBADrC;6BACU;AA2C7B;;;;AAUgB,iBAVA,sBAAA,CAUwB,MAAA,EAVO,mBAUP,CAAA,EAAA,IAAA;;;;AASxB,iBATA,wBAAA,CAAA,CAS0B,EAAA,IAAA;AAO1C;;;AAA6B,iBAPb,0BAAA,CAOa,MAAA,EAAA;EAAA,eAAA,CAAA,EAAA,MAAA;EAAA,mBAAA,CAAA,EAAA,MAAA;AA0H7B,CAAA,CAAA,EAAa,IAAA;AACA,cA3HA,gBA2HqF,EA3HrE,SAAA,CAAA,aA2HqE,CA3HrE,SAAA,CAAA,QA2HqE,CA3HrE,aA2HqE,CAAA,CAAA;AACrF,cAFA,cAMR,EAAA,GAAA,GAAA,OAAA,GAAA,SAAA;AACQ,cANA,kBAMiF,EAAA,GAAA,GAAA,OAAA,GAAA,SAAA;AACjF,cANA,cAYZ,EAAA,GAAA,GAAA;EAAA,OAAA,EAAA,MAAA,EAAA,GAAA,SAAA;EAAA,aAAA,EAAA,MAAA,GAAA,SAAA;;AA5N2B,cAqNf,kBArNe,EAAA,GAAA,GAAA,MAAA,EAAA,GAAA,SAAA;AAAO,cAsNtB,kBAtNsB,EAAA,GAAA,GAAA;WA4NlC;wBA7NuB;4BACI;AC7BoD,CAAA,CAAA;;ADD7B,UCGzC,4BAAA,CDqBa;EAAA,QAAA,ECpBX,SDoBW;EAAA,cACZ,CAAA,ECpBQ,ODoBR,CCpBgB,mBDoBhB,CAAA;EAAmB,WAGE,CAAA,EAAA,MAAA,GAAA,IAAA;EAAmB,aAA3B,CAAA,EAAA;IACA,wBAAA,EAAA,CAAA,OAAA,EAAA,CAAA,KAAA,ECrBwB,2BDqBxB,EAAA,GAAA,IAAA,EAAA,GAAA,GAAA,GAAA,IAAA;IACI,UAAA,EAAA,GAAA,GCrBN,ODqBM,CAAA,IAAA,CAAA;EAAO,CAAA;AAInC;AAMiB,iBC3BD,uBAAA,CD2BoB;EAAA,QAAA;EAAA,cAAA;EAAA,WAAA;EAAA;AAAA,CAAA,ECtBjC,4BDsBiC,CAAA,ECtBL,kBAAA,CAAA,GAAA,CAAA,ODsBK"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { QueryClient, QueryKey } from "@tanstack/react-query";
|
|
2
|
+
|
|
3
|
+
//#region src/query-client/types.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Logger interface for query client
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Logger interface for query client
|
|
10
|
+
*/
|
|
11
|
+
interface QueryLogger {
|
|
12
|
+
debug?: (message: string, context?: Record<string, unknown>) => void;
|
|
13
|
+
info?: (message: string, context?: Record<string, unknown>) => void;
|
|
14
|
+
error?: (message: string, error?: Error, context?: Record<string, unknown>) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Logout handler function type
|
|
18
|
+
*/
|
|
19
|
+
type LogoutHandler = (returnUrl?: string) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Query client configuration options
|
|
22
|
+
*/
|
|
23
|
+
interface QueryClientConfig {
|
|
24
|
+
/**
|
|
25
|
+
* How long data is considered fresh (no refetch on mount)
|
|
26
|
+
* @default 300000 (5 minutes)
|
|
27
|
+
*/
|
|
28
|
+
staleTime?: number;
|
|
29
|
+
/**
|
|
30
|
+
* How long unused data stays in cache
|
|
31
|
+
* @default 600000 (10 minutes)
|
|
32
|
+
*/
|
|
33
|
+
gcTime?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Maximum number of retries for queries
|
|
36
|
+
* @default 3
|
|
37
|
+
*/
|
|
38
|
+
maxRetries?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Maximum number of retries for mutations
|
|
41
|
+
* @default 1
|
|
42
|
+
*/
|
|
43
|
+
maxMutationRetries?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Whether to refetch on window focus
|
|
46
|
+
* @default true
|
|
47
|
+
*/
|
|
48
|
+
refetchOnWindowFocus?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Whether to refetch on reconnect
|
|
51
|
+
* @default false
|
|
52
|
+
*/
|
|
53
|
+
refetchOnReconnect?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Whether to refetch on mount
|
|
56
|
+
* @default false
|
|
57
|
+
*/
|
|
58
|
+
refetchOnMount?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Logger instance
|
|
61
|
+
*/
|
|
62
|
+
logger?: QueryLogger;
|
|
63
|
+
/**
|
|
64
|
+
* Logout handler for session expiry
|
|
65
|
+
*/
|
|
66
|
+
onLogout?: LogoutHandler;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Cache preset configuration
|
|
70
|
+
*/
|
|
71
|
+
interface CachePreset {
|
|
72
|
+
staleTime: number;
|
|
73
|
+
gcTime: number;
|
|
74
|
+
refetchOnWindowFocus?: boolean;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Cache presets for different data types
|
|
78
|
+
*/
|
|
79
|
+
interface CachePresets {
|
|
80
|
+
/**
|
|
81
|
+
* For data that rarely changes (permissions, roles, etc.)
|
|
82
|
+
*/
|
|
83
|
+
static: CachePreset;
|
|
84
|
+
/**
|
|
85
|
+
* For data that changes occasionally (properties, users, etc.)
|
|
86
|
+
*/
|
|
87
|
+
normal: CachePreset;
|
|
88
|
+
/**
|
|
89
|
+
* For data that changes frequently (transactions, activities, etc.)
|
|
90
|
+
*/
|
|
91
|
+
dynamic: CachePreset;
|
|
92
|
+
/**
|
|
93
|
+
* For data that needs to always be fresh (real-time status, etc.)
|
|
94
|
+
*/
|
|
95
|
+
realtime: CachePreset;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Invalidation helper for related queries
|
|
99
|
+
*/
|
|
100
|
+
interface InvalidationHelpers {
|
|
101
|
+
/**
|
|
102
|
+
* Invalidate all identity-related queries
|
|
103
|
+
*/
|
|
104
|
+
invalidateIdentity: (queryClient: QueryClient) => Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Invalidate all property-related queries
|
|
107
|
+
*/
|
|
108
|
+
invalidateProperties: (queryClient: QueryClient) => Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Invalidate all accounting-related queries
|
|
111
|
+
*/
|
|
112
|
+
invalidateAccounting: (queryClient: QueryClient) => Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Invalidate specific query by key
|
|
115
|
+
*/
|
|
116
|
+
invalidateByKey: (queryClient: QueryClient, queryKey: QueryKey) => Promise<void>;
|
|
117
|
+
} //#endregion
|
|
118
|
+
//#region src/query-client/query-config.d.ts
|
|
119
|
+
|
|
120
|
+
//# sourceMappingURL=types.d.ts.map
|
|
121
|
+
/**
|
|
122
|
+
* Create optimized QueryClient instance
|
|
123
|
+
*
|
|
124
|
+
* @param config - Configuration options
|
|
125
|
+
* @returns Configured QueryClient with optimized defaults
|
|
126
|
+
*/
|
|
127
|
+
declare function createQueryClient(config?: QueryClientConfig): QueryClient;
|
|
128
|
+
/**
|
|
129
|
+
* Cache Presets for different data types
|
|
130
|
+
*
|
|
131
|
+
* Use these presets for consistent caching across the application.
|
|
132
|
+
*/
|
|
133
|
+
declare const cachePresets: CachePresets;
|
|
134
|
+
/**
|
|
135
|
+
* Create base query keys for a module
|
|
136
|
+
*/
|
|
137
|
+
declare function createQueryKeyFactory<T extends string>(module: T): {
|
|
138
|
+
all: readonly [T];
|
|
139
|
+
lists: () => readonly [T, 'list'];
|
|
140
|
+
list: (filters?: Record<string, unknown>) => readonly [T, 'list', Record<string, unknown>?];
|
|
141
|
+
details: () => readonly [T, 'detail'];
|
|
142
|
+
detail: (id: string) => readonly [T, 'detail', string];
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Invalidation helpers for common patterns
|
|
146
|
+
*/
|
|
147
|
+
declare const invalidationHelpers: {
|
|
148
|
+
/**
|
|
149
|
+
* Invalidate all queries for a module
|
|
150
|
+
*/
|
|
151
|
+
invalidateModule: (queryClient: QueryClient, module: string) => Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* Invalidate all list queries for a module
|
|
154
|
+
*/
|
|
155
|
+
invalidateLists: (queryClient: QueryClient, module: string) => Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Invalidate a specific detail query
|
|
158
|
+
*/
|
|
159
|
+
invalidateDetail: (queryClient: QueryClient, module: string, id: string) => Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Invalidate and refetch (useful for critical data)
|
|
162
|
+
*/
|
|
163
|
+
invalidateAndRefetch: (queryClient: QueryClient, queryKey: readonly unknown[]) => Promise<void>;
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
//#endregion
|
|
167
|
+
//# sourceMappingURL=query-config.d.ts.map
|
|
168
|
+
|
|
169
|
+
export { CachePreset, CachePresets, InvalidationHelpers, LogoutHandler, QueryClientConfig, QueryLogger, cachePresets as cachePresets$1, createQueryClient as createQueryClient$1, createQueryKeyFactory as createQueryKeyFactory$1, invalidationHelpers as invalidationHelpers$1 };
|
|
170
|
+
//# sourceMappingURL=index-CfQsb3l_.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CfQsb3l_.d.ts","names":[],"sources":["../src/query-client/types.ts","../src/query-client/query-config.ts"],"sourcesContent":null,"mappings":";;;;;;;;;AASA;AAA4B,UAAX,WAAA,CAAW;EAAA,KACU,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAAM,IACP,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAAM,KACP,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAiB,MAAjB,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;;AAAuB;;;KAM/C,aAAA;AAAZ;;;UAKiB,iBAAA;EAAA;;;;EA2CS,SAAA,CAAA,EAAA,MAAA;;;;AAM1B;;;;AASA;;EAA6B,UAInB,CAAA,EAAA,MAAA;EAAW;;;AAYE;;;;AAMvB;;EAAoC,oBAIA,CAAA,EAAA,OAAA;EAAW;;;;EAQE,kBAAK,CAAA,EAAA,OAAA;EAAO;;;AAIe;;;;;WAzDjE;;;;aAIE;ACWb;;;;AAA8E,UDL7D,WAAA,CCK6D;;;;;;AA4E9E;;UDxEiB,YAAA;;ACqHjB;;EAAqC,MAC3B,EDlHA,WCkHA;EAAC;;;EAIc,MAAgC,EDlH/C,WCkH+C;EAAC;;;EAErB,OAAA,EDhH1B,WCgH0B;;;;EAcxB,QAAA,ED1HD,WC0HC;;;;;AAWwD,UD/HpD,mBAAA,CC+HoD;EAAO;;;EAkBrB,kBAAiC,EAAA,CAAA,WAAA,ED7IpD,WC6IoD,EAAA,GD7IpC,OC6IoC,CAAA,IAAA,CAAA;EAAO;;;sCDzIzD,gBAAgB;;;;sCAIhB,gBAAgB;;;;iCAIrB,uBAAuB,aAAa;;;;;;;AA3GV;;;;AAM/C,iBC2DI,iBAAA,CD3DS,MAAA,CAAA,EC2DiB,iBD3DjB,CAAA,EC2D0C,WD3D1C;;;;AAKzB;;AAuCW,cC2FE,YD3FF,EC2FgB,YD3FhB;;AAIe;;iBCoIV,gDACN;iBAEO;EDjIA,KAAA,EAAA,GAAA,GAAA,SAAW,CCkIH,CDlIG,EAAA,MAAA,CAAA;mBCmIT,sCAAsC,WAAW;2BACzC;oCACS;AD5HpC,CAAA;;;;AAYW,cC8HE,mBD9HF,EAAA;EAAW;AAIC;;kCC8HiB,gCAA8B;;ADxHtE;;EAAoC,eAIA,EAAA,CAAA,WAAA,EC2HG,WD3HH,EAAA,MAAA,EAAA,MAAA,EAAA,GC2HiC,OD3HjC,CAAA,IAAA,CAAA;EAAW;;;EAIc,gBAIvB,EAAA,CAAA,WAAA,EC2HrB,WD3HqB,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,EAAA,GC8HjC,OD9HiC,CAAA,IAAA,CAAA;EAAW;;;EAIe,oBAAK,EAAA,CAAA,WAAA,ECiIzB,WDjIyB,EAAA,QAAA,EAAA,SAAA,OAAA,EAAA,EAAA,GCiImB,ODjInB,CAAA,IAAA,CAAA;AAAO,CAAA"}
|