@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.
Files changed (108) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/index.js +1198 -17
  3. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  4. package/dist/esm/index.js +1193 -4
  5. package/package.json +7 -6
  6. package/src/snowplow/event-definitions/qcp.ts +2 -1
  7. package/dist/cjs/address-lookup/index.js +0 -98
  8. package/dist/cjs/address-lookup/index.js.map +0 -1
  9. package/dist/cjs/address-lookup/types.js +0 -7
  10. package/dist/cjs/address-lookup/types.js.map +0 -1
  11. package/dist/cjs/airbrake/index.js +0 -45
  12. package/dist/cjs/airbrake/index.js.map +0 -1
  13. package/dist/cjs/index.js.map +0 -1
  14. package/dist/cjs/mocks/eventDefinitions.js +0 -90
  15. package/dist/cjs/mocks/eventDefinitions.js.map +0 -1
  16. package/dist/cjs/mocks/scripts-mock.js +0 -59
  17. package/dist/cjs/mocks/scripts-mock.js.map +0 -1
  18. package/dist/cjs/mocks/snowplowBrowserTrackerMock.js +0 -7
  19. package/dist/cjs/mocks/snowplowBrowserTrackerMock.js.map +0 -1
  20. package/dist/cjs/snowplow/Snowplow.js +0 -174
  21. package/dist/cjs/snowplow/Snowplow.js.map +0 -1
  22. package/dist/cjs/snowplow/SnowplowContext.js +0 -61
  23. package/dist/cjs/snowplow/SnowplowContext.js.map +0 -1
  24. package/dist/cjs/snowplow/constants.js +0 -13
  25. package/dist/cjs/snowplow/constants.js.map +0 -1
  26. package/dist/cjs/snowplow/contexts.js +0 -68
  27. package/dist/cjs/snowplow/contexts.js.map +0 -1
  28. package/dist/cjs/snowplow/event-definitions/base.js +0 -56
  29. package/dist/cjs/snowplow/event-definitions/base.js.map +0 -1
  30. package/dist/cjs/snowplow/event-definitions/index.js +0 -65
  31. package/dist/cjs/snowplow/event-definitions/index.js.map +0 -1
  32. package/dist/cjs/snowplow/event-definitions/intervention.js +0 -33
  33. package/dist/cjs/snowplow/event-definitions/intervention.js.map +0 -1
  34. package/dist/cjs/snowplow/event-definitions/personalised_cover.js +0 -122
  35. package/dist/cjs/snowplow/event-definitions/personalised_cover.js.map +0 -1
  36. package/dist/cjs/snowplow/event-definitions/qcp.js +0 -348
  37. package/dist/cjs/snowplow/event-definitions/qcp.js.map +0 -1
  38. package/dist/cjs/snowplow/event-definitions/questionnaire.js +0 -115
  39. package/dist/cjs/snowplow/event-definitions/questionnaire.js.map +0 -1
  40. package/dist/cjs/snowplow/event-definitions/redaction.js +0 -154
  41. package/dist/cjs/snowplow/event-definitions/redaction.js.map +0 -1
  42. package/dist/cjs/snowplow/event-definitions/referral.js +0 -37
  43. package/dist/cjs/snowplow/event-definitions/referral.js.map +0 -1
  44. package/dist/cjs/snowplow/getSnowplowConfig.js +0 -16
  45. package/dist/cjs/snowplow/getSnowplowConfig.js.map +0 -1
  46. package/dist/cjs/snowplow/index.js +0 -25
  47. package/dist/cjs/snowplow/index.js.map +0 -1
  48. package/dist/cjs/snowplow/types.js +0 -6
  49. package/dist/cjs/snowplow/types.js.map +0 -1
  50. package/dist/cjs/utils/index.js +0 -21
  51. package/dist/cjs/utils/index.js.map +0 -1
  52. package/dist/cjs/utils/isObject.js +0 -15
  53. package/dist/cjs/utils/isObject.js.map +0 -1
  54. package/dist/cjs/utils/testUtils.js +0 -43
  55. package/dist/cjs/utils/testUtils.js.map +0 -1
  56. package/dist/cjs/utils/text.js +0 -45
  57. package/dist/cjs/utils/text.js.map +0 -1
  58. package/dist/esm/address-lookup/index.js +0 -88
  59. package/dist/esm/address-lookup/index.js.map +0 -1
  60. package/dist/esm/address-lookup/types.js +0 -5
  61. package/dist/esm/address-lookup/types.js.map +0 -1
  62. package/dist/esm/airbrake/index.js +0 -35
  63. package/dist/esm/airbrake/index.js.map +0 -1
  64. package/dist/esm/index.js.map +0 -1
  65. package/dist/esm/mocks/eventDefinitions.js +0 -80
  66. package/dist/esm/mocks/eventDefinitions.js.map +0 -1
  67. package/dist/esm/mocks/scripts-mock.js +0 -49
  68. package/dist/esm/mocks/scripts-mock.js.map +0 -1
  69. package/dist/esm/mocks/snowplowBrowserTrackerMock.js +0 -6
  70. package/dist/esm/mocks/snowplowBrowserTrackerMock.js.map +0 -1
  71. package/dist/esm/snowplow/Snowplow.js +0 -169
  72. package/dist/esm/snowplow/Snowplow.js.map +0 -1
  73. package/dist/esm/snowplow/SnowplowContext.js +0 -43
  74. package/dist/esm/snowplow/SnowplowContext.js.map +0 -1
  75. package/dist/esm/snowplow/constants.js +0 -3
  76. package/dist/esm/snowplow/constants.js.map +0 -1
  77. package/dist/esm/snowplow/contexts.js +0 -47
  78. package/dist/esm/snowplow/contexts.js.map +0 -1
  79. package/dist/esm/snowplow/event-definitions/base.js +0 -66
  80. package/dist/esm/snowplow/event-definitions/base.js.map +0 -1
  81. package/dist/esm/snowplow/event-definitions/index.js +0 -36
  82. package/dist/esm/snowplow/event-definitions/index.js.map +0 -1
  83. package/dist/esm/snowplow/event-definitions/intervention.js +0 -23
  84. package/dist/esm/snowplow/event-definitions/intervention.js.map +0 -1
  85. package/dist/esm/snowplow/event-definitions/personalised_cover.js +0 -131
  86. package/dist/esm/snowplow/event-definitions/personalised_cover.js.map +0 -1
  87. package/dist/esm/snowplow/event-definitions/qcp.js +0 -339
  88. package/dist/esm/snowplow/event-definitions/qcp.js.map +0 -1
  89. package/dist/esm/snowplow/event-definitions/questionnaire.js +0 -106
  90. package/dist/esm/snowplow/event-definitions/questionnaire.js.map +0 -1
  91. package/dist/esm/snowplow/event-definitions/redaction.js +0 -144
  92. package/dist/esm/snowplow/event-definitions/redaction.js.map +0 -1
  93. package/dist/esm/snowplow/event-definitions/referral.js +0 -28
  94. package/dist/esm/snowplow/event-definitions/referral.js.map +0 -1
  95. package/dist/esm/snowplow/getSnowplowConfig.js +0 -7
  96. package/dist/esm/snowplow/getSnowplowConfig.js.map +0 -1
  97. package/dist/esm/snowplow/index.js +0 -8
  98. package/dist/esm/snowplow/index.js.map +0 -1
  99. package/dist/esm/snowplow/types.js +0 -3
  100. package/dist/esm/snowplow/types.js.map +0 -1
  101. package/dist/esm/utils/index.js +0 -4
  102. package/dist/esm/utils/index.js.map +0 -1
  103. package/dist/esm/utils/isObject.js +0 -5
  104. package/dist/esm/utils/isObject.js.map +0 -1
  105. package/dist/esm/utils/testUtils.js +0 -26
  106. package/dist/esm/utils/testUtils.js.map +0 -1
  107. package/dist/esm/utils/text.js +0 -25
  108. package/dist/esm/utils/text.js.map +0 -1
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "referralEventDefinitions", {
6
- enumerable: true,
7
- get: function() {
8
- return referralEventDefinitions;
9
- }
10
- });
11
- const referralEventDefinitions = [
12
- {
13
- name: "nextCoverageClicked",
14
- type: "structured",
15
- makePayload: (params)=>{
16
- const { url } = params;
17
- const eventName = "post_referral_workers_compensation_continuation_link";
18
- return {
19
- category: eventName,
20
- action: "link_click",
21
- label: eventName,
22
- property: url
23
- };
24
- }
25
- },
26
- {
27
- name: "helpChatLinkClicked",
28
- type: "structured",
29
- makePayload: ()=>({
30
- category: "help chat for question",
31
- action: "help_chat_for_question_clicked",
32
- property: window.location.href
33
- })
34
- }
35
- ];
36
-
37
- //# sourceMappingURL=referral.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/snowplow/event-definitions/referral.ts"],"sourcesContent":["import { EventDefinition, ParamsType } from \"../types\";\n\n// Referral page events\nexport const referralEventDefinitions: EventDefinition[] = [\n {\n name: \"nextCoverageClicked\",\n type: \"structured\",\n makePayload: params => {\n const { url } = params as ParamsType;\n const eventName = \"post_referral_workers_compensation_continuation_link\";\n\n return {\n category: eventName,\n action: \"link_click\",\n label: eventName,\n property: url,\n };\n },\n },\n {\n name: \"helpChatLinkClicked\",\n type: \"structured\",\n makePayload: () => ({\n category: \"help chat for question\",\n action: \"help_chat_for_question_clicked\",\n property: window.location.href,\n }),\n },\n];\n"],"names":["referralEventDefinitions","name","type","makePayload","params","url","eventName","category","action","label","property","window","location","href"],"mappings":";;;;+BAGaA;;;eAAAA;;;AAAN,MAAMA,2BAA8C;IACzD;QACEC,MAAM;QACNC,MAAM;QACNC,aAAaC,CAAAA;YACX,MAAM,EAAEC,GAAG,EAAE,GAAGD;YAChB,MAAME,YAAY;YAElB,OAAO;gBACLC,UAAUD;gBACVE,QAAQ;gBACRC,OAAOH;gBACPI,UAAUL;YACZ;QACF;IACF;IACA;QACEJ,MAAM;QACNC,MAAM;QACNC,aAAa,IAAO,CAAA;gBAClBI,UAAU;gBACVC,QAAQ;gBACRE,UAAUC,OAAOC,QAAQ,CAACC,IAAI;YAChC,CAAA;IACF;CACD"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "getSnowplowConfig", {
6
- enumerable: true,
7
- get: function() {
8
- return getSnowplowConfig;
9
- }
10
- });
11
- const getSnowplowConfig = (pageData)=>{
12
- var _pageData_scripts_find, _pageData_scripts;
13
- return (_pageData_scripts = pageData.scripts) === null || _pageData_scripts === void 0 ? void 0 : (_pageData_scripts_find = _pageData_scripts.find(({ metadata })=>metadata.name === "snowplow")) === null || _pageData_scripts_find === void 0 ? void 0 : _pageData_scripts_find.props;
14
- };
15
-
16
- //# sourceMappingURL=getSnowplowConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/snowplow/getSnowplowConfig.ts"],"sourcesContent":["import type { TrackingProps, PageDataProps } from \"./types\";\n\n// Get Snowplow config from page data props\nexport const getSnowplowConfig = (\n pageData: PageDataProps,\n): TrackingProps | undefined =>\n pageData.scripts?.find(({ metadata }) => metadata.name === \"snowplow\")\n ?.props as TrackingProps;\n"],"names":["getSnowplowConfig","pageData","scripts","find","metadata","name","props"],"mappings":";;;;+BAGaA;;;eAAAA;;;AAAN,MAAMA,oBAAoB,CAC/BC;QAEAA,wBAAAA;YAAAA,oBAAAA,SAASC,OAAO,cAAhBD,yCAAAA,yBAAAA,kBAAkBE,IAAI,CAAC,CAAC,EAAEC,QAAQ,EAAE,GAAKA,SAASC,IAAI,KAAK,yBAA3DJ,6CAAAA,uBACIK,KAAK"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- _export_star(require("./contexts"), exports);
6
- _export_star(require("./event-definitions"), exports);
7
- _export_star(require("./getSnowplowConfig"), exports);
8
- _export_star(require("./Snowplow"), exports);
9
- _export_star(require("./SnowplowContext"), exports);
10
- _export_star(require("./types"), exports);
11
- function _export_star(from, to) {
12
- Object.keys(from).forEach(function(k) {
13
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
14
- Object.defineProperty(to, k, {
15
- enumerable: true,
16
- get: function() {
17
- return from[k];
18
- }
19
- });
20
- }
21
- });
22
- return from;
23
- }
24
-
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/snowplow/index.ts"],"sourcesContent":["export * from \"./contexts\";\nexport * from \"./event-definitions\";\nexport * from \"./getSnowplowConfig\";\nexport * from \"./Snowplow\";\nexport * from \"./SnowplowContext\";\nexport * from \"./types\";\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA;qBACA;qBACA;qBACA"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
-
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/snowplow/types.ts"],"names":[],"mappings":""}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- _export_star(require("./text"), exports);
6
- _export_star(require("./isObject"), exports);
7
- function _export_star(from, to) {
8
- Object.keys(from).forEach(function(k) {
9
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
10
- Object.defineProperty(to, k, {
11
- enumerable: true,
12
- get: function() {
13
- return from[k];
14
- }
15
- });
16
- }
17
- });
18
- return from;
19
- }
20
-
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from \"./text\";\nexport * from \"./isObject\";\n"],"names":[],"mappings":";;;;qBAAc;qBACA"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "isObject", {
6
- enumerable: true,
7
- get: function() {
8
- return isObject;
9
- }
10
- });
11
- function isObject(value) {
12
- return typeof value === "object" && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
13
- }
14
-
15
- //# sourceMappingURL=isObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/isObject.tsx"],"sourcesContent":["export function isObject(value: unknown): value is Record<string, unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n Object.getPrototypeOf(value) === Object.prototype\n );\n }\n"],"names":["isObject","value","Array","isArray","Object","getPrototypeOf","prototype"],"mappings":";;;;+BAAgBA;;;eAAAA;;;AAAT,SAASA,SAASC,KAAc;IACnC,OACE,OAAOA,UAAU,YACjBA,UAAU,QACV,CAACC,MAAMC,OAAO,CAACF,UACfG,OAAOC,cAAc,CAACJ,WAAWG,OAAOE,SAAS;AAErD"}
@@ -1,43 +0,0 @@
1
- /* eslint-disable import/no-extraneous-dependencies */ "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- mockLocation: function() {
13
- return mockLocation;
14
- },
15
- renderWithProviders: function() {
16
- return renderWithProviders;
17
- }
18
- });
19
- const _jsxruntime = require("react/jsx-runtime");
20
- const _react = require("@testing-library/react");
21
- const _scriptsmock = require("../mocks/scripts-mock");
22
- const _SnowplowContext = require("../snowplow/SnowplowContext");
23
- const _getSnowplowConfig = require("../snowplow/getSnowplowConfig");
24
- // Snowplow analytics
25
- const snowplowProps = (0, _getSnowplowConfig.getSnowplowConfig)(_scriptsmock.pageData);
26
- const ProvidersMock = ({ children })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_SnowplowContext.SnowplowProvider, {
27
- scripts: snowplowProps,
28
- children: children
29
- });
30
- const renderWithProviders = (ui, options)=>(0, _react.render)(ui, {
31
- wrapper: ProvidersMock,
32
- ...options
33
- });
34
- const mockLocation = ({ origin = "https://simplybusiness.co.uk", pathname = "" })=>Object.defineProperty(window, "location", {
35
- get () {
36
- return {
37
- origin,
38
- pathname
39
- };
40
- }
41
- });
42
-
43
- //# sourceMappingURL=testUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/testUtils.tsx"],"sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\nimport { RenderOptions, render } from \"@testing-library/react\";\nimport { ReactElement, ReactNode } from \"react\";\nimport { pageData } from \"../mocks/scripts-mock\";\nimport { SnowplowProvider } from \"../snowplow/SnowplowContext\";\nimport { getSnowplowConfig } from \"../snowplow/getSnowplowConfig\";\nimport { PageDataProps } from \"../snowplow/types\";\n\n// Snowplow analytics\nconst snowplowProps = getSnowplowConfig(pageData as PageDataProps);\n\nconst ProvidersMock = ({ children }: { children: ReactNode }) => (\n <SnowplowProvider scripts={snowplowProps!}>{children}</SnowplowProvider>\n);\n\nexport const renderWithProviders = (\n ui: ReactElement,\n options?: RenderOptions,\n) => render(ui, { wrapper: ProvidersMock, ...options });\n\n// Mocks window.location for url testing\nexport const mockLocation = ({\n origin = \"https://simplybusiness.co.uk\",\n pathname = \"\",\n}: {\n origin?: string;\n pathname?: string;\n}) =>\n Object.defineProperty(window, \"location\", {\n get() {\n return {\n origin,\n pathname,\n };\n },\n });\n"],"names":["mockLocation","renderWithProviders","snowplowProps","getSnowplowConfig","pageData","ProvidersMock","children","SnowplowProvider","scripts","ui","options","render","wrapper","origin","pathname","Object","defineProperty","window","get"],"mappings":"AAAA,oDAAoD;;;;;;;;;;;IAqBvCA,YAAY;eAAZA;;IANAC,mBAAmB;eAAnBA;;;;uBAdyB;6BAEb;iCACQ;mCACC;AAGlC,qBAAqB;AACrB,MAAMC,gBAAgBC,IAAAA,oCAAiB,EAACC,qBAAQ;AAEhD,MAAMC,gBAAgB,CAAC,EAAEC,QAAQ,EAA2B,iBAC1D,qBAACC,iCAAgB;QAACC,SAASN;kBAAiBI;;AAGvC,MAAML,sBAAsB,CACjCQ,IACAC,UACGC,IAAAA,aAAM,EAACF,IAAI;QAAEG,SAASP;QAAe,GAAGK,OAAO;IAAC;AAG9C,MAAMV,eAAe,CAAC,EAC3Ba,SAAS,8BAA8B,EACvCC,WAAW,EAAE,EAId,GACCC,OAAOC,cAAc,CAACC,QAAQ,YAAY;QACxCC;YACE,OAAO;gBACLL;gBACAC;YACF;QACF;IACF"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- camelToSnakeCase: function() {
13
- return camelToSnakeCase;
14
- },
15
- snakeCase: function() {
16
- return snakeCase;
17
- },
18
- snakeCaseKeys: function() {
19
- return snakeCaseKeys;
20
- }
21
- });
22
- const _ = require(".");
23
- const snakeCaseKeys = (object)=>Object.entries(object || {}).reduce((acc, [key, value])=>{
24
- const newKey = camelToSnakeCase(key);
25
- if (Array.isArray(value) && value.every(_.isObject)) {
26
- return {
27
- ...acc,
28
- [newKey]: value.map((v)=>snakeCaseKeys(v))
29
- };
30
- }
31
- if ((0, _.isObject)(value)) {
32
- return {
33
- ...acc,
34
- [newKey]: snakeCaseKeys(value)
35
- };
36
- }
37
- return {
38
- ...acc,
39
- [newKey]: value
40
- };
41
- }, {});
42
- const snakeCase = (text = "")=>text.toLowerCase().replace(/ /g, "_");
43
- const camelToSnakeCase = (text)=>text.charAt(0).toLowerCase() + text.slice(1).replace(/(\[.*?\])|[A-Z]/g, (match, group)=>group ? match : `_${match.toLowerCase()}`);
44
-
45
- //# sourceMappingURL=text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/text.ts"],"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\n"],"names":["camelToSnakeCase","snakeCase","snakeCaseKeys","object","Object","entries","reduce","acc","key","value","newKey","Array","isArray","every","isObject","map","v","text","toLowerCase","replace","charAt","slice","match","group"],"mappings":";;;;;;;;;;;IAiCaA,gBAAgB;eAAhBA;;IAHAC,SAAS;eAATA;;IA3BAC,aAAa;eAAbA;;;kBAHY;AAGlB,MAAMA,gBAAgB,CAACC,SAC5BC,OAAOC,OAAO,CAACF,UAAU,CAAC,GAAGG,MAAM,CACjC,CAACC,KAA8B,CAACC,KAAKC,MAAM;QACzC,MAAMC,SAASV,iBAAiBQ;QAEhC,IAAIG,MAAMC,OAAO,CAACH,UAAUA,MAAMI,KAAK,CAACC,UAAQ,GAAG;YACjD,OAAO;gBACL,GAAGP,GAAG;gBACN,CAACG,OAAO,EAAED,MAAMM,GAAG,CAACC,CAAAA,IAAKd,cAAcc;YACzC;QACF;QAEA,IAAIF,IAAAA,UAAQ,EAACL,QAAQ;YACnB,OAAO;gBACL,GAAGF,GAAG;gBACN,CAACG,OAAO,EAAER,cAAcO;YAC1B;QACF;QAEA,OAAO;YACL,GAAGF,GAAG;YACN,CAACG,OAAO,EAAED;QACZ;IACF,GACA,CAAC;AAGE,MAAMR,YAAY,CAACgB,OAAO,EAAE,GACjCA,KAAKC,WAAW,GAAGC,OAAO,CAAC,MAAM;AAE5B,MAAMnB,mBAAmB,CAACiB,OAC/BA,KAAKG,MAAM,CAAC,GAAGF,WAAW,KAC1BD,KACGI,KAAK,CAAC,GACNF,OAAO,CAAC,oBAAoB,CAACG,OAAOC,QACnCA,QAAQD,QAAQ,CAAC,CAAC,EAAEA,MAAMJ,WAAW,IAAI"}
@@ -1,88 +0,0 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
14
- // Loquate API constants
15
- const BASE_URL = "https://api.addressy.com/Capture/Interactive";
16
- const FIND_URL = `${BASE_URL}/Find/v1.00/json3.ws`;
17
- const RETRIEVE_URL = `${BASE_URL}/Retrieve/v1.2/json3.ws`;
18
- const COUNTRIES = [
19
- "GB"
20
- ]; // 2 or 3-letter ISO country codes
21
- const LIMIT = 20;
22
- export class AddressLookup {
23
- static async fetchFromApi(url, handleResponse) {
24
- return new Promise((resolve, reject)=>{
25
- fetch(url).then((response)=>response.json()).then((data)=>resolve(handleResponse(data))).catch((error)=>reject(Error(error)));
26
- });
27
- }
28
- find(partialAddress) {
29
- return new Promise((resolve, reject)=>{
30
- fetch(`${this.findUrl}&Text=${partialAddress}`).then((response)=>response.json()).then((data)=>resolve(this.formatItems(data))).catch((error)=>reject(Error(error)));
31
- });
32
- }
33
- findById(id) {
34
- return new Promise((resolve, reject)=>{
35
- fetch(`${this.findUrl}&Container=${id}`).then((response)=>response.json()).then((data)=>resolve(this.formatItems(data))).catch((error)=>reject(Error(error)));
36
- });
37
- }
38
- get(id) {
39
- return new Promise((resolve, reject)=>{
40
- fetch(`${this.retrieveUrl}&Id=${id}`).then((response)=>response.json()).then((data)=>resolve(AddressLookup.formatUkAddress(data))).catch((error)=>reject(Error(error)));
41
- });
42
- }
43
- formatItems({ Items }) {
44
- if (!Items || !Array.isArray(Items)) {
45
- throw Error("No address found");
46
- }
47
- if (Items[0].Error) {
48
- throw Error(Items[0].Description);
49
- }
50
- return Items.map((item)=>({
51
- id: item.Id,
52
- label: `${item.Text}, ${item.Description}`,
53
- value: item.Text,
54
- // Add a callback to trigger secondary search
55
- // if the address type is not "Address"
56
- callback: item.Type === "Address" ? undefined : ()=>this.findById(item.Id)
57
- }));
58
- }
59
- static formatUkAddress({ Items }) {
60
- if (!Items || !Array.isArray(Items)) {
61
- throw Error("No address found");
62
- }
63
- if (Items[0].Error) {
64
- throw Error(Items[0].Description);
65
- }
66
- const { Line1, Line2, City, PostalCode } = Items[0];
67
- return {
68
- address_1: Line1,
69
- address_2: Line2,
70
- town: City,
71
- uk_postcode: PostalCode
72
- };
73
- }
74
- constructor({ apiKey, limit, countries }){
75
- _define_property(this, "apiKey", void 0);
76
- _define_property(this, "limit", void 0);
77
- _define_property(this, "findUrl", void 0);
78
- _define_property(this, "retrieveUrl", void 0);
79
- _define_property(this, "countries", void 0);
80
- this.apiKey = apiKey;
81
- this.limit = limit || LIMIT;
82
- this.countries = countries || COUNTRIES;
83
- this.findUrl = `${FIND_URL}?Key=${this.apiKey}&Limit=${this.limit}&Countries=${this.countries}`;
84
- this.retrieveUrl = `${RETRIEVE_URL}?Key=${this.apiKey}`;
85
- }
86
- }
87
-
88
- //# 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":["BASE_URL","FIND_URL","RETRIEVE_URL","COUNTRIES","LIMIT","AddressLookup","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,5 +0,0 @@
1
- // Options: the target shape for responses to Combobox
2
- // Class interface
3
- export { };
4
-
5
- //# sourceMappingURL=types.js.map
@@ -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;AAiDtD,kBAAkB;AAClB,WAIE"}
@@ -1,35 +0,0 @@
1
- import { Notifier } from "@airbrake/browser";
2
- // https://simplybusiness.airbrake.io/projects/512949/edit#tab-access
3
- // This configuration is for embedded-qcp project
4
- const defaultProjectId = 512949;
5
- const defaultProjectKey = "4e25197d8faea61c10fbb97702200780";
6
- let notifierInstance;
7
- // Fake signature which logs to console
8
- const fakeAirbrake = {
9
- notify: console.error
10
- };
11
- // We don't want to send real alerts on non-quote domains
12
- const shouldUseAirbrake = ()=>{
13
- const { location } = globalThis;
14
- const isTest = process.env.NODE_ENV === "test";
15
- return isTest || (location === null || location === void 0 ? void 0 : location.hostname.indexOf("quote.")) > -1;
16
- };
17
- export function getAirbrake(options) {
18
- const { projectId, projectKey, forceSend } = options;
19
- if (!forceSend || !shouldUseAirbrake()) {
20
- return fakeAirbrake;
21
- }
22
- if (!notifierInstance) {
23
- notifierInstance = new Notifier({
24
- projectId: projectId !== null && projectId !== void 0 ? projectId : defaultProjectId,
25
- projectKey: projectKey !== null && projectKey !== void 0 ? projectKey : defaultProjectKey,
26
- environment: process.env.NODE_ENV,
27
- instrumentation: {
28
- onerror: false
29
- }
30
- });
31
- }
32
- return notifierInstance;
33
- }
34
-
35
- //# 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":["Notifier","defaultProjectId","defaultProjectKey","notifierInstance","fakeAirbrake","notify","console","error","shouldUseAirbrake","location","globalThis","isTest","process","env","NODE_ENV","hostname","indexOf","getAirbrake","options","projectId","projectKey","forceSend","environment","instrumentation","onerror"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,oBAAoB;AAE7C,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;AAQA,OAAO,SAASC,YAAYC,OAA2B;IACrD,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGH;IAE7C,IAAI,CAACG,aAAa,CAACb,qBAAqB;QACtC,OAAOJ;IACT;IAEA,IAAI,CAACD,kBAAkB;QACrBA,mBAAmB,IAAIH,SAAS;YAC9BmB,WAAWA,sBAAAA,uBAAAA,YAAalB;YACxBmB,YAAYA,uBAAAA,wBAAAA,aAAclB;YAC1BoB,aAAaV,QAAQC,GAAG,CAACC,QAAQ;YACjCS,iBAAiB;gBACfC,SAAS;YACX;QACF;IACF;IAEA,OAAOrB;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.tsx"],"sourcesContent":["export * from \"./address-lookup\";\nexport * from \"./airbrake\";\nexport * from \"./snowplow\";\n"],"names":[],"mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,aAAa;AAC3B,cAAc,aAAa"}
@@ -1,80 +0,0 @@
1
- import { redact } from "../snowplow/event-definitions/redaction";
2
- export default [
3
- {
4
- name: "navButtonClicked",
5
- type: "structured",
6
- makePayload: (params)=>{
7
- const { label } = params;
8
- return {
9
- category: "navigation",
10
- action: "thankyou_navigation_button_click",
11
- label,
12
- property: "test-property"
13
- };
14
- }
15
- },
16
- {
17
- name: "questionAnswered",
18
- type: "unstructured",
19
- makePayload: (params)=>{
20
- const { section, context } = params;
21
- const { question, answer } = redact(params);
22
- return {
23
- schema: "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-3",
24
- data: {
25
- site: context.site,
26
- page_index: 1,
27
- page_name: "quick_to_quote",
28
- submitted_from: "quick_to_quote_experiment",
29
- section_name: section,
30
- question,
31
- answer,
32
- vertical: context.vertical
33
- }
34
- };
35
- },
36
- contexts: [
37
- "distributionChannelContext"
38
- ]
39
- },
40
- {
41
- name: "primaryDetailSelected",
42
- type: "unstructured",
43
- makePayload: (params)=>{
44
- const { context, answer, vertical } = params;
45
- const { site } = context;
46
- let verticalName = vertical || context.vertical;
47
- if (verticalName.toLowerCase().indexOf("landlord") > -1) {
48
- verticalName = answer === "residential" ? "Landlord" : "Commercial landlord";
49
- }
50
- return {
51
- schema: "iglu:com.simplybusiness/primary_detail_selected/jsonschema/1-3-0",
52
- data: {
53
- site,
54
- vertical: verticalName,
55
- primary_detail: answer
56
- }
57
- };
58
- }
59
- },
60
- {
61
- name: "helpTextOpened",
62
- type: "unstructured",
63
- makePayload: (params)=>{
64
- const { primaryText, label, context, helpText } = params;
65
- return {
66
- schema: "iglu:com.simplybusiness/help_text_opened/jsonschema/1-1-0",
67
- data: {
68
- vertical: context.vertical,
69
- site: context.site,
70
- help_text: helpText,
71
- primary_text: primaryText,
72
- label,
73
- page_name: "quick_to_quote"
74
- }
75
- };
76
- }
77
- }
78
- ];
79
-
80
- //# 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":["redact","name","type","makePayload","params","label","category","action","property","section","context","question","answer","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":"AACA,SAASA,MAAM,QAAQ,0CAA0C;AAEjE,eAAe;IACb;QACEC,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,GAAGZ,OAAOI;YAEpC,OAAO;gBACLS,QACE;gBACFC,MAAM;oBACJC,MAAML,QAAQK,IAAI;oBAClBC,YAAY;oBACZC,WAAW;oBACXC,gBAAgB;oBAChBC,cAAcV;oBACdE;oBACAC;oBACAQ,UAAUV,QAAQU,QAAQ;gBAC5B;YACF;QACF;QACAC,UAAU;YAAC;SAA6B;IAC1C;IACA;QACEpB,MAAM;QACNC,MAAM;QACNC,aAAa,CAACC;YACZ,MAAM,EAAEM,OAAO,EAAEE,MAAM,EAAEQ,QAAQ,EAAE,GAAGhB;YACtC,MAAM,EAAEW,IAAI,EAAE,GAAGL;YACjB,IAAIY,eAAeF,YAAYV,QAAQU,QAAQ;YAE/C,IAAIE,aAAaC,WAAW,GAAGC,OAAO,CAAC,cAAc,CAAC,GAAG;gBACvDF,eACEV,WAAW,gBAAgB,aAAa;YAC5C;YAEA,OAAO;gBACLC,QACE;gBACFC,MAAM;oBACJC;oBACAK,UAAUE;oBACVG,gBAAgBb;gBAClB;YACF;QACF;IACF;IACA;QACEX,MAAM;QACNC,MAAM;QACNC,aAAa,CAACC;YACZ,MAAM,EAAEsB,WAAW,EAAErB,KAAK,EAAEK,OAAO,EAAEiB,QAAQ,EAAE,GAAGvB;YAElD,OAAO;gBACLS,QAAQ;gBACRC,MAAM;oBACJM,UAAUV,QAAQU,QAAQ;oBAC1BL,MAAML,QAAQK,IAAI;oBAClBa,WAAWD;oBACXE,cAAcH;oBACdrB;oBACAY,WAAW;gBACb;YACF;QACF;IACF;CACD,CAAC"}
@@ -1,49 +0,0 @@
1
- export const pageData = {
2
- scripts: [
3
- {
4
- metadata: {
5
- name: "snowplow"
6
- },
7
- props: {
8
- uid: "49a449d8aaa9dd58f90a623d4b9dbcae235bf92a",
9
- cookieDomain: "",
10
- // TODO: Change this url to "http://localhost:8000" for local development
11
- avalancheCollector: "https://snowplow-collector-staging.simplybusiness.com",
12
- appId: "us-chopin",
13
- includeGAContext: true,
14
- eventMethod: "post",
15
- postPath: "/com.simplybusiness/events",
16
- trackActivity: true,
17
- trackPageView: true,
18
- pageViewContext: {
19
- schema: "iglu:uk.co.simplybusiness/journey_context/jsonschema/1-0-0",
20
- data: {
21
- site: "simplybusiness_us",
22
- vertical: "usa",
23
- super_segment: "Unknown",
24
- primary_detail: "Lawn care services",
25
- journey_name: "usa",
26
- journey_id: "666ff79d90abbc3582e496da",
27
- page_step_name: "thank_you_ssr",
28
- page_step_depth: -1
29
- }
30
- },
31
- distributionChannelContext: {
32
- schema: "iglu:com.simplybusiness/distribution_channel_context/jsonschema/1-0-0",
33
- data: {
34
- service_channel_identifier: "simplybusiness_us"
35
- }
36
- },
37
- serviceChannelContext: {
38
- schema: "iglu:com.simplybusiness/service_channel_context/jsonschema/1-0-0",
39
- data: {
40
- service_channel_identifier: "simplybusiness_us"
41
- }
42
- },
43
- forceSecureTracker: true
44
- }
45
- }
46
- ]
47
- };
48
-
49
- //# 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":"AAAA,OAAO,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,EAAE"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Mocking this module prevents requests being sent to
3
- * Snowplow which causes CORS errors in the test enviornment.
4
- */ jest.mock("@snowplow/browser-tracker");
5
-
6
- //# sourceMappingURL=snowplowBrowserTrackerMock.js.map
@@ -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,GAEDA,KAAKC,IAAI,CAAC"}