@faable/auth-sdk 2.6.18 → 2.6.19

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.
@@ -2385,6 +2385,141 @@ export interface paths {
2385
2385
  patch?: never;
2386
2386
  trace?: never;
2387
2387
  };
2388
+ "/mfa/recovery/options": {
2389
+ parameters: {
2390
+ query?: never;
2391
+ header?: never;
2392
+ path?: never;
2393
+ cookie?: never;
2394
+ };
2395
+ /** What a recovery-by-factor screen should offer */
2396
+ get: {
2397
+ parameters: {
2398
+ query: {
2399
+ state: string;
2400
+ };
2401
+ header?: never;
2402
+ path?: never;
2403
+ cookie?: never;
2404
+ };
2405
+ requestBody?: never;
2406
+ responses: {
2407
+ /** @description Default Response */
2408
+ 200: {
2409
+ headers: {
2410
+ [name: string]: unknown;
2411
+ };
2412
+ content: {
2413
+ "application/json": {
2414
+ /** @description Factors the person can answer with here. Passkeys are not offered for recovery yet: their assertion flow is bound to the login session. */
2415
+ factors: "totp"[];
2416
+ /** @enum {string} */
2417
+ preferred?: "totp";
2418
+ /** @description Whether they hold recovery codes. */
2419
+ recovery: boolean;
2420
+ };
2421
+ };
2422
+ };
2423
+ };
2424
+ };
2425
+ put?: never;
2426
+ post?: never;
2427
+ delete?: never;
2428
+ options?: never;
2429
+ head?: never;
2430
+ patch?: never;
2431
+ trace?: never;
2432
+ };
2433
+ "/mfa/recovery/verify": {
2434
+ parameters: {
2435
+ query?: never;
2436
+ header?: never;
2437
+ path?: never;
2438
+ cookie?: never;
2439
+ };
2440
+ get?: never;
2441
+ put?: never;
2442
+ /** Answer a recovery-by-factor challenge with a TOTP code */
2443
+ post: {
2444
+ parameters: {
2445
+ query?: never;
2446
+ header?: never;
2447
+ path?: never;
2448
+ cookie?: never;
2449
+ };
2450
+ requestBody: {
2451
+ content: {
2452
+ "application/json": {
2453
+ state: string;
2454
+ code: string;
2455
+ };
2456
+ };
2457
+ };
2458
+ responses: {
2459
+ /** @description Default Response */
2460
+ 200: {
2461
+ headers: {
2462
+ [name: string]: unknown;
2463
+ };
2464
+ content: {
2465
+ "application/json": {
2466
+ redirect_url: string;
2467
+ };
2468
+ };
2469
+ };
2470
+ };
2471
+ };
2472
+ delete?: never;
2473
+ options?: never;
2474
+ head?: never;
2475
+ patch?: never;
2476
+ trace?: never;
2477
+ };
2478
+ "/mfa/recovery/code": {
2479
+ parameters: {
2480
+ query?: never;
2481
+ header?: never;
2482
+ path?: never;
2483
+ cookie?: never;
2484
+ };
2485
+ get?: never;
2486
+ put?: never;
2487
+ /** Answer a recovery-by-factor challenge with a recovery code */
2488
+ post: {
2489
+ parameters: {
2490
+ query?: never;
2491
+ header?: never;
2492
+ path?: never;
2493
+ cookie?: never;
2494
+ };
2495
+ requestBody: {
2496
+ content: {
2497
+ "application/json": {
2498
+ state: string;
2499
+ code: string;
2500
+ };
2501
+ };
2502
+ };
2503
+ responses: {
2504
+ /** @description Default Response */
2505
+ 200: {
2506
+ headers: {
2507
+ [name: string]: unknown;
2508
+ };
2509
+ content: {
2510
+ "application/json": {
2511
+ redirect_url: string;
2512
+ };
2513
+ };
2514
+ };
2515
+ };
2516
+ };
2517
+ delete?: never;
2518
+ options?: never;
2519
+ head?: never;
2520
+ patch?: never;
2521
+ trace?: never;
2522
+ };
2388
2523
  "/me": {
2389
2524
  parameters: {
2390
2525
  query?: never;
package/dist/version.js CHANGED
@@ -9,13 +9,13 @@
9
9
  // login pages could not import the SDK at all. Same pattern as auth-js.
10
10
  //
11
11
  // The sentinels MUST stay byte-identical to the `from` values in `.releaserc`.
12
- export const version = "2.6.18";
12
+ export const version = "2.6.19";
13
13
  // Short git SHA of the released commit. The version dates a build; this names
14
14
  // the exact tree, so a canonical log line or an audit entry leads straight to
15
15
  // `git show <sha>`. Deliberately NOT hex: an unreleased build (dev, a local
16
16
  // link) cannot be mistaken for a real commit — auth only records values that
17
17
  // look like a SHA, and this one never will.
18
- export const commit = "5c6ffbe";
18
+ export const commit = "c0ff254";
19
19
  // What this SDK writes in `x-faable-client`. Exported for a consumer that
20
20
  // builds a strategy on its own (outside `FaableAuthApi`) and still wants the
21
21
  // token request attributed — a bare `authClientCredentials` stamps only what
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faable/auth-sdk",
3
- "version": "2.6.18",
3
+ "version": "2.6.19",
4
4
  "author": "Marc Pomar <marc@faable.com>",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/spec/openapi.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "@faablecloud/auth",
5
5
  "description": "Auth Platform made by Faable. Manage Users and Roles",
6
- "version": "2.19.0",
6
+ "version": "2.20.0",
7
7
  "license": {
8
8
  "name": "private",
9
9
  "url": "https://faable.com/docs/platform/privacy-policy"
@@ -31823,6 +31823,162 @@
31823
31823
  }
31824
31824
  }
31825
31825
  },
31826
+ "/mfa/recovery/options": {
31827
+ "get": {
31828
+ "summary": "What a recovery-by-factor screen should offer",
31829
+ "tags": [
31830
+ "mfa"
31831
+ ],
31832
+ "parameters": [
31833
+ {
31834
+ "schema": {
31835
+ "type": "string"
31836
+ },
31837
+ "in": "query",
31838
+ "name": "state",
31839
+ "required": true
31840
+ }
31841
+ ],
31842
+ "responses": {
31843
+ "200": {
31844
+ "description": "Default Response",
31845
+ "content": {
31846
+ "application/json": {
31847
+ "schema": {
31848
+ "type": "object",
31849
+ "required": [
31850
+ "factors",
31851
+ "recovery"
31852
+ ],
31853
+ "properties": {
31854
+ "factors": {
31855
+ "type": "array",
31856
+ "items": {
31857
+ "type": "string",
31858
+ "enum": [
31859
+ "totp"
31860
+ ]
31861
+ },
31862
+ "description": "Factors the person can answer with here. Passkeys are not offered for recovery yet: their assertion flow is bound to the login session."
31863
+ },
31864
+ "preferred": {
31865
+ "type": "string",
31866
+ "enum": [
31867
+ "totp"
31868
+ ]
31869
+ },
31870
+ "recovery": {
31871
+ "type": "boolean",
31872
+ "description": "Whether they hold recovery codes."
31873
+ }
31874
+ }
31875
+ }
31876
+ }
31877
+ }
31878
+ }
31879
+ }
31880
+ }
31881
+ },
31882
+ "/mfa/recovery/verify": {
31883
+ "post": {
31884
+ "summary": "Answer a recovery-by-factor challenge with a TOTP code",
31885
+ "tags": [
31886
+ "mfa"
31887
+ ],
31888
+ "requestBody": {
31889
+ "required": true,
31890
+ "content": {
31891
+ "application/json": {
31892
+ "schema": {
31893
+ "type": "object",
31894
+ "required": [
31895
+ "state",
31896
+ "code"
31897
+ ],
31898
+ "properties": {
31899
+ "state": {
31900
+ "type": "string"
31901
+ },
31902
+ "code": {
31903
+ "type": "string"
31904
+ }
31905
+ }
31906
+ }
31907
+ }
31908
+ }
31909
+ },
31910
+ "responses": {
31911
+ "200": {
31912
+ "description": "Default Response",
31913
+ "content": {
31914
+ "application/json": {
31915
+ "schema": {
31916
+ "type": "object",
31917
+ "required": [
31918
+ "redirect_url"
31919
+ ],
31920
+ "properties": {
31921
+ "redirect_url": {
31922
+ "type": "string"
31923
+ }
31924
+ }
31925
+ }
31926
+ }
31927
+ }
31928
+ }
31929
+ }
31930
+ }
31931
+ },
31932
+ "/mfa/recovery/code": {
31933
+ "post": {
31934
+ "summary": "Answer a recovery-by-factor challenge with a recovery code",
31935
+ "tags": [
31936
+ "mfa"
31937
+ ],
31938
+ "requestBody": {
31939
+ "required": true,
31940
+ "content": {
31941
+ "application/json": {
31942
+ "schema": {
31943
+ "type": "object",
31944
+ "required": [
31945
+ "state",
31946
+ "code"
31947
+ ],
31948
+ "properties": {
31949
+ "state": {
31950
+ "type": "string"
31951
+ },
31952
+ "code": {
31953
+ "type": "string"
31954
+ }
31955
+ }
31956
+ }
31957
+ }
31958
+ }
31959
+ },
31960
+ "responses": {
31961
+ "200": {
31962
+ "description": "Default Response",
31963
+ "content": {
31964
+ "application/json": {
31965
+ "schema": {
31966
+ "type": "object",
31967
+ "required": [
31968
+ "redirect_url"
31969
+ ],
31970
+ "properties": {
31971
+ "redirect_url": {
31972
+ "type": "string"
31973
+ }
31974
+ }
31975
+ }
31976
+ }
31977
+ }
31978
+ }
31979
+ }
31980
+ }
31981
+ },
31826
31982
  "/me": {
31827
31983
  "get": {
31828
31984
  "operationId": "session/me",