@maxzima/wa-communicator 1.0.51 → 1.0.52
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/Communicator/Constants/RegistrationMetadata.d.ts +1 -0
- package/dist/engine/Communicator/Constants/RegistrationMetadata.js +17 -0
- package/dist/engine/Communicator/Public/Communicator.js +3 -2
- package/dist/engine/Communicator/Utils/registrationMetaData.d.ts +2 -0
- package/dist/engine/Communicator/Utils/registrationMetaData.js +13 -0
- package/dist/types/TCommunicator.d.ts +7 -0
- package/dist/types/TRegistrationMetadata.d.ts +3 -0
- package/dist/types/TRegistrationMetadata.js +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -0
- package/package.json +1 -1
- package/src/engine/Communicator/Constants/RegistrationMetadata.ts +17 -0
- package/src/engine/Communicator/Public/Communicator.ts +3 -1
- package/src/engine/Communicator/Utils/registrationMetaData.ts +17 -0
- package/src/types/TCommunicator.ts +5 -0
- package/src/types/TRegistrationMetadata.ts +5 -0
- package/src/types/index.ts +1 -0
- package/test/__snapshots__/communicator.spec.ts.snap +1 -1
- package/test/testunits/communicator/general.ts +17 -0
- package/test/testunits/communicator/requests.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const registrationMetadataKeys: readonly ["wa.country_code", "wa.device_type", "wa.hash", "google._gcl_aw", "google._ga", "meta._fbc", "meta._fbp", "microsoft._uetmsclkid", "microsoft._uetvid", "linkedin.li_fat_id", "appsflyer.cuid", "utm.source", "utm.medium", "utm.campaign", "utm.term"];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const registrationMetadataKeys = [
|
|
2
|
+
'wa.country_code',
|
|
3
|
+
'wa.device_type',
|
|
4
|
+
'wa.hash',
|
|
5
|
+
'google._gcl_aw',
|
|
6
|
+
'google._ga',
|
|
7
|
+
'meta._fbc',
|
|
8
|
+
'meta._fbp',
|
|
9
|
+
'microsoft._uetmsclkid',
|
|
10
|
+
'microsoft._uetvid',
|
|
11
|
+
'linkedin.li_fat_id',
|
|
12
|
+
'appsflyer.cuid',
|
|
13
|
+
'utm.source',
|
|
14
|
+
'utm.medium',
|
|
15
|
+
'utm.campaign',
|
|
16
|
+
'utm.term',
|
|
17
|
+
];
|
|
@@ -2,6 +2,7 @@ import { __awaiter } from "tslib";
|
|
|
2
2
|
import { CommunicatorDefaultRequestData } from "./../Constants/Communicator";
|
|
3
3
|
import { jsonParse } from "./../Utils/jsonParseSafe";
|
|
4
4
|
import { CommunicatorAuthAPIEndpointEnum, CommunicatorFAPIEndpointEnum } from "./../Enums/CommunicatorEnum";
|
|
5
|
+
import { prepareMetadata } from "./../Utils/registrationMetaData";
|
|
5
6
|
export class Communicator {
|
|
6
7
|
constructor(props) {
|
|
7
8
|
this.getHeaders = (token) => {
|
|
@@ -204,7 +205,7 @@ export class Communicator {
|
|
|
204
205
|
registration(data) {
|
|
205
206
|
return __awaiter(this, void 0, void 0, function* () {
|
|
206
207
|
const headers = this.getHeaders(data.accessToken);
|
|
207
|
-
const body = JSON.stringify(Object.assign(Object.assign({ name: data.name }, (data.countryCode && { country_code: data.countryCode })), { source: {
|
|
208
|
+
const body = JSON.stringify(Object.assign(Object.assign(Object.assign({ name: data.name }, (data.countryCode && { country_code: data.countryCode })), { source: {
|
|
208
209
|
hash: data.hash,
|
|
209
210
|
device_type: data.deviceType,
|
|
210
211
|
ga_id: data.gaId,
|
|
@@ -215,7 +216,7 @@ export class Communicator {
|
|
|
215
216
|
utm_campaign: data.utmCampaign,
|
|
216
217
|
utm_term: data.utmTerm,
|
|
217
218
|
fbclid: data.fbclid,
|
|
218
|
-
} }));
|
|
219
|
+
} }), (data.metadata && { metadata: prepareMetadata(data.metadata) })));
|
|
219
220
|
return yield this.send({
|
|
220
221
|
method: 'POST',
|
|
221
222
|
url: `${this.props.clientFAPIBaseUrl}${CommunicatorFAPIEndpointEnum.REGISTRATION}`,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { registrationMetadataKeys } from "../Constants/RegistrationMetadata";
|
|
2
|
+
export function prepareMetadata(obj) {
|
|
3
|
+
const result = [];
|
|
4
|
+
for (const key of registrationMetadataKeys) {
|
|
5
|
+
if (key in obj && typeof obj[key] === 'string') {
|
|
6
|
+
result.push({
|
|
7
|
+
key,
|
|
8
|
+
value: obj[key],
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import type { TRegistrationMetadata, TRegistrationMetadataKey } from "./TRegistrationMetadata";
|
|
1
2
|
type TChallenge = 'email_otp' | 'mobile_otp' | 'pin' | 'out_of_band';
|
|
2
3
|
type TAuditSource = 'Backend' | 'SelfService';
|
|
3
4
|
type TRegistrationRequestBodySourceDeviceType = 'mobile' | 'regular';
|
|
5
|
+
export type TRegistrationRequestBodySourceMetadata = {
|
|
6
|
+
key: TRegistrationMetadataKey;
|
|
7
|
+
value: string;
|
|
8
|
+
};
|
|
4
9
|
type TRequestProps = {
|
|
5
10
|
url?: string;
|
|
6
11
|
method?: RequestInit['method'];
|
|
@@ -141,6 +146,7 @@ type TRegistrationRequestBodySource = {
|
|
|
141
146
|
utm_campaign: string;
|
|
142
147
|
utm_term: string;
|
|
143
148
|
fbclid: string;
|
|
149
|
+
metadata: TRegistrationRequestBodySourceMetadata[];
|
|
144
150
|
};
|
|
145
151
|
type TRegistrationRequestBody = {
|
|
146
152
|
name: string;
|
|
@@ -164,6 +170,7 @@ type TRegistrationRequestData = {
|
|
|
164
170
|
utmCampaign: TRegistrationRequestBodySource['utm_campaign'];
|
|
165
171
|
utmTerm: TRegistrationRequestBodySource['utm_term'];
|
|
166
172
|
fbclid: TRegistrationRequestBodySource['fbclid'];
|
|
173
|
+
metadata: TRegistrationMetadata;
|
|
167
174
|
};
|
|
168
175
|
type TStorageRequestData = {
|
|
169
176
|
accessToken: string;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { registrationMetadataKeys } from "@root/engine/Communicator/Constants/RegistrationMetadata";
|
|
2
|
+
export type TRegistrationMetadataKey = typeof registrationMetadataKeys[number];
|
|
3
|
+
export type TRegistrationMetadata = Partial<Record<TRegistrationMetadataKey, string>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/types/index.d.ts
CHANGED
package/dist/types/index.js
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const registrationMetadataKeys = [
|
|
2
|
+
'wa.country_code',
|
|
3
|
+
'wa.device_type',
|
|
4
|
+
'wa.hash',
|
|
5
|
+
'google._gcl_aw',
|
|
6
|
+
'google._ga',
|
|
7
|
+
'meta._fbc',
|
|
8
|
+
'meta._fbp',
|
|
9
|
+
'microsoft._uetmsclkid',
|
|
10
|
+
'microsoft._uetvid',
|
|
11
|
+
'linkedin.li_fat_id',
|
|
12
|
+
'appsflyer.cuid',
|
|
13
|
+
'utm.source',
|
|
14
|
+
'utm.medium',
|
|
15
|
+
'utm.campaign',
|
|
16
|
+
'utm.term',
|
|
17
|
+
] as const;
|
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
CommunicatorAuthAPIEndpointEnum,
|
|
32
32
|
CommunicatorFAPIEndpointEnum
|
|
33
33
|
} from "./../Enums/CommunicatorEnum";
|
|
34
|
+
import {prepareMetadata} from "./../Utils/registrationMetaData";
|
|
34
35
|
|
|
35
36
|
export class Communicator {
|
|
36
37
|
private props: TCommunicatorProps;
|
|
@@ -229,7 +230,8 @@ export class Communicator {
|
|
|
229
230
|
utm_campaign: data.utmCampaign,
|
|
230
231
|
utm_term: data.utmTerm,
|
|
231
232
|
fbclid: data.fbclid,
|
|
232
|
-
}
|
|
233
|
+
},
|
|
234
|
+
...(data.metadata && { metadata: prepareMetadata(data.metadata) }),
|
|
233
235
|
});
|
|
234
236
|
|
|
235
237
|
return await this.send({
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { registrationMetadataKeys } from "../Constants/RegistrationMetadata";
|
|
2
|
+
import type { TRegistrationMetadata, TRegistrationRequestBodySourceMetadata } from "@root/types";
|
|
3
|
+
|
|
4
|
+
export function prepareMetadata(obj: TRegistrationMetadata): TRegistrationRequestBodySourceMetadata[] {
|
|
5
|
+
const result: TRegistrationRequestBodySourceMetadata[] = [];
|
|
6
|
+
|
|
7
|
+
for (const key of registrationMetadataKeys) {
|
|
8
|
+
if (key in obj && typeof obj[key] === 'string') {
|
|
9
|
+
result.push({
|
|
10
|
+
key,
|
|
11
|
+
value: obj[key],
|
|
12
|
+
})
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type {TRegistrationMetadata, TRegistrationMetadataKey} from "./TRegistrationMetadata";
|
|
2
|
+
|
|
1
3
|
type TChallenge = 'email_otp' | 'mobile_otp' | 'pin' | 'out_of_band';
|
|
2
4
|
type TAuditSource = 'Backend' | 'SelfService';
|
|
3
5
|
type TRegistrationRequestBodySourceDeviceType = 'mobile' | 'regular';
|
|
6
|
+
export type TRegistrationRequestBodySourceMetadata = { key: TRegistrationMetadataKey, value: string }
|
|
4
7
|
|
|
5
8
|
type TRequestProps = {
|
|
6
9
|
url?: string,
|
|
@@ -190,6 +193,7 @@ type TRegistrationRequestBodySource = {
|
|
|
190
193
|
utm_campaign: string,
|
|
191
194
|
utm_term: string,
|
|
192
195
|
fbclid: string,
|
|
196
|
+
metadata: TRegistrationRequestBodySourceMetadata[],
|
|
193
197
|
}
|
|
194
198
|
|
|
195
199
|
type TRegistrationRequestBody = {
|
|
@@ -216,6 +220,7 @@ type TRegistrationRequestData = {
|
|
|
216
220
|
utmCampaign: TRegistrationRequestBodySource['utm_campaign'],
|
|
217
221
|
utmTerm: TRegistrationRequestBodySource['utm_term'],
|
|
218
222
|
fbclid: TRegistrationRequestBodySource['fbclid'],
|
|
223
|
+
metadata: TRegistrationMetadata,
|
|
219
224
|
}
|
|
220
225
|
/* endregion registration */
|
|
221
226
|
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { registrationMetadataKeys } from "@root/engine/Communicator/Constants/RegistrationMetadata";
|
|
2
|
+
|
|
3
|
+
export type TRegistrationMetadataKey = typeof registrationMetadataKeys[number];
|
|
4
|
+
|
|
5
|
+
export type TRegistrationMetadata = Partial<Record<TRegistrationMetadataKey, string>>;
|
package/src/types/index.ts
CHANGED
|
@@ -108,7 +108,7 @@ exports[`Communicator requests profileAssign 1`] = `
|
|
|
108
108
|
|
|
109
109
|
exports[`Communicator requests registration 1`] = `
|
|
110
110
|
{
|
|
111
|
-
"body": "{"name":"_companyName_","country_code":"CAN","source":{"hash":"_hash_","device_type":"mobile","ga_id":"_gaId_","origin":"_origin_","gc_id":"_gcId_","utm_source":"_utmSource_","utm_medium":"_utmMedium_","utm_campaign":"_utmCampaign_","utm_term":"_utmTerm_","fbclid":"_fbclid_"}}",
|
|
111
|
+
"body": "{"name":"_companyName_","country_code":"CAN","source":{"hash":"_hash_","device_type":"mobile","ga_id":"_gaId_","origin":"_origin_","gc_id":"_gcId_","utm_source":"_utmSource_","utm_medium":"_utmMedium_","utm_campaign":"_utmCampaign_","utm_term":"_utmTerm_","fbclid":"_fbclid_"},"metadata":[{"key":"wa.country_code","value":"CAN"},{"key":"wa.device_type","value":"mobile"},{"key":"wa.hash","value":"_hash_"},{"key":"google._gcl_aw","value":"_gcl_aw_"},{"key":"google._ga","value":"_ga_"},{"key":"meta._fbc","value":"_fbc_"},{"key":"meta._fbp","value":"_fbp_"},{"key":"microsoft._uetmsclkid","value":"_uetmsclkid_"},{"key":"microsoft._uetvid","value":"_uetvid_"},{"key":"linkedin.li_fat_id","value":"_li_fat_id_"},{"key":"appsflyer.cuid","value":"_cuid_"},{"key":"utm.source","value":"_utmSource_"},{"key":"utm.medium","value":"_utmMedium_"},{"key":"utm.campaign","value":"_utmCampaign_"},{"key":"utm.term","value":"_utmTerm_"}]}",
|
|
112
112
|
"headers": {
|
|
113
113
|
"Accept": "application/json, text/plain, */*",
|
|
114
114
|
"Authorization": "Bearer _accessToken_",
|
|
@@ -38,6 +38,23 @@ const communicatorTestData = {
|
|
|
38
38
|
fbclid: '_fbclid_',
|
|
39
39
|
userId: '_userId_',
|
|
40
40
|
profileId: '_profileId_',
|
|
41
|
+
metadata: {
|
|
42
|
+
'wa.country_code': 'CAN',
|
|
43
|
+
'wa.device_type': 'mobile' as TRegistrationRequestBodySourceDeviceType,
|
|
44
|
+
'wa.hash': '_hash_',
|
|
45
|
+
'google._gcl_aw': '_gcl_aw_',
|
|
46
|
+
'google._ga': '_ga_',
|
|
47
|
+
'meta._fbc': '_fbc_',
|
|
48
|
+
'meta._fbp': '_fbp_',
|
|
49
|
+
'microsoft._uetmsclkid': '_uetmsclkid_',
|
|
50
|
+
'microsoft._uetvid': '_uetvid_',
|
|
51
|
+
'linkedin.li_fat_id': '_li_fat_id_',
|
|
52
|
+
'appsflyer.cuid': '_cuid_',
|
|
53
|
+
'utm.source': '_utmSource_',
|
|
54
|
+
'utm.medium': '_utmMedium_',
|
|
55
|
+
'utm.campaign': '_utmCampaign_',
|
|
56
|
+
'utm.term': '_utmTerm_',
|
|
57
|
+
}
|
|
41
58
|
};
|
|
42
59
|
|
|
43
60
|
export {
|
|
@@ -73,6 +73,7 @@ const registrationData: TRegistrationRequestData = {
|
|
|
73
73
|
utmCampaign: communicatorTestData.utmCampaign,
|
|
74
74
|
utmTerm: communicatorTestData.utmTerm,
|
|
75
75
|
fbclid: communicatorTestData.fbclid,
|
|
76
|
+
metadata: communicatorTestData.metadata,
|
|
76
77
|
};
|
|
77
78
|
|
|
78
79
|
const setStorageValuesData: TStorageRequestData = {
|