@passflow/core 0.0.1 → 0.2.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 (87) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.mjs +3174 -574
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/lib/api/app.d.ts +4 -1
  6. package/dist/lib/api/app.d.ts.map +1 -1
  7. package/dist/lib/api/auth.d.ts +6 -4
  8. package/dist/lib/api/auth.d.ts.map +1 -1
  9. package/dist/lib/api/axios-client.d.ts +26 -4
  10. package/dist/lib/api/axios-client.d.ts.map +1 -1
  11. package/dist/lib/api/index.d.ts +4 -3
  12. package/dist/lib/api/index.d.ts.map +1 -1
  13. package/dist/lib/api/invitation.d.ts +4 -1
  14. package/dist/lib/api/invitation.d.ts.map +1 -1
  15. package/dist/lib/api/model.d.ts +180 -11
  16. package/dist/lib/api/model.d.ts.map +1 -1
  17. package/dist/lib/api/setting.d.ts +4 -1
  18. package/dist/lib/api/setting.d.ts.map +1 -1
  19. package/dist/lib/api/tenant.d.ts +4 -1
  20. package/dist/lib/api/tenant.d.ts.map +1 -1
  21. package/dist/lib/api/two-factor.d.ts +75 -0
  22. package/dist/lib/api/two-factor.d.ts.map +1 -0
  23. package/dist/lib/api/user.d.ts +4 -1
  24. package/dist/lib/api/user.d.ts.map +1 -1
  25. package/dist/lib/constants/index.d.ts +25 -0
  26. package/dist/lib/constants/index.d.ts.map +1 -1
  27. package/dist/lib/device/index.d.ts +17 -0
  28. package/dist/lib/device/index.d.ts.map +1 -0
  29. package/dist/lib/index.d.ts +10 -3
  30. package/dist/lib/index.d.ts.map +1 -1
  31. package/dist/lib/m2m/client.d.ts +196 -0
  32. package/dist/lib/m2m/client.d.ts.map +1 -0
  33. package/dist/lib/m2m/errors.d.ts +107 -0
  34. package/dist/lib/m2m/errors.d.ts.map +1 -0
  35. package/dist/lib/m2m/index.d.ts +27 -0
  36. package/dist/lib/m2m/index.d.ts.map +1 -0
  37. package/dist/lib/m2m/types.d.ts +217 -0
  38. package/dist/lib/m2m/types.d.ts.map +1 -0
  39. package/dist/lib/passflow.d.ts +972 -11
  40. package/dist/lib/passflow.d.ts.map +1 -1
  41. package/dist/lib/services/auth-service.d.ts +29 -4
  42. package/dist/lib/services/auth-service.d.ts.map +1 -1
  43. package/dist/lib/services/index.d.ts +2 -1
  44. package/dist/lib/services/index.d.ts.map +1 -1
  45. package/dist/lib/services/invitation-service.d.ts +2 -2
  46. package/dist/lib/services/tenant-service.d.ts +2 -2
  47. package/dist/lib/services/token-cache-service.d.ts +14 -6
  48. package/dist/lib/services/token-cache-service.d.ts.map +1 -1
  49. package/dist/lib/services/two-factor-service.d.ts +120 -0
  50. package/dist/lib/services/two-factor-service.d.ts.map +1 -0
  51. package/dist/lib/services/user-service.d.ts +1 -1
  52. package/dist/lib/services/user-service.d.ts.map +1 -1
  53. package/dist/lib/storage/index.d.ts +96 -0
  54. package/dist/lib/storage/index.d.ts.map +1 -0
  55. package/dist/lib/store.d.ts +67 -1
  56. package/dist/lib/store.d.ts.map +1 -1
  57. package/dist/lib/token/delivery-manager.d.ts +121 -0
  58. package/dist/lib/token/delivery-manager.d.ts.map +1 -0
  59. package/dist/lib/{token-service → token}/index.d.ts +1 -1
  60. package/dist/lib/token/index.d.ts.map +1 -0
  61. package/dist/lib/token/membership.d.ts.map +1 -0
  62. package/dist/lib/{token-service → token}/service.d.ts +15 -3
  63. package/dist/lib/token/service.d.ts.map +1 -0
  64. package/dist/lib/token/token.d.ts +55 -0
  65. package/dist/lib/token/token.d.ts.map +1 -0
  66. package/dist/lib/types/index.d.ts +5 -3
  67. package/dist/lib/types/index.d.ts.map +1 -1
  68. package/dist/lib/utils/validation.d.ts +54 -0
  69. package/dist/lib/utils/validation.d.ts.map +1 -0
  70. package/dist/tests/storage/fake-storage.d.ts.map +1 -0
  71. package/dist/tests/storage/storage-manager.test.d.ts.map +1 -0
  72. package/dist/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +14 -15
  74. package/dist/lib/device-service/index.d.ts +0 -7
  75. package/dist/lib/device-service/index.d.ts.map +0 -1
  76. package/dist/lib/storage-manager/index.d.ts +0 -37
  77. package/dist/lib/storage-manager/index.d.ts.map +0 -1
  78. package/dist/lib/token-service/index.d.ts.map +0 -1
  79. package/dist/lib/token-service/membership.d.ts.map +0 -1
  80. package/dist/lib/token-service/service.d.ts.map +0 -1
  81. package/dist/lib/token-service/token.d.ts +0 -34
  82. package/dist/lib/token-service/token.d.ts.map +0 -1
  83. package/dist/tests/storage-manager/fake-storage.d.ts.map +0 -1
  84. package/dist/tests/storage-manager/storage-manager.test.d.ts.map +0 -1
  85. /package/dist/lib/{token-service → token}/membership.d.ts +0 -0
  86. /package/dist/tests/{storage-manager → storage}/fake-storage.d.ts +0 -0
  87. /package/dist/tests/{storage-manager → storage}/storage-manager.test.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"passflow.d.ts","sourceRoot":"","sources":["../../lib/passflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"passflow.d.ts","sourceRoot":"","sources":["../../lib/passflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAGhB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,cAAc,EAEnB,4BAA4B,EAC5B,KAAK,uCAAuC,EAC5C,KAAK,mCAAmC,EACxC,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EACjC,KAAK,yCAAyC,EAC9C,KAAK,iCAAiC,EACtC,KAAK,qCAAqC,EAC1C,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAI7B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAE7B,MAAM,OAAO,CAAC;AAGf,OAAO,EAAkC,aAAa,EAAqB,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAE7H,OAAO,EAAqB,aAAa,EAAiB,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGnE,qBAAa,QAAQ;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAe;IAG9C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAqB;IAGzC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,sBAAsB,CAAU;IACxC,OAAO,CAAC,eAAe,CAAS;IAGhC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,gBAAgB,CAAmB;IAGpC,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,gBAAgB,CAAC;IAGnC,OAAO,CAAC,qBAAqB,CAAC,CAAgG;IAC9H,OAAO,CAAC,sBAAsB,CAAC,CAAsB;IAGrD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,SAA0B;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEH,MAAM,EAAE,cAAc;IAmElC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAoB7B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAUrF;YAEY,kBAAkB;IAyBhC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE;IAOlE;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE;IAKpE;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,IAAI,MAAM,GAAG,SAAS;IAI1C,OAAO,CAAC,iBAAiB;IA2EzB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,gCAAgC;IAOxC;;;;;;;;;;;;OAYG;IACH,eAAe;IAIf;;;;;;;;;;OAUG;IACH,oBAAoB;IAIpB;;;;;;;;;;;;;OAaG;IACH,eAAe;IAIf;;;;;;;;;;;OAWG;IACH,gBAAgB;IAKhB;;;;;;;;;;;;;OAaG;IACH,eAAe,IAAI,OAAO;IAW1B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAMpF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAMpF;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB,CAAC,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAIrG;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,0BAA0B,CAAC,OAAO,EAAE,yCAAyC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAMzH;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IAUnB;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAc7B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,sBAAsB,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI;IAInE;;;;;;;;;;;;;;;;OAgBG;IACH,yBAAyB,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI;IAItE;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM;IAepB;;;;;;;;;;;;;;;;;OAiBG;IACG,YAAY,IAAI,OAAO,CAAC,6BAA6B,CAAC;IAsB5D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,sBAAsB,CAAC,OAAO,EAAE,qCAAqC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIxG;;;;;;;;;;;;;;;;;;OAkBG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAOnG;;;;;;;;;;;;OAYG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ5C;;;;;;;;;;;;OAYG;IACG,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAQpD;;;;;;;;;;;;OAYG;IACG,yBAAyB,IAAI,OAAO,CAAC,8BAA8B,CAAC;IAQ1E;;;;;;;;;;;;OAYG;IACG,kBAAkB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAS5D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,eAAe,CAAC,OAAO,EAAE,mCAAmC,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAM3G;;;;;;;;;;;;;;;;;;;OAmBG;IACG,mBAAmB,CAAC,OAAO,EAAE,uCAAuC,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAOnH;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IASnC;;;;;;;;;;;;;;OAcG;IACG,SAAS,CAAC,SAAS,UAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI/D;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IAKlD;;;;;;;;;;;;;OAaG;IACG,eAAe;IAQrB;;;;;;;;;;;;;OAaG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQ1F;;;;;;;;;;;;OAYG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQ5E;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE;QAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,GAAG,OAAO,CAAC,IAAI,CAAC;IASjB;;;;;OAKG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAY9F;;;;;OAKG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAazF;;;;;;;;;;;;;;;;;;;OAmBG;IACG,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAYvF;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAQrC;;;;;;;;;;;;OAYG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQvE;;;;;;;;;;;;OAYG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQvE;;;;;;;;;;;;OAYG;IACG,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS1E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAIhH;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAI3G;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,IAAI,OAAO,0BAA0B,EAAE,iBAAiB;IAIvE;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAMxC;;;;;;;;;;;;OAYG;IACG,kBAAkB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAQ5D;;;;;;;;;;;;;OAaG;IACG,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAQ5D;;;;;;;;;;;;;;OAcG;IACG,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAQ5E;;;;;;;;;;;;;;;;OAgBG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAkBrE;;;;;;;;;;;;;;;OAeG;IACG,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAkBhF;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAQvE;;;;;;;;;;;;;;OAcG;IACG,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAQ1F;;;;;;;;;;;;;OAaG;IACH,+BAA+B,IAAI,OAAO;IAI1C;;;;;;;;;OASG;IACH,aAAa,IAAI,CAAC,GAAG,CAAC;IAMtB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,aAAa,EAAE,yCAAyC,CAAC;IAI3E;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,IAAI,OAAO,aAAa,EAAE,8BAA8B,GAAG,IAAI;IAIlF;;;;;;;;;;;;;OAaG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;;;;;;;OAUG;IACH,qBAAqB,IAAI,IAAI;CAG9B"}
@@ -1,6 +1,6 @@
1
- import { AuthAPI, PassflowAuthorizationResponse, PassflowFederatedAuthExtendedPayload, PassflowFederatedAuthPayload, PassflowPasskeyAuthenticateStartPayload, PassflowPasskeyRegisterStartPayload, PassflowPasswordlessResponse, PassflowPasswordlessSignInCompletePayload, PassflowPasswordlessSignInPayload, PassflowSendPasswordResetEmailPayload, PassflowSignInPayload, PassflowSignUpPayload, PassflowSuccessResponse, PassflowValidationResponse } from '../api';
2
- import { DeviceService } from '../device-service';
3
- import { StorageManager } from '../storage-manager';
1
+ import { AuthAPI, TokenExchangeConfig, PassflowAuthorizationResponse, PassflowFederatedAuthExtendedPayload, PassflowFederatedAuthPayload, PassflowPasskeyAuthenticateStartPayload, PassflowPasskeyRegisterStartPayload, PassflowPasswordlessResponse, PassflowPasswordlessSignInCompletePayload, PassflowPasswordlessSignInPayload, PassflowSendPasswordResetEmailPayload, PassflowSignInPayload, PassflowSignUpPayload, PassflowSuccessResponse, PassflowValidationResponse } from '../api';
2
+ import { DeviceService } from '../device';
3
+ import { StorageManager } from '../storage';
4
4
  import { PassflowStore } from '../store';
5
5
  import { ParsedTokens, Tokens } from '../types';
6
6
  import { TokenCacheService } from './token-cache-service';
@@ -19,13 +19,35 @@ export declare class AuthService {
19
19
  private url;
20
20
  private sessionCallbacks;
21
21
  private appId?;
22
+ private tokenDeliveryManager;
23
+ private tokenExchangeConfig?;
22
24
  constructor(authApi: AuthAPI, deviceService: DeviceService, storageManager: StorageManager, subscribeStore: PassflowStore, tokenCacheService: TokenCacheService, scopes: string[], createTenantForNewUser: boolean, origin: string, url: string, sessionCallbacks: {
23
25
  createSession?: ({ tokens, parsedTokens }: {
24
26
  tokens?: Tokens;
25
27
  parsedTokens?: ParsedTokens;
26
28
  }) => Promise<void>;
27
29
  expiredSession?: () => Promise<void>;
28
- }, appId?: string | undefined);
30
+ }, appId?: string | undefined, tokenExchangeConfig?: TokenExchangeConfig);
31
+ /**
32
+ * Initialize session state on page load for cookie/BFF mode
33
+ */
34
+ private initializeSession;
35
+ /**
36
+ * Restore session for cookie/BFF mode on page load
37
+ * Validates that HttpOnly cookies are still valid
38
+ * @returns true if session is valid, false otherwise
39
+ */
40
+ restoreSession(): Promise<boolean>;
41
+ /**
42
+ * Process successful authentication response
43
+ * Handles token storage, session state, CSRF tokens
44
+ * In BFF mode, forwards tokens to BFF server
45
+ */
46
+ private processAuthResponse;
47
+ /**
48
+ * Forward tokens to BFF server for httpOnly cookie storage
49
+ */
50
+ private forwardTokensToBFF;
29
51
  signIn(payload: PassflowSignInPayload): Promise<PassflowAuthorizationResponse>;
30
52
  signUp(payload: PassflowSignUpPayload): Promise<PassflowAuthorizationResponse>;
31
53
  passwordlessSignIn(payload: PassflowPasswordlessSignInPayload): Promise<PassflowPasswordlessResponse>;
@@ -53,6 +75,7 @@ export declare class AuthService {
53
75
  }): void;
54
76
  /**
55
77
  * Check if user is authenticated
78
+ * CRITICAL: Cookie/BFF mode checks ID token + session state, NOT access_token
56
79
  */
57
80
  isAuthenticated(parsedTokens: ParsedTokens): boolean;
58
81
  /**
@@ -61,6 +84,8 @@ export declare class AuthService {
61
84
  submitSessionCheck(doRefresh?: boolean): Promise<Tokens | undefined>;
62
85
  /**
63
86
  * Get tokens and refresh if needed
87
+ * Cookie/BFF mode: Returns ID token only (access/refresh in HttpOnly cookies)
88
+ * JSON mode: Returns all tokens from localStorage
64
89
  */
65
90
  getTokens(doRefresh: boolean): Promise<Tokens | undefined>;
66
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth-service.d.ts","sourceRoot":"","sources":["../../../lib/services/auth-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-service.d.ts","sourceRoot":"","sources":["../../../lib/services/auth-service.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from './auth-service';
2
2
  export * from './invitation-service';
3
3
  export * from './tenant-service';
4
4
  export * from './tenant-user-membership';
5
- export * from './user-service';
6
5
  export * from './token-cache-service';
6
+ export * from './two-factor-service';
7
+ export * from './user-service';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
@@ -3,8 +3,8 @@ import type { InvitationAPI, InvitationsPaginatedList, InviteLinkResponse, Passf
3
3
  * Service for managing invitations
4
4
  */
5
5
  export declare class InvitationService {
6
- private invitationAPI;
7
- constructor(invitationAPI: InvitationAPI);
6
+ private invitationApi;
7
+ constructor(invitationApi: InvitationAPI);
8
8
  /**
9
9
  * Requests an invitation link that can be used to invite users
10
10
  * @param payload Request invitation payload
@@ -5,10 +5,10 @@ import { TenantUserMembership } from './tenant-user-membership';
5
5
  * Service for managing tenants
6
6
  */
7
7
  export declare class TenantService {
8
- private tenantAPI;
8
+ private tenantApi;
9
9
  private scopes;
10
10
  private logger;
11
- constructor(tenantAPI: TenantAPI, scopes: string[], logger?: Logger);
11
+ constructor(tenantApi: TenantAPI, scopes: string[], logger?: Logger);
12
12
  /**
13
13
  * Handle Passflow API errors
14
14
  * @param error The error object
@@ -1,5 +1,5 @@
1
1
  import { AuthAPI } from '../api';
2
- import { StorageManager } from '../storage-manager';
2
+ import { StorageManager } from '../storage';
3
3
  import { PassflowStore } from '../store';
4
4
  import type { ParsedTokens, Tokens } from '../types';
5
5
  export declare class TokenCacheService {
@@ -10,17 +10,25 @@ export declare class TokenCacheService {
10
10
  parsedTokensCache: ParsedTokens | undefined;
11
11
  private checkInterval;
12
12
  private readonly CHECK_INTERVAL;
13
+ private visibilityChangeHandler;
13
14
  isRefreshing: boolean;
14
- isExpired: boolean;
15
+ tokenExpiredFlag: boolean;
15
16
  constructor(storageManager: StorageManager, authApi: AuthAPI, subscribeStore: PassflowStore);
16
17
  initialize(): void;
17
18
  private refreshTokensCache;
18
19
  startTokenCheck(): void;
20
+ private setupVisibilityListener;
21
+ private setupPageUnloadHandler;
19
22
  private stopTokenCheck;
23
+ /**
24
+ * Cleanup method to stop all intervals and remove event listeners.
25
+ * Should be called when the service is no longer needed.
26
+ */
27
+ destroy(): void;
20
28
  setTokensCache(tokens: Tokens | undefined): void;
21
- getTokensCache(): Tokens | undefined;
22
- getTokensCacheWithRefresh(): Promise<Tokens | undefined>;
23
- getParsedTokenCache(): ParsedTokens | undefined;
24
- tokensCacheIsExpired(): boolean;
29
+ getTokens(): Tokens | undefined;
30
+ getTokensWithRefresh(): Promise<Tokens | undefined>;
31
+ getParsedTokens(): ParsedTokens | undefined;
32
+ isExpired(): boolean;
25
33
  }
26
34
  //# sourceMappingURL=token-cache-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-cache-service.d.ts","sourceRoot":"","sources":["../../../lib/services/token-cache-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAA+B,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAErD,qBAAa,iBAAiB;IAU1B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IAXxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,iBAAiB,EAAE,YAAY,GAAG,SAAS,CAAC;IAE5C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAM;IACrC,YAAY,UAAS;IACrB,SAAS,UAAS;gBAGR,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,aAAa;IAMvC,UAAU;YA4BI,kBAAkB;IA0BhC,eAAe;IAkBf,OAAO,CAAC,cAAc;IAOtB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAchD,cAAc;IAIR,yBAAyB;IAsB/B,mBAAmB;IAInB,oBAAoB;CAKrB"}
1
+ {"version":3,"file":"token-cache-service.d.ts","sourceRoot":"","sources":["../../../lib/services/token-cache-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAA+B,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAErD,qBAAa,iBAAiB;IAW1B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IAZxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,iBAAiB,EAAE,YAAY,GAAG,SAAS,CAAC;IAE5C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,YAAY,UAAS;IACrB,gBAAgB,UAAS;gBAGf,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,aAAa;IAOvC,UAAU;YAqCI,kBAAkB;IA0BhC,eAAe;IA0Bf,OAAO,CAAC,uBAAuB;IAsB/B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,cAAc;IAYtB;;;OAGG;IACH,OAAO;IAIP,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAmBhD,SAAS;IAIH,oBAAoB;IA8B1B,eAAe;IAIf,SAAS;CAaV"}
@@ -0,0 +1,120 @@
1
+ import { TwoFactorConfirmResponse, TwoFactorDisableResponse, TwoFactorRecoveryResponse, TwoFactorRegenerateResponse, TwoFactorSetupMagicLinkSession, TwoFactorSetupMagicLinkValidationResponse, TwoFactorSetupResponse, TwoFactorStatusResponse, TwoFactorVerifyResponse } from '../api/model';
2
+ import { TwoFactorApiClient } from '../api/two-factor';
3
+ import { PassflowStore } from '../store';
4
+ /**
5
+ * Service for managing Two-Factor Authentication
6
+ */
7
+ export declare class TwoFactorService {
8
+ private twoFactorApi;
9
+ private subscribeStore;
10
+ private partialAuthState?;
11
+ private readonly PARTIAL_AUTH_TIMEOUT_MS;
12
+ private readonly SESSION_STORAGE_KEY;
13
+ private totpDigits;
14
+ private magicLinkSession?;
15
+ constructor(twoFactorApi: TwoFactorApiClient, subscribeStore: PassflowStore);
16
+ /**
17
+ * Emit error event and throw the error
18
+ * Helper method to ensure errors are properly emitted to subscribers
19
+ */
20
+ private emitErrorAndThrow;
21
+ /**
22
+ * Get 2FA enrollment status for current user
23
+ */
24
+ getStatus(): Promise<TwoFactorStatusResponse>;
25
+ /**
26
+ * Begin 2FA setup process
27
+ * Returns secret and QR code for authenticator app
28
+ */
29
+ beginSetup(): Promise<TwoFactorSetupResponse>;
30
+ /**
31
+ * Confirm 2FA setup with TOTP code
32
+ * Returns recovery codes that MUST be displayed to user
33
+ */
34
+ confirmSetup(code: string): Promise<TwoFactorConfirmResponse>;
35
+ /**
36
+ * Verify TOTP code during login
37
+ * Completes authentication if successful
38
+ */
39
+ verify(code: string): Promise<TwoFactorVerifyResponse>;
40
+ /**
41
+ * Use recovery code for authentication
42
+ * Completes authentication if successful
43
+ */
44
+ useRecoveryCode(code: string): Promise<TwoFactorRecoveryResponse>;
45
+ /**
46
+ * Disable 2FA (requires TOTP verification)
47
+ */
48
+ disable(code: string): Promise<TwoFactorDisableResponse>;
49
+ /**
50
+ * Regenerate recovery codes
51
+ */
52
+ regenerateRecoveryCodes(code: string): Promise<TwoFactorRegenerateResponse>;
53
+ /**
54
+ * Check if 2FA verification is required (local state check)
55
+ * Returns true if user has signed in but needs 2FA verification
56
+ */
57
+ isVerificationRequired(): boolean;
58
+ /**
59
+ * Set partial auth state when login requires 2FA
60
+ * Called internally via event listener when AuthService emits TwoFactorRequired
61
+ */
62
+ setPartialAuthState(email?: string, challengeId?: string, tfaToken?: string): void;
63
+ /**
64
+ * Clear partial auth state
65
+ * Called on logout or successful verification
66
+ */
67
+ clearPartialAuthState(): void;
68
+ /**
69
+ * Attempt to recover partial auth state from sessionStorage
70
+ * Called before verification operations to handle page refresh
71
+ */
72
+ private recoverPartialAuthState;
73
+ /**
74
+ * Validate magic link token for 2FA setup
75
+ *
76
+ * This method validates an admin-generated magic link token and
77
+ * creates a scoped session (scope: "2fa_setup") that can ONLY be
78
+ * used for completing 2FA setup operations.
79
+ *
80
+ * Session characteristics:
81
+ * - Stored in memory only (no persistence across page reloads)
82
+ * - Short-lived (typically 1 hour expiration)
83
+ * - Cannot be refreshed
84
+ * - Cannot be promoted to full authentication
85
+ * - Only valid for 2FA setup endpoints
86
+ *
87
+ * @param token - Magic link token from URL parameter
88
+ * @returns Validation response with session details
89
+ */
90
+ validateTwoFactorSetupMagicLink(token: string): Promise<TwoFactorSetupMagicLinkValidationResponse>;
91
+ /**
92
+ * Get current magic link session (if any)
93
+ * Used by React SDK to access session token for API calls
94
+ *
95
+ * @returns Active magic link session or null if none/expired
96
+ */
97
+ getMagicLinkSession(): TwoFactorSetupMagicLinkSession | null;
98
+ /**
99
+ * Clear magic link session
100
+ * Called after successful setup completion or on error
101
+ */
102
+ clearMagicLinkSession(): void;
103
+ /**
104
+ * Check if magic link session is active
105
+ * Used by React SDK to determine if form can use magic link auth
106
+ */
107
+ hasMagicLinkSession(): boolean;
108
+ /**
109
+ * Get the session token from magic link session (if active)
110
+ * Used by AxiosClient for injecting auth header on 2FA setup endpoints
111
+ */
112
+ getMagicLinkSessionToken(): string | null;
113
+ /**
114
+ * Get configured TOTP digit count
115
+ * Returns the number of digits (6 or 8) for TOTP codes
116
+ * Useful for UI components that need to render the correct number of input fields
117
+ */
118
+ getTotpDigits(): 6 | 8;
119
+ }
120
+ //# sourceMappingURL=two-factor-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"two-factor-service.d.ts","sourceRoot":"","sources":["../../../lib/services/two-factor-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,yCAAyC,EACzC,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAiB,aAAa,EAAE,MAAM,UAAU,CAAC;AAcxD;;GAEG;AACH,qBAAa,gBAAgB;IAazB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;IAbxB,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAiB;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IAIhE,OAAO,CAAC,UAAU,CAAY;IAG9B,OAAO,CAAC,gBAAgB,CAAC,CAAiC;gBAGhD,YAAY,EAAE,kBAAkB,EAChC,cAAc,EAAE,aAAa;IAgBvC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAanD;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAcnD;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA2BnE;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAmC5D;;;OAGG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAmDvE;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAe9D;;OAEG;IACG,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IA2BjF;;;OAGG;IACH,sBAAsB,IAAI,OAAO;IAiBjC;;;OAGG;IACH,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IA0BlF;;;OAGG;IACH,qBAAqB,IAAI,IAAI;IAW7B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;;;;;;;;;;;;;;;OAgBG;IACG,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,yCAAyC,CAAC;IAgCxG;;;;;OAKG;IACH,mBAAmB,IAAI,8BAA8B,GAAG,IAAI;IAY5D;;;OAGG;IACH,qBAAqB,IAAI,IAAI;IAI7B;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;OAGG;IACH,wBAAwB,IAAI,MAAM,GAAG,IAAI;IAKzC;;;;OAIG;IACH,aAAa,IAAI,CAAC,GAAG,CAAC;CAGvB"}
@@ -35,5 +35,5 @@ export declare class UserService {
35
35
  passkeyDisplayName?: string;
36
36
  }): Promise<void>;
37
37
  }
38
- import { DeviceService } from '../device-service';
38
+ import { DeviceService } from '../device';
39
39
  //# sourceMappingURL=user-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-service.d.ts","sourceRoot":"","sources":["../../../lib/services/user-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,uBAAuB,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE9D;;GAEG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;gBADb,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa;IAGtC;;;OAGG;IACH,eAAe;IAIf;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIpF;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAItE;;;;OAIG;IACG,cAAc,CAAC,EACnB,cAAc,EACd,eAAe,EACf,kBAAkB,GACnB,GAAE;QACD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC;CAevB;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"user-service.d.ts","sourceRoot":"","sources":["../../../lib/services/user-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,uBAAuB,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE9D;;GAEG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;gBADb,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa;IAGtC;;;OAGG;IACH,eAAe;IAIf;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIpF;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAItE;;;;OAIG;IACG,cAAc,CAAC,EACnB,cAAc,EACd,eAAe,EACf,kBAAkB,GACnB,GAAE;QACD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC;CAevB;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Storage Manager
3
+ *
4
+ * Abstraction layer over browser localStorage for token and data persistence.
5
+ * Supports custom storage implementations for testing and alternative platforms.
6
+ * Handles key prefixing for multi-app scenarios.
7
+ *
8
+ * @module storage
9
+ */
10
+ import { TokenType } from '../token';
11
+ import { TokenDeliveryMode, Tokens } from '../types';
12
+ export type Storage = {
13
+ setItem: (key: string, value: string) => void;
14
+ getItem: (key: string) => string | null;
15
+ removeItem: (key: string) => void;
16
+ };
17
+ export interface StorageManagerParams {
18
+ storage?: Storage;
19
+ prefix?: string;
20
+ }
21
+ export declare class StorageManager {
22
+ private keyStoragePrefix;
23
+ readonly scopes: string;
24
+ readonly deviceId: string;
25
+ readonly invitationToken: string;
26
+ readonly previousRedirectUrl: string;
27
+ private readonly STORAGE_PREFIX;
28
+ private readonly ID_TOKEN_KEY;
29
+ private readonly CSRF_TOKEN_KEY;
30
+ private readonly DELIVERY_MODE_KEY;
31
+ private storage;
32
+ constructor({ storage, prefix }?: StorageManagerParams);
33
+ /**
34
+ * Save tokens to storage with conditional logic based on delivery mode
35
+ * In cookie/BFF mode: ONLY save ID token (not access/refresh tokens)
36
+ * In JSON mode: save all tokens (existing behavior)
37
+ */
38
+ saveTokens(tokens: Tokens, deliveryMode?: TokenDeliveryMode): void;
39
+ getToken(tokenType: TokenType): string | undefined;
40
+ /**
41
+ * Get tokens from storage with conditional logic based on delivery mode
42
+ * In cookie/BFF mode: return ID token only (access/refresh in HttpOnly cookies)
43
+ * In JSON mode: return all stored tokens (existing behavior)
44
+ */
45
+ getTokens(): Tokens | undefined;
46
+ getScopes(): string[] | undefined;
47
+ deleteToken(tokenType: TokenType): void;
48
+ deleteTokens(): void;
49
+ getDeviceId(): string | undefined;
50
+ setDeviceId(deviceId: string): void;
51
+ deleteDeviceId(): void;
52
+ setInvitationToken(token: string): void;
53
+ getInvitationToken(): string | undefined;
54
+ deleteInvitationToken(): void;
55
+ setPreviousRedirectUrl(url: string): void;
56
+ getPreviousRedirectUrl(): string | undefined;
57
+ deletePreviousRedirectUrl(): void;
58
+ /**
59
+ * Set the token delivery mode in storage
60
+ */
61
+ setDeliveryMode(mode: TokenDeliveryMode): void;
62
+ /**
63
+ * Get the token delivery mode from storage
64
+ */
65
+ getDeliveryMode(): TokenDeliveryMode | undefined;
66
+ /**
67
+ * Clear the delivery mode from storage
68
+ */
69
+ clearDeliveryMode(): void;
70
+ /**
71
+ * Get the ID token from storage (cookie mode)
72
+ */
73
+ getIdToken(): string | undefined;
74
+ /**
75
+ * Set the ID token in storage (cookie mode)
76
+ */
77
+ setIdToken(token: string): void;
78
+ /**
79
+ * Clear the ID token from storage
80
+ */
81
+ clearIdToken(): void;
82
+ /**
83
+ * Get the CSRF token from storage
84
+ */
85
+ getCsrfToken(): string | undefined;
86
+ /**
87
+ * Set the CSRF token in storage
88
+ */
89
+ setCsrfToken(token: string): void;
90
+ /**
91
+ * Clear the CSRF token from storage
92
+ */
93
+ clearCsrfToken(): void;
94
+ private getKeyForTokenType;
95
+ }
96
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/storage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,gBAAgB,CAAM;IAC9B,QAAQ,CAAC,MAAM,SAA2C;IAC1D,QAAQ,CAAC,QAAQ,SAA8C;IAC/D,QAAQ,CAAC,eAAe,SAAqD;IAC7E,QAAQ,CAAC,mBAAmB,SAAyD;IAGrF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyC;IAE3E,OAAO,CAAC,OAAO,CAAU;gBAEb,EAAE,OAAO,EAAE,MAAM,EAAE,GAAE,oBAAyB;IAK1D;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAkBlE,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IAKlD;;;;OAIG;IACH,SAAS,IAAI,MAAM,GAAG,SAAS;IAwB/B,SAAS,IAAI,MAAM,EAAE,GAAG,SAAS;IAIjC,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKvC,YAAY,IAAI,IAAI;IAWpB,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,cAAc,IAAI,IAAI;IAItB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC,kBAAkB,IAAI,MAAM,GAAG,SAAS;IAIxC,qBAAqB,IAAI,IAAI;IAI7B,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzC,sBAAsB,IAAI,MAAM,GAAG,SAAS;IAI5C,yBAAyB,IAAI,IAAI;IAMjC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAQ9C;;OAEG;IACH,eAAe,IAAI,iBAAiB,GAAG,SAAS;IAYhD;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAUzB;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAShC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ/B;;OAEG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IASlC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjC;;OAEG;IACH,cAAc,IAAI,IAAI;IAQtB,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Passflow Store
3
+ *
4
+ * Event subscription system using the Observer pattern.
5
+ * Manages authentication event notifications to subscribers.
6
+ * Supports filtered subscriptions for specific event types.
7
+ *
8
+ * @module store
9
+ */
1
10
  import { ParsedTokens, Tokens } from './types';
2
11
  /**
3
12
  * Passflow event types
@@ -8,10 +17,21 @@ export declare enum PassflowEvent {
8
17
  Register = "register",
9
18
  RegisterStart = "register:start",
10
19
  SignOut = "signout",
20
+ SessionRestored = "session:restored",
11
21
  Error = "error",
12
22
  Refresh = "refresh",
13
23
  RefreshStart = "refresh:start",
14
- TokenCacheExpired = "token-cache-expired"
24
+ TokenCacheExpired = "token-cache-expired",
25
+ TwoFactorRequired = "2fa:required",
26
+ TwoFactorSetupStarted = "2fa:setup_started",
27
+ TwoFactorEnabled = "2fa:enabled",
28
+ TwoFactorDisabled = "2fa:disabled",
29
+ TwoFactorVerified = "2fa:verified",
30
+ TwoFactorRecoveryUsed = "2fa:recovery_used",
31
+ TwoFactorRecoveryCodesLow = "2fa:recovery_low",
32
+ TwoFactorRecoveryCodesExhausted = "2fa:recovery_exhausted",
33
+ TwoFactorSetupMagicLinkValidated = "2fa:magic_link_validated",
34
+ TwoFactorSetupMagicLinkFailed = "2fa:magic_link_failed"
15
35
  }
16
36
  /**
17
37
  * Error payload interface for structured error information
@@ -44,6 +64,12 @@ export type PassflowEventPayload = {
44
64
  [PassflowEvent.SignOut]: {
45
65
  userId?: string;
46
66
  };
67
+ [PassflowEvent.SessionRestored]: {
68
+ id: string;
69
+ email?: string;
70
+ username?: string;
71
+ [key: string]: unknown;
72
+ };
47
73
  [PassflowEvent.Error]: ErrorPayload;
48
74
  [PassflowEvent.Refresh]: {
49
75
  tokens?: Tokens;
@@ -55,6 +81,46 @@ export type PassflowEventPayload = {
55
81
  [PassflowEvent.TokenCacheExpired]: {
56
82
  isExpired: boolean;
57
83
  };
84
+ [PassflowEvent.TwoFactorRequired]: {
85
+ email: string;
86
+ challengeId: string;
87
+ tfaToken: string;
88
+ };
89
+ [PassflowEvent.TwoFactorSetupStarted]: {
90
+ secret: string;
91
+ };
92
+ [PassflowEvent.TwoFactorEnabled]: {
93
+ recoveryCodes: string[];
94
+ clearRecoveryCodes: () => void;
95
+ };
96
+ [PassflowEvent.TwoFactorDisabled]: Record<string, never>;
97
+ [PassflowEvent.TwoFactorVerified]: {
98
+ tokens?: Tokens;
99
+ };
100
+ [PassflowEvent.TwoFactorRecoveryUsed]: {
101
+ tokens?: Tokens;
102
+ remainingCodes: number;
103
+ };
104
+ [PassflowEvent.TwoFactorRecoveryCodesLow]: {
105
+ tokens?: Tokens;
106
+ remainingCodes: number;
107
+ };
108
+ [PassflowEvent.TwoFactorRecoveryCodesExhausted]: {
109
+ tokens?: Tokens;
110
+ };
111
+ [PassflowEvent.TwoFactorSetupMagicLinkValidated]: {
112
+ userId: string;
113
+ appId?: string | null;
114
+ expiresIn: number;
115
+ sessionToken: string;
116
+ };
117
+ [PassflowEvent.TwoFactorSetupMagicLinkFailed]: {
118
+ error: {
119
+ code: 'INVALID_TOKEN' | 'EXPIRED_TOKEN' | 'REVOKED_TOKEN' | 'RATE_LIMITED' | 'SERVER_ERROR';
120
+ message: string;
121
+ retryAfter?: number;
122
+ };
123
+ };
58
124
  };
59
125
  /**
60
126
  * Passflow subscriber interface
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../lib/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE/C;;GAEG;AACH,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,WAAW,iBAAiB;IAC5B,QAAQ,aAAa;IACrB,aAAa,mBAAmB;IAChC,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,YAAY,kBAAkB;IAC9B,iBAAiB,wBAAwB;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IACzE,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IAC3E,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IACpC,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IAC1E,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC9F;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAiE;IAEpF;;;;OAIG;IACH,SAAS,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI;IASzE;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI;IAiB3E;;;;OAIG;IACH,MAAM,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI;CAOvF"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../lib/store.ts"],"names":[],"mappings":"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"}