@venturekit/auth 0.0.0-dev.20260516011532 → 0.0.0-dev.20260522121000

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.
@@ -36,6 +36,14 @@ import type { AuthServerConfig } from './config.js';
36
36
  export interface ForgotPasswordInput {
37
37
  /** Email / username of the account whose password should be reset. */
38
38
  email: string;
39
+ /**
40
+ * Optional callback to deliver the confirmation code in dev mode.
41
+ * When provided and running against cognito-local, the function
42
+ * calls this instead of logging to the console, so the developer
43
+ * can wire in their own email delivery (e.g. via `@venturekit/notify`
44
+ * → MailHog). Ignored in production.
45
+ */
46
+ onSendCode?: (email: string, code: string) => Promise<void>;
39
47
  }
40
48
  /**
41
49
  * Where Cognito delivered (or claims to have delivered) the
@@ -59,7 +67,16 @@ export interface ForgotPasswordResult {
59
67
  * reaching this point.
60
68
  */
61
69
  codeDelivery?: CodeDeliveryDetails;
70
+ /**
71
+ * Plaintext confirmation code — only populated when running against
72
+ * cognito-local (`vk dev`). Useful so the developer can complete the
73
+ * flow in a browser without checking server logs. Always `undefined`
74
+ * in production.
75
+ */
76
+ devCode?: string;
62
77
  }
78
+ /** Test-only — clear the dev forgot-password code store between vitest runs. */
79
+ export declare function _resetDevForgotCodeStoreForTesting(): void;
63
80
  /**
64
81
  * Initiate a password reset. Cognito sends a one-time code to the
65
82
  * user's verified email or phone and the caller can then complete
@@ -1 +1 @@
1
- {"version":3,"file":"forgot-password.d.ts","sourceRoot":"","sources":["../../src/server/forgot-password.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKpD,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,GAAE,gBAAyC,GAChD,OAAO,CAAC,oBAAoB,CAAC,CAqB/B;AAED,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,EACjC,MAAM,GAAE,gBAAyC,GAChD,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"forgot-password.d.ts","sourceRoot":"","sources":["../../src/server/forgot-password.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuBD,gFAAgF;AAChF,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,GAAE,gBAAyC,GAChD,OAAO,CAAC,oBAAoB,CAAC,CAoD/B;AAED,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,EACjC,MAAM,GAAE,gBAAyC,GAChD,OAAO,CAAC,IAAI,CAAC,CAqEf"}
@@ -32,10 +32,31 @@
32
32
  * success. This helper deliberately surfaces the real outcome so the
33
33
  * caller can decide.
34
34
  */
35
- import { ConfirmForgotPasswordCommand, ForgotPasswordCommand, } from '@aws-sdk/client-cognito-identity-provider';
35
+ import { timingSafeEqual } from 'node:crypto';
36
+ import { AdminSetUserPasswordCommand, ConfirmForgotPasswordCommand, ForgotPasswordCommand, } from '@aws-sdk/client-cognito-identity-provider';
36
37
  import { loadAuthServerConfig } from './config.js';
37
38
  import { getCognitoClient } from './cognito-client.js';
38
- import { mapProviderError } from './errors.js';
39
+ import { AuthError, mapProviderError } from './errors.js';
40
+ import { generateVerificationCode, hashVerificationCode } from './verification.js';
41
+ // ── Dev-mode (cognito-local) helpers ────────────────────────────────
42
+ const DEV_CODE_TTL_MS = 10 * 60 * 1000; // 10 minutes
43
+ const DEV_CODE_MAX_ATTEMPTS = 5;
44
+ /** In-memory store for forgot-password codes when running against cognito-local. */
45
+ const devForgotCodeStore = new Map();
46
+ function isDevMode(config) {
47
+ return !!config.endpoint;
48
+ }
49
+ function maskEmail(email) {
50
+ const [local, domain] = email.split('@');
51
+ if (!local || !domain)
52
+ return email;
53
+ return `${local[0]}***@${domain}`;
54
+ }
55
+ /** Test-only — clear the dev forgot-password code store between vitest runs. */
56
+ export function _resetDevForgotCodeStoreForTesting() {
57
+ devForgotCodeStore.clear();
58
+ }
59
+ // ── Step 1: initiate ────────────────────────────────────────────────
39
60
  /**
40
61
  * Initiate a password reset. Cognito sends a one-time code to the
41
62
  * user's verified email or phone and the caller can then complete
@@ -52,12 +73,40 @@ import { mapProviderError } from './errors.js';
52
73
  * - `too_many_requests` (HTTP 429) — Cognito throttling.
53
74
  */
54
75
  export async function forgotPassword(input, config = loadAuthServerConfig()) {
76
+ const email = input.email.toLowerCase();
77
+ if (isDevMode(config)) {
78
+ // cognito-local does not deliver emails; generate and store a
79
+ // code ourselves so the dev can complete the flow.
80
+ const code = generateVerificationCode();
81
+ const codeHash = hashVerificationCode(code);
82
+ devForgotCodeStore.set(email, {
83
+ codeHash,
84
+ expiresAt: Date.now() + DEV_CODE_TTL_MS,
85
+ attempts: 0,
86
+ });
87
+ if (input.onSendCode) {
88
+ await input.onSendCode(email, code);
89
+ }
90
+ else {
91
+ // eslint-disable-next-line no-console
92
+ console.log(`[dev] Forgot-password code for ${email}: ${code} (expires in 10 min)`);
93
+ }
94
+ return {
95
+ codeDelivery: {
96
+ destination: maskEmail(email),
97
+ deliveryMedium: 'EMAIL',
98
+ attributeName: 'email',
99
+ },
100
+ devCode: code,
101
+ };
102
+ }
103
+ // Prod path — use Cognito's native ForgotPassword.
55
104
  const client = getCognitoClient(config.region, config.endpoint);
56
105
  let res;
57
106
  try {
58
107
  res = await client.send(new ForgotPasswordCommand({
59
108
  ClientId: config.appClientId,
60
- Username: input.email.toLowerCase(),
109
+ Username: email,
61
110
  }));
62
111
  }
63
112
  catch (err) {
@@ -91,11 +140,54 @@ export async function forgotPassword(input, config = loadAuthServerConfig()) {
91
140
  * - `invalid_credentials` (HTTP 401) — unknown user.
92
141
  */
93
142
  export async function confirmForgotPassword(input, config = loadAuthServerConfig()) {
143
+ const email = input.email.toLowerCase();
144
+ if (isDevMode(config)) {
145
+ // cognito-local path: verify our locally-stored code, then set
146
+ // the password directly via AdminSetUserPassword.
147
+ const record = devForgotCodeStore.get(email);
148
+ if (!record) {
149
+ throw new AuthError('invalid_code', 'No forgot-password code outstanding — request a new one', 400);
150
+ }
151
+ if (record.expiresAt < Date.now()) {
152
+ devForgotCodeStore.delete(email);
153
+ throw new AuthError('expired_code', 'Forgot-password code expired — request a new one', 400);
154
+ }
155
+ const submittedHash = hashVerificationCode(input.code);
156
+ const a = Buffer.from(submittedHash, 'hex');
157
+ const b = Buffer.from(record.codeHash, 'hex');
158
+ const matches = a.length === b.length && timingSafeEqual(a, b);
159
+ if (!matches) {
160
+ // Wrong code — bump the counter; once we've hit the limit, wipe
161
+ // the record so the user has to request a new one (brute-force
162
+ // defense, since 6-digit codes only have 1M states). Mirrors the
163
+ // logic in verification.ts:verifyVerificationCode.
164
+ record.attempts += 1;
165
+ if (record.attempts >= DEV_CODE_MAX_ATTEMPTS) {
166
+ devForgotCodeStore.delete(email);
167
+ }
168
+ throw new AuthError('invalid_code', 'Invalid confirmation code', 400);
169
+ }
170
+ devForgotCodeStore.delete(email);
171
+ const client = getCognitoClient(config.region, config.endpoint);
172
+ try {
173
+ await client.send(new AdminSetUserPasswordCommand({
174
+ UserPoolId: config.userPoolId,
175
+ Username: email,
176
+ Password: input.newPassword,
177
+ Permanent: true,
178
+ }));
179
+ }
180
+ catch (err) {
181
+ throw mapProviderError(err, 'confirm_forgot_password_failed');
182
+ }
183
+ return;
184
+ }
185
+ // Prod path — use Cognito's native ConfirmForgotPassword.
94
186
  const client = getCognitoClient(config.region, config.endpoint);
95
187
  try {
96
188
  await client.send(new ConfirmForgotPasswordCommand({
97
189
  ClientId: config.appClientId,
98
- Username: input.email.toLowerCase(),
190
+ Username: email,
99
191
  ConfirmationCode: input.code,
100
192
  Password: input.newPassword,
101
193
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"forgot-password.js","sourceRoot":"","sources":["../../src/server/forgot-password.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GAEtB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAgC/C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAA0B,EAC1B,SAA2B,oBAAoB,EAAE;IAEjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,GAAgC,CAAC;IACrC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CACrB,IAAI,qBAAqB,CAAC;YACxB,QAAQ,EAAE,MAAM,CAAC,WAAW;YAC5B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;SACpC,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,gBAAgB,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,CAAC,mBAAmB,CAAC;IAClC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,YAAY,GAAwB,EAAE,CAAC;IAC7C,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAC1E,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS;QAAE,YAAY,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;IACnF,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;QAAE,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;IAChF,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC;AAWD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAiC,EACjC,SAA2B,oBAAoB,EAAE;IAEjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CACf,IAAI,4BAA4B,CAAC;YAC/B,QAAQ,EAAE,MAAM,CAAC,WAAW;YAC5B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;YACnC,gBAAgB,EAAE,KAAK,CAAC,IAAI;YAC5B,QAAQ,EAAE,KAAK,CAAC,WAAW;SAC5B,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,gBAAgB,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"forgot-password.js","sourceRoot":"","sources":["../../src/server/forgot-password.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venturekit/auth",
3
- "version": "0.0.0-dev.20260516011532",
3
+ "version": "0.0.0-dev.20260522121000",
4
4
  "description": "Authentication and authorization for VentureKit",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,13 +33,13 @@
33
33
  }
34
34
  },
35
35
  "dependencies": {
36
- "@venturekit/core": "0.0.0-dev.20260516011532",
36
+ "@venturekit/core": "0.0.0-dev.20260522121000",
37
37
  "@aws-sdk/client-cognito-identity-provider": "^3.668.0",
38
38
  "@aws-sdk/client-secrets-manager": "^3.668.0",
39
39
  "aws-jwt-verify": "^4.0.1"
40
40
  },
41
41
  "peerDependencies": {
42
- "@venturekit/runtime": "0.0.0-dev.20260516011532"
42
+ "@venturekit/runtime": "0.0.0-dev.20260522121000"
43
43
  },
44
44
  "peerDependenciesMeta": {
45
45
  "@venturekit/runtime": {
@@ -47,7 +47,7 @@
47
47
  }
48
48
  },
49
49
  "devDependencies": {
50
- "@venturekit/runtime": "0.0.0-dev.20260516011532",
50
+ "@venturekit/runtime": "0.0.0-dev.20260522121000",
51
51
  "@types/aws-lambda": "^8.10.131",
52
52
  "@types/node": "^25.6.0",
53
53
  "typescript": "^5.3.0"