react-native-authsignal 0.4.4 → 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.
Files changed (72) hide show
  1. package/android/build.gradle +2 -3
  2. package/android/gradle/wrapper/gradle-wrapper.properties +2 -1
  3. package/android/gradle.properties +2 -2
  4. package/android/src/main/java/com/authsignal/react/AuthsignalEmailModule.java +133 -0
  5. package/android/src/main/java/com/authsignal/react/AuthsignalModule.java +10 -2
  6. package/android/src/main/java/com/authsignal/react/AuthsignalPackage.java +4 -1
  7. package/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.java +18 -8
  8. package/android/src/main/java/com/authsignal/react/AuthsignalPushModule.java +3 -1
  9. package/android/src/main/java/com/authsignal/react/AuthsignalSMSModule.java +133 -0
  10. package/android/src/main/java/com/authsignal/react/AuthsignalTOTPModule.java +112 -0
  11. package/ios/Authsignal.xcodeproj/project.pbxproj +16 -4
  12. package/ios/AuthsignalEmailModule.m +22 -0
  13. package/ios/AuthsignalEmailModule.swift +109 -0
  14. package/ios/AuthsignalModule.m +9 -63
  15. package/ios/AuthsignalModule.swift +87 -0
  16. package/ios/AuthsignalPasskeyModule.m +1 -1
  17. package/ios/AuthsignalPasskeyModule.swift +11 -9
  18. package/ios/AuthsignalPushModule.m +1 -1
  19. package/ios/AuthsignalPushModule.swift +9 -7
  20. package/ios/AuthsignalSMSModule.m +22 -0
  21. package/ios/AuthsignalSMSModule.swift +109 -0
  22. package/ios/AuthsignalTOTPModule.m +18 -0
  23. package/ios/AuthsignalTOTPModule.swift +82 -0
  24. package/lib/commonjs/email.js +80 -0
  25. package/lib/commonjs/email.js.map +1 -0
  26. package/lib/commonjs/error.js +19 -0
  27. package/lib/commonjs/error.js.map +1 -1
  28. package/lib/commonjs/index.js +27 -0
  29. package/lib/commonjs/index.js.map +1 -1
  30. package/lib/commonjs/passkey.js +20 -10
  31. package/lib/commonjs/passkey.js.map +1 -1
  32. package/lib/commonjs/sms.js +80 -0
  33. package/lib/commonjs/sms.js.map +1 -0
  34. package/lib/commonjs/totp.js +68 -0
  35. package/lib/commonjs/totp.js.map +1 -0
  36. package/lib/module/email.js +73 -0
  37. package/lib/module/email.js.map +1 -0
  38. package/lib/module/error.js +18 -0
  39. package/lib/module/error.js.map +1 -1
  40. package/lib/module/index.js +27 -0
  41. package/lib/module/index.js.map +1 -1
  42. package/lib/module/passkey.js +20 -10
  43. package/lib/module/passkey.js.map +1 -1
  44. package/lib/module/sms.js +73 -0
  45. package/lib/module/sms.js.map +1 -0
  46. package/lib/module/totp.js +61 -0
  47. package/lib/module/totp.js.map +1 -0
  48. package/lib/typescript/email.d.ts +22 -0
  49. package/lib/typescript/email.d.ts.map +1 -0
  50. package/lib/typescript/error.d.ts +11 -1
  51. package/lib/typescript/error.d.ts.map +1 -1
  52. package/lib/typescript/index.d.ts +8 -0
  53. package/lib/typescript/index.d.ts.map +1 -1
  54. package/lib/typescript/passkey.d.ts +3 -3
  55. package/lib/typescript/passkey.d.ts.map +1 -1
  56. package/lib/typescript/sms.d.ts +22 -0
  57. package/lib/typescript/sms.d.ts.map +1 -0
  58. package/lib/typescript/totp.d.ts +22 -0
  59. package/lib/typescript/totp.d.ts.map +1 -0
  60. package/lib/typescript/types.d.ts +10 -2
  61. package/lib/typescript/types.d.ts.map +1 -1
  62. package/package.json +1 -1
  63. package/react-native-authsignal.podspec +1 -1
  64. package/src/email.ts +94 -0
  65. package/src/error.ts +20 -0
  66. package/src/index.tsx +17 -0
  67. package/src/passkey.ts +17 -9
  68. package/src/sms.ts +96 -0
  69. package/src/totp.ts +83 -0
  70. package/src/types.ts +12 -2
  71. package/yarn.lock +109 -83
  72. package/ios/AuthsignalModule.h +0 -11
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","ErrorCode","initialized","autofillRequestPending","AuthsignalPasskeyModule","Proxy","get","Error","AuthsignalPasskey","constructor","tenantID","baseURL","enableLogging","signUp","token","userName","displayName","ensureModuleIsInitialized","data","ex","console","log","error","message","signIn","action","autofill","preferImmediatelyAvailableCredentials","OS","errorCode","passkeySignInCanceled","cancel","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","ErrorCode","initialized","autofillRequestPending","AuthsignalPasskeyModule","Proxy","get","Error","AuthsignalPasskey","constructor","tenantID","baseURL","enableLogging","signUp","token","username","displayName","ensureModuleIsInitialized","data","ex","console","log","error","message","signIn","action","autofill","preferImmediatelyAvailableCredentials","OS","errorCode","passkeySignInCanceled","noPasskeyCredentialAvailable","cancel","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ import { NativeModules } from 'react-native';
3
+ import { handleErrorCodes, LINKING_ERROR } from './error';
4
+ let initialized = false;
5
+ const AuthsignalSMSModule = NativeModules.AuthsignalSMSModule ? NativeModules.AuthsignalSMSModule : new Proxy({}, {
6
+ get() {
7
+ throw new Error(LINKING_ERROR);
8
+ }
9
+ });
10
+ export class AuthsignalSms {
11
+ constructor(_ref) {
12
+ let {
13
+ tenantID,
14
+ baseURL,
15
+ enableLogging
16
+ } = _ref;
17
+ _defineProperty(this, "tenantID", void 0);
18
+ _defineProperty(this, "baseURL", void 0);
19
+ _defineProperty(this, "enableLogging", void 0);
20
+ this.tenantID = tenantID;
21
+ this.baseURL = baseURL;
22
+ this.enableLogging = enableLogging;
23
+ }
24
+ async enroll(_ref2) {
25
+ let {
26
+ phoneNumber
27
+ } = _ref2;
28
+ await this.ensureModuleIsInitialized();
29
+ try {
30
+ await AuthsignalSMSModule.enroll(phoneNumber);
31
+ return {};
32
+ } catch (ex) {
33
+ return this.handleError(ex);
34
+ }
35
+ }
36
+ async challenge() {
37
+ await this.ensureModuleIsInitialized();
38
+ try {
39
+ await AuthsignalSMSModule.challenge();
40
+ return {};
41
+ } catch (ex) {
42
+ return this.handleError(ex);
43
+ }
44
+ }
45
+ async verify(_ref3) {
46
+ let {
47
+ code
48
+ } = _ref3;
49
+ await this.ensureModuleIsInitialized();
50
+ try {
51
+ const data = await AuthsignalSMSModule.verify(code);
52
+ return {
53
+ data
54
+ };
55
+ } catch (ex) {
56
+ return this.handleError(ex);
57
+ }
58
+ }
59
+ async ensureModuleIsInitialized() {
60
+ if (initialized) {
61
+ return;
62
+ }
63
+ await AuthsignalSMSModule.initialize(this.tenantID, this.baseURL);
64
+ initialized = true;
65
+ }
66
+ handleError(ex) {
67
+ if (this.enableLogging) {
68
+ console.log(ex);
69
+ }
70
+ return handleErrorCodes(ex);
71
+ }
72
+ }
73
+ //# sourceMappingURL=sms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","handleErrorCodes","LINKING_ERROR","initialized","AuthsignalSMSModule","Proxy","get","Error","AuthsignalSms","constructor","tenantID","baseURL","enableLogging","enroll","phoneNumber","ensureModuleIsInitialized","ex","handleError","challenge","verify","code","data","initialize","console","log"],"sourceRoot":"../../src","sources":["sms.ts"],"mappings":";AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,SAAS;AAazD,IAAIC,WAAW,GAAG,KAAK;AAEvB,MAAMC,mBAAmB,GAAGJ,aAAa,CAACI,mBAAmB,GACzDJ,aAAa,CAACI,mBAAmB,GACjC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACL,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEL,OAAO,MAAMM,aAAa,CAAC;EAKzBC,WAAW,OAAwD;IAAA,IAAvD;MAAEC,QAAQ;MAAEC,OAAO;MAAEC;IAA+B,CAAC;IAAA;IAAA;IAAA;IAC/D,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,MAAM,QAE0C;IAAA,IAFzC;MACXC;IACc,CAAC;IACf,MAAM,IAAI,CAACC,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMX,mBAAmB,CAACS,MAAM,CAACC,WAAW,CAAC;MAE7C,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,OAAOE,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAME,SAAS,GAAsC;IACnD,MAAM,IAAI,CAACH,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMX,mBAAmB,CAACc,SAAS,EAAE;MAErC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,OAAOF,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAMG,MAAM,QAEiD;IAAA,IAFhD;MACXC;IACW,CAAC;IACZ,MAAM,IAAI,CAACL,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMM,IAAI,GAAG,MAAMjB,mBAAmB,CAACe,MAAM,CAACC,IAAI,CAAC;MAEnD,OAAO;QAAEC;MAAK,CAAC;IACjB,CAAC,CAAC,OAAOL,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAcD,yBAAyB,GAAG;IACxC,IAAIZ,WAAW,EAAE;MACf;IACF;IAEA,MAAMC,mBAAmB,CAACkB,UAAU,CAAC,IAAI,CAACZ,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAEjER,WAAW,GAAG,IAAI;EACpB;EAEQc,WAAW,CAACD,EAAW,EAAE;IAC/B,IAAI,IAAI,CAACJ,aAAa,EAAE;MACtBW,OAAO,CAACC,GAAG,CAACR,EAAE,CAAC;IACjB;IAEA,OAAOf,gBAAgB,CAACe,EAAE,CAAC;EAC7B;AACF"}
@@ -0,0 +1,61 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ import { NativeModules } from 'react-native';
3
+ import { handleErrorCodes, LINKING_ERROR } from './error';
4
+ let initialized = false;
5
+ const AuthsignalTOTPModule = NativeModules.AuthsignalTOTPModule ? NativeModules.AuthsignalTOTPModule : new Proxy({}, {
6
+ get() {
7
+ throw new Error(LINKING_ERROR);
8
+ }
9
+ });
10
+ export class AuthsignalTotp {
11
+ constructor(_ref) {
12
+ let {
13
+ tenantID,
14
+ baseURL,
15
+ enableLogging
16
+ } = _ref;
17
+ _defineProperty(this, "tenantID", void 0);
18
+ _defineProperty(this, "baseURL", void 0);
19
+ _defineProperty(this, "enableLogging", void 0);
20
+ this.tenantID = tenantID;
21
+ this.baseURL = baseURL;
22
+ this.enableLogging = enableLogging;
23
+ }
24
+ async enroll() {
25
+ await this.ensureModuleIsInitialized();
26
+ try {
27
+ await AuthsignalTOTPModule.enroll();
28
+ return {};
29
+ } catch (ex) {
30
+ return this.handleError(ex);
31
+ }
32
+ }
33
+ async verify(_ref2) {
34
+ let {
35
+ code
36
+ } = _ref2;
37
+ await this.ensureModuleIsInitialized();
38
+ try {
39
+ const data = await AuthsignalTOTPModule.verify(code);
40
+ return {
41
+ data
42
+ };
43
+ } catch (ex) {
44
+ return this.handleError(ex);
45
+ }
46
+ }
47
+ async ensureModuleIsInitialized() {
48
+ if (initialized) {
49
+ return;
50
+ }
51
+ await AuthsignalTOTPModule.initialize(this.tenantID, this.baseURL);
52
+ initialized = true;
53
+ }
54
+ handleError(ex) {
55
+ if (this.enableLogging) {
56
+ console.log(ex);
57
+ }
58
+ return handleErrorCodes(ex);
59
+ }
60
+ }
61
+ //# sourceMappingURL=totp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","handleErrorCodes","LINKING_ERROR","initialized","AuthsignalTOTPModule","Proxy","get","Error","AuthsignalTotp","constructor","tenantID","baseURL","enableLogging","enroll","ensureModuleIsInitialized","ex","handleError","verify","code","data","initialize","console","log"],"sourceRoot":"../../src","sources":["totp.ts"],"mappings":";AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,SAAS;AAczD,IAAIC,WAAW,GAAG,KAAK;AAEvB,MAAMC,oBAAoB,GAAGJ,aAAa,CAACI,oBAAoB,GAC3DJ,aAAa,CAACI,oBAAoB,GAClC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACL,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEL,OAAO,MAAMM,cAAc,CAAC;EAK1BC,WAAW,OAAwD;IAAA,IAAvD;MAAEC,QAAQ;MAAEC,OAAO;MAAEC;IAA+B,CAAC;IAAA;IAAA;IAAA;IAC/D,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,MAAM,GAAoD;IAC9D,MAAM,IAAI,CAACC,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMV,oBAAoB,CAACS,MAAM,EAAE;MAEnC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,OAAOE,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAME,MAAM,QAEiD;IAAA,IAFhD;MACXC;IACW,CAAC;IACZ,MAAM,IAAI,CAACJ,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMK,IAAI,GAAG,MAAMf,oBAAoB,CAACa,MAAM,CAACC,IAAI,CAAC;MAEpD,OAAO;QAAEC;MAAK,CAAC;IACjB,CAAC,CAAC,OAAOJ,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAcD,yBAAyB,GAAG;IACxC,IAAIX,WAAW,EAAE;MACf;IACF;IAEA,MAAMC,oBAAoB,CAACgB,UAAU,CAAC,IAAI,CAACV,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAElER,WAAW,GAAG,IAAI;EACpB;EAEQa,WAAW,CAACD,EAAW,EAAE;IAC/B,IAAI,IAAI,CAACH,aAAa,EAAE;MACtBS,OAAO,CAACC,GAAG,CAACP,EAAE,CAAC;IACjB;IAEA,OAAOd,gBAAgB,CAACc,EAAE,CAAC;EAC7B;AACF"}
@@ -0,0 +1,22 @@
1
+ import type { AuthsignalResponse, VerifyInput, VerifyResponse } from './types';
2
+ interface ConstructorArgs {
3
+ tenantID: string;
4
+ baseURL: string;
5
+ enableLogging: boolean;
6
+ }
7
+ interface EnrollEmailInput {
8
+ email: string;
9
+ }
10
+ export declare class AuthsignalEmail {
11
+ tenantID: string;
12
+ baseURL: string;
13
+ enableLogging: boolean;
14
+ constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs);
15
+ enroll({ email }: EnrollEmailInput): Promise<AuthsignalResponse<void>>;
16
+ challenge(): Promise<AuthsignalResponse<void>>;
17
+ verify({ code, }: VerifyInput): Promise<AuthsignalResponse<VerifyResponse>>;
18
+ private ensureModuleIsInitialized;
19
+ private handleError;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/email.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE/E,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAeD,qBAAa,eAAe;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,eAAe;IAM3D,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAYtE,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAY9C,MAAM,CAAC,EACX,IAAI,GACL,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAY9C,yBAAyB;IAUvC,OAAO,CAAC,WAAW;CAOpB"}
@@ -1,5 +1,15 @@
1
1
  export declare const LINKING_ERROR: string;
2
2
  export declare enum ErrorCode {
3
- passkeySignInCanceled = "passkeySignInCanceled"
3
+ tokenRequired = "tokenRequired",
4
+ tokenExpired = "tokenExpired",
5
+ passkeySignInCanceled = "passkeySignInCanceled",
6
+ noPasskeyCredentialAvailable = "noPasskeyCredentialAvailable"
4
7
  }
8
+ export declare function handleErrorCodes(ex: unknown): {
9
+ error: string;
10
+ errorCode: ErrorCode;
11
+ } | {
12
+ error: string;
13
+ errorCode?: undefined;
14
+ };
5
15
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,QAIO,CAAC;AAElC,oBAAY,SAAS;IACnB,qBAAqB,0BAA0B;CAChD"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,QAIO,CAAC;AAElC,oBAAY,SAAS;IACnB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,qBAAqB,0BAA0B;IAC/C,4BAA4B,iCAAiC;CAC9D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO;;;;;;EAe3C"}
@@ -1,5 +1,8 @@
1
+ import { AuthsignalEmail } from './email';
1
2
  import { AuthsignalPasskey } from './passkey';
2
3
  import { AuthsignalPush } from './push';
4
+ import { AuthsignalSms } from './sms';
5
+ import { AuthsignalTotp } from './totp';
3
6
  export * from './types';
4
7
  export { ErrorCode } from './error';
5
8
  interface ConstructorArgs {
@@ -11,9 +14,14 @@ export declare class Authsignal {
11
14
  tenantID: string;
12
15
  baseURL: string;
13
16
  enableLogging: boolean;
17
+ email: AuthsignalEmail;
14
18
  passkey: AuthsignalPasskey;
15
19
  push: AuthsignalPush;
20
+ sms: AuthsignalSms;
21
+ totp: AuthsignalTotp;
16
22
  constructor({ tenantID, baseURL, enableLogging, }: ConstructorArgs);
23
+ setToken(token: string): Promise<void>;
24
+ launch(url: string): Promise<string | null>;
17
25
  }
18
26
  export declare function launch(url: string): Promise<string | null>;
19
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAapC,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,UAAU;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IAEvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;gBAET,EACV,QAAQ,EACR,OAAyC,EACzC,aAAuB,GACxB,EAAE,eAAe;CAQnB;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsB1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAapC,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,UAAU;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IAEvB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;gBAET,EACV,QAAQ,EACR,OAAyC,EACzC,aAAuB,GACxB,EAAE,eAAe;IAYZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGlD;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsB1D"}
@@ -5,8 +5,8 @@ interface ConstructorArgs {
5
5
  enableLogging: boolean;
6
6
  }
7
7
  interface PasskeySignUpInput {
8
- token: string;
9
- userName?: string;
8
+ token?: string;
9
+ username?: string;
10
10
  displayName?: string;
11
11
  }
12
12
  interface PasskeySignInInput {
@@ -20,7 +20,7 @@ export declare class AuthsignalPasskey {
20
20
  baseURL: string;
21
21
  enableLogging: boolean;
22
22
  constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs);
23
- signUp({ token, userName, displayName, }: PasskeySignUpInput): Promise<AuthsignalResponse<SignUpResponse>>;
23
+ signUp({ token, username, displayName, }?: PasskeySignUpInput): Promise<AuthsignalResponse<SignUpResponse>>;
24
24
  signIn({ action, token, autofill, preferImmediatelyAvailableCredentials, }?: PasskeySignInInput): Promise<AuthsignalResponse<SignInResponse>>;
25
25
  cancel(): void;
26
26
  isAvailableOnDevice(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/passkey.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC,CAAC,EAAE,OAAO,CAAC;CACjD;AAgBD,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,eAAe;IAM3D,MAAM,CAAC,EACX,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAwB7D,MAAM,CAAC,EACX,MAAM,EACN,KAAK,EACL,QAAgB,EAChB,qCAA4C,GAC7C,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAkDxE,MAAM;IAMA,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;YAM/B,yBAAyB;CASxC"}
1
+ {"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/passkey.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC,CAAC,EAAE,OAAO,CAAC;CACjD;AAgBD,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,eAAe;IAM3D,MAAM,CAAC,EACX,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAwBlE,MAAM,CAAC,EACX,MAAM,EACN,KAAK,EACL,QAAgB,EAChB,qCAA4C,GAC7C,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IA0DxE,MAAM;IAMA,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;YAM/B,yBAAyB;CASxC"}
@@ -0,0 +1,22 @@
1
+ import type { AuthsignalResponse, VerifyInput, VerifyResponse } from './types';
2
+ interface ConstructorArgs {
3
+ tenantID: string;
4
+ baseURL: string;
5
+ enableLogging: boolean;
6
+ }
7
+ interface EnrollSmsInput {
8
+ phoneNumber: string;
9
+ }
10
+ export declare class AuthsignalSms {
11
+ tenantID: string;
12
+ baseURL: string;
13
+ enableLogging: boolean;
14
+ constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs);
15
+ enroll({ phoneNumber, }: EnrollSmsInput): Promise<AuthsignalResponse<void>>;
16
+ challenge(): Promise<AuthsignalResponse<void>>;
17
+ verify({ code, }: VerifyInput): Promise<AuthsignalResponse<VerifyResponse>>;
18
+ private ensureModuleIsInitialized;
19
+ private handleError;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=sms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.d.ts","sourceRoot":"","sources":["../../src/sms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE/E,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAeD,qBAAa,aAAa;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,eAAe;IAM3D,MAAM,CAAC,EACX,WAAW,GACZ,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAY/C,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAY9C,MAAM,CAAC,EACX,IAAI,GACL,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAY9C,yBAAyB;IAUvC,OAAO,CAAC,WAAW;CAOpB"}
@@ -0,0 +1,22 @@
1
+ import type { AuthsignalResponse, VerifyInput, VerifyResponse } from './types';
2
+ interface ConstructorArgs {
3
+ tenantID: string;
4
+ baseURL: string;
5
+ enableLogging: boolean;
6
+ }
7
+ interface EnrollTotpResponse {
8
+ uri: string;
9
+ secret: string;
10
+ }
11
+ export declare class AuthsignalTotp {
12
+ tenantID: string;
13
+ baseURL: string;
14
+ enableLogging: boolean;
15
+ constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs);
16
+ enroll(): Promise<AuthsignalResponse<EnrollTotpResponse>>;
17
+ verify({ code, }: VerifyInput): Promise<AuthsignalResponse<VerifyResponse>>;
18
+ private ensureModuleIsInitialized;
19
+ private handleError;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=totp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"totp.d.ts","sourceRoot":"","sources":["../../src/totp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE/E,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAeD,qBAAa,cAAc;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,eAAe;IAM3D,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAYzD,MAAM,CAAC,EACX,IAAI,GACL,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAY9C,yBAAyB;IAUvC,OAAO,CAAC,WAAW;CAOpB"}
@@ -27,7 +27,15 @@ export interface SignInResponse {
27
27
  token?: string;
28
28
  userId?: string;
29
29
  userAuthenticatorI?: string;
30
- userName?: string;
31
- userDisplayName?: string;
30
+ username?: string;
31
+ displayName?: string;
32
+ }
33
+ export interface VerifyInput {
34
+ code: string;
35
+ }
36
+ export interface VerifyResponse {
37
+ isVerified: boolean;
38
+ token?: string;
39
+ failureReason?: string;
32
40
  }
33
41
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-authsignal",
3
- "version": "0.4.4",
3
+ "version": "1.0.0",
4
4
  "description": "The official Authsignal React Native library.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
17
17
  s.source_files = "ios/**/*.{h,m,mm,swift}"
18
18
 
19
19
  s.dependency "React-Core"
20
- s.dependency 'Authsignal', '0.3.1'
20
+ s.dependency 'Authsignal', '1.0.3'
21
21
 
22
22
  # Don't install the dependencies when we run `pod install` in the old architecture.
23
23
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
package/src/email.ts ADDED
@@ -0,0 +1,94 @@
1
+ import { NativeModules } from 'react-native';
2
+ import { handleErrorCodes, LINKING_ERROR } from './error';
3
+ import type { AuthsignalResponse, VerifyInput, VerifyResponse } from './types';
4
+
5
+ interface ConstructorArgs {
6
+ tenantID: string;
7
+ baseURL: string;
8
+ enableLogging: boolean;
9
+ }
10
+
11
+ interface EnrollEmailInput {
12
+ email: string;
13
+ }
14
+
15
+ let initialized = false;
16
+
17
+ const AuthsignalEmailModule = NativeModules.AuthsignalEmailModule
18
+ ? NativeModules.AuthsignalEmailModule
19
+ : new Proxy(
20
+ {},
21
+ {
22
+ get() {
23
+ throw new Error(LINKING_ERROR);
24
+ },
25
+ }
26
+ );
27
+
28
+ export class AuthsignalEmail {
29
+ tenantID: string;
30
+ baseURL: string;
31
+ enableLogging: boolean;
32
+
33
+ constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs) {
34
+ this.tenantID = tenantID;
35
+ this.baseURL = baseURL;
36
+ this.enableLogging = enableLogging;
37
+ }
38
+
39
+ async enroll({ email }: EnrollEmailInput): Promise<AuthsignalResponse<void>> {
40
+ await this.ensureModuleIsInitialized();
41
+
42
+ try {
43
+ await AuthsignalEmailModule.enroll(email);
44
+
45
+ return {};
46
+ } catch (ex) {
47
+ return this.handleError(ex);
48
+ }
49
+ }
50
+
51
+ async challenge(): Promise<AuthsignalResponse<void>> {
52
+ await this.ensureModuleIsInitialized();
53
+
54
+ try {
55
+ await AuthsignalEmailModule.challenge();
56
+
57
+ return {};
58
+ } catch (ex) {
59
+ return this.handleError(ex);
60
+ }
61
+ }
62
+
63
+ async verify({
64
+ code,
65
+ }: VerifyInput): Promise<AuthsignalResponse<VerifyResponse>> {
66
+ await this.ensureModuleIsInitialized();
67
+
68
+ try {
69
+ const data = await AuthsignalEmailModule.verify(code);
70
+
71
+ return { data };
72
+ } catch (ex) {
73
+ return this.handleError(ex);
74
+ }
75
+ }
76
+
77
+ private async ensureModuleIsInitialized() {
78
+ if (initialized) {
79
+ return;
80
+ }
81
+
82
+ await AuthsignalEmailModule.initialize(this.tenantID, this.baseURL);
83
+
84
+ initialized = true;
85
+ }
86
+
87
+ private handleError(ex: unknown) {
88
+ if (this.enableLogging) {
89
+ console.log(ex);
90
+ }
91
+
92
+ return handleErrorCodes(ex);
93
+ }
94
+ }
package/src/error.ts CHANGED
@@ -7,5 +7,25 @@ export const LINKING_ERROR =
7
7
  '- You are not using Expo Go\n';
8
8
 
9
9
  export enum ErrorCode {
10
+ tokenRequired = 'tokenRequired',
11
+ tokenExpired = 'tokenExpired',
10
12
  passkeySignInCanceled = 'passkeySignInCanceled',
13
+ noPasskeyCredentialAvailable = 'noPasskeyCredentialAvailable',
14
+ }
15
+
16
+ export function handleErrorCodes(ex: unknown) {
17
+ if (ex instanceof Error) {
18
+ if (ex.message === 'NO_TOKEN_SET') {
19
+ return {
20
+ error: 'Token is required. Call `setToken` first.',
21
+ errorCode: ErrorCode.tokenRequired,
22
+ };
23
+ } else {
24
+ return {
25
+ error: ex.message,
26
+ };
27
+ }
28
+ }
29
+
30
+ throw ex;
11
31
  }
package/src/index.tsx CHANGED
@@ -1,7 +1,10 @@
1
1
  import { NativeModules, Platform } from 'react-native';
2
2
  import { LINKING_ERROR } from './error';
3
+ import { AuthsignalEmail } from './email';
3
4
  import { AuthsignalPasskey } from './passkey';
4
5
  import { AuthsignalPush } from './push';
6
+ import { AuthsignalSms } from './sms';
7
+ import { AuthsignalTotp } from './totp';
5
8
 
6
9
  export * from './types';
7
10
  export { ErrorCode } from './error';
@@ -28,8 +31,11 @@ export class Authsignal {
28
31
  baseURL: string;
29
32
  enableLogging: boolean;
30
33
 
34
+ email: AuthsignalEmail;
31
35
  passkey: AuthsignalPasskey;
32
36
  push: AuthsignalPush;
37
+ sms: AuthsignalSms;
38
+ totp: AuthsignalTotp;
33
39
 
34
40
  constructor({
35
41
  tenantID,
@@ -40,8 +46,19 @@ export class Authsignal {
40
46
  this.baseURL = baseURL;
41
47
  this.enableLogging = enableLogging;
42
48
 
49
+ this.email = new AuthsignalEmail({ tenantID, baseURL, enableLogging });
43
50
  this.passkey = new AuthsignalPasskey({ tenantID, baseURL, enableLogging });
44
51
  this.push = new AuthsignalPush({ tenantID, baseURL, enableLogging });
52
+ this.sms = new AuthsignalSms({ tenantID, baseURL, enableLogging });
53
+ this.totp = new AuthsignalTotp({ tenantID, baseURL, enableLogging });
54
+ }
55
+
56
+ async setToken(token: string): Promise<void> {
57
+ await AuthsignalModule.setToken(token);
58
+ }
59
+
60
+ async launch(url: string): Promise<string | null> {
61
+ return await launch(url);
45
62
  }
46
63
  }
47
64
 
package/src/passkey.ts CHANGED
@@ -13,8 +13,8 @@ interface ConstructorArgs {
13
13
  }
14
14
 
15
15
  interface PasskeySignUpInput {
16
- token: string;
17
- userName?: string;
16
+ token?: string;
17
+ username?: string;
18
18
  displayName?: string;
19
19
  }
20
20
 
@@ -52,15 +52,15 @@ export class AuthsignalPasskey {
52
52
 
53
53
  async signUp({
54
54
  token,
55
- userName,
55
+ username,
56
56
  displayName,
57
- }: PasskeySignUpInput): Promise<AuthsignalResponse<SignUpResponse>> {
57
+ }: PasskeySignUpInput = {}): Promise<AuthsignalResponse<SignUpResponse>> {
58
58
  await this.ensureModuleIsInitialized();
59
59
 
60
60
  try {
61
61
  const data = await AuthsignalPasskeyModule.signUp(
62
62
  token,
63
- userName,
63
+ username,
64
64
  displayName
65
65
  );
66
66
 
@@ -121,12 +121,20 @@ export class AuthsignalPasskey {
121
121
  autofillRequestPending = false;
122
122
 
123
123
  if (ex instanceof Error) {
124
- return ex.message === 'SIGN_IN_CANCELED'
125
- ? {
124
+ switch (ex.message) {
125
+ case 'SIGN_IN_CANCELED':
126
+ return {
126
127
  errorCode: ErrorCode.passkeySignInCanceled,
127
128
  error: 'Passkey sign-in canceled',
128
- }
129
- : { error: ex.message };
129
+ };
130
+ case 'SIGN_IN_NO_CREDENTIAL':
131
+ return {
132
+ errorCode: ErrorCode.noPasskeyCredentialAvailable,
133
+ error: 'No passkey credential available',
134
+ };
135
+ default:
136
+ return { error: ex.message };
137
+ }
130
138
  }
131
139
 
132
140
  throw ex;