@byline/db-postgres 0.9.3

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 (99) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +18 -0
  3. package/dist/database/schema/auth.d.ts +857 -0
  4. package/dist/database/schema/auth.d.ts.map +1 -0
  5. package/dist/database/schema/auth.js +176 -0
  6. package/dist/database/schema/auth.js.map +1 -0
  7. package/dist/database/schema/index.d.ts +2955 -0
  8. package/dist/database/schema/index.d.ts.map +1 -0
  9. package/dist/database/schema/index.js +500 -0
  10. package/dist/database/schema/index.js.map +1 -0
  11. package/dist/index.d.ts +31 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +30 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/lib/test-helper.d.ts +17 -0
  16. package/dist/lib/test-helper.d.ts.map +1 -0
  17. package/dist/lib/test-helper.js +47 -0
  18. package/dist/lib/test-helper.js.map +1 -0
  19. package/dist/modules/admin/admin-permissions-repository.d.ts +17 -0
  20. package/dist/modules/admin/admin-permissions-repository.d.ts.map +1 -0
  21. package/dist/modules/admin/admin-permissions-repository.js +76 -0
  22. package/dist/modules/admin/admin-permissions-repository.js.map +1 -0
  23. package/dist/modules/admin/admin-roles-repository.d.ts +12 -0
  24. package/dist/modules/admin/admin-roles-repository.d.ts.map +1 -0
  25. package/dist/modules/admin/admin-roles-repository.js +168 -0
  26. package/dist/modules/admin/admin-roles-repository.js.map +1 -0
  27. package/dist/modules/admin/admin-store.d.ts +20 -0
  28. package/dist/modules/admin/admin-store.d.ts.map +1 -0
  29. package/dist/modules/admin/admin-store.js +28 -0
  30. package/dist/modules/admin/admin-store.js.map +1 -0
  31. package/dist/modules/admin/admin-users-repository.d.ts +12 -0
  32. package/dist/modules/admin/admin-users-repository.d.ts.map +1 -0
  33. package/dist/modules/admin/admin-users-repository.js +208 -0
  34. package/dist/modules/admin/admin-users-repository.js.map +1 -0
  35. package/dist/modules/admin/index.d.ts +27 -0
  36. package/dist/modules/admin/index.d.ts.map +1 -0
  37. package/dist/modules/admin/index.js +27 -0
  38. package/dist/modules/admin/index.js.map +1 -0
  39. package/dist/modules/admin/refresh-tokens-repository.d.ts +16 -0
  40. package/dist/modules/admin/refresh-tokens-repository.d.ts.map +1 -0
  41. package/dist/modules/admin/refresh-tokens-repository.js +132 -0
  42. package/dist/modules/admin/refresh-tokens-repository.js.map +1 -0
  43. package/dist/modules/admin/tests/auth-integration.test.d.ts +9 -0
  44. package/dist/modules/admin/tests/auth-integration.test.d.ts.map +1 -0
  45. package/dist/modules/admin/tests/auth-integration.test.js +392 -0
  46. package/dist/modules/admin/tests/auth-integration.test.js.map +1 -0
  47. package/dist/modules/admin/tests/session-provider.test.d.ts +9 -0
  48. package/dist/modules/admin/tests/session-provider.test.d.ts.map +1 -0
  49. package/dist/modules/admin/tests/session-provider.test.js +370 -0
  50. package/dist/modules/admin/tests/session-provider.test.js.map +1 -0
  51. package/dist/modules/storage/@types.d.ts +116 -0
  52. package/dist/modules/storage/@types.d.ts.map +1 -0
  53. package/dist/modules/storage/@types.js +9 -0
  54. package/dist/modules/storage/@types.js.map +1 -0
  55. package/dist/modules/storage/storage-commands.d.ts +136 -0
  56. package/dist/modules/storage/storage-commands.d.ts.map +1 -0
  57. package/dist/modules/storage/storage-commands.js +272 -0
  58. package/dist/modules/storage/storage-commands.js.map +1 -0
  59. package/dist/modules/storage/storage-flatten.d.ts +19 -0
  60. package/dist/modules/storage/storage-flatten.d.ts.map +1 -0
  61. package/dist/modules/storage/storage-flatten.js +261 -0
  62. package/dist/modules/storage/storage-flatten.js.map +1 -0
  63. package/dist/modules/storage/storage-insert.d.ts +22 -0
  64. package/dist/modules/storage/storage-insert.d.ts.map +1 -0
  65. package/dist/modules/storage/storage-insert.js +115 -0
  66. package/dist/modules/storage/storage-insert.js.map +1 -0
  67. package/dist/modules/storage/storage-queries.d.ts +377 -0
  68. package/dist/modules/storage/storage-queries.d.ts.map +1 -0
  69. package/dist/modules/storage/storage-queries.js +976 -0
  70. package/dist/modules/storage/storage-queries.js.map +1 -0
  71. package/dist/modules/storage/storage-restore.d.ts +19 -0
  72. package/dist/modules/storage/storage-restore.d.ts.map +1 -0
  73. package/dist/modules/storage/storage-restore.js +350 -0
  74. package/dist/modules/storage/storage-restore.js.map +1 -0
  75. package/dist/modules/storage/storage-store-manifest.d.ts +71 -0
  76. package/dist/modules/storage/storage-store-manifest.d.ts.map +1 -0
  77. package/dist/modules/storage/storage-store-manifest.js +294 -0
  78. package/dist/modules/storage/storage-store-manifest.js.map +1 -0
  79. package/dist/modules/storage/storage-utils.d.ts +23 -0
  80. package/dist/modules/storage/storage-utils.d.ts.map +1 -0
  81. package/dist/modules/storage/storage-utils.js +72 -0
  82. package/dist/modules/storage/storage-utils.js.map +1 -0
  83. package/dist/modules/storage/tests/storage-field-types.test.d.ts +9 -0
  84. package/dist/modules/storage/tests/storage-field-types.test.d.ts.map +1 -0
  85. package/dist/modules/storage/tests/storage-field-types.test.js +146 -0
  86. package/dist/modules/storage/tests/storage-field-types.test.js.map +1 -0
  87. package/dist/modules/storage/tests/storage-flatten-reconstruct.test.d.ts +9 -0
  88. package/dist/modules/storage/tests/storage-flatten-reconstruct.test.d.ts.map +1 -0
  89. package/dist/modules/storage/tests/storage-flatten-reconstruct.test.js +327 -0
  90. package/dist/modules/storage/tests/storage-flatten-reconstruct.test.js.map +1 -0
  91. package/dist/modules/storage/tests/storage-store-manifest.test.d.ts +9 -0
  92. package/dist/modules/storage/tests/storage-store-manifest.test.d.ts.map +1 -0
  93. package/dist/modules/storage/tests/storage-store-manifest.test.js +141 -0
  94. package/dist/modules/storage/tests/storage-store-manifest.test.js.map +1 -0
  95. package/dist/modules/storage/tests/storage-versioning.test.d.ts +9 -0
  96. package/dist/modules/storage/tests/storage-versioning.test.d.ts.map +1 -0
  97. package/dist/modules/storage/tests/storage-versioning.test.js +336 -0
  98. package/dist/modules/storage/tests/storage-versioning.test.js.map +1 -0
  99. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-integration.test.js","sourceRoot":"","sources":["../../../../src/modules/admin/tests/auth-integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=session-provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-provider.test.d.ts","sourceRoot":"","sources":["../../../../src/modules/admin/tests/session-provider.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,370 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import assert from 'node:assert';
9
+ import { after, afterEach, before, describe, it } from 'node:test';
10
+ import { hashPassword, JwtSessionProvider } from '@byline/admin/auth';
11
+ import { AdminAuth, AuthError, AuthErrorCodes } from '@byline/auth';
12
+ import { eq, inArray } from 'drizzle-orm';
13
+ import { adminUsers } from '../../../database/schema/auth.js';
14
+ import { setupTestDB, teardownTestDB } from '../../../lib/test-helper.js';
15
+ import { createAdminStore } from '../admin-store.js';
16
+ // ---------------------------------------------------------------------------
17
+ // Track-and-clean fixtures
18
+ // ---------------------------------------------------------------------------
19
+ //
20
+ // Integration tests share the dev database. Instead of a blanket wipe
21
+ // (which would destroy the developer's signed-in super-admin), we track
22
+ // each admin-user row a test creates and delete only those ids on
23
+ // teardown. `adminRefreshTokens` cascades from `adminUsers`, so the
24
+ // token rows are cleaned up automatically. No roles are created in this
25
+ // suite — it only exercises the session provider.
26
+ let db;
27
+ let store;
28
+ const trackedUserIds = new Set();
29
+ const SIGNING_SECRET = 'test-signing-secret-at-least-32-bytes-long-here';
30
+ function makeProvider(options) {
31
+ return new JwtSessionProvider({
32
+ store,
33
+ signingSecret: SIGNING_SECRET,
34
+ accessTokenTtlSeconds: options?.accessTokenTtlSeconds,
35
+ refreshTokenTtlSeconds: options?.refreshTokenTtlSeconds,
36
+ now: options?.now,
37
+ });
38
+ }
39
+ async function createEnabledUser(email, password) {
40
+ // Clear any stale row left by a crashed prior run.
41
+ await db.delete(adminUsers).where(eq(adminUsers.email, email.toLowerCase()));
42
+ const row = await store.adminUsers.create({
43
+ email,
44
+ password_hash: await hashPassword(password),
45
+ is_enabled: true,
46
+ });
47
+ trackedUserIds.add(row.id);
48
+ return row;
49
+ }
50
+ async function createDisabledUser(email, password) {
51
+ await db.delete(adminUsers).where(eq(adminUsers.email, email.toLowerCase()));
52
+ const row = await store.adminUsers.create({
53
+ email,
54
+ password_hash: await hashPassword(password),
55
+ is_enabled: false,
56
+ });
57
+ trackedUserIds.add(row.id);
58
+ return row;
59
+ }
60
+ async function cleanupTrackedRows() {
61
+ if (trackedUserIds.size > 0) {
62
+ await db.delete(adminUsers).where(inArray(adminUsers.id, [...trackedUserIds]));
63
+ }
64
+ trackedUserIds.clear();
65
+ }
66
+ // ---------------------------------------------------------------------------
67
+ describe('JwtSessionProvider', () => {
68
+ before(() => {
69
+ const testDB = setupTestDB([]);
70
+ db = testDB.db;
71
+ store = createAdminStore(db);
72
+ });
73
+ afterEach(async () => {
74
+ await cleanupTrackedRows();
75
+ });
76
+ after(async () => {
77
+ await cleanupTrackedRows();
78
+ await teardownTestDB();
79
+ });
80
+ describe('construction', () => {
81
+ it('rejects a short signing secret', () => {
82
+ assert.throws(() => new JwtSessionProvider({ store, signingSecret: 'too-short' }), /at least 32 bytes/);
83
+ });
84
+ it('declares capabilities', () => {
85
+ const provider = makeProvider();
86
+ assert.deepStrictEqual(provider.capabilities, {
87
+ passwordChange: true,
88
+ magicLink: false,
89
+ sso: false,
90
+ });
91
+ });
92
+ });
93
+ describe('signInWithPassword', () => {
94
+ it('succeeds with correct credentials and enabled account', async () => {
95
+ await createEnabledUser('alice@example.com', 'pw-alice');
96
+ const provider = makeProvider();
97
+ const result = await provider.signInWithPassword({
98
+ email: 'alice@example.com',
99
+ password: 'pw-alice',
100
+ ip: '10.0.0.1',
101
+ userAgent: 'test',
102
+ });
103
+ assert.ok(result.accessToken);
104
+ assert.ok(result.refreshToken);
105
+ assert.ok(result.actor instanceof AdminAuth);
106
+ assert.strictEqual(result.actor.isSuperAdmin, false);
107
+ assert.ok(result.accessTokenExpiresAt.getTime() > Date.now());
108
+ assert.ok(result.refreshTokenExpiresAt.getTime() > Date.now());
109
+ });
110
+ it('throws ERR_INVALID_CREDENTIALS on unknown email', async () => {
111
+ const provider = makeProvider();
112
+ try {
113
+ await provider.signInWithPassword({
114
+ email: 'nobody@example.com',
115
+ password: 'whatever',
116
+ });
117
+ assert.fail('expected ERR_INVALID_CREDENTIALS');
118
+ }
119
+ catch (err) {
120
+ assert.ok(err instanceof AuthError);
121
+ assert.strictEqual(err.code, AuthErrorCodes.INVALID_CREDENTIALS);
122
+ }
123
+ // Note: signInWithPassword runs a timing-equaliser argon2 verify on
124
+ // the unknown-email path so the wrong-email and wrong-password
125
+ // codepaths take comparable time. We don't assert on timing here —
126
+ // it's too machine-dependent to be a stable test — but behaviour is.
127
+ });
128
+ it('throws ERR_INVALID_CREDENTIALS on wrong password and increments failed_login_attempts', async () => {
129
+ const user = await createEnabledUser('bob@example.com', 'correct');
130
+ const provider = makeProvider();
131
+ try {
132
+ await provider.signInWithPassword({ email: 'bob@example.com', password: 'wrong' });
133
+ assert.fail('expected ERR_INVALID_CREDENTIALS');
134
+ }
135
+ catch (err) {
136
+ assert.strictEqual(err.code, AuthErrorCodes.INVALID_CREDENTIALS);
137
+ }
138
+ const row = await store.adminUsers.getById(user.id);
139
+ assert.strictEqual(row?.failed_login_attempts, 1);
140
+ });
141
+ it('throws ERR_ACCOUNT_DISABLED for a correct-password but disabled account', async () => {
142
+ await createDisabledUser('disabled@example.com', 'pw');
143
+ const provider = makeProvider();
144
+ try {
145
+ await provider.signInWithPassword({ email: 'disabled@example.com', password: 'pw' });
146
+ assert.fail('expected ERR_ACCOUNT_DISABLED');
147
+ }
148
+ catch (err) {
149
+ assert.strictEqual(err.code, AuthErrorCodes.ACCOUNT_DISABLED);
150
+ }
151
+ });
152
+ it('persists a refresh-token row with the recorded ip and user agent', async () => {
153
+ const user = await createEnabledUser('c@example.com', 'pw');
154
+ const provider = makeProvider();
155
+ await provider.signInWithPassword({
156
+ email: 'c@example.com',
157
+ password: 'pw',
158
+ ip: '192.168.1.5',
159
+ userAgent: 'Mozilla/test',
160
+ });
161
+ const rows = await store.refreshTokens.listAllForUser(user.id);
162
+ assert.strictEqual(rows.length, 1);
163
+ assert.strictEqual(rows[0]?.ip, '192.168.1.5');
164
+ assert.strictEqual(rows[0]?.user_agent, 'Mozilla/test');
165
+ assert.strictEqual(rows[0]?.revoked_at, null);
166
+ });
167
+ });
168
+ describe('verifyAccessToken', () => {
169
+ it('verifies a freshly-issued access token and returns the actor', async () => {
170
+ const user = await createEnabledUser('d@example.com', 'pw');
171
+ const provider = makeProvider();
172
+ const { accessToken } = await provider.signInWithPassword({
173
+ email: 'd@example.com',
174
+ password: 'pw',
175
+ });
176
+ const { actor } = await provider.verifyAccessToken(accessToken);
177
+ assert.strictEqual(actor.id, user.id);
178
+ });
179
+ it('throws ERR_INVALID_TOKEN for gibberish', async () => {
180
+ const provider = makeProvider();
181
+ try {
182
+ await provider.verifyAccessToken('not-a-jwt');
183
+ assert.fail('expected ERR_INVALID_TOKEN');
184
+ }
185
+ catch (err) {
186
+ assert.strictEqual(err.code, AuthErrorCodes.INVALID_TOKEN);
187
+ }
188
+ });
189
+ it('throws ERR_INVALID_TOKEN for an expired token', async () => {
190
+ await createEnabledUser('e@example.com', 'pw');
191
+ // Mint with a long-past `now`, making the token already expired.
192
+ const pastClock = () => new Date(Date.now() - 60 * 60 * 1000);
193
+ const pastProvider = makeProvider({ now: pastClock, accessTokenTtlSeconds: 60 });
194
+ const { accessToken } = await pastProvider.signInWithPassword({
195
+ email: 'e@example.com',
196
+ password: 'pw',
197
+ });
198
+ const freshProvider = makeProvider();
199
+ try {
200
+ await freshProvider.verifyAccessToken(accessToken);
201
+ assert.fail('expected ERR_INVALID_TOKEN');
202
+ }
203
+ catch (err) {
204
+ assert.strictEqual(err.code, AuthErrorCodes.INVALID_TOKEN);
205
+ }
206
+ });
207
+ it('throws ERR_ACCOUNT_DISABLED when the subject has been disabled since issuance', async () => {
208
+ const user = await createEnabledUser('f@example.com', 'pw');
209
+ const provider = makeProvider();
210
+ const { accessToken } = await provider.signInWithPassword({
211
+ email: 'f@example.com',
212
+ password: 'pw',
213
+ });
214
+ await store.adminUsers.setEnabled(user.id, false);
215
+ try {
216
+ await provider.verifyAccessToken(accessToken);
217
+ assert.fail('expected ERR_ACCOUNT_DISABLED');
218
+ }
219
+ catch (err) {
220
+ assert.strictEqual(err.code, AuthErrorCodes.ACCOUNT_DISABLED);
221
+ }
222
+ });
223
+ it('throws ERR_INVALID_TOKEN when the signature is tampered', async () => {
224
+ await createEnabledUser('g@example.com', 'pw');
225
+ const provider = makeProvider();
226
+ const { accessToken } = await provider.signInWithPassword({
227
+ email: 'g@example.com',
228
+ password: 'pw',
229
+ });
230
+ const parts = accessToken.split('.');
231
+ // Flip the last char of the signature
232
+ const last = parts[2] ?? '';
233
+ const flipped = `${last.slice(0, -1)}${last.at(-1) === 'a' ? 'b' : 'a'}`;
234
+ parts[2] = flipped;
235
+ const tampered = parts.join('.');
236
+ try {
237
+ await provider.verifyAccessToken(tampered);
238
+ assert.fail('expected ERR_INVALID_TOKEN');
239
+ }
240
+ catch (err) {
241
+ assert.strictEqual(err.code, AuthErrorCodes.INVALID_TOKEN);
242
+ }
243
+ });
244
+ });
245
+ describe('refreshSession', () => {
246
+ it('rotates the refresh token and issues a fresh access token', async () => {
247
+ const user = await createEnabledUser('h@example.com', 'pw');
248
+ const provider = makeProvider();
249
+ const signIn = await provider.signInWithPassword({
250
+ email: 'h@example.com',
251
+ password: 'pw',
252
+ });
253
+ const refreshed = await provider.refreshSession({ refreshToken: signIn.refreshToken });
254
+ assert.notStrictEqual(refreshed.refreshToken, signIn.refreshToken);
255
+ assert.notStrictEqual(refreshed.accessToken, signIn.accessToken);
256
+ // Old token is now revoked and points at the new one
257
+ const rows = await store.refreshTokens.listAllForUser(user.id);
258
+ assert.strictEqual(rows.length, 2);
259
+ const [oldRow, newRow] = rows;
260
+ assert.ok(oldRow?.revoked_at);
261
+ assert.strictEqual(oldRow?.rotated_to_id, newRow?.id);
262
+ assert.strictEqual(newRow?.revoked_at, null);
263
+ // The new token verifies
264
+ const { actor } = await provider.verifyAccessToken(refreshed.accessToken);
265
+ assert.strictEqual(actor.id, user.id);
266
+ });
267
+ it('throws ERR_INVALID_TOKEN for an unknown refresh token', async () => {
268
+ const provider = makeProvider();
269
+ try {
270
+ await provider.refreshSession({ refreshToken: 'totally-bogus' });
271
+ assert.fail('expected ERR_INVALID_TOKEN');
272
+ }
273
+ catch (err) {
274
+ assert.strictEqual(err.code, AuthErrorCodes.INVALID_TOKEN);
275
+ }
276
+ });
277
+ it('throws ERR_INVALID_TOKEN for an expired refresh token', async () => {
278
+ await createEnabledUser('i@example.com', 'pw');
279
+ const pastClock = () => new Date(Date.now() - 24 * 60 * 60 * 1000);
280
+ const pastProvider = makeProvider({ now: pastClock, refreshTokenTtlSeconds: 60 });
281
+ const { refreshToken } = await pastProvider.signInWithPassword({
282
+ email: 'i@example.com',
283
+ password: 'pw',
284
+ });
285
+ const freshProvider = makeProvider();
286
+ try {
287
+ await freshProvider.refreshSession({ refreshToken });
288
+ assert.fail('expected ERR_INVALID_TOKEN');
289
+ }
290
+ catch (err) {
291
+ assert.strictEqual(err.code, AuthErrorCodes.INVALID_TOKEN);
292
+ }
293
+ });
294
+ it('throws ERR_REVOKED_TOKEN when replaying a rotated token — and revokes the chain', async () => {
295
+ const user = await createEnabledUser('j@example.com', 'pw');
296
+ const provider = makeProvider();
297
+ const signIn = await provider.signInWithPassword({
298
+ email: 'j@example.com',
299
+ password: 'pw',
300
+ });
301
+ // Legitimate rotation: sign-in → refresh-1 → refresh-2
302
+ const r1 = await provider.refreshSession({ refreshToken: signIn.refreshToken });
303
+ const r2 = await provider.refreshSession({ refreshToken: r1.refreshToken });
304
+ assert.ok(r2.refreshToken);
305
+ // An attacker replays the original (already-rotated) refreshToken.
306
+ try {
307
+ await provider.refreshSession({ refreshToken: signIn.refreshToken });
308
+ assert.fail('expected ERR_REVOKED_TOKEN');
309
+ }
310
+ catch (err) {
311
+ assert.strictEqual(err.code, AuthErrorCodes.REVOKED_TOKEN);
312
+ }
313
+ // The entire chain descended from the replayed token is now revoked.
314
+ const rows = await store.refreshTokens.listAllForUser(user.id);
315
+ for (const row of rows) {
316
+ assert.ok(row.revoked_at, `row ${row.id} expected revoked, got null`);
317
+ }
318
+ });
319
+ it('throws ERR_REVOKED_TOKEN for an explicitly revoked token', async () => {
320
+ await createEnabledUser('k@example.com', 'pw');
321
+ const provider = makeProvider();
322
+ const signIn = await provider.signInWithPassword({
323
+ email: 'k@example.com',
324
+ password: 'pw',
325
+ });
326
+ await provider.revokeSession(signIn.refreshToken);
327
+ try {
328
+ await provider.refreshSession({ refreshToken: signIn.refreshToken });
329
+ assert.fail('expected ERR_REVOKED_TOKEN');
330
+ }
331
+ catch (err) {
332
+ assert.strictEqual(err.code, AuthErrorCodes.REVOKED_TOKEN);
333
+ }
334
+ });
335
+ });
336
+ describe('revokeSession', () => {
337
+ it('marks the row revoked and is idempotent', async () => {
338
+ const user = await createEnabledUser('l@example.com', 'pw');
339
+ const provider = makeProvider();
340
+ const signIn = await provider.signInWithPassword({
341
+ email: 'l@example.com',
342
+ password: 'pw',
343
+ });
344
+ await provider.revokeSession(signIn.refreshToken);
345
+ await provider.revokeSession(signIn.refreshToken); // idempotent
346
+ const rows = await store.refreshTokens.listAllForUser(user.id);
347
+ assert.strictEqual(rows.length, 1);
348
+ assert.ok(rows[0]?.revoked_at);
349
+ });
350
+ it('is a no-op for unknown tokens', async () => {
351
+ const provider = makeProvider();
352
+ await provider.revokeSession('no-such-token'); // does not throw
353
+ });
354
+ });
355
+ describe('resolveActor', () => {
356
+ it('delegates to the underlying admin identity graph', async () => {
357
+ const user = await createEnabledUser('m@example.com', 'pw');
358
+ const provider = makeProvider();
359
+ const actor = await provider.resolveActor(user.id);
360
+ assert.ok(actor instanceof AdminAuth);
361
+ assert.strictEqual(actor.id, user.id);
362
+ });
363
+ it('returns null for a disabled user', async () => {
364
+ const user = await createDisabledUser('n@example.com', 'pw');
365
+ const provider = makeProvider();
366
+ assert.strictEqual(await provider.resolveActor(user.id), null);
367
+ });
368
+ });
369
+ });
370
+ //# sourceMappingURL=session-provider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-provider.test.js","sourceRoot":"","sources":["../../../../src/modules/admin/tests/session-provider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import type { FileStoreVariant } from '@byline/core';
9
+ interface BaseFlattenedFieldData {
10
+ locale: string;
11
+ field_path: string[];
12
+ }
13
+ interface FlattenedTextFieldValue extends BaseFlattenedFieldData {
14
+ field_type: 'text';
15
+ value: string;
16
+ }
17
+ interface FlattenedNumericFieldValue extends BaseFlattenedFieldData {
18
+ field_type: 'numeric';
19
+ number_type: 'integer' | 'float' | 'decimal';
20
+ value_float?: number;
21
+ value_integer?: number;
22
+ value_decimal?: string;
23
+ }
24
+ interface FlattenedBooleanFieldValue extends BaseFlattenedFieldData {
25
+ field_type: 'boolean';
26
+ value: boolean;
27
+ }
28
+ interface FlattenedDateTimeFieldValue extends BaseFlattenedFieldData {
29
+ field_type: 'datetime';
30
+ date_type: 'datetime' | 'date' | 'time';
31
+ value_time?: string;
32
+ value_date?: Date;
33
+ value_timestamp_tz?: Date;
34
+ }
35
+ interface FlattenedFileFieldValue extends BaseFlattenedFieldData {
36
+ field_type: 'file';
37
+ file_id: string;
38
+ filename: string;
39
+ original_filename: string;
40
+ mime_type: string;
41
+ file_size: number;
42
+ storage_provider: string;
43
+ storage_path: string;
44
+ storage_url?: string;
45
+ file_hash?: string;
46
+ image_width?: number;
47
+ image_height?: number;
48
+ image_format?: string;
49
+ processing_status?: string;
50
+ thumbnail_generated?: boolean;
51
+ variants?: FileStoreVariant[];
52
+ }
53
+ interface FlattenedRelationFieldValue extends BaseFlattenedFieldData {
54
+ field_type: 'relation';
55
+ target_document_id: string;
56
+ target_collection_id: string;
57
+ relationship_type?: string;
58
+ cascade_delete?: boolean;
59
+ }
60
+ interface FlattenedJsonFieldValue extends BaseFlattenedFieldData {
61
+ field_type: 'json';
62
+ value: unknown;
63
+ }
64
+ interface FlattenedMetaFieldValue extends BaseFlattenedFieldData {
65
+ field_type: 'meta';
66
+ type: 'array_item' | 'group';
67
+ item_id: string;
68
+ meta?: unknown;
69
+ }
70
+ export type FlattenedFieldValue = FlattenedTextFieldValue | FlattenedNumericFieldValue | FlattenedBooleanFieldValue | FlattenedDateTimeFieldValue | FlattenedFileFieldValue | FlattenedRelationFieldValue | FlattenedJsonFieldValue | FlattenedMetaFieldValue;
71
+ export interface UnifiedFieldValue {
72
+ id: string;
73
+ document_version_id: string;
74
+ collection_id: string;
75
+ field_type: string;
76
+ field_path: string;
77
+ field_name: string;
78
+ locale: string;
79
+ parent_path: string | null;
80
+ text_value: string | null;
81
+ boolean_value: boolean | null;
82
+ json_value: any | null;
83
+ date_type: string | null;
84
+ value_date: Date | null;
85
+ value_time: string | null;
86
+ value_timestamp_tz: Date | null;
87
+ file_id: string | null;
88
+ filename: string | null;
89
+ original_filename: string | null;
90
+ mime_type: string | null;
91
+ file_size: number | null;
92
+ storage_provider: string | null;
93
+ storage_path: string | null;
94
+ storage_url: string | null;
95
+ file_hash: string | null;
96
+ image_width: number | null;
97
+ image_height: number | null;
98
+ image_format: string | null;
99
+ processing_status: string | null;
100
+ thumbnail_generated: boolean | null;
101
+ variants: FileStoreVariant[] | null;
102
+ target_document_id: string | null;
103
+ target_collection_id: string | null;
104
+ relationship_type: string | null;
105
+ cascade_delete: boolean | null;
106
+ json_schema: string | null;
107
+ object_keys: string[] | null;
108
+ number_type: string | null;
109
+ value_integer: number | null;
110
+ value_decimal: string | null;
111
+ value_float: number | null;
112
+ meta_type: string | null;
113
+ meta_item_id: string | null;
114
+ }
115
+ export {};
116
+ //# sourceMappingURL=@types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@types.d.ts","sourceRoot":"","sources":["../../../src/modules/storage/@types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=@types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@types.js","sourceRoot":"","sources":["../../../src/modules/storage/@types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}