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.
- package/android/build.gradle +2 -3
- package/android/gradle/wrapper/gradle-wrapper.properties +2 -1
- package/android/gradle.properties +2 -2
- package/android/src/main/java/com/authsignal/react/AuthsignalEmailModule.java +133 -0
- package/android/src/main/java/com/authsignal/react/AuthsignalModule.java +10 -2
- package/android/src/main/java/com/authsignal/react/AuthsignalPackage.java +4 -1
- package/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.java +18 -8
- package/android/src/main/java/com/authsignal/react/AuthsignalPushModule.java +3 -1
- package/android/src/main/java/com/authsignal/react/AuthsignalSMSModule.java +133 -0
- package/android/src/main/java/com/authsignal/react/AuthsignalTOTPModule.java +112 -0
- package/ios/Authsignal.xcodeproj/project.pbxproj +16 -4
- package/ios/AuthsignalEmailModule.m +22 -0
- package/ios/AuthsignalEmailModule.swift +109 -0
- package/ios/AuthsignalModule.m +9 -63
- package/ios/AuthsignalModule.swift +87 -0
- package/ios/AuthsignalPasskeyModule.m +1 -1
- package/ios/AuthsignalPasskeyModule.swift +11 -9
- package/ios/AuthsignalPushModule.m +1 -1
- package/ios/AuthsignalPushModule.swift +9 -7
- package/ios/AuthsignalSMSModule.m +22 -0
- package/ios/AuthsignalSMSModule.swift +109 -0
- package/ios/AuthsignalTOTPModule.m +18 -0
- package/ios/AuthsignalTOTPModule.swift +82 -0
- package/lib/commonjs/email.js +80 -0
- package/lib/commonjs/email.js.map +1 -0
- package/lib/commonjs/error.js +19 -0
- package/lib/commonjs/error.js.map +1 -1
- package/lib/commonjs/index.js +27 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/passkey.js +20 -10
- package/lib/commonjs/passkey.js.map +1 -1
- package/lib/commonjs/sms.js +80 -0
- package/lib/commonjs/sms.js.map +1 -0
- package/lib/commonjs/totp.js +68 -0
- package/lib/commonjs/totp.js.map +1 -0
- package/lib/module/email.js +73 -0
- package/lib/module/email.js.map +1 -0
- package/lib/module/error.js +18 -0
- package/lib/module/error.js.map +1 -1
- package/lib/module/index.js +27 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/passkey.js +20 -10
- package/lib/module/passkey.js.map +1 -1
- package/lib/module/sms.js +73 -0
- package/lib/module/sms.js.map +1 -0
- package/lib/module/totp.js +61 -0
- package/lib/module/totp.js.map +1 -0
- package/lib/typescript/email.d.ts +22 -0
- package/lib/typescript/email.d.ts.map +1 -0
- package/lib/typescript/error.d.ts +11 -1
- package/lib/typescript/error.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +8 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/passkey.d.ts +3 -3
- package/lib/typescript/passkey.d.ts.map +1 -1
- package/lib/typescript/sms.d.ts +22 -0
- package/lib/typescript/sms.d.ts.map +1 -0
- package/lib/typescript/totp.d.ts +22 -0
- package/lib/typescript/totp.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +10 -2
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-authsignal.podspec +1 -1
- package/src/email.ts +94 -0
- package/src/error.ts +20 -0
- package/src/index.tsx +17 -0
- package/src/passkey.ts +17 -9
- package/src/sms.ts +96 -0
- package/src/totp.ts +83 -0
- package/src/types.ts +12 -2
- package/yarn.lock +109 -83
- 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","
|
|
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":";AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,aAAa,EAAEC,SAAS,QAAQ,SAAS;AA0BlD,IAAIC,WAAW,GAAG,KAAK;AACvB,IAAIC,sBAAsB,GAAG,KAAK;AAElC,MAAMC,uBAAuB,GAAGN,aAAa,CAACM,uBAAuB,GACjEN,aAAa,CAACM,uBAAuB,GACrC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEL,OAAO,MAAMQ,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,GAI6D;IAAA,IAJ5D;MACXC,KAAK;MACLC,QAAQ;MACRC;IACkB,CAAC,uEAAG,CAAC,CAAC;IACxB,MAAM,IAAI,CAACC,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMC,IAAI,GAAG,MAAMd,uBAAuB,CAACS,MAAM,CAC/CC,KAAK,EACLC,QAAQ,EACRC,WAAW,CACZ;MAED,OAAO;QAAEE;MAAK,CAAC;IACjB,CAAC,CAAC,OAAOC,EAAE,EAAE;MACX,IAAI,IAAI,CAACP,aAAa,EAAE;QACtBQ,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,GAK6D;IAAA,IAL5D;MACXC,MAAM;MACNX,KAAK;MACLY,QAAQ,GAAG,KAAK;MAChBC,qCAAqC,GAAG;IACtB,CAAC,uEAAG,CAAC,CAAC;IACxB,MAAM,IAAI,CAACV,yBAAyB,EAAE;IAEtC,IAAI;MACF,IAAIS,QAAQ,EAAE;QACZ,IAAIvB,sBAAsB,EAAE;UAC1B,OAAO,CAAC,CAAC;QACX,CAAC,MAAM;UACLA,sBAAsB,GAAG,IAAI;QAC/B;MACF;MAEA,IAAIJ,QAAQ,CAAC6B,EAAE,KAAK,KAAK,EAAE;QACzB,MAAMV,IAAI,GAAG,MAAMd,uBAAuB,CAACoB,MAAM,CAC/CC,MAAM,EACNX,KAAK,EACLY,QAAQ,EACRC,qCAAqC,CACtC;QAEDxB,sBAAsB,GAAG,KAAK;QAE9B,OAAO;UAAEe;QAAK,CAAC;MACjB,CAAC,MAAM;QACL,MAAMA,IAAI,GAAG,MAAMd,uBAAuB,CAACoB,MAAM,CAACC,MAAM,EAAEX,KAAK,CAAC;QAEhEX,sBAAsB,GAAG,KAAK;QAE9B,OAAO;UAAEe;QAAK,CAAC;MACjB;IACF,CAAC,CAAC,OAAOC,EAAE,EAAE;MACX,IAAI,IAAI,CAACP,aAAa,IAAI,CAACc,QAAQ,EAAE;QACnCN,OAAO,CAACC,GAAG,CAACF,EAAE,CAAC;MACjB;MAEAhB,sBAAsB,GAAG,KAAK;MAE9B,IAAIgB,EAAE,YAAYZ,KAAK,EAAE;QACvB,QAAQY,EAAE,CAACI,OAAO;UAChB,KAAK,kBAAkB;YACrB,OAAO;cACLM,SAAS,EAAE5B,SAAS,CAAC6B,qBAAqB;cAC1CR,KAAK,EAAE;YACT,CAAC;UACH,KAAK,uBAAuB;YAC1B,OAAO;cACLO,SAAS,EAAE5B,SAAS,CAAC8B,4BAA4B;cACjDT,KAAK,EAAE;YACT,CAAC;UACH;YACE,OAAO;cAAEA,KAAK,EAAEH,EAAE,CAACI;YAAQ,CAAC;QAAC;MAEnC;MAEA,MAAMJ,EAAE;IACV;EACF;EAEAa,MAAM,GAAG;IACP,IAAIjC,QAAQ,CAAC6B,EAAE,KAAK,KAAK,EAAE;MACzBxB,uBAAuB,CAAC4B,MAAM,EAAE;IAClC;EACF;EAEA,MAAMC,mBAAmB,GAAqB;IAC5C,MAAM,IAAI,CAAChB,yBAAyB,EAAE;IAEtC,OAAO,MAAMb,uBAAuB,CAAC6B,mBAAmB,EAAE;EAC5D;EAEA,MAAchB,yBAAyB,GAAG;IACxC,IAAIf,WAAW,EAAE;MACf;IACF;IAEA,MAAME,uBAAuB,CAAC8B,UAAU,CAAC,IAAI,CAACxB,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAErET,WAAW,GAAG,IAAI;EACpB;AACF"}
|
|
@@ -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
|
-
|
|
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;
|
|
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;
|
|
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
|
|
9
|
-
|
|
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,
|
|
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;
|
|
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
|
-
|
|
31
|
-
|
|
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,
|
|
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
|
@@ -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
|
|
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
|
|
17
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|