@elqnt/auth 1.0.7 → 1.0.11

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/index.js CHANGED
@@ -1,95 +1,146 @@
1
- "use client";
2
- "use strict";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // index.tsx
22
- var index_exports = {};
23
- __export(index_exports, {
24
- AggregateTypeAverage: () => AggregateTypeAverage,
25
- AggregateTypeCount: () => AggregateTypeCount,
26
- AggregateTypeDistinct: () => AggregateTypeDistinct,
27
- AggregateTypeMax: () => AggregateTypeMax,
28
- AggregateTypeMin: () => AggregateTypeMin,
29
- AggregateTypeSum: () => AggregateTypeSum,
30
- ChartTypeBar: () => ChartTypeBar,
31
- ChartTypeDoughnut: () => ChartTypeDoughnut,
32
- ChartTypeLine: () => ChartTypeLine,
33
- ChartTypeMetic: () => ChartTypeMetic,
34
- ChartTypePie: () => ChartTypePie,
35
- SubscriptionPlatformCustom: () => SubscriptionPlatformCustom,
36
- SubscriptionPlatformStripe: () => SubscriptionPlatformStripe,
37
- UserContext: () => UserContext,
38
- UserProvider: () => UserProvider,
39
- WidgetTypeAccounts: () => WidgetTypeAccounts,
40
- WidgetTypeActivities: () => WidgetTypeActivities,
41
- WidgetTypeCalendar: () => WidgetTypeCalendar,
42
- WidgetTypeChart: () => WidgetTypeChart,
43
- WidgetTypeContacts: () => WidgetTypeContacts,
44
- WidgetTypeEmail: () => WidgetTypeEmail,
45
- WidgetTypeFiles: () => WidgetTypeFiles,
46
- WidgetTypeLeads: () => WidgetTypeLeads,
47
- WidgetTypeNotes: () => WidgetTypeNotes,
48
- WidgetTypeOpportunities: () => WidgetTypeOpportunities,
49
- WidgetTypeOrders: () => WidgetTypeOrders,
50
- WidgetTypeTasks: () => WidgetTypeTasks,
51
- useUser: () => useUser,
52
- useUserContext: () => useUserContext
53
- });
54
- module.exports = __toCommonJS(index_exports);
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 _chunk7RWOKNHMjs = require('./chunk-7RWOKNHM.js');
55
104
 
56
105
  // context/user-context.tsx
57
- var import_react2 = require("react");
106
+ var _react = require('react');
58
107
 
59
108
  // hooks/use-user.ts
60
- var import_nats = require("@elqnt/nats");
61
- var import_product = require("@elqnt/product");
62
- var import_react = require("react");
63
- var import_types = require("@elqnt/types");
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, import_nats.useNatsContext)();
66
- const [user, setUser] = (0, import_react.useState)(void 0);
67
- const [isLoading, setIsLoading] = (0, import_react.useState)(false);
68
- const [error, setError] = (0, import_react.useState)(void 0);
69
- const [onlineStatus, setOnlineStatusLocal] = (0, import_react.useState)("online");
70
- const hasSetInitialStatus = (0, import_react.useRef)(false);
71
- const { product } = (0, import_product.useProductContext)();
72
- const [userOrgs, setUserOrgs] = (0, import_react.useState)([]);
73
- const [teams, setTeams] = (0, import_react.useState)([]);
74
- const [selectedTeamId, setSelectedTeamId] = (0, import_react.useState)(
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, import_react.useState)(
128
+ const [selectedOrgId, setSelectedOrgId] = _react.useState.call(void 0,
78
129
  void 0
79
130
  );
80
- (0, import_react.useEffect)(() => {
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, import_react.useState)(
137
+ const [selectedOrg, setSelectedOrg] = _react.useState.call(void 0,
87
138
  void 0
88
139
  );
89
- const [isAdmin, setIsAdmin] = (0, import_react.useState)(false);
90
- const [isSuperAdmin, setIsSuperAdmin] = (0, import_react.useState)(false);
91
- const [userGroups, setUserGroups] = (0, import_react.useState)([]);
92
- const getUserGroups = (0, import_react.useCallback)(async () => {
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?.groups.length === 0) {
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, import_react.useEffect)(() => {
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, import_react.useEffect)(() => {
199
+ _react.useEffect.call(void 0, () => {
149
200
  if (!user) {
150
201
  return;
151
202
  }
152
- if (user.orgAccess && user?.orgAccess.length > 0) {
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, import_react.useCallback)(() => {
212
+ const updateAdminFlags = _react.useCallback.call(void 0, () => {
162
213
  const orgAccess = userOrgs.find((org) => org.orgId === selectedOrgId);
163
- const isAdmin2 = orgAccess?.roles.includes("admin") ?? false;
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?.teamId);
217
+ setSelectedTeamId(_optionalChain([user, 'optionalAccess', _8 => _8.teamId]));
167
218
  }
168
- const isSuperAdmin2 = orgAccess?.roles.includes("super-admin") ?? false;
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?.teamId]);
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, import_react.useCallback)(async () => {
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?.success && orgResponse.org) {
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, import_react.useCallback)(async () => {
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, import_react.useEffect)(() => {
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, import_react.useEffect)(() => {
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, import_react.useCallback)(
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(import_types.UpdateUserStatusSubject, {
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 import_jsx_runtime = require("react/jsx-runtime");
325
- var UserContext = (0, import_react2.createContext)({
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, import_jsx_runtime.jsx)(UserContext.Provider, { value: user, children });
402
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UserContext.Provider, { value: user, children });
352
403
  };
353
- var useUserContext = () => (0, import_react2.useContext)(UserContext);
354
-
355
- // models/user-models.ts
356
- var WidgetTypeCalendar = "calendar";
357
- var WidgetTypeActivities = "activities";
358
- var WidgetTypeEmail = "email";
359
- var WidgetTypeTasks = "tasks";
360
- var WidgetTypeNotes = "notes";
361
- var WidgetTypeFiles = "files";
362
- var WidgetTypeContacts = "contacts";
363
- var WidgetTypeAccounts = "accounts";
364
- var WidgetTypeLeads = "leads";
365
- var WidgetTypeOpportunities = "opportunities";
366
- var WidgetTypeChart = "chart";
367
- var WidgetTypeOrders = "orders";
368
- var ChartTypeBar = "Bar chart";
369
- var ChartTypeLine = "Line chart";
370
- var ChartTypePie = "Pie chart";
371
- var ChartTypeDoughnut = "Doughnut chart";
372
- var ChartTypeMetic = "Metric";
373
- var AggregateTypeSum = "Sum";
374
- var AggregateTypeCount = "Count";
375
- var AggregateTypeAverage = "Average";
376
- var AggregateTypeMin = "Min";
377
- var AggregateTypeMax = "Max";
378
- var AggregateTypeDistinct = "Distinct";
379
-
380
- // models/admin-types.ts
381
- var SubscriptionPlatformStripe = "stripe";
382
- var SubscriptionPlatformCustom = "custom";
383
- // Annotate the CommonJS export names for ESM import in node:
384
- 0 && (module.exports = {
385
- AggregateTypeAverage,
386
- AggregateTypeCount,
387
- AggregateTypeDistinct,
388
- AggregateTypeMax,
389
- AggregateTypeMin,
390
- AggregateTypeSum,
391
- ChartTypeBar,
392
- ChartTypeDoughnut,
393
- ChartTypeLine,
394
- ChartTypeMetic,
395
- ChartTypePie,
396
- SubscriptionPlatformCustom,
397
- SubscriptionPlatformStripe,
398
- UserContext,
399
- UserProvider,
400
- WidgetTypeAccounts,
401
- WidgetTypeActivities,
402
- WidgetTypeCalendar,
403
- WidgetTypeChart,
404
- WidgetTypeContacts,
405
- WidgetTypeEmail,
406
- WidgetTypeFiles,
407
- WidgetTypeLeads,
408
- WidgetTypeNotes,
409
- WidgetTypeOpportunities,
410
- WidgetTypeOrders,
411
- WidgetTypeTasks,
412
- useUser,
413
- useUserContext
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 = _chunk7RWOKNHMjs.AdminOrgCreate; exports.AdminOrgCreated = _chunk7RWOKNHMjs.AdminOrgCreated; exports.AdminOrgDelete = _chunk7RWOKNHMjs.AdminOrgDelete; exports.AdminOrgGet = _chunk7RWOKNHMjs.AdminOrgGet; exports.AdminOrgGetByDomain = _chunk7RWOKNHMjs.AdminOrgGetByDomain; exports.AdminOrgGetInfo = _chunk7RWOKNHMjs.AdminOrgGetInfo; exports.AdminOrgList = _chunk7RWOKNHMjs.AdminOrgList; exports.AdminOrgListByMetadata = _chunk7RWOKNHMjs.AdminOrgListByMetadata; exports.AdminOrgRolesCreate = _chunk7RWOKNHMjs.AdminOrgRolesCreate; exports.AdminOrgRolesDelete = _chunk7RWOKNHMjs.AdminOrgRolesDelete; exports.AdminOrgRolesGet = _chunk7RWOKNHMjs.AdminOrgRolesGet; exports.AdminOrgRolesUpdate = _chunk7RWOKNHMjs.AdminOrgRolesUpdate; exports.AdminOrgUpdate = _chunk7RWOKNHMjs.AdminOrgUpdate; exports.AdminTeamsCreate = _chunk7RWOKNHMjs.AdminTeamsCreate; exports.AdminTeamsGetForOrg = _chunk7RWOKNHMjs.AdminTeamsGetForOrg; exports.AdminTeamsGetOne = _chunk7RWOKNHMjs.AdminTeamsGetOne; exports.AdminTeamsUpdateOnboarding = _chunk7RWOKNHMjs.AdminTeamsUpdateOnboarding; exports.AdminUsersCreate = _chunk7RWOKNHMjs.AdminUsersCreate; exports.AdminUsersDelete = _chunk7RWOKNHMjs.AdminUsersDelete; exports.AdminUsersGet = _chunk7RWOKNHMjs.AdminUsersGet; exports.AdminUsersGetForOrg = _chunk7RWOKNHMjs.AdminUsersGetForOrg; exports.AdminUsersGetOne = _chunk7RWOKNHMjs.AdminUsersGetOne; exports.AdminUsersGetOneByEmail = _chunk7RWOKNHMjs.AdminUsersGetOneByEmail; exports.AdminUsersGetSettings = _chunk7RWOKNHMjs.AdminUsersGetSettings; exports.AdminUsersUpdate = _chunk7RWOKNHMjs.AdminUsersUpdate; exports.AdminUsersUpdateSettings = _chunk7RWOKNHMjs.AdminUsersUpdateSettings; exports.AggregateTypeAverage = _chunk7RWOKNHMjs.AggregateTypeAverage; exports.AggregateTypeCount = _chunk7RWOKNHMjs.AggregateTypeCount; exports.AggregateTypeDistinct = _chunk7RWOKNHMjs.AggregateTypeDistinct; exports.AggregateTypeMax = _chunk7RWOKNHMjs.AggregateTypeMax; exports.AggregateTypeMin = _chunk7RWOKNHMjs.AggregateTypeMin; exports.AggregateTypeSum = _chunk7RWOKNHMjs.AggregateTypeSum; exports.ChartTypeBar = _chunk7RWOKNHMjs.ChartTypeBar; exports.ChartTypeDoughnut = _chunk7RWOKNHMjs.ChartTypeDoughnut; exports.ChartTypeLine = _chunk7RWOKNHMjs.ChartTypeLine; exports.ChartTypeMetic = _chunk7RWOKNHMjs.ChartTypeMetic; exports.ChartTypePie = _chunk7RWOKNHMjs.ChartTypePie; exports.InviteStatusAccepted = _chunk7RWOKNHMjs.InviteStatusAccepted; exports.InviteStatusExpired = _chunk7RWOKNHMjs.InviteStatusExpired; exports.InviteStatusPending = _chunk7RWOKNHMjs.InviteStatusPending; exports.InviteStatusRevoked = _chunk7RWOKNHMjs.InviteStatusRevoked; exports.InviteStatuses = _chunk7RWOKNHMjs.InviteStatuses; exports.OnboardingStatusCompleted = _chunk7RWOKNHMjs.OnboardingStatusCompleted; exports.OnboardingStatusInProgress = _chunk7RWOKNHMjs.OnboardingStatusInProgress; exports.OnboardingStatusLegacy = _chunk7RWOKNHMjs.OnboardingStatusLegacy; exports.OnboardingStatusPending = _chunk7RWOKNHMjs.OnboardingStatusPending; exports.OnboardingStatusSkipped = _chunk7RWOKNHMjs.OnboardingStatusSkipped; exports.OnboardingStatuses = _chunk7RWOKNHMjs.OnboardingStatuses; exports.OrgSizeEnterprise = _chunk7RWOKNHMjs.OrgSizeEnterprise; exports.OrgSizeLarge = _chunk7RWOKNHMjs.OrgSizeLarge; exports.OrgSizeMedium = _chunk7RWOKNHMjs.OrgSizeMedium; exports.OrgSizeSmall = _chunk7RWOKNHMjs.OrgSizeSmall; exports.OrgSizeSolo = _chunk7RWOKNHMjs.OrgSizeSolo; exports.OrgSizes = _chunk7RWOKNHMjs.OrgSizes; exports.OrgStatusActive = _chunk7RWOKNHMjs.OrgStatusActive; exports.OrgStatusSuspended = _chunk7RWOKNHMjs.OrgStatusSuspended; exports.OrgStatuses = _chunk7RWOKNHMjs.OrgStatuses; exports.OrgSubscriptionStatusActive = _chunk7RWOKNHMjs.OrgSubscriptionStatusActive; exports.OrgSubscriptionStatusCancelled = _chunk7RWOKNHMjs.OrgSubscriptionStatusCancelled; exports.OrgSubscriptionStatusPastDue = _chunk7RWOKNHMjs.OrgSubscriptionStatusPastDue; exports.OrgSubscriptionStatusTrialing = _chunk7RWOKNHMjs.OrgSubscriptionStatusTrialing; exports.OrgSubscriptionStatusUnpaid = _chunk7RWOKNHMjs.OrgSubscriptionStatusUnpaid; exports.OrgSubscriptionStatuses = _chunk7RWOKNHMjs.OrgSubscriptionStatuses; exports.OrgTypeEnterprise = _chunk7RWOKNHMjs.OrgTypeEnterprise; exports.OrgTypeSelfServe = _chunk7RWOKNHMjs.OrgTypeSelfServe; exports.OrgTypes = _chunk7RWOKNHMjs.OrgTypes; exports.ProvisioningStatusCompleted = _chunk7RWOKNHMjs.ProvisioningStatusCompleted; exports.ProvisioningStatusFailed = _chunk7RWOKNHMjs.ProvisioningStatusFailed; exports.ProvisioningStatusPending = _chunk7RWOKNHMjs.ProvisioningStatusPending; exports.ProvisioningStatusRunning = _chunk7RWOKNHMjs.ProvisioningStatusRunning; exports.ProvisioningStatuses = _chunk7RWOKNHMjs.ProvisioningStatuses; exports.SubscriptionPlatformCustom = _chunk7RWOKNHMjs.SubscriptionPlatformCustom; exports.SubscriptionPlatformStripe = _chunk7RWOKNHMjs.SubscriptionPlatformStripe; exports.SystemAppAdmin = _chunk7RWOKNHMjs.SystemAppAdmin; exports.SystemAppAnalytics = _chunk7RWOKNHMjs.SystemAppAnalytics; exports.SystemAppCRM = _chunk7RWOKNHMjs.SystemAppCRM; exports.SystemAppDocumentProcessor = _chunk7RWOKNHMjs.SystemAppDocumentProcessor; exports.SystemAppHelpdesk = _chunk7RWOKNHMjs.SystemAppHelpdesk; exports.SystemAppKnowledgeGraph = _chunk7RWOKNHMjs.SystemAppKnowledgeGraph; exports.SystemAppMarketing = _chunk7RWOKNHMjs.SystemAppMarketing; exports.SystemAppWorkflow = _chunk7RWOKNHMjs.SystemAppWorkflow; exports.SystemApps = _chunk7RWOKNHMjs.SystemApps; exports.ThemeOptions = _chunk7RWOKNHMjs.ThemeOptions; exports.UserContext = UserContext; exports.UserProvider = UserProvider; exports.UserSourceAPI = _chunk7RWOKNHMjs.UserSourceAPI; exports.UserSourceInvite = _chunk7RWOKNHMjs.UserSourceInvite; exports.UserSourceSSO = _chunk7RWOKNHMjs.UserSourceSSO; exports.UserSourceSignup = _chunk7RWOKNHMjs.UserSourceSignup; exports.UserSources = _chunk7RWOKNHMjs.UserSources; exports.WidgetTypeAccounts = _chunk7RWOKNHMjs.WidgetTypeAccounts; exports.WidgetTypeActivities = _chunk7RWOKNHMjs.WidgetTypeActivities; exports.WidgetTypeCalendar = _chunk7RWOKNHMjs.WidgetTypeCalendar; exports.WidgetTypeChart = _chunk7RWOKNHMjs.WidgetTypeChart; exports.WidgetTypeContacts = _chunk7RWOKNHMjs.WidgetTypeContacts; exports.WidgetTypeEmail = _chunk7RWOKNHMjs.WidgetTypeEmail; exports.WidgetTypeFiles = _chunk7RWOKNHMjs.WidgetTypeFiles; exports.WidgetTypeLeads = _chunk7RWOKNHMjs.WidgetTypeLeads; exports.WidgetTypeNotes = _chunk7RWOKNHMjs.WidgetTypeNotes; exports.WidgetTypeOpportunities = _chunk7RWOKNHMjs.WidgetTypeOpportunities; exports.WidgetTypeOrders = _chunk7RWOKNHMjs.WidgetTypeOrders; exports.WidgetTypeTasks = _chunk7RWOKNHMjs.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":"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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"]}