@simplybusiness/services 0.21.4 → 0.21.7
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/CHANGELOG.md +21 -0
- package/dist/cjs/index.js +1198 -17
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/index.js +1193 -4
- package/package.json +7 -6
- package/src/snowplow/event-definitions/qcp.ts +2 -1
- package/dist/cjs/address-lookup/index.js +0 -98
- package/dist/cjs/address-lookup/index.js.map +0 -1
- package/dist/cjs/address-lookup/types.js +0 -7
- package/dist/cjs/address-lookup/types.js.map +0 -1
- package/dist/cjs/airbrake/index.js +0 -45
- package/dist/cjs/airbrake/index.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/mocks/eventDefinitions.js +0 -90
- package/dist/cjs/mocks/eventDefinitions.js.map +0 -1
- package/dist/cjs/mocks/scripts-mock.js +0 -59
- package/dist/cjs/mocks/scripts-mock.js.map +0 -1
- package/dist/cjs/mocks/snowplowBrowserTrackerMock.js +0 -7
- package/dist/cjs/mocks/snowplowBrowserTrackerMock.js.map +0 -1
- package/dist/cjs/snowplow/Snowplow.js +0 -174
- package/dist/cjs/snowplow/Snowplow.js.map +0 -1
- package/dist/cjs/snowplow/SnowplowContext.js +0 -61
- package/dist/cjs/snowplow/SnowplowContext.js.map +0 -1
- package/dist/cjs/snowplow/constants.js +0 -13
- package/dist/cjs/snowplow/constants.js.map +0 -1
- package/dist/cjs/snowplow/contexts.js +0 -68
- package/dist/cjs/snowplow/contexts.js.map +0 -1
- package/dist/cjs/snowplow/event-definitions/base.js +0 -56
- package/dist/cjs/snowplow/event-definitions/base.js.map +0 -1
- package/dist/cjs/snowplow/event-definitions/index.js +0 -65
- package/dist/cjs/snowplow/event-definitions/index.js.map +0 -1
- package/dist/cjs/snowplow/event-definitions/intervention.js +0 -33
- package/dist/cjs/snowplow/event-definitions/intervention.js.map +0 -1
- package/dist/cjs/snowplow/event-definitions/personalised_cover.js +0 -122
- package/dist/cjs/snowplow/event-definitions/personalised_cover.js.map +0 -1
- package/dist/cjs/snowplow/event-definitions/qcp.js +0 -348
- package/dist/cjs/snowplow/event-definitions/qcp.js.map +0 -1
- package/dist/cjs/snowplow/event-definitions/questionnaire.js +0 -115
- package/dist/cjs/snowplow/event-definitions/questionnaire.js.map +0 -1
- package/dist/cjs/snowplow/event-definitions/redaction.js +0 -154
- package/dist/cjs/snowplow/event-definitions/redaction.js.map +0 -1
- package/dist/cjs/snowplow/event-definitions/referral.js +0 -37
- package/dist/cjs/snowplow/event-definitions/referral.js.map +0 -1
- package/dist/cjs/snowplow/getSnowplowConfig.js +0 -16
- package/dist/cjs/snowplow/getSnowplowConfig.js.map +0 -1
- package/dist/cjs/snowplow/index.js +0 -25
- package/dist/cjs/snowplow/index.js.map +0 -1
- package/dist/cjs/snowplow/types.js +0 -6
- package/dist/cjs/snowplow/types.js.map +0 -1
- package/dist/cjs/utils/index.js +0 -21
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/cjs/utils/isObject.js +0 -15
- package/dist/cjs/utils/isObject.js.map +0 -1
- package/dist/cjs/utils/testUtils.js +0 -43
- package/dist/cjs/utils/testUtils.js.map +0 -1
- package/dist/cjs/utils/text.js +0 -45
- package/dist/cjs/utils/text.js.map +0 -1
- package/dist/esm/address-lookup/index.js +0 -88
- package/dist/esm/address-lookup/index.js.map +0 -1
- package/dist/esm/address-lookup/types.js +0 -5
- package/dist/esm/address-lookup/types.js.map +0 -1
- package/dist/esm/airbrake/index.js +0 -35
- package/dist/esm/airbrake/index.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/mocks/eventDefinitions.js +0 -80
- package/dist/esm/mocks/eventDefinitions.js.map +0 -1
- package/dist/esm/mocks/scripts-mock.js +0 -49
- package/dist/esm/mocks/scripts-mock.js.map +0 -1
- package/dist/esm/mocks/snowplowBrowserTrackerMock.js +0 -6
- package/dist/esm/mocks/snowplowBrowserTrackerMock.js.map +0 -1
- package/dist/esm/snowplow/Snowplow.js +0 -169
- package/dist/esm/snowplow/Snowplow.js.map +0 -1
- package/dist/esm/snowplow/SnowplowContext.js +0 -43
- package/dist/esm/snowplow/SnowplowContext.js.map +0 -1
- package/dist/esm/snowplow/constants.js +0 -3
- package/dist/esm/snowplow/constants.js.map +0 -1
- package/dist/esm/snowplow/contexts.js +0 -47
- package/dist/esm/snowplow/contexts.js.map +0 -1
- package/dist/esm/snowplow/event-definitions/base.js +0 -66
- package/dist/esm/snowplow/event-definitions/base.js.map +0 -1
- package/dist/esm/snowplow/event-definitions/index.js +0 -36
- package/dist/esm/snowplow/event-definitions/index.js.map +0 -1
- package/dist/esm/snowplow/event-definitions/intervention.js +0 -23
- package/dist/esm/snowplow/event-definitions/intervention.js.map +0 -1
- package/dist/esm/snowplow/event-definitions/personalised_cover.js +0 -131
- package/dist/esm/snowplow/event-definitions/personalised_cover.js.map +0 -1
- package/dist/esm/snowplow/event-definitions/qcp.js +0 -339
- package/dist/esm/snowplow/event-definitions/qcp.js.map +0 -1
- package/dist/esm/snowplow/event-definitions/questionnaire.js +0 -106
- package/dist/esm/snowplow/event-definitions/questionnaire.js.map +0 -1
- package/dist/esm/snowplow/event-definitions/redaction.js +0 -144
- package/dist/esm/snowplow/event-definitions/redaction.js.map +0 -1
- package/dist/esm/snowplow/event-definitions/referral.js +0 -28
- package/dist/esm/snowplow/event-definitions/referral.js.map +0 -1
- package/dist/esm/snowplow/getSnowplowConfig.js +0 -7
- package/dist/esm/snowplow/getSnowplowConfig.js.map +0 -1
- package/dist/esm/snowplow/index.js +0 -8
- package/dist/esm/snowplow/index.js.map +0 -1
- package/dist/esm/snowplow/types.js +0 -3
- package/dist/esm/snowplow/types.js.map +0 -1
- package/dist/esm/utils/index.js +0 -4
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/isObject.js +0 -5
- package/dist/esm/utils/isObject.js.map +0 -1
- package/dist/esm/utils/testUtils.js +0 -26
- package/dist/esm/utils/testUtils.js.map +0 -1
- package/dist/esm/utils/text.js +0 -25
- package/dist/esm/utils/text.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplybusiness/services",
|
|
3
3
|
"license": "UNLICENSED",
|
|
4
|
-
"version": "0.21.
|
|
4
|
+
"version": "0.21.7",
|
|
5
5
|
"description": "Internal library for services",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"clean": "rm -rf dist",
|
|
29
29
|
"build": "yarn run -T turbo run turbo:build",
|
|
30
30
|
"prepack": "yarn run build",
|
|
31
|
-
"build:cjs": "
|
|
32
|
-
"build:esm": "
|
|
31
|
+
"build:cjs": "node ../build.mjs cjs",
|
|
32
|
+
"build:esm": "node ../build.mjs esm",
|
|
33
33
|
"build:types": "tsc --emitDeclarationOnly",
|
|
34
34
|
"lint": "eslint .",
|
|
35
35
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
|
|
@@ -42,8 +42,7 @@
|
|
|
42
42
|
"react-dom": "^18.2.0 || ^19.0.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@swc/
|
|
46
|
-
"@swc/core": "^1.11.9",
|
|
45
|
+
"@swc/core": "^1.11.13",
|
|
47
46
|
"@swc/jest": "^0.2.37",
|
|
48
47
|
"@testing-library/dom": "^10.4.0",
|
|
49
48
|
"@testing-library/jest-dom": "6.6.3",
|
|
@@ -53,6 +52,8 @@
|
|
|
53
52
|
"@types/react-dom": "^18.3.5",
|
|
54
53
|
"@typescript-eslint/eslint-plugin": "^8.26.1",
|
|
55
54
|
"@typescript-eslint/parser": "^8.26.1",
|
|
55
|
+
"esbuild": "^0.25.1",
|
|
56
|
+
"esbuild-plugin-clean": "^1.0.1",
|
|
56
57
|
"eslint": "^8.57.1",
|
|
57
58
|
"eslint-config-airbnb": "^19.0.4",
|
|
58
59
|
"eslint-config-prettier": "^9.1.0",
|
|
@@ -75,7 +76,7 @@
|
|
|
75
76
|
},
|
|
76
77
|
"dependencies": {
|
|
77
78
|
"@airbrake/browser": "^2.1.9",
|
|
78
|
-
"@simplybusiness/mobius": "^5.25.
|
|
79
|
+
"@simplybusiness/mobius": "^5.25.4",
|
|
79
80
|
"@snowplow/browser-tracker": "^3.24.6",
|
|
80
81
|
"classnames": "^2.5.1"
|
|
81
82
|
},
|
|
@@ -223,7 +223,8 @@ export const qcpEventDefinitions: EventDefinition[] = [
|
|
|
223
223
|
const { journeyId, vertical } = params as ParamsType;
|
|
224
224
|
|
|
225
225
|
return {
|
|
226
|
-
schema:
|
|
226
|
+
schema:
|
|
227
|
+
"iglu:com.simplybusiness/qcp_back_to_application/jsonschema/1-0-0",
|
|
227
228
|
data: {
|
|
228
229
|
journey_id: journeyId,
|
|
229
230
|
vertical,
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "AddressLookup", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return AddressLookup;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function _define_property(obj, key, value) {
|
|
12
|
-
if (key in obj) {
|
|
13
|
-
Object.defineProperty(obj, key, {
|
|
14
|
-
value: value,
|
|
15
|
-
enumerable: true,
|
|
16
|
-
configurable: true,
|
|
17
|
-
writable: true
|
|
18
|
-
});
|
|
19
|
-
} else {
|
|
20
|
-
obj[key] = value;
|
|
21
|
-
}
|
|
22
|
-
return obj;
|
|
23
|
-
}
|
|
24
|
-
// Loquate API constants
|
|
25
|
-
const BASE_URL = "https://api.addressy.com/Capture/Interactive";
|
|
26
|
-
const FIND_URL = `${BASE_URL}/Find/v1.00/json3.ws`;
|
|
27
|
-
const RETRIEVE_URL = `${BASE_URL}/Retrieve/v1.2/json3.ws`;
|
|
28
|
-
const COUNTRIES = [
|
|
29
|
-
"GB"
|
|
30
|
-
]; // 2 or 3-letter ISO country codes
|
|
31
|
-
const LIMIT = 20;
|
|
32
|
-
class AddressLookup {
|
|
33
|
-
static async fetchFromApi(url, handleResponse) {
|
|
34
|
-
return new Promise((resolve, reject)=>{
|
|
35
|
-
fetch(url).then((response)=>response.json()).then((data)=>resolve(handleResponse(data))).catch((error)=>reject(Error(error)));
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
find(partialAddress) {
|
|
39
|
-
return new Promise((resolve, reject)=>{
|
|
40
|
-
fetch(`${this.findUrl}&Text=${partialAddress}`).then((response)=>response.json()).then((data)=>resolve(this.formatItems(data))).catch((error)=>reject(Error(error)));
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
findById(id) {
|
|
44
|
-
return new Promise((resolve, reject)=>{
|
|
45
|
-
fetch(`${this.findUrl}&Container=${id}`).then((response)=>response.json()).then((data)=>resolve(this.formatItems(data))).catch((error)=>reject(Error(error)));
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
get(id) {
|
|
49
|
-
return new Promise((resolve, reject)=>{
|
|
50
|
-
fetch(`${this.retrieveUrl}&Id=${id}`).then((response)=>response.json()).then((data)=>resolve(AddressLookup.formatUkAddress(data))).catch((error)=>reject(Error(error)));
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
formatItems({ Items }) {
|
|
54
|
-
if (!Items || !Array.isArray(Items)) {
|
|
55
|
-
throw Error("No address found");
|
|
56
|
-
}
|
|
57
|
-
if (Items[0].Error) {
|
|
58
|
-
throw Error(Items[0].Description);
|
|
59
|
-
}
|
|
60
|
-
return Items.map((item)=>({
|
|
61
|
-
id: item.Id,
|
|
62
|
-
label: `${item.Text}, ${item.Description}`,
|
|
63
|
-
value: item.Text,
|
|
64
|
-
// Add a callback to trigger secondary search
|
|
65
|
-
// if the address type is not "Address"
|
|
66
|
-
callback: item.Type === "Address" ? undefined : ()=>this.findById(item.Id)
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
static formatUkAddress({ Items }) {
|
|
70
|
-
if (!Items || !Array.isArray(Items)) {
|
|
71
|
-
throw Error("No address found");
|
|
72
|
-
}
|
|
73
|
-
if (Items[0].Error) {
|
|
74
|
-
throw Error(Items[0].Description);
|
|
75
|
-
}
|
|
76
|
-
const { Line1, Line2, City, PostalCode } = Items[0];
|
|
77
|
-
return {
|
|
78
|
-
address_1: Line1,
|
|
79
|
-
address_2: Line2,
|
|
80
|
-
town: City,
|
|
81
|
-
uk_postcode: PostalCode
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
constructor({ apiKey, limit, countries }){
|
|
85
|
-
_define_property(this, "apiKey", void 0);
|
|
86
|
-
_define_property(this, "limit", void 0);
|
|
87
|
-
_define_property(this, "findUrl", void 0);
|
|
88
|
-
_define_property(this, "retrieveUrl", void 0);
|
|
89
|
-
_define_property(this, "countries", void 0);
|
|
90
|
-
this.apiKey = apiKey;
|
|
91
|
-
this.limit = limit || LIMIT;
|
|
92
|
-
this.countries = countries || COUNTRIES;
|
|
93
|
-
this.findUrl = `${FIND_URL}?Key=${this.apiKey}&Limit=${this.limit}&Countries=${this.countries}`;
|
|
94
|
-
this.retrieveUrl = `${RETRIEVE_URL}?Key=${this.apiKey}`;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/address-lookup/index.ts"],"sourcesContent":["import {\n AddressError,\n AddressLookupConfig,\n FindAddressResponse,\n FindAddressResult,\n Option,\n Options,\n RetrieveAddressResponse,\n RetrieveAddressResult,\n} from \"./types\";\n\n// Loquate API constants\nconst BASE_URL = \"https://api.addressy.com/Capture/Interactive\";\nconst FIND_URL = `${BASE_URL}/Find/v1.00/json3.ws`;\nconst RETRIEVE_URL = `${BASE_URL}/Retrieve/v1.2/json3.ws`;\nconst COUNTRIES = [\"GB\"]; // 2 or 3-letter ISO country codes\nconst LIMIT = 20;\n\nexport class AddressLookup {\n private apiKey: string;\n\n private limit: number;\n\n private findUrl: string;\n\n private retrieveUrl: string;\n\n private countries: string[];\n\n constructor({ apiKey, limit, countries }: AddressLookupConfig) {\n this.apiKey = apiKey;\n this.limit = limit || LIMIT;\n this.countries = countries || COUNTRIES;\n this.findUrl = `${FIND_URL}?Key=${this.apiKey}&Limit=${this.limit}&Countries=${this.countries}`;\n this.retrieveUrl = `${RETRIEVE_URL}?Key=${this.apiKey}`;\n }\n\n private static async fetchFromApi(\n url: string,\n handleResponse: Function,\n ): Promise<unknown> {\n return new Promise((resolve, reject) => {\n fetch(url)\n .then(response => response.json())\n .then(data => resolve(handleResponse(data)))\n .catch(error => reject(Error(error)));\n });\n }\n\n public find(partialAddress: string): Promise<Options> {\n return new Promise((resolve, reject) => {\n fetch(`${this.findUrl}&Text=${partialAddress}`)\n .then(response => response.json())\n .then(data => resolve(this.formatItems(data)))\n .catch(error => reject(Error(error)));\n });\n }\n\n public findById(id: string): Promise<Options> {\n return new Promise((resolve, reject) => {\n fetch(`${this.findUrl}&Container=${id}`)\n .then(response => response.json())\n .then(data => resolve(this.formatItems(data)))\n .catch(error => reject(Error(error)));\n });\n }\n\n public get(id: string): Promise<Record<string, string>> {\n return new Promise((resolve, reject) => {\n fetch(`${this.retrieveUrl}&Id=${id}`)\n .then(response => response.json())\n .then(data => resolve(AddressLookup.formatUkAddress(data)))\n .catch(error => reject(Error(error)));\n });\n }\n\n private formatItems({ Items }: FindAddressResponse) {\n if (!Items || !Array.isArray(Items)) {\n throw Error(\"No address found\");\n }\n\n if ((Items[0] as AddressError).Error) {\n throw Error(Items[0].Description);\n }\n\n return (Items as FindAddressResult[]).map(\n (item): Option => ({\n id: item.Id,\n label: `${item.Text}, ${item.Description}`,\n value: item.Text,\n // Add a callback to trigger secondary search\n // if the address type is not \"Address\"\n callback:\n item.Type === \"Address\" ? undefined : () => this.findById(item.Id),\n }),\n );\n }\n\n private static formatUkAddress({ Items }: RetrieveAddressResponse) {\n if (!Items || !Array.isArray(Items)) {\n throw Error(\"No address found\");\n }\n\n if ((Items[0] as AddressError).Error) {\n throw Error((Items[0] as AddressError).Description);\n }\n\n const { Line1, Line2, City, PostalCode } = (\n Items as RetrieveAddressResult[]\n )[0];\n\n return {\n address_1: Line1,\n address_2: Line2,\n town: City,\n uk_postcode: PostalCode,\n };\n }\n}\n"],"names":["AddressLookup","BASE_URL","FIND_URL","RETRIEVE_URL","COUNTRIES","LIMIT","fetchFromApi","url","handleResponse","Promise","resolve","reject","fetch","then","response","json","data","catch","error","Error","find","partialAddress","findUrl","formatItems","findById","id","get","retrieveUrl","formatUkAddress","Items","Array","isArray","Description","map","item","Id","label","Text","value","callback","Type","undefined","Line1","Line2","City","PostalCode","address_1","address_2","town","uk_postcode","constructor","apiKey","limit","countries"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/address-lookup/types.ts"],"sourcesContent":["// Options: the target shape for responses to Combobox\nexport type Option = {\n id: string;\n label: string;\n value: string | number | boolean;\n callback?: () => Promise<Options>;\n};\n\nexport type OptionGroup = {\n heading: string;\n options: Option[];\n};\n\nexport type Options = Option[] | OptionGroup[];\n\n// Loquate API types\nexport type FindAddressResult = {\n Id: string;\n Type: string;\n Text: string;\n Highlight: string;\n Description: string;\n};\n\nexport type AddressError = {\n Cause: string;\n Error: string;\n Description: string;\n Resolution: string;\n};\n\nexport type FindAddressResponse = {\n Items: FindAddressResult[] | AddressError[];\n};\n\nexport type RetrieveAddressResult = {\n Id: string;\n Type: string;\n City: string;\n Line1: string;\n Line2: string;\n PostalCode: string;\n Label: string;\n};\n\nexport type RetrieveAddressResponse = {\n Items: RetrieveAddressResult[] | AddressError[];\n};\n\n// Class interface\nexport type AddressLookupConfig = {\n apiKey: string;\n limit?: number;\n countries?: string[];\n};\n"],"names":[],"mappings":"AAAA,sDAAsD"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getAirbrake", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getAirbrake;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _browser = require("@airbrake/browser");
|
|
12
|
-
// https://simplybusiness.airbrake.io/projects/512949/edit#tab-access
|
|
13
|
-
// This configuration is for embedded-qcp project
|
|
14
|
-
const defaultProjectId = 512949;
|
|
15
|
-
const defaultProjectKey = "4e25197d8faea61c10fbb97702200780";
|
|
16
|
-
let notifierInstance;
|
|
17
|
-
// Fake signature which logs to console
|
|
18
|
-
const fakeAirbrake = {
|
|
19
|
-
notify: console.error
|
|
20
|
-
};
|
|
21
|
-
// We don't want to send real alerts on non-quote domains
|
|
22
|
-
const shouldUseAirbrake = ()=>{
|
|
23
|
-
const { location } = globalThis;
|
|
24
|
-
const isTest = process.env.NODE_ENV === "test";
|
|
25
|
-
return isTest || (location === null || location === void 0 ? void 0 : location.hostname.indexOf("quote.")) > -1;
|
|
26
|
-
};
|
|
27
|
-
function getAirbrake(options) {
|
|
28
|
-
const { projectId, projectKey, forceSend } = options;
|
|
29
|
-
if (!forceSend || !shouldUseAirbrake()) {
|
|
30
|
-
return fakeAirbrake;
|
|
31
|
-
}
|
|
32
|
-
if (!notifierInstance) {
|
|
33
|
-
notifierInstance = new _browser.Notifier({
|
|
34
|
-
projectId: projectId !== null && projectId !== void 0 ? projectId : defaultProjectId,
|
|
35
|
-
projectKey: projectKey !== null && projectKey !== void 0 ? projectKey : defaultProjectKey,
|
|
36
|
-
environment: process.env.NODE_ENV,
|
|
37
|
-
instrumentation: {
|
|
38
|
-
onerror: false
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return notifierInstance;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/airbrake/index.ts"],"sourcesContent":["import { Notifier } from \"@airbrake/browser\";\n\n// https://simplybusiness.airbrake.io/projects/512949/edit#tab-access\n// This configuration is for embedded-qcp project\nconst defaultProjectId = 512949;\nconst defaultProjectKey = \"4e25197d8faea61c10fbb97702200780\";\n\nlet notifierInstance: Notifier | null;\n\n// Fake signature which logs to console\nconst fakeAirbrake = {\n notify: console.error,\n};\n\n// We don't want to send real alerts on non-quote domains\nconst shouldUseAirbrake = () => {\n const { location } = globalThis;\n const isTest = process.env.NODE_ENV === \"test\";\n\n return isTest || location?.hostname.indexOf(\"quote.\") > -1;\n};\n\nexport type GetAirbrakeOptions = {\n projectId?: number;\n projectKey?: string;\n forceSend?: boolean;\n};\n\nexport function getAirbrake(options: GetAirbrakeOptions) {\n const { projectId, projectKey, forceSend } = options;\n\n if (!forceSend || !shouldUseAirbrake()) {\n return fakeAirbrake;\n }\n\n if (!notifierInstance) {\n notifierInstance = new Notifier({\n projectId: projectId ?? defaultProjectId,\n projectKey: projectKey ?? defaultProjectKey,\n environment: process.env.NODE_ENV,\n instrumentation: {\n onerror: false,\n },\n });\n }\n\n return notifierInstance;\n}\n"],"names":["getAirbrake","defaultProjectId","defaultProjectKey","notifierInstance","fakeAirbrake","notify","console","error","shouldUseAirbrake","location","globalThis","isTest","process","env","NODE_ENV","hostname","indexOf","options","projectId","projectKey","forceSend","Notifier","environment","instrumentation","onerror"],"mappings":";;;;+BA4BgBA;;;eAAAA;;;yBA5BS;AAEzB,qEAAqE;AACrE,iDAAiD;AACjD,MAAMC,mBAAmB;AACzB,MAAMC,oBAAoB;AAE1B,IAAIC;AAEJ,uCAAuC;AACvC,MAAMC,eAAe;IACnBC,QAAQC,QAAQC,KAAK;AACvB;AAEA,yDAAyD;AACzD,MAAMC,oBAAoB;IACxB,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IACrB,MAAMC,SAASC,QAAQC,GAAG,CAACC,QAAQ,KAAK;IAExC,OAAOH,UAAUF,CAAAA,qBAAAA,+BAAAA,SAAUM,QAAQ,CAACC,OAAO,CAAC,aAAY,CAAC;AAC3D;AAQO,SAAShB,YAAYiB,OAA2B;IACrD,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGH;IAE7C,IAAI,CAACG,aAAa,CAACZ,qBAAqB;QACtC,OAAOJ;IACT;IAEA,IAAI,CAACD,kBAAkB;QACrBA,mBAAmB,IAAIkB,iBAAQ,CAAC;YAC9BH,WAAWA,sBAAAA,uBAAAA,YAAajB;YACxBkB,YAAYA,uBAAAA,wBAAAA,aAAcjB;YAC1BoB,aAAaV,QAAQC,GAAG,CAACC,QAAQ;YACjCS,iBAAiB;gBACfC,SAAS;YACX;QACF;IACF;IAEA,OAAOrB;AACT"}
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.tsx"],"sourcesContent":["export * from \"./address-lookup\";\nexport * from \"./airbrake\";\nexport * from \"./snowplow\";\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _redaction = require("../snowplow/event-definitions/redaction");
|
|
12
|
-
const _default = [
|
|
13
|
-
{
|
|
14
|
-
name: "navButtonClicked",
|
|
15
|
-
type: "structured",
|
|
16
|
-
makePayload: (params)=>{
|
|
17
|
-
const { label } = params;
|
|
18
|
-
return {
|
|
19
|
-
category: "navigation",
|
|
20
|
-
action: "thankyou_navigation_button_click",
|
|
21
|
-
label,
|
|
22
|
-
property: "test-property"
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "questionAnswered",
|
|
28
|
-
type: "unstructured",
|
|
29
|
-
makePayload: (params)=>{
|
|
30
|
-
const { section, context } = params;
|
|
31
|
-
const { question, answer } = (0, _redaction.redact)(params);
|
|
32
|
-
return {
|
|
33
|
-
schema: "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-3",
|
|
34
|
-
data: {
|
|
35
|
-
site: context.site,
|
|
36
|
-
page_index: 1,
|
|
37
|
-
page_name: "quick_to_quote",
|
|
38
|
-
submitted_from: "quick_to_quote_experiment",
|
|
39
|
-
section_name: section,
|
|
40
|
-
question,
|
|
41
|
-
answer,
|
|
42
|
-
vertical: context.vertical
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
},
|
|
46
|
-
contexts: [
|
|
47
|
-
"distributionChannelContext"
|
|
48
|
-
]
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: "primaryDetailSelected",
|
|
52
|
-
type: "unstructured",
|
|
53
|
-
makePayload: (params)=>{
|
|
54
|
-
const { context, answer, vertical } = params;
|
|
55
|
-
const { site } = context;
|
|
56
|
-
let verticalName = vertical || context.vertical;
|
|
57
|
-
if (verticalName.toLowerCase().indexOf("landlord") > -1) {
|
|
58
|
-
verticalName = answer === "residential" ? "Landlord" : "Commercial landlord";
|
|
59
|
-
}
|
|
60
|
-
return {
|
|
61
|
-
schema: "iglu:com.simplybusiness/primary_detail_selected/jsonschema/1-3-0",
|
|
62
|
-
data: {
|
|
63
|
-
site,
|
|
64
|
-
vertical: verticalName,
|
|
65
|
-
primary_detail: answer
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
name: "helpTextOpened",
|
|
72
|
-
type: "unstructured",
|
|
73
|
-
makePayload: (params)=>{
|
|
74
|
-
const { primaryText, label, context, helpText } = params;
|
|
75
|
-
return {
|
|
76
|
-
schema: "iglu:com.simplybusiness/help_text_opened/jsonschema/1-1-0",
|
|
77
|
-
data: {
|
|
78
|
-
vertical: context.vertical,
|
|
79
|
-
site: context.site,
|
|
80
|
-
help_text: helpText,
|
|
81
|
-
primary_text: primaryText,
|
|
82
|
-
label,
|
|
83
|
-
page_name: "quick_to_quote"
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
];
|
|
89
|
-
|
|
90
|
-
//# sourceMappingURL=eventDefinitions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mocks/eventDefinitions.ts"],"sourcesContent":["import { ParamsType } from \"../snowplow\";\nimport { redact } from \"../snowplow/event-definitions/redaction\";\n\nexport default [\n {\n name: \"navButtonClicked\",\n type: \"structured\",\n makePayload: (params: { label: \"next\" | \"back\" | \"redirect\" }) => {\n const { label } = params;\n return {\n category: \"navigation\",\n action: \"thankyou_navigation_button_click\",\n label,\n property: \"test-property\",\n };\n },\n },\n {\n name: \"questionAnswered\",\n type: \"unstructured\",\n makePayload: (params: ParamsType) => {\n const { section, context } = params as ParamsType;\n const { question, answer } = redact(params as ParamsType);\n\n return {\n schema:\n \"iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-3\",\n data: {\n site: context.site,\n page_index: 1,\n page_name: \"quick_to_quote\",\n submitted_from: \"quick_to_quote_experiment\",\n section_name: section,\n question,\n answer,\n vertical: context.vertical,\n },\n };\n },\n contexts: [\"distributionChannelContext\"],\n },\n {\n name: \"primaryDetailSelected\",\n type: \"unstructured\",\n makePayload: (params: ParamsType) => {\n const { context, answer, vertical } = params as ParamsType;\n const { site } = context;\n let verticalName = vertical || context.vertical;\n\n if (verticalName.toLowerCase().indexOf(\"landlord\") > -1) {\n verticalName =\n answer === \"residential\" ? \"Landlord\" : \"Commercial landlord\";\n }\n\n return {\n schema:\n \"iglu:com.simplybusiness/primary_detail_selected/jsonschema/1-3-0\",\n data: {\n site,\n vertical: verticalName,\n primary_detail: answer,\n },\n };\n },\n },\n {\n name: \"helpTextOpened\",\n type: \"unstructured\",\n makePayload: (params: ParamsType) => {\n const { primaryText, label, context, helpText } = params as ParamsType;\n\n return {\n schema: \"iglu:com.simplybusiness/help_text_opened/jsonschema/1-1-0\",\n data: {\n vertical: context.vertical,\n site: context.site,\n help_text: helpText,\n primary_text: primaryText,\n label,\n page_name: \"quick_to_quote\",\n },\n };\n },\n },\n];\n"],"names":["name","type","makePayload","params","label","category","action","property","section","context","question","answer","redact","schema","data","site","page_index","page_name","submitted_from","section_name","vertical","contexts","verticalName","toLowerCase","indexOf","primary_detail","primaryText","helpText","help_text","primary_text"],"mappings":";;;;+BAGA;;;eAAA;;;2BAFuB;MAEvB,WAAe;IACb;QACEA,MAAM;QACNC,MAAM;QACNC,aAAa,CAACC;YACZ,MAAM,EAAEC,KAAK,EAAE,GAAGD;YAClB,OAAO;gBACLE,UAAU;gBACVC,QAAQ;gBACRF;gBACAG,UAAU;YACZ;QACF;IACF;IACA;QACEP,MAAM;QACNC,MAAM;QACNC,aAAa,CAACC;YACZ,MAAM,EAAEK,OAAO,EAAEC,OAAO,EAAE,GAAGN;YAC7B,MAAM,EAAEO,QAAQ,EAAEC,MAAM,EAAE,GAAGC,IAAAA,iBAAM,EAACT;YAEpC,OAAO;gBACLU,QACE;gBACFC,MAAM;oBACJC,MAAMN,QAAQM,IAAI;oBAClBC,YAAY;oBACZC,WAAW;oBACXC,gBAAgB;oBAChBC,cAAcX;oBACdE;oBACAC;oBACAS,UAAUX,QAAQW,QAAQ;gBAC5B;YACF;QACF;QACAC,UAAU;YAAC;SAA6B;IAC1C;IACA;QACErB,MAAM;QACNC,MAAM;QACNC,aAAa,CAACC;YACZ,MAAM,EAAEM,OAAO,EAAEE,MAAM,EAAES,QAAQ,EAAE,GAAGjB;YACtC,MAAM,EAAEY,IAAI,EAAE,GAAGN;YACjB,IAAIa,eAAeF,YAAYX,QAAQW,QAAQ;YAE/C,IAAIE,aAAaC,WAAW,GAAGC,OAAO,CAAC,cAAc,CAAC,GAAG;gBACvDF,eACEX,WAAW,gBAAgB,aAAa;YAC5C;YAEA,OAAO;gBACLE,QACE;gBACFC,MAAM;oBACJC;oBACAK,UAAUE;oBACVG,gBAAgBd;gBAClB;YACF;QACF;IACF;IACA;QACEX,MAAM;QACNC,MAAM;QACNC,aAAa,CAACC;YACZ,MAAM,EAAEuB,WAAW,EAAEtB,KAAK,EAAEK,OAAO,EAAEkB,QAAQ,EAAE,GAAGxB;YAElD,OAAO;gBACLU,QAAQ;gBACRC,MAAM;oBACJM,UAAUX,QAAQW,QAAQ;oBAC1BL,MAAMN,QAAQM,IAAI;oBAClBa,WAAWD;oBACXE,cAAcH;oBACdtB;oBACAa,WAAW;gBACb;YACF;QACF;IACF;CACD"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "pageData", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return pageData;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const pageData = {
|
|
12
|
-
scripts: [
|
|
13
|
-
{
|
|
14
|
-
metadata: {
|
|
15
|
-
name: "snowplow"
|
|
16
|
-
},
|
|
17
|
-
props: {
|
|
18
|
-
uid: "49a449d8aaa9dd58f90a623d4b9dbcae235bf92a",
|
|
19
|
-
cookieDomain: "",
|
|
20
|
-
// TODO: Change this url to "http://localhost:8000" for local development
|
|
21
|
-
avalancheCollector: "https://snowplow-collector-staging.simplybusiness.com",
|
|
22
|
-
appId: "us-chopin",
|
|
23
|
-
includeGAContext: true,
|
|
24
|
-
eventMethod: "post",
|
|
25
|
-
postPath: "/com.simplybusiness/events",
|
|
26
|
-
trackActivity: true,
|
|
27
|
-
trackPageView: true,
|
|
28
|
-
pageViewContext: {
|
|
29
|
-
schema: "iglu:uk.co.simplybusiness/journey_context/jsonschema/1-0-0",
|
|
30
|
-
data: {
|
|
31
|
-
site: "simplybusiness_us",
|
|
32
|
-
vertical: "usa",
|
|
33
|
-
super_segment: "Unknown",
|
|
34
|
-
primary_detail: "Lawn care services",
|
|
35
|
-
journey_name: "usa",
|
|
36
|
-
journey_id: "666ff79d90abbc3582e496da",
|
|
37
|
-
page_step_name: "thank_you_ssr",
|
|
38
|
-
page_step_depth: -1
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
distributionChannelContext: {
|
|
42
|
-
schema: "iglu:com.simplybusiness/distribution_channel_context/jsonschema/1-0-0",
|
|
43
|
-
data: {
|
|
44
|
-
service_channel_identifier: "simplybusiness_us"
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
serviceChannelContext: {
|
|
48
|
-
schema: "iglu:com.simplybusiness/service_channel_context/jsonschema/1-0-0",
|
|
49
|
-
data: {
|
|
50
|
-
service_channel_identifier: "simplybusiness_us"
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
forceSecureTracker: true
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
//# sourceMappingURL=scripts-mock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mocks/scripts-mock.ts"],"sourcesContent":["export const pageData = {\n scripts: [\n {\n metadata: { name: \"snowplow\" },\n props: {\n uid: \"49a449d8aaa9dd58f90a623d4b9dbcae235bf92a\",\n cookieDomain: \"\",\n // TODO: Change this url to \"http://localhost:8000\" for local development\n avalancheCollector:\n \"https://snowplow-collector-staging.simplybusiness.com\",\n appId: \"us-chopin\",\n includeGAContext: true,\n eventMethod: \"post\",\n postPath: \"/com.simplybusiness/events\",\n trackActivity: true,\n trackPageView: true,\n pageViewContext: {\n schema: \"iglu:uk.co.simplybusiness/journey_context/jsonschema/1-0-0\",\n data: {\n site: \"simplybusiness_us\",\n vertical: \"usa\",\n super_segment: \"Unknown\",\n primary_detail: \"Lawn care services\",\n journey_name: \"usa\",\n journey_id: \"666ff79d90abbc3582e496da\",\n page_step_name: \"thank_you_ssr\",\n page_step_depth: -1,\n },\n },\n distributionChannelContext: {\n schema:\n \"iglu:com.simplybusiness/distribution_channel_context/jsonschema/1-0-0\",\n data: { service_channel_identifier: \"simplybusiness_us\" },\n },\n serviceChannelContext: {\n schema:\n \"iglu:com.simplybusiness/service_channel_context/jsonschema/1-0-0\",\n data: { service_channel_identifier: \"simplybusiness_us\" },\n },\n forceSecureTracker: true,\n },\n },\n ],\n};\n"],"names":["pageData","scripts","metadata","name","props","uid","cookieDomain","avalancheCollector","appId","includeGAContext","eventMethod","postPath","trackActivity","trackPageView","pageViewContext","schema","data","site","vertical","super_segment","primary_detail","journey_name","journey_id","page_step_name","page_step_depth","distributionChannelContext","service_channel_identifier","serviceChannelContext","forceSecureTracker"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,WAAW;IACtBC,SAAS;QACP;YACEC,UAAU;gBAAEC,MAAM;YAAW;YAC7BC,OAAO;gBACLC,KAAK;gBACLC,cAAc;gBACd,yEAAyE;gBACzEC,oBACE;gBACFC,OAAO;gBACPC,kBAAkB;gBAClBC,aAAa;gBACbC,UAAU;gBACVC,eAAe;gBACfC,eAAe;gBACfC,iBAAiB;oBACfC,QAAQ;oBACRC,MAAM;wBACJC,MAAM;wBACNC,UAAU;wBACVC,eAAe;wBACfC,gBAAgB;wBAChBC,cAAc;wBACdC,YAAY;wBACZC,gBAAgB;wBAChBC,iBAAiB,CAAC;oBACpB;gBACF;gBACAC,4BAA4B;oBAC1BV,QACE;oBACFC,MAAM;wBAAEU,4BAA4B;oBAAoB;gBAC1D;gBACAC,uBAAuB;oBACrBZ,QACE;oBACFC,MAAM;wBAAEU,4BAA4B;oBAAoB;gBAC1D;gBACAE,oBAAoB;YACtB;QACF;KACD;AACH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mocks/snowplowBrowserTrackerMock.js"],"sourcesContent":["/**\n * Mocking this module prevents requests being sent to\n * Snowplow which causes CORS errors in the test enviornment.\n */\n\njest.mock(\"@snowplow/browser-tracker\");\n"],"names":["jest","mock"],"mappings":"AAAA;;;CAGC;AAEDA,KAAKC,IAAI,CAAC"}
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "Snowplow", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return Snowplow;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _browsertracker = require("@snowplow/browser-tracker");
|
|
12
|
-
const _contexts = require("./contexts");
|
|
13
|
-
function _define_property(obj, key, value) {
|
|
14
|
-
if (key in obj) {
|
|
15
|
-
Object.defineProperty(obj, key, {
|
|
16
|
-
value: value,
|
|
17
|
-
enumerable: true,
|
|
18
|
-
configurable: true,
|
|
19
|
-
writable: true
|
|
20
|
-
});
|
|
21
|
-
} else {
|
|
22
|
-
obj[key] = value;
|
|
23
|
-
}
|
|
24
|
-
return obj;
|
|
25
|
-
}
|
|
26
|
-
class Snowplow {
|
|
27
|
-
setContexts(contexts) {
|
|
28
|
-
this.contexts = (0, _contexts.updateIdentityContext)(contexts, this.uid);
|
|
29
|
-
this.pvContext = Object.values(this.contexts);
|
|
30
|
-
this.structContext = (0, _contexts.makeContexts)([
|
|
31
|
-
"distributionChannelContext",
|
|
32
|
-
"serviceChannelContext"
|
|
33
|
-
], this.contexts);
|
|
34
|
-
return this;
|
|
35
|
-
}
|
|
36
|
-
// Send a page view event
|
|
37
|
-
async trackView(event) {
|
|
38
|
-
if (this.trackPageView) {
|
|
39
|
-
await (0, _browsertracker.trackPageView)({
|
|
40
|
-
...event,
|
|
41
|
-
context: this.pvContext
|
|
42
|
-
}, [
|
|
43
|
-
this.avalancheTrackerName
|
|
44
|
-
]);
|
|
45
|
-
}
|
|
46
|
-
return this;
|
|
47
|
-
}
|
|
48
|
-
// Send a structured event with contexts
|
|
49
|
-
async trackEvent(event) {
|
|
50
|
-
await (0, _browsertracker.trackStructEvent)({
|
|
51
|
-
...event,
|
|
52
|
-
context: this.structContext
|
|
53
|
-
}, [
|
|
54
|
-
this.bronzeAvalancheTrackerName
|
|
55
|
-
]);
|
|
56
|
-
return this;
|
|
57
|
-
}
|
|
58
|
-
// Send a custom event with defined schema and optional contexts
|
|
59
|
-
async trackUnstructEvent(event, contexts) {
|
|
60
|
-
if (!event) {
|
|
61
|
-
return this;
|
|
62
|
-
}
|
|
63
|
-
if (contexts && Array.isArray(contexts) && contexts.length > 0) {
|
|
64
|
-
// Add context to the event
|
|
65
|
-
const context = (0, _contexts.makeContexts)(contexts, this.contexts);
|
|
66
|
-
await (0, _browsertracker.trackSelfDescribingEvent)({
|
|
67
|
-
event,
|
|
68
|
-
context
|
|
69
|
-
}, [
|
|
70
|
-
this.avalancheTrackerName
|
|
71
|
-
]);
|
|
72
|
-
} else {
|
|
73
|
-
await (0, _browsertracker.trackSelfDescribingEvent)({
|
|
74
|
-
event
|
|
75
|
-
}, [
|
|
76
|
-
this.avalancheTrackerName
|
|
77
|
-
]);
|
|
78
|
-
}
|
|
79
|
-
return this;
|
|
80
|
-
}
|
|
81
|
-
addEventHandlers(eventDefinitions) {
|
|
82
|
-
// Add server context to makePayload functions
|
|
83
|
-
const context = this.serverData;
|
|
84
|
-
eventDefinitions.forEach(({ name, type, makePayload, contexts })=>{
|
|
85
|
-
// Convert type into relevant function
|
|
86
|
-
if (type === "structured") {
|
|
87
|
-
this.addEventHandler(name, (params)=>{
|
|
88
|
-
this.trackEvent(makePayload({
|
|
89
|
-
...params,
|
|
90
|
-
context
|
|
91
|
-
}));
|
|
92
|
-
});
|
|
93
|
-
} else {
|
|
94
|
-
this.addEventHandler(name, (params)=>{
|
|
95
|
-
const payload = makePayload({
|
|
96
|
-
...params,
|
|
97
|
-
context
|
|
98
|
-
});
|
|
99
|
-
if (contexts && Array.isArray(contexts) && contexts.length > 0) {
|
|
100
|
-
this.trackUnstructEvent(payload, contexts);
|
|
101
|
-
} else {
|
|
102
|
-
this.trackUnstructEvent(payload);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
return this;
|
|
108
|
-
}
|
|
109
|
-
addEventHandler(name, handler) {
|
|
110
|
-
this.eventHandlers[name] = handler;
|
|
111
|
-
return this;
|
|
112
|
-
}
|
|
113
|
-
removeEventHandler(name) {
|
|
114
|
-
delete this.eventHandlers[name];
|
|
115
|
-
return this;
|
|
116
|
-
}
|
|
117
|
-
trigger(name, params) {
|
|
118
|
-
const handler = this.eventHandlers[name];
|
|
119
|
-
if (Object.prototype.hasOwnProperty.call(this.eventHandlers, name) && typeof handler === "function") {
|
|
120
|
-
handler(params);
|
|
121
|
-
}
|
|
122
|
-
return this;
|
|
123
|
-
}
|
|
124
|
-
static getInstance(props) {
|
|
125
|
-
if (!Snowplow.instance) {
|
|
126
|
-
Snowplow.instance = new Snowplow(props);
|
|
127
|
-
}
|
|
128
|
-
return Snowplow.instance;
|
|
129
|
-
}
|
|
130
|
-
constructor(props){
|
|
131
|
-
var _props_pageViewContext;
|
|
132
|
-
_define_property(this, "avalancheTrackerName", "sb-ava");
|
|
133
|
-
_define_property(this, "bronzeAvalancheTrackerName", "sb-ava-br");
|
|
134
|
-
_define_property(this, "pvAvalancheTrackerName", "sb-ava-pv");
|
|
135
|
-
_define_property(this, "uid", "");
|
|
136
|
-
_define_property(this, "trackPageView", false);
|
|
137
|
-
_define_property(this, "contexts", {});
|
|
138
|
-
_define_property(this, "pvContext", []);
|
|
139
|
-
_define_property(this, "structContext", []);
|
|
140
|
-
_define_property(this, "serverData", {});
|
|
141
|
-
_define_property(this, "eventHandlers", {});
|
|
142
|
-
if (!props) return;
|
|
143
|
-
const { appId, cookieDomain, avalancheCollector, eventMethod, uid, postPath, trackPageView: tpv } = props;
|
|
144
|
-
this.uid = uid;
|
|
145
|
-
this.trackPageView = tpv;
|
|
146
|
-
this.serverData = (props === null || props === void 0 ? void 0 : (_props_pageViewContext = props.pageViewContext) === null || _props_pageViewContext === void 0 ? void 0 : _props_pageViewContext.data) || {};
|
|
147
|
-
// Set options
|
|
148
|
-
const stateStorageStrategy = "cookieAndLocalStorage";
|
|
149
|
-
const baseOptions = {
|
|
150
|
-
appId,
|
|
151
|
-
cookieDomain,
|
|
152
|
-
eventMethod,
|
|
153
|
-
stateStorageStrategy,
|
|
154
|
-
postPath
|
|
155
|
-
};
|
|
156
|
-
// Initialize trackers
|
|
157
|
-
(0, _browsertracker.newTracker)(this.avalancheTrackerName, avalancheCollector, baseOptions);
|
|
158
|
-
(0, _browsertracker.newTracker)(this.bronzeAvalancheTrackerName, avalancheCollector, baseOptions);
|
|
159
|
-
// Page view tracker
|
|
160
|
-
(0, _browsertracker.newTracker)(this.pvAvalancheTrackerName, avalancheCollector, {
|
|
161
|
-
...baseOptions,
|
|
162
|
-
eventMethod: eventMethod === "post" ? "beacon" : eventMethod
|
|
163
|
-
});
|
|
164
|
-
(0, _browsertracker.setCookiePath)("/");
|
|
165
|
-
if (uid) {
|
|
166
|
-
(0, _browsertracker.setUserId)(uid);
|
|
167
|
-
}
|
|
168
|
-
// Create a singleton instance
|
|
169
|
-
Snowplow.instance = this;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
_define_property(Snowplow, "instance", void 0);
|
|
173
|
-
|
|
174
|
-
//# sourceMappingURL=Snowplow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/snowplow/Snowplow.ts"],"sourcesContent":["import {\n PageViewEvent,\n StructuredEvent,\n TrackerConfiguration,\n newTracker,\n setCookiePath,\n setUserId,\n trackPageView,\n trackSelfDescribingEvent,\n trackStructEvent,\n} from \"@snowplow/browser-tracker\";\nimport { makeContexts, updateIdentityContext } from \"./contexts\";\nimport { EventDefinition, SerialisedEvent, TrackingProps } from \"./types\";\n\nexport type FrontOfficeStructuredEvent = StructuredEvent & {\n serviceChannelIdentifier: string;\n};\n\n/**\n * This class is an abstraction which wraps Snowplow\n * and exposes common methods with other services:\n * - trackEvent : sends a standard payload\n * - trackUnstructEvent : sends a payload for custom schema\n */\nexport class Snowplow {\n avalancheTrackerName = \"sb-ava\";\n\n bronzeAvalancheTrackerName = \"sb-ava-br\";\n\n pvAvalancheTrackerName = \"sb-ava-pv\";\n\n uid: unknown = \"\";\n\n trackPageView: boolean = false;\n\n contexts: Record<string, SerialisedEvent> = {};\n\n pvContext: SerialisedEvent[] = [];\n\n structContext: SerialisedEvent[] = [];\n\n serverData: Record<string, unknown> = {};\n\n eventHandlers: Record<string, (params?: Record<string, unknown>) => void> =\n {};\n\n static instance: Snowplow | undefined;\n\n constructor(props?: TrackingProps) {\n if (!props) return;\n\n const {\n appId,\n cookieDomain,\n avalancheCollector,\n eventMethod,\n uid,\n postPath,\n trackPageView: tpv,\n } = props;\n this.uid = uid;\n this.trackPageView = tpv;\n this.serverData = props?.pageViewContext?.data || {};\n\n // Set options\n const stateStorageStrategy = \"cookieAndLocalStorage\";\n const baseOptions: TrackerConfiguration = {\n appId,\n cookieDomain,\n eventMethod,\n stateStorageStrategy,\n postPath,\n };\n // Initialize trackers\n newTracker(this.avalancheTrackerName, avalancheCollector, baseOptions);\n\n newTracker(\n this.bronzeAvalancheTrackerName,\n avalancheCollector,\n baseOptions,\n );\n\n // Page view tracker\n newTracker(this.pvAvalancheTrackerName, avalancheCollector, {\n ...baseOptions,\n eventMethod: eventMethod === \"post\" ? \"beacon\" : eventMethod,\n });\n\n setCookiePath(\"/\");\n if (uid) {\n setUserId(uid);\n }\n // Create a singleton instance\n Snowplow.instance = this;\n }\n\n setContexts(contexts: Record<string, SerialisedEvent>) {\n this.contexts = updateIdentityContext(contexts, this.uid);\n this.pvContext = Object.values(this.contexts);\n this.structContext = makeContexts(\n [\"distributionChannelContext\", \"serviceChannelContext\"],\n this.contexts,\n );\n return this;\n }\n\n // Send a page view event\n async trackView(event?: PageViewEvent) {\n if (this.trackPageView) {\n await trackPageView({ ...event, context: this.pvContext }, [\n this.avalancheTrackerName,\n ]);\n }\n return this;\n }\n\n // Send a structured event with contexts\n async trackEvent(event: StructuredEvent) {\n await trackStructEvent({ ...event, context: this.structContext }, [\n this.bronzeAvalancheTrackerName,\n ]);\n return this;\n }\n\n // Send a custom event with defined schema and optional contexts\n async trackUnstructEvent(event: SerialisedEvent, contexts?: string[]) {\n if (!event) {\n return this;\n }\n\n if (contexts && Array.isArray(contexts) && contexts.length > 0) {\n // Add context to the event\n const context = makeContexts(contexts!, this.contexts);\n\n await trackSelfDescribingEvent({ event, context }, [\n this.avalancheTrackerName,\n ]);\n } else {\n await trackSelfDescribingEvent({ event }, [this.avalancheTrackerName]);\n }\n return this;\n }\n\n addEventHandlers(eventDefinitions: EventDefinition[]) {\n // Add server context to makePayload functions\n const context = this.serverData;\n\n eventDefinitions.forEach(({ name, type, makePayload, contexts }) => {\n // Convert type into relevant function\n if (type === \"structured\") {\n this.addEventHandler(name, (params?: Record<string, unknown>) => {\n this.trackEvent(\n makePayload({\n ...params,\n context,\n }) as StructuredEvent,\n );\n });\n } else {\n this.addEventHandler(name, (params?: Record<string, unknown>) => {\n const payload = makePayload({\n ...params,\n context,\n }) as SerialisedEvent;\n\n if (contexts && Array.isArray(contexts) && contexts.length > 0) {\n this.trackUnstructEvent(payload, contexts);\n } else {\n this.trackUnstructEvent(payload);\n }\n });\n }\n });\n return this;\n }\n\n private addEventHandler(\n name: string,\n handler: (params?: Record<string, unknown>) => void,\n ) {\n this.eventHandlers[name] = handler;\n return this;\n }\n\n private removeEventHandler(name: string) {\n delete this.eventHandlers[name];\n return this;\n }\n\n trigger(name: string, params?: Record<string, unknown>) {\n const handler = this.eventHandlers[name];\n\n if (\n Object.prototype.hasOwnProperty.call(this.eventHandlers, name) &&\n typeof handler === \"function\"\n ) {\n handler(params);\n }\n return this;\n }\n\n static getInstance(props?: TrackingProps) {\n if (!Snowplow.instance) {\n Snowplow.instance = new Snowplow(props);\n }\n return Snowplow.instance;\n }\n}\n"],"names":["Snowplow","setContexts","contexts","updateIdentityContext","uid","pvContext","Object","values","structContext","makeContexts","trackView","event","trackPageView","context","avalancheTrackerName","trackEvent","trackStructEvent","bronzeAvalancheTrackerName","trackUnstructEvent","Array","isArray","length","trackSelfDescribingEvent","addEventHandlers","eventDefinitions","serverData","forEach","name","type","makePayload","addEventHandler","params","payload","handler","eventHandlers","removeEventHandler","trigger","prototype","hasOwnProperty","call","getInstance","props","instance","constructor","pvAvalancheTrackerName","appId","cookieDomain","avalancheCollector","eventMethod","postPath","tpv","pageViewContext","data","stateStorageStrategy","baseOptions","newTracker","setCookiePath","setUserId"],"mappings":"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"}
|