@happyvertical/smrt-users 0.55.6 → 0.55.8

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-B89-bMKw.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-CNYOmaaa.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";
@@ -1382,7 +1382,7 @@ var MagicLinkService = class MagicLinkService {
1382
1382
  * The caller is responsible for emailing the token to the user.
1383
1383
  */
1384
1384
  async generate(email) {
1385
- const { SignJWT } = await import("./chunks/TerminalAuthService-B89-bMKw.js").then((n) => n.R);
1385
+ const { SignJWT } = await import("./chunks/TerminalAuthService-CNYOmaaa.js").then((n) => n.R);
1386
1386
  const key = await this.getSigningKey();
1387
1387
  const nonce = crypto.randomUUID();
1388
1388
  const normalizedEmail = normalizeEmail(email);
@@ -1411,7 +1411,7 @@ var MagicLinkService = class MagicLinkService {
1411
1411
  * @throws {MagicLinkError} If the token is invalid, expired, or already used
1412
1412
  */
1413
1413
  async verify(token) {
1414
- const { jwtVerify, errors } = await import("./chunks/TerminalAuthService-B89-bMKw.js").then((n) => n.R);
1414
+ const { jwtVerify, errors } = await import("./chunks/TerminalAuthService-CNYOmaaa.js").then((n) => n.R);
1415
1415
  const key = await this.getSigningKey();
1416
1416
  let payload;
1417
1417
  try {
@@ -2,13 +2,14 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-users",
5
- "packageVersion": "0.55.6",
5
+ "packageVersion": "0.55.8",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-users:AccessRequestCollection": {
8
8
  "name": "accessrequestcollection",
9
9
  "className": "AccessRequestCollection",
10
10
  "qualifiedName": "@happyvertical/smrt-users:AccessRequestCollection",
11
11
  "collection": "accessrequests",
12
+ "description": "Collection for managing AccessRequest objects.",
12
13
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/AccessRequestCollection.ts",
13
14
  "packageName": "@happyvertical/smrt-users",
14
15
  "fields": {},
@@ -552,6 +553,7 @@
552
553
  "className": "GroupCollection",
553
554
  "qualifiedName": "@happyvertical/smrt-users:GroupCollection",
554
555
  "collection": "groups",
556
+ "description": "Collection for managing Group objects",
555
557
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/GroupCollection.ts",
556
558
  "packageName": "@happyvertical/smrt-users",
557
559
  "fields": {},
@@ -675,6 +677,7 @@
675
677
  "className": "GroupMemberCollection",
676
678
  "qualifiedName": "@happyvertical/smrt-users:GroupMemberCollection",
677
679
  "collection": "groupmembers",
680
+ "description": "Collection for managing GroupMember objects",
678
681
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/GroupMemberCollection.ts",
679
682
  "packageName": "@happyvertical/smrt-users",
680
683
  "fields": {},
@@ -908,6 +911,7 @@
908
911
  "className": "GroupRoleCollection",
909
912
  "qualifiedName": "@happyvertical/smrt-users:GroupRoleCollection",
910
913
  "collection": "grouproles",
914
+ "description": "Collection for managing GroupRole objects",
911
915
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/GroupRoleCollection.ts",
912
916
  "packageName": "@happyvertical/smrt-users",
913
917
  "fields": {},
@@ -1449,6 +1453,7 @@
1449
1453
  "className": "UsersMagicLinkTokenCollection",
1450
1454
  "qualifiedName": "@happyvertical/smrt-users:UsersMagicLinkTokenCollection",
1451
1455
  "collection": "usersmagiclinktokens",
1456
+ "description": "Collection for managing smrt-users magic link token records",
1452
1457
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/MagicLinkTokenCollection.ts",
1453
1458
  "packageName": "@happyvertical/smrt-users",
1454
1459
  "fields": {},
@@ -1590,6 +1595,7 @@
1590
1595
  "className": "MembershipCollection",
1591
1596
  "qualifiedName": "@happyvertical/smrt-users:MembershipCollection",
1592
1597
  "collection": "memberships",
1598
+ "description": "Collection for managing Membership objects",
1593
1599
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/MembershipCollection.ts",
1594
1600
  "packageName": "@happyvertical/smrt-users",
1595
1601
  "fields": {},
@@ -1819,6 +1825,7 @@
1819
1825
  "className": "MembershipOverrideCollection",
1820
1826
  "qualifiedName": "@happyvertical/smrt-users:MembershipOverrideCollection",
1821
1827
  "collection": "membershipoverrides",
1828
+ "description": "Collection for managing MembershipOverride objects",
1822
1829
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/MembershipOverrideCollection.ts",
1823
1830
  "packageName": "@happyvertical/smrt-users",
1824
1831
  "fields": {},
@@ -2308,6 +2315,7 @@
2308
2315
  "className": "PermissionCollection",
2309
2316
  "qualifiedName": "@happyvertical/smrt-users:PermissionCollection",
2310
2317
  "collection": "permissions",
2318
+ "description": "Collection for managing Permission objects",
2311
2319
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/PermissionCollection.ts",
2312
2320
  "packageName": "@happyvertical/smrt-users",
2313
2321
  "fields": {},
@@ -2814,6 +2822,7 @@
2814
2822
  "className": "RoleCollection",
2815
2823
  "qualifiedName": "@happyvertical/smrt-users:RoleCollection",
2816
2824
  "collection": "roles",
2825
+ "description": "Collection for managing Role objects",
2817
2826
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/RoleCollection.ts",
2818
2827
  "packageName": "@happyvertical/smrt-users",
2819
2828
  "fields": {},
@@ -3000,6 +3009,7 @@
3000
3009
  "className": "RolePermissionCollection",
3001
3010
  "qualifiedName": "@happyvertical/smrt-users:RolePermissionCollection",
3002
3011
  "collection": "rolepermissions",
3012
+ "description": "Collection for managing RolePermission objects",
3003
3013
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/RolePermissionCollection.ts",
3004
3014
  "packageName": "@happyvertical/smrt-users",
3005
3015
  "fields": {},
@@ -3234,6 +3244,7 @@
3234
3244
  "className": "SessionCollection",
3235
3245
  "qualifiedName": "@happyvertical/smrt-users:SessionCollection",
3236
3246
  "collection": "sessions",
3247
+ "description": "Collection for managing Session objects",
3237
3248
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/SessionCollection.ts",
3238
3249
  "packageName": "@happyvertical/smrt-users",
3239
3250
  "fields": {},
@@ -3666,6 +3677,7 @@
3666
3677
  "className": "TenantCollection",
3667
3678
  "qualifiedName": "@happyvertical/smrt-users:TenantCollection",
3668
3679
  "collection": "tenants",
3680
+ "description": "Collection for managing Tenant objects with hierarchical support.",
3669
3681
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/TenantCollection.ts",
3670
3682
  "packageName": "@happyvertical/smrt-users",
3671
3683
  "fields": {},
@@ -4217,6 +4229,7 @@
4217
4229
  "className": "TenantPermissionOverrideCollection",
4218
4230
  "qualifiedName": "@happyvertical/smrt-users:TenantPermissionOverrideCollection",
4219
4231
  "collection": "tenantpermissionoverrides",
4232
+ "description": "Collection for managing TenantPermissionOverride objects.",
4220
4233
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/TenantPermissionOverrideCollection.ts",
4221
4234
  "packageName": "@happyvertical/smrt-users",
4222
4235
  "fields": {},
@@ -4586,6 +4599,7 @@
4586
4599
  "className": "UserCollection",
4587
4600
  "qualifiedName": "@happyvertical/smrt-users:UserCollection",
4588
4601
  "collection": "users",
4602
+ "description": "Collection for managing User objects",
4589
4603
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/UserCollection.ts",
4590
4604
  "packageName": "@happyvertical/smrt-users",
4591
4605
  "fields": {},
@@ -4793,6 +4807,7 @@
4793
4807
  "className": "AccessRequest",
4794
4808
  "qualifiedName": "@happyvertical/smrt-users:AccessRequest",
4795
4809
  "collection": "accessrequests",
4810
+ "description": "A prospective user's request for access, captured before they become a User.",
4796
4811
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/AccessRequest.ts",
4797
4812
  "packageName": "@happyvertical/smrt-users",
4798
4813
  "fields": {
@@ -5106,6 +5121,7 @@
5106
5121
  "className": "UsersCliAuthApproveLimit",
5107
5122
  "qualifiedName": "@happyvertical/smrt-users:UsersCliAuthApproveLimit",
5108
5123
  "collection": "userscliauthapprovelimits",
5124
+ "description": "Private database arbiter shared by every terminal-auth process.",
5109
5125
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/CliAuthApproveLimit.ts",
5110
5126
  "packageName": "@happyvertical/smrt-users",
5111
5127
  "fields": {
@@ -5479,6 +5495,7 @@
5479
5495
  "className": "Group",
5480
5496
  "qualifiedName": "@happyvertical/smrt-users:Group",
5481
5497
  "collection": "groups",
5498
+ "description": "Group represents a team or department within a tenant.",
5482
5499
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/Group.ts",
5483
5500
  "packageName": "@happyvertical/smrt-users",
5484
5501
  "fields": {
@@ -5613,6 +5630,7 @@
5613
5630
  "className": "GroupMember",
5614
5631
  "qualifiedName": "@happyvertical/smrt-users:GroupMember",
5615
5632
  "collection": "groupmembers",
5633
+ "description": "GroupMember is a join table linking Users to Groups.",
5616
5634
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/GroupMember.ts",
5617
5635
  "packageName": "@happyvertical/smrt-users",
5618
5636
  "fields": {
@@ -5755,6 +5773,7 @@
5755
5773
  "className": "GroupRole",
5756
5774
  "qualifiedName": "@happyvertical/smrt-users:GroupRole",
5757
5775
  "collection": "grouproles",
5776
+ "description": "GroupRole is a join table linking Groups to Roles.",
5758
5777
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/GroupRole.ts",
5759
5778
  "packageName": "@happyvertical/smrt-users",
5760
5779
  "fields": {
@@ -5897,6 +5916,7 @@
5897
5916
  "className": "UsersLoginAttempt",
5898
5917
  "qualifiedName": "@happyvertical/smrt-users:UsersLoginAttempt",
5899
5918
  "collection": "usersloginattempts",
5919
+ "description": "Private database arbiter shared by every process that authenticates.",
5900
5920
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/LoginAttempt.ts",
5901
5921
  "packageName": "@happyvertical/smrt-users",
5902
5922
  "fields": {
@@ -6495,6 +6515,7 @@
6495
6515
  "className": "Membership",
6496
6516
  "qualifiedName": "@happyvertical/smrt-users:Membership",
6497
6517
  "collection": "memberships",
6518
+ "description": "Membership represents a user's membership in a tenant with an assigned role.",
6498
6519
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/Membership.ts",
6499
6520
  "packageName": "@happyvertical/smrt-users",
6500
6521
  "fields": {
@@ -6713,6 +6734,7 @@
6713
6734
  "className": "MembershipOverride",
6714
6735
  "qualifiedName": "@happyvertical/smrt-users:MembershipOverride",
6715
6736
  "collection": "membershipoverrides",
6737
+ "description": "MembershipOverride allows granting or denying specific permissions to a user beyond what their role and groups provide.",
6716
6738
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/MembershipOverride.ts",
6717
6739
  "packageName": "@happyvertical/smrt-users",
6718
6740
  "fields": {
@@ -7065,6 +7087,7 @@
7065
7087
  "className": "Permission",
7066
7088
  "qualifiedName": "@happyvertical/smrt-users:Permission",
7067
7089
  "collection": "permissions",
7090
+ "description": "Permission represents a named capability in the system.",
7068
7091
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/Permission.ts",
7069
7092
  "packageName": "@happyvertical/smrt-users",
7070
7093
  "fields": {
@@ -7393,6 +7416,7 @@
7393
7416
  "className": "ResourceGrant",
7394
7417
  "qualifiedName": "@happyvertical/smrt-users:ResourceGrant",
7395
7418
  "collection": "resourcegrants",
7419
+ "description": "An exact tenant/resource/user/permission decision. This deliberately does not replace tenant RBAC: ResourceGrantResolver only allows after the normal operation guard has allowed the same permission.",
7396
7420
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/ResourceGrant.ts",
7397
7421
  "packageName": "@happyvertical/smrt-users",
7398
7422
  "fields": {
@@ -7644,6 +7668,7 @@
7644
7668
  "className": "Role",
7645
7669
  "qualifiedName": "@happyvertical/smrt-users:Role",
7646
7670
  "collection": "roles",
7671
+ "description": "Role represents a permission template that can be assigned to users.",
7647
7672
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/Role.ts",
7648
7673
  "packageName": "@happyvertical/smrt-users",
7649
7674
  "fields": {
@@ -7829,6 +7854,7 @@
7829
7854
  "className": "RolePermission",
7830
7855
  "qualifiedName": "@happyvertical/smrt-users:RolePermission",
7831
7856
  "collection": "rolepermissions",
7857
+ "description": "RolePermission is a join table linking Roles to Permissions.",
7832
7858
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/RolePermission.ts",
7833
7859
  "packageName": "@happyvertical/smrt-users",
7834
7860
  "fields": {
@@ -7978,6 +8004,7 @@
7978
8004
  "className": "Session",
7979
8005
  "qualifiedName": "@happyvertical/smrt-users:Session",
7980
8006
  "collection": "sessions",
8007
+ "description": "Session represents an authenticated user session.",
7981
8008
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/Session.ts",
7982
8009
  "packageName": "@happyvertical/smrt-users",
7983
8010
  "fields": {
@@ -8385,6 +8412,7 @@
8385
8412
  "className": "Tenant",
8386
8413
  "qualifiedName": "@happyvertical/smrt-users:Tenant",
8387
8414
  "collection": "tenants",
8415
+ "description": "Tenant represents an organizational boundary in the multi-tenant system.",
8388
8416
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/Tenant.ts",
8389
8417
  "packageName": "@happyvertical/smrt-users",
8390
8418
  "fields": {
@@ -8962,6 +8990,7 @@
8962
8990
  "className": "TenantPermissionOverride",
8963
8991
  "qualifiedName": "@happyvertical/smrt-users:TenantPermissionOverride",
8964
8992
  "collection": "tenantpermissionoverrides",
8993
+ "description": "TenantPermissionOverride allows setting explicit permission values at the tenant level.",
8965
8994
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/TenantPermissionOverride.ts",
8966
8995
  "packageName": "@happyvertical/smrt-users",
8967
8996
  "fields": {
@@ -9149,6 +9178,7 @@
9149
9178
  "className": "User",
9150
9179
  "qualifiedName": "@happyvertical/smrt-users:User",
9151
9180
  "collection": "users",
9181
+ "description": "User represents an authenticated identity in the system.",
9152
9182
  "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/User.ts",
9153
9183
  "packageName": "@happyvertical/smrt-users",
9154
9184
  "fields": {
@@ -9349,5 +9379,18 @@
9349
9379
  "@happyvertical/smrt-profiles",
9350
9380
  "@happyvertical/smrt-tenancy"
9351
9381
  ],
9382
+ "browser": {
9383
+ "status": "server-only",
9384
+ "issues": [
9385
+ "#3617",
9386
+ "#3624",
9387
+ "#3626"
9388
+ ],
9389
+ "reason": "node:crypto/async_hooks; core migrations",
9390
+ "via": [
9391
+ "@happyvertical/smrt-profiles",
9392
+ "@happyvertical/smrt-tenancy"
9393
+ ]
9394
+ },
9352
9395
  "stampsConstructors": true
9353
9396
  }
@@ -3,12 +3,12 @@
3
3
  "sensitiveFieldsExcluded": true,
4
4
  "generatedAt": "1970-01-01T00:00:00.000Z",
5
5
  "packageName": "@happyvertical/smrt-users",
6
- "packageVersion": "0.55.6",
6
+ "packageVersion": "0.55.8",
7
7
  "sourceManifestPath": "dist/manifest.json",
8
8
  "agentDocPath": "AGENTS.md",
9
9
  "sourceHashes": {
10
- "manifest": "55faa45af88bf2a500ddd0c04b2180f32ac7082764681af99d512d24a51be65f",
11
- "packageJson": "d1918a516acf9ba04e7fd01dcd169787750a644592565af63fd28823ed0c052d",
10
+ "manifest": "b0ec06af72c1f9aacb73b1f51958531c069e675de3445ca1fd06a844078d60fe",
11
+ "packageJson": "21f4b89f1145d32b627b3cd7cff30b2f6ef89ad9d862ef84766dfb6dca36152f",
12
12
  "agents": "fa1b9005064b329b1d2387cd56307b92a79f2cd4ea951776e687f9850a428335",
13
13
  "moduleDoc:agents/permissions.md": "5f6c0afab7e1fd0887b0d29b5a5b5ab2635694207bade70145d3cbfdb62ba78c",
14
14
  "moduleDoc:agents/oidc-provisioning.md": "b73f3fdaf61136720132a614c7e14237b7bd35f7bf5d43eabb29f565485803b9",
@@ -82,6 +82,7 @@
82
82
  "name": "AccessRequestCollection",
83
83
  "qualifiedName": "@happyvertical/smrt-users:AccessRequestCollection",
84
84
  "collection": "accessrequests",
85
+ "description": "Collection for managing AccessRequest objects.",
85
86
  "tableName": "access_requests",
86
87
  "packageName": "@happyvertical/smrt-users",
87
88
  "extends": "SmrtCollection",
@@ -437,6 +438,7 @@
437
438
  "name": "GroupCollection",
438
439
  "qualifiedName": "@happyvertical/smrt-users:GroupCollection",
439
440
  "collection": "groups",
441
+ "description": "Collection for managing Group objects",
440
442
  "tableName": "groups",
441
443
  "packageName": "@happyvertical/smrt-users",
442
444
  "extends": "SmrtCollection",
@@ -517,6 +519,7 @@
517
519
  "name": "GroupMemberCollection",
518
520
  "qualifiedName": "@happyvertical/smrt-users:GroupMemberCollection",
519
521
  "collection": "groupmembers",
522
+ "description": "Collection for managing GroupMember objects",
520
523
  "tableName": "group_members",
521
524
  "packageName": "@happyvertical/smrt-users",
522
525
  "extends": "SmrtCollection",
@@ -774,6 +777,7 @@
774
777
  "name": "GroupRoleCollection",
775
778
  "qualifiedName": "@happyvertical/smrt-users:GroupRoleCollection",
776
779
  "collection": "grouproles",
780
+ "description": "Collection for managing GroupRole objects",
777
781
  "tableName": "group_roles",
778
782
  "packageName": "@happyvertical/smrt-users",
779
783
  "extends": "SmrtCollection",
@@ -1099,6 +1103,7 @@
1099
1103
  "name": "UsersMagicLinkTokenCollection",
1100
1104
  "qualifiedName": "@happyvertical/smrt-users:UsersMagicLinkTokenCollection",
1101
1105
  "collection": "usersmagiclinktokens",
1106
+ "description": "Collection for managing smrt-users magic link token records",
1102
1107
  "tableName": "users_magic_link_tokens",
1103
1108
  "packageName": "@happyvertical/smrt-users",
1104
1109
  "extends": "SmrtCollection",
@@ -1207,6 +1212,7 @@
1207
1212
  "name": "MembershipCollection",
1208
1213
  "qualifiedName": "@happyvertical/smrt-users:MembershipCollection",
1209
1214
  "collection": "memberships",
1215
+ "description": "Collection for managing Membership objects",
1210
1216
  "tableName": "memberships",
1211
1217
  "packageName": "@happyvertical/smrt-users",
1212
1218
  "extends": "SmrtCollection",
@@ -1432,6 +1438,7 @@
1432
1438
  "name": "MembershipOverrideCollection",
1433
1439
  "qualifiedName": "@happyvertical/smrt-users:MembershipOverrideCollection",
1434
1440
  "collection": "membershipoverrides",
1441
+ "description": "Collection for managing MembershipOverride objects",
1435
1442
  "tableName": "membership_overrides",
1436
1443
  "packageName": "@happyvertical/smrt-users",
1437
1444
  "extends": "SmrtCollection",
@@ -1858,6 +1865,7 @@
1858
1865
  "name": "PermissionCollection",
1859
1866
  "qualifiedName": "@happyvertical/smrt-users:PermissionCollection",
1860
1867
  "collection": "permissions",
1868
+ "description": "Collection for managing Permission objects",
1861
1869
  "tableName": "permissions",
1862
1870
  "packageName": "@happyvertical/smrt-users",
1863
1871
  "extends": "SmrtCollection",
@@ -2176,6 +2184,7 @@
2176
2184
  "name": "RoleCollection",
2177
2185
  "qualifiedName": "@happyvertical/smrt-users:RoleCollection",
2178
2186
  "collection": "roles",
2187
+ "description": "Collection for managing Role objects",
2179
2188
  "tableName": "roles",
2180
2189
  "packageName": "@happyvertical/smrt-users",
2181
2190
  "extends": "SmrtCollection",
@@ -2369,6 +2378,7 @@
2369
2378
  "name": "RolePermissionCollection",
2370
2379
  "qualifiedName": "@happyvertical/smrt-users:RolePermissionCollection",
2371
2380
  "collection": "rolepermissions",
2381
+ "description": "Collection for managing RolePermission objects",
2372
2382
  "tableName": "role_permissions",
2373
2383
  "packageName": "@happyvertical/smrt-users",
2374
2384
  "extends": "SmrtCollection",
@@ -2626,6 +2636,7 @@
2626
2636
  "name": "SessionCollection",
2627
2637
  "qualifiedName": "@happyvertical/smrt-users:SessionCollection",
2628
2638
  "collection": "sessions",
2639
+ "description": "Collection for managing Session objects",
2629
2640
  "tableName": "sessions",
2630
2641
  "packageName": "@happyvertical/smrt-users",
2631
2642
  "extends": "SmrtCollection",
@@ -3092,6 +3103,7 @@
3092
3103
  "name": "TenantCollection",
3093
3104
  "qualifiedName": "@happyvertical/smrt-users:TenantCollection",
3094
3105
  "collection": "tenants",
3106
+ "description": "Collection for managing Tenant objects with hierarchical support.",
3095
3107
  "tableName": "tenants",
3096
3108
  "packageName": "@happyvertical/smrt-users",
3097
3109
  "extends": "SmrtCollection",
@@ -3714,6 +3726,7 @@
3714
3726
  "name": "TenantPermissionOverrideCollection",
3715
3727
  "qualifiedName": "@happyvertical/smrt-users:TenantPermissionOverrideCollection",
3716
3728
  "collection": "tenantpermissionoverrides",
3729
+ "description": "Collection for managing TenantPermissionOverride objects.",
3717
3730
  "tableName": "tenant_permission_overrides",
3718
3731
  "packageName": "@happyvertical/smrt-users",
3719
3732
  "extends": "SmrtCollection",
@@ -4207,6 +4220,7 @@
4207
4220
  "name": "UserCollection",
4208
4221
  "qualifiedName": "@happyvertical/smrt-users:UserCollection",
4209
4222
  "collection": "users",
4223
+ "description": "Collection for managing User objects",
4210
4224
  "tableName": "users",
4211
4225
  "packageName": "@happyvertical/smrt-users",
4212
4226
  "extends": "SmrtCollection",
@@ -4430,6 +4444,7 @@
4430
4444
  "qualifiedName": "@happyvertical/smrt-users:AccessRequest",
4431
4445
  "displayLabelField": "name",
4432
4446
  "collection": "accessrequests",
4447
+ "description": "A prospective user's request for access, captured before they become a User.",
4433
4448
  "tableName": "access_requests",
4434
4449
  "packageName": "@happyvertical/smrt-users",
4435
4450
  "extends": "SmrtObject",
@@ -4615,6 +4630,7 @@
4615
4630
  "name": "UsersCliAuthApproveLimit",
4616
4631
  "qualifiedName": "@happyvertical/smrt-users:UsersCliAuthApproveLimit",
4617
4632
  "collection": "userscliauthapprovelimits",
4633
+ "description": "Private database arbiter shared by every terminal-auth process.",
4618
4634
  "tableName": "users_cli_auth_approve_limits",
4619
4635
  "packageName": "@happyvertical/smrt-users",
4620
4636
  "extends": "SmrtObject",
@@ -4760,6 +4776,7 @@
4760
4776
  "qualifiedName": "@happyvertical/smrt-users:Group",
4761
4777
  "displayLabelField": "name",
4762
4778
  "collection": "groups",
4779
+ "description": "Group represents a team or department within a tenant.",
4763
4780
  "tableName": "groups",
4764
4781
  "packageName": "@happyvertical/smrt-users",
4765
4782
  "extends": "SmrtObject",
@@ -4872,6 +4889,7 @@
4872
4889
  "name": "GroupMember",
4873
4890
  "qualifiedName": "@happyvertical/smrt-users:GroupMember",
4874
4891
  "collection": "groupmembers",
4892
+ "description": "GroupMember is a join table linking Users to Groups.",
4875
4893
  "tableName": "group_members",
4876
4894
  "packageName": "@happyvertical/smrt-users",
4877
4895
  "extends": "SmrtObject",
@@ -4979,6 +4997,7 @@
4979
4997
  "name": "GroupRole",
4980
4998
  "qualifiedName": "@happyvertical/smrt-users:GroupRole",
4981
4999
  "collection": "grouproles",
5000
+ "description": "GroupRole is a join table linking Groups to Roles.",
4982
5001
  "tableName": "group_roles",
4983
5002
  "packageName": "@happyvertical/smrt-users",
4984
5003
  "extends": "SmrtObject",
@@ -5086,6 +5105,7 @@
5086
5105
  "name": "UsersLoginAttempt",
5087
5106
  "qualifiedName": "@happyvertical/smrt-users:UsersLoginAttempt",
5088
5107
  "collection": "usersloginattempts",
5108
+ "description": "Private database arbiter shared by every process that authenticates.",
5089
5109
  "tableName": "users_login_attempts",
5090
5110
  "packageName": "@happyvertical/smrt-users",
5091
5111
  "extends": "SmrtObject",
@@ -5363,6 +5383,7 @@
5363
5383
  "name": "Membership",
5364
5384
  "qualifiedName": "@happyvertical/smrt-users:Membership",
5365
5385
  "collection": "memberships",
5386
+ "description": "Membership represents a user's membership in a tenant with an assigned role.",
5366
5387
  "tableName": "memberships",
5367
5388
  "packageName": "@happyvertical/smrt-users",
5368
5389
  "extends": "SmrtObject",
@@ -5536,6 +5557,7 @@
5536
5557
  "name": "MembershipOverride",
5537
5558
  "qualifiedName": "@happyvertical/smrt-users:MembershipOverride",
5538
5559
  "collection": "membershipoverrides",
5560
+ "description": "MembershipOverride allows granting or denying specific permissions to a user beyond what their role and groups provide.",
5539
5561
  "tableName": "membership_overrides",
5540
5562
  "packageName": "@happyvertical/smrt-users",
5541
5563
  "extends": "SmrtObject",
@@ -5751,6 +5773,7 @@
5751
5773
  "qualifiedName": "@happyvertical/smrt-users:Permission",
5752
5774
  "displayLabelField": "name",
5753
5775
  "collection": "permissions",
5776
+ "description": "Permission represents a named capability in the system.",
5754
5777
  "tableName": "permissions",
5755
5778
  "packageName": "@happyvertical/smrt-users",
5756
5779
  "extends": "SmrtObject",
@@ -5986,6 +6009,7 @@
5986
6009
  "name": "ResourceGrant",
5987
6010
  "qualifiedName": "@happyvertical/smrt-users:ResourceGrant",
5988
6011
  "collection": "resourcegrants",
6012
+ "description": "An exact tenant/resource/user/permission decision. This deliberately does not replace tenant RBAC: ResourceGrantResolver only allows after the normal operation guard has allowed the same permission.",
5989
6013
  "tableName": "resource_grants",
5990
6014
  "packageName": "@happyvertical/smrt-users",
5991
6015
  "extends": "SmrtObject",
@@ -6150,6 +6174,7 @@
6150
6174
  "qualifiedName": "@happyvertical/smrt-users:Role",
6151
6175
  "displayLabelField": "name",
6152
6176
  "collection": "roles",
6177
+ "description": "Role represents a permission template that can be assigned to users.",
6153
6178
  "tableName": "roles",
6154
6179
  "packageName": "@happyvertical/smrt-users",
6155
6180
  "extends": "SmrtObject",
@@ -6341,6 +6366,7 @@
6341
6366
  "name": "RolePermission",
6342
6367
  "qualifiedName": "@happyvertical/smrt-users:RolePermission",
6343
6368
  "collection": "rolepermissions",
6369
+ "description": "RolePermission is a join table linking Roles to Permissions.",
6344
6370
  "tableName": "role_permissions",
6345
6371
  "packageName": "@happyvertical/smrt-users",
6346
6372
  "extends": "SmrtObject",
@@ -6452,6 +6478,7 @@
6452
6478
  "name": "Session",
6453
6479
  "qualifiedName": "@happyvertical/smrt-users:Session",
6454
6480
  "collection": "sessions",
6481
+ "description": "Session represents an authenticated user session.",
6455
6482
  "tableName": "sessions",
6456
6483
  "packageName": "@happyvertical/smrt-users",
6457
6484
  "extends": "SmrtObject",
@@ -6894,6 +6921,7 @@
6894
6921
  "qualifiedName": "@happyvertical/smrt-users:Tenant",
6895
6922
  "displayLabelField": "name",
6896
6923
  "collection": "tenants",
6924
+ "description": "Tenant represents an organizational boundary in the multi-tenant system.",
6897
6925
  "tableName": "tenants",
6898
6926
  "packageName": "@happyvertical/smrt-users",
6899
6927
  "extends": "SmrtObject",
@@ -7467,6 +7495,7 @@
7467
7495
  "name": "TenantPermissionOverride",
7468
7496
  "qualifiedName": "@happyvertical/smrt-users:TenantPermissionOverride",
7469
7497
  "collection": "tenantpermissionoverrides",
7498
+ "description": "TenantPermissionOverride allows setting explicit permission values at the tenant level.",
7470
7499
  "tableName": "tenant_permission_overrides",
7471
7500
  "packageName": "@happyvertical/smrt-users",
7472
7501
  "extends": "SmrtObject",
@@ -7662,6 +7691,7 @@
7662
7691
  "name": "User",
7663
7692
  "qualifiedName": "@happyvertical/smrt-users:User",
7664
7693
  "collection": "users",
7694
+ "description": "User represents an authenticated identity in the system.",
7665
7695
  "tableName": "users",
7666
7696
  "packageName": "@happyvertical/smrt-users",
7667
7697
  "extends": "SmrtObject",
@@ -11492,5 +11522,18 @@
11492
11522
  "module": "retention",
11493
11523
  "content": "# smrt-users/credential retention\n\nModule semantics for `src/retention.ts` and the three `deleteExpired()` paths\nit drives. Package orientation, the permission model, and the security rules\nthat apply before editing anything live in [../AGENTS.md](../AGENTS.md) — read\nthat first.\n\n## Credential retention (#2375)\n\n`SessionCollection.deleteExpired()`,\n`UsersMagicLinkTokenCollection.deleteExpired()` and\n`UsersCliAuthRequestCollection.deleteExpired()` all existed, and all waited for\nan application to remember to call them. Expired credential rows are the worst\nkind of unbounded growth: worthless the moment they expire, and exactly the\nrows an attacker would like to still find in the table.\n\n`src/retention.ts` contributes the three to the framework retention sweep in\n`@happyvertical/smrt-core`, so `smrt db:prune` and a running jobs `TaskRunner`\nreap them.\n\n- **The entry point registers on import.** `src/index.ts` calls\n `registerUserRetentionTasks()`, so any process that loaded this package\n contributes the tasks — including `smrt db:prune`, which imports the package\n optionally for exactly that reason. Registering is not scheduling: nothing is\n deleted until something runs a sweep.\n- **Task names** are `users-sessions`, `users-magic-link-tokens`,\n `users-cli-auth-requests`, `users-login-attempts`, `users-login-audit-events`\n — prefixed with the package's short name because the retention registry is\n one process-global namespace. Opt one out with\n `runRetentionSweep(db, { tasks: { 'users-sessions': false } })` or\n `smrt db:prune --skip users-sessions`; `unregisterUserRetentionTasks()`\n removes all of them.\n- **The credential tasks have no retention window to configure.** An expired\n credential has nothing worth retaining, so each deletes only already-expired\n rows. An application that keeps expired sessions for audit should opt the\n task out and archive them itself. The two #3273 tasks differ: limiter rows\n are pruned once past their own `retain_until` — written by the limiter from\n its configured window and streak-forgiveness horizon, so a custom-configured\n limiter is never swept early — and never while a lockout is live; audit\n events are pruned after\n `DEFAULT_LOGIN_AUDIT_RETENTION_DAYS` (90). A host that needs longer audit\n retention opts `users-login-audit-events` out and archives.\n- **All three are a single counted DELETE**, not a hydrate-and-delete loop.\n They now run unattended on a timer, and a per-row delete that throws part-way\n leaves the rest of the expired rows un-reaped — the #1400 reasoning that\n already applied to sessions, now applied to the other two. Counting first\n also gives a usable figure where `rowCount` is not populated, and is what\n makes `{ dryRun }` preview the same predicate rather than an estimate. The\n count and the delete are not one transaction, so the figure is approximate\n under concurrent writers.\n- **`expiresAt` is `@field({ indexed: true })`** on `Session`,\n `UsersMagicLinkToken` and `UsersCliAuthRequest`: the prune predicate scans\n that column on every pass.\n- **CLI bearer handoff is single-use.** An approved request becomes `consumed`\n and clears its `sessionId` when one poller wins the exchange. The CLI\n retention task deletes pending requests past their TTL, requests already\n marked `expired` by lazy expiry, and consumed history; it retains approved\n requests until exchange so a near-expiry approval cannot orphan its bearer\n session.\n"
11494
11524
  }
11495
- ]
11525
+ ],
11526
+ "browser": {
11527
+ "status": "server-only",
11528
+ "issues": [
11529
+ "#3617",
11530
+ "#3624",
11531
+ "#3626"
11532
+ ],
11533
+ "reason": "node:crypto/async_hooks; core migrations",
11534
+ "via": [
11535
+ "@happyvertical/smrt-profiles",
11536
+ "@happyvertical/smrt-tenancy"
11537
+ ]
11538
+ }
11496
11539
  }
package/dist/sveltekit.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as readMobileBearerToken, D as withSessionPermissionContext, F as encodeOidcTransaction, H as DeviceCredentialForbiddenError, I as getUsersOidcConfig, L as resolveOidcProviderConfig, M as OidcLoginError, N as OidcLoginService, O as MobileAuthError, P as decodeOidcTransaction, U as DeviceCredentialPolicyError, V as DeviceCredentialError, W as DeviceCredentialService, Y as SessionService, _ as PasswordCredentialService, a as TerminalAuthError, at as LoginRateLimitError, b as OperationPermissionError, g as PasswordCredentialForbiddenError, h as PasswordCredentialError, j as validateMobileRedirectUri, k as MobileAuthService, o as TerminalAuthRateLimitError, s as TerminalAuthService, v as PasswordPolicyError } from "./chunks/TerminalAuthService-B89-bMKw.js";
1
+ import { A as readMobileBearerToken, D as withSessionPermissionContext, F as encodeOidcTransaction, H as DeviceCredentialForbiddenError, I as getUsersOidcConfig, L as resolveOidcProviderConfig, M as OidcLoginError, N as OidcLoginService, O as MobileAuthError, P as decodeOidcTransaction, U as DeviceCredentialPolicyError, V as DeviceCredentialError, W as DeviceCredentialService, Y as SessionService, _ as PasswordCredentialService, a as TerminalAuthError, at as LoginRateLimitError, b as OperationPermissionError, g as PasswordCredentialForbiddenError, h as PasswordCredentialError, j as validateMobileRedirectUri, k as MobileAuthService, o as TerminalAuthRateLimitError, s as TerminalAuthService, v as PasswordPolicyError } from "./chunks/TerminalAuthService-CNYOmaaa.js";
2
2
  import { DiscoveryArtifactValidationError, SMRT_APP_RESULT_CONTRACT, SMRT_APP_RESULT_SCHEMA, SMRT_APP_RESULT_VERSION, SMRT_DISCOVERY_CONFORMANCE_ARTIFACT_SCHEMA, SMRT_DISCOVERY_CONFORMANCE_SCHEMA, SMRT_DISCOVERY_CONFORMANCE_VERSION, SMRT_MCP_RESULT_METADATA_KEY, canonicalizeDiscoveryArtifact, createDiscoveryConformanceArtifact, deriveCommandRequirements, validateDiscoveryConformanceArtifact } from "./app-contract.js";
3
3
  import { ObjectRegistry, createClassNamePredicate, resolveCustomActionMetadata, resolveEffectiveActionMetadata } from "@happyvertical/smrt-core";
4
4
  import { createLogger } from "@happyvertical/logger";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-users",
3
- "version": "0.55.6",
3
+ "version": "0.55.8",
4
4
  "smrtJsdoc": "strict",
5
5
  "description": "Multi-tenant user management for the SMRT framework - users, tenants, roles, permissions, groups",
6
6
  "type": "module",
@@ -47,19 +47,19 @@
47
47
  }
48
48
  },
49
49
  "dependencies": {
50
- "@happyvertical/logger": "^0.102.4",
51
- "@happyvertical/smrt-config": "0.55.6",
52
- "@happyvertical/smrt-core": "0.55.6",
53
- "@happyvertical/smrt-mobile-contract": "0.55.6",
54
- "@happyvertical/smrt-profiles": "0.55.6",
55
- "@happyvertical/smrt-tenancy": "0.55.6",
56
- "@happyvertical/smrt-types": "0.55.6",
57
- "@happyvertical/smrt-ui": "0.55.6",
58
- "@happyvertical/sql": "^0.102.4",
50
+ "@happyvertical/logger": "^0.103.1",
51
+ "@happyvertical/smrt-config": "0.55.8",
52
+ "@happyvertical/smrt-core": "0.55.8",
53
+ "@happyvertical/smrt-mobile-contract": "0.55.8",
54
+ "@happyvertical/smrt-profiles": "0.55.8",
55
+ "@happyvertical/smrt-tenancy": "0.55.8",
56
+ "@happyvertical/smrt-types": "0.55.8",
57
+ "@happyvertical/smrt-ui": "0.55.8",
58
+ "@happyvertical/sql": "^0.103.1",
59
59
  "jose": "^6.2.12"
60
60
  },
61
61
  "devDependencies": {
62
- "@happyvertical/smrt-vitest": "0.55.6",
62
+ "@happyvertical/smrt-vitest": "0.55.8",
63
63
  "@sveltejs/package": "^2.5.8",
64
64
  "@sveltejs/vite-plugin-svelte": "^7.3.0",
65
65
  "@types/node": "24.13.6",