@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.
- package/CHANGELOG.md +37 -0
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +11 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/src/authentication/DbSessionStore.d.ts +3 -2
- package/dist/src/authentication/DbSessionStore.d.ts.map +1 -1
- package/dist/src/authentication/DbSessionStore.js +3 -2
- package/dist/src/authentication/DbSessionStore.js.map +1 -1
- package/dist/src/authentication/PasswordHasher.d.ts +45 -0
- package/dist/src/authentication/PasswordHasher.d.ts.map +1 -0
- package/dist/src/authentication/PasswordHasher.js +152 -0
- package/dist/src/authentication/PasswordHasher.js.map +1 -0
- package/dist/src/authentication/UserStatusTableWatcher.d.ts +19 -0
- package/dist/src/authentication/UserStatusTableWatcher.d.ts.map +1 -0
- package/dist/src/authentication/UserStatusTableWatcher.js +115 -0
- package/dist/src/authentication/UserStatusTableWatcher.js.map +1 -0
- package/dist/src/authentication/authenticate.d.ts.map +1 -1
- package/dist/src/authentication/authenticate.js +41 -13
- package/dist/src/authentication/authenticate.js.map +1 -1
- package/dist/src/authentication/establishSession.d.ts +30 -0
- package/dist/src/authentication/establishSession.d.ts.map +1 -0
- package/dist/src/authentication/establishSession.js +83 -0
- package/dist/src/authentication/establishSession.js.map +1 -0
- package/dist/src/authorization/userCache.d.ts.map +1 -1
- package/dist/src/authorization/userCache.js +10 -1
- package/dist/src/authorization/userCache.js.map +1 -1
- package/dist/src/emails/AccountDeletionEmailConfigs.d.ts +35 -0
- package/dist/src/emails/AccountDeletionEmailConfigs.d.ts.map +1 -0
- package/dist/src/emails/AccountDeletionEmailConfigs.js +36 -0
- package/dist/src/emails/AccountDeletionEmailConfigs.js.map +1 -0
- package/dist/src/emails/AccountDeletionEmails.d.ts +13 -0
- package/dist/src/emails/AccountDeletionEmails.d.ts.map +1 -0
- package/dist/src/emails/AccountDeletionEmails.js +98 -0
- package/dist/src/emails/AccountDeletionEmails.js.map +1 -0
- package/dist/src/routes/devLogin.d.ts.map +1 -1
- package/dist/src/routes/devLogin.js +6 -12
- package/dist/src/routes/devLogin.js.map +1 -1
- package/dist/src/routes/executePasswordReset.js +5 -3
- package/dist/src/routes/executePasswordReset.js.map +1 -1
- package/dist/src/routes/login.d.ts.map +1 -1
- package/dist/src/routes/login.js +27 -4
- package/dist/src/routes/login.js.map +1 -1
- package/dist/src/routes/logout.d.ts +10 -0
- package/dist/src/routes/logout.d.ts.map +1 -1
- package/dist/src/routes/logout.js +13 -32
- package/dist/src/routes/logout.js.map +1 -1
- package/dist/src/routes/signup.d.ts +19 -0
- package/dist/src/routes/signup.d.ts.map +1 -0
- package/dist/src/routes/signup.js +102 -0
- package/dist/src/routes/signup.js.map +1 -0
- package/dist/src/routes/validateResetPasswordToken.d.ts.map +1 -1
- package/dist/src/routes/validateResetPasswordToken.js +5 -1
- package/dist/src/routes/validateResetPasswordToken.js.map +1 -1
- package/dist/src/services/AccountDeletion.d.ts +52 -0
- package/dist/src/services/AccountDeletion.d.ts.map +1 -0
- package/dist/src/services/AccountDeletion.js +426 -0
- package/dist/src/services/AccountDeletion.js.map +1 -0
- package/dist/src/services/MachineCredentials.d.ts +21 -0
- package/dist/src/services/MachineCredentials.d.ts.map +1 -0
- package/dist/src/services/MachineCredentials.js +164 -0
- package/dist/src/services/MachineCredentials.js.map +1 -0
- package/dist/src/services/Roles.d.ts.map +1 -1
- package/dist/src/services/Roles.js +7 -0
- package/dist/src/services/Roles.js.map +1 -1
- package/dist/src/services/SetUserStatus.d.ts +18 -0
- package/dist/src/services/SetUserStatus.d.ts.map +1 -0
- package/dist/src/services/SetUserStatus.js +118 -0
- package/dist/src/services/SetUserStatus.js.map +1 -0
- package/dist/src/services/Signup.d.ts +20 -3
- package/dist/src/services/Signup.d.ts.map +1 -1
- package/dist/src/services/Signup.js +30 -19
- package/dist/src/services/Signup.js.map +1 -1
- package/dist/src/services/UpdateUserInfo.d.ts.map +1 -1
- package/dist/src/services/UpdateUserInfo.js +20 -17
- package/dist/src/services/UpdateUserInfo.js.map +1 -1
- package/dist/test/AccountDeletion.integration.test.d.ts +2 -0
- package/dist/test/AccountDeletion.integration.test.d.ts.map +1 -0
- package/dist/test/AccountDeletion.integration.test.js +718 -0
- package/dist/test/AccountDeletion.integration.test.js.map +1 -0
- package/dist/test/DevLogin.test.js +27 -31
- package/dist/test/DevLogin.test.js.map +1 -1
- package/dist/test/LogoutRoute.test.d.ts +2 -0
- package/dist/test/LogoutRoute.test.d.ts.map +1 -0
- package/dist/test/LogoutRoute.test.js +81 -0
- package/dist/test/LogoutRoute.test.js.map +1 -0
- package/dist/test/MachineAccounts.integration.test.d.ts +2 -0
- package/dist/test/MachineAccounts.integration.test.d.ts.map +1 -0
- package/dist/test/MachineAccounts.integration.test.js +597 -0
- package/dist/test/MachineAccounts.integration.test.js.map +1 -0
- package/dist/test/PasswordMigration.integration.test.d.ts +2 -0
- package/dist/test/PasswordMigration.integration.test.d.ts.map +1 -0
- package/dist/test/PasswordMigration.integration.test.js +332 -0
- package/dist/test/PasswordMigration.integration.test.js.map +1 -0
- package/dist/test/SetUserStatus.integration.test.d.ts +2 -0
- package/dist/test/SetUserStatus.integration.test.d.ts.map +1 -0
- package/dist/test/SetUserStatus.integration.test.js +266 -0
- package/dist/test/SetUserStatus.integration.test.js.map +1 -0
- package/dist/test/Signup.test.js +4 -2
- package/dist/test/Signup.test.js.map +1 -1
- package/dist/test/SignupRoute.test.d.ts +2 -0
- package/dist/test/SignupRoute.test.d.ts.map +1 -0
- package/dist/test/SignupRoute.test.js +338 -0
- package/dist/test/SignupRoute.test.js.map +1 -0
- package/dist/test/UserStatusGate.integration.test.d.ts +2 -0
- package/dist/test/UserStatusGate.integration.test.d.ts.map +1 -0
- package/dist/test/UserStatusGate.integration.test.js +162 -0
- package/dist/test/UserStatusGate.integration.test.js.map +1 -0
- package/dist/test/ValidateResetToken.test.d.ts +2 -0
- package/dist/test/ValidateResetToken.test.d.ts.map +1 -0
- package/dist/test/ValidateResetToken.test.js +170 -0
- package/dist/test/ValidateResetToken.test.js.map +1 -0
- package/dist/test/passportSessionHarness.d.ts +31 -0
- package/dist/test/passportSessionHarness.d.ts.map +1 -0
- package/dist/test/passportSessionHarness.js +107 -0
- package/dist/test/passportSessionHarness.js.map +1 -0
- package/generated/index.ts +11 -1
- package/index.ts +3 -0
- package/package.json +11 -7
- package/src/authentication/DbSessionStore.ts +3 -2
- package/src/authentication/PasswordHasher.ts +87 -0
- package/src/authentication/UserStatusTableWatcher.ts +56 -0
- package/src/authentication/authenticate.ts +31 -6
- package/src/authentication/establishSession.ts +33 -0
- package/src/authorization/userCache.ts +9 -1
- package/src/emails/AccountDeletionEmailConfigs.ts +79 -0
- package/src/emails/AccountDeletionEmails.ts +39 -0
- package/src/routes/devLogin.ts +4 -6
- package/src/routes/executePasswordReset.ts +2 -2
- package/src/routes/login.ts +25 -3
- package/src/routes/logout.ts +13 -18
- package/src/routes/signup.ts +55 -0
- package/src/routes/validateResetPasswordToken.ts +5 -1
- package/src/services/AccountDeletion.ts +291 -0
- package/src/services/MachineCredentials.ts +94 -0
- package/src/services/Roles.ts +10 -0
- package/src/services/SetUserStatus.ts +56 -0
- package/src/services/Signup.ts +25 -6
- package/src/services/UpdateUserInfo.ts +4 -5
- package/test/AccountDeletion.integration.test.ts +395 -0
- package/test/DevLogin.test.ts +16 -18
- package/test/LogoutRoute.test.ts +33 -0
- package/test/MachineAccounts.integration.test.ts +312 -0
- package/test/PasswordMigration.integration.test.ts +132 -0
- package/test/SetUserStatus.integration.test.ts +120 -0
- package/test/Signup.test.ts +4 -2
- package/test/SignupRoute.test.ts +219 -0
- package/test/UserStatusGate.integration.test.ts +68 -0
- package/test/ValidateResetToken.test.ts +86 -0
- 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
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
|
91
|
-
|
|
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 (
|
|
180
|
-
switch (
|
|
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, [
|
|
177
|
+
_a.apply(void 0, [_c.sent()]).toBeUndefined();
|
|
186
178
|
return [4 /*yield*/, invokeDevLogin({ email: 'agent3@test.local' })];
|
|
187
179
|
case 2:
|
|
188
|
-
outcome =
|
|
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 =
|
|
186
|
+
created = _c.sent();
|
|
195
187
|
expect(created).toBeDefined();
|
|
196
|
-
expect(created.password
|
|
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":"
|
|
1
|
+
{"version":3,"file":"DevLogin.test.js","sourceRoot":"","sources":["../../test/DevLogin.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"MachineAccounts.integration.test.d.ts","sourceRoot":"","sources":["../../test/MachineAccounts.integration.test.ts"],"names":[],"mappings":""}
|