@shipfox/api-auth 10.1.0 → 11.0.0

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 (84) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +30 -0
  3. package/README.md +42 -11
  4. package/dist/core/administration.d.ts +17 -1
  5. package/dist/core/administration.d.ts.map +1 -1
  6. package/dist/core/administration.js +107 -14
  7. package/dist/core/administration.js.map +1 -1
  8. package/dist/core/auth.d.ts.map +1 -1
  9. package/dist/core/auth.js +27 -10
  10. package/dist/core/auth.js.map +1 -1
  11. package/dist/core/jwt.d.ts +10 -0
  12. package/dist/core/jwt.d.ts.map +1 -1
  13. package/dist/core/jwt.js +3 -2
  14. package/dist/core/jwt.js.map +1 -1
  15. package/dist/db/admin-command.d.ts +18 -0
  16. package/dist/db/admin-command.d.ts.map +1 -0
  17. package/dist/db/admin-command.js +37 -0
  18. package/dist/db/admin-command.js.map +1 -0
  19. package/dist/db/admin-grants.d.ts +1 -1
  20. package/dist/db/admin-grants.d.ts.map +1 -1
  21. package/dist/db/admin-grants.js +12 -30
  22. package/dist/db/admin-grants.js.map +1 -1
  23. package/dist/db/admin-user-moderation.d.ts +29 -0
  24. package/dist/db/admin-user-moderation.d.ts.map +1 -0
  25. package/dist/db/admin-user-moderation.js +156 -0
  26. package/dist/db/admin-user-moderation.js.map +1 -0
  27. package/dist/db/admin-user-summary.d.ts +14 -0
  28. package/dist/db/admin-user-summary.d.ts.map +1 -0
  29. package/dist/db/admin-user-summary.js +31 -0
  30. package/dist/db/admin-user-summary.js.map +1 -0
  31. package/dist/db/admin-users.d.ts +2 -11
  32. package/dist/db/admin-users.d.ts.map +1 -1
  33. package/dist/db/admin-users.js +2 -27
  34. package/dist/db/admin-users.js.map +1 -1
  35. package/dist/db/refresh-tokens.d.ts +6 -4
  36. package/dist/db/refresh-tokens.d.ts.map +1 -1
  37. package/dist/db/refresh-tokens.js +31 -6
  38. package/dist/db/refresh-tokens.js.map +1 -1
  39. package/dist/db/schema/admin-command-results.d.ts +19 -2
  40. package/dist/db/schema/admin-command-results.d.ts.map +1 -1
  41. package/dist/db/schema/admin-command-results.js.map +1 -1
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +1 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/presentation/auth/bearer-token-auth.d.ts +1 -0
  47. package/dist/presentation/auth/bearer-token-auth.d.ts.map +1 -1
  48. package/dist/presentation/auth/bearer-token-auth.js +4 -3
  49. package/dist/presentation/auth/bearer-token-auth.js.map +1 -1
  50. package/dist/presentation/auth/jwt-auth.d.ts +1 -4
  51. package/dist/presentation/auth/jwt-auth.d.ts.map +1 -1
  52. package/dist/presentation/auth/jwt-auth.js +23 -19
  53. package/dist/presentation/auth/jwt-auth.js.map +1 -1
  54. package/dist/presentation/routes/administration.d.ts.map +1 -1
  55. package/dist/presentation/routes/administration.js +94 -3
  56. package/dist/presentation/routes/administration.js.map +1 -1
  57. package/dist/tsconfig.test.tsbuildinfo +1 -1
  58. package/package.json +4 -4
  59. package/src/core/administration.ts +137 -15
  60. package/src/core/auth.test.ts +29 -10
  61. package/src/core/auth.ts +36 -14
  62. package/src/core/jwt.test.ts +20 -4
  63. package/src/core/jwt.ts +2 -1
  64. package/src/db/admin-command.ts +85 -0
  65. package/src/db/admin-grants.ts +19 -57
  66. package/src/db/admin-user-moderation.ts +230 -0
  67. package/src/db/admin-user-summary.ts +51 -0
  68. package/src/db/admin-users.ts +4 -49
  69. package/src/db/refresh-tokens.test.ts +0 -19
  70. package/src/db/refresh-tokens.ts +54 -23
  71. package/src/db/schema/admin-command-results.ts +23 -2
  72. package/src/index.ts +3 -0
  73. package/src/presentation/auth/bearer-token-auth.test.ts +17 -0
  74. package/src/presentation/auth/bearer-token-auth.ts +9 -2
  75. package/src/presentation/auth/jwt-auth.test.ts +34 -9
  76. package/src/presentation/auth/jwt-auth.ts +19 -13
  77. package/src/presentation/routes/administration.test.ts +253 -2
  78. package/src/presentation/routes/administration.ts +88 -1
  79. package/src/presentation/routes/password/change-password.test.ts +6 -0
  80. package/src/presentation/routes/password/password-reset-confirm.test.ts +14 -0
  81. package/src/presentation/routes/registration/signup.test.ts +2 -2
  82. package/src/presentation/routes/session/logout.test.ts +6 -0
  83. package/src/presentation/routes/session/refresh.test.ts +11 -0
  84. package/tsconfig.build.tsbuildinfo +1 -1
@@ -165,7 +165,7 @@ describe('POST /auth/signup', () => {
165
165
  alreadyMember: false,
166
166
  }));
167
167
  listMembershipsByUserMock.mockResolvedValueOnce({
168
- memberships: [{workspaceId, role: 'admin' as const}],
168
+ memberships: [{workspaceId, role: 'admin' as const, workspaceStatus: 'active'}],
169
169
  });
170
170
  const res = await app.inject({
171
171
  method: 'POST',
@@ -190,7 +190,7 @@ describe('POST /auth/signup', () => {
190
190
  workspace_id: workspaceId,
191
191
  });
192
192
  expect(body.accept_error).toBeUndefined();
193
- expect(claims.memberships).toEqual([{workspaceId, role: 'admin'}]);
193
+ expect(claims.memberships).toEqual([{workspaceId, role: 'admin', workspaceStatus: 'active'}]);
194
194
  expect(capturedMail()).toHaveLength(0);
195
195
  });
196
196
 
@@ -36,10 +36,16 @@ describe('POST /auth/logout', () => {
36
36
  headers: {cookie: cookieHeader(account.refreshCookie)},
37
37
  payload: {},
38
38
  });
39
+ const access = await app.inject({
40
+ method: 'GET',
41
+ url: '/auth/me',
42
+ headers: {authorization: `Bearer ${account.token}`},
43
+ });
39
44
 
40
45
  expect(res.statusCode).toBe(204);
41
46
  expect(res.headers['set-cookie']).toContain('shipfox_refresh_token=;');
42
47
  expect(refresh.statusCode).toBe(401);
48
+ expect(access.statusCode).toBe(200);
43
49
  });
44
50
 
45
51
  test('returns 204 when the refresh cookie is missing', async () => {
@@ -85,5 +85,16 @@ describe('POST /auth/refresh', () => {
85
85
 
86
86
  expect(res.statusCode).toBe(503);
87
87
  expect(res.json().code).toBe('auth-dependency-unavailable');
88
+ expect(res.headers['set-cookie']).toBeUndefined();
89
+
90
+ const retry = await app.inject({
91
+ method: 'POST',
92
+ url: '/auth/refresh',
93
+ headers: {cookie: cookieHeader(account.refreshCookie)},
94
+ });
95
+
96
+ expect(retry.statusCode).toBe(200);
97
+ expect(retry.json().token).toBeDefined();
98
+ expect(retry.headers['set-cookie']).toContain('shipfox_refresh_token=');
88
99
  });
89
100
  });