@supabase/auth-js 2.72.1-rc.1 → 2.73.0-rc.5

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 (72) hide show
  1. package/dist/main/GoTrueClient.d.ts +7 -1
  2. package/dist/main/GoTrueClient.d.ts.map +1 -1
  3. package/dist/main/GoTrueClient.js +114 -33
  4. package/dist/main/GoTrueClient.js.map +1 -1
  5. package/dist/main/lib/base64url.d.ts +3 -2
  6. package/dist/main/lib/base64url.d.ts.map +1 -1
  7. package/dist/main/lib/base64url.js.map +1 -1
  8. package/dist/main/lib/errors.d.ts +1 -1
  9. package/dist/main/lib/errors.d.ts.map +1 -1
  10. package/dist/main/lib/errors.js.map +1 -1
  11. package/dist/main/lib/helpers.d.ts +2 -1
  12. package/dist/main/lib/helpers.d.ts.map +1 -1
  13. package/dist/main/lib/helpers.js.map +1 -1
  14. package/dist/main/lib/types.d.ts +329 -314
  15. package/dist/main/lib/types.d.ts.map +1 -1
  16. package/dist/main/lib/types.js +17 -0
  17. package/dist/main/lib/types.js.map +1 -1
  18. package/dist/main/lib/version.d.ts +1 -1
  19. package/dist/main/lib/version.js +1 -1
  20. package/dist/main/lib/webauthn.d.ts +274 -0
  21. package/dist/main/lib/webauthn.d.ts.map +1 -0
  22. package/dist/main/lib/webauthn.dom.d.ts +583 -0
  23. package/dist/main/lib/webauthn.dom.d.ts.map +1 -0
  24. package/dist/main/lib/webauthn.dom.js +4 -0
  25. package/dist/main/lib/webauthn.dom.js.map +1 -0
  26. package/dist/main/lib/webauthn.errors.d.ts +80 -0
  27. package/dist/main/lib/webauthn.errors.d.ts.map +1 -0
  28. package/dist/main/lib/webauthn.errors.js +265 -0
  29. package/dist/main/lib/webauthn.errors.js.map +1 -0
  30. package/dist/main/lib/webauthn.js +702 -0
  31. package/dist/main/lib/webauthn.js.map +1 -0
  32. package/dist/module/GoTrueClient.d.ts +7 -1
  33. package/dist/module/GoTrueClient.d.ts.map +1 -1
  34. package/dist/module/GoTrueClient.js +120 -39
  35. package/dist/module/GoTrueClient.js.map +1 -1
  36. package/dist/module/lib/base64url.d.ts +3 -2
  37. package/dist/module/lib/base64url.d.ts.map +1 -1
  38. package/dist/module/lib/base64url.js.map +1 -1
  39. package/dist/module/lib/errors.d.ts +1 -1
  40. package/dist/module/lib/errors.d.ts.map +1 -1
  41. package/dist/module/lib/errors.js.map +1 -1
  42. package/dist/module/lib/helpers.d.ts +2 -1
  43. package/dist/module/lib/helpers.d.ts.map +1 -1
  44. package/dist/module/lib/helpers.js.map +1 -1
  45. package/dist/module/lib/types.d.ts +329 -314
  46. package/dist/module/lib/types.d.ts.map +1 -1
  47. package/dist/module/lib/types.js +17 -0
  48. package/dist/module/lib/types.js.map +1 -1
  49. package/dist/module/lib/version.d.ts +1 -1
  50. package/dist/module/lib/version.js +1 -1
  51. package/dist/module/lib/webauthn.d.ts +274 -0
  52. package/dist/module/lib/webauthn.d.ts.map +1 -0
  53. package/dist/module/lib/webauthn.dom.d.ts +583 -0
  54. package/dist/module/lib/webauthn.dom.d.ts.map +1 -0
  55. package/dist/module/lib/webauthn.dom.js +3 -0
  56. package/dist/module/lib/webauthn.dom.js.map +1 -0
  57. package/dist/module/lib/webauthn.errors.d.ts +80 -0
  58. package/dist/module/lib/webauthn.errors.d.ts.map +1 -0
  59. package/dist/module/lib/webauthn.errors.js +257 -0
  60. package/dist/module/lib/webauthn.errors.js.map +1 -0
  61. package/dist/module/lib/webauthn.js +685 -0
  62. package/dist/module/lib/webauthn.js.map +1 -0
  63. package/package.json +1 -1
  64. package/src/GoTrueClient.ts +282 -81
  65. package/src/lib/base64url.ts +4 -2
  66. package/src/lib/errors.ts +1 -1
  67. package/src/lib/helpers.ts +2 -1
  68. package/src/lib/types.ts +465 -353
  69. package/src/lib/version.ts +1 -1
  70. package/src/lib/webauthn.dom.ts +636 -0
  71. package/src/lib/webauthn.errors.ts +317 -0
  72. package/src/lib/webauthn.ts +929 -0
@@ -2,7 +2,7 @@ import GoTrueAdminApi from './GoTrueAdminApi';
2
2
  import { AuthError } from './lib/errors';
3
3
  import { Fetch } from './lib/fetch';
4
4
  import { Deferred } from './lib/helpers';
5
- import type { AuthChangeEvent, AuthResponse, AuthTokenResponse, AuthTokenResponsePassword, AuthOtpResponse, CallRefreshTokenResult, GoTrueClientOptions, InitializeResult, OAuthResponse, SSOResponse, Session, SignInWithIdTokenCredentials, SignInWithOAuthCredentials, SignInWithPasswordCredentials, SignInWithPasswordlessCredentials, SignUpWithPasswordCredentials, SignInWithSSO, SignOut, Subscription, SupportedStorage, User, UserAttributes, UserResponse, VerifyOtpParams, GoTrueMFAApi, ResendParams, AuthFlowType, LockFunc, UserIdentity, SignInAnonymouslyCredentials, JWK, JwtPayload, JwtHeader, Web3Credentials } from './lib/types';
5
+ import type { AuthChangeEvent, AuthFlowType, AuthOtpResponse, AuthResponse, AuthTokenResponse, AuthTokenResponsePassword, CallRefreshTokenResult, GoTrueClientOptions, GoTrueMFAApi, InitializeResult, JWK, JwtHeader, JwtPayload, LockFunc, OAuthResponse, ResendParams, Session, SignInAnonymouslyCredentials, SignInWithIdTokenCredentials, SignInWithOAuthCredentials, SignInWithPasswordCredentials, SignInWithPasswordlessCredentials, SignInWithSSO, SignOut, SignUpWithPasswordCredentials, SSOResponse, Subscription, SupportedStorage, User, UserAttributes, UserIdentity, UserResponse, VerifyOtpParams, Web3Credentials } from './lib/types';
6
6
  export default class GoTrueClient {
7
7
  private static nextInstanceID;
8
8
  private instanceID;
@@ -354,6 +354,12 @@ export default class GoTrueClient {
354
354
  * This method supports the PKCE flow.
355
355
  */
356
356
  linkIdentity(credentials: SignInWithOAuthCredentials): Promise<OAuthResponse>;
357
+ /**
358
+ * Links an OIDC identity to an existing user.
359
+ */
360
+ linkIdentity(credentials: SignInWithIdTokenCredentials): Promise<AuthTokenResponse>;
361
+ private linkIdentityOAuth;
362
+ private linkIdentityIdToken;
357
363
  /**
358
364
  * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.
359
365
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GoTrueClient.d.ts","sourceRoot":"","sources":["../../src/GoTrueClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GoTrueClient.d.ts","sourceRoot":"","sources":["../../src/GoTrueClient.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAU7C,OAAO,EACL,SAAS,EAaV,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,EAMN,MAAM,aAAa,CAAA;AACpB,OAAO,EAGL,QAAQ,EAeT,MAAM,eAAe,CAAA;AAOtB,OAAO,KAAK,EACV,eAAe,EAEf,YAAY,EAcZ,eAAe,EACf,YAAY,EAEZ,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EAItB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,GAAG,EACH,SAAS,EACT,UAAU,EACV,QAAQ,EAgBR,aAAa,EAGb,YAAY,EACZ,OAAO,EACP,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,iCAAiC,EACjC,aAAa,EACb,OAAO,EACP,6BAA6B,EAG7B,WAAW,EAEX,YAAY,EACZ,gBAAgB,EAChB,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAA;AAqDpB,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAI;IAEjC,OAAO,CAAC,UAAU,CAAQ;IAE1B;;;OAGG;IACH,KAAK,EAAE,cAAc,CAAA;IACrB;;OAEG;IACH,GAAG,EAAE,YAAY,CAAA;IACjB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAE5B,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAA;IAEhC;;OAEG;IACH,SAAS,KAAK,IAAI,IAIQ;QAAE,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE,CAFxC;IAED,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE,EAExC;IAED,SAAS,KAAK,cAAc,IAIQ,MAAM,CAFzC;IAED,SAAS,KAAK,cAAc,CAAC,KAAK,EAAE,MAAM,EAEzC;IAED,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAA;IACnC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAA;IACnC;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAO;IACrD,SAAS,CAAC,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAO;IAChE,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAY;IACpE,SAAS,CAAC,iBAAiB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAO;IACzE,SAAS,CAAC,yBAAyB,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAO;IACvE,SAAS,CAAC,kBAAkB,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAO;IAC5E;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAO;IACpE,SAAS,CAAC,kBAAkB,UAAO;IACnC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,OAAO,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KACtB,CAAA;IACD,SAAS,CAAC,4BAA4B,UAAQ;IAC9C,SAAS,CAAC,yBAAyB,UAAQ;IAC3C,SAAS,CAAC,KAAK,EAAE,KAAK,CAAA;IACtB,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAA;IACxB,SAAS,CAAC,YAAY,UAAQ;IAC9B,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAK;IAE5C;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAO;IAE1D,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAA;IACnC,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAc;IAEzE;;OAEG;gBACS,OAAO,EAAE,mBAAmB;IAkGxC,OAAO,CAAC,MAAM;IAWd;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAc7C;;;;;OAKG;YACW,WAAW;IA8EzB;;;;OAIG;IACG,iBAAiB,CAAC,WAAW,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,YAAY,CAAC;IAiC1F;;;;;;;;;OASG;IACG,MAAM,CAAC,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,YAAY,CAAC;IAqE/E;;;;;;;OAOG;IACG,kBAAkB,CACtB,WAAW,EAAE,6BAA6B,GACzC,OAAO,CAAC,yBAAyB,CAAC;IAyDrC;;;OAGG;IACG,eAAe,CAAC,WAAW,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAStF;;OAEG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQ1E;;;;;;OAMG;IACG,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CACvD;QACE,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,IAAI,EAAE,IAAI,CAAA;SAAE,CAAA;QACtC,KAAK,EAAE,IAAI,CAAA;KACZ,GACD;QAAE,IAAI,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,IAAI,EAAE,IAAI,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAC5D;YAaa,kBAAkB;YA2IlB,gBAAgB;YA4LhB,uBAAuB;IAgDrC;;;OAGG;IACG,iBAAiB,CAAC,WAAW,EAAE,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsC9F;;;;;;;;;;;;;;;;OAgBG;IACG,aAAa,CAAC,WAAW,EAAE,iCAAiC,GAAG,OAAO,CAAC,eAAe,CAAC;IAkD7F;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IA+C/D;;;;;;;;;;;;;OAaG;IACG,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAkChE;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC;YAQ/B,eAAe;IAwB7B;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAsCjE;;;;;;;;;;OAUG;IACG,UAAU;;;;;;;;;;;;;;;;IAYhB;;OAEG;YACW,YAAY;IAoE1B;;;;;OAKG;YACW,WAAW;IAmCzB;;;;OAIG;YACW,aAAa;IA4G3B;;;;;;OAMG;IACG,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAcpC,QAAQ;IA4CtB;;OAEG;IACG,UAAU,CACd,UAAU,EAAE,cAAc,EAC1B,OAAO,GAAE;QACP,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAChC,GACL,OAAO,CAAC,YAAY,CAAC;cAQR,WAAW,CACzB,UAAU,EAAE,cAAc,EAC1B,OAAO,GAAE;QACP,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAChC,GACL,OAAO,CAAC,YAAY,CAAC;IA8CxB;;;;OAIG;IACG,UAAU,CAAC,cAAc,EAAE;QAC/B,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,YAAY,CAAC;cAQT,WAAW,CAAC,cAAc,EAAE;QAC1C,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,YAAY,CAAC;IAuDzB;;;;;OAKG;IACG,cAAc,CAAC,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;cAQvE,eAAe,CAAC,cAAc,CAAC,EAAE;QAC/C,aAAa,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,YAAY,CAAC;IAoCzB;;OAEG;YACW,kBAAkB;IAmIhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;YACW,eAAe;IAS7B;;;;;;;OAOG;IACG,OAAO,CAAC,OAAO,GAAE,OAA6B,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;cAQ3E,QAAQ,CACtB,EAAE,KAAK,EAAE,GAAE,OAA6B,GACvC,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IA8BvC;;;OAGG;IACH,iBAAiB,CACf,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAClF;QACD,IAAI,EAAE;YAAE,YAAY,EAAE,YAAY,CAAA;SAAE,CAAA;KACrC;YA0Ba,mBAAmB;IAmBjC;;;;;;OAMG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACjB,GACL,OAAO,CACN;QACE,IAAI,EAAE,EAAE,CAAA;QACR,KAAK,EAAE,IAAI,CAAA;KACZ,GACD;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CACnC;IA+BD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAC9B;QACE,IAAI,EAAE;YACJ,UAAU,EAAE,YAAY,EAAE,CAAA;SAC3B,CAAA;QACD,KAAK,EAAE,IAAI,CAAA;KACZ,GACD;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CACnC;IAaD;;;OAGG;IACG,YAAY,CAAC,WAAW,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAEnF;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAU3E,iBAAiB;YAiCjB,mBAAmB;IAkDjC;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CACjD;QACE,IAAI,EAAE,EAAE,CAAA;QACR,KAAK,EAAE,IAAI,CAAA;KACZ,GACD;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CACnC;IAyBD;;;OAGG;YACW,mBAAmB;IA4CjC,OAAO,CAAC,eAAe;YAWT,qBAAqB;IAyBnC;;;OAGG;YACW,kBAAkB;YAyHlB,iBAAiB;YAoDjB,qBAAqB;IAoCnC;;;OAGG;YACW,YAAY;YAwCZ,cAAc;IAc5B;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IAexC;;;OAGG;YACW,iBAAiB;IAiC/B;;;OAGG;YACW,gBAAgB;IAW9B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,gBAAgB;IAKtB;;;;;;;OAOG;IACG,eAAe;IAKrB;;OAEG;YACW,qBAAqB;IAoDnC;;;;OAIG;YACW,uBAAuB;IAyBrC;;OAEG;YACW,oBAAoB;IAwClC;;;;;OAKG;YACW,kBAAkB;YAwClB,SAAS;IAqBvB;;OAEG;YACW,OAAO;IA4CrB;;OAEG;YACW,OAAO;IAmFrB;;OAEG;YACW,UAAU;IAsFxB;;OAEG;YACW,mBAAmB;IAoBjC;;OAEG;YACW,YAAY;IA+B1B;;OAEG;YACW,+BAA+B;YAyC/B,QAAQ;IAsCtB;;;;;;;;;;;;;;;OAeG;IACG,SAAS,CACb,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,GAAE;QACP;;WAEG;QACH,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QAEZ,uFAAuF;QACvF,YAAY,CAAC,EAAE,OAAO,CAAA;QAEtB,+GAA+G;QAC/G,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,GAAG,EAAE,CAAA;SAAE,CAAA;KAClB,GACL,OAAO,CACN;QACE,IAAI,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,MAAM,EAAE,SAAS,CAAC;YAAC,SAAS,EAAE,UAAU,CAAA;SAAE,CAAA;QACtE,KAAK,EAAE,IAAI,CAAA;KACZ,GACD;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,GAChC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAC9B;CAmFF"}
@@ -9,11 +9,12 @@ const errors_1 = require("./lib/errors");
9
9
  const fetch_1 = require("./lib/fetch");
10
10
  const helpers_1 = require("./lib/helpers");
11
11
  const local_storage_1 = require("./lib/local-storage");
12
+ const locks_1 = require("./lib/locks");
12
13
  const polyfills_1 = require("./lib/polyfills");
13
14
  const version_1 = require("./lib/version");
14
- const locks_1 = require("./lib/locks");
15
15
  const base64url_1 = require("./lib/base64url");
16
16
  const ethereum_1 = require("./lib/web3/ethereum");
17
+ const webauthn_1 = require("./lib/webauthn");
17
18
  (0, polyfills_1.polyfillGlobalThis)(); // Make "globalThis" available
18
19
  const DEFAULT_OPTIONS = {
19
20
  url: constants_1.GOTRUE_URL,
@@ -116,6 +117,7 @@ class GoTrueClient {
116
117
  listFactors: this._listFactors.bind(this),
117
118
  challengeAndVerify: this._challengeAndVerify.bind(this),
118
119
  getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this),
120
+ webauthn: new webauthn_1.WebAuthnApi(this),
119
121
  };
120
122
  if (this.persistSession) {
121
123
  if (settings.storage) {
@@ -1159,7 +1161,7 @@ class GoTrueClient {
1159
1161
  }
1160
1162
  return { data: { session: currentSession }, error: null };
1161
1163
  }
1162
- const { session, error } = await this._callRefreshToken(currentSession.refresh_token);
1164
+ const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token);
1163
1165
  if (error) {
1164
1166
  return { data: { session: null }, error };
1165
1167
  }
@@ -1299,7 +1301,7 @@ class GoTrueClient {
1299
1301
  hasExpired = expiresAt <= timeNow;
1300
1302
  }
1301
1303
  if (hasExpired) {
1302
- const { session: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);
1304
+ const { data: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);
1303
1305
  if (error) {
1304
1306
  return { data: { user: null, session: null }, error: error };
1305
1307
  }
@@ -1359,7 +1361,7 @@ class GoTrueClient {
1359
1361
  if (!(currentSession === null || currentSession === void 0 ? void 0 : currentSession.refresh_token)) {
1360
1362
  throw new errors_1.AuthSessionMissingError();
1361
1363
  }
1362
- const { session, error } = await this._callRefreshToken(currentSession.refresh_token);
1364
+ const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token);
1363
1365
  if (error) {
1364
1366
  return { data: { user: null, session: null }, error: error };
1365
1367
  }
@@ -1451,7 +1453,7 @@ class GoTrueClient {
1451
1453
  expires_in: expiresIn,
1452
1454
  expires_at: expiresAt,
1453
1455
  refresh_token,
1454
- token_type,
1456
+ token_type: token_type,
1455
1457
  user: data.user,
1456
1458
  };
1457
1459
  // Remove tokens from URL
@@ -1612,11 +1614,13 @@ class GoTrueClient {
1612
1614
  throw error;
1613
1615
  }
1614
1616
  }
1615
- /**
1616
- * Links an oauth identity to an existing user.
1617
- * This method supports the PKCE flow.
1618
- */
1619
1617
  async linkIdentity(credentials) {
1618
+ if ('token' in credentials) {
1619
+ return this.linkIdentityIdToken(credentials);
1620
+ }
1621
+ return this.linkIdentityOAuth(credentials);
1622
+ }
1623
+ async linkIdentityOAuth(credentials) {
1620
1624
  var _a;
1621
1625
  try {
1622
1626
  const { data, error } = await this._useSession(async (result) => {
@@ -1649,6 +1653,51 @@ class GoTrueClient {
1649
1653
  throw error;
1650
1654
  }
1651
1655
  }
1656
+ async linkIdentityIdToken(credentials) {
1657
+ return await this._useSession(async (result) => {
1658
+ var _a;
1659
+ try {
1660
+ const { error: sessionError, data: { session }, } = result;
1661
+ if (sessionError)
1662
+ throw sessionError;
1663
+ const { options, provider, token, access_token, nonce } = credentials;
1664
+ const res = await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/token?grant_type=id_token`, {
1665
+ headers: this.headers,
1666
+ jwt: (_a = session === null || session === void 0 ? void 0 : session.access_token) !== null && _a !== void 0 ? _a : undefined,
1667
+ body: {
1668
+ provider,
1669
+ id_token: token,
1670
+ access_token,
1671
+ nonce,
1672
+ link_identity: true,
1673
+ gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },
1674
+ },
1675
+ xform: fetch_1._sessionResponse,
1676
+ });
1677
+ const { data, error } = res;
1678
+ if (error) {
1679
+ return { data: { user: null, session: null }, error };
1680
+ }
1681
+ else if (!data || !data.session || !data.user) {
1682
+ return {
1683
+ data: { user: null, session: null },
1684
+ error: new errors_1.AuthInvalidTokenResponseError(),
1685
+ };
1686
+ }
1687
+ if (data.session) {
1688
+ await this._saveSession(data.session);
1689
+ await this._notifyAllSubscribers('USER_UPDATED', data.session);
1690
+ }
1691
+ return { data, error };
1692
+ }
1693
+ catch (error) {
1694
+ if ((0, errors_1.isAuthError)(error)) {
1695
+ return { data: { user: null, session: null }, error };
1696
+ }
1697
+ throw error;
1698
+ }
1699
+ });
1700
+ }
1652
1701
  /**
1653
1702
  * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.
1654
1703
  */
@@ -1848,14 +1897,14 @@ class GoTrueClient {
1848
1897
  throw new errors_1.AuthSessionMissingError();
1849
1898
  await this._saveSession(data.session);
1850
1899
  await this._notifyAllSubscribers('TOKEN_REFRESHED', data.session);
1851
- const result = { session: data.session, error: null };
1900
+ const result = { data: data.session, error: null };
1852
1901
  this.refreshingDeferred.resolve(result);
1853
1902
  return result;
1854
1903
  }
1855
1904
  catch (error) {
1856
1905
  this._debug(debugName, 'error', error);
1857
1906
  if ((0, errors_1.isAuthError)(error)) {
1858
- const result = { session: null, error };
1907
+ const result = { data: null, error };
1859
1908
  if (!(0, errors_1.isAuthRetryableFetchError)(error)) {
1860
1909
  await this._removeSession();
1861
1910
  }
@@ -2212,16 +2261,20 @@ class GoTrueClient {
2212
2261
  if (sessionError) {
2213
2262
  return { data: null, error: sessionError };
2214
2263
  }
2215
- const body = Object.assign({ friendly_name: params.friendlyName, factor_type: params.factorType }, (params.factorType === 'phone' ? { phone: params.phone } : { issuer: params.issuer }));
2216
- const { data, error } = await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors`, {
2264
+ const body = Object.assign({ friendly_name: params.friendlyName, factor_type: params.factorType }, (params.factorType === 'phone'
2265
+ ? { phone: params.phone }
2266
+ : params.factorType === 'totp'
2267
+ ? { issuer: params.issuer }
2268
+ : {}));
2269
+ const { data, error } = (await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors`, {
2217
2270
  body,
2218
2271
  headers: this.headers,
2219
2272
  jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
2220
- });
2273
+ }));
2221
2274
  if (error) {
2222
2275
  return { data: null, error };
2223
2276
  }
2224
- if (params.factorType === 'totp' && ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code)) {
2277
+ if (params.factorType === 'totp' && data.type === 'totp' && ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code)) {
2225
2278
  data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;
2226
2279
  }
2227
2280
  return { data, error: null };
@@ -2234,9 +2287,6 @@ class GoTrueClient {
2234
2287
  throw error;
2235
2288
  }
2236
2289
  }
2237
- /**
2238
- * {@see GoTrueMFAApi#verify}
2239
- */
2240
2290
  async _verify(params) {
2241
2291
  return this._acquireLock(-1, async () => {
2242
2292
  try {
@@ -2246,8 +2296,15 @@ class GoTrueClient {
2246
2296
  if (sessionError) {
2247
2297
  return { data: null, error: sessionError };
2248
2298
  }
2299
+ const body = Object.assign({ challenge_id: params.challengeId }, ('webauthn' in params
2300
+ ? {
2301
+ webauthn: Object.assign(Object.assign({}, params.webauthn), { credential_response: params.webauthn.type === 'create'
2302
+ ? (0, webauthn_1.serializeCredentialCreationResponse)(params.webauthn.credential_response)
2303
+ : (0, webauthn_1.serializeCredentialRequestResponse)(params.webauthn.credential_response) }),
2304
+ }
2305
+ : { code: params.code }));
2249
2306
  const { data, error } = await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/verify`, {
2250
- body: { code: params.code, challenge_id: params.challengeId },
2307
+ body,
2251
2308
  headers: this.headers,
2252
2309
  jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
2253
2310
  });
@@ -2267,9 +2324,6 @@ class GoTrueClient {
2267
2324
  }
2268
2325
  });
2269
2326
  }
2270
- /**
2271
- * {@see GoTrueMFAApi#challenge}
2272
- */
2273
2327
  async _challenge(params) {
2274
2328
  return this._acquireLock(-1, async () => {
2275
2329
  try {
@@ -2279,11 +2333,30 @@ class GoTrueClient {
2279
2333
  if (sessionError) {
2280
2334
  return { data: null, error: sessionError };
2281
2335
  }
2282
- return await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/challenge`, {
2283
- body: { channel: params.channel },
2336
+ const response = (await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/challenge`, {
2337
+ body: params,
2284
2338
  headers: this.headers,
2285
2339
  jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
2286
- });
2340
+ }));
2341
+ if (response.error) {
2342
+ return response;
2343
+ }
2344
+ const { data } = response;
2345
+ if (data.type !== 'webauthn') {
2346
+ return { data, error: null };
2347
+ }
2348
+ switch (data.webauthn.type) {
2349
+ case 'create':
2350
+ return {
2351
+ data: Object.assign(Object.assign({}, data), { webauthn: Object.assign(Object.assign({}, data.webauthn), { credential_options: Object.assign(Object.assign({}, data.webauthn.credential_options), { publicKey: (0, webauthn_1.deserializeCredentialCreationOptions)(data.webauthn.credential_options.publicKey) }) }) }),
2352
+ error: null,
2353
+ };
2354
+ case 'request':
2355
+ return {
2356
+ data: Object.assign(Object.assign({}, data), { webauthn: Object.assign(Object.assign({}, data.webauthn), { credential_options: Object.assign(Object.assign({}, data.webauthn.credential_options), { publicKey: (0, webauthn_1.deserializeCredentialRequestOptions)(data.webauthn.credential_options.publicKey) }) }) }),
2357
+ error: null,
2358
+ };
2359
+ }
2287
2360
  });
2288
2361
  }
2289
2362
  catch (error) {
@@ -2316,20 +2389,28 @@ class GoTrueClient {
2316
2389
  * {@see GoTrueMFAApi#listFactors}
2317
2390
  */
2318
2391
  async _listFactors() {
2392
+ var _a;
2319
2393
  // use #getUser instead of #_getUser as the former acquires a lock
2320
2394
  const { data: { user }, error: userError, } = await this.getUser();
2321
2395
  if (userError) {
2322
2396
  return { data: null, error: userError };
2323
2397
  }
2324
- const factors = (user === null || user === void 0 ? void 0 : user.factors) || [];
2325
- const totp = factors.filter((factor) => factor.factor_type === 'totp' && factor.status === 'verified');
2326
- const phone = factors.filter((factor) => factor.factor_type === 'phone' && factor.status === 'verified');
2398
+ const data = {
2399
+ all: [],
2400
+ phone: [],
2401
+ totp: [],
2402
+ webauthn: [],
2403
+ };
2404
+ // loop over the factors ONCE
2405
+ for (const factor of (_a = user === null || user === void 0 ? void 0 : user.factors) !== null && _a !== void 0 ? _a : []) {
2406
+ data.all.push(factor);
2407
+ if (factor.status === 'verified') {
2408
+ ;
2409
+ data[factor.factor_type].push(factor);
2410
+ }
2411
+ }
2327
2412
  return {
2328
- data: {
2329
- all: factors,
2330
- totp,
2331
- phone,
2332
- },
2413
+ data,
2333
2414
  error: null,
2334
2415
  };
2335
2416
  }