@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/chunks/{TerminalAuthService-B2cazTEg.js → TerminalAuthService-GL2iWF_Q.js} +138 -2
- package/dist/chunks/TerminalAuthService-GL2iWF_Q.js.map +1 -0
- package/dist/index.js +43 -3
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +3 -2
- package/dist/smrt-knowledge.json +3 -3
- package/dist/sveltekit.js +1 -1
- package/package.json +11 -11
- package/dist/chunks/TerminalAuthService-B2cazTEg.js.map +0 -1
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-
|
|
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-
|
|
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-
|
|
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 {
|