@proteinjs/user-server 1.7.0 → 1.9.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 (153) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/generated/index.d.ts.map +1 -1
  3. package/dist/generated/index.js +11 -1
  4. package/dist/generated/index.js.map +1 -1
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +6 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/src/authentication/DbSessionStore.d.ts +3 -2
  10. package/dist/src/authentication/DbSessionStore.d.ts.map +1 -1
  11. package/dist/src/authentication/DbSessionStore.js +3 -2
  12. package/dist/src/authentication/DbSessionStore.js.map +1 -1
  13. package/dist/src/authentication/PasswordHasher.d.ts +45 -0
  14. package/dist/src/authentication/PasswordHasher.d.ts.map +1 -0
  15. package/dist/src/authentication/PasswordHasher.js +152 -0
  16. package/dist/src/authentication/PasswordHasher.js.map +1 -0
  17. package/dist/src/authentication/UserStatusTableWatcher.d.ts +19 -0
  18. package/dist/src/authentication/UserStatusTableWatcher.d.ts.map +1 -0
  19. package/dist/src/authentication/UserStatusTableWatcher.js +115 -0
  20. package/dist/src/authentication/UserStatusTableWatcher.js.map +1 -0
  21. package/dist/src/authentication/authenticate.d.ts.map +1 -1
  22. package/dist/src/authentication/authenticate.js +41 -13
  23. package/dist/src/authentication/authenticate.js.map +1 -1
  24. package/dist/src/authentication/establishSession.d.ts +30 -0
  25. package/dist/src/authentication/establishSession.d.ts.map +1 -0
  26. package/dist/src/authentication/establishSession.js +83 -0
  27. package/dist/src/authentication/establishSession.js.map +1 -0
  28. package/dist/src/authorization/userCache.d.ts.map +1 -1
  29. package/dist/src/authorization/userCache.js +10 -1
  30. package/dist/src/authorization/userCache.js.map +1 -1
  31. package/dist/src/emails/AccountDeletionEmailConfigs.d.ts +35 -0
  32. package/dist/src/emails/AccountDeletionEmailConfigs.d.ts.map +1 -0
  33. package/dist/src/emails/AccountDeletionEmailConfigs.js +36 -0
  34. package/dist/src/emails/AccountDeletionEmailConfigs.js.map +1 -0
  35. package/dist/src/emails/AccountDeletionEmails.d.ts +13 -0
  36. package/dist/src/emails/AccountDeletionEmails.d.ts.map +1 -0
  37. package/dist/src/emails/AccountDeletionEmails.js +98 -0
  38. package/dist/src/emails/AccountDeletionEmails.js.map +1 -0
  39. package/dist/src/routes/devLogin.d.ts.map +1 -1
  40. package/dist/src/routes/devLogin.js +6 -12
  41. package/dist/src/routes/devLogin.js.map +1 -1
  42. package/dist/src/routes/executePasswordReset.js +5 -3
  43. package/dist/src/routes/executePasswordReset.js.map +1 -1
  44. package/dist/src/routes/login.d.ts.map +1 -1
  45. package/dist/src/routes/login.js +27 -4
  46. package/dist/src/routes/login.js.map +1 -1
  47. package/dist/src/routes/logout.d.ts +10 -0
  48. package/dist/src/routes/logout.d.ts.map +1 -1
  49. package/dist/src/routes/logout.js +13 -32
  50. package/dist/src/routes/logout.js.map +1 -1
  51. package/dist/src/routes/signup.d.ts +19 -0
  52. package/dist/src/routes/signup.d.ts.map +1 -0
  53. package/dist/src/routes/signup.js +102 -0
  54. package/dist/src/routes/signup.js.map +1 -0
  55. package/dist/src/routes/validateResetPasswordToken.d.ts.map +1 -1
  56. package/dist/src/routes/validateResetPasswordToken.js +5 -1
  57. package/dist/src/routes/validateResetPasswordToken.js.map +1 -1
  58. package/dist/src/services/AccountDeletion.d.ts +52 -0
  59. package/dist/src/services/AccountDeletion.d.ts.map +1 -0
  60. package/dist/src/services/AccountDeletion.js +426 -0
  61. package/dist/src/services/AccountDeletion.js.map +1 -0
  62. package/dist/src/services/MachineCredentials.d.ts +21 -0
  63. package/dist/src/services/MachineCredentials.d.ts.map +1 -0
  64. package/dist/src/services/MachineCredentials.js +164 -0
  65. package/dist/src/services/MachineCredentials.js.map +1 -0
  66. package/dist/src/services/Roles.d.ts.map +1 -1
  67. package/dist/src/services/Roles.js +7 -0
  68. package/dist/src/services/Roles.js.map +1 -1
  69. package/dist/src/services/SetUserStatus.d.ts +18 -0
  70. package/dist/src/services/SetUserStatus.d.ts.map +1 -0
  71. package/dist/src/services/SetUserStatus.js +118 -0
  72. package/dist/src/services/SetUserStatus.js.map +1 -0
  73. package/dist/src/services/Signup.d.ts +20 -3
  74. package/dist/src/services/Signup.d.ts.map +1 -1
  75. package/dist/src/services/Signup.js +30 -19
  76. package/dist/src/services/Signup.js.map +1 -1
  77. package/dist/src/services/UpdateUserInfo.d.ts.map +1 -1
  78. package/dist/src/services/UpdateUserInfo.js +20 -17
  79. package/dist/src/services/UpdateUserInfo.js.map +1 -1
  80. package/dist/test/AccountDeletion.integration.test.d.ts +2 -0
  81. package/dist/test/AccountDeletion.integration.test.d.ts.map +1 -0
  82. package/dist/test/AccountDeletion.integration.test.js +718 -0
  83. package/dist/test/AccountDeletion.integration.test.js.map +1 -0
  84. package/dist/test/DevLogin.test.js +27 -31
  85. package/dist/test/DevLogin.test.js.map +1 -1
  86. package/dist/test/LogoutRoute.test.d.ts +2 -0
  87. package/dist/test/LogoutRoute.test.d.ts.map +1 -0
  88. package/dist/test/LogoutRoute.test.js +81 -0
  89. package/dist/test/LogoutRoute.test.js.map +1 -0
  90. package/dist/test/MachineAccounts.integration.test.d.ts +2 -0
  91. package/dist/test/MachineAccounts.integration.test.d.ts.map +1 -0
  92. package/dist/test/MachineAccounts.integration.test.js +597 -0
  93. package/dist/test/MachineAccounts.integration.test.js.map +1 -0
  94. package/dist/test/PasswordMigration.integration.test.d.ts +2 -0
  95. package/dist/test/PasswordMigration.integration.test.d.ts.map +1 -0
  96. package/dist/test/PasswordMigration.integration.test.js +332 -0
  97. package/dist/test/PasswordMigration.integration.test.js.map +1 -0
  98. package/dist/test/SetUserStatus.integration.test.d.ts +2 -0
  99. package/dist/test/SetUserStatus.integration.test.d.ts.map +1 -0
  100. package/dist/test/SetUserStatus.integration.test.js +266 -0
  101. package/dist/test/SetUserStatus.integration.test.js.map +1 -0
  102. package/dist/test/Signup.test.js +4 -2
  103. package/dist/test/Signup.test.js.map +1 -1
  104. package/dist/test/SignupRoute.test.d.ts +2 -0
  105. package/dist/test/SignupRoute.test.d.ts.map +1 -0
  106. package/dist/test/SignupRoute.test.js +338 -0
  107. package/dist/test/SignupRoute.test.js.map +1 -0
  108. package/dist/test/UserStatusGate.integration.test.d.ts +2 -0
  109. package/dist/test/UserStatusGate.integration.test.d.ts.map +1 -0
  110. package/dist/test/UserStatusGate.integration.test.js +162 -0
  111. package/dist/test/UserStatusGate.integration.test.js.map +1 -0
  112. package/dist/test/ValidateResetToken.test.d.ts +2 -0
  113. package/dist/test/ValidateResetToken.test.d.ts.map +1 -0
  114. package/dist/test/ValidateResetToken.test.js +170 -0
  115. package/dist/test/ValidateResetToken.test.js.map +1 -0
  116. package/dist/test/passportSessionHarness.d.ts +31 -0
  117. package/dist/test/passportSessionHarness.d.ts.map +1 -0
  118. package/dist/test/passportSessionHarness.js +107 -0
  119. package/dist/test/passportSessionHarness.js.map +1 -0
  120. package/generated/index.ts +11 -1
  121. package/index.ts +3 -0
  122. package/package.json +11 -7
  123. package/src/authentication/DbSessionStore.ts +3 -2
  124. package/src/authentication/PasswordHasher.ts +87 -0
  125. package/src/authentication/UserStatusTableWatcher.ts +56 -0
  126. package/src/authentication/authenticate.ts +31 -6
  127. package/src/authentication/establishSession.ts +33 -0
  128. package/src/authorization/userCache.ts +9 -1
  129. package/src/emails/AccountDeletionEmailConfigs.ts +79 -0
  130. package/src/emails/AccountDeletionEmails.ts +39 -0
  131. package/src/routes/devLogin.ts +4 -6
  132. package/src/routes/executePasswordReset.ts +2 -2
  133. package/src/routes/login.ts +25 -3
  134. package/src/routes/logout.ts +13 -18
  135. package/src/routes/signup.ts +55 -0
  136. package/src/routes/validateResetPasswordToken.ts +5 -1
  137. package/src/services/AccountDeletion.ts +291 -0
  138. package/src/services/MachineCredentials.ts +94 -0
  139. package/src/services/Roles.ts +10 -0
  140. package/src/services/SetUserStatus.ts +56 -0
  141. package/src/services/Signup.ts +25 -6
  142. package/src/services/UpdateUserInfo.ts +4 -5
  143. package/test/AccountDeletion.integration.test.ts +395 -0
  144. package/test/DevLogin.test.ts +16 -18
  145. package/test/LogoutRoute.test.ts +33 -0
  146. package/test/MachineAccounts.integration.test.ts +312 -0
  147. package/test/PasswordMigration.integration.test.ts +132 -0
  148. package/test/SetUserStatus.integration.test.ts +120 -0
  149. package/test/Signup.test.ts +4 -2
  150. package/test/SignupRoute.test.ts +219 -0
  151. package/test/UserStatusGate.integration.test.ts +68 -0
  152. package/test/ValidateResetToken.test.ts +86 -0
  153. package/test/passportSessionHarness.ts +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountDeletion.integration.test.js","sourceRoot":"","sources":["../../test/AccountDeletion.integration.test.ts"],"names":[],"mappings":"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"}
@@ -35,14 +35,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
36
  }
37
37
  };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
38
  Object.defineProperty(exports, "__esModule", { value: true });
42
- var sha256_1 = __importDefault(require("crypto-js/sha256"));
43
39
  var db_1 = require("@proteinjs/db");
44
40
  var user_1 = require("@proteinjs/user");
41
+ var PasswordHasher_1 = require("../src/authentication/PasswordHasher");
45
42
  var devLogin_1 = require("../src/routes/devLogin");
43
+ var passportSessionHarness_1 = require("./passportSessionHarness");
46
44
  var UserServerTestEnvironment_1 = require("./UserServerTestEnvironment");
47
45
  var testEnv = new UserServerTestEnvironment_1.UserServerTestEnvironment();
48
46
  /**
@@ -56,24 +54,14 @@ var testEnv = new UserServerTestEnvironment_1.UserServerTestEnvironment();
56
54
  */
57
55
  var ENV_EMAIL = 'dev@test.local';
58
56
  var invokeDevLogin = function (query) { return __awaiter(void 0, void 0, void 0, function () {
59
- var outcome, request, response;
60
- return __generator(this, function (_a) {
61
- switch (_a.label) {
62
- case 0:
63
- outcome = { sessionSaved: false };
64
- request = {
65
- query: query,
66
- login: function (email, done) {
67
- outcome.loggedInAs = email;
68
- done();
69
- },
70
- session: {
71
- save: function (done) {
72
- outcome.sessionSaved = true;
73
- done();
74
- },
75
- },
76
- };
57
+ var _a, request, events, outcome, response;
58
+ var _b;
59
+ return __generator(this, function (_c) {
60
+ switch (_c.label) {
61
+ case 0: return [4 /*yield*/, (0, passportSessionHarness_1.createPassportRequest)({ query: query })];
62
+ case 1:
63
+ _a = _c.sent(), request = _a.request, events = _a.events;
64
+ outcome = { sessionRegenerated: false, sessionSaved: false };
77
65
  response = {
78
66
  status: function (code) {
79
67
  outcome.status = code;
@@ -87,8 +75,11 @@ var invokeDevLogin = function (query) { return __awaiter(void 0, void 0, void 0,
87
75
  },
88
76
  };
89
77
  return [4 /*yield*/, devLogin_1.devLogin.onRequest(request, response)];
90
- case 1:
91
- _a.sent();
78
+ case 2:
79
+ _c.sent();
80
+ outcome.loggedInAs = (_b = request.session.passport) === null || _b === void 0 ? void 0 : _b.user;
81
+ outcome.sessionRegenerated = events.includes('regenerate');
82
+ outcome.sessionSaved = events.includes('save');
92
83
  return [2 /*return*/, outcome];
93
84
  }
94
85
  });
@@ -150,6 +141,7 @@ describe('devLogin route', function () {
150
141
  case 2:
151
142
  outcome = _a.sent();
152
143
  expect(outcome.loggedInAs).toBe(ENV_EMAIL);
144
+ expect(outcome.sessionRegenerated).toBe(true); // fresh id on privilege change (fixation)
153
145
  expect(outcome.sessionSaved).toBe(true);
154
146
  expect(outcome.redirect).toBe('/');
155
147
  expect(outcome.status).toBeUndefined();
@@ -175,25 +167,29 @@ describe('devLogin route', function () {
175
167
  });
176
168
  }); });
177
169
  it('?email for a nonexistent same-domain account creates it as a normal test user, then logs in', function () { return __awaiter(void 0, void 0, void 0, function () {
178
- var _a, outcome, created;
179
- return __generator(this, function (_b) {
180
- switch (_b.label) {
170
+ var _a, outcome, created, _b;
171
+ return __generator(this, function (_c) {
172
+ switch (_c.label) {
181
173
  case 0:
182
174
  _a = expect;
183
175
  return [4 /*yield*/, getUserRow('agent3@test.local')];
184
176
  case 1:
185
- _a.apply(void 0, [_b.sent()]).toBeUndefined();
177
+ _a.apply(void 0, [_c.sent()]).toBeUndefined();
186
178
  return [4 /*yield*/, invokeDevLogin({ email: 'agent3@test.local' })];
187
179
  case 2:
188
- outcome = _b.sent();
180
+ outcome = _c.sent();
189
181
  expect(outcome.loggedInAs).toBe('agent3@test.local');
190
182
  expect(outcome.sessionSaved).toBe(true);
191
183
  expect(outcome.redirect).toBe('/');
192
184
  return [4 /*yield*/, getUserRow('agent3@test.local')];
193
185
  case 3:
194
- created = _b.sent();
186
+ created = _c.sent();
195
187
  expect(created).toBeDefined();
196
- expect(created.password).toBe((0, sha256_1.default)('test').toString());
188
+ expect(created.password.startsWith('$argon2id$')).toBe(true);
189
+ _b = expect;
190
+ return [4 /*yield*/, new PasswordHasher_1.PasswordHasher().verify(created.password, 'test')];
191
+ case 4:
192
+ _b.apply(void 0, [_c.sent()]).toBe(true);
197
193
  expect(created.roles).toEqual([]);
198
194
  expect(created.name).toBeTruthy();
199
195
  return [2 /*return*/];
@@ -1 +1 @@
1
- {"version":3,"file":"DevLogin.test.js","sourceRoot":"","sources":["../../test/DevLogin.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DevLogin.test.js","sourceRoot":"","sources":["../../test/DevLogin.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=LogoutRoute.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutRoute.test.d.ts","sourceRoot":"","sources":["../../test/LogoutRoute.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var logout_1 = require("../src/routes/logout");
40
+ var passportSessionHarness_1 = require("./passportSessionHarness");
41
+ /**
42
+ * `GET /user/logout` — logout through passport's own `request.logout` (functional for
43
+ * store-backed sessions since passport 0.6, which added the callback form): clear the user and
44
+ * SAVE (a replayed old session id is logged out even before the id rotates), then REGENERATE
45
+ * the session id (fixation hygiene on the privilege change, mirroring login's rotation; the
46
+ * regenerate is what tears down the old session row through the store). Driven over the REAL
47
+ * passport machinery (passportSessionHarness); outcomes asserted: the surviving session carries
48
+ * no user, the id was rotated, the request's user is cleared, and the client lands on /login.
49
+ */
50
+ describe('logout route', function () {
51
+ it('clears the user, saves, regenerates the session id, and redirects to /login', function () { return __awaiter(void 0, void 0, void 0, function () {
52
+ var _a, request, events, redirect, response;
53
+ var _b;
54
+ return __generator(this, function (_c) {
55
+ switch (_c.label) {
56
+ case 0: return [4 /*yield*/, (0, passportSessionHarness_1.createPassportRequest)()];
57
+ case 1:
58
+ _a = _c.sent(), request = _a.request, events = _a.events;
59
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
60
+ return request.login('user@test.local', function (error) { return (error ? reject(error) : resolve()); });
61
+ })];
62
+ case 2:
63
+ _c.sent();
64
+ expect(request.session.passport.user).toBe('user@test.local'); // precondition: signed in
65
+ events.length = 0; // watch only the logout lifecycle
66
+ response = { redirect: function (path) { return (redirect = path); } };
67
+ return [4 /*yield*/, logout_1.logout.onRequest(request, response)];
68
+ case 3:
69
+ _c.sent();
70
+ // Save-then-regenerate: the old session id is deauthenticated even if its cookie is
71
+ // replayed, and the surviving session is a FRESH id with no user bound.
72
+ expect(events).toEqual(['save', 'regenerate']);
73
+ expect((_b = request.session.passport) === null || _b === void 0 ? void 0 : _b.user).toBeUndefined();
74
+ expect(request.user).toBeNull();
75
+ expect(redirect).toBe('/login');
76
+ return [2 /*return*/];
77
+ }
78
+ });
79
+ }); });
80
+ });
81
+ //# sourceMappingURL=LogoutRoute.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutRoute.test.js","sourceRoot":"","sources":["../../test/LogoutRoute.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAC9C,mEAAiE;AAEjE;;;;;;;;GAQG;AACH,QAAQ,CAAC,cAAc,EAAE;IACvB,EAAE,CAAC,6EAA6E,EAAE;;;;;wBACpD,qBAAM,IAAA,8CAAqB,GAAE,EAAA;;oBAAnD,KAAsB,SAA6B,EAAjD,OAAO,aAAA,EAAE,MAAM,YAAA;oBACvB,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM;4BACtC,OAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,UAAC,KAAc,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAnC,CAAmC,CAAC;wBAAzF,CAAyF,CAC1F,EAAA;;oBAFD,SAEC,CAAC;oBACF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,0BAA0B;oBACzF,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,kCAAkC;oBAG/C,QAAQ,GAAQ,EAAE,QAAQ,EAAE,UAAC,IAAY,IAAK,OAAA,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAjB,CAAiB,EAAE,CAAC;oBACxE,qBAAM,eAAM,CAAC,SAAS,CAAC,OAAgB,EAAE,QAAiB,CAAC,EAAA;;oBAA3D,SAA2D,CAAC;oBAE5D,oFAAoF;oBACpF,wEAAwE;oBACxE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;oBAC/C,MAAM,CAAC,MAAA,OAAO,CAAC,OAAO,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;oBACvD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;;;SACjC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MachineAccounts.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MachineAccounts.integration.test.d.ts","sourceRoot":"","sources":["../../test/MachineAccounts.integration.test.ts"],"names":[],"mappings":""}