@elqnt/auth 1.0.8 → 1.0.12
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/chunk-LSUDMEL5.js +261 -0
- package/dist/chunk-LSUDMEL5.js.map +1 -0
- package/dist/chunk-OTGGRIEC.mjs +261 -0
- package/dist/chunk-OTGGRIEC.mjs.map +1 -0
- package/dist/index.d.mts +3 -154
- package/dist/index.d.ts +3 -154
- package/dist/index.js +253 -157
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +177 -29
- package/dist/index.mjs.map +1 -1
- package/dist/models/index.d.mts +825 -0
- package/dist/models/index.d.ts +825 -0
- package/dist/models/index.js +206 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/index.mjs +206 -0
- package/dist/models/index.mjs.map +1 -0
- package/package.json +8 -3
package/dist/index.js
CHANGED
|
@@ -1,95 +1,146 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
var _chunkLSUDMEL5js = require('./chunk-LSUDMEL5.js');
|
|
55
104
|
|
|
56
105
|
// context/user-context.tsx
|
|
57
|
-
var
|
|
106
|
+
var _react = require('react');
|
|
58
107
|
|
|
59
108
|
// hooks/use-user.ts
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
109
|
+
var _nats = require('@elqnt/nats');
|
|
110
|
+
var _product = require('@elqnt/product');
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
var _types = require('@elqnt/types');
|
|
64
115
|
var useUser = (email, autoLoad = true) => {
|
|
65
|
-
const { natsConnected, request } = (0,
|
|
66
|
-
const [user, setUser] = (0,
|
|
67
|
-
const [isLoading, setIsLoading] = (0,
|
|
68
|
-
const [error, setError] = (0,
|
|
69
|
-
const [onlineStatus, setOnlineStatusLocal] = (0,
|
|
70
|
-
const hasSetInitialStatus = (0,
|
|
71
|
-
const { product } = (0,
|
|
72
|
-
const [userOrgs, setUserOrgs] = (0,
|
|
73
|
-
const [teams, setTeams] = (0,
|
|
74
|
-
const [selectedTeamId, setSelectedTeamId] = (0,
|
|
116
|
+
const { natsConnected, request } = _nats.useNatsContext.call(void 0, );
|
|
117
|
+
const [user, setUser] = _react.useState.call(void 0, void 0);
|
|
118
|
+
const [isLoading, setIsLoading] = _react.useState.call(void 0, false);
|
|
119
|
+
const [error, setError] = _react.useState.call(void 0, void 0);
|
|
120
|
+
const [onlineStatus, setOnlineStatusLocal] = _react.useState.call(void 0, "online");
|
|
121
|
+
const hasSetInitialStatus = _react.useRef.call(void 0, false);
|
|
122
|
+
const { product } = _product.useProductContext.call(void 0, );
|
|
123
|
+
const [userOrgs, setUserOrgs] = _react.useState.call(void 0, []);
|
|
124
|
+
const [teams, setTeams] = _react.useState.call(void 0, []);
|
|
125
|
+
const [selectedTeamId, setSelectedTeamId] = _react.useState.call(void 0,
|
|
75
126
|
void 0
|
|
76
127
|
);
|
|
77
|
-
const [selectedOrgId, setSelectedOrgId] = (0,
|
|
128
|
+
const [selectedOrgId, setSelectedOrgId] = _react.useState.call(void 0,
|
|
78
129
|
void 0
|
|
79
130
|
);
|
|
80
|
-
(0,
|
|
131
|
+
_react.useEffect.call(void 0, () => {
|
|
81
132
|
const storedOrgId = localStorage.getItem("orgId");
|
|
82
133
|
if (storedOrgId) {
|
|
83
134
|
setSelectedOrgId(storedOrgId);
|
|
84
135
|
}
|
|
85
136
|
}, []);
|
|
86
|
-
const [selectedOrg, setSelectedOrg] = (0,
|
|
137
|
+
const [selectedOrg, setSelectedOrg] = _react.useState.call(void 0,
|
|
87
138
|
void 0
|
|
88
139
|
);
|
|
89
|
-
const [isAdmin, setIsAdmin] = (0,
|
|
90
|
-
const [isSuperAdmin, setIsSuperAdmin] = (0,
|
|
91
|
-
const [userGroups, setUserGroups] = (0,
|
|
92
|
-
const getUserGroups = (0,
|
|
140
|
+
const [isAdmin, setIsAdmin] = _react.useState.call(void 0, false);
|
|
141
|
+
const [isSuperAdmin, setIsSuperAdmin] = _react.useState.call(void 0, false);
|
|
142
|
+
const [userGroups, setUserGroups] = _react.useState.call(void 0, []);
|
|
143
|
+
const getUserGroups = _react.useCallback.call(void 0, async () => {
|
|
93
144
|
if (!user || !selectedOrgId) return;
|
|
94
145
|
const data = await request(
|
|
95
146
|
"user.groups.get",
|
|
@@ -100,7 +151,7 @@ var useUser = (email, autoLoad = true) => {
|
|
|
100
151
|
orgId: selectedOrgId
|
|
101
152
|
}
|
|
102
153
|
);
|
|
103
|
-
if (!data || data
|
|
154
|
+
if (!data || _optionalChain([data, 'optionalAccess', _ => _.groups, 'access', _2 => _2.length]) === 0) {
|
|
104
155
|
return;
|
|
105
156
|
}
|
|
106
157
|
setUserGroups(data.map((g) => g.toLowerCase().replaceAll(" ", "_")));
|
|
@@ -136,7 +187,7 @@ var useUser = (email, autoLoad = true) => {
|
|
|
136
187
|
}
|
|
137
188
|
return res.success;
|
|
138
189
|
}
|
|
139
|
-
(0,
|
|
190
|
+
_react.useEffect.call(void 0, () => {
|
|
140
191
|
if (!user || !selectedOrgId) {
|
|
141
192
|
return;
|
|
142
193
|
}
|
|
@@ -145,11 +196,11 @@ var useUser = (email, autoLoad = true) => {
|
|
|
145
196
|
function userInGroup(group) {
|
|
146
197
|
return userGroups.includes(group.toLowerCase().replaceAll(" ", "_"));
|
|
147
198
|
}
|
|
148
|
-
(0,
|
|
199
|
+
_react.useEffect.call(void 0, () => {
|
|
149
200
|
if (!user) {
|
|
150
201
|
return;
|
|
151
202
|
}
|
|
152
|
-
if (user.orgAccess && user
|
|
203
|
+
if (user.orgAccess && _optionalChain([user, 'optionalAccess', _3 => _3.orgAccess, 'access', _4 => _4.length]) > 0) {
|
|
153
204
|
if (selectedOrgId === void 0) {
|
|
154
205
|
const orgAccess = user.orgAccess[0];
|
|
155
206
|
setSelectedOrgId(orgAccess.orgId);
|
|
@@ -158,16 +209,16 @@ var useUser = (email, autoLoad = true) => {
|
|
|
158
209
|
}
|
|
159
210
|
}
|
|
160
211
|
}, [user, selectedOrgId]);
|
|
161
|
-
const updateAdminFlags = (0,
|
|
212
|
+
const updateAdminFlags = _react.useCallback.call(void 0, () => {
|
|
162
213
|
const orgAccess = userOrgs.find((org) => org.orgId === selectedOrgId);
|
|
163
|
-
const isAdmin2 = orgAccess
|
|
214
|
+
const isAdmin2 = _nullishCoalesce(_optionalChain([orgAccess, 'optionalAccess', _5 => _5.roles, 'access', _6 => _6.includes, 'call', _7 => _7("admin")]), () => ( false));
|
|
164
215
|
setIsAdmin(isAdmin2);
|
|
165
216
|
if (!isAdmin2) {
|
|
166
|
-
setSelectedTeamId(user
|
|
217
|
+
setSelectedTeamId(_optionalChain([user, 'optionalAccess', _8 => _8.teamId]));
|
|
167
218
|
}
|
|
168
|
-
const isSuperAdmin2 = orgAccess
|
|
219
|
+
const isSuperAdmin2 = _nullishCoalesce(_optionalChain([orgAccess, 'optionalAccess', _9 => _9.roles, 'access', _10 => _10.includes, 'call', _11 => _11("super-admin")]), () => ( false));
|
|
169
220
|
setIsSuperAdmin(isSuperAdmin2);
|
|
170
|
-
}, [userOrgs, selectedOrgId, user
|
|
221
|
+
}, [userOrgs, selectedOrgId, _optionalChain([user, 'optionalAccess', _12 => _12.teamId])]);
|
|
171
222
|
const create = async (data) => {
|
|
172
223
|
setIsLoading(true);
|
|
173
224
|
const res = await request("admin.users.create", data, {
|
|
@@ -180,7 +231,7 @@ var useUser = (email, autoLoad = true) => {
|
|
|
180
231
|
}
|
|
181
232
|
return res;
|
|
182
233
|
};
|
|
183
|
-
const getUser = (0,
|
|
234
|
+
const getUser = _react.useCallback.call(void 0, async () => {
|
|
184
235
|
if (!natsConnected || !email || !product) {
|
|
185
236
|
console.log("will not get user", natsConnected, email, product);
|
|
186
237
|
return;
|
|
@@ -208,7 +259,7 @@ var useUser = (email, autoLoad = true) => {
|
|
|
208
259
|
{ domain: emailDomain },
|
|
209
260
|
{ product }
|
|
210
261
|
);
|
|
211
|
-
if (orgResponse.metadata
|
|
262
|
+
if (_optionalChain([orgResponse, 'access', _13 => _13.metadata, 'optionalAccess', _14 => _14.success]) && orgResponse.org) {
|
|
212
263
|
console.log("Found org by domain, creating virtual user", orgResponse.org);
|
|
213
264
|
const virtualUser = {
|
|
214
265
|
email,
|
|
@@ -239,7 +290,7 @@ var useUser = (email, autoLoad = true) => {
|
|
|
239
290
|
}
|
|
240
291
|
setIsLoading(false);
|
|
241
292
|
}, [natsConnected, email, product]);
|
|
242
|
-
const getSelectedOrg = (0,
|
|
293
|
+
const getSelectedOrg = _react.useCallback.call(void 0, async () => {
|
|
243
294
|
if (!selectedOrgId || !natsConnected) return;
|
|
244
295
|
const res = await request(
|
|
245
296
|
"admin.orgs.getInfo",
|
|
@@ -252,19 +303,19 @@ var useUser = (email, autoLoad = true) => {
|
|
|
252
303
|
);
|
|
253
304
|
setSelectedOrg(res.orgInfo);
|
|
254
305
|
}, [selectedOrgId, product, natsConnected]);
|
|
255
|
-
(0,
|
|
306
|
+
_react.useEffect.call(void 0, () => {
|
|
256
307
|
if (!selectedOrgId || !natsConnected) {
|
|
257
308
|
return;
|
|
258
309
|
}
|
|
259
310
|
getSelectedOrg();
|
|
260
311
|
updateAdminFlags();
|
|
261
312
|
}, [selectedOrgId, natsConnected]);
|
|
262
|
-
(0,
|
|
313
|
+
_react.useEffect.call(void 0, () => {
|
|
263
314
|
if (natsConnected && autoLoad && email) {
|
|
264
315
|
getUser();
|
|
265
316
|
}
|
|
266
317
|
}, [natsConnected, autoLoad, email]);
|
|
267
|
-
const setOnlineStatus = (0,
|
|
318
|
+
const setOnlineStatus = _react.useCallback.call(void 0,
|
|
268
319
|
async (status) => {
|
|
269
320
|
setOnlineStatusLocal(status);
|
|
270
321
|
if (!natsConnected) {
|
|
@@ -280,7 +331,7 @@ var useUser = (email, autoLoad = true) => {
|
|
|
280
331
|
return;
|
|
281
332
|
}
|
|
282
333
|
try {
|
|
283
|
-
const response = await request(
|
|
334
|
+
const response = await request(_types.UpdateUserStatusSubject, {
|
|
284
335
|
orgId: selectedOrgId,
|
|
285
336
|
userId: user.id || user.email,
|
|
286
337
|
status
|
|
@@ -321,8 +372,8 @@ var useUser = (email, autoLoad = true) => {
|
|
|
321
372
|
};
|
|
322
373
|
|
|
323
374
|
// context/user-context.tsx
|
|
324
|
-
var
|
|
325
|
-
var UserContext = (0,
|
|
375
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
376
|
+
var UserContext = _react.createContext.call(void 0, {
|
|
326
377
|
user: void 0,
|
|
327
378
|
isLoading: true,
|
|
328
379
|
refresh: () => {
|
|
@@ -348,68 +399,113 @@ var UserContext = (0, import_react2.createContext)({
|
|
|
348
399
|
});
|
|
349
400
|
var UserProvider = ({ children, email }) => {
|
|
350
401
|
const user = useUser(email);
|
|
351
|
-
return /* @__PURE__ */ (0,
|
|
402
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UserContext.Provider, { value: user, children });
|
|
352
403
|
};
|
|
353
|
-
var useUserContext = () => (0,
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
404
|
+
var useUserContext = () => _react.useContext.call(void 0, UserContext);
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
exports.AdminOrgCreate = _chunkLSUDMEL5js.AdminOrgCreate; exports.AdminOrgCreated = _chunkLSUDMEL5js.AdminOrgCreated; exports.AdminOrgDelete = _chunkLSUDMEL5js.AdminOrgDelete; exports.AdminOrgGet = _chunkLSUDMEL5js.AdminOrgGet; exports.AdminOrgGetByDomain = _chunkLSUDMEL5js.AdminOrgGetByDomain; exports.AdminOrgGetInfo = _chunkLSUDMEL5js.AdminOrgGetInfo; exports.AdminOrgList = _chunkLSUDMEL5js.AdminOrgList; exports.AdminOrgListByMetadata = _chunkLSUDMEL5js.AdminOrgListByMetadata; exports.AdminOrgRolesCreate = _chunkLSUDMEL5js.AdminOrgRolesCreate; exports.AdminOrgRolesDelete = _chunkLSUDMEL5js.AdminOrgRolesDelete; exports.AdminOrgRolesGet = _chunkLSUDMEL5js.AdminOrgRolesGet; exports.AdminOrgRolesUpdate = _chunkLSUDMEL5js.AdminOrgRolesUpdate; exports.AdminOrgUpdate = _chunkLSUDMEL5js.AdminOrgUpdate; exports.AdminTeamsCreate = _chunkLSUDMEL5js.AdminTeamsCreate; exports.AdminTeamsGetForOrg = _chunkLSUDMEL5js.AdminTeamsGetForOrg; exports.AdminTeamsGetOne = _chunkLSUDMEL5js.AdminTeamsGetOne; exports.AdminTeamsUpdateOnboarding = _chunkLSUDMEL5js.AdminTeamsUpdateOnboarding; exports.AdminUsersCreate = _chunkLSUDMEL5js.AdminUsersCreate; exports.AdminUsersDelete = _chunkLSUDMEL5js.AdminUsersDelete; exports.AdminUsersGet = _chunkLSUDMEL5js.AdminUsersGet; exports.AdminUsersGetForOrg = _chunkLSUDMEL5js.AdminUsersGetForOrg; exports.AdminUsersGetOne = _chunkLSUDMEL5js.AdminUsersGetOne; exports.AdminUsersGetOneByEmail = _chunkLSUDMEL5js.AdminUsersGetOneByEmail; exports.AdminUsersGetSettings = _chunkLSUDMEL5js.AdminUsersGetSettings; exports.AdminUsersUpdate = _chunkLSUDMEL5js.AdminUsersUpdate; exports.AdminUsersUpdateSettings = _chunkLSUDMEL5js.AdminUsersUpdateSettings; exports.AggregateTypeAverage = _chunkLSUDMEL5js.AggregateTypeAverage; exports.AggregateTypeCount = _chunkLSUDMEL5js.AggregateTypeCount; exports.AggregateTypeDistinct = _chunkLSUDMEL5js.AggregateTypeDistinct; exports.AggregateTypeMax = _chunkLSUDMEL5js.AggregateTypeMax; exports.AggregateTypeMin = _chunkLSUDMEL5js.AggregateTypeMin; exports.AggregateTypeSum = _chunkLSUDMEL5js.AggregateTypeSum; exports.ChartTypeBar = _chunkLSUDMEL5js.ChartTypeBar; exports.ChartTypeDoughnut = _chunkLSUDMEL5js.ChartTypeDoughnut; exports.ChartTypeLine = _chunkLSUDMEL5js.ChartTypeLine; exports.ChartTypeMetic = _chunkLSUDMEL5js.ChartTypeMetic; exports.ChartTypePie = _chunkLSUDMEL5js.ChartTypePie; exports.InviteStatusAccepted = _chunkLSUDMEL5js.InviteStatusAccepted; exports.InviteStatusExpired = _chunkLSUDMEL5js.InviteStatusExpired; exports.InviteStatusPending = _chunkLSUDMEL5js.InviteStatusPending; exports.InviteStatusRevoked = _chunkLSUDMEL5js.InviteStatusRevoked; exports.InviteStatuses = _chunkLSUDMEL5js.InviteStatuses; exports.OnboardingStatusCompleted = _chunkLSUDMEL5js.OnboardingStatusCompleted; exports.OnboardingStatusInProgress = _chunkLSUDMEL5js.OnboardingStatusInProgress; exports.OnboardingStatusLegacy = _chunkLSUDMEL5js.OnboardingStatusLegacy; exports.OnboardingStatusPending = _chunkLSUDMEL5js.OnboardingStatusPending; exports.OnboardingStatusSkipped = _chunkLSUDMEL5js.OnboardingStatusSkipped; exports.OnboardingStatuses = _chunkLSUDMEL5js.OnboardingStatuses; exports.OrgSizeEnterprise = _chunkLSUDMEL5js.OrgSizeEnterprise; exports.OrgSizeLarge = _chunkLSUDMEL5js.OrgSizeLarge; exports.OrgSizeMedium = _chunkLSUDMEL5js.OrgSizeMedium; exports.OrgSizeSmall = _chunkLSUDMEL5js.OrgSizeSmall; exports.OrgSizeSolo = _chunkLSUDMEL5js.OrgSizeSolo; exports.OrgSizes = _chunkLSUDMEL5js.OrgSizes; exports.OrgStatusActive = _chunkLSUDMEL5js.OrgStatusActive; exports.OrgStatusSuspended = _chunkLSUDMEL5js.OrgStatusSuspended; exports.OrgStatuses = _chunkLSUDMEL5js.OrgStatuses; exports.OrgSubscriptionStatusActive = _chunkLSUDMEL5js.OrgSubscriptionStatusActive; exports.OrgSubscriptionStatusCancelled = _chunkLSUDMEL5js.OrgSubscriptionStatusCancelled; exports.OrgSubscriptionStatusPastDue = _chunkLSUDMEL5js.OrgSubscriptionStatusPastDue; exports.OrgSubscriptionStatusTrialing = _chunkLSUDMEL5js.OrgSubscriptionStatusTrialing; exports.OrgSubscriptionStatusUnpaid = _chunkLSUDMEL5js.OrgSubscriptionStatusUnpaid; exports.OrgSubscriptionStatuses = _chunkLSUDMEL5js.OrgSubscriptionStatuses; exports.OrgTypeEnterprise = _chunkLSUDMEL5js.OrgTypeEnterprise; exports.OrgTypeSelfServe = _chunkLSUDMEL5js.OrgTypeSelfServe; exports.OrgTypes = _chunkLSUDMEL5js.OrgTypes; exports.ProvisioningStatusCompleted = _chunkLSUDMEL5js.ProvisioningStatusCompleted; exports.ProvisioningStatusFailed = _chunkLSUDMEL5js.ProvisioningStatusFailed; exports.ProvisioningStatusPending = _chunkLSUDMEL5js.ProvisioningStatusPending; exports.ProvisioningStatusRunning = _chunkLSUDMEL5js.ProvisioningStatusRunning; exports.ProvisioningStatuses = _chunkLSUDMEL5js.ProvisioningStatuses; exports.SubscriptionPlatformCustom = _chunkLSUDMEL5js.SubscriptionPlatformCustom; exports.SubscriptionPlatformStripe = _chunkLSUDMEL5js.SubscriptionPlatformStripe; exports.SystemAppAdmin = _chunkLSUDMEL5js.SystemAppAdmin; exports.SystemAppAnalytics = _chunkLSUDMEL5js.SystemAppAnalytics; exports.SystemAppCRM = _chunkLSUDMEL5js.SystemAppCRM; exports.SystemAppDocumentProcessor = _chunkLSUDMEL5js.SystemAppDocumentProcessor; exports.SystemAppHelpdesk = _chunkLSUDMEL5js.SystemAppHelpdesk; exports.SystemAppKnowledgeGraph = _chunkLSUDMEL5js.SystemAppKnowledgeGraph; exports.SystemAppMarketing = _chunkLSUDMEL5js.SystemAppMarketing; exports.SystemAppWorkflow = _chunkLSUDMEL5js.SystemAppWorkflow; exports.SystemApps = _chunkLSUDMEL5js.SystemApps; exports.ThemeOptions = _chunkLSUDMEL5js.ThemeOptions; exports.UserContext = UserContext; exports.UserProvider = UserProvider; exports.UserSourceAPI = _chunkLSUDMEL5js.UserSourceAPI; exports.UserSourceInvite = _chunkLSUDMEL5js.UserSourceInvite; exports.UserSourceSSO = _chunkLSUDMEL5js.UserSourceSSO; exports.UserSourceSignup = _chunkLSUDMEL5js.UserSourceSignup; exports.UserSources = _chunkLSUDMEL5js.UserSources; exports.WidgetTypeAccounts = _chunkLSUDMEL5js.WidgetTypeAccounts; exports.WidgetTypeActivities = _chunkLSUDMEL5js.WidgetTypeActivities; exports.WidgetTypeCalendar = _chunkLSUDMEL5js.WidgetTypeCalendar; exports.WidgetTypeChart = _chunkLSUDMEL5js.WidgetTypeChart; exports.WidgetTypeContacts = _chunkLSUDMEL5js.WidgetTypeContacts; exports.WidgetTypeEmail = _chunkLSUDMEL5js.WidgetTypeEmail; exports.WidgetTypeFiles = _chunkLSUDMEL5js.WidgetTypeFiles; exports.WidgetTypeLeads = _chunkLSUDMEL5js.WidgetTypeLeads; exports.WidgetTypeNotes = _chunkLSUDMEL5js.WidgetTypeNotes; exports.WidgetTypeOpportunities = _chunkLSUDMEL5js.WidgetTypeOpportunities; exports.WidgetTypeOrders = _chunkLSUDMEL5js.WidgetTypeOrders; exports.WidgetTypeTasks = _chunkLSUDMEL5js.WidgetTypeTasks; exports.useUser = useUser; exports.useUserContext = useUserContext;
|
|
415
511
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../index.tsx","../context/user-context.tsx","../hooks/use-user.ts","../models/user-models.ts","../models/admin-types.ts"],"sourcesContent":["export * from \"./context\";\nexport * from \"./hooks\";\nexport * from \"./models\";\n// export * from \"./store\";\n\n// export * from \"./utils\";\n// export * from \"./client-types\";\n","\"use client\";\n\nimport { createContext, FC, ReactNode, useContext } from \"react\";\n\nimport { Team, UserResponse } from \"../models\";\nimport { useUser, UseUserType } from \"../hooks\";\n\nexport let UserContext = createContext<UseUserType>({\n user: undefined,\n isLoading: true,\n refresh: () => {},\n selectedOrgId: undefined,\n setSelectedOrgId: () => {},\n userOrgs: [],\n selectedOrg: undefined,\n isAdmin: false,\n isSuperAdmin: false,\n createUser: () => Promise.resolve({} as UserResponse),\n userInGroup: () => false,\n getUserTeam: () => Promise.resolve({} as Team),\n updateTeamOnboardingData: () => Promise.resolve(true),\n teams: [],\n selectedTeamId: undefined,\n setSelectedTeamId: () => {},\n onlineStatus: \"offline\",\n setOnlineStatus: () => {},\n});\n\ntype UserProviderProps = {\n children: ReactNode;\n email: string | undefined | null;\n};\n\nexport const UserProvider: FC<UserProviderProps> = ({ children, email }) => {\n const user = useUser(email);\n\n return <UserContext.Provider value={user}>{children}</UserContext.Provider>;\n};\n\nexport const useUserContext = () => useContext(UserContext);\n","\"use client\";\n\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useProductContext } from \"@elqnt/product\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n UpdateUserStatusRequest,\n UpdateUserStatusResponse,\n UpdateUserStatusSubject,\n UserStatusTS,\n} from \"@elqnt/types\";\nimport {\n OrgInfo,\n OrgInfoResponse,\n Team,\n User,\n UserOrgAccess,\n UserResponse,\n} from \"../models\";\n\n// Import OrgResponse from admin models for domain validation\ninterface OrgResponse {\n org: {\n id: string;\n title: string;\n mainDomain: string;\n [key: string]: any;\n };\n metadata: {\n success: boolean;\n error?: string;\n message?: string;\n };\n}\n\nexport interface UseUserType {\n user?: User;\n error?: Error;\n isLoading: boolean;\n refresh: () => void;\n selectedOrgId?: string;\n setSelectedOrgId?: (orgId: string) => void;\n userOrgs: UserOrgAccess[];\n selectedOrg?: OrgInfo;\n isAdmin: boolean;\n isSuperAdmin: boolean;\n createUser: (user: User) => Promise<UserResponse>;\n userInGroup: (group: string) => boolean;\n getUserTeam: () => Promise<Team | undefined>;\n updateTeamOnboardingData: (data: string) => Promise<Error | boolean>;\n teams: Team[];\n selectedTeamId?: string;\n setSelectedTeamId?: (id: string) => void;\n onlineStatus: UserStatusTS;\n setOnlineStatus: (status: UserStatusTS) => void;\n}\n\nexport const useUser = (\n email: string | undefined | null,\n autoLoad = true\n): UseUserType => {\n const { natsConnected, request } = useNatsContext();\n\n const [user, setUser] = useState<User | undefined>(undefined);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | undefined>(undefined);\n const [onlineStatus, setOnlineStatusLocal] = useState<UserStatusTS>(\"online\");\n const hasSetInitialStatus = useRef(false);\n\n const { product } = useProductContext();\n\n const [userOrgs, setUserOrgs] = useState<UserOrgAccess[]>([]);\n const [teams, setTeams] = useState<Team[]>([]);\n const [selectedTeamId, setSelectedTeamId] = useState<string | undefined>(\n undefined\n );\n\n const [selectedOrgId, setSelectedOrgId] = useState<string | undefined>(\n undefined\n );\n\n // Load orgId from localStorage on client side only\n useEffect(() => {\n const storedOrgId = localStorage.getItem(\"orgId\");\n if (storedOrgId) {\n setSelectedOrgId(storedOrgId);\n }\n }, []);\n\n const [selectedOrg, setSelectedOrg] = useState<OrgInfo | undefined>(\n undefined\n );\n\n const [isAdmin, setIsAdmin] = useState<boolean>(false);\n\n const [isSuperAdmin, setIsSuperAdmin] = useState<boolean>(false);\n\n // const [team, setTeam] = useState<Team | undefined>(undefined);\n\n const [userGroups, setUserGroups] = useState<string[]>([]);\n\n const getUserGroups = useCallback(async () => {\n if (!user || !selectedOrgId) return;\n const data = await request<object, { groups: string[] }>(\n \"user.groups.get\",\n {\n userId: user.id,\n },\n {\n orgId: selectedOrgId,\n }\n );\n\n if (!data || data?.groups.length === 0) {\n return;\n }\n\n // console.log(\"user groups\", data);\n\n //@ts-ignore\n setUserGroups(data.map((g) => g.toLowerCase().replaceAll(\" \", \"_\")));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user, selectedOrgId]);\n\n async function updateTeamOnboardingData(\n data: string\n ): Promise<Error | boolean> {\n if (!natsConnected) {\n console.error(\"nats not connected\");\n return new Error(\"nats not connected\");\n }\n\n if (!user) {\n console.error(\"user not defined\");\n return new Error(\"user not defined\");\n }\n\n if (!user.teamId) {\n console.error(\"teamId not defined\");\n return new Error(\"teamId not defined\");\n }\n\n const res = await request<any, any>(\n \"admin.teams.updateOnboardingData\",\n {\n data,\n teamId: user.teamId,\n },\n {\n orgId: selectedOrgId,\n product,\n }\n );\n\n if (res instanceof Error) {\n setError(res);\n setIsLoading(false);\n return res;\n }\n\n return res.success;\n }\n\n useEffect(() => {\n if (!user || !selectedOrgId) {\n return;\n }\n getUserGroups();\n }, [user, selectedOrgId, getUserGroups]);\n\n function userInGroup(group: string) {\n return userGroups.includes(group.toLowerCase().replaceAll(\" \", \"_\"));\n }\n\n useEffect(() => {\n if (!user) {\n return;\n }\n\n if (user.orgAccess && user?.orgAccess.length > 0) {\n if (selectedOrgId === undefined) {\n const orgAccess = user.orgAccess[0];\n\n //@ts-ignore\n setSelectedOrgId(orgAccess.orgId);\n setUserOrgs(user.orgAccess);\n updateAdminFlags();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user, selectedOrgId]);\n\n const updateAdminFlags = useCallback(() => {\n const orgAccess = userOrgs.find((org) => org.orgId === selectedOrgId);\n const isAdmin = orgAccess?.roles.includes(\"admin\") ?? false;\n setIsAdmin(isAdmin);\n\n if (!isAdmin) {\n setSelectedTeamId(user?.teamId);\n }\n\n const isSuperAdmin = orgAccess?.roles.includes(\"super-admin\") ?? false;\n setIsSuperAdmin(isSuperAdmin);\n }, [userOrgs, selectedOrgId, user?.teamId]);\n\n const create = async (data: User) => {\n setIsLoading(true);\n const res = await request<User, UserResponse>(\"admin.users.create\", data, {\n product,\n });\n setIsLoading(false);\n\n if (res instanceof Error) {\n setError(res);\n return res;\n }\n\n return res;\n };\n\n const getUser = useCallback(async () => {\n if (!natsConnected || !email || !product) {\n console.log(\"will not get user\", natsConnected, email, product);\n return;\n }\n\n console.log(\"will get user\", email, product);\n\n setIsLoading(true);\n const data = await request<object, UserResponse>(\n \"admin.users.getOneByEmail\",\n {\n email,\n },\n {\n product,\n }\n );\n\n if (data.metadata.success) {\n setUser(data.user);\n } else {\n // User not found in DB - try domain validation for AD users\n console.log(\"User not found in DB, attempting domain validation\");\n\n // Extract domain from email\n const emailDomain = email.split(\"@\")[1];\n\n if (emailDomain) {\n try {\n const orgResponse = await request<{ domain: string }, OrgResponse>(\n \"admin.orgs.getByDomain\",\n { domain: emailDomain },\n { product }\n );\n\n if (orgResponse.metadata?.success && orgResponse.org) {\n console.log(\"Found org by domain, creating virtual user\", orgResponse.org);\n\n // Create virtual user with org access\n const virtualUser: User = {\n email,\n firstName: email.split(\"@\")[0], // Use email prefix as first name\n lastName: \"\",\n authProviderName: \"azure\",\n orgAccess: [\n {\n orgId: orgResponse.org.id,\n orgTitle: orgResponse.org.title,\n roles: [\"user\"], // Default role for AD users\n isSingleAccount: true,\n },\n ],\n isSysAdmin: false,\n };\n\n setUser(virtualUser);\n setIsLoading(false);\n return;\n }\n } catch (domainError) {\n console.log(\"Domain validation failed\", domainError);\n }\n }\n\n // If domain validation fails, set original error\n setError(new Error(\"User not found\"));\n }\n\n setIsLoading(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [natsConnected, email, product]);\n\n const getSelectedOrg = useCallback(async () => {\n if (!selectedOrgId || !natsConnected) return;\n\n const res = await request<object, OrgInfoResponse>(\n \"admin.orgs.getInfo\",\n {\n id: selectedOrgId,\n },\n {\n product,\n }\n );\n\n setSelectedOrg(res.orgInfo);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedOrgId, product, natsConnected]);\n\n useEffect(() => {\n if (!selectedOrgId || !natsConnected) {\n return;\n }\n\n getSelectedOrg();\n updateAdminFlags();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedOrgId, natsConnected]);\n\n useEffect(() => {\n if (natsConnected && autoLoad && email) {\n getUser();\n }\n }, [natsConnected, autoLoad, email]);\n\n // Automatically set online status when user loads (removed due to infinite loop issues)\n // Users can manually set their status via the dropdown menu\n\n // Persist user status to backend\n const setOnlineStatus = useCallback(\n async (status: UserStatusTS) => {\n // Update local state immediately for responsiveness\n setOnlineStatusLocal(status);\n\n // Early returns\n if (!natsConnected) {\n console.log(\"NATS not connected, cannot update user status\");\n return;\n }\n\n if (!user) {\n console.log(\"User not available, cannot update user status\");\n return;\n }\n\n if (!selectedOrgId) {\n console.log(\"Org ID not selected, cannot update user status\");\n return;\n }\n\n // Persist to backend\n try {\n const response = await request<\n UpdateUserStatusRequest,\n UpdateUserStatusResponse\n >(UpdateUserStatusSubject, {\n orgId: selectedOrgId,\n userId: user.id || user.email,\n status: status,\n });\n\n if (!response.metadata.success) {\n console.error(\"Failed to update user status:\", response.metadata.error);\n // Optionally revert local state on failure\n // setOnlineStatusLocal(previousStatus);\n } else {\n console.log(\"User status updated successfully:\", status);\n }\n } catch (error) {\n console.error(\"Error updating user status:\", error);\n // Optionally revert local state on error\n // setOnlineStatusLocal(previousStatus);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [natsConnected, user, selectedOrgId]\n );\n\n return {\n user,\n error,\n isLoading,\n refresh: getUser,\n selectedOrg,\n selectedOrgId,\n setSelectedOrgId,\n userOrgs,\n isAdmin,\n isSuperAdmin,\n createUser: create,\n userInGroup,\n getUserTeam: () => Promise.resolve({} as Team),\n updateTeamOnboardingData,\n teams,\n selectedTeamId,\n setSelectedTeamId,\n onlineStatus,\n setOnlineStatus,\n };\n};\n","// Code generated by tygo. DO NOT EDIT.\n\n//////////\n// source: user.go\n\nexport type WidgetType = string;\nexport const WidgetTypeCalendar: WidgetType = \"calendar\";\nexport const WidgetTypeActivities: WidgetType = \"activities\";\nexport const WidgetTypeEmail: WidgetType = \"email\";\nexport const WidgetTypeTasks: WidgetType = \"tasks\";\nexport const WidgetTypeNotes: WidgetType = \"notes\";\nexport const WidgetTypeFiles: WidgetType = \"files\";\nexport const WidgetTypeContacts: WidgetType = \"contacts\";\nexport const WidgetTypeAccounts: WidgetType = \"accounts\";\nexport const WidgetTypeLeads: WidgetType = \"leads\";\nexport const WidgetTypeOpportunities: WidgetType = \"opportunities\";\nexport const WidgetTypeChart: WidgetType = \"chart\";\nexport const WidgetTypeOrders: WidgetType = \"orders\";\nexport interface Widget {\n id?: string /* ObjectID */;\n userId: string;\n title: string;\n subTitle?: string;\n type: WidgetType;\n chartSettings?: ChartSettings;\n slotIndex: number /* int */;\n}\nexport type ChartType = string;\nexport const ChartTypeBar: ChartType = \"Bar chart\";\nexport const ChartTypeLine: ChartType = \"Line chart\";\nexport const ChartTypePie: ChartType = \"Pie chart\";\nexport const ChartTypeDoughnut: ChartType = \"Doughnut chart\";\nexport const ChartTypeMetic: ChartType = \"Metric\";\nexport type AggregateType = string;\nexport const AggregateTypeSum: AggregateType = \"Sum\";\nexport const AggregateTypeCount: AggregateType = \"Count\";\nexport const AggregateTypeAverage: AggregateType = \"Average\";\nexport const AggregateTypeMin: AggregateType = \"Min\";\nexport const AggregateTypeMax: AggregateType = \"Max\";\nexport const AggregateTypeDistinct: AggregateType = \"Distinct\";\nexport interface MetricResult {\n aggregateType: AggregateType;\n value: any;\n compareAggregateType: AggregateType;\n compareValue: any;\n}\nexport interface DateValue {\n date: string;\n value: number /* float64 */;\n}\nexport interface ChartSettings {\n chartType: ChartType;\n aggregateType: AggregateType;\n tableName: string;\n groupByFieldName: string;\n valueFieldName: string;\n filterFieldName: string;\n filterFieldValue: string;\n enableCompare: boolean;\n compareTitle: string;\n compareAggregateType: AggregateType;\n compareTableName: string;\n compareValueFieldName: string;\n compareFilterFieldName: string;\n compareFilterFieldValue: string;\n}\n","// Types from admin package needed by auth\nexport interface ResponseMetadata {\n success: boolean;\n timestamp: string /* RFC3339 */;\n message?: string;\n error?: string;\n}\n\nexport interface UserOrgAccess {\n orgId: string /* ObjectID */;\n orgTitle: string;\n roles: string[];\n isSingleAccount: boolean;\n entityRecordFilter?: any /* entities.EntityRecordLookup */;\n}\n\n// UserSettings represents user preferences (elastic JSON structure)\nexport interface UserSettings {\n theme?: string; // \"system\" | \"light\" | \"dark\"\n language?: string; // \"auto\" | \"en\" | \"ar\" | etc.\n timezone?: string; // \"auto\" | \"America/New_York\" | etc.\n occupation?: string; // User's occupation/role\n company?: string; // User's company/organization\n}\n\n// NotificationPreferences represents user notification settings\nexport interface NotificationPreferences {\n pushEnabled: boolean;\n newChatAssignment: boolean;\n newMessages: boolean;\n escalations: boolean;\n urgentOnly: boolean;\n soundEnabled: boolean;\n doNotDisturb: boolean;\n dndStart?: string; // \"22:00\" format\n dndEnd?: string; // \"08:00\" format\n}\n\nexport interface User {\n id?: string /* ObjectID */;\n email: string;\n firstName: string;\n lastName: string;\n authProviderName: string;\n orgAccess: UserOrgAccess[];\n settings?: UserSettings;\n notificationPreferences?: NotificationPreferences;\n createdAt?: number /* int64 */;\n updatedAt?: number /* int64 */;\n createdBy?: string;\n updatedBy?: string;\n isTeamAdmin?: boolean;\n teamId?: string;\n teamName?: string;\n isSysAdmin?: boolean;\n}\n\nexport interface UserResponse {\n user: User;\n metadata: ResponseMetadata;\n}\n\n// Request/Response for settings operations\nexport interface UpdateUserSettingsRequest {\n id: string;\n settings?: UserSettings;\n notificationPreferences?: NotificationPreferences;\n}\n\nexport interface UserSettingsResponse {\n settings?: UserSettings;\n notificationPreferences?: NotificationPreferences;\n metadata: ResponseMetadata;\n}\n\nexport interface Team {\n id?: string /* ObjectID */;\n name: string;\n isSubscribed: boolean;\n subscribedAt: number /* int64 */;\n plan: string;\n ownerName: string;\n ownerEmail: string;\n subscriptionPlatform: SubscriptionPlatform;\n subscriptionId: string;\n onboardingDone: boolean;\n onboardingData: string;\n}\n\nexport type SubscriptionPlatform = string;\nexport const SubscriptionPlatformStripe: SubscriptionPlatform = \"stripe\";\nexport const SubscriptionPlatformCustom: SubscriptionPlatform = \"custom\";\n\nexport interface OrgInfo {\n id?: string;\n title: string;\n logoUrl: string;\n mainDomain?: string;\n apps: any[];\n}\n\nexport interface OrgInfoResponse {\n orgInfo: OrgInfo;\n metadata: ResponseMetadata;\n}"],"mappings":"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","names":["import_react","isAdmin","isSuperAdmin","error"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/auth/dist/index.js","../context/user-context.tsx","../hooks/use-user.ts"],"names":["isAdmin","isSuperAdmin","error"],"mappings":"AAAA,6rBAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACtGA,8BAAyD;ADwGzD;AACA;AEzGA,mCAA+B;AAC/B,yCAAkC;AAClC;AACA;AAGE;AAAA,qCAEK;AA+CA,IAAM,QAAA,EAAU,CACrB,KAAA,EACA,SAAA,EAAW,IAAA,EAAA,GACK;AAChB,EAAA,MAAM,EAAE,aAAA,EAAe,QAAQ,EAAA,EAAI,kCAAA,CAAe;AAElD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,EAAA,EAAI,6BAAA,KAA2B,CAAS,CAAA;AAC5D,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,EAAA,EAAI,6BAAA,KAAc,CAAA;AAChD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAI,6BAAA,KAA4B,CAAS,CAAA;AAC/D,EAAA,MAAM,CAAC,YAAA,EAAc,oBAAoB,EAAA,EAAI,6BAAA,QAA+B,CAAA;AAC5E,EAAA,MAAM,oBAAA,EAAsB,2BAAA,KAAY,CAAA;AAExC,EAAA,MAAM,EAAE,QAAQ,EAAA,EAAI,wCAAA,CAAkB;AAEtC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,EAAA,EAAI,6BAAA,CAA2B,CAAC,CAAA;AAC5D,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAI,6BAAA,CAAkB,CAAC,CAAA;AAC7C,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,EAAA,EAAI,6BAAA;AAAA,IAC1C,KAAA;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,EAAA,EAAI,6BAAA;AAAA,IACxC,KAAA;AAAA,EACF,CAAA;AAGA,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,MAAM,YAAA,EAAc,YAAA,CAAa,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,GAAA,CAAI,WAAA,EAAa;AACf,MAAA,gBAAA,CAAiB,WAAW,CAAA;AAAA,IAC9B;AAAA,EACF,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,EAAA,EAAI,6BAAA;AAAA,IACpC,KAAA;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,EAAA,EAAI,6BAAA,KAAuB,CAAA;AAErD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,EAAA,EAAI,6BAAA,KAAuB,CAAA;AAI/D,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,EAAA,EAAI,6BAAA,CAAoB,CAAC,CAAA;AAEzD,EAAA,MAAM,cAAA,EAAgB,gCAAA,MAAY,CAAA,EAAA,GAAY;AAC5C,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,CAAC,aAAA,EAAe,MAAA;AAC7B,IAAA,MAAM,KAAA,EAAO,MAAM,OAAA;AAAA,MACjB,iBAAA;AAAA,MACA;AAAA,QACE,MAAA,EAAQ,IAAA,CAAK;AAAA,MACf,CAAA;AAAA,MACA;AAAA,QACE,KAAA,EAAO;AAAA,MACT;AAAA,IACF,CAAA;AAEA,IAAA,GAAA,CAAI,CAAC,KAAA,mBAAQ,IAAA,2BAAM,MAAA,qBAAO,SAAA,IAAW,CAAA,EAAG;AACtC,MAAA,MAAA;AAAA,IACF;AAKA,IAAA,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,WAAA,CAAY,CAAA,CAAE,UAAA,CAAW,GAAA,EAAK,GAAG,CAAC,CAAC,CAAA;AAAA,EAErE,CAAA,EAAG,CAAC,IAAA,EAAM,aAAa,CAAC,CAAA;AAExB,EAAA,MAAA,SAAe,wBAAA,CACb,IAAA,EAC0B;AAC1B,IAAA,GAAA,CAAI,CAAC,aAAA,EAAe;AAClB,MAAA,OAAA,CAAQ,KAAA,CAAM,oBAAoB,CAAA;AAClC,MAAA,OAAO,IAAI,KAAA,CAAM,oBAAoB,CAAA;AAAA,IACvC;AAEA,IAAA,GAAA,CAAI,CAAC,IAAA,EAAM;AACT,MAAA,OAAA,CAAQ,KAAA,CAAM,kBAAkB,CAAA;AAChC,MAAA,OAAO,IAAI,KAAA,CAAM,kBAAkB,CAAA;AAAA,IACrC;AAEA,IAAA,GAAA,CAAI,CAAC,IAAA,CAAK,MAAA,EAAQ;AAChB,MAAA,OAAA,CAAQ,KAAA,CAAM,oBAAoB,CAAA;AAClC,MAAA,OAAO,IAAI,KAAA,CAAM,oBAAoB,CAAA;AAAA,IACvC;AAEA,IAAA,MAAM,IAAA,EAAM,MAAM,OAAA;AAAA,MAChB,kCAAA;AAAA,MACA;AAAA,QACE,IAAA;AAAA,QACA,MAAA,EAAQ,IAAA,CAAK;AAAA,MACf,CAAA;AAAA,MACA;AAAA,QACE,KAAA,EAAO,aAAA;AAAA,QACP;AAAA,MACF;AAAA,IACF,CAAA;AAEA,IAAA,GAAA,CAAI,IAAA,WAAe,KAAA,EAAO;AACxB,MAAA,QAAA,CAAS,GAAG,CAAA;AACZ,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,OAAO,GAAA;AAAA,IACT;AAEA,IAAA,OAAO,GAAA,CAAI,OAAA;AAAA,EACb;AAEA,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,CAAC,aAAA,EAAe;AAC3B,MAAA,MAAA;AAAA,IACF;AACA,IAAA,aAAA,CAAc,CAAA;AAAA,EAChB,CAAA,EAAG,CAAC,IAAA,EAAM,aAAA,EAAe,aAAa,CAAC,CAAA;AAEvC,EAAA,SAAS,WAAA,CAAY,KAAA,EAAe;AAClC,IAAA,OAAO,UAAA,CAAW,QAAA,CAAS,KAAA,CAAM,WAAA,CAAY,CAAA,CAAE,UAAA,CAAW,GAAA,EAAK,GAAG,CAAC,CAAA;AAAA,EACrE;AAEA,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,GAAA,CAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAA;AAAA,IACF;AAEA,IAAA,GAAA,CAAI,IAAA,CAAK,UAAA,mBAAa,IAAA,6BAAM,SAAA,qBAAU,SAAA,EAAS,CAAA,EAAG;AAChD,MAAA,GAAA,CAAI,cAAA,IAAkB,KAAA,CAAA,EAAW;AAC/B,QAAA,MAAM,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA;AAGlC,QAAA,gBAAA,CAAiB,SAAA,CAAU,KAAK,CAAA;AAChC,QAAA,WAAA,CAAY,IAAA,CAAK,SAAS,CAAA;AAC1B,QAAA,gBAAA,CAAiB,CAAA;AAAA,MACnB;AAAA,IACF;AAAA,EAEF,CAAA,EAAG,CAAC,IAAA,EAAM,aAAa,CAAC,CAAA;AAExB,EAAA,MAAM,iBAAA,EAAmB,gCAAA,CAAY,EAAA,GAAM;AACzC,IAAA,MAAM,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,CAAC,GAAA,EAAA,GAAQ,GAAA,CAAI,MAAA,IAAU,aAAa,CAAA;AACpE,IAAA,MAAMA,SAAAA,mCAAU,SAAA,6BAAW,KAAA,qBAAM,QAAA,mBAAS,OAAO,GAAA,UAAK,OAAA;AACtD,IAAA,UAAA,CAAWA,QAAO,CAAA;AAElB,IAAA,GAAA,CAAI,CAACA,QAAAA,EAAS;AACZ,MAAA,iBAAA,iBAAkB,IAAA,6BAAM,QAAM,CAAA;AAAA,IAChC;AAEA,IAAA,MAAMC,cAAAA,mCAAe,SAAA,6BAAW,KAAA,uBAAM,QAAA,qBAAS,aAAa,GAAA,UAAK,OAAA;AACjE,IAAA,eAAA,CAAgBA,aAAY,CAAA;AAAA,EAC9B,CAAA,EAAG,CAAC,QAAA,EAAU,aAAA,kBAAe,IAAA,+BAAM,QAAM,CAAC,CAAA;AAE1C,EAAA,MAAM,OAAA,EAAS,MAAA,CAAO,IAAA,EAAA,GAAe;AACnC,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,MAAM,IAAA,EAAM,MAAM,OAAA,CAA4B,oBAAA,EAAsB,IAAA,EAAM;AAAA,MACxE;AAAA,IACF,CAAC,CAAA;AACD,IAAA,YAAA,CAAa,KAAK,CAAA;AAElB,IAAA,GAAA,CAAI,IAAA,WAAe,KAAA,EAAO;AACxB,MAAA,QAAA,CAAS,GAAG,CAAA;AACZ,MAAA,OAAO,GAAA;AAAA,IACT;AAEA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,QAAA,EAAU,gCAAA,MAAY,CAAA,EAAA,GAAY;AACtC,IAAA,GAAA,CAAI,CAAC,cAAA,GAAiB,CAAC,MAAA,GAAS,CAAC,OAAA,EAAS;AACxC,MAAA,OAAA,CAAQ,GAAA,CAAI,mBAAA,EAAqB,aAAA,EAAe,KAAA,EAAO,OAAO,CAAA;AAC9D,MAAA,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,GAAA,CAAI,eAAA,EAAiB,KAAA,EAAO,OAAO,CAAA;AAE3C,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,MAAM,KAAA,EAAO,MAAM,OAAA;AAAA,MACjB,2BAAA;AAAA,MACA;AAAA,QACE;AAAA,MACF,CAAA;AAAA,MACA;AAAA,QACE;AAAA,MACF;AAAA,IACF,CAAA;AAEA,IAAA,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS;AACzB,MAAA,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AAAA,IACnB,EAAA,KAAO;AAEL,MAAA,OAAA,CAAQ,GAAA,CAAI,oDAAoD,CAAA;AAGhE,MAAA,MAAM,YAAA,EAAc,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA;AAEtC,MAAA,GAAA,CAAI,WAAA,EAAa;AACf,QAAA,IAAI;AACF,UAAA,MAAM,YAAA,EAAc,MAAM,OAAA;AAAA,YACxB,wBAAA;AAAA,YACA,EAAE,MAAA,EAAQ,YAAY,CAAA;AAAA,YACtB,EAAE,QAAQ;AAAA,UACZ,CAAA;AAEA,UAAA,GAAA,iBAAI,WAAA,uBAAY,QAAA,+BAAU,UAAA,GAAW,WAAA,CAAY,GAAA,EAAK;AACpD,YAAA,OAAA,CAAQ,GAAA,CAAI,4CAAA,EAA8C,WAAA,CAAY,GAAG,CAAA;AAGzE,YAAA,MAAM,YAAA,EAAoB;AAAA,cACxB,KAAA;AAAA,cACA,SAAA,EAAW,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA;AAAA;AAAA,cAC7B,QAAA,EAAU,EAAA;AAAA,cACV,gBAAA,EAAkB,OAAA;AAAA,cAClB,SAAA,EAAW;AAAA,gBACT;AAAA,kBACE,KAAA,EAAO,WAAA,CAAY,GAAA,CAAI,EAAA;AAAA,kBACvB,QAAA,EAAU,WAAA,CAAY,GAAA,CAAI,KAAA;AAAA,kBAC1B,KAAA,EAAO,CAAC,MAAM,CAAA;AAAA;AAAA,kBACd,eAAA,EAAiB;AAAA,gBACnB;AAAA,cACF,CAAA;AAAA,cACA,UAAA,EAAY;AAAA,YACd,CAAA;AAEA,YAAA,OAAA,CAAQ,WAAW,CAAA;AACnB,YAAA,YAAA,CAAa,KAAK,CAAA;AAClB,YAAA,MAAA;AAAA,UACF;AAAA,QACF,EAAA,MAAA,CAAS,WAAA,EAAa;AACpB,UAAA,OAAA,CAAQ,GAAA,CAAI,0BAAA,EAA4B,WAAW,CAAA;AAAA,QACrD;AAAA,MACF;AAGA,MAAA,QAAA,CAAS,IAAI,KAAA,CAAM,gBAAgB,CAAC,CAAA;AAAA,IACtC;AAEA,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,EAEpB,CAAA,EAAG,CAAC,aAAA,EAAe,KAAA,EAAO,OAAO,CAAC,CAAA;AAElC,EAAA,MAAM,eAAA,EAAiB,gCAAA,MAAY,CAAA,EAAA,GAAY;AAC7C,IAAA,GAAA,CAAI,CAAC,cAAA,GAAiB,CAAC,aAAA,EAAe,MAAA;AAEtC,IAAA,MAAM,IAAA,EAAM,MAAM,OAAA;AAAA,MAChB,oBAAA;AAAA,MACA;AAAA,QACE,EAAA,EAAI;AAAA,MACN,CAAA;AAAA,MACA;AAAA,QACE;AAAA,MACF;AAAA,IACF,CAAA;AAEA,IAAA,cAAA,CAAe,GAAA,CAAI,OAAO,CAAA;AAAA,EAE5B,CAAA,EAAG,CAAC,aAAA,EAAe,OAAA,EAAS,aAAa,CAAC,CAAA;AAE1C,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,GAAA,CAAI,CAAC,cAAA,GAAiB,CAAC,aAAA,EAAe;AACpC,MAAA,MAAA;AAAA,IACF;AAEA,IAAA,cAAA,CAAe,CAAA;AACf,IAAA,gBAAA,CAAiB,CAAA;AAAA,EAEnB,CAAA,EAAG,CAAC,aAAA,EAAe,aAAa,CAAC,CAAA;AAEjC,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,GAAA,CAAI,cAAA,GAAiB,SAAA,GAAY,KAAA,EAAO;AACtC,MAAA,OAAA,CAAQ,CAAA;AAAA,IACV;AAAA,EACF,CAAA,EAAG,CAAC,aAAA,EAAe,QAAA,EAAU,KAAK,CAAC,CAAA;AAMnC,EAAA,MAAM,gBAAA,EAAkB,gCAAA;AAAA,IACtB,MAAA,CAAO,MAAA,EAAA,GAAyB;AAE9B,MAAA,oBAAA,CAAqB,MAAM,CAAA;AAG3B,MAAA,GAAA,CAAI,CAAC,aAAA,EAAe;AAClB,QAAA,OAAA,CAAQ,GAAA,CAAI,+CAA+C,CAAA;AAC3D,QAAA,MAAA;AAAA,MACF;AAEA,MAAA,GAAA,CAAI,CAAC,IAAA,EAAM;AACT,QAAA,OAAA,CAAQ,GAAA,CAAI,+CAA+C,CAAA;AAC3D,QAAA,MAAA;AAAA,MACF;AAEA,MAAA,GAAA,CAAI,CAAC,aAAA,EAAe;AAClB,QAAA,OAAA,CAAQ,GAAA,CAAI,gDAAgD,CAAA;AAC5D,QAAA,MAAA;AAAA,MACF;AAGA,MAAA,IAAI;AACF,QAAA,MAAM,SAAA,EAAW,MAAM,OAAA,CAGrB,8BAAA,EAAyB;AAAA,UACzB,KAAA,EAAO,aAAA;AAAA,UACP,MAAA,EAAQ,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,KAAA;AAAA,UACxB;AAAA,QACF,CAAC,CAAA;AAED,QAAA,GAAA,CAAI,CAAC,QAAA,CAAS,QAAA,CAAS,OAAA,EAAS;AAC9B,UAAA,OAAA,CAAQ,KAAA,CAAM,+BAAA,EAAiC,QAAA,CAAS,QAAA,CAAS,KAAK,CAAA;AAAA,QAGxE,EAAA,KAAO;AACL,UAAA,OAAA,CAAQ,GAAA,CAAI,mCAAA,EAAqC,MAAM,CAAA;AAAA,QACzD;AAAA,MACF,EAAA,MAAA,CAASC,MAAAA,EAAO;AACd,QAAA,OAAA,CAAQ,KAAA,CAAM,6BAAA,EAA+BA,MAAK,CAAA;AAAA,MAGpD;AAAA,IACF,CAAA;AAAA;AAAA,IAEA,CAAC,aAAA,EAAe,IAAA,EAAM,aAAa;AAAA,EACrC,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA,EAAS,OAAA;AAAA,IACT,WAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA,EAAY,MAAA;AAAA,IACZ,WAAA;AAAA,IACA,WAAA,EAAa,CAAA,EAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAS,CAAA;AAAA,IAC7C,wBAAA;AAAA,IACA,KAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,EACF,CAAA;AACF,CAAA;AF5BA;AACA;ACjVS,+CAAA;AA7BF,IAAI,YAAA,EAAc,kCAAA;AAA2B,EAClD,IAAA,EAAM,KAAA,CAAA;AAAA,EACN,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,CAAA,EAAA,GAAM;AAAA,EAAC,CAAA;AAAA,EAChB,aAAA,EAAe,KAAA,CAAA;AAAA,EACf,gBAAA,EAAkB,CAAA,EAAA,GAAM;AAAA,EAAC,CAAA;AAAA,EACzB,QAAA,EAAU,CAAC,CAAA;AAAA,EACX,WAAA,EAAa,KAAA,CAAA;AAAA,EACb,OAAA,EAAS,KAAA;AAAA,EACT,YAAA,EAAc,KAAA;AAAA,EACd,UAAA,EAAY,CAAA,EAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAiB,CAAA;AAAA,EACpD,WAAA,EAAa,CAAA,EAAA,GAAM,KAAA;AAAA,EACnB,WAAA,EAAa,CAAA,EAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAS,CAAA;AAAA,EAC7C,wBAAA,EAA0B,CAAA,EAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA;AAAA,EACpD,KAAA,EAAO,CAAC,CAAA;AAAA,EACR,cAAA,EAAgB,KAAA,CAAA;AAAA,EAChB,iBAAA,EAAmB,CAAA,EAAA,GAAM;AAAA,EAAC,CAAA;AAAA,EAC1B,YAAA,EAAc,SAAA;AAAA,EACd,eAAA,EAAiB,CAAA,EAAA,GAAM;AAAA,EAAC;AAC1B,CAAC,CAAA;AAOM,IAAM,aAAA,EAAsC,CAAC,EAAE,QAAA,EAAU,MAAM,CAAA,EAAA,GAAM;AAC1E,EAAA,MAAM,KAAA,EAAO,OAAA,CAAQ,KAAK,CAAA;AAE1B,EAAA,uBAAO,6BAAA,WAAC,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,IAAA,EAAO,SAAA,CAAS,CAAA;AACtD,CAAA;AAEO,IAAM,eAAA,EAAiB,CAAA,EAAA,GAAM,+BAAA,WAAsB,CAAA;AD6W1D;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yjNAAC","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/auth/dist/index.js","sourcesContent":[null,"\"use client\";\n\nimport { createContext, FC, ReactNode, useContext } from \"react\";\n\nimport { Team, UserResponse } from \"../models\";\nimport { useUser, UseUserType } from \"../hooks\";\n\nexport let UserContext = createContext<UseUserType>({\n user: undefined,\n isLoading: true,\n refresh: () => {},\n selectedOrgId: undefined,\n setSelectedOrgId: () => {},\n userOrgs: [],\n selectedOrg: undefined,\n isAdmin: false,\n isSuperAdmin: false,\n createUser: () => Promise.resolve({} as UserResponse),\n userInGroup: () => false,\n getUserTeam: () => Promise.resolve({} as Team),\n updateTeamOnboardingData: () => Promise.resolve(true),\n teams: [],\n selectedTeamId: undefined,\n setSelectedTeamId: () => {},\n onlineStatus: \"offline\",\n setOnlineStatus: () => {},\n});\n\ntype UserProviderProps = {\n children: ReactNode;\n email: string | undefined | null;\n};\n\nexport const UserProvider: FC<UserProviderProps> = ({ children, email }) => {\n const user = useUser(email);\n\n return <UserContext.Provider value={user}>{children}</UserContext.Provider>;\n};\n\nexport const useUserContext = () => useContext(UserContext);\n","\"use client\";\n\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useProductContext } from \"@elqnt/product\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n UpdateUserStatusRequest,\n UpdateUserStatusResponse,\n UpdateUserStatusSubject,\n UserStatusTS,\n} from \"@elqnt/types\";\nimport {\n OrgInfo,\n OrgInfoResponse,\n Team,\n User,\n UserOrgAccess,\n UserResponse,\n} from \"../models\";\n\n// Import OrgResponse from admin models for domain validation\ninterface OrgResponse {\n org: {\n id: string;\n title: string;\n mainDomain: string;\n [key: string]: any;\n };\n metadata: {\n success: boolean;\n error?: string;\n message?: string;\n };\n}\n\nexport interface UseUserType {\n user?: User;\n error?: Error;\n isLoading: boolean;\n refresh: () => void;\n selectedOrgId?: string;\n setSelectedOrgId?: (orgId: string) => void;\n userOrgs: UserOrgAccess[];\n selectedOrg?: OrgInfo;\n isAdmin: boolean;\n isSuperAdmin: boolean;\n createUser: (user: User) => Promise<UserResponse>;\n userInGroup: (group: string) => boolean;\n getUserTeam: () => Promise<Team | undefined>;\n updateTeamOnboardingData: (data: string) => Promise<Error | boolean>;\n teams: Team[];\n selectedTeamId?: string;\n setSelectedTeamId?: (id: string) => void;\n onlineStatus: UserStatusTS;\n setOnlineStatus: (status: UserStatusTS) => void;\n}\n\nexport const useUser = (\n email: string | undefined | null,\n autoLoad = true\n): UseUserType => {\n const { natsConnected, request } = useNatsContext();\n\n const [user, setUser] = useState<User | undefined>(undefined);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | undefined>(undefined);\n const [onlineStatus, setOnlineStatusLocal] = useState<UserStatusTS>(\"online\");\n const hasSetInitialStatus = useRef(false);\n\n const { product } = useProductContext();\n\n const [userOrgs, setUserOrgs] = useState<UserOrgAccess[]>([]);\n const [teams, setTeams] = useState<Team[]>([]);\n const [selectedTeamId, setSelectedTeamId] = useState<string | undefined>(\n undefined\n );\n\n const [selectedOrgId, setSelectedOrgId] = useState<string | undefined>(\n undefined\n );\n\n // Load orgId from localStorage on client side only\n useEffect(() => {\n const storedOrgId = localStorage.getItem(\"orgId\");\n if (storedOrgId) {\n setSelectedOrgId(storedOrgId);\n }\n }, []);\n\n const [selectedOrg, setSelectedOrg] = useState<OrgInfo | undefined>(\n undefined\n );\n\n const [isAdmin, setIsAdmin] = useState<boolean>(false);\n\n const [isSuperAdmin, setIsSuperAdmin] = useState<boolean>(false);\n\n // const [team, setTeam] = useState<Team | undefined>(undefined);\n\n const [userGroups, setUserGroups] = useState<string[]>([]);\n\n const getUserGroups = useCallback(async () => {\n if (!user || !selectedOrgId) return;\n const data = await request<object, { groups: string[] }>(\n \"user.groups.get\",\n {\n userId: user.id,\n },\n {\n orgId: selectedOrgId,\n }\n );\n\n if (!data || data?.groups.length === 0) {\n return;\n }\n\n // console.log(\"user groups\", data);\n\n //@ts-ignore\n setUserGroups(data.map((g) => g.toLowerCase().replaceAll(\" \", \"_\")));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user, selectedOrgId]);\n\n async function updateTeamOnboardingData(\n data: string\n ): Promise<Error | boolean> {\n if (!natsConnected) {\n console.error(\"nats not connected\");\n return new Error(\"nats not connected\");\n }\n\n if (!user) {\n console.error(\"user not defined\");\n return new Error(\"user not defined\");\n }\n\n if (!user.teamId) {\n console.error(\"teamId not defined\");\n return new Error(\"teamId not defined\");\n }\n\n const res = await request<any, any>(\n \"admin.teams.updateOnboardingData\",\n {\n data,\n teamId: user.teamId,\n },\n {\n orgId: selectedOrgId,\n product,\n }\n );\n\n if (res instanceof Error) {\n setError(res);\n setIsLoading(false);\n return res;\n }\n\n return res.success;\n }\n\n useEffect(() => {\n if (!user || !selectedOrgId) {\n return;\n }\n getUserGroups();\n }, [user, selectedOrgId, getUserGroups]);\n\n function userInGroup(group: string) {\n return userGroups.includes(group.toLowerCase().replaceAll(\" \", \"_\"));\n }\n\n useEffect(() => {\n if (!user) {\n return;\n }\n\n if (user.orgAccess && user?.orgAccess.length > 0) {\n if (selectedOrgId === undefined) {\n const orgAccess = user.orgAccess[0];\n\n //@ts-ignore\n setSelectedOrgId(orgAccess.orgId);\n setUserOrgs(user.orgAccess);\n updateAdminFlags();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user, selectedOrgId]);\n\n const updateAdminFlags = useCallback(() => {\n const orgAccess = userOrgs.find((org) => org.orgId === selectedOrgId);\n const isAdmin = orgAccess?.roles.includes(\"admin\") ?? false;\n setIsAdmin(isAdmin);\n\n if (!isAdmin) {\n setSelectedTeamId(user?.teamId);\n }\n\n const isSuperAdmin = orgAccess?.roles.includes(\"super-admin\") ?? false;\n setIsSuperAdmin(isSuperAdmin);\n }, [userOrgs, selectedOrgId, user?.teamId]);\n\n const create = async (data: User) => {\n setIsLoading(true);\n const res = await request<User, UserResponse>(\"admin.users.create\", data, {\n product,\n });\n setIsLoading(false);\n\n if (res instanceof Error) {\n setError(res);\n return res;\n }\n\n return res;\n };\n\n const getUser = useCallback(async () => {\n if (!natsConnected || !email || !product) {\n console.log(\"will not get user\", natsConnected, email, product);\n return;\n }\n\n console.log(\"will get user\", email, product);\n\n setIsLoading(true);\n const data = await request<object, UserResponse>(\n \"admin.users.getOneByEmail\",\n {\n email,\n },\n {\n product,\n }\n );\n\n if (data.metadata.success) {\n setUser(data.user);\n } else {\n // User not found in DB - try domain validation for AD users\n console.log(\"User not found in DB, attempting domain validation\");\n\n // Extract domain from email\n const emailDomain = email.split(\"@\")[1];\n\n if (emailDomain) {\n try {\n const orgResponse = await request<{ domain: string }, OrgResponse>(\n \"admin.orgs.getByDomain\",\n { domain: emailDomain },\n { product }\n );\n\n if (orgResponse.metadata?.success && orgResponse.org) {\n console.log(\"Found org by domain, creating virtual user\", orgResponse.org);\n\n // Create virtual user with org access\n const virtualUser: User = {\n email,\n firstName: email.split(\"@\")[0], // Use email prefix as first name\n lastName: \"\",\n authProviderName: \"azure\",\n orgAccess: [\n {\n orgId: orgResponse.org.id,\n orgTitle: orgResponse.org.title,\n roles: [\"user\"], // Default role for AD users\n isSingleAccount: true,\n },\n ],\n isSysAdmin: false,\n };\n\n setUser(virtualUser);\n setIsLoading(false);\n return;\n }\n } catch (domainError) {\n console.log(\"Domain validation failed\", domainError);\n }\n }\n\n // If domain validation fails, set original error\n setError(new Error(\"User not found\"));\n }\n\n setIsLoading(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [natsConnected, email, product]);\n\n const getSelectedOrg = useCallback(async () => {\n if (!selectedOrgId || !natsConnected) return;\n\n const res = await request<object, OrgInfoResponse>(\n \"admin.orgs.getInfo\",\n {\n id: selectedOrgId,\n },\n {\n product,\n }\n );\n\n setSelectedOrg(res.orgInfo);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedOrgId, product, natsConnected]);\n\n useEffect(() => {\n if (!selectedOrgId || !natsConnected) {\n return;\n }\n\n getSelectedOrg();\n updateAdminFlags();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedOrgId, natsConnected]);\n\n useEffect(() => {\n if (natsConnected && autoLoad && email) {\n getUser();\n }\n }, [natsConnected, autoLoad, email]);\n\n // Automatically set online status when user loads (removed due to infinite loop issues)\n // Users can manually set their status via the dropdown menu\n\n // Persist user status to backend\n const setOnlineStatus = useCallback(\n async (status: UserStatusTS) => {\n // Update local state immediately for responsiveness\n setOnlineStatusLocal(status);\n\n // Early returns\n if (!natsConnected) {\n console.log(\"NATS not connected, cannot update user status\");\n return;\n }\n\n if (!user) {\n console.log(\"User not available, cannot update user status\");\n return;\n }\n\n if (!selectedOrgId) {\n console.log(\"Org ID not selected, cannot update user status\");\n return;\n }\n\n // Persist to backend\n try {\n const response = await request<\n UpdateUserStatusRequest,\n UpdateUserStatusResponse\n >(UpdateUserStatusSubject, {\n orgId: selectedOrgId,\n userId: user.id || user.email,\n status: status,\n });\n\n if (!response.metadata.success) {\n console.error(\"Failed to update user status:\", response.metadata.error);\n // Optionally revert local state on failure\n // setOnlineStatusLocal(previousStatus);\n } else {\n console.log(\"User status updated successfully:\", status);\n }\n } catch (error) {\n console.error(\"Error updating user status:\", error);\n // Optionally revert local state on error\n // setOnlineStatusLocal(previousStatus);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [natsConnected, user, selectedOrgId]\n );\n\n return {\n user,\n error,\n isLoading,\n refresh: getUser,\n selectedOrg,\n selectedOrgId,\n setSelectedOrgId,\n userOrgs,\n isAdmin,\n isSuperAdmin,\n createUser: create,\n userInGroup,\n getUserTeam: () => Promise.resolve({} as Team),\n updateTeamOnboardingData,\n teams,\n selectedTeamId,\n setSelectedTeamId,\n onlineStatus,\n setOnlineStatus,\n };\n};\n"]}
|