@simplybusiness/services 2.3.0 → 2.3.2
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 +15 -0
- package/dist/cjs/address-lookup/index.js +94 -0
- package/dist/cjs/address-lookup/index.js.map +7 -0
- package/dist/cjs/address-lookup/types.js +19 -0
- package/dist/cjs/address-lookup/types.js.map +7 -0
- package/dist/cjs/airbrake/index.js +64 -0
- package/dist/cjs/airbrake/index.js.map +7 -0
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/meta.json +801 -2
- package/dist/cjs/mocks/eventDefinitions.js +246 -0
- package/dist/cjs/mocks/eventDefinitions.js.map +7 -0
- package/dist/cjs/mocks/scripts-mock.js +67 -0
- package/dist/cjs/mocks/scripts-mock.js.map +7 -0
- package/dist/cjs/snowplow/Snowplow.js +197 -0
- package/dist/cjs/snowplow/Snowplow.js.map +7 -0
- package/dist/cjs/snowplow/SnowplowContext.js +1315 -0
- package/dist/cjs/snowplow/SnowplowContext.js.map +7 -0
- package/dist/cjs/snowplow/constants.js +27 -0
- package/dist/cjs/snowplow/constants.js.map +7 -0
- package/dist/cjs/snowplow/contexts.js +95 -0
- package/dist/cjs/snowplow/contexts.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/base.js +92 -0
- package/dist/cjs/snowplow/event-definitions/base.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/coverage-selection.js +61 -0
- package/dist/cjs/snowplow/event-definitions/coverage-selection.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/index.js +1069 -0
- package/dist/cjs/snowplow/event-definitions/index.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/intervention.js +59 -0
- package/dist/cjs/snowplow/event-definitions/intervention.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/personalised_cover.js +309 -0
- package/dist/cjs/snowplow/event-definitions/personalised_cover.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/qcp.js +379 -0
- package/dist/cjs/snowplow/event-definitions/qcp.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/questionnaire/questionnaire.js +390 -0
- package/dist/cjs/snowplow/event-definitions/questionnaire/questionnaire.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/questionnaire/redaction.js +165 -0
- package/dist/cjs/snowplow/event-definitions/questionnaire/redaction.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/referral.js +42 -0
- package/dist/cjs/snowplow/event-definitions/referral.js.map +7 -0
- package/dist/cjs/snowplow/event-definitions/test-utils.js +33 -0
- package/dist/cjs/snowplow/event-definitions/test-utils.js.map +7 -0
- package/dist/cjs/snowplow/getSnowplowConfig.js +27 -0
- package/dist/cjs/snowplow/getSnowplowConfig.js.map +7 -0
- package/dist/cjs/snowplow/index.js +1330 -0
- package/dist/cjs/snowplow/index.js.map +7 -0
- package/dist/cjs/snowplow/types.js +19 -0
- package/dist/cjs/snowplow/types.js.map +7 -0
- package/dist/cjs/utils/index.js +63 -0
- package/dist/cjs/utils/index.js.map +7 -0
- package/dist/cjs/utils/isObject.js +29 -0
- package/dist/cjs/utils/isObject.js.map +7 -0
- package/dist/cjs/utils/testUtils.js +1372 -0
- package/dist/cjs/utils/testUtils.js.map +7 -0
- package/dist/cjs/utils/text.js +62 -0
- package/dist/cjs/utils/text.js.map +7 -0
- package/dist/esm/address-lookup/index.js +7 -0
- package/dist/esm/address-lookup/index.js.map +7 -0
- package/dist/esm/address-lookup/types.js +1 -0
- package/dist/esm/address-lookup/types.js.map +7 -0
- package/dist/esm/airbrake/index.js +9 -0
- package/dist/esm/airbrake/index.js.map +7 -0
- package/dist/esm/chunk-3SO3SL37.js +150 -0
- package/dist/esm/chunk-3SO3SL37.js.map +7 -0
- package/dist/esm/chunk-75UX5UWV.js +47 -0
- package/dist/esm/chunk-75UX5UWV.js.map +7 -0
- package/dist/esm/chunk-BJUWIK7N.js +1 -0
- package/dist/esm/chunk-BJUWIK7N.js.map +7 -0
- package/dist/esm/chunk-BYVY7UWR.js +1 -0
- package/dist/esm/chunk-BYVY7UWR.js.map +7 -0
- package/dist/esm/chunk-EDKZP2NB.js +165 -0
- package/dist/esm/chunk-EDKZP2NB.js.map +7 -0
- package/dist/esm/chunk-JILHOFBG.js +7 -0
- package/dist/esm/chunk-JILHOFBG.js.map +7 -0
- package/dist/esm/chunk-LE4F73Z2.js +9 -0
- package/dist/esm/chunk-LE4F73Z2.js.map +7 -0
- package/dist/esm/chunk-LE7RCOBX.js +41 -0
- package/dist/esm/chunk-LE7RCOBX.js.map +7 -0
- package/dist/esm/chunk-MUFIJUOD.js +22 -0
- package/dist/esm/chunk-MUFIJUOD.js.map +7 -0
- package/dist/esm/chunk-NDWXMYSZ.js +7 -0
- package/dist/esm/chunk-NDWXMYSZ.js.map +7 -0
- package/dist/esm/chunk-OFQYDVHG.js +58 -0
- package/dist/esm/chunk-OFQYDVHG.js.map +7 -0
- package/dist/esm/chunk-OQ4YGZGX.js +231 -0
- package/dist/esm/chunk-OQ4YGZGX.js.map +7 -0
- package/dist/esm/chunk-PI33NKP7.js +58 -0
- package/dist/esm/chunk-PI33NKP7.js.map +7 -0
- package/dist/esm/chunk-QKBNCG2F.js +145 -0
- package/dist/esm/chunk-QKBNCG2F.js.map +7 -0
- package/dist/esm/chunk-RLSHHBYY.js +39 -0
- package/dist/esm/chunk-RLSHHBYY.js.map +7 -0
- package/dist/esm/chunk-RUOVZDWE.js +39 -0
- package/dist/esm/chunk-RUOVZDWE.js.map +7 -0
- package/dist/esm/chunk-TN5IBPWO.js +44 -0
- package/dist/esm/chunk-TN5IBPWO.js.map +7 -0
- package/dist/esm/chunk-WGHBTJNE.js +74 -0
- package/dist/esm/chunk-WGHBTJNE.js.map +7 -0
- package/dist/esm/chunk-XNSKPER5.js +44 -0
- package/dist/esm/chunk-XNSKPER5.js.map +7 -0
- package/dist/esm/chunk-XRH22EFX.js +72 -0
- package/dist/esm/chunk-XRH22EFX.js.map +7 -0
- package/dist/esm/chunk-ZEYOXRFM.js +358 -0
- package/dist/esm/chunk-ZEYOXRFM.js.map +7 -0
- package/dist/esm/index.js +42 -1410
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/meta.json +1481 -71
- package/dist/esm/mocks/eventDefinitions.js +86 -0
- package/dist/esm/mocks/eventDefinitions.js.map +7 -0
- package/dist/esm/mocks/scripts-mock.js +7 -0
- package/dist/esm/mocks/scripts-mock.js.map +7 -0
- package/dist/esm/snowplow/Snowplow.js +10 -0
- package/dist/esm/snowplow/Snowplow.js.map +7 -0
- package/dist/esm/snowplow/SnowplowContext.js +23 -0
- package/dist/esm/snowplow/SnowplowContext.js.map +7 -0
- package/dist/esm/snowplow/constants.js +7 -0
- package/dist/esm/snowplow/constants.js.map +7 -0
- package/dist/esm/snowplow/contexts.js +13 -0
- package/dist/esm/snowplow/contexts.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/base.js +7 -0
- package/dist/esm/snowplow/event-definitions/base.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/coverage-selection.js +7 -0
- package/dist/esm/snowplow/event-definitions/coverage-selection.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/index.js +30 -0
- package/dist/esm/snowplow/event-definitions/index.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/intervention.js +7 -0
- package/dist/esm/snowplow/event-definitions/intervention.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/personalised_cover.js +11 -0
- package/dist/esm/snowplow/event-definitions/personalised_cover.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/qcp.js +9 -0
- package/dist/esm/snowplow/event-definitions/qcp.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/questionnaire/questionnaire.js +9 -0
- package/dist/esm/snowplow/event-definitions/questionnaire/questionnaire.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/questionnaire/redaction.js +7 -0
- package/dist/esm/snowplow/event-definitions/questionnaire/redaction.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/referral.js +7 -0
- package/dist/esm/snowplow/event-definitions/referral.js.map +7 -0
- package/dist/esm/snowplow/event-definitions/test-utils.js +12 -0
- package/dist/esm/snowplow/event-definitions/test-utils.js.map +7 -0
- package/dist/esm/snowplow/getSnowplowConfig.js +7 -0
- package/dist/esm/snowplow/getSnowplowConfig.js.map +7 -0
- package/dist/esm/snowplow/index.js +54 -0
- package/dist/esm/snowplow/index.js.map +7 -0
- package/dist/esm/snowplow/types.js +2 -0
- package/dist/esm/snowplow/types.js.map +7 -0
- package/dist/esm/utils/index.js +15 -0
- package/dist/esm/utils/index.js.map +7 -0
- package/dist/esm/utils/isObject.js +7 -0
- package/dist/esm/utils/isObject.js.map +7 -0
- package/dist/esm/utils/testUtils.js +46 -0
- package/dist/esm/utils/testUtils.js.map +7 -0
- package/dist/esm/utils/text.js +12 -0
- package/dist/esm/utils/text.js.map +7 -0
- package/package.json +2 -2
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
personalisedCoverEventDefinitions
|
|
3
|
+
} from "./chunk-3SO3SL37.js";
|
|
4
|
+
import {
|
|
5
|
+
qcpEventDefinitions
|
|
6
|
+
} from "./chunk-ZEYOXRFM.js";
|
|
7
|
+
import {
|
|
8
|
+
referralEventDefinitions
|
|
9
|
+
} from "./chunk-MUFIJUOD.js";
|
|
10
|
+
import {
|
|
11
|
+
questionnaireEventDefinitions
|
|
12
|
+
} from "./chunk-OQ4YGZGX.js";
|
|
13
|
+
import {
|
|
14
|
+
baseEventDefinitions
|
|
15
|
+
} from "./chunk-XRH22EFX.js";
|
|
16
|
+
import {
|
|
17
|
+
coverageSelectionEventDefinitions
|
|
18
|
+
} from "./chunk-LE7RCOBX.js";
|
|
19
|
+
import {
|
|
20
|
+
interventionEventDefinitions
|
|
21
|
+
} from "./chunk-RLSHHBYY.js";
|
|
22
|
+
|
|
23
|
+
// src/snowplow/event-definitions/index.ts
|
|
24
|
+
var eventDefinitions = [
|
|
25
|
+
...baseEventDefinitions,
|
|
26
|
+
...qcpEventDefinitions,
|
|
27
|
+
...referralEventDefinitions,
|
|
28
|
+
...interventionEventDefinitions,
|
|
29
|
+
...questionnaireEventDefinitions,
|
|
30
|
+
...personalisedCoverEventDefinitions,
|
|
31
|
+
...coverageSelectionEventDefinitions
|
|
32
|
+
];
|
|
33
|
+
var qcpPageEvents = [...baseEventDefinitions, ...qcpEventDefinitions];
|
|
34
|
+
var referralPageEvents = [
|
|
35
|
+
...baseEventDefinitions,
|
|
36
|
+
...referralEventDefinitions
|
|
37
|
+
];
|
|
38
|
+
var personalisedCoverPageEvents = [
|
|
39
|
+
...baseEventDefinitions,
|
|
40
|
+
...personalisedCoverEventDefinitions
|
|
41
|
+
];
|
|
42
|
+
var interventionPageEvents = [...interventionEventDefinitions];
|
|
43
|
+
var questionnairePageEvents = [...questionnaireEventDefinitions];
|
|
44
|
+
var coverageSelectionPageEvents = [
|
|
45
|
+
...baseEventDefinitions,
|
|
46
|
+
...coverageSelectionEventDefinitions
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
eventDefinitions,
|
|
51
|
+
qcpPageEvents,
|
|
52
|
+
referralPageEvents,
|
|
53
|
+
personalisedCoverPageEvents,
|
|
54
|
+
interventionPageEvents,
|
|
55
|
+
questionnairePageEvents,
|
|
56
|
+
coverageSelectionPageEvents
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=chunk-PI33NKP7.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/snowplow/event-definitions/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { baseEventDefinitions } from \"./base\";\nimport { interventionEventDefinitions } from \"./intervention\";\nimport { personalisedCoverEventDefinitions } from \"./personalised_cover\";\nimport { qcpEventDefinitions } from \"./qcp\";\nimport { questionnaireEventDefinitions } from \"./questionnaire/questionnaire\";\nimport { coverageSelectionEventDefinitions } from \"./coverage-selection\";\nimport { referralEventDefinitions } from \"./referral\";\n\n// All events (keep up to date with new files)\nexport const eventDefinitions = [\n ...baseEventDefinitions,\n ...qcpEventDefinitions,\n ...referralEventDefinitions,\n ...interventionEventDefinitions,\n ...questionnaireEventDefinitions,\n ...personalisedCoverEventDefinitions,\n ...coverageSelectionEventDefinitions,\n];\n\nexport const qcpPageEvents = [...baseEventDefinitions, ...qcpEventDefinitions];\n\nexport const referralPageEvents = [\n ...baseEventDefinitions,\n ...referralEventDefinitions,\n];\n\nexport const personalisedCoverPageEvents = [\n ...baseEventDefinitions,\n ...personalisedCoverEventDefinitions,\n];\n\nexport const interventionPageEvents = [...interventionEventDefinitions];\n\nexport type { InterventionPayload } from \"./intervention\";\n\nexport const questionnairePageEvents = [...questionnaireEventDefinitions];\n\nexport const coverageSelectionPageEvents = [\n ...baseEventDefinitions,\n ...coverageSelectionEventDefinitions,\n];\n\n// Create a new export for each kind of page below\n// containing just the subset needed for that page\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AASO,IAAM,mBAAmB;AAAA,EAC9B,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,gBAAgB,CAAC,GAAG,sBAAsB,GAAG,mBAAmB;AAEtE,IAAM,qBAAqB;AAAA,EAChC,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,8BAA8B;AAAA,EACzC,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,yBAAyB,CAAC,GAAG,4BAA4B;AAI/D,IAAM,0BAA0B,CAAC,GAAG,6BAA6B;AAEjE,IAAM,8BAA8B;AAAA,EACzC,GAAG;AAAA,EACH,GAAG;AACL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// src/snowplow/event-definitions/questionnaire/redaction.ts
|
|
2
|
+
var PII_ANSWER = [
|
|
3
|
+
"customer_title",
|
|
4
|
+
"customer_first_name",
|
|
5
|
+
"customer_last_name",
|
|
6
|
+
"customer_email_address",
|
|
7
|
+
"preapp_email_address",
|
|
8
|
+
"customer_telephone_number",
|
|
9
|
+
"customer_alternative_telephone_number",
|
|
10
|
+
"uk_address_lookup",
|
|
11
|
+
"uk_correspondence_address_lookup",
|
|
12
|
+
"customer_address_1_pre_quote",
|
|
13
|
+
"customer_address_2_pre_quote",
|
|
14
|
+
"customer_town_pre_quote",
|
|
15
|
+
"customer_postcode_pre_quote",
|
|
16
|
+
"customer_address_1",
|
|
17
|
+
"customer_address_2",
|
|
18
|
+
"customer_town",
|
|
19
|
+
"customer_postcode",
|
|
20
|
+
"address_1_pre_quote",
|
|
21
|
+
"address_2_pre_quote",
|
|
22
|
+
"uk_postcode_pre_quote",
|
|
23
|
+
"town_pre_quote",
|
|
24
|
+
"owner_first_name",
|
|
25
|
+
"owner_last_name",
|
|
26
|
+
"beneficiary_first_name",
|
|
27
|
+
"beneficiary_last_name",
|
|
28
|
+
"gender",
|
|
29
|
+
"dynamic_ssn_fein",
|
|
30
|
+
"ssn",
|
|
31
|
+
"fein",
|
|
32
|
+
"sof_county_court_judgement_online_yes",
|
|
33
|
+
"sof_county_court_judgement_online_no",
|
|
34
|
+
"sof_ccj_count",
|
|
35
|
+
"sof_ccj_value",
|
|
36
|
+
"sof_ccj_date",
|
|
37
|
+
"sof_court_judgement_yes",
|
|
38
|
+
"sof_court_judgement_no",
|
|
39
|
+
"ccj_date",
|
|
40
|
+
"sof_single_ccj_no",
|
|
41
|
+
"sof_single_ccj_yes",
|
|
42
|
+
"sof_ccj_yes",
|
|
43
|
+
"sof_ccj_no",
|
|
44
|
+
"ccj_count",
|
|
45
|
+
"sof_bankrupt_yes",
|
|
46
|
+
"sof_bankrupt_no",
|
|
47
|
+
"sof_multiple_bankruptcies_yes",
|
|
48
|
+
"sof_multiple_bankruptcies_no",
|
|
49
|
+
"bankruptcy_date",
|
|
50
|
+
"sof_single_bankruptcy_no",
|
|
51
|
+
"sof_single_bankruptcy_yes",
|
|
52
|
+
"sof_bankruptcy_yes",
|
|
53
|
+
"sof_bankruptcy_no",
|
|
54
|
+
"bankruptcy_discharged",
|
|
55
|
+
"sof_liquidation_yes",
|
|
56
|
+
"sof_liquidation_no",
|
|
57
|
+
"sof_multiple_liquidations",
|
|
58
|
+
"liquidation_date",
|
|
59
|
+
"sof_criminal_offence_yes",
|
|
60
|
+
"sof_criminal_offence_no",
|
|
61
|
+
"sof_criminal_yes",
|
|
62
|
+
"sof_criminal_no",
|
|
63
|
+
"hcp_date_of_birth_1",
|
|
64
|
+
"hcp_date_of_birth_2",
|
|
65
|
+
"hcp_date_of_birth_3",
|
|
66
|
+
"hcp_date_of_birth_4",
|
|
67
|
+
"hcp_date_of_birth_5",
|
|
68
|
+
"hcp_date_of_birth_6",
|
|
69
|
+
"hcp_date_of_birth_7",
|
|
70
|
+
"hcp_date_of_birth_8",
|
|
71
|
+
"hcp_date_of_birth_9",
|
|
72
|
+
"hcp_date_of_birth_10",
|
|
73
|
+
"sof_previous_claims_yes",
|
|
74
|
+
"sof_previous_claims_no",
|
|
75
|
+
"sof_claims_yes",
|
|
76
|
+
"sof_claims_no",
|
|
77
|
+
"sof_property_claims_in_the_last_5_years_yes",
|
|
78
|
+
"sof_property_claims_in_the_last_5_years_no",
|
|
79
|
+
"sof_property_claims_in_the_last_0_to_4_years_yes",
|
|
80
|
+
"sof_property_claims_in_the_last_0_to_4_years_no",
|
|
81
|
+
"claim_count",
|
|
82
|
+
"sof_number_of_claims",
|
|
83
|
+
"number_of_claims_in_last_5_years",
|
|
84
|
+
"number_of_claims_in_time_owned",
|
|
85
|
+
"date_of_incident_1",
|
|
86
|
+
"date_of_incident_2",
|
|
87
|
+
"date_of_incident_3",
|
|
88
|
+
"date_of_incident_4",
|
|
89
|
+
"date_of_incident_5",
|
|
90
|
+
"type_of_incident_1",
|
|
91
|
+
"type_of_incident_2",
|
|
92
|
+
"type_of_incident_3",
|
|
93
|
+
"type_of_incident_4",
|
|
94
|
+
"type_of_incident_5",
|
|
95
|
+
"incident_value_1",
|
|
96
|
+
"incident_value_2",
|
|
97
|
+
"incident_value_3",
|
|
98
|
+
"incident_value_4",
|
|
99
|
+
"incident_value_5",
|
|
100
|
+
"sof_pollution_disease_claims_yes",
|
|
101
|
+
"sof_pollution_disease_claims_no",
|
|
102
|
+
"sof_potential_claims_yes",
|
|
103
|
+
"sof_potential_claims_no",
|
|
104
|
+
"sof_previous_circumstances_yes",
|
|
105
|
+
"sof_previous_circumstances_no",
|
|
106
|
+
"sof_possible_claims_yes",
|
|
107
|
+
"sof_possible_claims_no",
|
|
108
|
+
"date_of_possible_incident",
|
|
109
|
+
"type_of_possible_incident",
|
|
110
|
+
"possible_incident_value",
|
|
111
|
+
"sof_property_claims_yes",
|
|
112
|
+
"sof_property_claims_no",
|
|
113
|
+
"sof_liability_claims_yes",
|
|
114
|
+
"sof_liability_claims_no",
|
|
115
|
+
"van_registration",
|
|
116
|
+
"sof_disqualified_director_yes",
|
|
117
|
+
"sof_disqualified_director_no",
|
|
118
|
+
"sof_insurance_refused_yes",
|
|
119
|
+
"sof_insurance_refused_no",
|
|
120
|
+
"sof_insurance_declined_yes",
|
|
121
|
+
"sof_insurance_declined_no",
|
|
122
|
+
"insurance_refused"
|
|
123
|
+
];
|
|
124
|
+
var RADIO_ANSWER_FROM_QUESTIONS = [
|
|
125
|
+
"have_secondary_trade_yes",
|
|
126
|
+
"have_secondary_trade_no"
|
|
127
|
+
];
|
|
128
|
+
var ANSWER_SUFFIX_PATTERN = /_(yes|no)$/;
|
|
129
|
+
var redact = (params) => {
|
|
130
|
+
let { question, answer } = params;
|
|
131
|
+
const piiAnswer = new Set(PII_ANSWER);
|
|
132
|
+
const radioAnswerFromQuestions = new Set(RADIO_ANSWER_FROM_QUESTIONS);
|
|
133
|
+
if (piiAnswer.has(question)) {
|
|
134
|
+
answer = "REDACTED";
|
|
135
|
+
question = question?.replace(ANSWER_SUFFIX_PATTERN, "");
|
|
136
|
+
} else if (radioAnswerFromQuestions.has(question)) {
|
|
137
|
+
question = question?.replace(ANSWER_SUFFIX_PATTERN, "");
|
|
138
|
+
}
|
|
139
|
+
return { question, answer };
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export {
|
|
143
|
+
redact
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=chunk-QKBNCG2F.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/snowplow/event-definitions/questionnaire/redaction.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ParamsType } from \"../../types\";\n\nconst PII_ANSWER = [\n \"customer_title\",\n \"customer_first_name\",\n \"customer_last_name\",\n \"customer_email_address\",\n \"preapp_email_address\",\n \"customer_telephone_number\",\n \"customer_alternative_telephone_number\",\n \"uk_address_lookup\",\n \"uk_correspondence_address_lookup\",\n \"customer_address_1_pre_quote\",\n \"customer_address_2_pre_quote\",\n \"customer_town_pre_quote\",\n \"customer_postcode_pre_quote\",\n \"customer_address_1\",\n \"customer_address_2\",\n \"customer_town\",\n \"customer_postcode\",\n \"address_1_pre_quote\",\n \"address_2_pre_quote\",\n \"uk_postcode_pre_quote\",\n \"town_pre_quote\",\n \"owner_first_name\",\n \"owner_last_name\",\n \"beneficiary_first_name\",\n \"beneficiary_last_name\",\n \"gender\",\n \"dynamic_ssn_fein\",\n \"ssn\",\n \"fein\",\n \"sof_county_court_judgement_online_yes\",\n \"sof_county_court_judgement_online_no\",\n \"sof_ccj_count\",\n \"sof_ccj_value\",\n \"sof_ccj_date\",\n \"sof_court_judgement_yes\",\n \"sof_court_judgement_no\",\n \"ccj_date\",\n \"sof_single_ccj_no\",\n \"sof_single_ccj_yes\",\n \"sof_ccj_yes\",\n \"sof_ccj_no\",\n \"ccj_count\",\n \"sof_bankrupt_yes\",\n \"sof_bankrupt_no\",\n \"sof_multiple_bankruptcies_yes\",\n \"sof_multiple_bankruptcies_no\",\n \"bankruptcy_date\",\n \"sof_single_bankruptcy_no\",\n \"sof_single_bankruptcy_yes\",\n \"sof_bankruptcy_yes\",\n \"sof_bankruptcy_no\",\n \"bankruptcy_discharged\",\n \"sof_liquidation_yes\",\n \"sof_liquidation_no\",\n \"sof_multiple_liquidations\",\n \"liquidation_date\",\n \"sof_criminal_offence_yes\",\n \"sof_criminal_offence_no\",\n \"sof_criminal_yes\",\n \"sof_criminal_no\",\n \"hcp_date_of_birth_1\",\n \"hcp_date_of_birth_2\",\n \"hcp_date_of_birth_3\",\n \"hcp_date_of_birth_4\",\n \"hcp_date_of_birth_5\",\n \"hcp_date_of_birth_6\",\n \"hcp_date_of_birth_7\",\n \"hcp_date_of_birth_8\",\n \"hcp_date_of_birth_9\",\n \"hcp_date_of_birth_10\",\n \"sof_previous_claims_yes\",\n \"sof_previous_claims_no\",\n \"sof_claims_yes\",\n \"sof_claims_no\",\n \"sof_property_claims_in_the_last_5_years_yes\",\n \"sof_property_claims_in_the_last_5_years_no\",\n \"sof_property_claims_in_the_last_0_to_4_years_yes\",\n \"sof_property_claims_in_the_last_0_to_4_years_no\",\n \"claim_count\",\n \"sof_number_of_claims\",\n \"number_of_claims_in_last_5_years\",\n \"number_of_claims_in_time_owned\",\n \"date_of_incident_1\",\n \"date_of_incident_2\",\n \"date_of_incident_3\",\n \"date_of_incident_4\",\n \"date_of_incident_5\",\n \"type_of_incident_1\",\n \"type_of_incident_2\",\n \"type_of_incident_3\",\n \"type_of_incident_4\",\n \"type_of_incident_5\",\n \"incident_value_1\",\n \"incident_value_2\",\n \"incident_value_3\",\n \"incident_value_4\",\n \"incident_value_5\",\n \"sof_pollution_disease_claims_yes\",\n \"sof_pollution_disease_claims_no\",\n \"sof_potential_claims_yes\",\n \"sof_potential_claims_no\",\n \"sof_previous_circumstances_yes\",\n \"sof_previous_circumstances_no\",\n \"sof_possible_claims_yes\",\n \"sof_possible_claims_no\",\n \"date_of_possible_incident\",\n \"type_of_possible_incident\",\n \"possible_incident_value\",\n \"sof_property_claims_yes\",\n \"sof_property_claims_no\",\n \"sof_liability_claims_yes\",\n \"sof_liability_claims_no\",\n \"van_registration\",\n \"sof_disqualified_director_yes\",\n \"sof_disqualified_director_no\",\n \"sof_insurance_refused_yes\",\n \"sof_insurance_refused_no\",\n \"sof_insurance_declined_yes\",\n \"sof_insurance_declined_no\",\n \"insurance_refused\",\n];\n\nconst RADIO_ANSWER_FROM_QUESTIONS = [\n \"have_secondary_trade_yes\",\n \"have_secondary_trade_no\",\n];\n\nconst ANSWER_SUFFIX_PATTERN = /_(yes|no)$/;\n\nexport const redact = (params: ParamsType) => {\n let { question, answer } = params;\n\n const piiAnswer = new Set(PII_ANSWER);\n const radioAnswerFromQuestions = new Set(RADIO_ANSWER_FROM_QUESTIONS);\n\n if (piiAnswer.has(question)) {\n answer = \"REDACTED\";\n question = question?.replace(ANSWER_SUFFIX_PATTERN, \"\");\n } else if (radioAnswerFromQuestions.has(question)) {\n question = question?.replace(ANSWER_SUFFIX_PATTERN, \"\");\n }\n return { question, answer };\n};\n"],
|
|
5
|
+
"mappings": ";AAEA,IAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,8BAA8B;AAAA,EAClC;AAAA,EACA;AACF;AAEA,IAAM,wBAAwB;AAEvB,IAAM,SAAS,CAAC,WAAuB;AAC5C,MAAI,EAAE,UAAU,OAAO,IAAI;AAE3B,QAAM,YAAY,IAAI,IAAI,UAAU;AACpC,QAAM,2BAA2B,IAAI,IAAI,2BAA2B;AAEpE,MAAI,UAAU,IAAI,QAAQ,GAAG;AAC3B,aAAS;AACT,eAAW,UAAU,QAAQ,uBAAuB,EAAE;AAAA,EACxD,WAAW,yBAAyB,IAAI,QAAQ,GAAG;AACjD,eAAW,UAAU,QAAQ,uBAAuB,EAAE;AAAA,EACxD;AACA,SAAO,EAAE,UAAU,OAAO;AAC5B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// src/snowplow/event-definitions/intervention.ts
|
|
2
|
+
var interventionEventDefinitions = [
|
|
3
|
+
{
|
|
4
|
+
name: "interventionInteractionCompleted",
|
|
5
|
+
type: "unstructured",
|
|
6
|
+
makePayload: (params) => {
|
|
7
|
+
const {
|
|
8
|
+
interventionName,
|
|
9
|
+
userUniqueIdentifier,
|
|
10
|
+
userUniqueIdentifierType,
|
|
11
|
+
action,
|
|
12
|
+
site
|
|
13
|
+
} = params;
|
|
14
|
+
return {
|
|
15
|
+
schema: "iglu:com.simplybusiness/intervention_interaction_completed/jsonschema/2-1-0",
|
|
16
|
+
data: {
|
|
17
|
+
intervention_name: interventionName,
|
|
18
|
+
user_unique_identifier: userUniqueIdentifier,
|
|
19
|
+
user_unique_identifier_type: userUniqueIdentifierType,
|
|
20
|
+
action,
|
|
21
|
+
site
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "iaLiveChatInterventionClosed",
|
|
28
|
+
type: "structured",
|
|
29
|
+
makePayload: (_) => ({
|
|
30
|
+
category: "insurance_assistant",
|
|
31
|
+
action: "ia_live_chat_intervention_closed"
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
interventionEventDefinitions
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=chunk-RLSHHBYY.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/snowplow/event-definitions/intervention.ts"],
|
|
4
|
+
"sourcesContent": ["import type { EventDefinition } from \"../types\";\n\ntype InterventionIdTypes = \"duid\"; // Add more values as needed\n\nexport type InterventionPayload = {\n interventionId: string;\n interventionName: string;\n userUniqueIdentifier: string;\n userUniqueIdentifierType: InterventionIdTypes;\n action: string;\n site?: string;\n};\n\nexport const interventionEventDefinitions: EventDefinition[] = [\n {\n name: \"interventionInteractionCompleted\",\n type: \"unstructured\",\n makePayload: params => {\n const {\n interventionName,\n userUniqueIdentifier,\n userUniqueIdentifierType,\n action,\n site,\n } = params as InterventionPayload;\n\n return {\n schema:\n \"iglu:com.simplybusiness/intervention_interaction_completed/jsonschema/2-1-0\",\n data: {\n intervention_name: interventionName,\n user_unique_identifier: userUniqueIdentifier,\n user_unique_identifier_type: userUniqueIdentifierType,\n action,\n site,\n },\n };\n },\n },\n {\n name: \"iaLiveChatInterventionClosed\",\n type: \"structured\",\n makePayload: _ => ({\n category: \"insurance_assistant\",\n action: \"ia_live_chat_intervention_closed\",\n }),\n },\n];\n"],
|
|
5
|
+
"mappings": ";AAaO,IAAM,+BAAkD;AAAA,EAC7D;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa,YAAU;AACrB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AAEJ,aAAO;AAAA,QACL,QACE;AAAA,QACF,MAAM;AAAA,UACJ,mBAAmB;AAAA,UACnB,wBAAwB;AAAA,UACxB,6BAA6B;AAAA,UAC7B;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa,QAAM;AAAA,MACjB,UAAU;AAAA,MACV,QAAQ;AAAA,IACV;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isObject
|
|
3
|
+
} from "./chunk-LE4F73Z2.js";
|
|
4
|
+
|
|
5
|
+
// src/utils/text.ts
|
|
6
|
+
var snakeCaseKeys = (object) => Object.entries(object || {}).reduce(
|
|
7
|
+
(acc, [key, value]) => {
|
|
8
|
+
const newKey = camelToSnakeCase(key);
|
|
9
|
+
if (Array.isArray(value) && value.every(isObject)) {
|
|
10
|
+
return {
|
|
11
|
+
...acc,
|
|
12
|
+
[newKey]: value.map((v) => snakeCaseKeys(v))
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (isObject(value)) {
|
|
16
|
+
return {
|
|
17
|
+
...acc,
|
|
18
|
+
[newKey]: snakeCaseKeys(value)
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
...acc,
|
|
23
|
+
[newKey]: value
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
{}
|
|
27
|
+
);
|
|
28
|
+
var snakeCase = (text = "") => text.toLowerCase().replace(/ /g, "_");
|
|
29
|
+
var camelToSnakeCase = (text) => text.charAt(0).toLowerCase() + text.slice(1).replace(
|
|
30
|
+
/(\[.*?\])|[A-Z]/g,
|
|
31
|
+
(match, group) => group ? match : `_${match.toLowerCase()}`
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
snakeCaseKeys,
|
|
36
|
+
snakeCase,
|
|
37
|
+
camelToSnakeCase
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=chunk-RUOVZDWE.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/text.ts"],
|
|
4
|
+
"sourcesContent": ["import { isObject } from \".\";\n\n// Deeply converts keys in an object to snake_case\nexport const snakeCaseKeys = (object: Record<string, unknown>) =>\n Object.entries(object || {}).reduce(\n (acc: Record<string, unknown>, [key, value]): Record<string, unknown> => {\n const newKey = camelToSnakeCase(key);\n\n if (Array.isArray(value) && value.every(isObject)) {\n return {\n ...acc,\n [newKey]: value.map(v => snakeCaseKeys(v)),\n };\n }\n\n if (isObject(value)) {\n return {\n ...acc,\n [newKey]: snakeCaseKeys(value),\n };\n }\n\n return {\n ...acc,\n [newKey]: value,\n };\n },\n {},\n );\n\nexport const snakeCase = (text = \"\"): string =>\n text.toLowerCase().replace(/ /g, \"_\");\n\nexport const camelToSnakeCase = (text: string) =>\n text.charAt(0).toLowerCase() +\n text\n .slice(1)\n .replace(/(\\[.*?\\])|[A-Z]/g, (match, group) =>\n group ? match : `_${match.toLowerCase()}`,\n );\n"],
|
|
5
|
+
"mappings": ";;;;;AAGO,IAAM,gBAAgB,CAAC,WAC5B,OAAO,QAAQ,UAAU,CAAC,CAAC,EAAE;AAAA,EAC3B,CAAC,KAA8B,CAAC,KAAK,KAAK,MAA+B;AACvE,UAAM,SAAS,iBAAiB,GAAG;AAEnC,QAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,QAAQ,GAAG;AACjD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,MAAM,GAAG,MAAM,IAAI,OAAK,cAAc,CAAC,CAAC;AAAA,MAC3C;AAAA,IACF;AAEA,QAAI,SAAS,KAAK,GAAG;AACnB,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,MAAM,GAAG,cAAc,KAAK;AAAA,MAC/B;AAAA,IACF;AAEA,WAAO;AAAA,MACL,GAAG;AAAA,MACH,CAAC,MAAM,GAAG;AAAA,IACZ;AAAA,EACF;AAAA,EACA,CAAC;AACH;AAEK,IAAM,YAAY,CAAC,OAAO,OAC/B,KAAK,YAAY,EAAE,QAAQ,MAAM,GAAG;AAE/B,IAAM,mBAAmB,CAAC,SAC/B,KAAK,OAAO,CAAC,EAAE,YAAY,IAC3B,KACG,MAAM,CAAC,EACP;AAAA,EAAQ;AAAA,EAAoB,CAAC,OAAO,UACnC,QAAQ,QAAQ,IAAI,MAAM,YAAY,CAAC;AACzC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {
|
|
2
|
+
snakeCaseKeys
|
|
3
|
+
} from "./chunk-RUOVZDWE.js";
|
|
4
|
+
|
|
5
|
+
// src/snowplow/contexts.ts
|
|
6
|
+
var getContexts = (config) => {
|
|
7
|
+
const contextEntries = Object.entries(config || {}).filter(([key]) => key.includes("Context") && key !== "includeGAContext").reduce((acc, [key, value]) => {
|
|
8
|
+
if (typeof value === "object") {
|
|
9
|
+
return { ...acc, [key]: snakeCaseKeys({ ...value }) };
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
...acc,
|
|
13
|
+
[key]: snakeCaseKeys({ data: { service_channel_identifier: value } })
|
|
14
|
+
};
|
|
15
|
+
}, {});
|
|
16
|
+
return contextEntries;
|
|
17
|
+
};
|
|
18
|
+
var updateIdentityContext = (contexts, uid) => {
|
|
19
|
+
const index = Object.keys(contexts).findIndex(
|
|
20
|
+
(ctx) => contexts[ctx].schema?.includes("identity_context")
|
|
21
|
+
);
|
|
22
|
+
if (index > -1) {
|
|
23
|
+
const key = Object.keys(contexts)[index];
|
|
24
|
+
return {
|
|
25
|
+
...contexts,
|
|
26
|
+
[key]: {
|
|
27
|
+
...contexts[key],
|
|
28
|
+
data: {
|
|
29
|
+
...contexts[key].data,
|
|
30
|
+
domain_userid: uid
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return contexts;
|
|
36
|
+
};
|
|
37
|
+
var makeContexts = (keys, config) => (keys || []).map((key) => config[key]);
|
|
38
|
+
|
|
39
|
+
export {
|
|
40
|
+
getContexts,
|
|
41
|
+
updateIdentityContext,
|
|
42
|
+
makeContexts
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=chunk-TN5IBPWO.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/snowplow/contexts.ts"],
|
|
4
|
+
"sourcesContent": ["import { snakeCaseKeys } from \"../utils\";\nimport type { SerialisedEvent, TrackingProps } from \"./types\";\n\nexport const getContexts = (\n config: TrackingProps,\n): Record<string, SerialisedEvent> => {\n // Create an object that only contains Context keys\n // and snake_case the keys\n const contextEntries = Object.entries(config || {})\n .filter(([key]) => key.includes(\"Context\") && key !== \"includeGAContext\")\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n return { ...acc, [key]: snakeCaseKeys({ ...value }) };\n }\n return {\n ...acc,\n [key]: snakeCaseKeys({ data: { service_channel_identifier: value } }),\n };\n }, {});\n\n return contextEntries as Record<string, SerialisedEvent>;\n};\n\nexport const updateIdentityContext = (\n contexts: Record<string, SerialisedEvent>,\n uid: unknown,\n): Record<string, SerialisedEvent> => {\n const index = Object.keys(contexts).findIndex(ctx =>\n contexts[ctx].schema?.includes(\"identity_context\"),\n );\n if (index > -1) {\n const key = Object.keys(contexts)[index];\n return {\n ...contexts,\n [key]: {\n ...contexts[key],\n data: {\n ...contexts[key].data,\n domain_userid: uid,\n },\n },\n };\n }\n return contexts;\n};\n\nexport const makeContexts = (\n keys: string[],\n config: Record<string, SerialisedEvent>,\n): SerialisedEvent[] => (keys || []).map(key => config[key]);\n"],
|
|
5
|
+
"mappings": ";;;;;AAGO,IAAM,cAAc,CACzB,WACoC;AAGpC,QAAM,iBAAiB,OAAO,QAAQ,UAAU,CAAC,CAAC,EAC/C,OAAO,CAAC,CAAC,GAAG,MAAM,IAAI,SAAS,SAAS,KAAK,QAAQ,kBAAkB,EACvE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AAC7B,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,cAAc,EAAE,GAAG,MAAM,CAAC,EAAE;AAAA,IACtD;AACA,WAAO;AAAA,MACL,GAAG;AAAA,MACH,CAAC,GAAG,GAAG,cAAc,EAAE,MAAM,EAAE,4BAA4B,MAAM,EAAE,CAAC;AAAA,IACtE;AAAA,EACF,GAAG,CAAC,CAAC;AAEP,SAAO;AACT;AAEO,IAAM,wBAAwB,CACnC,UACA,QACoC;AACpC,QAAM,QAAQ,OAAO,KAAK,QAAQ,EAAE;AAAA,IAAU,SAC5C,SAAS,GAAG,EAAE,QAAQ,SAAS,kBAAkB;AAAA,EACnD;AACA,MAAI,QAAQ,IAAI;AACd,UAAM,MAAM,OAAO,KAAK,QAAQ,EAAE,KAAK;AACvC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,CAAC,GAAG,GAAG;AAAA,QACL,GAAG,SAAS,GAAG;AAAA,QACf,MAAM;AAAA,UACJ,GAAG,SAAS,GAAG,EAAE;AAAA,UACjB,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,eAAe,CAC1B,MACA,YACuB,QAAQ,CAAC,GAAG,IAAI,SAAO,OAAO,GAAG,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/address-lookup/index.ts
|
|
2
|
+
var BASE_URL = "https://api.addressy.com/Capture/Interactive";
|
|
3
|
+
var FIND_URL = `${BASE_URL}/Find/v1.00/json3.ws`;
|
|
4
|
+
var RETRIEVE_URL = `${BASE_URL}/Retrieve/v1.2/json3.ws`;
|
|
5
|
+
var COUNTRIES = ["GB"];
|
|
6
|
+
var LIMIT = 20;
|
|
7
|
+
var AddressLookup = class _AddressLookup {
|
|
8
|
+
constructor({ apiKey, limit, countries }) {
|
|
9
|
+
this.apiKey = apiKey;
|
|
10
|
+
this.limit = limit || LIMIT;
|
|
11
|
+
this.countries = countries || COUNTRIES;
|
|
12
|
+
const countriesParam = this.countries.join(",");
|
|
13
|
+
this.findUrl = `${FIND_URL}?Key=${this.apiKey}&Limit=${this.limit}&Countries=${countriesParam}`;
|
|
14
|
+
this.retrieveUrl = `${RETRIEVE_URL}?Key=${this.apiKey}`;
|
|
15
|
+
}
|
|
16
|
+
static async fetchFromApi(url, handleResponse) {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
fetch(url).then((response) => response.json()).then((data) => resolve(handleResponse(data))).catch((error) => reject(Error(String(error))));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
find(partialAddress) {
|
|
22
|
+
return new Promise((resolve, reject) => {
|
|
23
|
+
fetch(`${this.findUrl}&Text=${partialAddress}`).then((response) => response.json()).then((data) => resolve(this.formatItems(data))).catch((error) => reject(Error(String(error))));
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
findById(id) {
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
fetch(`${this.findUrl}&Container=${id}`).then((response) => response.json()).then((data) => resolve(this.formatItems(data))).catch((error) => reject(Error(String(error))));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
get(id) {
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
fetch(`${this.retrieveUrl}&Id=${id}`).then((response) => response.json()).then((data) => resolve(_AddressLookup.formatUkAddress(data))).catch((error) => reject(Error(String(error))));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
formatItems({ Items }) {
|
|
37
|
+
if (!Items || !Array.isArray(Items)) {
|
|
38
|
+
throw Error("No address found");
|
|
39
|
+
}
|
|
40
|
+
if (Items[0].Error) {
|
|
41
|
+
throw Error(Items[0].Description);
|
|
42
|
+
}
|
|
43
|
+
return Items.map(
|
|
44
|
+
(item) => ({
|
|
45
|
+
id: item.Id,
|
|
46
|
+
label: `${item.Text}, ${item.Description}`,
|
|
47
|
+
value: item.Text,
|
|
48
|
+
// Add a callback to trigger secondary search
|
|
49
|
+
// if the address type is not "Address"
|
|
50
|
+
callback: item.Type === "Address" ? void 0 : () => this.findById(item.Id)
|
|
51
|
+
})
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
static formatUkAddress({ Items }) {
|
|
55
|
+
if (!Items || !Array.isArray(Items)) {
|
|
56
|
+
throw Error("No address found");
|
|
57
|
+
}
|
|
58
|
+
if (Items[0].Error) {
|
|
59
|
+
throw Error(Items[0].Description);
|
|
60
|
+
}
|
|
61
|
+
const { Line1, Line2, City, PostalCode } = Items[0];
|
|
62
|
+
return {
|
|
63
|
+
address_1: Line1,
|
|
64
|
+
address_2: Line2,
|
|
65
|
+
town: City,
|
|
66
|
+
uk_postcode: PostalCode
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export {
|
|
72
|
+
AddressLookup
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-WGHBTJNE.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/address-lookup/index.ts"],
|
|
4
|
+
"sourcesContent": ["import type {\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 const countriesParam = this.countries.join(\",\");\n this.findUrl = `${FIND_URL}?Key=${this.apiKey}&Limit=${this.limit}&Countries=${countriesParam}`;\n this.retrieveUrl = `${RETRIEVE_URL}?Key=${this.apiKey}`;\n }\n\n private static async fetchFromApi<RespType>(\n url: string,\n handleResponse: (data: RespType) => unknown,\n ): Promise<unknown> {\n return new Promise((resolve, reject) => {\n fetch(url)\n .then(response => response.json() as Promise<RespType>)\n .then(data => resolve(handleResponse(data)))\n .catch(error => reject(Error(String(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() as Promise<FindAddressResponse>)\n .then(data => resolve(this.formatItems(data)))\n .catch(error => reject(Error(String(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() as Promise<FindAddressResponse>)\n .then(data => resolve(this.formatItems(data)))\n .catch(error => reject(Error(String(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() as Promise<RetrieveAddressResponse>)\n .then(data => resolve(AddressLookup.formatUkAddress(data)))\n .catch(error => reject(Error(String(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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// src/airbrake/index.ts
|
|
2
|
+
import { Notifier } from "@airbrake/browser";
|
|
3
|
+
var defaultProjectId = 512949;
|
|
4
|
+
var defaultProjectKey = "4e25197d8faea61c10fbb97702200780";
|
|
5
|
+
var notifierInstances = /* @__PURE__ */ new Map();
|
|
6
|
+
var fakeAirbrake = {
|
|
7
|
+
notify: globalThis.process?.env?.NODE_ENV === "test" ? () => {
|
|
8
|
+
} : console.error.bind(console)
|
|
9
|
+
};
|
|
10
|
+
var getAirbrakeEnvironment = () => globalThis.process?.env?.AIRBRAKE_ENV ?? "development";
|
|
11
|
+
var shouldUseAirbrake = () => {
|
|
12
|
+
const env = getAirbrakeEnvironment();
|
|
13
|
+
return env === "staging" || env === "production";
|
|
14
|
+
};
|
|
15
|
+
function getAirbrake(options = {}) {
|
|
16
|
+
const {
|
|
17
|
+
projectId = defaultProjectId,
|
|
18
|
+
projectKey = defaultProjectKey,
|
|
19
|
+
forceSend
|
|
20
|
+
} = options;
|
|
21
|
+
if (!forceSend && !shouldUseAirbrake()) {
|
|
22
|
+
return fakeAirbrake;
|
|
23
|
+
}
|
|
24
|
+
let notifierInstance = notifierInstances.get(projectId);
|
|
25
|
+
if (!notifierInstance) {
|
|
26
|
+
notifierInstance = new Notifier({
|
|
27
|
+
projectId,
|
|
28
|
+
projectKey,
|
|
29
|
+
environment: getAirbrakeEnvironment(),
|
|
30
|
+
instrumentation: {
|
|
31
|
+
onerror: false,
|
|
32
|
+
unhandledrejection: false
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
notifierInstances.set(projectId, notifierInstance);
|
|
36
|
+
}
|
|
37
|
+
return notifierInstance;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export {
|
|
41
|
+
getAirbrakeEnvironment,
|
|
42
|
+
getAirbrake
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=chunk-XNSKPER5.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/airbrake/index.ts"],
|
|
4
|
+
"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\n// Map of project IDs to notifier instances to support multiple Airbrake accounts\nconst notifierInstances = new Map<number, Notifier>();\n\n// Fake notifier which logs to console instead of sending to Airbrake\nconst fakeAirbrake = {\n notify:\n globalThis.process?.env?.NODE_ENV === \"test\"\n ? () => {}\n : console.error.bind(console),\n};\n\n// Get Airbrake environment from AIRBRAKE_ENV, defaulting to \"development\"\nexport const getAirbrakeEnvironment = () =>\n globalThis.process?.env?.AIRBRAKE_ENV ?? \"development\";\n\n// Only send real alerts in staging and production environments\nconst shouldUseAirbrake = () => {\n const env = getAirbrakeEnvironment();\n return env === \"staging\" || env === \"production\";\n};\n\nexport type GetAirbrakeOptions = {\n projectId?: number;\n projectKey?: string;\n forceSend?: boolean;\n};\n\nexport function getAirbrake(options: GetAirbrakeOptions = {}) {\n const {\n projectId = defaultProjectId,\n projectKey = defaultProjectKey,\n forceSend,\n } = options;\n\n if (!forceSend && !shouldUseAirbrake()) {\n return fakeAirbrake;\n }\n\n let notifierInstance = notifierInstances.get(projectId);\n\n if (!notifierInstance) {\n notifierInstance = new Notifier({\n projectId,\n projectKey,\n environment: getAirbrakeEnvironment(),\n instrumentation: {\n onerror: false,\n unhandledrejection: false,\n },\n });\n notifierInstances.set(projectId, notifierInstance);\n }\n\n return notifierInstance;\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,gBAAgB;AAIzB,IAAM,mBAAmB;AACzB,IAAM,oBAAoB;AAG1B,IAAM,oBAAoB,oBAAI,IAAsB;AAGpD,IAAM,eAAe;AAAA,EACnB,QACE,WAAW,SAAS,KAAK,aAAa,SAClC,MAAM;AAAA,EAAC,IACP,QAAQ,MAAM,KAAK,OAAO;AAClC;AAGO,IAAM,yBAAyB,MACpC,WAAW,SAAS,KAAK,gBAAgB;AAG3C,IAAM,oBAAoB,MAAM;AAC9B,QAAM,MAAM,uBAAuB;AACnC,SAAO,QAAQ,aAAa,QAAQ;AACtC;AAQO,SAAS,YAAY,UAA8B,CAAC,GAAG;AAC5D,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA,EACF,IAAI;AAEJ,MAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG;AACtC,WAAO;AAAA,EACT;AAEA,MAAI,mBAAmB,kBAAkB,IAAI,SAAS;AAEtD,MAAI,CAAC,kBAAkB;AACrB,uBAAmB,IAAI,SAAS;AAAA,MAC9B;AAAA,MACA;AAAA,MACA,aAAa,uBAAuB;AAAA,MACpC,iBAAiB;AAAA,QACf,SAAS;AAAA,QACT,oBAAoB;AAAA,MACtB;AAAA,IACF,CAAC;AACD,sBAAkB,IAAI,WAAW,gBAAgB;AAAA,EACnD;AAEA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// src/snowplow/event-definitions/base.ts
|
|
2
|
+
var baseEventDefinitions = [
|
|
3
|
+
// Mobile link in header
|
|
4
|
+
{
|
|
5
|
+
name: "mobileLinkClick",
|
|
6
|
+
type: "structured",
|
|
7
|
+
makePayload: () => ({
|
|
8
|
+
category: "marketing",
|
|
9
|
+
action: "link-click",
|
|
10
|
+
label: "mobile_call_button",
|
|
11
|
+
property: window.location.href
|
|
12
|
+
})
|
|
13
|
+
},
|
|
14
|
+
// Operating hours link in footer
|
|
15
|
+
{
|
|
16
|
+
name: "operatingHoursClick",
|
|
17
|
+
type: "unstructured",
|
|
18
|
+
makePayload: () => ({
|
|
19
|
+
schema: "iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",
|
|
20
|
+
data: {
|
|
21
|
+
schema: "iglu:com.simplybusiness/operating_hours_clicked/jsonschema/1-0-2",
|
|
22
|
+
data: {}
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "progressbarClicked",
|
|
28
|
+
type: "unstructured",
|
|
29
|
+
makePayload: (params) => {
|
|
30
|
+
const {
|
|
31
|
+
section,
|
|
32
|
+
context,
|
|
33
|
+
fromStepIndex,
|
|
34
|
+
fromStepName,
|
|
35
|
+
stepIndex,
|
|
36
|
+
stepName
|
|
37
|
+
} = params;
|
|
38
|
+
return {
|
|
39
|
+
schema: "iglu:com.simplybusiness/progressbar_clicked/jsonschema/1-1-0",
|
|
40
|
+
data: {
|
|
41
|
+
source_page_index: fromStepIndex,
|
|
42
|
+
source_page_name: fromStepName,
|
|
43
|
+
page_index: stepIndex,
|
|
44
|
+
page_name: stepName,
|
|
45
|
+
site: context.site,
|
|
46
|
+
section_name: section,
|
|
47
|
+
vertical: context.vertical
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
// Zendesk help chat link
|
|
53
|
+
{
|
|
54
|
+
name: "helpChatLinkClicked",
|
|
55
|
+
type: "structured",
|
|
56
|
+
makePayload: (params) => {
|
|
57
|
+
const { label } = params;
|
|
58
|
+
return {
|
|
59
|
+
category: "help chat for question",
|
|
60
|
+
action: "help_chat_for_question_clicked",
|
|
61
|
+
label,
|
|
62
|
+
property: window.location.href
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
contexts: ["serviceChannelContext"]
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
export {
|
|
70
|
+
baseEventDefinitions
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=chunk-XRH22EFX.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/snowplow/event-definitions/base.ts"],
|
|
4
|
+
"sourcesContent": ["import type { EventDefinition, ParamsType } from \"../types\";\n/**\n * Event definitions for Snowplow\n * @type {EventDefinition[]}\n * @property {string} name - The name of the event, to use when triggering\n * @property {string} type - The type of the event (structured | unstructured)\n * @property {makePayload} makePayload\n * - Function that creates the payload for the event;\n * - Allows optional params object to be passed in\n *\n * @example\n * Parent\n * import { getSnowplowConfig, SnowplowProvider } from \"@simplybusiness/services\";\n * const snowplowProps = getSnowplowConfig(pageData);\n * <SnowplowProvider scripts={snowplowProps!}>{children}</SnowplowProvider>\n *\n * Child\n * import { useSnowplowContext } from \"@simplybusiness/services\";\n * const { snowplow } = useSnowplowContext();\n * const handlerFunction = () => snowplow?.trigger(\"eventNameHere\");\n */\n\n// Base page events\nexport const baseEventDefinitions: EventDefinition[] = [\n // Mobile link in header\n {\n name: \"mobileLinkClick\",\n type: \"structured\",\n makePayload: () => ({\n category: \"marketing\",\n action: \"link-click\",\n label: \"mobile_call_button\",\n property: window.location.href,\n }),\n },\n // Operating hours link in footer\n {\n name: \"operatingHoursClick\",\n type: \"unstructured\",\n makePayload: () => ({\n schema:\n \"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0\",\n data: {\n schema:\n \"iglu:com.simplybusiness/operating_hours_clicked/jsonschema/1-0-2\",\n data: {},\n },\n }),\n },\n {\n name: \"progressbarClicked\",\n type: \"unstructured\",\n makePayload: params => {\n const {\n section,\n context,\n fromStepIndex,\n fromStepName,\n stepIndex,\n stepName,\n } = params as ParamsType;\n\n return {\n schema: \"iglu:com.simplybusiness/progressbar_clicked/jsonschema/1-1-0\",\n data: {\n source_page_index: fromStepIndex,\n source_page_name: fromStepName,\n page_index: stepIndex,\n page_name: stepName,\n site: context.site,\n section_name: section,\n vertical: context.vertical,\n },\n };\n },\n },\n // Zendesk help chat link\n {\n name: \"helpChatLinkClicked\",\n type: \"structured\",\n makePayload: params => {\n const { label } = params as ParamsType;\n\n return {\n category: \"help chat for question\",\n action: \"help_chat_for_question_clicked\",\n label,\n property: window.location.href,\n };\n },\n contexts: [\"serviceChannelContext\"],\n },\n];\n"],
|
|
5
|
+
"mappings": ";AAuBO,IAAM,uBAA0C;AAAA;AAAA,EAErD;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa,OAAO;AAAA,MAClB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU,OAAO,SAAS;AAAA,IAC5B;AAAA,EACF;AAAA;AAAA,EAEA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa,OAAO;AAAA,MAClB,QACE;AAAA,MACF,MAAM;AAAA,QACJ,QACE;AAAA,QACF,MAAM,CAAC;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa,YAAU;AACrB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AAEJ,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,mBAAmB;AAAA,UACnB,kBAAkB;AAAA,UAClB,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,MAAM,QAAQ;AAAA,UACd,cAAc;AAAA,UACd,UAAU,QAAQ;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAEA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa,YAAU;AACrB,YAAM,EAAE,MAAM,IAAI;AAElB,aAAO;AAAA,QACL,UAAU;AAAA,QACV,QAAQ;AAAA,QACR;AAAA,QACA,UAAU,OAAO,SAAS;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,UAAU,CAAC,uBAAuB;AAAA,EACpC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|