@sparkvault/sdk-mobile 0.3.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/auth.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type ResolvedMobileConfig } from './config.js';
2
2
  import type { MobileHttpClient } from './http.js';
3
- import type { CompleteSignupRequest, CompleteSignupResponse, IdentityConfig, IdentityJwks, IdentityTokenClaims, IdentityType, IdentityVerifyResult, PasskeyAuthChallenge, PasskeyCredential, PasskeyRegisterChallenge, PasskeySession, PasskeyStatus, PinVerifyRequest, PinVerifyResponse, RequestPinRequest, RequestPinResponse, SendTotpRequest, SparkVaultAccount, SparkVaultUser, VerifyTotpRequest } from './types.js';
3
+ import type { CompleteSignupRequest, CompleteSignupResponse, IdentityConfig, IdentityJwks, IdentityTokenClaims, IdentityType, IdentityVerifyResult, PasskeyAuthChallenge, PasskeyCredential, PasskeyRegisterChallenge, PasskeySession, PasskeyStatus, PinVerifyRequest, PinVerifyResponse, RequestPinRequest, RequestPinResponse, SendTotpRequest, SparkVaultAccount, SparkVaultUser, SubmitSecondFactorRequest, VerifyTotpRequest } from './types.js';
4
4
  export declare class MobileAuthClient {
5
5
  private readonly config;
6
6
  private readonly http;
@@ -26,6 +26,20 @@ export declare class MobileAuthClient {
26
26
  requestPin(request: RequestPinRequest): Promise<RequestPinResponse>;
27
27
  verifyTotp(request: VerifyTotpRequest): Promise<IdentityVerifyResult>;
28
28
  verifyPin(request: PinVerifyRequest): Promise<PinVerifyResponse>;
29
+ /**
30
+ * Complete a login held at the second-factor gate (from verifyTotp). Submits
31
+ * a 6-digit authenticator code or a recovery code and returns the verified
32
+ * identity result. A wrong code throws.
33
+ */
34
+ submitSecondFactor(request: SubmitSecondFactorRequest): Promise<IdentityVerifyResult>;
35
+ /**
36
+ * Complete a 2FA-pending app login (from verifyPin's pending response):
37
+ * submit the second factor, then exchange the identity token for an app
38
+ * session.
39
+ */
40
+ completeSecondFactorPin(request: SubmitSecondFactorRequest): Promise<PinVerifyResponse>;
41
+ /** Build the typed error verifyTotp throws when a second factor is required. */
42
+ private secondFactorError;
29
43
  completeSignup(signupToken: string, request: CompleteSignupRequest): Promise<CompleteSignupResponse>;
30
44
  signup(params: {
31
45
  signup_token: string;
package/dist/auth.js CHANGED
@@ -158,6 +158,11 @@ export class MobileAuthClient {
158
158
  }
159
159
  async verifyTotp(request) {
160
160
  const verifyResult = await this.verifyTotpWithRetryErrors(request);
161
+ // PIN accepted, but the account requires a second factor. Surface the
162
+ // ticket so the caller can collect a code and call submitSecondFactor().
163
+ if (verifyResult.second_factor_required && verifyResult.ticket) {
164
+ throw this.secondFactorError(verifyResult.ticket, verifyResult.methods);
165
+ }
161
166
  if (!verifyResult.verified || !verifyResult.token) {
162
167
  if (verifyResult.kindling) {
163
168
  const error = new SparkVaultMobileError('Invalid code. Please try again.', {
@@ -184,6 +189,16 @@ export class MobileAuthClient {
184
189
  }
185
190
  async verifyPin(request) {
186
191
  const verifyResult = await this.verifyTotpWithRetryErrors(request);
192
+ // PIN accepted, but 2FA is required. Return a pending result so the caller
193
+ // can collect a second factor and call completeSecondFactorPin().
194
+ if (verifyResult.second_factor_required && verifyResult.ticket) {
195
+ return {
196
+ verified: false,
197
+ second_factor_required: true,
198
+ ticket: verifyResult.ticket,
199
+ methods: verifyResult.methods ?? ['authenticator'],
200
+ };
201
+ }
187
202
  if (!verifyResult.verified || !verifyResult.token) {
188
203
  if (verifyResult.kindling) {
189
204
  const error = new SparkVaultMobileError('Invalid code. Please try again.', {
@@ -203,6 +218,51 @@ export class MobileAuthClient {
203
218
  }
204
219
  return this.exchangeIdentityToken(verifyResult.token);
205
220
  }
221
+ /**
222
+ * Complete a login held at the second-factor gate (from verifyTotp). Submits
223
+ * a 6-digit authenticator code or a recovery code and returns the verified
224
+ * identity result. A wrong code throws.
225
+ */
226
+ async submitSecondFactor(request) {
227
+ const result = await this.postIdentity('/second-factor/verify', {
228
+ ticket: request.ticket,
229
+ code: request.code,
230
+ });
231
+ if (!result.verified || !result.token) {
232
+ throw new SparkVaultMobileError('That code is not valid. Please try again.', {
233
+ code: 400,
234
+ statusCode: 400,
235
+ });
236
+ }
237
+ return this.toIdentityVerifyResult(result.token, {
238
+ identity: result.identity,
239
+ identityType: result.identity_type,
240
+ method: result.method,
241
+ redirect: result.redirect,
242
+ });
243
+ }
244
+ /**
245
+ * Complete a 2FA-pending app login (from verifyPin's pending response):
246
+ * submit the second factor, then exchange the identity token for an app
247
+ * session.
248
+ */
249
+ async completeSecondFactorPin(request) {
250
+ const result = await this.submitSecondFactor(request);
251
+ return this.exchangeIdentityToken(result.token);
252
+ }
253
+ /** Build the typed error verifyTotp throws when a second factor is required. */
254
+ secondFactorError(ticket, methods) {
255
+ const error = new SparkVaultMobileError('Two-step verification required.', {
256
+ code: 401,
257
+ statusCode: 401,
258
+ });
259
+ error.data = {
260
+ second_factor_required: true,
261
+ ticket,
262
+ methods: methods ?? ['authenticator'],
263
+ };
264
+ return error;
265
+ }
206
266
  async completeSignup(signupToken, request) {
207
267
  const response = await this.http.post('/auth/complete-signup', request, {
208
268
  skipAuth: true,
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -137,7 +137,26 @@ export interface PinVerifySignupPendingResponse {
137
137
  signup_token: string;
138
138
  expires_at: number;
139
139
  }
140
- export type PinVerifyResponse = PinVerifyLoginResponse | PinVerifySignupPendingResponse;
140
+ /**
141
+ * Returned by verifyPin when the PIN was correct but the account has 2FA
142
+ * enabled: the caller must collect a second factor and call
143
+ * completeSecondFactorPin({ ticket, code }) to finish the login.
144
+ */
145
+ export interface PinVerifySecondFactorPendingResponse {
146
+ verified: false;
147
+ second_factor_required: true;
148
+ /** Opaque pending-login handle to submit the second factor against. */
149
+ ticket: string;
150
+ /** Methods the user may use, e.g. ['authenticator','recovery_code']. */
151
+ methods: string[];
152
+ }
153
+ export type PinVerifyResponse = PinVerifyLoginResponse | PinVerifySignupPendingResponse | PinVerifySecondFactorPendingResponse;
154
+ export interface SubmitSecondFactorRequest {
155
+ /** Pending-login ticket from a second_factor_required response. */
156
+ ticket: string;
157
+ /** 6-digit authenticator code or a recovery code. */
158
+ code: string;
159
+ }
141
160
  export interface CompleteSignupRequest {
142
161
  organization_name: string;
143
162
  full_name?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparkvault/sdk-mobile",
3
- "version": "0.3.3",
3
+ "version": "1.0.0",
4
4
  "description": "Mobile SDK for SparkVault Identity, vault, folder, and ingot workflows",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/auth.ts CHANGED
@@ -25,6 +25,7 @@ import type {
25
25
  SendTotpRequest,
26
26
  SparkVaultAccount,
27
27
  SparkVaultUser,
28
+ SubmitSecondFactorRequest,
28
29
  VerifyTotpRequest,
29
30
  } from './types.js';
30
31
  import nacl from 'tweetnacl';
@@ -39,6 +40,12 @@ interface IdentityVerificationResponse {
39
40
  kindling?: string;
40
41
  expires_at?: number;
41
42
  retry_after?: number;
43
+ /** Primary factor passed, second factor still owed. */
44
+ second_factor_required?: boolean;
45
+ /** Pending-login handle for the second-factor submit. */
46
+ ticket?: string;
47
+ /** Offered second-factor methods. */
48
+ methods?: string[];
42
49
  }
43
50
 
44
51
  interface IdentityPasskeyCompletionResponse {
@@ -249,6 +256,13 @@ export class MobileAuthClient {
249
256
 
250
257
  async verifyTotp(request: VerifyTotpRequest): Promise<IdentityVerifyResult> {
251
258
  const verifyResult = await this.verifyTotpWithRetryErrors(request);
259
+
260
+ // PIN accepted, but the account requires a second factor. Surface the
261
+ // ticket so the caller can collect a code and call submitSecondFactor().
262
+ if (verifyResult.second_factor_required && verifyResult.ticket) {
263
+ throw this.secondFactorError(verifyResult.ticket, verifyResult.methods);
264
+ }
265
+
252
266
  if (!verifyResult.verified || !verifyResult.token) {
253
267
  if (verifyResult.kindling) {
254
268
  const error = new SparkVaultMobileError('Invalid code. Please try again.', {
@@ -279,6 +293,17 @@ export class MobileAuthClient {
279
293
  async verifyPin(request: PinVerifyRequest): Promise<PinVerifyResponse> {
280
294
  const verifyResult = await this.verifyTotpWithRetryErrors(request);
281
295
 
296
+ // PIN accepted, but 2FA is required. Return a pending result so the caller
297
+ // can collect a second factor and call completeSecondFactorPin().
298
+ if (verifyResult.second_factor_required && verifyResult.ticket) {
299
+ return {
300
+ verified: false,
301
+ second_factor_required: true,
302
+ ticket: verifyResult.ticket,
303
+ methods: verifyResult.methods ?? ['authenticator'],
304
+ };
305
+ }
306
+
282
307
  if (!verifyResult.verified || !verifyResult.token) {
283
308
  if (verifyResult.kindling) {
284
309
  const error = new SparkVaultMobileError('Invalid code. Please try again.', {
@@ -301,6 +326,54 @@ export class MobileAuthClient {
301
326
  return this.exchangeIdentityToken(verifyResult.token);
302
327
  }
303
328
 
329
+ /**
330
+ * Complete a login held at the second-factor gate (from verifyTotp). Submits
331
+ * a 6-digit authenticator code or a recovery code and returns the verified
332
+ * identity result. A wrong code throws.
333
+ */
334
+ async submitSecondFactor(request: SubmitSecondFactorRequest): Promise<IdentityVerifyResult> {
335
+ const result = await this.postIdentity<IdentityVerificationResponse>('/second-factor/verify', {
336
+ ticket: request.ticket,
337
+ code: request.code,
338
+ });
339
+ if (!result.verified || !result.token) {
340
+ throw new SparkVaultMobileError('That code is not valid. Please try again.', {
341
+ code: 400,
342
+ statusCode: 400,
343
+ });
344
+ }
345
+ return this.toIdentityVerifyResult(result.token, {
346
+ identity: result.identity,
347
+ identityType: result.identity_type,
348
+ method: result.method,
349
+ redirect: result.redirect,
350
+ });
351
+ }
352
+
353
+ /**
354
+ * Complete a 2FA-pending app login (from verifyPin's pending response):
355
+ * submit the second factor, then exchange the identity token for an app
356
+ * session.
357
+ */
358
+ async completeSecondFactorPin(request: SubmitSecondFactorRequest): Promise<PinVerifyResponse> {
359
+ const result = await this.submitSecondFactor(request);
360
+ return this.exchangeIdentityToken(result.token);
361
+ }
362
+
363
+ /** Build the typed error verifyTotp throws when a second factor is required. */
364
+ private secondFactorError(ticket: string, methods?: string[]): SparkVaultMobileError {
365
+ const error = new SparkVaultMobileError('Two-step verification required.', {
366
+ code: 401,
367
+ statusCode: 401,
368
+ });
369
+ (error as SparkVaultMobileError & { data?: unknown }).data = {
370
+ second_factor_required: true,
371
+ ticket,
372
+ methods: methods ?? ['authenticator'],
373
+ };
374
+ return error;
375
+ }
376
+
304
377
  async completeSignup(
305
378
  signupToken: string,
306
379
  request: CompleteSignupRequest
package/src/types.ts CHANGED
@@ -174,7 +174,31 @@ export interface PinVerifySignupPendingResponse {
174
174
  expires_at: number;
175
175
  }
176
176
 
177
- export type PinVerifyResponse = PinVerifyLoginResponse | PinVerifySignupPendingResponse;
177
+ /**
178
+ * Returned by verifyPin when the PIN was correct but the account has 2FA
179
+ * enabled: the caller must collect a second factor and call
180
+ * completeSecondFactorPin({ ticket, code }) to finish the login.
181
+ */
182
+ export interface PinVerifySecondFactorPendingResponse {
183
+ verified: false;
184
+ second_factor_required: true;
185
+ /** Opaque pending-login handle to submit the second factor against. */
186
+ ticket: string;
187
+ /** Methods the user may use, e.g. ['authenticator','recovery_code']. */
188
+ methods: string[];
189
+ }
190
+
191
+ export type PinVerifyResponse =
192
+ | PinVerifyLoginResponse
193
+ | PinVerifySignupPendingResponse
194
+ | PinVerifySecondFactorPendingResponse;
195
+
196
+ export interface SubmitSecondFactorRequest {
197
+ /** Pending-login ticket from a second_factor_required response. */
198
+ ticket: string;
199
+ /** 6-digit authenticator code or a recovery code. */
200
+ code: string;
201
+ }
178
202
 
179
203
  export interface CompleteSignupRequest {
180
204
  organization_name: string;