@happyvertical/smrt-users 0.54.0 → 0.55.2

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.
Files changed (38) hide show
  1. package/AGENTS.md +16 -0
  2. package/README.md +167 -3
  3. package/agents/oidc-provisioning.md +6 -0
  4. package/dist/chunks/{TerminalAuthService-BfxG493c.js → TerminalAuthService-DdV-Rm4h.js} +969 -155
  5. package/dist/chunks/TerminalAuthService-DdV-Rm4h.js.map +1 -0
  6. package/dist/collections/PasswordCredentialCollection.d.ts +53 -0
  7. package/dist/collections/PasswordCredentialCollection.d.ts.map +1 -0
  8. package/dist/collections/SessionCollection.d.ts +7 -2
  9. package/dist/collections/SessionCollection.d.ts.map +1 -1
  10. package/dist/collections/index.d.ts +1 -0
  11. package/dist/collections/index.d.ts.map +1 -1
  12. package/dist/index.d.ts +3 -3
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +44 -4
  15. package/dist/index.js.map +1 -1
  16. package/dist/manifest.json +462 -7
  17. package/dist/models/PasswordCredential.d.ts +36 -0
  18. package/dist/models/PasswordCredential.d.ts.map +1 -0
  19. package/dist/models/index.d.ts +1 -0
  20. package/dist/models/index.d.ts.map +1 -1
  21. package/dist/services/DeviceCredentialService.d.ts.map +1 -1
  22. package/dist/services/PasswordCredentialService.d.ts +302 -0
  23. package/dist/services/PasswordCredentialService.d.ts.map +1 -0
  24. package/dist/services/SessionService.d.ts +3 -1
  25. package/dist/services/SessionService.d.ts.map +1 -1
  26. package/dist/services/credential-hash.d.ts +76 -0
  27. package/dist/services/credential-hash.d.ts.map +1 -0
  28. package/dist/services/index.d.ts +1 -0
  29. package/dist/services/index.d.ts.map +1 -1
  30. package/dist/smrt-knowledge.json +215 -10
  31. package/dist/sveltekit/index.d.ts +46 -0
  32. package/dist/sveltekit/index.d.ts.map +1 -1
  33. package/dist/sveltekit/password-handlers.d.ts +91 -0
  34. package/dist/sveltekit/password-handlers.d.ts.map +1 -0
  35. package/dist/sveltekit.js +250 -68
  36. package/dist/sveltekit.js.map +1 -1
  37. package/package.json +12 -12
  38. package/dist/chunks/TerminalAuthService-BfxG493c.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-users",
5
- "packageVersion": "0.54.0",
5
+ "packageVersion": "0.55.2",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-users:AccessRequestCollection": {
8
8
  "name": "accessrequestcollection",
@@ -2071,6 +2071,238 @@
2071
2071
  },
2072
2072
  "importPath": "@happyvertical/smrt-users"
2073
2073
  },
2074
+ "@happyvertical/smrt-users:UsersPasswordCredentialCollection": {
2075
+ "name": "userspasswordcredentialcollection",
2076
+ "className": "UsersPasswordCredentialCollection",
2077
+ "qualifiedName": "@happyvertical/smrt-users:UsersPasswordCredentialCollection",
2078
+ "collection": "userspasswordcredentials",
2079
+ "filePath": "/home/runner/work/smrt/smrt/packages/users/src/collections/PasswordCredentialCollection.ts",
2080
+ "packageName": "@happyvertical/smrt-users",
2081
+ "fields": {},
2082
+ "methods": {
2083
+ "findByUserId": {
2084
+ "name": "findByUserId",
2085
+ "async": true,
2086
+ "parameters": [
2087
+ {
2088
+ "name": "userId",
2089
+ "type": "string",
2090
+ "optional": false
2091
+ }
2092
+ ],
2093
+ "returnType": "Promise<UsersPasswordCredential | null>",
2094
+ "isStatic": false,
2095
+ "isPublic": true
2096
+ },
2097
+ "insertIfAbsent": {
2098
+ "name": "insertIfAbsent",
2099
+ "async": true,
2100
+ "parameters": [
2101
+ {
2102
+ "name": "userId",
2103
+ "type": "string",
2104
+ "optional": false
2105
+ },
2106
+ {
2107
+ "name": "write",
2108
+ "type": "PasswordCredentialWrite",
2109
+ "optional": false
2110
+ }
2111
+ ],
2112
+ "returnType": "Promise<UsersPasswordCredential | null>",
2113
+ "isStatic": false,
2114
+ "isPublic": true
2115
+ },
2116
+ "upsertForUser": {
2117
+ "name": "upsertForUser",
2118
+ "async": true,
2119
+ "parameters": [
2120
+ {
2121
+ "name": "userId",
2122
+ "type": "string",
2123
+ "optional": false
2124
+ },
2125
+ {
2126
+ "name": "write",
2127
+ "type": "PasswordCredentialWrite",
2128
+ "optional": false
2129
+ }
2130
+ ],
2131
+ "returnType": "Promise<UsersPasswordCredential>",
2132
+ "isStatic": false,
2133
+ "isPublic": true
2134
+ },
2135
+ "replaceIfCurrent": {
2136
+ "name": "replaceIfCurrent",
2137
+ "async": true,
2138
+ "parameters": [
2139
+ {
2140
+ "name": "expected",
2141
+ "type": "UsersPasswordCredential",
2142
+ "optional": false
2143
+ },
2144
+ {
2145
+ "name": "write",
2146
+ "type": "Omit<PasswordCredentialWrite, 'mustChange'>",
2147
+ "optional": false
2148
+ }
2149
+ ],
2150
+ "returnType": "Promise<boolean>",
2151
+ "isStatic": false,
2152
+ "isPublic": true
2153
+ },
2154
+ "deleteIfCurrent": {
2155
+ "name": "deleteIfCurrent",
2156
+ "async": true,
2157
+ "parameters": [
2158
+ {
2159
+ "name": "expected",
2160
+ "type": "UsersPasswordCredential",
2161
+ "optional": false
2162
+ }
2163
+ ],
2164
+ "returnType": "Promise<boolean>",
2165
+ "isStatic": false,
2166
+ "isPublic": true
2167
+ },
2168
+ "replaceHashIfUnchanged": {
2169
+ "name": "replaceHashIfUnchanged",
2170
+ "async": true,
2171
+ "parameters": [
2172
+ {
2173
+ "name": "userId",
2174
+ "type": "string",
2175
+ "optional": false
2176
+ },
2177
+ {
2178
+ "name": "expectedHash",
2179
+ "type": "string",
2180
+ "optional": false
2181
+ },
2182
+ {
2183
+ "name": "upgradedHash",
2184
+ "type": "string",
2185
+ "optional": false
2186
+ }
2187
+ ],
2188
+ "returnType": "Promise<boolean>",
2189
+ "isStatic": false,
2190
+ "isPublic": true
2191
+ },
2192
+ "deleteByUserId": {
2193
+ "name": "deleteByUserId",
2194
+ "async": true,
2195
+ "parameters": [
2196
+ {
2197
+ "name": "userId",
2198
+ "type": "string",
2199
+ "optional": false
2200
+ }
2201
+ ],
2202
+ "returnType": "Promise<boolean>",
2203
+ "isStatic": false,
2204
+ "isPublic": true
2205
+ }
2206
+ },
2207
+ "decoratorConfig": {
2208
+ "tableName": "users_password_credentials",
2209
+ "api": false,
2210
+ "mcp": false,
2211
+ "cli": false
2212
+ },
2213
+ "extends": "SmrtCollection",
2214
+ "extendsTypeArg": "UsersPasswordCredential",
2215
+ "exportName": "UsersPasswordCredentialCollection",
2216
+ "collectionExportName": "UsersPasswordCredentialCollectionCollection",
2217
+ "schema": {
2218
+ "tableName": "users_password_credentials",
2219
+ "ddl": "CREATE TABLE IF NOT EXISTS \"users_password_credentials\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"user_id\" UUID NOT NULL UNIQUE,\n \"password_hash\" TEXT NOT NULL,\n \"version\" INTEGER NOT NULL DEFAULT 1,\n \"must_change\" BOOLEAN NOT NULL DEFAULT FALSE,\n \"rotated_at\" TIMESTAMP,\n \"rotated_by\" TEXT\n);",
2220
+ "columns": {
2221
+ "id": {
2222
+ "type": "UUID",
2223
+ "primaryKey": true,
2224
+ "referenceKind": "id",
2225
+ "notNull": true
2226
+ },
2227
+ "slug": {
2228
+ "type": "TEXT",
2229
+ "notNull": true
2230
+ },
2231
+ "context": {
2232
+ "type": "TEXT",
2233
+ "notNull": true,
2234
+ "default": ""
2235
+ },
2236
+ "created_at": {
2237
+ "type": "TIMESTAMP",
2238
+ "notNull": true,
2239
+ "default": "current_timestamp"
2240
+ },
2241
+ "updated_at": {
2242
+ "type": "TIMESTAMP",
2243
+ "notNull": true,
2244
+ "default": "current_timestamp"
2245
+ },
2246
+ "user_id": {
2247
+ "type": "UUID",
2248
+ "referenceKind": "foreignKey",
2249
+ "notNull": true,
2250
+ "unique": true,
2251
+ "foreignKey": {
2252
+ "table": "users",
2253
+ "column": "id",
2254
+ "onDelete": "NO ACTION",
2255
+ "onUpdate": "CASCADE"
2256
+ }
2257
+ },
2258
+ "password_hash": {
2259
+ "type": "TEXT",
2260
+ "notNull": true,
2261
+ "unique": false
2262
+ },
2263
+ "version": {
2264
+ "type": "INTEGER",
2265
+ "notNull": true,
2266
+ "unique": false,
2267
+ "default": 1
2268
+ },
2269
+ "must_change": {
2270
+ "type": "BOOLEAN",
2271
+ "notNull": true,
2272
+ "unique": false,
2273
+ "default": false
2274
+ },
2275
+ "rotated_at": {
2276
+ "type": "TIMESTAMP",
2277
+ "notNull": false,
2278
+ "unique": false
2279
+ },
2280
+ "rotated_by": {
2281
+ "type": "TEXT",
2282
+ "notNull": false,
2283
+ "unique": false
2284
+ }
2285
+ },
2286
+ "indexes": [
2287
+ {
2288
+ "name": "users_password_credentials_slug_context_idx",
2289
+ "columns": [
2290
+ "slug",
2291
+ "context"
2292
+ ],
2293
+ "unique": true
2294
+ },
2295
+ {
2296
+ "name": "users_password_credentials_created_at_idx",
2297
+ "columns": [
2298
+ "created_at"
2299
+ ]
2300
+ }
2301
+ ],
2302
+ "version": "9a828f77"
2303
+ },
2304
+ "importPath": "@happyvertical/smrt-users"
2305
+ },
2074
2306
  "@happyvertical/smrt-users:PermissionCollection": {
2075
2307
  "name": "permissioncollection",
2076
2308
  "className": "PermissionCollection",
@@ -3157,6 +3389,14 @@
3157
3389
  "name": "userId",
3158
3390
  "type": "string",
3159
3391
  "optional": false
3392
+ },
3393
+ {
3394
+ "name": "options",
3395
+ "type": "object",
3396
+ "optional": true,
3397
+ "memberTypes": [
3398
+ "string"
3399
+ ]
3160
3400
  }
3161
3401
  ],
3162
3402
  "returnType": "Promise<number>",
@@ -4728,6 +4968,7 @@
4728
4968
  "extends": "SmrtObject",
4729
4969
  "exportName": "AccessRequest",
4730
4970
  "collectionExportName": "AccessRequestCollection",
4971
+ "displayLabelField": "name",
4731
4972
  "validationRules": [
4732
4973
  {
4733
4974
  "field": "email",
@@ -5021,7 +5262,13 @@
5021
5262
  "status": {
5022
5263
  "type": "text",
5023
5264
  "required": false,
5024
- "_meta": {}
5265
+ "_meta": {},
5266
+ "enum": [
5267
+ "pending",
5268
+ "approved",
5269
+ "consumed",
5270
+ "expired"
5271
+ ]
5025
5272
  },
5026
5273
  "userId": {
5027
5274
  "type": "foreignKey",
@@ -5278,6 +5525,7 @@
5278
5525
  "extends": "SmrtObject",
5279
5526
  "exportName": "Group",
5280
5527
  "collectionExportName": "GroupCollection",
5528
+ "displayLabelField": "name",
5281
5529
  "validationRules": [
5282
5530
  {
5283
5531
  "field": "tenantId",
@@ -5665,7 +5913,11 @@
5665
5913
  "required": true,
5666
5914
  "_meta": {
5667
5915
  "required": true
5668
- }
5916
+ },
5917
+ "enum": [
5918
+ "subject",
5919
+ "source"
5920
+ ]
5669
5921
  },
5670
5922
  "attemptCount": {
5671
5923
  "type": "integer",
@@ -5883,7 +6135,14 @@
5883
6135
  "required": true,
5884
6136
  "_meta": {
5885
6137
  "required": true
5886
- }
6138
+ },
6139
+ "enum": [
6140
+ "denied",
6141
+ "failed",
6142
+ "succeeded",
6143
+ "locked",
6144
+ "managed"
6145
+ ]
5887
6146
  },
5888
6147
  "subjectKeyHash": {
5889
6148
  "type": "text",
@@ -6620,6 +6879,187 @@
6620
6879
  },
6621
6880
  "importPath": "@happyvertical/smrt-users"
6622
6881
  },
6882
+ "@happyvertical/smrt-users:UsersPasswordCredential": {
6883
+ "name": "userspasswordcredential",
6884
+ "className": "UsersPasswordCredential",
6885
+ "qualifiedName": "@happyvertical/smrt-users:UsersPasswordCredential",
6886
+ "collection": "userspasswordcredentials",
6887
+ "filePath": "/home/runner/work/smrt/smrt/packages/users/src/models/PasswordCredential.ts",
6888
+ "packageName": "@happyvertical/smrt-users",
6889
+ "fields": {
6890
+ "userId": {
6891
+ "type": "foreignKey",
6892
+ "required": true,
6893
+ "related": "User",
6894
+ "_meta": {
6895
+ "required": true,
6896
+ "unique": true
6897
+ }
6898
+ },
6899
+ "passwordHash": {
6900
+ "type": "text",
6901
+ "required": true,
6902
+ "_meta": {
6903
+ "required": true,
6904
+ "sensitive": true
6905
+ },
6906
+ "sensitive": true
6907
+ },
6908
+ "version": {
6909
+ "type": "integer",
6910
+ "required": true,
6911
+ "default": 1,
6912
+ "_meta": {
6913
+ "required": true,
6914
+ "default": 1
6915
+ }
6916
+ },
6917
+ "mustChange": {
6918
+ "type": "boolean",
6919
+ "required": true,
6920
+ "default": false,
6921
+ "_meta": {
6922
+ "required": true,
6923
+ "default": false
6924
+ }
6925
+ },
6926
+ "rotatedAt": {
6927
+ "type": "datetime",
6928
+ "required": false,
6929
+ "_meta": {
6930
+ "nullable": true
6931
+ }
6932
+ },
6933
+ "rotatedBy": {
6934
+ "type": "text",
6935
+ "required": false,
6936
+ "_meta": {
6937
+ "nullable": true
6938
+ }
6939
+ }
6940
+ },
6941
+ "methods": {},
6942
+ "decoratorConfig": {
6943
+ "tableName": "users_password_credentials",
6944
+ "sensitive": true,
6945
+ "api": false,
6946
+ "cli": false,
6947
+ "mcp": false
6948
+ },
6949
+ "extends": "SmrtObject",
6950
+ "exportName": "UsersPasswordCredential",
6951
+ "collectionExportName": "UsersPasswordCredentialCollection",
6952
+ "validationRules": [
6953
+ {
6954
+ "field": "userId",
6955
+ "rule": "required",
6956
+ "fieldType": "foreignKey"
6957
+ },
6958
+ {
6959
+ "field": "passwordHash",
6960
+ "rule": "required",
6961
+ "fieldType": "text"
6962
+ },
6963
+ {
6964
+ "field": "version",
6965
+ "rule": "required",
6966
+ "fieldType": "integer"
6967
+ },
6968
+ {
6969
+ "field": "mustChange",
6970
+ "rule": "required",
6971
+ "fieldType": "boolean"
6972
+ }
6973
+ ],
6974
+ "schema": {
6975
+ "tableName": "users_password_credentials",
6976
+ "ddl": "CREATE TABLE IF NOT EXISTS \"users_password_credentials\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"user_id\" UUID NOT NULL UNIQUE,\n \"password_hash\" TEXT NOT NULL,\n \"version\" INTEGER NOT NULL DEFAULT 1,\n \"must_change\" BOOLEAN NOT NULL DEFAULT FALSE,\n \"rotated_at\" TIMESTAMP,\n \"rotated_by\" TEXT\n);",
6977
+ "columns": {
6978
+ "id": {
6979
+ "type": "UUID",
6980
+ "primaryKey": true,
6981
+ "referenceKind": "id",
6982
+ "notNull": true
6983
+ },
6984
+ "slug": {
6985
+ "type": "TEXT",
6986
+ "notNull": true
6987
+ },
6988
+ "context": {
6989
+ "type": "TEXT",
6990
+ "notNull": true,
6991
+ "default": ""
6992
+ },
6993
+ "created_at": {
6994
+ "type": "TIMESTAMP",
6995
+ "notNull": true,
6996
+ "default": "current_timestamp"
6997
+ },
6998
+ "updated_at": {
6999
+ "type": "TIMESTAMP",
7000
+ "notNull": true,
7001
+ "default": "current_timestamp"
7002
+ },
7003
+ "user_id": {
7004
+ "type": "UUID",
7005
+ "referenceKind": "foreignKey",
7006
+ "notNull": true,
7007
+ "unique": true,
7008
+ "foreignKey": {
7009
+ "table": "users",
7010
+ "column": "id",
7011
+ "onDelete": "NO ACTION",
7012
+ "onUpdate": "CASCADE"
7013
+ }
7014
+ },
7015
+ "password_hash": {
7016
+ "type": "TEXT",
7017
+ "notNull": true,
7018
+ "unique": false
7019
+ },
7020
+ "version": {
7021
+ "type": "INTEGER",
7022
+ "notNull": true,
7023
+ "unique": false,
7024
+ "default": 1
7025
+ },
7026
+ "must_change": {
7027
+ "type": "BOOLEAN",
7028
+ "notNull": true,
7029
+ "unique": false,
7030
+ "default": false
7031
+ },
7032
+ "rotated_at": {
7033
+ "type": "TIMESTAMP",
7034
+ "notNull": false,
7035
+ "unique": false
7036
+ },
7037
+ "rotated_by": {
7038
+ "type": "TEXT",
7039
+ "notNull": false,
7040
+ "unique": false
7041
+ }
7042
+ },
7043
+ "indexes": [
7044
+ {
7045
+ "name": "users_password_credentials_slug_context_idx",
7046
+ "columns": [
7047
+ "slug",
7048
+ "context"
7049
+ ],
7050
+ "unique": true
7051
+ },
7052
+ {
7053
+ "name": "users_password_credentials_created_at_idx",
7054
+ "columns": [
7055
+ "created_at"
7056
+ ]
7057
+ }
7058
+ ],
7059
+ "version": "9a828f77"
7060
+ },
7061
+ "importPath": "@happyvertical/smrt-users"
7062
+ },
6623
7063
  "@happyvertical/smrt-users:Permission": {
6624
7064
  "name": "permission",
6625
7065
  "className": "Permission",
@@ -6698,6 +7138,7 @@
6698
7138
  "extends": "SmrtObject",
6699
7139
  "exportName": "Permission",
6700
7140
  "collectionExportName": "PermissionCollection",
7141
+ "displayLabelField": "name",
6701
7142
  "schema": {
6702
7143
  "tableName": "permissions",
6703
7144
  "ddl": "CREATE TABLE IF NOT EXISTS \"permissions\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"name\" TEXT DEFAULT '',\n \"description\" TEXT DEFAULT '',\n \"category\" TEXT DEFAULT ''\n);",
@@ -6998,7 +7439,11 @@
6998
7439
  "effect": {
6999
7440
  "type": "text",
7000
7441
  "required": false,
7001
- "_meta": {}
7442
+ "_meta": {},
7443
+ "enum": [
7444
+ "grant",
7445
+ "deny"
7446
+ ]
7002
7447
  },
7003
7448
  "canDelegate": {
7004
7449
  "type": "boolean",
@@ -7290,6 +7735,7 @@
7290
7735
  "extends": "SmrtObject",
7291
7736
  "exportName": "Role",
7292
7737
  "collectionExportName": "RoleCollection",
7738
+ "displayLabelField": "name",
7293
7739
  "schema": {
7294
7740
  "tableName": "roles",
7295
7741
  "ddl": "CREATE TABLE IF NOT EXISTS \"roles\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"name\" TEXT DEFAULT '',\n \"description\" TEXT DEFAULT '',\n \"is_system\" BOOLEAN DEFAULT FALSE,\n \"inherits_to_descendants\" BOOLEAN DEFAULT FALSE\n);",
@@ -8079,6 +8525,7 @@
8079
8525
  "extends": "SmrtObject",
8080
8526
  "exportName": "Tenant",
8081
8527
  "collectionExportName": "TenantCollection",
8528
+ "displayLabelField": "name",
8082
8529
  "schema": {
8083
8530
  "tableName": "tenants",
8084
8531
  "ddl": "CREATE TABLE IF NOT EXISTS \"tenants\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"name\" TEXT DEFAULT '',\n \"status\" TEXT,\n \"description\" TEXT DEFAULT '',\n \"parent_tenant_id\" UUID,\n \"hierarchy_level\" INTEGER DEFAULT 0,\n \"hierarchy_path\" TEXT DEFAULT '',\n \"cascade_permissions\" BOOLEAN DEFAULT TRUE,\n \"inherit_permissions\" BOOLEAN DEFAULT TRUE\n);",
@@ -8232,7 +8679,14 @@
8232
8679
  "status": {
8233
8680
  "type": "text",
8234
8681
  "required": false,
8235
- "default": "unprovisioned"
8682
+ "default": "unprovisioned",
8683
+ "enum": [
8684
+ "unprovisioned",
8685
+ "provisioning",
8686
+ "active",
8687
+ "drifted",
8688
+ "failed"
8689
+ ]
8236
8690
  },
8237
8691
  "lastCheckedAt": {
8238
8692
  "type": "datetime",
@@ -8894,5 +9348,6 @@
8894
9348
  "@happyvertical/smrt-mobile-contract",
8895
9349
  "@happyvertical/smrt-profiles",
8896
9350
  "@happyvertical/smrt-tenancy"
8897
- ]
9351
+ ],
9352
+ "stampsConstructors": true
8898
9353
  }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Per-person password credential (#3274).
3
+ *
4
+ * Its own object rather than a column on `User`, so authentication can be
5
+ * extended without touching the identity model, the hash is never selected by
6
+ * the many existing user reads, and it is never serialized by accident. One
7
+ * row per user: like the PIN credential, a password belongs to the person,
8
+ * not to a tenant — tenant access still comes only from an active Membership,
9
+ * which sign-in checks separately.
10
+ *
11
+ * The hash is scrypt with a random per-hash salt and the parameters encoded
12
+ * in the stored string (`scrypt$N$r$p$saltB64$hashB64`). See
13
+ * {@link PasswordCredentialService}; that service and its SvelteKit handlers
14
+ * are the only read and write paths.
15
+ *
16
+ * @packageDocumentation
17
+ */
18
+ import { SmrtObject } from '@happyvertical/smrt-core';
19
+ export declare class UsersPasswordCredential extends SmrtObject {
20
+ /** The person this password signs in. */
21
+ userId: string;
22
+ /** Encoded hash: `scrypt$N$r$p$saltB64$hashB64`. */
23
+ passwordHash: string;
24
+ /** Bumped on every set/change/reset; a parameter-upgrade rehash keeps it. */
25
+ version: number;
26
+ /**
27
+ * Set by an administrative reset: the next sign-in yields a session that
28
+ * can only change the password.
29
+ */
30
+ mustChange: boolean;
31
+ /** When the current password was set. */
32
+ rotatedAt: Date | null;
33
+ /** `self`, or the user id of the administrator who last set it. */
34
+ rotatedBy: string | null;
35
+ }
36
+ //# sourceMappingURL=PasswordCredential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordCredential.d.ts","sourceRoot":"","sources":["../../src/models/PasswordCredential.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAqB,UAAU,EAAQ,MAAM,0BAA0B,CAAC;AAE/E,qBAQa,uBAAwB,SAAQ,UAAU;IACrD,yCAAyC;IAEzC,MAAM,SAAM;IAEZ,oDAAoD;IAEpD,YAAY,SAAM;IAElB,6EAA6E;IAE7E,OAAO,SAAK;IAEZ;;;OAGG;IAEH,UAAU,UAAS;IAEnB,yCAAyC;IAEzC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE9B,mEAAmE;IAEnE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;CACjC"}
@@ -13,6 +13,7 @@ export { type LoginAuditOutcome, UsersLoginAuditEvent, } from './LoginAuditEvent
13
13
  export { DEFAULT_TOKEN_EXPIRY_SECONDS, MagicLinkToken, UsersMagicLinkToken, } from './MagicLinkToken.js';
14
14
  export { Membership } from './Membership.js';
15
15
  export { MembershipOverride } from './MembershipOverride.js';
16
+ export { UsersPasswordCredential } from './PasswordCredential.js';
16
17
  export { isValidPermissionSlug, type ParsedPermissionSlug, Permission, parsePermissionSlug, } from './Permission.js';
17
18
  export { UsersPinCredential } from './PinCredential.js';
18
19
  export { ResourceGrant, type ResourceGrantEffect, type ResourceGrantOptions, } from './ResourceGrant.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EACL,KAAK,iBAAiB,EACtB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EACL,KAAK,iBAAiB,EACtB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceCredentialService.d.ts","sourceRoot":"","sources":["../../src/services/DeviceCredentialService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAGzF,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AAI1E,+EAA+E;AAC/E,eAAO,MAAM,kCAAkC,QAAc,CAAC;AAC9D,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,qBAAqB,CAAC;AAChE,oDAAoD;AACpD,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,oEAAoE;AACpE,eAAO,MAAM,0BAA0B,EAAE,oBAAoB,EAO5D,CAAC;AAIF,4EAA4E;AAC5E,wBAAgB,8BAA8B,IAAI,IAAI,CAIrD;AAED,oFAAoF;AACpF,qBAAa,qBAAsB,SAAQ,uBAAuB;gBACpD,OAAO,SAAyB;CAI7C;AAED,8EAA8E;AAC9E,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,OAAO,SAA6C;CAIjE;AAED,4DAA4D;AAC5D,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB,CAAC,KAAK;IAC7C,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,6DAA6D;IAC7D,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACjC;;;;;;;OAOG;IACH,MAAM,CACJ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,8BAA+B,SAAQ,gBAAgB;IACtE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACrE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACxC;;;;;;;;OAQG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC1E;;;;OAIG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,MAAM,gBAAgB,CAAC,CAAC;IACnE,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB;IAClB,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,MAAM,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgFD;;;;GAIG;AACH,qBAAa,WAAY,YAAW,wBAAwB,CAAC,cAAc,CAAC;IAIxE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAkB;gBAG/B,WAAW,EAAE,4BAA4B,EACzC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM;IAGpC,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAInC,MAAM,CACV,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;CAmBhD;AAMD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAKxB;IACF,OAAO,CAAC,cAAc,CAAkB;IACxC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAe;gBAEtB,OAAO,EAAE,8BAA8B;WAkCtC,MAAM,CACjB,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,uBAAuB,CAAC;IAM7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CjC,iEAAiE;IACjE,IAAI,GAAG,IAAI,WAAW,CAErB;IAED,4EAA4E;IAC5E,IAAI,YAAY,IAAI,mBAAmB,CAEtC;IAMD,yEAAyE;IACnE,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIvE;;;;;OAKG;IACG,MAAM,CAAC,KAAK,SAAS,iBAAiB,EAC1C,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC,EACzC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,kBAAkB,CAAC;IA6I9B;;;;OAIG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpD;;;;;;;OAOG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA0B5E;;;;;;;OAOG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAgBxE;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmE/C;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAyB1E,yEAAyE;IACnE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IA6B1E,wFAAwF;IAClF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAQhC,qBAAqB;YA4BrB,oBAAoB;YAkBpB,eAAe;IAyC7B,OAAO,CAAC,eAAe;YAmBT,QAAQ;CAmBvB"}
1
+ {"version":3,"file":"DeviceCredentialService.d.ts","sourceRoot":"","sources":["../../src/services/DeviceCredentialService.ts"],"names":[],"mappings":"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"}