react-native-authsignal 1.1.10 → 1.2.2

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.
@@ -6,6 +6,7 @@ import { AuthsignalPasskey } from './passkey';
6
6
  import { AuthsignalPush } from './push';
7
7
  import { AuthsignalSms } from './sms';
8
8
  import { AuthsignalTotp } from './totp';
9
+ import { AuthsignalDevice } from './device';
9
10
  export * from './types';
10
11
  export { ErrorCode } from './error';
11
12
  const AuthsignalModule = NativeModules.AuthsignalModule ? NativeModules.AuthsignalModule : new Proxy({}, {
@@ -26,6 +27,7 @@ export class Authsignal {
26
27
  _defineProperty(this, "email", void 0);
27
28
  _defineProperty(this, "passkey", void 0);
28
29
  _defineProperty(this, "push", void 0);
30
+ _defineProperty(this, "device", void 0);
29
31
  _defineProperty(this, "sms", void 0);
30
32
  _defineProperty(this, "totp", void 0);
31
33
  this.tenantID = tenantID;
@@ -46,6 +48,11 @@ export class Authsignal {
46
48
  baseURL,
47
49
  enableLogging
48
50
  });
51
+ this.device = new AuthsignalDevice({
52
+ tenantID,
53
+ baseURL,
54
+ enableLogging
55
+ });
49
56
  this.sms = new AuthsignalSms({
50
57
  tenantID,
51
58
  baseURL,
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","AuthsignalEmail","AuthsignalPasskey","AuthsignalPush","AuthsignalSms","AuthsignalTotp","ErrorCode","AuthsignalModule","Proxy","get","Error","Authsignal","constructor","tenantID","baseURL","enableLogging","__DEV__","email","passkey","push","sms","totp","setToken","token","launch","url","OS","Promise","resolve","reject","callback","error"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,aAAa,QAAQ,SAAS;AACvC,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,aAAa,QAAQ,OAAO;AACrC,SAASC,cAAc,QAAQ,QAAQ;AAEvC,cAAc,SAAS;AACvB,SAASC,SAAS,QAAQ,SAAS;AAEnC,MAAMC,gBAAgB,GAAGT,aAAa,CAACS,gBAAgB,GACnDT,aAAa,CAACS,gBAAgB,GAC9B,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACV,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAQL,OAAO,MAAMW,UAAU,CAAC;EAWtBC,WAAW,OAIS;IAAA,IAJR;MACVC,QAAQ;MACRC,OAAO,GAAG,+BAA+B;MACzCC,aAAa,GAAGC;IACD,CAAC;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAChB,IAAI,CAACH,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;IAElC,IAAI,CAACE,KAAK,GAAG,IAAIhB,eAAe,CAAC;MAAEY,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IACtE,IAAI,CAACG,OAAO,GAAG,IAAIhB,iBAAiB,CAAC;MAAEW,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IAC1E,IAAI,CAACI,IAAI,GAAG,IAAIhB,cAAc,CAAC;MAAEU,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IACpE,IAAI,CAACK,GAAG,GAAG,IAAIhB,aAAa,CAAC;MAAES,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IAClE,IAAI,CAACM,IAAI,GAAG,IAAIhB,cAAc,CAAC;MAAEQ,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;EACtE;EAEA,MAAMO,QAAQ,CAACC,KAAa,EAAiB;IAC3C,MAAMhB,gBAAgB,CAACe,QAAQ,CAACC,KAAK,CAAC;EACxC;EAEA,MAAMC,MAAM,CAACC,GAAW,EAA0B;IAChD,OAAO,MAAMD,MAAM,CAACC,GAAG,CAAC;EAC1B;AACF;AAEA,OAAO,SAASD,MAAM,CAACC,GAAW,EAA0B;EAC1D,IAAI1B,QAAQ,CAAC2B,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOnB,gBAAgB,CAACiB,MAAM,CAACC,GAAG,CAAC;EACrC,CAAC,MAAM;IACL,OAAO,IAAIE,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,QAAQ,GAAG,CAACC,KAAU,EAAER,KAAa,KAAK;QAC9C,IAAIA,KAAK,EAAE;UACTK,OAAO,CAACL,KAAK,CAAC;QAChB,CAAC,MAAM,IAAIQ,KAAK,EAAE;UAChB,IAAIA,KAAK,CAACA,KAAK,KAAK,gBAAgB,EAAE;YACpCH,OAAO,CAAC,IAAI,CAAC;UACf,CAAC,MAAM;YACLC,MAAM,CAACE,KAAK,CAAC;UACf;QACF,CAAC,MAAM;UACLF,MAAM,CAAC,kBAAkB,CAAC;QAC5B;MACF,CAAC;MAEDtB,gBAAgB,CAACiB,MAAM,CAACC,GAAG,EAAEK,QAAQ,CAAC;IACxC,CAAC,CAAC;EACJ;AACF"}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","AuthsignalEmail","AuthsignalPasskey","AuthsignalPush","AuthsignalSms","AuthsignalTotp","AuthsignalDevice","ErrorCode","AuthsignalModule","Proxy","get","Error","Authsignal","constructor","tenantID","baseURL","enableLogging","__DEV__","email","passkey","push","device","sms","totp","setToken","token","launch","url","OS","Promise","resolve","reject","callback","error"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,aAAa,QAAQ,SAAS;AACvC,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,aAAa,QAAQ,OAAO;AACrC,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,gBAAgB,QAAQ,UAAU;AAE3C,cAAc,SAAS;AACvB,SAASC,SAAS,QAAQ,SAAS;AAEnC,MAAMC,gBAAgB,GAAGV,aAAa,CAACU,gBAAgB,GACnDV,aAAa,CAACU,gBAAgB,GAC9B,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACX,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAQL,OAAO,MAAMY,UAAU,CAAC;EAYtBC,WAAW,OAIS;IAAA,IAJR;MACVC,QAAQ;MACRC,OAAO,GAAG,+BAA+B;MACzCC,aAAa,GAAGC;IACD,CAAC;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAChB,IAAI,CAACH,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;IAElC,IAAI,CAACE,KAAK,GAAG,IAAIjB,eAAe,CAAC;MAAEa,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IACtE,IAAI,CAACG,OAAO,GAAG,IAAIjB,iBAAiB,CAAC;MAAEY,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IAC1E,IAAI,CAACI,IAAI,GAAG,IAAIjB,cAAc,CAAC;MAAEW,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IACpE,IAAI,CAACK,MAAM,GAAG,IAAIf,gBAAgB,CAAC;MAAEQ,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IACxE,IAAI,CAACM,GAAG,GAAG,IAAIlB,aAAa,CAAC;MAAEU,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IAClE,IAAI,CAACO,IAAI,GAAG,IAAIlB,cAAc,CAAC;MAAES,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;EACtE;EAEA,MAAMQ,QAAQ,CAACC,KAAa,EAAiB;IAC3C,MAAMjB,gBAAgB,CAACgB,QAAQ,CAACC,KAAK,CAAC;EACxC;EAEA,MAAMC,MAAM,CAACC,GAAW,EAA0B;IAChD,OAAO,MAAMD,MAAM,CAACC,GAAG,CAAC;EAC1B;AACF;AAEA,OAAO,SAASD,MAAM,CAACC,GAAW,EAA0B;EAC1D,IAAI5B,QAAQ,CAAC6B,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOpB,gBAAgB,CAACkB,MAAM,CAACC,GAAG,CAAC;EACrC,CAAC,MAAM;IACL,OAAO,IAAIE,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,QAAQ,GAAG,CAACC,KAAU,EAAER,KAAa,KAAK;QAC9C,IAAIA,KAAK,EAAE;UACTK,OAAO,CAACL,KAAK,CAAC;QAChB,CAAC,MAAM,IAAIQ,KAAK,EAAE;UAChB,IAAIA,KAAK,CAACA,KAAK,KAAK,gBAAgB,EAAE;YACpCH,OAAO,CAAC,IAAI,CAAC;UACf,CAAC,MAAM;YACLC,MAAM,CAACE,KAAK,CAAC;UACf;QACF,CAAC,MAAM;UACLF,MAAM,CAAC,kBAAkB,CAAC;QAC5B;MACF,CAAC;MAEDvB,gBAAgB,CAACkB,MAAM,CAACC,GAAG,EAAEK,QAAQ,CAAC;IACxC,CAAC,CAAC;EACJ;AACF"}
@@ -0,0 +1,28 @@
1
+ import type { AuthsignalResponse, DeviceChallenge, DeviceCredential } from './types';
2
+ interface ConstructorArgs {
3
+ tenantID: string;
4
+ baseURL: string;
5
+ enableLogging: boolean;
6
+ }
7
+ interface AddCredentialInput {
8
+ token?: string;
9
+ }
10
+ interface UpdateChallengeInput {
11
+ challengeId: string;
12
+ approved: boolean;
13
+ verificationCode?: string | null;
14
+ }
15
+ export declare class AuthsignalDevice {
16
+ tenantID: string;
17
+ baseURL: string;
18
+ enableLogging: boolean;
19
+ constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs);
20
+ getCredential(): Promise<AuthsignalResponse<DeviceCredential>>;
21
+ addCredential({ token }?: AddCredentialInput): Promise<AuthsignalResponse<boolean>>;
22
+ removeCredential(): Promise<AuthsignalResponse<boolean>>;
23
+ getChallenge(): Promise<AuthsignalResponse<DeviceChallenge | undefined>>;
24
+ updateChallenge({ challengeId, approved, verificationCode, }: UpdateChallengeInput): Promise<AuthsignalResponse<boolean>>;
25
+ private ensureModuleIsInitialized;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/device.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EACjB,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;CAChB;AAED,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,qBAAa,gBAAgB;IAC3B,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,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAgB9D,aAAa,CAAC,EAAE,KAAK,EAAE,GAAE,kBAAuB,GAAG,OAAO,CAC9D,kBAAkB,CAAC,OAAO,CAAC,CAC5B;IAgBK,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAexD,YAAY,IAAI,OAAO,CAC3B,kBAAkB,CAAC,eAAe,GAAG,SAAS,CAAC,CAChD;IAgBK,eAAe,CAAC,EACpB,WAAW,EACX,QAAQ,EACR,gBAAuB,GACxB,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAoBhD,yBAAyB;CASxC"}
@@ -3,6 +3,7 @@ import { AuthsignalPasskey } from './passkey';
3
3
  import { AuthsignalPush } from './push';
4
4
  import { AuthsignalSms } from './sms';
5
5
  import { AuthsignalTotp } from './totp';
6
+ import { AuthsignalDevice } from './device';
6
7
  export * from './types';
7
8
  export { ErrorCode } from './error';
8
9
  interface ConstructorArgs {
@@ -17,6 +18,7 @@ export declare class Authsignal {
17
18
  email: AuthsignalEmail;
18
19
  passkey: AuthsignalPasskey;
19
20
  push: AuthsignalPush;
21
+ device: AuthsignalDevice;
20
22
  sms: AuthsignalSms;
21
23
  totp: AuthsignalTotp;
22
24
  constructor({ tenantID, baseURL, enableLogging, }: ConstructorArgs);
@@ -1 +1 @@
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"}
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;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,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,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;gBAET,EACV,QAAQ,EACR,OAAyC,EACzC,aAAuB,GACxB,EAAE,eAAe;IAaZ,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"}
@@ -51,4 +51,17 @@ export interface PushChallenge {
51
51
  deviceId?: string;
52
52
  ipAddress?: string;
53
53
  }
54
+ export interface DeviceCredential {
55
+ credentialId: string;
56
+ createdAt: string;
57
+ lastAuthenticatedAt?: string;
58
+ }
59
+ export interface DeviceChallenge {
60
+ challengeId: string;
61
+ actionCode?: string;
62
+ idempotencyKey?: string;
63
+ userAgent?: string;
64
+ deviceId?: string;
65
+ ipAddress?: string;
66
+ }
54
67
  //# 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,GAAG,MAAM,CAAC;CAChC;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,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,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;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
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,GAAG,MAAM,CAAC;CAChC;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,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,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;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-authsignal",
3
- "version": "1.1.10",
3
+ "version": "1.2.2",
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', '1.0.16'
20
+ s.dependency 'Authsignal', '1.1.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/device.ts ADDED
@@ -0,0 +1,149 @@
1
+ import { NativeModules } from 'react-native';
2
+ import { handleErrorCodes, LINKING_ERROR } from './error';
3
+ import type {
4
+ AuthsignalResponse,
5
+ DeviceChallenge,
6
+ DeviceCredential,
7
+ } from './types';
8
+
9
+ interface ConstructorArgs {
10
+ tenantID: string;
11
+ baseURL: string;
12
+ enableLogging: boolean;
13
+ }
14
+
15
+ let initialized = false;
16
+
17
+ const AuthsignalDeviceModule = NativeModules.AuthsignalDeviceModule
18
+ ? NativeModules.AuthsignalDeviceModule
19
+ : new Proxy(
20
+ {},
21
+ {
22
+ get() {
23
+ throw new Error(LINKING_ERROR);
24
+ },
25
+ }
26
+ );
27
+
28
+ interface AddCredentialInput {
29
+ token?: string;
30
+ }
31
+
32
+ interface UpdateChallengeInput {
33
+ challengeId: string;
34
+ approved: boolean;
35
+ verificationCode?: string | null;
36
+ }
37
+
38
+ export class AuthsignalDevice {
39
+ tenantID: string;
40
+ baseURL: string;
41
+ enableLogging: boolean;
42
+
43
+ constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs) {
44
+ this.tenantID = tenantID;
45
+ this.baseURL = baseURL;
46
+ this.enableLogging = enableLogging;
47
+ }
48
+
49
+ async getCredential(): Promise<AuthsignalResponse<DeviceCredential>> {
50
+ await this.ensureModuleIsInitialized();
51
+
52
+ try {
53
+ const data = await AuthsignalDeviceModule.getCredential();
54
+
55
+ return { data };
56
+ } catch (ex) {
57
+ if (this.enableLogging) {
58
+ console.log(ex);
59
+ }
60
+
61
+ return handleErrorCodes(ex);
62
+ }
63
+ }
64
+
65
+ async addCredential({ token }: AddCredentialInput = {}): Promise<
66
+ AuthsignalResponse<boolean>
67
+ > {
68
+ await this.ensureModuleIsInitialized();
69
+
70
+ try {
71
+ const data = await AuthsignalDeviceModule.addCredential(token);
72
+
73
+ return { data };
74
+ } catch (ex) {
75
+ if (this.enableLogging) {
76
+ console.log(ex);
77
+ }
78
+
79
+ return handleErrorCodes(ex);
80
+ }
81
+ }
82
+
83
+ async removeCredential(): Promise<AuthsignalResponse<boolean>> {
84
+ await this.ensureModuleIsInitialized();
85
+
86
+ try {
87
+ const data = await AuthsignalDeviceModule.removeCredential();
88
+ return { data };
89
+ } catch (ex) {
90
+ if (this.enableLogging) {
91
+ console.log(ex);
92
+ }
93
+
94
+ return handleErrorCodes(ex);
95
+ }
96
+ }
97
+
98
+ async getChallenge(): Promise<
99
+ AuthsignalResponse<DeviceChallenge | undefined>
100
+ > {
101
+ await this.ensureModuleIsInitialized();
102
+
103
+ try {
104
+ const data = await AuthsignalDeviceModule.getChallenge();
105
+
106
+ return { data };
107
+ } catch (ex) {
108
+ if (this.enableLogging) {
109
+ console.log(ex);
110
+ }
111
+
112
+ return handleErrorCodes(ex);
113
+ }
114
+ }
115
+
116
+ async updateChallenge({
117
+ challengeId,
118
+ approved,
119
+ verificationCode = null,
120
+ }: UpdateChallengeInput): Promise<AuthsignalResponse<boolean>> {
121
+ await this.ensureModuleIsInitialized();
122
+
123
+ try {
124
+ const data = await AuthsignalDeviceModule.updateChallenge(
125
+ challengeId,
126
+ approved,
127
+ verificationCode
128
+ );
129
+
130
+ return { data };
131
+ } catch (ex) {
132
+ if (this.enableLogging) {
133
+ console.log(ex);
134
+ }
135
+
136
+ return handleErrorCodes(ex);
137
+ }
138
+ }
139
+
140
+ private async ensureModuleIsInitialized() {
141
+ if (initialized) {
142
+ return;
143
+ }
144
+
145
+ await AuthsignalDeviceModule.initialize(this.tenantID, this.baseURL);
146
+
147
+ initialized = true;
148
+ }
149
+ }
package/src/index.tsx CHANGED
@@ -5,6 +5,7 @@ import { AuthsignalPasskey } from './passkey';
5
5
  import { AuthsignalPush } from './push';
6
6
  import { AuthsignalSms } from './sms';
7
7
  import { AuthsignalTotp } from './totp';
8
+ import { AuthsignalDevice } from './device';
8
9
 
9
10
  export * from './types';
10
11
  export { ErrorCode } from './error';
@@ -34,6 +35,7 @@ export class Authsignal {
34
35
  email: AuthsignalEmail;
35
36
  passkey: AuthsignalPasskey;
36
37
  push: AuthsignalPush;
38
+ device: AuthsignalDevice;
37
39
  sms: AuthsignalSms;
38
40
  totp: AuthsignalTotp;
39
41
 
@@ -49,6 +51,7 @@ export class Authsignal {
49
51
  this.email = new AuthsignalEmail({ tenantID, baseURL, enableLogging });
50
52
  this.passkey = new AuthsignalPasskey({ tenantID, baseURL, enableLogging });
51
53
  this.push = new AuthsignalPush({ tenantID, baseURL, enableLogging });
54
+ this.device = new AuthsignalDevice({ tenantID, baseURL, enableLogging });
52
55
  this.sms = new AuthsignalSms({ tenantID, baseURL, enableLogging });
53
56
  this.totp = new AuthsignalTotp({ tenantID, baseURL, enableLogging });
54
57
  }
package/src/types.ts CHANGED
@@ -59,3 +59,18 @@ export interface PushChallenge {
59
59
  deviceId?: string;
60
60
  ipAddress?: string;
61
61
  }
62
+
63
+ export interface DeviceCredential {
64
+ credentialId: string;
65
+ createdAt: string;
66
+ lastAuthenticatedAt?: string;
67
+ }
68
+
69
+ export interface DeviceChallenge {
70
+ challengeId: string;
71
+ actionCode?: string;
72
+ idempotencyKey?: string;
73
+ userAgent?: string;
74
+ deviceId?: string;
75
+ ipAddress?: string;
76
+ }