@maxzima/wa-communicator 1.0.25 → 1.0.27
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/dist/engine/AccountTracker/Enums/AccountTrackerEnum.d.ts +2 -2
- package/dist/engine/AccountTracker/Public/AccountTracker.js +0 -1
- package/dist/engine/Communicator/Enums/CommunicatorEnum.d.ts +1 -0
- package/dist/engine/Communicator/Public/Communicator.d.ts +5 -1
- package/dist/engine/Communicator/Public/Communicator.js +65 -0
- package/dist/engine/Communicator/Types/TCommunicator.d.ts +2 -0
- package/dist/engine/Communicator/Utils/jsonParseSafe.d.ts +1 -0
- package/dist/engine/Communicator/Utils/jsonParseSafe.js +10 -0
- package/dist/types/TCommunicator.d.ts +28 -2
- package/package.json +1 -1
- package/src/engine/AccountTracker/Enums/AccountTrackerEnum.ts +1 -1
- package/src/engine/AccountTracker/Public/AccountTracker.ts +0 -3
- package/src/engine/Communicator/Enums/CommunicatorEnum.ts +1 -0
- package/src/engine/Communicator/Public/Communicator.ts +79 -2
- package/src/engine/Communicator/Types/TCommunicator.ts +2 -0
- package/src/engine/Communicator/Utils/jsonParseSafe.ts +14 -0
- package/src/types/TCommunicator.ts +37 -1
- package/test/__snapshots__/communicator.spec.ts.snap +13 -0
- package/test/communicator.spec.ts +6 -0
- package/test/testunits/communicator/general.ts +2 -0
- package/test/testunits/communicator/requests.ts +9 -0
|
@@ -2,9 +2,9 @@ declare const enum GTMEventEnum {
|
|
|
2
2
|
SIGN_UP = "sign_up"
|
|
3
3
|
}
|
|
4
4
|
declare const enum GTMEventParamsEnum {
|
|
5
|
+
GCLID = "gclid",
|
|
5
6
|
PHONE = "phone",
|
|
6
|
-
EMAIL = "email"
|
|
7
|
-
GCLID = "gclid"
|
|
7
|
+
EMAIL = "email"
|
|
8
8
|
}
|
|
9
9
|
declare const enum LintrkActionTypeEnum {
|
|
10
10
|
TRACK = "track"
|
|
@@ -9,7 +9,6 @@ export class AccountTracker {
|
|
|
9
9
|
for (const paramName in paramsForCurrentEvent) {
|
|
10
10
|
dataForLayer[paramName] = paramsForCurrentEvent[paramName];
|
|
11
11
|
}
|
|
12
|
-
console.log('sendGtmEvent:', event, dataForLayer);
|
|
13
12
|
this.props.gtmDataLayer.push(Object.assign({ event }, dataForLayer));
|
|
14
13
|
};
|
|
15
14
|
this.sendLinkedInEvent = (id) => {
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TCreateSessionRequestData, TEmailUpdateRequestData, TGetCurrentUserProfileRequestData, TRegistrationRequestData, TResponse, TSetupChallengeRequestData, TSignInByMobileRequestData, TSignUpByMobileRequestData, TVerifyChallengeRequestData, TStorageRequestData, TGetRestrictedCountriesData, TSetupSSERequestData, TSignInByAppRequestData } from "@root/types";
|
|
2
2
|
export declare class Communicator {
|
|
3
3
|
private props;
|
|
4
|
+
private sseAuth;
|
|
4
5
|
constructor(props: TCommunicatorProps);
|
|
5
6
|
signIn(data: TSignInByMobileRequestData): Promise<TResponse>;
|
|
7
|
+
signInByApp(data: TSignInByAppRequestData): Promise<TResponse>;
|
|
6
8
|
signUp(data: TSignUpByMobileRequestData): Promise<TResponse>;
|
|
7
9
|
setupChallenge(data: TSetupChallengeRequestData): Promise<TResponse>;
|
|
10
|
+
listenSSEAuth(data: TSetupSSERequestData): void;
|
|
11
|
+
closeSSEAuth(): void;
|
|
8
12
|
verifyChallenge(data: TVerifyChallengeRequestData): Promise<TResponse>;
|
|
9
13
|
emailUpdate(data: TEmailUpdateRequestData): Promise<TResponse>;
|
|
10
14
|
createSession(data: TCreateSessionRequestData): Promise<TResponse>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { CommunicatorDefaultRequestData } from "./../Constants/Communicator";
|
|
3
|
+
import { jsonParse } from "./../Utils/jsonParseSafe";
|
|
3
4
|
export class Communicator {
|
|
4
5
|
constructor(props) {
|
|
5
6
|
this.getHeaders = (token) => {
|
|
@@ -54,6 +55,22 @@ export class Communicator {
|
|
|
54
55
|
});
|
|
55
56
|
});
|
|
56
57
|
}
|
|
58
|
+
signInByApp(data) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const headers = this.getHeaders(data.authToken);
|
|
61
|
+
const body = JSON.stringify({
|
|
62
|
+
type: data.type,
|
|
63
|
+
value: data.value,
|
|
64
|
+
request_id: data.requestId,
|
|
65
|
+
});
|
|
66
|
+
return yield this.send({
|
|
67
|
+
method: 'POST',
|
|
68
|
+
url: `${this.props.clientAuthApiBaseUrl}${"sign-in/challenge"}`,
|
|
69
|
+
headers,
|
|
70
|
+
body,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
57
74
|
signUp(data) {
|
|
58
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
76
|
const headers = this.getHeaders();
|
|
@@ -83,6 +100,54 @@ export class Communicator {
|
|
|
83
100
|
});
|
|
84
101
|
});
|
|
85
102
|
}
|
|
103
|
+
listenSSEAuth(data) {
|
|
104
|
+
if (this.sseAuth) {
|
|
105
|
+
this.closeSSEAuth();
|
|
106
|
+
}
|
|
107
|
+
const params = {
|
|
108
|
+
request_id: data.requestId,
|
|
109
|
+
mobile: data.phoneNumber,
|
|
110
|
+
};
|
|
111
|
+
const url = `${this.props.clientAuthSSEBaseUrl}${"sse/app-auth"}`;
|
|
112
|
+
this.sseAuth = new EventSource(`${url}?${this.processingQueryParams(params)}`, {
|
|
113
|
+
withCredentials: true,
|
|
114
|
+
});
|
|
115
|
+
if (this.sseAuth) {
|
|
116
|
+
this.sseAuth.addEventListener('open', (event) => {
|
|
117
|
+
if (this.props.env !== 'prod') {
|
|
118
|
+
console.log('sse open', event);
|
|
119
|
+
}
|
|
120
|
+
if (typeof data.onOpen === "function") {
|
|
121
|
+
data.onOpen();
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
this.sseAuth.addEventListener('message', (event) => {
|
|
125
|
+
const responseData = jsonParse(event.data || '');
|
|
126
|
+
if (this.props.env !== 'prod') {
|
|
127
|
+
console.log('sse message', event, responseData);
|
|
128
|
+
}
|
|
129
|
+
if (typeof data.onMessage === "function") {
|
|
130
|
+
data.onMessage(responseData);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
this.sseAuth.addEventListener('error', (event) => {
|
|
134
|
+
const responseData = jsonParse(event.data || '');
|
|
135
|
+
if (this.props.env !== 'prod') {
|
|
136
|
+
console.log('sse error', event, responseData);
|
|
137
|
+
}
|
|
138
|
+
if (typeof data.onError === "function") {
|
|
139
|
+
data.onError();
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
closeSSEAuth() {
|
|
145
|
+
if (this.sseAuth) {
|
|
146
|
+
console.log(this.sseAuth.readyState);
|
|
147
|
+
this.sseAuth.close();
|
|
148
|
+
this.sseAuth = null;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
86
151
|
verifyChallenge(data) {
|
|
87
152
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
153
|
const headers = this.getHeaders(data.authToken);
|
|
@@ -5,6 +5,8 @@ declare type TDefaultRequestData = {
|
|
|
5
5
|
AUDIT_SOURCE_TYPE: import('@root/types').TAuditSource;
|
|
6
6
|
};
|
|
7
7
|
declare type TCommunicatorProps = {
|
|
8
|
+
env?: 'local' | 'dev' | 'prod';
|
|
8
9
|
clientAuthApiBaseUrl: string;
|
|
10
|
+
clientAuthSSEBaseUrl: string;
|
|
9
11
|
clientFAPIBaseUrl: string;
|
|
10
12
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function jsonParse<ResultType = unknown>(data: string): ResultType;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare type TChallenge = 'email_otp' | 'mobile_otp' | 'pin';
|
|
1
|
+
declare type TChallenge = 'email_otp' | 'mobile_otp' | 'pin' | 'out_of_band';
|
|
2
2
|
declare type TAuditSource = 'Backend' | 'SelfService';
|
|
3
3
|
declare type TRegistrationRequestBodySourceDeviceType = 'mobile' | 'regular';
|
|
4
4
|
declare type TRequestProps = {
|
|
@@ -22,6 +22,11 @@ declare type TSignInStartRequestBody = {
|
|
|
22
22
|
meta: TAccountMeta;
|
|
23
23
|
mobile?: string;
|
|
24
24
|
};
|
|
25
|
+
declare type TSignInAppRequestBody = {
|
|
26
|
+
type: 'out_of_band';
|
|
27
|
+
value: string;
|
|
28
|
+
request_id: string;
|
|
29
|
+
};
|
|
25
30
|
declare type TAccountMeta = {
|
|
26
31
|
audit_source_type: TAuditSource;
|
|
27
32
|
browser_page_resolution: string;
|
|
@@ -42,10 +47,20 @@ declare type TSignInByMobileRequestData = {
|
|
|
42
47
|
deviceId: string;
|
|
43
48
|
browserData: TAccountBrowserData;
|
|
44
49
|
};
|
|
50
|
+
declare type TSignInByAppRequestData = {
|
|
51
|
+
authToken: string;
|
|
52
|
+
type: 'out_of_band';
|
|
53
|
+
value: string;
|
|
54
|
+
requestId: string;
|
|
55
|
+
};
|
|
45
56
|
declare type TSignInByMobileResponse = {
|
|
46
57
|
auth_token: string;
|
|
47
58
|
challenges: TChallenge[];
|
|
48
59
|
};
|
|
60
|
+
declare type TSignInBySSEResponse = {
|
|
61
|
+
request_id: string;
|
|
62
|
+
mobile: string;
|
|
63
|
+
};
|
|
49
64
|
declare type TSignUpStartRequestBody = {
|
|
50
65
|
locale: string;
|
|
51
66
|
mobile: string;
|
|
@@ -60,6 +75,17 @@ declare type TSetupChallengeRequestData = {
|
|
|
60
75
|
type: TChallenge;
|
|
61
76
|
authToken: string;
|
|
62
77
|
};
|
|
78
|
+
declare type TSetupSSERequestData = {
|
|
79
|
+
requestId: string;
|
|
80
|
+
phoneNumber: string;
|
|
81
|
+
onOpen: () => void;
|
|
82
|
+
onError: () => void;
|
|
83
|
+
onMessage: (responseData: TSSEResponseData) => void;
|
|
84
|
+
};
|
|
85
|
+
declare type TSSEResponseData = {
|
|
86
|
+
otp: string;
|
|
87
|
+
decline_reason?: string;
|
|
88
|
+
};
|
|
63
89
|
declare type TSetupChallengeResponse = {
|
|
64
90
|
attempts_left: number;
|
|
65
91
|
masked_email: string;
|
|
@@ -137,4 +163,4 @@ declare type TStorageRequestData = {
|
|
|
137
163
|
declare type TGetRestrictedCountriesData = {
|
|
138
164
|
entityType?: import('@root/enums').CountryTypeEnum;
|
|
139
165
|
};
|
|
140
|
-
export { TRegistrationRequestBodySourceDeviceType, TChallenge, TAuditSource, TRequestProps, TRequestQueryParams, TResponse, TSignInStartRequestBody, TAccountMeta, TAccountBrowserData, TSignInByMobileRequestData, TSignInByMobileResponse, TSignUpStartRequestBody, TSignUpByMobileRequestData, TSetupChallengeRequestData, TSetupChallengeResponse, TVerifyChallengeRequestBody, TVerifyChallengeRequestData, TVerifyChallengeResponse, TEmailUpdateRequestData, TCreateSessionRequestData, TCreateSessionResponse, TGetCurrentUserProfileResponseUser, TGetCurrentUserProfileRequestData, TRegistrationRequestData, TStorageRequestData, TGetRestrictedCountriesData, };
|
|
166
|
+
export { TRegistrationRequestBodySourceDeviceType, TChallenge, TAuditSource, TRequestProps, TRequestQueryParams, TResponse, TSignInStartRequestBody, TSignInAppRequestBody, TAccountMeta, TAccountBrowserData, TSignInByMobileRequestData, TSignInByAppRequestData, TSignInByMobileResponse, TSignInBySSEResponse, TSignUpStartRequestBody, TSignUpByMobileRequestData, TSetupChallengeRequestData, TSetupSSERequestData, TSSEResponseData, TSetupChallengeResponse, TVerifyChallengeRequestBody, TVerifyChallengeRequestData, TVerifyChallengeResponse, TEmailUpdateRequestData, TCreateSessionRequestData, TCreateSessionResponse, TGetCurrentUserProfileResponseUser, TGetCurrentUserProfileRequestData, TRegistrationRequestData, TStorageRequestData, TGetRestrictedCountriesData, };
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {
|
|
2
2
|
TAccountBrowserData,
|
|
3
3
|
TAccountMeta,
|
|
4
4
|
TCreateSessionRequestData,
|
|
@@ -16,12 +16,19 @@ import type {
|
|
|
16
16
|
TVerifyChallengeRequestBody,
|
|
17
17
|
TVerifyChallengeRequestData,
|
|
18
18
|
TStorageRequestData,
|
|
19
|
-
TGetRestrictedCountriesData
|
|
19
|
+
TGetRestrictedCountriesData,
|
|
20
|
+
TSetupSSERequestData,
|
|
21
|
+
TSignInAppRequestBody,
|
|
22
|
+
TSignInByAppRequestData,
|
|
23
|
+
TSignInBySSEResponse,
|
|
24
|
+
TSSEResponseData,
|
|
20
25
|
} from "@root/types";
|
|
21
26
|
import {CommunicatorDefaultRequestData} from "./../Constants/Communicator";
|
|
27
|
+
import {jsonParse} from "./../Utils/jsonParseSafe";
|
|
22
28
|
|
|
23
29
|
export class Communicator {
|
|
24
30
|
private props: TCommunicatorProps;
|
|
31
|
+
private sseAuth: EventSource;
|
|
25
32
|
|
|
26
33
|
constructor(props: TCommunicatorProps) {
|
|
27
34
|
this.props = props;
|
|
@@ -48,6 +55,22 @@ export class Communicator {
|
|
|
48
55
|
});
|
|
49
56
|
}
|
|
50
57
|
|
|
58
|
+
public async signInByApp(data: TSignInByAppRequestData) {
|
|
59
|
+
const headers = this.getHeaders(data.authToken);
|
|
60
|
+
const body = JSON.stringify({
|
|
61
|
+
type: data.type,
|
|
62
|
+
value: data.value,
|
|
63
|
+
request_id: data.requestId,
|
|
64
|
+
} as TSignInAppRequestBody);
|
|
65
|
+
|
|
66
|
+
return await this.send({
|
|
67
|
+
method: 'POST',
|
|
68
|
+
url: `${this.props.clientAuthApiBaseUrl}${CommunicatorAuthAPIEndpointEnum.CHALLENGE}`,
|
|
69
|
+
headers,
|
|
70
|
+
body,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
51
74
|
public async signUp(data: TSignUpByMobileRequestData) {
|
|
52
75
|
const headers = this.getHeaders();
|
|
53
76
|
const body = JSON.stringify({
|
|
@@ -77,6 +100,60 @@ export class Communicator {
|
|
|
77
100
|
});
|
|
78
101
|
}
|
|
79
102
|
|
|
103
|
+
public listenSSEAuth(data: TSetupSSERequestData) {
|
|
104
|
+
if (this.sseAuth) {
|
|
105
|
+
this.closeSSEAuth();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const params: TSignInBySSEResponse = {
|
|
109
|
+
request_id: data.requestId,
|
|
110
|
+
mobile: data.phoneNumber,
|
|
111
|
+
}
|
|
112
|
+
const url = `${this.props.clientAuthSSEBaseUrl}${CommunicatorAuthAPIEndpointEnum.SSE_AUTH}`;
|
|
113
|
+
this.sseAuth = new EventSource(`${url}?${this.processingQueryParams(params)}`, {
|
|
114
|
+
withCredentials: true,
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
if (this.sseAuth) {
|
|
118
|
+
this.sseAuth.addEventListener('open', (event: MessageEvent) => {
|
|
119
|
+
if (this.props.env !== 'prod') {
|
|
120
|
+
console.log('sse open', event);
|
|
121
|
+
}
|
|
122
|
+
if (typeof data.onOpen === "function") {
|
|
123
|
+
data.onOpen();
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
this.sseAuth.addEventListener('message', (event: MessageEvent) => {
|
|
128
|
+
const responseData: TSSEResponseData = jsonParse(event.data || '');
|
|
129
|
+
if (this.props.env !== 'prod') {
|
|
130
|
+
console.log('sse message', event, responseData);
|
|
131
|
+
}
|
|
132
|
+
if (typeof data.onMessage === "function") {
|
|
133
|
+
data.onMessage(responseData);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
this.sseAuth.addEventListener('error', (event: MessageEvent) => {
|
|
138
|
+
const responseData: TSSEResponseData = jsonParse(event.data || '');
|
|
139
|
+
if (this.props.env !== 'prod') {
|
|
140
|
+
console.log('sse error', event, responseData);
|
|
141
|
+
}
|
|
142
|
+
if (typeof data.onError === "function") {
|
|
143
|
+
data.onError();
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
public closeSSEAuth() {
|
|
150
|
+
if (this.sseAuth) {
|
|
151
|
+
console.log(this.sseAuth.readyState);
|
|
152
|
+
this.sseAuth.close();
|
|
153
|
+
this.sseAuth = null;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
80
157
|
public async verifyChallenge(data: TVerifyChallengeRequestData) {
|
|
81
158
|
const headers = this.getHeaders(data.authToken);
|
|
82
159
|
const body = JSON.stringify({
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Parse
|
|
3
|
+
* @param {string} data
|
|
4
|
+
* @returns {Object}
|
|
5
|
+
*/
|
|
6
|
+
export function jsonParse<ResultType = unknown>(data: string): ResultType {
|
|
7
|
+
let ret = null;
|
|
8
|
+
try {
|
|
9
|
+
ret = JSON.parse(data);
|
|
10
|
+
} catch (e) {
|
|
11
|
+
ret = null;
|
|
12
|
+
}
|
|
13
|
+
return ret;
|
|
14
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type TChallenge = 'email_otp' | 'mobile_otp' | 'pin';
|
|
1
|
+
type TChallenge = 'email_otp' | 'mobile_otp' | 'pin' | 'out_of_band';
|
|
2
2
|
type TAuditSource = 'Backend' | 'SelfService';
|
|
3
3
|
type TRegistrationRequestBodySourceDeviceType = 'mobile' | 'regular';
|
|
4
4
|
|
|
@@ -28,6 +28,12 @@ type TSignInStartRequestBody = {
|
|
|
28
28
|
mobile?: string,
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
type TSignInAppRequestBody = {
|
|
32
|
+
type: 'out_of_band',
|
|
33
|
+
value: string,
|
|
34
|
+
request_id: string,
|
|
35
|
+
}
|
|
36
|
+
|
|
31
37
|
type TAccountMeta = {
|
|
32
38
|
audit_source_type: TAuditSource,
|
|
33
39
|
browser_page_resolution: string,
|
|
@@ -51,10 +57,22 @@ type TSignInByMobileRequestData = {
|
|
|
51
57
|
browserData: TAccountBrowserData,
|
|
52
58
|
}
|
|
53
59
|
|
|
60
|
+
type TSignInByAppRequestData = {
|
|
61
|
+
authToken: string,
|
|
62
|
+
type: 'out_of_band',
|
|
63
|
+
value: string,
|
|
64
|
+
requestId: string,
|
|
65
|
+
}
|
|
66
|
+
|
|
54
67
|
type TSignInByMobileResponse = {
|
|
55
68
|
auth_token: string,
|
|
56
69
|
challenges: TChallenge[],
|
|
57
70
|
}
|
|
71
|
+
|
|
72
|
+
type TSignInBySSEResponse = {
|
|
73
|
+
request_id: string,
|
|
74
|
+
mobile: string,
|
|
75
|
+
}
|
|
58
76
|
/* endregion signIn */
|
|
59
77
|
|
|
60
78
|
/* region signUp */
|
|
@@ -77,6 +95,19 @@ type TSetupChallengeRequestData = {
|
|
|
77
95
|
authToken: string,
|
|
78
96
|
}
|
|
79
97
|
|
|
98
|
+
type TSetupSSERequestData = {
|
|
99
|
+
requestId: string,
|
|
100
|
+
phoneNumber: string,
|
|
101
|
+
onOpen: () => void,
|
|
102
|
+
onError: () => void,
|
|
103
|
+
onMessage: (responseData: TSSEResponseData) => void,
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
type TSSEResponseData = {
|
|
107
|
+
otp: string,
|
|
108
|
+
decline_reason?: string,
|
|
109
|
+
}
|
|
110
|
+
|
|
80
111
|
type TSetupChallengeResponse = {
|
|
81
112
|
attempts_left: number,
|
|
82
113
|
masked_email: string,
|
|
@@ -200,13 +231,18 @@ export {
|
|
|
200
231
|
TRequestQueryParams,
|
|
201
232
|
TResponse,
|
|
202
233
|
TSignInStartRequestBody,
|
|
234
|
+
TSignInAppRequestBody,
|
|
203
235
|
TAccountMeta,
|
|
204
236
|
TAccountBrowserData,
|
|
205
237
|
TSignInByMobileRequestData,
|
|
238
|
+
TSignInByAppRequestData,
|
|
206
239
|
TSignInByMobileResponse,
|
|
240
|
+
TSignInBySSEResponse,
|
|
207
241
|
TSignUpStartRequestBody,
|
|
208
242
|
TSignUpByMobileRequestData,
|
|
209
243
|
TSetupChallengeRequestData,
|
|
244
|
+
TSetupSSERequestData,
|
|
245
|
+
TSSEResponseData,
|
|
210
246
|
TSetupChallengeResponse,
|
|
211
247
|
TVerifyChallengeRequestBody,
|
|
212
248
|
TVerifyChallengeRequestData,
|
|
@@ -135,6 +135,19 @@ Object {
|
|
|
135
135
|
}
|
|
136
136
|
`;
|
|
137
137
|
|
|
138
|
+
exports[`Communicator requests signInByApp 1`] = `
|
|
139
|
+
Object {
|
|
140
|
+
"body": "{\\"type\\":\\"out_of_band\\",\\"value\\":\\"123456\\",\\"request_id\\":\\"7ae2cefb-2f3b-4ecf-b478-67486aca2eaf\\"}",
|
|
141
|
+
"headers": Object {
|
|
142
|
+
"Accept": "application/json, text/plain, */*",
|
|
143
|
+
"Authorization": "Bearer _authToken_",
|
|
144
|
+
"Content-Type": "application/json",
|
|
145
|
+
},
|
|
146
|
+
"method": "POST",
|
|
147
|
+
"url": "https://google.com/sign-in/challenge",
|
|
148
|
+
}
|
|
149
|
+
`;
|
|
150
|
+
|
|
138
151
|
exports[`Communicator requests signUp 1`] = `
|
|
139
152
|
Object {
|
|
140
153
|
"body": "{\\"locale\\":\\"en\\",\\"mobile\\":\\"+16234401486\\",\\"timezone_name\\":\\"Europe/Tallin\\"}",
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
registrationData,
|
|
12
12
|
setupChallengeData,
|
|
13
13
|
signInData,
|
|
14
|
+
signInByAppData,
|
|
14
15
|
signUpData,
|
|
15
16
|
verifyChallengeData,
|
|
16
17
|
setStorageValuesData,
|
|
@@ -64,6 +65,11 @@ describe('Communicator requests', () => {
|
|
|
64
65
|
expect(signInRequestData).toMatchSnapshot();
|
|
65
66
|
});
|
|
66
67
|
|
|
68
|
+
test('signInByApp', async () => {
|
|
69
|
+
const signInRequestData = await communicator.signInByApp(signInByAppData);
|
|
70
|
+
expect(signInRequestData).toMatchSnapshot();
|
|
71
|
+
});
|
|
72
|
+
|
|
67
73
|
test('signUp', async () => {
|
|
68
74
|
const signUpRequestData = await communicator.signUp(signUpData);
|
|
69
75
|
expect(signUpRequestData).toMatchSnapshot();
|
|
@@ -3,6 +3,7 @@ import {TAccountBrowserData, TChallenge, TRegistrationRequestBodySourceDeviceTyp
|
|
|
3
3
|
const communicatorTestData = {
|
|
4
4
|
initProps: {
|
|
5
5
|
clientAuthApiBaseUrl: 'https://google.com/',
|
|
6
|
+
clientAuthSSEBaseUrl: 'https://google.com/',
|
|
6
7
|
clientFAPIBaseUrl: 'https://google.com/',
|
|
7
8
|
},
|
|
8
9
|
browserData: {
|
|
@@ -19,6 +20,7 @@ const communicatorTestData = {
|
|
|
19
20
|
companyName: '_companyName_',
|
|
20
21
|
deviceType: 'mobile' as TRegistrationRequestBodySourceDeviceType,
|
|
21
22
|
deviceId: 'ov4lNmyk7armoC5DMiOpL5hl846kVQgS',
|
|
23
|
+
requestId: '7ae2cefb-2f3b-4ecf-b478-67486aca2eaf',
|
|
22
24
|
otpCode: '123456',
|
|
23
25
|
countryCode: 'CAN',
|
|
24
26
|
authToken: '_authToken_',
|
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
TRegistrationRequestData,
|
|
7
7
|
TSetupChallengeRequestData,
|
|
8
8
|
TSignInByMobileRequestData,
|
|
9
|
+
TSignInByAppRequestData,
|
|
9
10
|
TSignUpByMobileRequestData,
|
|
10
11
|
TStorageRequestData,
|
|
11
12
|
TVerifyChallengeRequestData,
|
|
@@ -19,6 +20,13 @@ const signInData: TSignInByMobileRequestData = {
|
|
|
19
20
|
browserData: communicatorTestData.browserData,
|
|
20
21
|
};
|
|
21
22
|
|
|
23
|
+
const signInByAppData: TSignInByAppRequestData = {
|
|
24
|
+
authToken: communicatorTestData.authToken,
|
|
25
|
+
type: 'out_of_band',
|
|
26
|
+
value: communicatorTestData.otpCode,
|
|
27
|
+
requestId: communicatorTestData.requestId,
|
|
28
|
+
};
|
|
29
|
+
|
|
22
30
|
const signUpData: TSignUpByMobileRequestData = {
|
|
23
31
|
locale: communicatorTestData.locale,
|
|
24
32
|
phoneNumber: communicatorTestData.phoneNumber,
|
|
@@ -75,6 +83,7 @@ const getRestrictedCountriesData: TGetRestrictedCountriesData = {
|
|
|
75
83
|
|
|
76
84
|
export {
|
|
77
85
|
signInData,
|
|
86
|
+
signInByAppData,
|
|
78
87
|
signUpData,
|
|
79
88
|
setupChallengeData,
|
|
80
89
|
verifyChallengeData,
|