react-native-authsignal 0.2.1 → 0.2.3

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.
package/README.md CHANGED
@@ -1,23 +1,58 @@
1
1
  # react-native-authsignal
2
2
 
3
- The official Authsignal library for React Native.
3
+ Check out our [official React Native documentation](https://docs.authsignal.com/sdks/client/react-native).
4
4
 
5
5
  ## Installation
6
6
 
7
- ```sh
7
+ Install the Authsignal React Native SDK using npm or yarn:
8
+
9
+ ```bash
8
10
  npm install react-native-authsignal
9
11
  ```
10
12
 
11
- ## Usage
13
+ Then link the native iOS dependencies:
14
+
15
+ ```bash
16
+ npx pod-install ios
17
+ ```
18
+
19
+ ## Initialization
12
20
 
13
- ```js
14
- import { launch } from 'react-native-authsignal';
21
+ Initialize the Authsignal client in your code:
15
22
 
16
- const token = await launch(url);
23
+ ```ts
24
+ import { Authsignal } from 'react-native-authsignal';
17
25
 
18
- if (token) {
19
- // Send token to backend to validate challenge attempt
20
- } else {
21
- // Challenge not completed e.g. user cancelled
22
- }
26
+ const authsignal = new Authsignal({
27
+ tenantId: 'YOUR_TENANT_ID',
28
+ baseUrl: 'YOUR_REGION_BASE_URL',
29
+ });
23
30
  ```
31
+
32
+ You can find your `tenantId` in the [Authsignal Portal](https://portal.authsignal.com/organisations/tenants/api).
33
+
34
+ You must specify the correct `baseUrl` for your tenant's region.
35
+
36
+ | Region | Base URL |
37
+ | ----------- | -------------------------------------- |
38
+ | US (Oregon) | https://challenge.authsignal.com/v1 |
39
+ | AU (Sydney) | https://au-challenge.authsignal.com/v1 |
40
+ | EU (Dublin) | https://eu-challenge.authsignal.com/v1 |
41
+
42
+ ## Usage
43
+
44
+ ### Passkeys
45
+
46
+ For more detailed info on how add passkeys to your app using Authsignal, check out our [official passkey documentation for React Native](https://docs.authsignal.com/sdks/client/react-native#passkeys).
47
+
48
+ ### Push
49
+
50
+ To see how to add push authentication to your app using Authsignal, see our [official push documentation for React Native](https://docs.authsignal.com/sdks/client/react-native#push).
51
+
52
+ ## Examples
53
+
54
+ ### Passkeys
55
+
56
+ You can check out [this Github repo](https://github.com/authsignal/react-native-passkey-example) to see an example app which implements a sign-in with passkey flow using the Authsignal React Native SDK.
57
+
58
+ To see an example app which demonstrates integration with AWS Cognito + Amplify, take a look at this [this branch](https://github.com/authsignal/react-native-passkey-example/tree/with-aws-cognito).
@@ -3,12 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ Authsignal: true,
8
+ launch: true
9
+ };
6
10
  exports.Authsignal = void 0;
7
11
  exports.launch = launch;
8
12
  var _reactNative = require("react-native");
9
13
  var _error = require("./error");
10
14
  var _passkey = require("./passkey");
11
15
  var _push = require("./push");
16
+ var _types = require("./types");
17
+ Object.keys(_types).forEach(function (key) {
18
+ if (key === "default" || key === "__esModule") return;
19
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
+ if (key in exports && exports[key] === _types[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _types[key];
25
+ }
26
+ });
27
+ });
12
28
  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; }
13
29
  const AuthsignalModule = _reactNative.NativeModules.AuthsignalModule ? _reactNative.NativeModules.AuthsignalModule : new Proxy({}, {
14
30
  get() {
@@ -1 +1 @@
1
- {"version":3,"names":["AuthsignalModule","NativeModules","Proxy","get","Error","LINKING_ERROR","Authsignal","constructor","tenantID","baseURL","enableLogging","__DEV__","passkey","AuthsignalPasskey","push","AuthsignalPush","launch","url","Platform","OS","Promise","resolve","reject","callback","error","token"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAAwC;AAExC,MAAMA,gBAAgB,GAAGC,0BAAa,CAACD,gBAAgB,GACnDC,0BAAa,CAACD,gBAAgB,GAC9B,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACC,oBAAa,CAAC;EAChC;AACF,CAAC,CACF;AAQE,MAAMC,UAAU,CAAC;EAQtBC,WAAW,OAIS;IAAA,IAJR;MACVC,QAAQ;MACRC,OAAO,GAAG,qCAAqC;MAC/CC,aAAa,GAAGC;IACD,CAAC;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,OAAO,GAAG,IAAIC,0BAAiB,CAAC;MAAEL,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IAC1E,IAAI,CAACI,IAAI,GAAG,IAAIC,oBAAc,CAAC;MAAEP,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;EACtE;AACF;AAAC;AAEM,SAASM,MAAM,CAACC,GAAW,EAA0B;EAC1D,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOnB,gBAAgB,CAACgB,MAAM,CAACC,GAAG,CAAC;EACrC,CAAC,MAAM;IACL,OAAO,IAAIG,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,QAAQ,GAAG,CAACC,KAAU,EAAEC,KAAa,KAAK;QAC9C,IAAIA,KAAK,EAAE;UACTJ,OAAO,CAACI,KAAK,CAAC;QAChB,CAAC,MAAM,IAAID,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,CAACgB,MAAM,CAACC,GAAG,EAAEM,QAAQ,CAAC;IACxC,CAAC,CAAC;EACJ;AACF"}
1
+ {"version":3,"names":["AuthsignalModule","NativeModules","Proxy","get","Error","LINKING_ERROR","Authsignal","constructor","tenantID","baseURL","enableLogging","__DEV__","passkey","AuthsignalPasskey","push","AuthsignalPush","launch","url","Platform","OS","Promise","resolve","reject","callback","error","token"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AAEA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAAwB;AAExB,MAAMA,gBAAgB,GAAGC,0BAAa,CAACD,gBAAgB,GACnDC,0BAAa,CAACD,gBAAgB,GAC9B,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACC,oBAAa,CAAC;EAChC;AACF,CAAC,CACF;AAQE,MAAMC,UAAU,CAAC;EAQtBC,WAAW,OAIS;IAAA,IAJR;MACVC,QAAQ;MACRC,OAAO,GAAG,qCAAqC;MAC/CC,aAAa,GAAGC;IACD,CAAC;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,OAAO,GAAG,IAAIC,0BAAiB,CAAC;MAAEL,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IAC1E,IAAI,CAACI,IAAI,GAAG,IAAIC,oBAAc,CAAC;MAAEP,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;EACtE;AACF;AAAC;AAEM,SAASM,MAAM,CAACC,GAAW,EAA0B;EAC1D,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOnB,gBAAgB,CAACgB,MAAM,CAACC,GAAG,CAAC;EACrC,CAAC,MAAM;IACL,OAAO,IAAIG,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,QAAQ,GAAG,CAACC,KAAU,EAAEC,KAAa,KAAK;QAC9C,IAAIA,KAAK,EAAE;UACTJ,OAAO,CAACI,KAAK,CAAC;QAChB,CAAC,MAAM,IAAID,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,CAACgB,MAAM,CAACC,GAAG,EAAEM,QAAQ,CAAC;IACxC,CAAC,CAAC;EACJ;AACF"}
@@ -8,6 +8,7 @@ var _reactNative = require("react-native");
8
8
  var _error = require("./error");
9
9
  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; }
10
10
  let initialized = false;
11
+ let autofillRequestPending = false;
11
12
  const AuthsignalPasskeyModule = _reactNative.NativeModules.AuthsignalPasskeyModule ? _reactNative.NativeModules.AuthsignalPasskeyModule : new Proxy({}, {
12
13
  get() {
13
14
  throw new Error(_error.LINKING_ERROR);
@@ -58,7 +59,15 @@ class AuthsignalPasskey {
58
59
  await this.ensureModuleIsInitialized();
59
60
  try {
60
61
  if (_reactNative.Platform.OS === 'ios') {
62
+ if (autofill) {
63
+ if (autofillRequestPending) {
64
+ return {};
65
+ } else {
66
+ autofillRequestPending = true;
67
+ }
68
+ }
61
69
  const data = await AuthsignalPasskeyModule.signIn(token, autofill);
70
+ autofillRequestPending = false;
62
71
  return {
63
72
  data
64
73
  };
@@ -74,6 +83,7 @@ class AuthsignalPasskey {
74
83
  if (this.enableLogging && !autofill) {
75
84
  console.log(ex);
76
85
  }
86
+ autofillRequestPending = false;
77
87
  if (ex instanceof Error) {
78
88
  return {
79
89
  error: ex.message
@@ -1 +1 @@
1
- {"version":3,"names":["initialized","AuthsignalPasskeyModule","NativeModules","Proxy","get","Error","LINKING_ERROR","AuthsignalPasskey","constructor","tenantID","baseURL","enableLogging","signUp","token","userName","ensureModuleIsInitialized","data","ex","console","log","error","message","signIn","autofill","Platform","OS","cancel","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":";;;;;;AAAA;AACA;AAAwC;AAmBxC,IAAIA,WAAW,GAAG,KAAK;AAEvB,MAAMC,uBAAuB,GAAGC,0BAAa,CAACD,uBAAuB,GACjEC,0BAAa,CAACD,uBAAuB,GACrC,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACC,oBAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEE,MAAMC,iBAAiB,CAAC;EAK7BC,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,QAGgD;IAAA,IAH/C;MACXC,KAAK;MACLC;IACkB,CAAC;IACnB,MAAM,IAAI,CAACC,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMC,IAAI,GAAG,MAAMf,uBAAuB,CAACW,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC;MAElE,OAAO;QAAEE;MAAK,CAAC;IACjB,CAAC,CAAC,OAAOC,EAAE,EAAE;MACX,IAAI,IAAI,CAACN,aAAa,EAAE;QACtBO,OAAO,CAACC,GAAG,CAACF,EAAE,CAAC;MACjB;MAEA,IAAIA,EAAE,YAAYZ,KAAK,EAAE;QACvB,OAAO;UAAEe,KAAK,EAAEH,EAAE,CAACI;QAAQ,CAAC;MAC9B;MAEA,MAAMJ,EAAE;IACV;EACF;EAEA,MAAMK,MAAM,QAGgD;IAAA,IAH/C;MACXT,KAAK;MACLU,QAAQ,GAAG;IACO,CAAC;IACnB,MAAM,IAAI,CAACR,yBAAyB,EAAE;IAEtC,IAAI;MACF,IAAIS,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;QACzB,MAAMT,IAAI,GAAG,MAAMf,uBAAuB,CAACqB,MAAM,CAACT,KAAK,EAAEU,QAAQ,CAAC;QAElE,OAAO;UAAEP;QAAK,CAAC;MACjB,CAAC,MAAM,IAAI,CAACO,QAAQ,EAAE;QACpB,MAAMP,IAAI,GAAG,MAAMf,uBAAuB,CAACqB,MAAM,CAACT,KAAK,CAAC;QAExD,OAAO;UAAEG;QAAK,CAAC;MACjB,CAAC,MAAM;QACL,MAAM,IAAIX,KAAK,CAAC,mCAAmC,CAAC;MACtD;IACF,CAAC,CAAC,OAAOY,EAAE,EAAE;MACX,IAAI,IAAI,CAACN,aAAa,IAAI,CAACY,QAAQ,EAAE;QACnCL,OAAO,CAACC,GAAG,CAACF,EAAE,CAAC;MACjB;MAEA,IAAIA,EAAE,YAAYZ,KAAK,EAAE;QACvB,OAAO;UAAEe,KAAK,EAAEH,EAAE,CAACI;QAAQ,CAAC;MAC9B;MAEA,MAAMJ,EAAE;IACV;EACF;EAEAS,MAAM,GAAG;IACP,IAAIF,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBxB,uBAAuB,CAACyB,MAAM,EAAE;IAClC;EACF;EAEA,MAAcX,yBAAyB,GAAG;IACxC,IAAIf,WAAW,EAAE;MACf;IACF;IAEA,MAAMC,uBAAuB,CAAC0B,UAAU,CAAC,IAAI,CAAClB,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAErEV,WAAW,GAAG,IAAI;EACpB;AACF;AAAC"}
1
+ {"version":3,"names":["initialized","autofillRequestPending","AuthsignalPasskeyModule","NativeModules","Proxy","get","Error","LINKING_ERROR","AuthsignalPasskey","constructor","tenantID","baseURL","enableLogging","signUp","token","userName","ensureModuleIsInitialized","data","ex","console","log","error","message","signIn","autofill","Platform","OS","cancel","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { NativeModules, Platform } from 'react-native';
3
3
  import { LINKING_ERROR } from './error';
4
4
  import { AuthsignalPasskey } from './passkey';
5
5
  import { AuthsignalPush } from './push';
6
+ export * from './types';
6
7
  const AuthsignalModule = NativeModules.AuthsignalModule ? NativeModules.AuthsignalModule : new Proxy({}, {
7
8
  get() {
8
9
  throw new Error(LINKING_ERROR);
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","AuthsignalPasskey","AuthsignalPush","AuthsignalModule","Proxy","get","Error","Authsignal","constructor","tenantID","baseURL","enableLogging","__DEV__","passkey","push","launch","url","OS","Promise","resolve","reject","callback","error","token"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,aAAa,QAAQ,SAAS;AACvC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,cAAc,QAAQ,QAAQ;AAEvC,MAAMC,gBAAgB,GAAGL,aAAa,CAACK,gBAAgB,GACnDL,aAAa,CAACK,gBAAgB,GAC9B,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACN,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAQL,OAAO,MAAMO,UAAU,CAAC;EAQtBC,WAAW,OAIS;IAAA,IAJR;MACVC,QAAQ;MACRC,OAAO,GAAG,qCAAqC;MAC/CC,aAAa,GAAGC;IACD,CAAC;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,OAAO,GAAG,IAAIZ,iBAAiB,CAAC;MAAEQ,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IAC1E,IAAI,CAACG,IAAI,GAAG,IAAIZ,cAAc,CAAC;MAAEO,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;EACtE;AACF;AAEA,OAAO,SAASI,MAAM,CAACC,GAAW,EAA0B;EAC1D,IAAIjB,QAAQ,CAACkB,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOd,gBAAgB,CAACY,MAAM,CAACC,GAAG,CAAC;EACrC,CAAC,MAAM;IACL,OAAO,IAAIE,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,QAAQ,GAAG,CAACC,KAAU,EAAEC,KAAa,KAAK;QAC9C,IAAIA,KAAK,EAAE;UACTJ,OAAO,CAACI,KAAK,CAAC;QAChB,CAAC,MAAM,IAAID,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;MAEDjB,gBAAgB,CAACY,MAAM,CAACC,GAAG,EAAEK,QAAQ,CAAC;IACxC,CAAC,CAAC;EACJ;AACF"}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","AuthsignalPasskey","AuthsignalPush","AuthsignalModule","Proxy","get","Error","Authsignal","constructor","tenantID","baseURL","enableLogging","__DEV__","passkey","push","launch","url","OS","Promise","resolve","reject","callback","error","token"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,aAAa,QAAQ,SAAS;AACvC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,cAAc,QAAQ,QAAQ;AAEvC,cAAc,SAAS;AAEvB,MAAMC,gBAAgB,GAAGL,aAAa,CAACK,gBAAgB,GACnDL,aAAa,CAACK,gBAAgB,GAC9B,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACN,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAQL,OAAO,MAAMO,UAAU,CAAC;EAQtBC,WAAW,OAIS;IAAA,IAJR;MACVC,QAAQ;MACRC,OAAO,GAAG,qCAAqC;MAC/CC,aAAa,GAAGC;IACD,CAAC;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,OAAO,GAAG,IAAIZ,iBAAiB,CAAC;MAAEQ,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;IAC1E,IAAI,CAACG,IAAI,GAAG,IAAIZ,cAAc,CAAC;MAAEO,QAAQ;MAAEC,OAAO;MAAEC;IAAc,CAAC,CAAC;EACtE;AACF;AAEA,OAAO,SAASI,MAAM,CAACC,GAAW,EAA0B;EAC1D,IAAIjB,QAAQ,CAACkB,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOd,gBAAgB,CAACY,MAAM,CAACC,GAAG,CAAC;EACrC,CAAC,MAAM;IACL,OAAO,IAAIE,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,QAAQ,GAAG,CAACC,KAAU,EAAEC,KAAa,KAAK;QAC9C,IAAIA,KAAK,EAAE;UACTJ,OAAO,CAACI,KAAK,CAAC;QAChB,CAAC,MAAM,IAAID,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;MAEDjB,gBAAgB,CAACY,MAAM,CAACC,GAAG,EAAEK,QAAQ,CAAC;IACxC,CAAC,CAAC;EACJ;AACF"}
@@ -2,6 +2,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
2
2
  import { NativeModules, Platform } from 'react-native';
3
3
  import { LINKING_ERROR } from './error';
4
4
  let initialized = false;
5
+ let autofillRequestPending = false;
5
6
  const AuthsignalPasskeyModule = NativeModules.AuthsignalPasskeyModule ? NativeModules.AuthsignalPasskeyModule : new Proxy({}, {
6
7
  get() {
7
8
  throw new Error(LINKING_ERROR);
@@ -52,7 +53,15 @@ export class AuthsignalPasskey {
52
53
  await this.ensureModuleIsInitialized();
53
54
  try {
54
55
  if (Platform.OS === 'ios') {
56
+ if (autofill) {
57
+ if (autofillRequestPending) {
58
+ return {};
59
+ } else {
60
+ autofillRequestPending = true;
61
+ }
62
+ }
55
63
  const data = await AuthsignalPasskeyModule.signIn(token, autofill);
64
+ autofillRequestPending = false;
56
65
  return {
57
66
  data
58
67
  };
@@ -68,6 +77,7 @@ export class AuthsignalPasskey {
68
77
  if (this.enableLogging && !autofill) {
69
78
  console.log(ex);
70
79
  }
80
+ autofillRequestPending = false;
71
81
  if (ex instanceof Error) {
72
82
  return {
73
83
  error: ex.message
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","initialized","AuthsignalPasskeyModule","Proxy","get","Error","AuthsignalPasskey","constructor","tenantID","baseURL","enableLogging","signUp","token","userName","ensureModuleIsInitialized","data","ex","console","log","error","message","signIn","autofill","OS","cancel","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":";AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,aAAa,QAAQ,SAAS;AAmBvC,IAAIC,WAAW,GAAG,KAAK;AAEvB,MAAMC,uBAAuB,GAAGJ,aAAa,CAACI,uBAAuB,GACjEJ,aAAa,CAACI,uBAAuB,GACrC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACL,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEL,OAAO,MAAMM,iBAAiB,CAAC;EAK7BC,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,QAGgD;IAAA,IAH/C;MACXC,KAAK;MACLC;IACkB,CAAC;IACnB,MAAM,IAAI,CAACC,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMC,IAAI,GAAG,MAAMb,uBAAuB,CAACS,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC;MAElE,OAAO;QAAEE;MAAK,CAAC;IACjB,CAAC,CAAC,OAAOC,EAAE,EAAE;MACX,IAAI,IAAI,CAACN,aAAa,EAAE;QACtBO,OAAO,CAACC,GAAG,CAACF,EAAE,CAAC;MACjB;MAEA,IAAIA,EAAE,YAAYX,KAAK,EAAE;QACvB,OAAO;UAAEc,KAAK,EAAEH,EAAE,CAACI;QAAQ,CAAC;MAC9B;MAEA,MAAMJ,EAAE;IACV;EACF;EAEA,MAAMK,MAAM,QAGgD;IAAA,IAH/C;MACXT,KAAK;MACLU,QAAQ,GAAG;IACO,CAAC;IACnB,MAAM,IAAI,CAACR,yBAAyB,EAAE;IAEtC,IAAI;MACF,IAAIf,QAAQ,CAACwB,EAAE,KAAK,KAAK,EAAE;QACzB,MAAMR,IAAI,GAAG,MAAMb,uBAAuB,CAACmB,MAAM,CAACT,KAAK,EAAEU,QAAQ,CAAC;QAElE,OAAO;UAAEP;QAAK,CAAC;MACjB,CAAC,MAAM,IAAI,CAACO,QAAQ,EAAE;QACpB,MAAMP,IAAI,GAAG,MAAMb,uBAAuB,CAACmB,MAAM,CAACT,KAAK,CAAC;QAExD,OAAO;UAAEG;QAAK,CAAC;MACjB,CAAC,MAAM;QACL,MAAM,IAAIV,KAAK,CAAC,mCAAmC,CAAC;MACtD;IACF,CAAC,CAAC,OAAOW,EAAE,EAAE;MACX,IAAI,IAAI,CAACN,aAAa,IAAI,CAACY,QAAQ,EAAE;QACnCL,OAAO,CAACC,GAAG,CAACF,EAAE,CAAC;MACjB;MAEA,IAAIA,EAAE,YAAYX,KAAK,EAAE;QACvB,OAAO;UAAEc,KAAK,EAAEH,EAAE,CAACI;QAAQ,CAAC;MAC9B;MAEA,MAAMJ,EAAE;IACV;EACF;EAEAQ,MAAM,GAAG;IACP,IAAIzB,QAAQ,CAACwB,EAAE,KAAK,KAAK,EAAE;MACzBrB,uBAAuB,CAACsB,MAAM,EAAE;IAClC;EACF;EAEA,MAAcV,yBAAyB,GAAG;IACxC,IAAIb,WAAW,EAAE;MACf;IACF;IAEA,MAAMC,uBAAuB,CAACuB,UAAU,CAAC,IAAI,CAACjB,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAErER,WAAW,GAAG,IAAI;EACpB;AACF"}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","initialized","autofillRequestPending","AuthsignalPasskeyModule","Proxy","get","Error","AuthsignalPasskey","constructor","tenantID","baseURL","enableLogging","signUp","token","userName","ensureModuleIsInitialized","data","ex","console","log","error","message","signIn","autofill","OS","cancel","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { AuthsignalPasskey } from './passkey';
2
2
  import { AuthsignalPush } from './push';
3
+ export * from './types';
3
4
  interface ConstructorArgs {
4
5
  tenantID: string;
5
6
  baseURL?: string;
@@ -14,5 +15,4 @@ export declare class Authsignal {
14
15
  constructor({ tenantID, baseURL, enableLogging, }: ConstructorArgs);
15
16
  }
16
17
  export declare function launch(url: string): Promise<string | null>;
17
- export {};
18
18
  //# 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;AAaxC,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,OAA+C,EAC/C,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,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,cAAc,SAAS,CAAC;AAaxB,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,OAA+C,EAC/C,aAAuB,GACxB,EAAE,eAAe;CAQnB;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsB1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/passkey.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,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;CACnB;AAED,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAeD,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,GACT,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAoBrD,MAAM,CAAC,EACX,KAAK,EACL,QAAgB,GACjB,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IA4B3D,MAAM;YAMQ,yBAAyB;CASxC"}
1
+ {"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/passkey.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,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;CACnB;AAED,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;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,GACT,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAoBrD,MAAM,CAAC,EACX,KAAK,EACL,QAAgB,GACjB,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAwC3D,MAAM;YAMQ,yBAAyB;CASxC"}
@@ -2,4 +2,19 @@ export interface AuthsignalResponse<T> {
2
2
  data?: T;
3
3
  error?: string;
4
4
  }
5
+ export interface TokenPayload {
6
+ aud: string;
7
+ exp: number;
8
+ iat: number;
9
+ other: {
10
+ actionCode: string;
11
+ idempotencyKey: string;
12
+ publishableKey: string;
13
+ tenantId: string;
14
+ userId: string;
15
+ username: string;
16
+ };
17
+ scope?: string;
18
+ sub: string;
19
+ }
5
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-authsignal",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "The official Authsignal React Native library.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -34,7 +34,12 @@
34
34
  "keywords": [
35
35
  "react-native",
36
36
  "ios",
37
- "android"
37
+ "android",
38
+ "passkeys",
39
+ "push",
40
+ "auth",
41
+ "authentication",
42
+ "mfa"
38
43
  ],
39
44
  "repository": "https://github.com/authsignal/react-native-authsignal.git",
40
45
  "author": "Authsignal <support@authsignal.com> (https://www.authsignal.com)",
@@ -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.1.10'
20
+ s.dependency 'Authsignal', '0.1.11'
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/index.tsx CHANGED
@@ -3,6 +3,8 @@ import { LINKING_ERROR } from './error';
3
3
  import { AuthsignalPasskey } from './passkey';
4
4
  import { AuthsignalPush } from './push';
5
5
 
6
+ export * from './types';
7
+
6
8
  const AuthsignalModule = NativeModules.AuthsignalModule
7
9
  ? NativeModules.AuthsignalModule
8
10
  : new Proxy(
package/src/passkey.ts CHANGED
@@ -19,6 +19,7 @@ interface PasskeySignInInput {
19
19
  }
20
20
 
21
21
  let initialized = false;
22
+ let autofillRequestPending = false;
22
23
 
23
24
  const AuthsignalPasskeyModule = NativeModules.AuthsignalPasskeyModule
24
25
  ? NativeModules.AuthsignalPasskeyModule
@@ -73,8 +74,18 @@ export class AuthsignalPasskey {
73
74
 
74
75
  try {
75
76
  if (Platform.OS === 'ios') {
77
+ if (autofill) {
78
+ if (autofillRequestPending) {
79
+ return {};
80
+ } else {
81
+ autofillRequestPending = true;
82
+ }
83
+ }
84
+
76
85
  const data = await AuthsignalPasskeyModule.signIn(token, autofill);
77
86
 
87
+ autofillRequestPending = false;
88
+
78
89
  return { data };
79
90
  } else if (!autofill) {
80
91
  const data = await AuthsignalPasskeyModule.signIn(token);
@@ -88,6 +99,8 @@ export class AuthsignalPasskey {
88
99
  console.log(ex);
89
100
  }
90
101
 
102
+ autofillRequestPending = false;
103
+
91
104
  if (ex instanceof Error) {
92
105
  return { error: ex.message };
93
106
  }
package/src/types.ts CHANGED
@@ -2,3 +2,19 @@ export interface AuthsignalResponse<T> {
2
2
  data?: T;
3
3
  error?: string;
4
4
  }
5
+
6
+ export interface TokenPayload {
7
+ aud: string;
8
+ exp: number;
9
+ iat: number;
10
+ other: {
11
+ actionCode: string;
12
+ idempotencyKey: string;
13
+ publishableKey: string;
14
+ tenantId: string;
15
+ userId: string;
16
+ username: string;
17
+ };
18
+ scope?: string;
19
+ sub: string;
20
+ }