@simplybusiness/services 2.5.2 → 2.6.1

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 (40) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/index.js +144 -214
  3. package/dist/cjs/index.js.map +3 -3
  4. package/dist/cjs/meta.json +71 -87
  5. package/dist/cjs/snowplow/SnowplowContext.js +144 -213
  6. package/dist/cjs/snowplow/SnowplowContext.js.map +3 -3
  7. package/dist/cjs/snowplow/event-definitions/index.js +144 -214
  8. package/dist/cjs/snowplow/event-definitions/index.js.map +3 -3
  9. package/dist/cjs/snowplow/event-definitions/intervention.js +0 -8
  10. package/dist/cjs/snowplow/event-definitions/intervention.js.map +2 -2
  11. package/dist/cjs/snowplow/event-definitions/personalised_cover.js +0 -201
  12. package/dist/cjs/snowplow/event-definitions/personalised_cover.js.map +3 -3
  13. package/dist/cjs/snowplow/index.js +144 -214
  14. package/dist/cjs/snowplow/index.js.map +3 -3
  15. package/dist/cjs/utils/testUtils.js +144 -213
  16. package/dist/cjs/utils/testUtils.js.map +3 -3
  17. package/dist/esm/{chunk-3SO3SL37.js → chunk-HFULBVWF.js} +1 -64
  18. package/dist/esm/chunk-HFULBVWF.js.map +7 -0
  19. package/dist/esm/{chunk-RLSHHBYY.js → chunk-I2GKS3FR.js} +1 -9
  20. package/dist/esm/{chunk-RLSHHBYY.js.map → chunk-I2GKS3FR.js.map} +2 -2
  21. package/dist/esm/{chunk-TRQ236KL.js → chunk-MXPROAPE.js} +2 -2
  22. package/dist/esm/{chunk-3JWAIW5L.js → chunk-VH733I2Z.js} +3 -8
  23. package/dist/esm/{chunk-3JWAIW5L.js.map → chunk-VH733I2Z.js.map} +2 -2
  24. package/dist/esm/index.js +4 -6
  25. package/dist/esm/meta.json +58 -88
  26. package/dist/esm/snowplow/SnowplowContext.js +4 -4
  27. package/dist/esm/snowplow/event-definitions/index.js +3 -5
  28. package/dist/esm/snowplow/event-definitions/intervention.js +1 -1
  29. package/dist/esm/snowplow/event-definitions/personalised_cover.js +1 -3
  30. package/dist/esm/snowplow/index.js +4 -6
  31. package/dist/esm/utils/testUtils.js +4 -4
  32. package/dist/tsconfig.build.tsbuildinfo +1 -1
  33. package/dist/types/snowplow/event-definitions/index.d.ts +0 -1
  34. package/package.json +3 -3
  35. package/src/snowplow/event-definitions/index.ts +0 -5
  36. package/src/snowplow/event-definitions/intervention.ts +0 -8
  37. package/src/snowplow/event-definitions/personalised_cover.test.ts +0 -182
  38. package/src/snowplow/event-definitions/personalised_cover.ts +0 -66
  39. package/dist/esm/chunk-3SO3SL37.js.map +0 -7
  40. /package/dist/esm/{chunk-TRQ236KL.js.map → chunk-MXPROAPE.js.map} +0 -0
@@ -24,11 +24,6 @@ export const referralPageEvents = [
24
24
  ...referralEventDefinitions,
25
25
  ];
26
26
 
27
- export const personalisedCoverPageEvents = [
28
- ...baseEventDefinitions,
29
- ...personalisedCoverEventDefinitions,
30
- ];
31
-
32
27
  export const interventionPageEvents = [...interventionEventDefinitions];
33
28
 
34
29
  export type { InterventionPayload } from "./intervention";
@@ -37,12 +37,4 @@ export const interventionEventDefinitions: EventDefinition[] = [
37
37
  };
38
38
  },
39
39
  },
40
- {
41
- name: "iaLiveChatInterventionClosed",
42
- type: "structured",
43
- makePayload: _ => ({
44
- category: "insurance_assistant",
45
- action: "ia_live_chat_intervention_closed",
46
- }),
47
- },
48
40
  ];
@@ -2,131 +2,6 @@ import { personalisedCoverEventDefinitions } from "./personalised_cover";
2
2
  import { findEventByName } from "./test-utils";
3
3
 
4
4
  describe("personalisedCoverEventDefinitions", () => {
5
- describe("coverQuestionAnswered", () => {
6
- it("should create correct payload", () => {
7
- const params = {
8
- context: {
9
- site: "uk",
10
- vertical: "shop",
11
- journeyId: "journey-123",
12
- },
13
- question: "test-question",
14
- answer: "test-answer",
15
- };
16
-
17
- const result = findEventByName(
18
- personalisedCoverEventDefinitions,
19
- "coverQuestionAnswered",
20
- ).makePayload(params);
21
-
22
- expect(result).toEqual({
23
- schema:
24
- "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4",
25
- data: {
26
- site: "uk",
27
- page_name: "personalised_cover",
28
- section_name: "Personalised Cover Questions",
29
- question: "test-question",
30
- answer: "test-answer",
31
- vertical: "shop",
32
- journey_id: "journey-123",
33
- },
34
- });
35
- });
36
-
37
- it("should flatten array answers", () => {
38
- const params = {
39
- context: {
40
- site: "uk",
41
- vertical: "shop",
42
- journeyId: "journey-456",
43
- },
44
- question: "test-question",
45
- answer: ["one", "two", "three"],
46
- };
47
-
48
- const result = findEventByName(
49
- personalisedCoverEventDefinitions,
50
- "coverQuestionAnswered",
51
- ).makePayload(params);
52
-
53
- expect(result).toEqual({
54
- schema:
55
- "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4",
56
- data: {
57
- site: "uk",
58
- page_name: "personalised_cover",
59
- section_name: "Personalised Cover Questions",
60
- question: "test-question",
61
- answer: "one|two|three",
62
- vertical: "shop",
63
- journey_id: "journey-456",
64
- },
65
- });
66
- });
67
-
68
- it("should redact answers", () => {
69
- const params = {
70
- context: {
71
- site: "uk",
72
- vertical: "shop",
73
- journeyId: "journey-789",
74
- },
75
- question: "customer_first_name",
76
- answer: "Secret-John",
77
- };
78
-
79
- const result = findEventByName(
80
- personalisedCoverEventDefinitions,
81
- "coverQuestionAnswered",
82
- ).makePayload(params);
83
-
84
- expect(result).toEqual({
85
- schema:
86
- "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4",
87
- data: {
88
- site: "uk",
89
- page_name: "personalised_cover",
90
- section_name: "Personalised Cover Questions",
91
- question: "customer_first_name",
92
- answer: "REDACTED",
93
- vertical: "shop",
94
- journey_id: "journey-789",
95
- },
96
- });
97
- });
98
-
99
- it("should handle undefined journeyId", () => {
100
- const params = {
101
- context: {
102
- site: "uk",
103
- vertical: "shop",
104
- },
105
- question: "test-question",
106
- answer: "test-answer",
107
- };
108
-
109
- const result = findEventByName(
110
- personalisedCoverEventDefinitions,
111
- "coverQuestionAnswered",
112
- ).makePayload(params);
113
-
114
- expect(result).toEqual({
115
- schema:
116
- "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4",
117
- data: {
118
- site: "uk",
119
- page_name: "personalised_cover",
120
- section_name: "Personalised Cover Questions",
121
- question: "test-question",
122
- answer: "test-answer",
123
- vertical: "shop",
124
- journey_id: undefined,
125
- },
126
- });
127
- });
128
- });
129
-
130
5
  describe("seeMoreClicked", () => {
131
6
  it("should create correct payload", () => {
132
7
  const result = findEventByName(
@@ -143,22 +18,6 @@ describe("personalisedCoverEventDefinitions", () => {
143
18
  });
144
19
  });
145
20
 
146
- describe("selectPackageClicked", () => {
147
- it("should create correct payload", () => {
148
- const result = findEventByName(
149
- personalisedCoverEventDefinitions,
150
- "selectPackageClicked",
151
- ).makePayload({});
152
-
153
- expect(result).toEqual({
154
- category: "personalised_cover",
155
- action: "select_package_clicked",
156
- label: "page",
157
- property: "personalised_cover",
158
- });
159
- });
160
- });
161
-
162
21
  describe("validationShown", () => {
163
22
  it("should create correct payload", () => {
164
23
  const params = {
@@ -260,45 +119,4 @@ describe("personalisedCoverEventDefinitions", () => {
260
119
  });
261
120
  });
262
121
  });
263
-
264
- describe("additionalQuestionsClicked", () => {
265
- it("should create correct payload", () => {
266
- const params = {
267
- property: "Public Liability",
268
- };
269
-
270
- const result = findEventByName(
271
- personalisedCoverEventDefinitions,
272
- "additionalQuestionsClicked",
273
- ).makePayload(params);
274
-
275
- expect(result).toEqual({
276
- category: "personalised_cover",
277
- action: "cover_details_clicked",
278
- label: "cover_name",
279
- property: "Public Liability",
280
- });
281
- });
282
- });
283
-
284
- describe("chatbotPromptClicked", () => {
285
- it("should create correct payload", () => {
286
- const params = {
287
- label: "test-label",
288
- property: "test-property",
289
- };
290
-
291
- const result = findEventByName(
292
- personalisedCoverEventDefinitions,
293
- "chatbotPromptClicked",
294
- ).makePayload(params);
295
-
296
- expect(result).toEqual({
297
- category: "personalised_cover",
298
- action: "chatbot_prompt_clicked",
299
- label: "test-property",
300
- property: "test-label",
301
- });
302
- });
303
- });
304
122
  });
@@ -1,7 +1,5 @@
1
1
  import { snakeCase } from "../../utils";
2
- import { DELIMITER } from "../constants";
3
2
  import type { EventDefinition, ParamsType } from "../types";
4
- import { redact } from "./questionnaire/redaction";
5
3
 
6
4
  /**
7
5
  * Event definitions for Snowplow
@@ -35,16 +33,6 @@ export const personalisedCoverEventDefinitions: EventDefinition[] = [
35
33
  property: "personalised_cover",
36
34
  }),
37
35
  },
38
- {
39
- name: "selectPackageClicked",
40
- type: "structured",
41
- makePayload: _ => ({
42
- category: "personalised_cover",
43
- action: "select_package_clicked",
44
- label: "page",
45
- property: "personalised_cover",
46
- }),
47
- },
48
36
  {
49
37
  name: "validationShown",
50
38
  type: "structured",
@@ -59,32 +47,6 @@ export const personalisedCoverEventDefinitions: EventDefinition[] = [
59
47
  };
60
48
  },
61
49
  },
62
- {
63
- name: "coverQuestionAnswered",
64
- type: "unstructured",
65
- makePayload: params => {
66
- const { context } = params as ParamsType;
67
- const { question, answer } = redact(params as ParamsType);
68
- // Flatten the answer to a delimited string
69
- const flatAnswer = Array.isArray(answer)
70
- ? answer.join(DELIMITER)
71
- : answer;
72
-
73
- return {
74
- schema:
75
- "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4",
76
- data: {
77
- site: context.site,
78
- page_name: "personalised_cover",
79
- section_name: "Personalised Cover Questions",
80
- question,
81
- answer: flatAnswer,
82
- vertical: context.vertical,
83
- journey_id: context.journeyId,
84
- },
85
- };
86
- },
87
- },
88
50
  {
89
51
  name: "limitLinkClicked",
90
52
  type: "structured",
@@ -141,32 +103,4 @@ export const personalisedCoverEventDefinitions: EventDefinition[] = [
141
103
  };
142
104
  },
143
105
  },
144
- {
145
- name: "additionalQuestionsClicked",
146
- type: "structured",
147
- makePayload: params => {
148
- const { property } = params as ParamsType;
149
-
150
- return {
151
- category: "personalised_cover",
152
- action: "cover_details_clicked",
153
- label: "cover_name",
154
- property,
155
- };
156
- },
157
- },
158
- {
159
- name: "chatbotPromptClicked",
160
- type: "structured",
161
- makePayload: params => {
162
- const { label, property } = params as ParamsType;
163
-
164
- return {
165
- category: "personalised_cover",
166
- action: "chatbot_prompt_clicked",
167
- label: property,
168
- property: label,
169
- };
170
- },
171
- },
172
106
  ];
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/snowplow/event-definitions/personalised_cover.ts"],
4
- "sourcesContent": ["import { snakeCase } from \"../../utils\";\nimport { DELIMITER } from \"../constants\";\nimport type { EventDefinition, ParamsType } from \"../types\";\nimport { redact } from \"./questionnaire/redaction\";\n\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\nexport const personalisedCoverEventDefinitions: EventDefinition[] = [\n {\n name: \"seeMoreClicked\",\n type: \"structured\",\n makePayload: _ => ({\n category: \"personalised_cover\",\n action: \"see_more_clicked\",\n label: \"page\",\n property: \"personalised_cover\",\n }),\n },\n {\n name: \"selectPackageClicked\",\n type: \"structured\",\n makePayload: _ => ({\n category: \"personalised_cover\",\n action: \"select_package_clicked\",\n label: \"page\",\n property: \"personalised_cover\",\n }),\n },\n {\n name: \"validationShown\",\n type: \"structured\",\n makePayload: params => {\n const { cover, question } = params as ParamsType;\n\n return {\n category: \"personalised_cover\",\n action: \"validation_shown\",\n label: \"cover_question\",\n property: `${snakeCase(cover)}_${snakeCase(question)}`,\n };\n },\n },\n {\n name: \"coverQuestionAnswered\",\n type: \"unstructured\",\n makePayload: params => {\n const { context } = params as ParamsType;\n const { question, answer } = redact(params as ParamsType);\n // Flatten the answer to a delimited string\n const flatAnswer = Array.isArray(answer)\n ? answer.join(DELIMITER)\n : answer;\n\n return {\n schema:\n \"iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4\",\n data: {\n site: context.site,\n page_name: \"personalised_cover\",\n section_name: \"Personalised Cover Questions\",\n question,\n answer: flatAnswer,\n vertical: context.vertical,\n journey_id: context.journeyId,\n },\n };\n },\n },\n {\n name: \"limitLinkClicked\",\n type: \"structured\",\n makePayload: params => {\n const { label } = params as ParamsType;\n\n return {\n category: \"personalised_cover\",\n action: \"limit_link_clicked\",\n label,\n property: \"link_clicked\",\n };\n },\n },\n {\n name: \"limitChanged\",\n type: \"structured\",\n makePayload: params => {\n const { label, limit } = params as ParamsType;\n\n return {\n category: \"personalised_cover\",\n action: \"limit_changed\",\n label,\n property: limit,\n };\n },\n },\n {\n name: \"coverPresented\",\n type: \"structured\",\n makePayload: params => {\n const { property } = params as ParamsType;\n\n return {\n category: \"personalised_cover\",\n action: \"cover_presented\",\n label: \"cover_name\",\n property,\n };\n },\n },\n {\n name: \"coverDetailsClicked\",\n type: \"structured\",\n makePayload: params => {\n const { property } = params as ParamsType;\n\n return {\n category: \"personalised_cover\",\n action: \"cover_details_clicked\",\n label: \"cover_name\",\n property,\n };\n },\n },\n {\n name: \"additionalQuestionsClicked\",\n type: \"structured\",\n makePayload: params => {\n const { property } = params as ParamsType;\n\n return {\n category: \"personalised_cover\",\n action: \"cover_details_clicked\",\n label: \"cover_name\",\n property,\n };\n },\n },\n {\n name: \"chatbotPromptClicked\",\n type: \"structured\",\n makePayload: params => {\n const { label, property } = params as ParamsType;\n\n return {\n category: \"personalised_cover\",\n action: \"chatbot_prompt_clicked\",\n label: property,\n property: label,\n };\n },\n },\n];\n"],
5
- "mappings": "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",
6
- "names": []
7
- }