@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,164 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.MachineCredentials = void 0;
49
+ var crypto_1 = require("crypto");
50
+ var db_1 = require("@proteinjs/db");
51
+ var user_1 = require("@proteinjs/user");
52
+ var logger_1 = require("@proteinjs/logger");
53
+ var PasswordHasher_1 = require("../authentication/PasswordHasher");
54
+ /**
55
+ * Credential minting for code-declared machine accounts — the ONLY manual step in a machine
56
+ * account's life (identity and grants come from the `MachineAccount` declaration at boot).
57
+ *
58
+ * Generates a strong random password (never human-chosen), stores its hash on the account row
59
+ * via PasswordHasher's machine mode — sha256, deliberately not the argon2id human KDF: a
60
+ * generated 256-bit secret gains nothing from key stretching, and the bridge logs in fresh per
61
+ * poll, so verifies stay cheap. (The plaintext is never persisted or logged.) Kills the
62
+ * account's existing sessions (the old
63
+ * credential dies with them), and returns the plaintext ONCE for pasting into the declaration's
64
+ * Secret Manager secret. The same call rotates. Machine rows only (`is_loaded_from_source`);
65
+ * human credentials go through the password-reset flow.
66
+ */
67
+ var MachineCredentials = /** @class */ (function () {
68
+ function MachineCredentials() {
69
+ this.serviceMetadata = {
70
+ auth: {
71
+ permission: user_1.USER_PERMISSIONS.users,
72
+ },
73
+ };
74
+ }
75
+ MachineCredentials.prototype.listMachineAccounts = function () {
76
+ return __awaiter(this, void 0, void 0, function () {
77
+ var db, views, _i, _a, declaration, row, booted;
78
+ return __generator(this, function (_b) {
79
+ switch (_b.label) {
80
+ case 0:
81
+ db = (0, db_1.getDbAsSystem)();
82
+ views = [];
83
+ _i = 0, _a = (0, user_1.getMachineAccounts)();
84
+ _b.label = 1;
85
+ case 1:
86
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
87
+ declaration = _a[_i];
88
+ return [4 /*yield*/, db.get(user_1.tables.User, { email: declaration.email })];
89
+ case 2:
90
+ row = _b.sent();
91
+ booted = !!row && row.isLoadedFromSource === true;
92
+ views.push({
93
+ email: declaration.email,
94
+ accountName: declaration.accountName,
95
+ roles: __spreadArray([], declaration.roles, true),
96
+ secretName: declaration.secretName,
97
+ status: booted ? (row.status === 'deactivated' ? 'deactivated' : 'active') : 'pending first boot',
98
+ hasCredential: booted && !!row.password,
99
+ });
100
+ _b.label = 3;
101
+ case 3:
102
+ _i++;
103
+ return [3 /*break*/, 1];
104
+ case 4: return [2 /*return*/, views];
105
+ }
106
+ });
107
+ });
108
+ };
109
+ MachineCredentials.prototype.mintCredential = function (email) {
110
+ return __awaiter(this, void 0, void 0, function () {
111
+ var logger, normalizedEmail, declaration, db, user, password, _a, _b, _c;
112
+ var _d;
113
+ return __generator(this, function (_e) {
114
+ switch (_e.label) {
115
+ case 0:
116
+ logger = new logger_1.Logger({ name: 'MachineCredentials.mintCredential' });
117
+ normalizedEmail = email === null || email === void 0 ? void 0 : email.toLowerCase();
118
+ declaration = (0, user_1.getMachineAccounts)().find(function (machineAccount) { return machineAccount.email === normalizedEmail; });
119
+ if (!declaration) {
120
+ throw new Error("No machine account is declared for '".concat(email, "'. Credentials can only be minted for ") +
121
+ "code-declared machine accounts (MachineAccount declarations).");
122
+ }
123
+ db = (0, db_1.getDbAsSystem)();
124
+ return [4 /*yield*/, db.get(user_1.tables.User, { email: normalizedEmail })];
125
+ case 1:
126
+ user = _e.sent();
127
+ if (!user || user.isLoadedFromSource !== true) {
128
+ throw new Error("The machine account row for '".concat(normalizedEmail, "' has not been loaded from source yet \u2014 ") +
129
+ "the boot sync creates (or adopts) it. Boot the server with the declaration, then mint.");
130
+ }
131
+ password = (0, crypto_1.randomBytes)(32).toString('hex');
132
+ _b = (_a = db).update;
133
+ _c = [user_1.tables.User];
134
+ _d = { id: user.id };
135
+ return [4 /*yield*/, new PasswordHasher_1.PasswordHasher().hash(password, 'machine')];
136
+ case 2: return [4 /*yield*/, _b.apply(_a, _c.concat([(_d.password = _e.sent(), _d)]))];
137
+ case 3:
138
+ _e.sent();
139
+ // Rotation kills the old credential's sessions immediately (the bridge logs in fresh per
140
+ // poll, so this is cheap for it — the mechanism is the categorical one).
141
+ return [4 /*yield*/, db.delete(user_1.tables.Session, { userEmail: normalizedEmail })];
142
+ case 4:
143
+ // Rotation kills the old credential's sessions immediately (the bridge logs in fresh per
144
+ // poll, so this is cheap for it — the mechanism is the categorical one).
145
+ _e.sent();
146
+ logger.info({
147
+ message: "Minted machine credential",
148
+ obj: { email: normalizedEmail, secretName: declaration.secretName },
149
+ });
150
+ return [2 /*return*/, {
151
+ email: normalizedEmail,
152
+ password: password,
153
+ secretName: declaration.secretName,
154
+ note: "Shown once. Paste this password into the '".concat(declaration.secretName, "' Secret Manager ") +
155
+ "secret, then restart the service that reads it \u2014 the previous credential is already invalid.",
156
+ }];
157
+ }
158
+ });
159
+ });
160
+ };
161
+ return MachineCredentials;
162
+ }());
163
+ exports.MachineCredentials = MachineCredentials;
164
+ //# sourceMappingURL=MachineCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MachineCredentials.js","sourceRoot":"","sources":["../../../src/services/MachineCredentials.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Roles.d.ts","sourceRoot":"","sources":["../../../src/services/Roles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAoD,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;;;GAKG;AACH,qBAAa,KAAM,YAAW,YAAY;IACjC,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAIhD;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAI/C,UAAU;CAkCzB"}
1
+ {"version":3,"file":"Roles.d.ts","sourceRoot":"","sources":["../../../src/services/Roles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAoD,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;;;GAKG;AACH,qBAAa,KAAM,YAAW,YAAY;IACjC,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAIhD;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAI/C,UAAU;CA4CzB"}
@@ -106,6 +106,13 @@ var Roles = /** @class */ (function () {
106
106
  if (!user) {
107
107
  throw new Error("No user found for id: ".concat(userId));
108
108
  }
109
+ // Machine grants live in the MachineAccount declaration and reconcile at boot — git history
110
+ // is their audit ledger, role_grant_event is the HUMAN ledger, and the two never interleave
111
+ // on one row. A runtime grant here would also just be reverted by the next boot.
112
+ if (user.isLoadedFromSource === true) {
113
+ throw new Error("'".concat(user.email, "' is a machine account: its roles are declared in code (its MachineAccount ") +
114
+ "declaration) and reverted to the declaration on every boot. Change the declaration instead.");
115
+ }
109
116
  roles = (_a = user.roles) !== null && _a !== void 0 ? _a : [];
110
117
  if (action === 'grant' ? roles.includes(role) : !roles.includes(role)) {
111
118
  // No change, no audit row: the trail records what happened, not what was re-asked.
@@ -1 +1 @@
1
- {"version":3,"file":"Roles.js","sourceRoot":"","sources":["../../../src/services/Roles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Roles.js","sourceRoot":"","sources":["../../../src/services/Roles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { SetUserStatusService, UserStatus } from '@proteinjs/user';
2
+ import { Service } from '@proteinjs/service';
3
+ /**
4
+ * The ONE write path for a user's account standing (the `user.status` column is
5
+ * service-protected — generic record writes cannot touch it). The status update and its
6
+ * `user_status_event` audit row (actor, target, status; `created` is the timestamp) commit in
7
+ * one transaction, so the trail cannot diverge from the standing.
8
+ *
9
+ * Admin-only by explicit scope: deactivation locks the target out of the product (login refused,
10
+ * live sessions stop resolving via userCache), so the door is the break-glass role, not a mapped
11
+ * permission. This method only flips standing — `deleteRequestedAt`/`purgeAfter` belong to the
12
+ * account-deletion flow.
13
+ */
14
+ export declare class SetUserStatus implements SetUserStatusService {
15
+ serviceMetadata: Service['serviceMetadata'];
16
+ setUserStatus(userId: string, status: UserStatus): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=SetUserStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetUserStatus.d.ts","sourceRoot":"","sources":["../../../src/services/SetUserStatus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAA2B,UAAU,EAAU,MAAM,iBAAiB,CAAC;AAEpG,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,oBAAoB;IACjD,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAIhD;IAEI,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgCvE"}
@@ -0,0 +1,118 @@
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
+ exports.SetUserStatus = void 0;
40
+ var db_1 = require("@proteinjs/db");
41
+ var user_1 = require("@proteinjs/user");
42
+ var logger_1 = require("@proteinjs/logger");
43
+ /**
44
+ * The ONE write path for a user's account standing (the `user.status` column is
45
+ * service-protected — generic record writes cannot touch it). The status update and its
46
+ * `user_status_event` audit row (actor, target, status; `created` is the timestamp) commit in
47
+ * one transaction, so the trail cannot diverge from the standing.
48
+ *
49
+ * Admin-only by explicit scope: deactivation locks the target out of the product (login refused,
50
+ * live sessions stop resolving via userCache), so the door is the break-glass role, not a mapped
51
+ * permission. This method only flips standing — `deleteRequestedAt`/`purgeAfter` belong to the
52
+ * account-deletion flow.
53
+ */
54
+ var SetUserStatus = /** @class */ (function () {
55
+ function SetUserStatus() {
56
+ this.serviceMetadata = {
57
+ auth: {
58
+ roles: ['admin'],
59
+ },
60
+ };
61
+ }
62
+ SetUserStatus.prototype.setUserStatus = function (userId, status) {
63
+ var _a;
64
+ return __awaiter(this, void 0, void 0, function () {
65
+ var logger, db, user, actor;
66
+ var _this = this;
67
+ return __generator(this, function (_b) {
68
+ switch (_b.label) {
69
+ case 0:
70
+ logger = new logger_1.Logger({ name: 'SetUserStatus.setUserStatus' });
71
+ if (!user_1.USER_STATUSES.includes(status)) {
72
+ throw new Error("'".concat(status, "' is not a known user status. Pick one of: ").concat(user_1.USER_STATUSES.join(', '), "."));
73
+ }
74
+ db = (0, db_1.getDbAsSystem)();
75
+ return [4 /*yield*/, db.get(user_1.tables.User, { id: userId })];
76
+ case 1:
77
+ user = _b.sent();
78
+ if (!user) {
79
+ throw new Error("No user found for id: ".concat(userId));
80
+ }
81
+ // Rows predating the status column read null, which every gate treats as active.
82
+ if (((_a = user.status) !== null && _a !== void 0 ? _a : 'active') === status) {
83
+ // No change, no audit row: the trail records what happened, not what was re-asked.
84
+ return [2 /*return*/];
85
+ }
86
+ actor = new user_1.UserRepo().getUser();
87
+ return [4 /*yield*/, db.runTransaction(function () { return __awaiter(_this, void 0, void 0, function () {
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0: return [4 /*yield*/, db.update(user_1.tables.User, { id: userId, status: status })];
91
+ case 1:
92
+ _a.sent();
93
+ return [4 /*yield*/, db.insert(user_1.tables.UserStatusEvent, {
94
+ actor: actor.id,
95
+ target: userId,
96
+ status: status,
97
+ })];
98
+ case 2:
99
+ _a.sent();
100
+ return [2 /*return*/];
101
+ }
102
+ });
103
+ }); })];
104
+ case 2:
105
+ _b.sent();
106
+ logger.info({
107
+ message: "User status set to ".concat(status),
108
+ obj: { actor: actor.id, target: userId, status: status },
109
+ });
110
+ return [2 /*return*/];
111
+ }
112
+ });
113
+ });
114
+ };
115
+ return SetUserStatus;
116
+ }());
117
+ exports.SetUserStatus = SetUserStatus;
118
+ //# sourceMappingURL=SetUserStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetUserStatus.js","sourceRoot":"","sources":["../../../src/services/SetUserStatus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA8C;AAC9C,wCAAoG;AACpG,4CAA2C;AAG3C;;;;;;;;;;GAUG;AACH;IAAA;QACS,oBAAe,GAA+B;YACnD,IAAI,EAAE;gBACJ,KAAK,EAAE,CAAC,OAAO,CAAC;aACjB;SACF,CAAC;IAkCJ,CAAC;IAhCO,qCAAa,GAAnB,UAAoB,MAAc,EAAE,MAAkB;;;;;;;;wBAC9C,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;wBACnE,IAAI,CAAC,oBAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;4BACnC,MAAM,IAAI,KAAK,CAAC,WAAI,MAAM,wDAA8C,oBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC,CAAC;yBACtG;wBAEK,EAAE,GAAG,IAAA,kBAAa,GAAE,CAAC;wBACd,qBAAM,EAAE,CAAC,GAAG,CAAC,aAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAA;;wBAAhD,IAAI,GAAG,SAAyC;wBACtD,IAAI,CAAC,IAAI,EAAE;4BACT,MAAM,IAAI,KAAK,CAAC,gCAAyB,MAAM,CAAE,CAAC,CAAC;yBACpD;wBAED,iFAAiF;wBACjF,IAAI,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,QAAQ,CAAC,KAAK,MAAM,EAAE;4BACxC,mFAAmF;4BACnF,sBAAO;yBACR;wBAEK,KAAK,GAAG,IAAI,eAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;wBACvC,qBAAM,EAAE,CAAC,cAAc,CAAC;;;gDACtB,qBAAM,EAAE,CAAC,MAAM,CAAC,aAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAA,EAAE,CAAC,EAAA;;4CAApD,SAAoD,CAAC;4CACrD,qBAAM,EAAE,CAAC,MAAM,CAAC,aAAM,CAAC,eAAe,EAAE;oDACtC,KAAK,EAAE,KAAK,CAAC,EAAE;oDACf,MAAM,EAAE,MAAM;oDACd,MAAM,QAAA;iDACP,CAAC,EAAA;;4CAJF,SAIE,CAAC;;;;iCACJ,CAAC,EAAA;;wBAPF,SAOE,CAAC;wBACH,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO,EAAE,6BAAsB,MAAM,CAAE;4BACvC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAA,EAAE;yBACjD,CAAC,CAAC;;;;;KACJ;IACH,oBAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,sCAAa"}
@@ -25,13 +25,30 @@ export interface DefaultInviteConfigFactory extends Loadable {
25
25
  getConfig(): InviteConfig;
26
26
  }
27
27
  export declare const getDefaultInviteConfigFactory: () => DefaultInviteConfigFactory;
28
+ /**
29
+ * `createUser`'s outcome, for the signup route's eyes only (it never crosses the wire): the
30
+ * route establishes a session on 'created' and must NOT on 'exists' — auto-login must never
31
+ * hand out a session for an account the caller didn't just create. The response body stays
32
+ * identical either way (existence is reported to the mailbox owner by email, not the caller).
33
+ */
34
+ export type CreateUserResult = {
35
+ outcome: 'created' | 'exists';
36
+ /** The account email, lowercased — resolved from the invite when a token was provided. */
37
+ email: string;
38
+ };
28
39
  export declare class Signup implements SignupService {
29
40
  serviceMetadata: {
30
41
  auth: {
31
42
  canAccess: (methodName: string, args: any[]) => boolean;
32
43
  };
33
44
  };
34
- createUser(user: UserSignup, token?: string): Promise<void>;
45
+ /**
46
+ * The signup flow's account creation + notification emails. Not RPC-reachable (deliberately
47
+ * absent from the SignupService interface): its caller is the `routes.signup` ROUTE, which
48
+ * establishes the session (auto-login) from this result — a request-level concern services
49
+ * never see.
50
+ */
51
+ createUser(user: UserSignup, token?: string): Promise<CreateUserResult>;
35
52
  sendInvite(email: string): Promise<SendInviteResponse>;
36
53
  revokeInvite(email: string): Promise<void>;
37
54
  /**
@@ -40,8 +57,8 @@ export declare class Signup implements SignupService {
40
57
  */
41
58
  initializeSignup(inviteToken: string | undefined): Promise<InitializeSignupResponse>;
42
59
  /**
43
- * Single owner of account-record creation: case-normalized existence check + sha256-hashed
44
- * insert. Both doors into a user row go through here — the signup flow (`createUser`, which
60
+ * Single owner of account-record creation: case-normalized existence check + argon2id-hashed
61
+ * insert (PasswordHasher). Both doors into a user row go through here — the signup flow (`createUser`, which
45
62
  * layers invite validation and confirmation emails on top) and the dev-login bootstrap
46
63
  * (`devLogin`, which auto-creates missing same-domain test accounts). Not exposed as an RPC:
47
64
  * the service surface is the `SignupService` INTERFACE (ServiceRouter walks its declared
@@ -1 +1 @@
1
- {"version":3,"file":"Signup.d.ts","sourceRoot":"","sources":["../../../src/services/Signup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAIlB,aAAa,EACb,wBAAwB,EAExB,MAAM,EACN,IAAI,EACJ,UAAU,EAEX,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEhH,MAAM,WAAW,0BAA2B,SAAQ,QAAQ;IAC1D,SAAS,IAAI,YAAY,CAAC;CAC3B;AAED,eAAO,MAAM,6BAA6B,QAAO,0BAShD,CAAC;AAEF,qBAAa,MAAO,YAAW,aAAa;IACnC,eAAe;;oCAEM,MAAM,QAAQ,GAAG,EAAE;;MAY7C;IAEI,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D3D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0DtD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhD;;;OAGG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAoD1F;;;;;;;OAOG;IACG,aAAa,CAAC,OAAO,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;QACvB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC9B,GAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;IAmBjC,iGAAiG;YACnF,YAAY;CAc3B"}
1
+ {"version":3,"file":"Signup.d.ts","sourceRoot":"","sources":["../../../src/services/Signup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAIlB,aAAa,EACb,wBAAwB,EAExB,MAAM,EACN,IAAI,EACJ,UAAU,EAEX,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AAGnE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEhH,MAAM,WAAW,0BAA2B,SAAQ,QAAQ;IAC1D,SAAS,IAAI,YAAY,CAAC;CAC3B;AAED,eAAO,MAAM,6BAA6B,QAAO,0BAShD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,0FAA0F;IAC1F,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,MAAO,YAAW,aAAa;IACnC,eAAe;;oCAEM,MAAM,QAAQ,GAAG,EAAE;;MAY7C;IAEF;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2DvE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0DtD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhD;;;OAGG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAoD1F;;;;;;;OAOG;IACG,aAAa,CAAC,OAAO,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;QACvB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC9B,GAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;IAmBjC,iGAAiG;YACnF,YAAY;CAc3B"}
@@ -57,8 +57,8 @@ var moment_1 = __importDefault(require("moment"));
57
57
  var crypto_js_1 = require("crypto-js");
58
58
  var logger_1 = require("@proteinjs/logger");
59
59
  var email_server_1 = require("@proteinjs/email-server");
60
- var sha256_1 = __importDefault(require("crypto-js/sha256"));
61
60
  var reflection_1 = require("@proteinjs/reflection");
61
+ var PasswordHasher_1 = require("../authentication/PasswordHasher");
62
62
  /**
63
63
  * How long an invite link stays usable. Deliberately generous: a legitimate invite that gets
64
64
  * clicked late should still work, and revocation (surfaced in the admin UI) is the real control.
@@ -90,6 +90,12 @@ var Signup = /** @class */ (function () {
90
90
  },
91
91
  };
92
92
  }
93
+ /**
94
+ * The signup flow's account creation + notification emails. Not RPC-reachable (deliberately
95
+ * absent from the SignupService interface): its caller is the `routes.signup` ROUTE, which
96
+ * establishes the session (auto-login) from this result — a request-level concern services
97
+ * never see.
98
+ */
93
99
  Signup.prototype.createUser = function (user, token) {
94
100
  var _a, _b, _c, _d;
95
101
  return __awaiter(this, void 0, void 0, function () {
@@ -136,14 +142,14 @@ var Signup = /** @class */ (function () {
136
142
  case 5:
137
143
  _g.sent();
138
144
  _g.label = 6;
139
- case 6: return [2 /*return*/];
145
+ case 6: return [2 /*return*/, { outcome: 'exists', email: email }];
140
146
  case 7:
141
147
  _f = config.getNewUserEmailContent(), text = _f.text, html = _f.html;
142
148
  return [4 /*yield*/, emailSender.sendEmail(__assign({ to: email, subject: config.newUserSubject || ((_d = config.options) === null || _d === void 0 ? void 0 : _d.subject) || 'Welcome!', text: text, html: html }, config.options))];
143
149
  case 8:
144
150
  _g.sent();
145
151
  logger.info({ message: "Created user", obj: { email: email } });
146
- return [2 /*return*/];
152
+ return [2 /*return*/, { outcome: 'created', email: email }];
147
153
  }
148
154
  });
149
155
  });
@@ -291,8 +297,8 @@ var Signup = /** @class */ (function () {
291
297
  });
292
298
  };
293
299
  /**
294
- * Single owner of account-record creation: case-normalized existence check + sha256-hashed
295
- * insert. Both doors into a user row go through here — the signup flow (`createUser`, which
300
+ * Single owner of account-record creation: case-normalized existence check + argon2id-hashed
301
+ * insert (PasswordHasher). Both doors into a user row go through here — the signup flow (`createUser`, which
296
302
  * layers invite validation and confirmation emails on top) and the dev-login bootstrap
297
303
  * (`devLogin`, which auto-creates missing same-domain test accounts). Not exposed as an RPC:
298
304
  * the service surface is the `SignupService` INTERFACE (ServiceRouter walks its declared
@@ -300,28 +306,33 @@ var Signup = /** @class */ (function () {
300
306
  */
301
307
  Signup.prototype.createAccount = function (account) {
302
308
  return __awaiter(this, void 0, void 0, function () {
303
- var db, email, existingUser;
304
- return __generator(this, function (_a) {
305
- switch (_a.label) {
309
+ var db, email, existingUser, _a, _b, _c;
310
+ var _d;
311
+ return __generator(this, function (_e) {
312
+ switch (_e.label) {
306
313
  case 0:
307
314
  db = (0, db_1.getDbAsSystem)();
308
315
  email = account.email.toLowerCase();
309
316
  return [4 /*yield*/, db.get(user_1.tables.User, { email: email })];
310
317
  case 1:
311
- existingUser = _a.sent();
318
+ existingUser = _e.sent();
312
319
  if (existingUser) {
313
320
  return [2 /*return*/, 'exists'];
314
321
  }
315
- return [4 /*yield*/, db.insert(user_1.tables.User, {
316
- name: account.name,
317
- email: email,
318
- password: (0, sha256_1.default)(account.password).toString(),
319
- emailVerified: account.emailVerified,
320
- roles: [],
321
- invitedBy: account.invitedBy,
322
- })];
323
- case 2:
324
- _a.sent();
322
+ _b = (_a = db).insert;
323
+ _c = [user_1.tables.User];
324
+ _d = {
325
+ name: account.name,
326
+ email: email
327
+ };
328
+ return [4 /*yield*/, new PasswordHasher_1.PasswordHasher().hash(account.password)];
329
+ case 2: return [4 /*yield*/, _b.apply(_a, _c.concat([(_d.password = _e.sent(),
330
+ _d.emailVerified = account.emailVerified,
331
+ _d.roles = [],
332
+ _d.invitedBy = account.invitedBy,
333
+ _d)]))];
334
+ case 3:
335
+ _e.sent();
325
336
  return [2 /*return*/, 'created'];
326
337
  }
327
338
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Signup.js","sourceRoot":"","sources":["../../../src/services/Signup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Signup.js","sourceRoot":"","sources":["../../../src/services/Signup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateUserInfo.d.ts","sourceRoot":"","sources":["../../../src/services/UpdateUserInfo.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,sBAAsB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGrH,qBAAa,cAAe,YAAW,qBAAqB;IAC1D,wEAAwE;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAO;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAoB;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAMhD;IACF,mGAAmG;IACnG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAM;IACrD,mGAAmG;IACnG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAiF;IAE/G,eAAe;;;;MAIpB;IAEI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9C,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmD7F,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoB3E,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IActD,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAIzC;;;;;OAKG;YACW,SAAS;IAWvB;;;;;;;OAOG;YACW,YAAY;IAW1B;;;;;;;OAOG;YACW,YAAY;YAWZ,UAAU;CAMzB"}
1
+ {"version":3,"file":"UpdateUserInfo.d.ts","sourceRoot":"","sources":["../../../src/services/UpdateUserInfo.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,sBAAsB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAIrH,qBAAa,cAAe,YAAW,qBAAqB;IAC1D,wEAAwE;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAO;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAoB;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAMhD;IACF,mGAAmG;IACnG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAM;IACrD,mGAAmG;IACnG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAiF;IAE/G,eAAe;;;;MAIpB;IAEI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9C,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAkD7F,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoB3E,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IActD,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAIzC;;;;;OAKG;YACW,SAAS;IAWvB;;;;;;;OAOG;YACW,YAAY;IAW1B;;;;;;;OAOG;YACW,YAAY;YAWZ,UAAU;CAMzB"}