@happyvertical/smrt-users 0.54.2 → 0.54.4

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,4 +1,4 @@
1
- import { $ as DEFAULT_LOGIN_LOCKOUT_FACTOR, $t as Group, A as readMobileBearerToken, At as deriveOperationPermissionCollectionName, B as DEFAULT_PIN_MANAGE_PERMISSION, Bt as PermissionCollection, C as hasOperationPermission, Ct as applyTenantHierarchyUpdates, D as withSessionPermissionContext, Dt as DEFAULT_ROLE_PERMISSION_PATTERNS, E as withPrincipalPermissionContext, Et as recordTenantHierarchyChanges, F as encodeOidcTransaction, Ft as RolePermission, G as PIN_LOGIN_KIND, Gt as MembershipOverride, H as DeviceCredentialForbiddenError, Ht as UsersPasswordCredentialCollection, I as getUsersOidcConfig, It as RoleCollection, J as ensurePinPermissionsRegistered, Jt as GroupRoleCollection, K as PIN_PERMISSION_DEFINITIONS, Kt as MembershipCollection, L as resolveOidcProviderConfig, Lt as Role, M as OidcLoginError, Mt as normalizeOperationPermissionAction, N as OidcLoginService, Nt as registerPermissionDefinitions, O as MobileAuthError, Ot as RolePermissionCollection, P as decodeOidcTransaction, Pt as syncPermissionCatalog, Q as DEFAULT_LOGIN_LOCKOUT_BASE_SECONDS, Qt as GroupCollection, Rt as UsersPinCredentialCollection, S as checkOperationPermission, St as TenantHierarchyError, T as getRequestScopedDatabase, Tt as planTenantHierarchy, U as DeviceCredentialPolicyError, Ut as UsersPasswordCredential, V as DeviceCredentialError, Vt as Permission, W as DeviceCredentialService, Wt as MembershipOverrideCollection, X as PermissionResolver, Xt as GroupMemberCollection, Y as SessionService, Yt as GroupRole, Z as DEFAULT_LOGIN_ATTEMPT_WINDOW_SECONDS, Zt as GroupMember, _ as PasswordCredentialService, _t as TenantPermissionOverrideCollection, a as TerminalAuthError, an as UsersLoginAttemptCollection, at as LoginRateLimitError, b as OperationPermissionError, bt as Tenant, c as DEFAULT_PASSWORD_DENYLIST, cn as SessionCollection, ct as DEFAULT_ANCESTOR_READ_MAX_DEPTH, d as DEFAULT_PASSWORD_MIN_LENGTH, dn as Session, dt as normalizeAncestorReadPolicy, en as User, et as DEFAULT_LOGIN_LOCKOUT_MAX_SECONDS, f as PASSWORD_LOGIN_KIND, fn as generateSessionId, ft as OidcProvisioningError, g as PasswordCredentialForbiddenError, gt as backfillUserEmailKeys, h as PasswordCredentialError, ht as UserEmailKeyBackfillError, i as TERMINAL_APPROVE_LOGIN_KIND, in as UsersLoginAuditEvent, it as LoginAttemptLimiter, j as validateMobileRedirectUri, jt as deriveOperationPermissionSlug, k as MobileAuthService, kt as PermissionCatalogService, l as DEFAULT_PASSWORD_MANAGE_PERMISSION, ln as DEFAULT_SESSION_TTL, lt as getConfiguredAncestorReadPolicy, m as PASSWORD_PERMISSION_DEFINITIONS, n as DEFAULT_CLI_AUTH_REQUEST_TTL_SECONDS, nn as normalizeEmail, nt as DurableLoginAuditSink, o as TerminalAuthRateLimitError, on as UsersLoginAttempt, ot as withoutListBounds, p as PASSWORD_MAX_LENGTH_CEILING, pn as UsersCliAuthRequest, pt as UserCollection, q as PinVerifier, qt as Membership, r as DEFAULT_CLI_SESSION_TTL_SECONDS, rn as UsersLoginAuditEventCollection, rt as InvalidCredentialsError, s as TerminalAuthService, sn as UsersCliAuthRequestCollection, st as ANCESTOR_READ_ACTION, t as DEFAULT_CLI_AUTH_POLL_INTERVAL_SECONDS, tn as isValidEmail, tt as DEFAULT_LOGIN_MAX_ATTEMPTS, u as DEFAULT_PASSWORD_MAX_LENGTH, un as SESSION_DATA_KEYS, ut as isAncestorReadableSlug, v as PasswordPolicyError, vt as TenantPermissionOverride, w as getCurrentSessionPermissionContext, wt as assertTenantTableName, x as assertOperationPermission, xt as MAX_TENANT_HIERARCHY_DEPTH, y as ensurePasswordPermissionsRegistered, yt as TenantCollection, z as DEFAULT_DEVICE_PERSON_IDLE_SECONDS, zt as UsersPinCredential } from "./chunks/TerminalAuthService-B2cazTEg.js";
1
+ import { $ as DEFAULT_LOGIN_LOCKOUT_FACTOR, $t as Group, A as readMobileBearerToken, At as deriveOperationPermissionCollectionName, B as DEFAULT_PIN_MANAGE_PERMISSION, Bt as PermissionCollection, C as hasOperationPermission, Ct as applyTenantHierarchyUpdates, D as withSessionPermissionContext, Dt as DEFAULT_ROLE_PERMISSION_PATTERNS, E as withPrincipalPermissionContext, Et as recordTenantHierarchyChanges, F as encodeOidcTransaction, Ft as RolePermission, G as PIN_LOGIN_KIND, Gt as MembershipOverride, H as DeviceCredentialForbiddenError, Ht as UsersPasswordCredentialCollection, I as getUsersOidcConfig, It as RoleCollection, J as ensurePinPermissionsRegistered, Jt as GroupRoleCollection, K as PIN_PERMISSION_DEFINITIONS, Kt as MembershipCollection, L as resolveOidcProviderConfig, Lt as Role, M as OidcLoginError, Mt as normalizeOperationPermissionAction, N as OidcLoginService, Nt as registerPermissionDefinitions, O as MobileAuthError, Ot as RolePermissionCollection, P as decodeOidcTransaction, Pt as syncPermissionCatalog, Q as DEFAULT_LOGIN_LOCKOUT_BASE_SECONDS, Qt as GroupCollection, Rt as UsersPinCredentialCollection, S as checkOperationPermission, St as TenantHierarchyError, T as getRequestScopedDatabase, Tt as planTenantHierarchy, U as DeviceCredentialPolicyError, Ut as UsersPasswordCredential, V as DeviceCredentialError, Vt as Permission, W as DeviceCredentialService, Wt as MembershipOverrideCollection, X as PermissionResolver, Xt as GroupMemberCollection, Y as SessionService, Yt as GroupRole, Z as DEFAULT_LOGIN_ATTEMPT_WINDOW_SECONDS, Zt as GroupMember, _ as PasswordCredentialService, _t as TenantPermissionOverrideCollection, a as TerminalAuthError, an as UsersLoginAttemptCollection, at as LoginRateLimitError, b as OperationPermissionError, bt as Tenant, c as DEFAULT_PASSWORD_DENYLIST, cn as SessionCollection, ct as DEFAULT_ANCESTOR_READ_MAX_DEPTH, d as DEFAULT_PASSWORD_MIN_LENGTH, dn as Session, dt as normalizeAncestorReadPolicy, en as User, et as DEFAULT_LOGIN_LOCKOUT_MAX_SECONDS, f as PASSWORD_LOGIN_KIND, fn as generateSessionId, ft as OidcProvisioningError, g as PasswordCredentialForbiddenError, gt as backfillUserEmailKeys, h as PasswordCredentialError, ht as UserEmailKeyBackfillError, i as TERMINAL_APPROVE_LOGIN_KIND, in as UsersLoginAuditEvent, it as LoginAttemptLimiter, j as validateMobileRedirectUri, jt as deriveOperationPermissionSlug, k as MobileAuthService, kt as PermissionCatalogService, l as DEFAULT_PASSWORD_MANAGE_PERMISSION, ln as DEFAULT_SESSION_TTL, lt as getConfiguredAncestorReadPolicy, m as PASSWORD_PERMISSION_DEFINITIONS, n as DEFAULT_CLI_AUTH_REQUEST_TTL_SECONDS, nn as normalizeEmail, nt as DurableLoginAuditSink, o as TerminalAuthRateLimitError, on as UsersLoginAttempt, ot as withoutListBounds, p as PASSWORD_MAX_LENGTH_CEILING, pn as UsersCliAuthRequest, pt as UserCollection, q as PinVerifier, qt as Membership, r as DEFAULT_CLI_SESSION_TTL_SECONDS, rn as UsersLoginAuditEventCollection, rt as InvalidCredentialsError, s as TerminalAuthService, sn as UsersCliAuthRequestCollection, st as ANCESTOR_READ_ACTION, t as DEFAULT_CLI_AUTH_POLL_INTERVAL_SECONDS, tn as isValidEmail, tt as DEFAULT_LOGIN_MAX_ATTEMPTS, u as DEFAULT_PASSWORD_MAX_LENGTH, un as SESSION_DATA_KEYS, ut as isAncestorReadableSlug, v as PasswordPolicyError, vt as TenantPermissionOverride, w as getCurrentSessionPermissionContext, wt as assertTenantTableName, x as assertOperationPermission, xt as MAX_TENANT_HIERARCHY_DEPTH, y as ensurePasswordPermissionsRegistered, yt as TenantCollection, z as DEFAULT_DEVICE_PERSON_IDLE_SECONDS, zt as UsersPinCredential } from "./chunks/TerminalAuthService-GL2iWF_Q.js";
2
2
  import { a as MembershipStatus, c as TenantPermissionEffect, i as DEFAULT_TENANT_POLICY, l as TenantStatus, n as DEFAULT_ROLES, o as OverrideEffect, r as DEFAULT_ROLE_SLUGS, s as SessionStatus, t as AccessRequestStatus, u as UserStatus } from "./chunks/types-DFqeph0R.js";
3
3
  import { ObjectRegistry, SmrtCollection, SmrtObject, bumpChangeFeed, ensureChangeFeedTable, field, findManifestEntryByQualifiedName, foreignKey, isEmbeddedDatabase, isUniqueViolationError, registerRetentionTask, smrt, unregisterRetentionTask, withEmbeddedWriteTransaction } from "@happyvertical/smrt-core";
4
4
  import { createHash, randomUUID } from "node:crypto";
@@ -9,12 +9,19 @@ import { BackfillTracker } from "@happyvertical/smrt-core/migrations";
9
9
  //#region src/models/MagicLinkToken.ts
10
10
  var __defProp$4 = Object.defineProperty;
11
11
  var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
12
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value
17
+ }) : obj[key] = value;
12
18
  var __decorateClass$4 = (decorators, target, key, kind) => {
13
19
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
14
20
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
15
21
  if (kind && result) __defProp$4(target, key, result);
16
22
  return result;
17
23
  };
24
+ var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value);
18
25
  var DEFAULT_TOKEN_EXPIRY_SECONDS = 600;
19
26
  var UsersMagicLinkToken = class extends SmrtObject {
20
27
  nonce = "";
@@ -39,6 +46,7 @@ var UsersMagicLinkToken = class extends SmrtObject {
39
46
  return !this.used && !this.isExpired();
40
47
  }
41
48
  };
49
+ __publicField$4(UsersMagicLinkToken, "__smrtPackage__", "@happyvertical/smrt-users");
42
50
  __decorateClass$4([field({
43
51
  required: true,
44
52
  unique: true
@@ -157,12 +165,19 @@ function unregisterUserRetentionTasks() {
157
165
  //#region src/models/AccessRequest.ts
158
166
  var __defProp$3 = Object.defineProperty;
159
167
  var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
168
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, {
169
+ enumerable: true,
170
+ configurable: true,
171
+ writable: true,
172
+ value
173
+ }) : obj[key] = value;
160
174
  var __decorateClass$3 = (decorators, target, key, kind) => {
161
175
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
162
176
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
163
177
  if (kind && result) __defProp$3(target, key, result);
164
178
  return result;
165
179
  };
180
+ var __publicField$3 = (obj, key, value) => __defNormalProp$3(obj, typeof key !== "symbol" ? key + "" : key, value);
166
181
  var AccessRequest = class extends SmrtObject {
167
182
  email = "";
168
183
  name = null;
@@ -245,6 +260,7 @@ var AccessRequest = class extends SmrtObject {
245
260
  return this.status === AccessRequestStatus.DECLINED || this.status === AccessRequestStatus.GRADUATED || this.status === AccessRequestStatus.CANCELED;
246
261
  }
247
262
  };
263
+ __publicField$3(AccessRequest, "__smrtPackage__", "@happyvertical/smrt-users");
248
264
  __decorateClass$3([field({
249
265
  required: true,
250
266
  indexed: true
@@ -318,17 +334,25 @@ var AccessRequestCollection = class extends SmrtCollection {
318
334
  //#region src/models/CliAuthApproveLimit.ts
319
335
  var __defProp$2 = Object.defineProperty;
320
336
  var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
337
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, {
338
+ enumerable: true,
339
+ configurable: true,
340
+ writable: true,
341
+ value
342
+ }) : obj[key] = value;
321
343
  var __decorateClass$2 = (decorators, target, key, kind) => {
322
344
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
323
345
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
324
346
  if (kind && result) __defProp$2(target, key, result);
325
347
  return result;
326
348
  };
349
+ var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
327
350
  var UsersCliAuthApproveLimit = class extends SmrtObject {
328
351
  userId = "";
329
352
  attemptCount = 0;
330
353
  windowStartedAt = /* @__PURE__ */ new Date();
331
354
  };
355
+ __publicField$2(UsersCliAuthApproveLimit, "__smrtPackage__", "@happyvertical/smrt-users");
332
356
  __decorateClass$2([foreignKey("User", {
333
357
  required: true,
334
358
  unique: true
@@ -412,12 +436,19 @@ var UsersCliAuthApproveLimitCollection = class extends SmrtCollection {
412
436
  //#region src/models/ResourceGrant.ts
413
437
  var __defProp$1 = Object.defineProperty;
414
438
  var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
439
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, {
440
+ enumerable: true,
441
+ configurable: true,
442
+ writable: true,
443
+ value
444
+ }) : obj[key] = value;
415
445
  var __decorateClass$1 = (decorators, target, key, kind) => {
416
446
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
417
447
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
418
448
  if (kind && result) __defProp$1(target, key, result);
419
449
  return result;
420
450
  };
451
+ var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
421
452
  var ResourceGrant = class extends SmrtObject {
422
453
  tenantId;
423
454
  userId;
@@ -444,6 +475,7 @@ var ResourceGrant = class extends SmrtObject {
444
475
  return !this.revokedAt;
445
476
  }
446
477
  };
478
+ __publicField$1(ResourceGrant, "__smrtPackage__", "@happyvertical/smrt-users");
447
479
  __decorateClass$1([foreignKey("Tenant", { required: true })], ResourceGrant.prototype, "tenantId", 2);
448
480
  __decorateClass$1([foreignKey("User", { required: true })], ResourceGrant.prototype, "userId", 2);
449
481
  __decorateClass$1([field({ type: "text" })], ResourceGrant.prototype, "resourceType", 2);
@@ -483,12 +515,19 @@ var ResourceGrantCollection = class extends SmrtCollection {
483
515
  //#region src/models/TenantIntegration.ts
484
516
  var __defProp = Object.defineProperty;
485
517
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
518
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
519
+ enumerable: true,
520
+ configurable: true,
521
+ writable: true,
522
+ value
523
+ }) : obj[key] = value;
486
524
  var __decorateClass = (decorators, target, key, kind) => {
487
525
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
488
526
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
489
527
  if (kind && result) __defProp(target, key, result);
490
528
  return result;
491
529
  };
530
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
492
531
  function parseExternalIds(raw) {
493
532
  if (!raw) return {};
494
533
  if (typeof raw === "object" && !Array.isArray(raw)) return Object.fromEntries(Object.entries(raw).filter(([, value]) => typeof value === "string"));
@@ -605,6 +644,7 @@ var TenantIntegration = class extends SmrtObject {
605
644
  this.lastError = outcome.error ?? null;
606
645
  }
607
646
  };
647
+ __publicField(TenantIntegration, "__smrtPackage__", "@happyvertical/smrt-users");
608
648
  __decorateClass([tenantId()], TenantIntegration.prototype, "tenantId", 2);
609
649
  TenantIntegration = __decorateClass([TenantScoped({ mode: "required" }), smrt({
610
650
  tableName: "tenant_integrations",
@@ -1342,7 +1382,7 @@ var MagicLinkService = class MagicLinkService {
1342
1382
  * The caller is responsible for emailing the token to the user.
1343
1383
  */
1344
1384
  async generate(email) {
1345
- const { SignJWT } = await import("./chunks/TerminalAuthService-B2cazTEg.js").then((n) => n.R);
1385
+ const { SignJWT } = await import("./chunks/TerminalAuthService-GL2iWF_Q.js").then((n) => n.R);
1346
1386
  const key = await this.getSigningKey();
1347
1387
  const nonce = crypto.randomUUID();
1348
1388
  const normalizedEmail = normalizeEmail(email);
@@ -1371,7 +1411,7 @@ var MagicLinkService = class MagicLinkService {
1371
1411
  * @throws {MagicLinkError} If the token is invalid, expired, or already used
1372
1412
  */
1373
1413
  async verify(token) {
1374
- const { jwtVerify, errors } = await import("./chunks/TerminalAuthService-B2cazTEg.js").then((n) => n.R);
1414
+ const { jwtVerify, errors } = await import("./chunks/TerminalAuthService-GL2iWF_Q.js").then((n) => n.R);
1375
1415
  const key = await this.getSigningKey();
1376
1416
  let payload;
1377
1417
  try {