react-native-authsignal 2.3.8 → 2.5.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 +1 -1
- package/lib/commonjs/email.web.js +93 -0
- package/lib/commonjs/email.web.js.map +1 -0
- package/lib/commonjs/error.web.js +22 -0
- package/lib/commonjs/error.web.js.map +1 -0
- package/lib/commonjs/index.web.js +101 -0
- package/lib/commonjs/index.web.js.map +1 -0
- package/lib/commonjs/passkey.web.js +118 -0
- package/lib/commonjs/passkey.web.js.map +1 -0
- package/lib/commonjs/sms.web.js +93 -0
- package/lib/commonjs/sms.web.js.map +1 -0
- package/lib/commonjs/totp.web.js +79 -0
- package/lib/commonjs/totp.web.js.map +1 -0
- package/lib/commonjs/web-client.js +27 -0
- package/lib/commonjs/web-client.js.map +1 -0
- package/lib/commonjs/whatsapp.web.js +74 -0
- package/lib/commonjs/whatsapp.web.js.map +1 -0
- package/lib/module/email.web.js +86 -0
- package/lib/module/email.web.js.map +1 -0
- package/lib/module/error.web.js +15 -0
- package/lib/module/error.web.js.map +1 -0
- package/lib/module/index.web.js +71 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/passkey.web.js +111 -0
- package/lib/module/passkey.web.js.map +1 -0
- package/lib/module/sms.web.js +86 -0
- package/lib/module/sms.web.js.map +1 -0
- package/lib/module/totp.web.js +72 -0
- package/lib/module/totp.web.js.map +1 -0
- package/lib/module/web-client.js +21 -0
- package/lib/module/web-client.js.map +1 -0
- package/lib/module/whatsapp.web.js +67 -0
- package/lib/module/whatsapp.web.js.map +1 -0
- package/lib/typescript/email.web.d.ts +22 -0
- package/lib/typescript/email.web.d.ts.map +1 -0
- package/lib/typescript/error.web.d.ts +12 -0
- package/lib/typescript/error.web.d.ts.map +1 -0
- package/lib/typescript/index.web.d.ts +28 -0
- package/lib/typescript/index.web.d.ts.map +1 -0
- package/lib/typescript/passkey.web.d.ts +33 -0
- package/lib/typescript/passkey.web.d.ts.map +1 -0
- package/lib/typescript/sms.web.d.ts +22 -0
- package/lib/typescript/sms.web.d.ts.map +1 -0
- package/lib/typescript/totp.web.d.ts +22 -0
- package/lib/typescript/totp.web.d.ts.map +1 -0
- package/lib/typescript/web-client.d.ts +9 -0
- package/lib/typescript/web-client.d.ts.map +1 -0
- package/lib/typescript/whatsapp.web.d.ts +18 -0
- package/lib/typescript/whatsapp.web.d.ts.map +1 -0
- package/package.json +10 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { getOrCreateWebClient } from './web-client';
|
|
2
|
+
import { handleErrorCodes } from './error';
|
|
3
|
+
export class AuthsignalEmail {
|
|
4
|
+
constructor({
|
|
5
|
+
tenantID,
|
|
6
|
+
baseURL,
|
|
7
|
+
enableLogging
|
|
8
|
+
}) {
|
|
9
|
+
this.tenantID = tenantID;
|
|
10
|
+
this.baseURL = baseURL;
|
|
11
|
+
this.enableLogging = enableLogging;
|
|
12
|
+
}
|
|
13
|
+
async enroll({
|
|
14
|
+
email
|
|
15
|
+
}) {
|
|
16
|
+
try {
|
|
17
|
+
const client = this.getClient();
|
|
18
|
+
const result = await client.email.enroll({
|
|
19
|
+
email
|
|
20
|
+
});
|
|
21
|
+
if (result.errorCode) {
|
|
22
|
+
return {
|
|
23
|
+
error: result.errorDescription ?? result.error,
|
|
24
|
+
errorCode: result.errorCode
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {};
|
|
28
|
+
} catch (ex) {
|
|
29
|
+
return this.handleError(ex);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async challenge() {
|
|
33
|
+
try {
|
|
34
|
+
const client = this.getClient();
|
|
35
|
+
const result = await client.email.challenge();
|
|
36
|
+
if (result.errorCode) {
|
|
37
|
+
return {
|
|
38
|
+
error: result.errorDescription ?? result.error,
|
|
39
|
+
errorCode: result.errorCode
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {};
|
|
43
|
+
} catch (ex) {
|
|
44
|
+
return this.handleError(ex);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async verify({
|
|
48
|
+
code
|
|
49
|
+
}) {
|
|
50
|
+
try {
|
|
51
|
+
const client = this.getClient();
|
|
52
|
+
const result = await client.email.verify({
|
|
53
|
+
code
|
|
54
|
+
});
|
|
55
|
+
if (result.errorCode) {
|
|
56
|
+
return {
|
|
57
|
+
error: result.errorDescription ?? result.error,
|
|
58
|
+
errorCode: result.errorCode
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
data: result.data ? {
|
|
63
|
+
isVerified: result.data.isVerified,
|
|
64
|
+
token: result.data.token,
|
|
65
|
+
failureReason: result.data.failureReason
|
|
66
|
+
} : undefined
|
|
67
|
+
};
|
|
68
|
+
} catch (ex) {
|
|
69
|
+
return this.handleError(ex);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
getClient() {
|
|
73
|
+
return getOrCreateWebClient({
|
|
74
|
+
tenantID: this.tenantID,
|
|
75
|
+
baseURL: this.baseURL,
|
|
76
|
+
enableLogging: this.enableLogging
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
handleError(ex) {
|
|
80
|
+
if (this.enableLogging) {
|
|
81
|
+
console.log(ex);
|
|
82
|
+
}
|
|
83
|
+
return handleErrorCodes(ex);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=email.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getOrCreateWebClient","handleErrorCodes","AuthsignalEmail","constructor","tenantID","baseURL","enableLogging","enroll","email","client","getClient","result","errorCode","error","errorDescription","ex","handleError","challenge","verify","code","data","isVerified","token","failureReason","undefined","console","log"],"sourceRoot":"../../src","sources":["email.web.ts"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,SAASC,gBAAgB,QAAQ,SAAS;AAa1C,OAAO,MAAMC,eAAe,CAAC;EAK3BC,WAAWA,CAAC;IAAEC,QAAQ;IAAEC,OAAO;IAAEC;EAA+B,CAAC,EAAE;IACjE,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,MAAMA,CAAC;IAAEC;EAAwB,CAAC,EAAqC;IAC3E,IAAI;MACF,MAAMC,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;MAC/B,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACD,KAAK,CAACD,MAAM,CAAC;QAAEC;MAAM,CAAC,CAAC;MAEnD,IAAIG,MAAM,CAACC,SAAS,EAAE;QACpB,OAAO;UACLC,KAAK,EAAEF,MAAM,CAACG,gBAAgB,IAAIH,MAAM,CAACE,KAAK;UAC9CD,SAAS,EAAED,MAAM,CAACC;QACpB,CAAC;MACH;MAEA,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,OAAOG,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAME,SAASA,CAAA,EAAsC;IACnD,IAAI;MACF,MAAMR,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;MAC/B,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACD,KAAK,CAACS,SAAS,CAAC,CAAC;MAE7C,IAAIN,MAAM,CAACC,SAAS,EAAE;QACpB,OAAO;UACLC,KAAK,EAAEF,MAAM,CAACG,gBAAgB,IAAIH,MAAM,CAACE,KAAK;UAC9CD,SAAS,EAAED,MAAM,CAACC;QACpB,CAAC;MACH;MAEA,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,OAAOG,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAMG,MAAMA,CAAC;IACXC;EACW,CAAC,EAA+C;IAC3D,IAAI;MACF,MAAMV,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;MAC/B,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACD,KAAK,CAACU,MAAM,CAAC;QAAEC;MAAK,CAAC,CAAC;MAElD,IAAIR,MAAM,CAACC,SAAS,EAAE;QACpB,OAAO;UACLC,KAAK,EAAEF,MAAM,CAACG,gBAAgB,IAAIH,MAAM,CAACE,KAAK;UAC9CD,SAAS,EAAED,MAAM,CAACC;QACpB,CAAC;MACH;MAEA,OAAO;QACLQ,IAAI,EAAET,MAAM,CAACS,IAAI,GACb;UACEC,UAAU,EAAEV,MAAM,CAACS,IAAI,CAACC,UAAU;UAClCC,KAAK,EAAEX,MAAM,CAACS,IAAI,CAACE,KAAK;UACxBC,aAAa,EAAEZ,MAAM,CAACS,IAAI,CAACG;QAC7B,CAAC,GACDC;MACN,CAAC;IACH,CAAC,CAAC,OAAOT,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEQL,SAASA,CAAA,EAAG;IAClB,OAAOV,oBAAoB,CAAC;MAC1BI,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBC,aAAa,EAAE,IAAI,CAACA;IACtB,CAAC,CAAC;EACJ;EAEQU,WAAWA,CAACD,EAAW,EAAE;IAC/B,IAAI,IAAI,CAACT,aAAa,EAAE;MACtBmB,OAAO,CAACC,GAAG,CAACX,EAAE,CAAC;IACjB;IAEA,OAAOd,gBAAgB,CAACc,EAAE,CAAC;EAC7B;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export let ErrorCode;
|
|
2
|
+
(function (ErrorCode) {
|
|
3
|
+
ErrorCode["token_not_set"] = "token_not_set";
|
|
4
|
+
ErrorCode["token_required"] = "token_required";
|
|
5
|
+
ErrorCode["token_invalid"] = "token_invalid";
|
|
6
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
7
|
+
export function handleErrorCodes(ex) {
|
|
8
|
+
const message = (ex === null || ex === void 0 ? void 0 : ex.errorDescription) ?? (ex === null || ex === void 0 ? void 0 : ex.message) ?? (ex === null || ex === void 0 ? void 0 : ex.error) ?? String(ex);
|
|
9
|
+
const code = (ex === null || ex === void 0 ? void 0 : ex.errorCode) ?? (ex === null || ex === void 0 ? void 0 : ex.code) ?? undefined;
|
|
10
|
+
return {
|
|
11
|
+
error: message,
|
|
12
|
+
errorCode: code
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=error.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ErrorCode","handleErrorCodes","ex","message","errorDescription","error","String","code","errorCode","undefined"],"sourceRoot":"../../src","sources":["error.web.ts"],"mappings":"AAAA,WAAYA,SAAS;AAIpB,WAJWA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;AAAA,GAATA,SAAS,KAATA,SAAS;AAMrB,OAAO,SAASC,gBAAgBA,CAACC,EAAO,EAAE;EACxC,MAAMC,OAAO,GACX,CAAAD,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEE,gBAAgB,MAAIF,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEC,OAAO,MAAID,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEG,KAAK,KAAIC,MAAM,CAACJ,EAAE,CAAC;EAChE,MAAMK,IAAI,GAAG,CAAAL,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEM,SAAS,MAAIN,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEK,IAAI,KAAIE,SAAS;EAEnD,OAAO;IACLJ,KAAK,EAAEF,OAAO;IACdK,SAAS,EAAED;EACb,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { getOrCreateWebClient } from './web-client';
|
|
2
|
+
import { AuthsignalEmail } from './email';
|
|
3
|
+
import { AuthsignalPasskey } from './passkey';
|
|
4
|
+
import { AuthsignalSms } from './sms';
|
|
5
|
+
import { AuthsignalTotp } from './totp';
|
|
6
|
+
import { AuthsignalWhatsapp } from './whatsapp';
|
|
7
|
+
export * from './types';
|
|
8
|
+
export { ErrorCode } from './error';
|
|
9
|
+
let _lastClient = null;
|
|
10
|
+
export class Authsignal {
|
|
11
|
+
constructor({
|
|
12
|
+
tenantID,
|
|
13
|
+
baseURL = 'https://api.authsignal.com/v1',
|
|
14
|
+
deviceID,
|
|
15
|
+
enableLogging = false
|
|
16
|
+
}) {
|
|
17
|
+
this.tenantID = tenantID;
|
|
18
|
+
this.baseURL = baseURL;
|
|
19
|
+
this.enableLogging = enableLogging;
|
|
20
|
+
_lastClient = {
|
|
21
|
+
tenantID,
|
|
22
|
+
baseURL,
|
|
23
|
+
enableLogging
|
|
24
|
+
};
|
|
25
|
+
const input = {
|
|
26
|
+
tenantID,
|
|
27
|
+
baseURL,
|
|
28
|
+
enableLogging
|
|
29
|
+
};
|
|
30
|
+
this.passkey = new AuthsignalPasskey({
|
|
31
|
+
...input,
|
|
32
|
+
deviceID
|
|
33
|
+
});
|
|
34
|
+
this.email = new AuthsignalEmail(input);
|
|
35
|
+
this.sms = new AuthsignalSms(input);
|
|
36
|
+
this.totp = new AuthsignalTotp(input);
|
|
37
|
+
this.whatsapp = new AuthsignalWhatsapp(input);
|
|
38
|
+
}
|
|
39
|
+
async setToken(token) {
|
|
40
|
+
const client = getOrCreateWebClient({
|
|
41
|
+
tenantID: this.tenantID,
|
|
42
|
+
baseURL: this.baseURL,
|
|
43
|
+
enableLogging: this.enableLogging
|
|
44
|
+
});
|
|
45
|
+
client.setToken(token);
|
|
46
|
+
}
|
|
47
|
+
async launch(url) {
|
|
48
|
+
return await launch(url);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function launch(url) {
|
|
52
|
+
if (_lastClient) {
|
|
53
|
+
const client = getOrCreateWebClient({
|
|
54
|
+
tenantID: _lastClient.tenantID,
|
|
55
|
+
baseURL: _lastClient.baseURL,
|
|
56
|
+
enableLogging: _lastClient.enableLogging
|
|
57
|
+
});
|
|
58
|
+
return client.launch(url, {
|
|
59
|
+
mode: 'popup'
|
|
60
|
+
}).then(result => {
|
|
61
|
+
return (result === null || result === void 0 ? void 0 : result.token) ?? null;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Fallback if no Authsignal instance has been created yet
|
|
66
|
+
if (typeof window !== 'undefined') {
|
|
67
|
+
window.open(url, '_blank');
|
|
68
|
+
}
|
|
69
|
+
return Promise.resolve(null);
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=index.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getOrCreateWebClient","AuthsignalEmail","AuthsignalPasskey","AuthsignalSms","AuthsignalTotp","AuthsignalWhatsapp","ErrorCode","_lastClient","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","input","passkey","email","sms","totp","whatsapp","setToken","token","client","launch","url","mode","then","result","window","open","Promise","resolve"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,aAAa,QAAQ,OAAO;AACrC,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,kBAAkB,QAAQ,YAAY;AAE/C,cAAc,SAAS;AACvB,SAASC,SAAS,QAAQ,SAAS;AASnC,IAAIC,WAII,GAAG,IAAI;AAEf,OAAO,MAAMC,UAAU,CAAC;EAWtBC,WAAWA,CAAC;IACVC,QAAQ;IACRC,OAAO,GAAG,+BAA+B;IACzCC,QAAQ;IACRC,aAAa,GAAG;EACD,CAAC,EAAE;IAClB,IAAI,CAACH,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAElCN,WAAW,GAAG;MAAEG,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC;IAElD,MAAMC,KAAK,GAAG;MAAEJ,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC;IAElD,IAAI,CAACE,OAAO,GAAG,IAAIb,iBAAiB,CAAC;MAAE,GAAGY,KAAK;MAAEF;IAAS,CAAC,CAAC;IAC5D,IAAI,CAACI,KAAK,GAAG,IAAIf,eAAe,CAACa,KAAK,CAAC;IACvC,IAAI,CAACG,GAAG,GAAG,IAAId,aAAa,CAACW,KAAK,CAAC;IACnC,IAAI,CAACI,IAAI,GAAG,IAAId,cAAc,CAACU,KAAK,CAAC;IACrC,IAAI,CAACK,QAAQ,GAAG,IAAId,kBAAkB,CAACS,KAAK,CAAC;EAC/C;EAEA,MAAMM,QAAQA,CAACC,KAAa,EAAiB;IAC3C,MAAMC,MAAM,GAAGtB,oBAAoB,CAAC;MAClCU,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBE,aAAa,EAAE,IAAI,CAACA;IACtB,CAAC,CAAC;IAEFS,MAAM,CAACF,QAAQ,CAACC,KAAK,CAAC;EACxB;EAEA,MAAME,MAAMA,CAACC,GAAW,EAA0B;IAChD,OAAO,MAAMD,MAAM,CAACC,GAAG,CAAC;EAC1B;AACF;AAEA,OAAO,SAASD,MAAMA,CAACC,GAAW,EAA0B;EAC1D,IAAIjB,WAAW,EAAE;IACf,MAAMe,MAAM,GAAGtB,oBAAoB,CAAC;MAClCU,QAAQ,EAAEH,WAAW,CAACG,QAAQ;MAC9BC,OAAO,EAAEJ,WAAW,CAACI,OAAO;MAC5BE,aAAa,EAAEN,WAAW,CAACM;IAC7B,CAAC,CAAC;IAEF,OAAOS,MAAM,CAACC,MAAM,CAACC,GAAG,EAAE;MAAEC,IAAI,EAAE;IAAQ,CAAC,CAAC,CAACC,IAAI,CAAEC,MAAM,IAAK;MAC5D,OAAO,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEN,KAAK,KAAI,IAAI;IAC9B,CAAC,CAAC;EACJ;;EAEA;EACA,IAAI,OAAOO,MAAM,KAAK,WAAW,EAAE;IACjCA,MAAM,CAACC,IAAI,CAACL,GAAG,EAAE,QAAQ,CAAC;EAC5B;EAEA,OAAOM,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;AAC9B","ignoreList":[]}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { getOrCreateWebClient } from './web-client';
|
|
2
|
+
import { handleErrorCodes } from './error';
|
|
3
|
+
export class AuthsignalPasskey {
|
|
4
|
+
constructor({
|
|
5
|
+
tenantID,
|
|
6
|
+
baseURL,
|
|
7
|
+
deviceID,
|
|
8
|
+
enableLogging
|
|
9
|
+
}) {
|
|
10
|
+
this.tenantID = tenantID;
|
|
11
|
+
this.baseURL = baseURL;
|
|
12
|
+
this.deviceID = deviceID;
|
|
13
|
+
this.enableLogging = enableLogging;
|
|
14
|
+
}
|
|
15
|
+
async signUp({
|
|
16
|
+
token,
|
|
17
|
+
username,
|
|
18
|
+
displayName,
|
|
19
|
+
ignorePasskeyAlreadyExistsError = false
|
|
20
|
+
} = {}) {
|
|
21
|
+
try {
|
|
22
|
+
const client = this.getClient();
|
|
23
|
+
const result = await client.passkey.signUp({
|
|
24
|
+
token,
|
|
25
|
+
username,
|
|
26
|
+
displayName
|
|
27
|
+
});
|
|
28
|
+
if (result.errorCode) {
|
|
29
|
+
return {
|
|
30
|
+
error: result.errorDescription ?? result.error,
|
|
31
|
+
errorCode: result.errorCode
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
data: result.data ? {
|
|
36
|
+
token: result.data.token
|
|
37
|
+
} : undefined
|
|
38
|
+
};
|
|
39
|
+
} catch (ex) {
|
|
40
|
+
if (ignorePasskeyAlreadyExistsError && (ex === null || ex === void 0 ? void 0 : ex.name) === 'InvalidStateError') {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
return this.handleWebAuthnError(ex);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async signIn({
|
|
47
|
+
action,
|
|
48
|
+
token,
|
|
49
|
+
autofill = false
|
|
50
|
+
} = {}) {
|
|
51
|
+
try {
|
|
52
|
+
const client = this.getClient();
|
|
53
|
+
const result = await client.passkey.signIn({
|
|
54
|
+
action,
|
|
55
|
+
token,
|
|
56
|
+
autofill
|
|
57
|
+
});
|
|
58
|
+
if (result.errorCode) {
|
|
59
|
+
return {
|
|
60
|
+
error: result.errorDescription ?? result.error,
|
|
61
|
+
errorCode: result.errorCode
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
data: result.data ? {
|
|
66
|
+
isVerified: result.data.isVerified,
|
|
67
|
+
token: result.data.token,
|
|
68
|
+
userId: result.data.userId,
|
|
69
|
+
userAuthenticatorId: result.data.userAuthenticatorId,
|
|
70
|
+
username: result.data.username,
|
|
71
|
+
displayName: result.data.displayName
|
|
72
|
+
} : undefined
|
|
73
|
+
};
|
|
74
|
+
} catch (ex) {
|
|
75
|
+
return this.handleWebAuthnError(ex);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
cancel() {
|
|
79
|
+
// On web, passkey operations are managed by the browser
|
|
80
|
+
// and cannot be programmatically cancelled
|
|
81
|
+
}
|
|
82
|
+
isSupported() {
|
|
83
|
+
return typeof window !== 'undefined' && typeof window.PublicKeyCredential !== 'undefined';
|
|
84
|
+
}
|
|
85
|
+
getClient() {
|
|
86
|
+
return getOrCreateWebClient({
|
|
87
|
+
tenantID: this.tenantID,
|
|
88
|
+
baseURL: this.baseURL,
|
|
89
|
+
enableLogging: this.enableLogging
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
handleWebAuthnError(ex) {
|
|
93
|
+
if (this.enableLogging) {
|
|
94
|
+
console.log(ex);
|
|
95
|
+
}
|
|
96
|
+
if ((ex === null || ex === void 0 ? void 0 : ex.name) === 'NotAllowedError') {
|
|
97
|
+
return {
|
|
98
|
+
error: ex.message ?? 'User cancelled the operation',
|
|
99
|
+
errorCode: 'user_canceled'
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if ((ex === null || ex === void 0 ? void 0 : ex.name) === 'InvalidStateError') {
|
|
103
|
+
return {
|
|
104
|
+
error: ex.message ?? 'Credential already exists',
|
|
105
|
+
errorCode: 'matched_excluded_credential'
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return handleErrorCodes(ex);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=passkey.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getOrCreateWebClient","handleErrorCodes","AuthsignalPasskey","constructor","tenantID","baseURL","deviceID","enableLogging","signUp","token","username","displayName","ignorePasskeyAlreadyExistsError","client","getClient","result","passkey","errorCode","error","errorDescription","data","undefined","ex","name","handleWebAuthnError","signIn","action","autofill","isVerified","userId","userAuthenticatorId","cancel","isSupported","window","PublicKeyCredential","console","log","message"],"sourceRoot":"../../src","sources":["passkey.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { getOrCreateWebClient } from './web-client';
|
|
2
|
+
import { handleErrorCodes } from './error';
|
|
3
|
+
export class AuthsignalSms {
|
|
4
|
+
constructor({
|
|
5
|
+
tenantID,
|
|
6
|
+
baseURL,
|
|
7
|
+
enableLogging
|
|
8
|
+
}) {
|
|
9
|
+
this.tenantID = tenantID;
|
|
10
|
+
this.baseURL = baseURL;
|
|
11
|
+
this.enableLogging = enableLogging;
|
|
12
|
+
}
|
|
13
|
+
async enroll({
|
|
14
|
+
phoneNumber
|
|
15
|
+
}) {
|
|
16
|
+
try {
|
|
17
|
+
const client = this.getClient();
|
|
18
|
+
const result = await client.sms.enroll({
|
|
19
|
+
phoneNumber
|
|
20
|
+
});
|
|
21
|
+
if (result.errorCode) {
|
|
22
|
+
return {
|
|
23
|
+
error: result.errorDescription ?? result.error,
|
|
24
|
+
errorCode: result.errorCode
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {};
|
|
28
|
+
} catch (ex) {
|
|
29
|
+
return this.handleError(ex);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async challenge() {
|
|
33
|
+
try {
|
|
34
|
+
const client = this.getClient();
|
|
35
|
+
const result = await client.sms.challenge();
|
|
36
|
+
if (result.errorCode) {
|
|
37
|
+
return {
|
|
38
|
+
error: result.errorDescription ?? result.error,
|
|
39
|
+
errorCode: result.errorCode
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {};
|
|
43
|
+
} catch (ex) {
|
|
44
|
+
return this.handleError(ex);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async verify({
|
|
48
|
+
code
|
|
49
|
+
}) {
|
|
50
|
+
try {
|
|
51
|
+
const client = this.getClient();
|
|
52
|
+
const result = await client.sms.verify({
|
|
53
|
+
code
|
|
54
|
+
});
|
|
55
|
+
if (result.errorCode) {
|
|
56
|
+
return {
|
|
57
|
+
error: result.errorDescription ?? result.error,
|
|
58
|
+
errorCode: result.errorCode
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
data: result.data ? {
|
|
63
|
+
isVerified: result.data.isVerified,
|
|
64
|
+
token: result.data.token,
|
|
65
|
+
failureReason: result.data.failureReason
|
|
66
|
+
} : undefined
|
|
67
|
+
};
|
|
68
|
+
} catch (ex) {
|
|
69
|
+
return this.handleError(ex);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
getClient() {
|
|
73
|
+
return getOrCreateWebClient({
|
|
74
|
+
tenantID: this.tenantID,
|
|
75
|
+
baseURL: this.baseURL,
|
|
76
|
+
enableLogging: this.enableLogging
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
handleError(ex) {
|
|
80
|
+
if (this.enableLogging) {
|
|
81
|
+
console.log(ex);
|
|
82
|
+
}
|
|
83
|
+
return handleErrorCodes(ex);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=sms.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getOrCreateWebClient","handleErrorCodes","AuthsignalSms","constructor","tenantID","baseURL","enableLogging","enroll","phoneNumber","client","getClient","result","sms","errorCode","error","errorDescription","ex","handleError","challenge","verify","code","data","isVerified","token","failureReason","undefined","console","log"],"sourceRoot":"../../src","sources":["sms.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { getOrCreateWebClient } from './web-client';
|
|
2
|
+
import { handleErrorCodes } from './error';
|
|
3
|
+
export class AuthsignalTotp {
|
|
4
|
+
constructor({
|
|
5
|
+
tenantID,
|
|
6
|
+
baseURL,
|
|
7
|
+
enableLogging
|
|
8
|
+
}) {
|
|
9
|
+
this.tenantID = tenantID;
|
|
10
|
+
this.baseURL = baseURL;
|
|
11
|
+
this.enableLogging = enableLogging;
|
|
12
|
+
}
|
|
13
|
+
async enroll() {
|
|
14
|
+
try {
|
|
15
|
+
const client = this.getClient();
|
|
16
|
+
const result = await client.totp.enroll();
|
|
17
|
+
if (result.errorCode) {
|
|
18
|
+
return {
|
|
19
|
+
error: result.errorDescription ?? result.error,
|
|
20
|
+
errorCode: result.errorCode
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
data: result.data ? {
|
|
25
|
+
uri: result.data.uri,
|
|
26
|
+
secret: result.data.secret
|
|
27
|
+
} : undefined
|
|
28
|
+
};
|
|
29
|
+
} catch (ex) {
|
|
30
|
+
return this.handleError(ex);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async verify({
|
|
34
|
+
code
|
|
35
|
+
}) {
|
|
36
|
+
try {
|
|
37
|
+
const client = this.getClient();
|
|
38
|
+
const result = await client.totp.verify({
|
|
39
|
+
code
|
|
40
|
+
});
|
|
41
|
+
if (result.errorCode) {
|
|
42
|
+
return {
|
|
43
|
+
error: result.errorDescription ?? result.error,
|
|
44
|
+
errorCode: result.errorCode
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
data: result.data ? {
|
|
49
|
+
isVerified: result.data.isVerified,
|
|
50
|
+
token: result.data.token,
|
|
51
|
+
failureReason: result.data.failureReason
|
|
52
|
+
} : undefined
|
|
53
|
+
};
|
|
54
|
+
} catch (ex) {
|
|
55
|
+
return this.handleError(ex);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
getClient() {
|
|
59
|
+
return getOrCreateWebClient({
|
|
60
|
+
tenantID: this.tenantID,
|
|
61
|
+
baseURL: this.baseURL,
|
|
62
|
+
enableLogging: this.enableLogging
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
handleError(ex) {
|
|
66
|
+
if (this.enableLogging) {
|
|
67
|
+
console.log(ex);
|
|
68
|
+
}
|
|
69
|
+
return handleErrorCodes(ex);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=totp.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getOrCreateWebClient","handleErrorCodes","AuthsignalTotp","constructor","tenantID","baseURL","enableLogging","enroll","client","getClient","result","totp","errorCode","error","errorDescription","data","uri","secret","undefined","ex","handleError","verify","code","isVerified","token","failureReason","console","log"],"sourceRoot":"../../src","sources":["totp.web.ts"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,SAASC,gBAAgB,QAAQ,SAAS;AAc1C,OAAO,MAAMC,cAAc,CAAC;EAK1BC,WAAWA,CAAC;IAAEC,QAAQ;IAAEC,OAAO;IAAEC;EAA+B,CAAC,EAAE;IACjE,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,MAAMA,CAAA,EAAoD;IAC9D,IAAI;MACF,MAAMC,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;MAC/B,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACG,IAAI,CAACJ,MAAM,CAAC,CAAC;MAEzC,IAAIG,MAAM,CAACE,SAAS,EAAE;QACpB,OAAO;UACLC,KAAK,EAAEH,MAAM,CAACI,gBAAgB,IAAIJ,MAAM,CAACG,KAAK;UAC9CD,SAAS,EAAEF,MAAM,CAACE;QACpB,CAAC;MACH;MAEA,OAAO;QACLG,IAAI,EAAEL,MAAM,CAACK,IAAI,GACb;UACEC,GAAG,EAAEN,MAAM,CAACK,IAAI,CAACC,GAAG;UACpBC,MAAM,EAAEP,MAAM,CAACK,IAAI,CAACE;QACtB,CAAC,GACDC;MACN,CAAC;IACH,CAAC,CAAC,OAAOC,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAME,MAAMA,CAAC;IACXC;EACW,CAAC,EAA+C;IAC3D,IAAI;MACF,MAAMd,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;MAC/B,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACG,IAAI,CAACU,MAAM,CAAC;QAAEC;MAAK,CAAC,CAAC;MAEjD,IAAIZ,MAAM,CAACE,SAAS,EAAE;QACpB,OAAO;UACLC,KAAK,EAAEH,MAAM,CAACI,gBAAgB,IAAIJ,MAAM,CAACG,KAAK;UAC9CD,SAAS,EAAEF,MAAM,CAACE;QACpB,CAAC;MACH;MAEA,OAAO;QACLG,IAAI,EAAEL,MAAM,CAACK,IAAI,GACb;UACEQ,UAAU,EAAEb,MAAM,CAACK,IAAI,CAACQ,UAAU;UAClCC,KAAK,EAAEd,MAAM,CAACK,IAAI,CAACS,KAAK;UACxBC,aAAa,EAAEf,MAAM,CAACK,IAAI,CAACU;QAC7B,CAAC,GACDP;MACN,CAAC;IACH,CAAC,CAAC,OAAOC,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEQV,SAASA,CAAA,EAAG;IAClB,OAAOT,oBAAoB,CAAC;MAC1BI,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBC,aAAa,EAAE,IAAI,CAACA;IACtB,CAAC,CAAC;EACJ;EAEQc,WAAWA,CAACD,EAAW,EAAE;IAC/B,IAAI,IAAI,CAACb,aAAa,EAAE;MACtBoB,OAAO,CAACC,GAAG,CAACR,EAAE,CAAC;IACjB;IAEA,OAAOlB,gBAAgB,CAACkB,EAAE,CAAC;EAC7B;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Authsignal as AuthsignalBrowser } from '@authsignal/browser';
|
|
2
|
+
let client = null;
|
|
3
|
+
let currentTenantID = null;
|
|
4
|
+
let currentBaseURL = null;
|
|
5
|
+
export function getOrCreateWebClient({
|
|
6
|
+
tenantID,
|
|
7
|
+
baseURL,
|
|
8
|
+
enableLogging = false
|
|
9
|
+
}) {
|
|
10
|
+
if (!client || tenantID !== currentTenantID || baseURL !== currentBaseURL) {
|
|
11
|
+
client = new AuthsignalBrowser({
|
|
12
|
+
tenantId: tenantID,
|
|
13
|
+
baseUrl: baseURL,
|
|
14
|
+
enableLogging
|
|
15
|
+
});
|
|
16
|
+
currentTenantID = tenantID;
|
|
17
|
+
currentBaseURL = baseURL;
|
|
18
|
+
}
|
|
19
|
+
return client;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=web-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Authsignal","AuthsignalBrowser","client","currentTenantID","currentBaseURL","getOrCreateWebClient","tenantID","baseURL","enableLogging","tenantId","baseUrl"],"sourceRoot":"../../src","sources":["web-client.ts"],"mappings":"AAAA,SAASA,UAAU,IAAIC,iBAAiB,QAAQ,qBAAqB;AAErE,IAAIC,MAAgC,GAAG,IAAI;AAC3C,IAAIC,eAA8B,GAAG,IAAI;AACzC,IAAIC,cAA6B,GAAG,IAAI;AAQxC,OAAO,SAASC,oBAAoBA,CAAC;EACnCC,QAAQ;EACRC,OAAO;EACPC,aAAa,GAAG;AACD,CAAC,EAAqB;EACrC,IAAI,CAACN,MAAM,IAAII,QAAQ,KAAKH,eAAe,IAAII,OAAO,KAAKH,cAAc,EAAE;IACzEF,MAAM,GAAG,IAAID,iBAAiB,CAAC;MAC7BQ,QAAQ,EAAEH,QAAQ;MAClBI,OAAO,EAAEH,OAAO;MAChBC;IACF,CAAC,CAAC;IACFL,eAAe,GAAGG,QAAQ;IAC1BF,cAAc,GAAGG,OAAO;EAC1B;EAEA,OAAOL,MAAM;AACf","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { getOrCreateWebClient } from './web-client';
|
|
2
|
+
import { handleErrorCodes } from './error';
|
|
3
|
+
export class AuthsignalWhatsapp {
|
|
4
|
+
constructor({
|
|
5
|
+
tenantID,
|
|
6
|
+
baseURL,
|
|
7
|
+
enableLogging
|
|
8
|
+
}) {
|
|
9
|
+
this.tenantID = tenantID;
|
|
10
|
+
this.baseURL = baseURL;
|
|
11
|
+
this.enableLogging = enableLogging;
|
|
12
|
+
}
|
|
13
|
+
async challenge() {
|
|
14
|
+
try {
|
|
15
|
+
const client = this.getClient();
|
|
16
|
+
const result = await client.whatsapp.challenge();
|
|
17
|
+
if (result.errorCode) {
|
|
18
|
+
return {
|
|
19
|
+
error: result.errorDescription ?? result.error,
|
|
20
|
+
errorCode: result.errorCode
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return {};
|
|
24
|
+
} catch (ex) {
|
|
25
|
+
return this.handleError(ex);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async verify({
|
|
29
|
+
code
|
|
30
|
+
}) {
|
|
31
|
+
try {
|
|
32
|
+
const client = this.getClient();
|
|
33
|
+
const result = await client.whatsapp.verify({
|
|
34
|
+
code
|
|
35
|
+
});
|
|
36
|
+
if (result.errorCode) {
|
|
37
|
+
return {
|
|
38
|
+
error: result.errorDescription ?? result.error,
|
|
39
|
+
errorCode: result.errorCode
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
data: result.data ? {
|
|
44
|
+
isVerified: result.data.isVerified,
|
|
45
|
+
token: result.data.token,
|
|
46
|
+
failureReason: result.data.failureReason
|
|
47
|
+
} : undefined
|
|
48
|
+
};
|
|
49
|
+
} catch (ex) {
|
|
50
|
+
return this.handleError(ex);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
getClient() {
|
|
54
|
+
return getOrCreateWebClient({
|
|
55
|
+
tenantID: this.tenantID,
|
|
56
|
+
baseURL: this.baseURL,
|
|
57
|
+
enableLogging: this.enableLogging
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
handleError(ex) {
|
|
61
|
+
if (this.enableLogging) {
|
|
62
|
+
console.log(ex);
|
|
63
|
+
}
|
|
64
|
+
return handleErrorCodes(ex);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=whatsapp.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getOrCreateWebClient","handleErrorCodes","AuthsignalWhatsapp","constructor","tenantID","baseURL","enableLogging","challenge","client","getClient","result","whatsapp","errorCode","error","errorDescription","ex","handleError","verify","code","data","isVerified","token","failureReason","undefined","console","log"],"sourceRoot":"../../src","sources":["whatsapp.web.ts"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,SAASC,gBAAgB,QAAQ,SAAS;AAS1C,OAAO,MAAMC,kBAAkB,CAAC;EAK9BC,WAAWA,CAAC;IAAEC,QAAQ;IAAEC,OAAO;IAAEC;EAA+B,CAAC,EAAE;IACjE,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,SAASA,CAAA,EAAsC;IACnD,IAAI;MACF,MAAMC,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;MAC/B,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACG,QAAQ,CAACJ,SAAS,CAAC,CAAC;MAEhD,IAAIG,MAAM,CAACE,SAAS,EAAE;QACpB,OAAO;UACLC,KAAK,EAAEH,MAAM,CAACI,gBAAgB,IAAIJ,MAAM,CAACG,KAAK;UAC9CD,SAAS,EAAEF,MAAM,CAACE;QACpB,CAAC;MACH;MAEA,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,OAAOG,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAME,MAAMA,CAAC;IACXC;EACW,CAAC,EAA+C;IAC3D,IAAI;MACF,MAAMV,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;MAC/B,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACG,QAAQ,CAACM,MAAM,CAAC;QAAEC;MAAK,CAAC,CAAC;MAErD,IAAIR,MAAM,CAACE,SAAS,EAAE;QACpB,OAAO;UACLC,KAAK,EAAEH,MAAM,CAACI,gBAAgB,IAAIJ,MAAM,CAACG,KAAK;UAC9CD,SAAS,EAAEF,MAAM,CAACE;QACpB,CAAC;MACH;MAEA,OAAO;QACLO,IAAI,EAAET,MAAM,CAACS,IAAI,GACb;UACEC,UAAU,EAAEV,MAAM,CAACS,IAAI,CAACC,UAAU;UAClCC,KAAK,EAAEX,MAAM,CAACS,IAAI,CAACE,KAAK;UACxBC,aAAa,EAAEZ,MAAM,CAACS,IAAI,CAACG;QAC7B,CAAC,GACDC;MACN,CAAC;IACH,CAAC,CAAC,OAAOR,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEQN,SAASA,CAAA,EAAG;IAClB,OAAOT,oBAAoB,CAAC;MAC1BI,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBC,aAAa,EAAE,IAAI,CAACA;IACtB,CAAC,CAAC;EACJ;EAEQU,WAAWA,CAACD,EAAW,EAAE;IAC/B,IAAI,IAAI,CAACT,aAAa,EAAE;MACtBkB,OAAO,CAACC,GAAG,CAACV,EAAE,CAAC;IACjB;IAEA,OAAOd,gBAAgB,CAACc,EAAE,CAAC;EAC7B;AACF","ignoreList":[]}
|
|
@@ -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 getClient;
|
|
19
|
+
private handleError;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=email.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.web.d.ts","sourceRoot":"","sources":["../../src/email.web.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;IAkBtE,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAkB9C,MAAM,CAAC,EACX,IAAI,GACL,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IA0B5D,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare enum ErrorCode {
|
|
2
|
+
token_not_set = "token_not_set",
|
|
3
|
+
token_required = "token_required",
|
|
4
|
+
token_invalid = "token_invalid"
|
|
5
|
+
}
|
|
6
|
+
export declare function handleErrorCodes(ex: any): ErrorResponse;
|
|
7
|
+
interface ErrorResponse {
|
|
8
|
+
error: string;
|
|
9
|
+
errorCode: string;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=error.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.web.d.ts","sourceRoot":"","sources":["../../src/error.web.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,GAAG,iBASvC;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AuthsignalEmail } from './email';
|
|
2
|
+
import { AuthsignalPasskey } from './passkey';
|
|
3
|
+
import { AuthsignalSms } from './sms';
|
|
4
|
+
import { AuthsignalTotp } from './totp';
|
|
5
|
+
import { AuthsignalWhatsapp } from './whatsapp';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export { ErrorCode } from './error';
|
|
8
|
+
interface ConstructorArgs {
|
|
9
|
+
tenantID: string;
|
|
10
|
+
baseURL?: string;
|
|
11
|
+
deviceID?: string;
|
|
12
|
+
enableLogging?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class Authsignal {
|
|
15
|
+
tenantID: string;
|
|
16
|
+
baseURL: string;
|
|
17
|
+
enableLogging: boolean;
|
|
18
|
+
email: AuthsignalEmail;
|
|
19
|
+
passkey: AuthsignalPasskey;
|
|
20
|
+
sms: AuthsignalSms;
|
|
21
|
+
totp: AuthsignalTotp;
|
|
22
|
+
whatsapp: AuthsignalWhatsapp;
|
|
23
|
+
constructor({ tenantID, baseURL, deviceID, enableLogging, }: ConstructorArgs);
|
|
24
|
+
setToken(token: string): Promise<void>;
|
|
25
|
+
launch(url: string): Promise<string | null>;
|
|
26
|
+
}
|
|
27
|
+
export declare function launch(url: string): Promise<string | null>;
|
|
28
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAQD,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,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;gBAEjB,EACV,QAAQ,EACR,OAAyC,EACzC,QAAQ,EACR,aAAqB,GACtB,EAAE,eAAe;IAgBZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,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,CAmB1D"}
|