@segment/action-destinations 3.476.0 → 3.478.0

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 (218) hide show
  1. package/dist/destinations/amazon-amc/function.js +2 -1
  2. package/dist/destinations/amazon-amc/function.js.map +1 -1
  3. package/dist/destinations/amazon-amc/index.js +2 -1
  4. package/dist/destinations/amazon-amc/index.js.map +1 -1
  5. package/dist/destinations/amazon-amc/versioning-info.d.ts +2 -0
  6. package/dist/destinations/amazon-amc/versioning-info.js +6 -0
  7. package/dist/destinations/amazon-amc/versioning-info.js.map +1 -0
  8. package/dist/destinations/avo-v2/constants.d.ts +6 -0
  9. package/dist/destinations/avo-v2/constants.js +11 -0
  10. package/dist/destinations/avo-v2/constants.js.map +1 -0
  11. package/dist/destinations/avo-v2/generated-types.d.ts +6 -0
  12. package/dist/destinations/avo-v2/generated-types.js +3 -0
  13. package/dist/destinations/avo-v2/generated-types.js.map +1 -0
  14. package/dist/destinations/avo-v2/index.d.ts +4 -0
  15. package/dist/destinations/avo-v2/index.js +71 -0
  16. package/dist/destinations/avo-v2/index.js.map +1 -0
  17. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/encryption-functions.d.ts +7 -0
  18. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/encryption-functions.js +39 -0
  19. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/encryption-functions.js.map +1 -0
  20. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/event-validator-functions.d.ts +2 -0
  21. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/event-validator-functions.js +383 -0
  22. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/event-validator-functions.js.map +1 -0
  23. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/functions.d.ts +6 -0
  24. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/functions.js +200 -0
  25. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/functions.js.map +1 -0
  26. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/schema-functions.d.ts +5 -0
  27. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/schema-functions.js +112 -0
  28. package/dist/destinations/avo-v2/sendSchemaToInspector/functions/schema-functions.js.map +1 -0
  29. package/dist/destinations/avo-v2/sendSchemaToInspector/generated-types.d.ts +15 -0
  30. package/dist/destinations/avo-v2/sendSchemaToInspector/generated-types.js +3 -0
  31. package/dist/destinations/avo-v2/sendSchemaToInspector/generated-types.js.map +1 -0
  32. package/dist/destinations/avo-v2/sendSchemaToInspector/index.d.ts +5 -0
  33. package/dist/destinations/avo-v2/sendSchemaToInspector/index.js +117 -0
  34. package/dist/destinations/avo-v2/sendSchemaToInspector/index.js.map +1 -0
  35. package/dist/destinations/avo-v2/sendSchemaToInspector/types.d.ts +82 -0
  36. package/dist/destinations/avo-v2/sendSchemaToInspector/types.js +3 -0
  37. package/dist/destinations/avo-v2/sendSchemaToInspector/types.js.map +1 -0
  38. package/dist/destinations/customerio/createUpdatePerson/generated-types.d.ts +1 -0
  39. package/dist/destinations/customerio/createUpdatePerson/index.js +8 -0
  40. package/dist/destinations/customerio/createUpdatePerson/index.js.map +1 -1
  41. package/dist/destinations/display-video-360/constants.d.ts +0 -1
  42. package/dist/destinations/display-video-360/constants.js +3 -3
  43. package/dist/destinations/display-video-360/constants.js.map +1 -1
  44. package/dist/destinations/display-video-360/versioning-info.d.ts +1 -0
  45. package/dist/destinations/display-video-360/versioning-info.js +5 -0
  46. package/dist/destinations/display-video-360/versioning-info.js.map +1 -0
  47. package/dist/destinations/dotdigital/addContactToList/index.js +5 -5
  48. package/dist/destinations/dotdigital/addContactToList/index.js.map +1 -1
  49. package/dist/destinations/dotdigital/enrolContact/index.js +4 -4
  50. package/dist/destinations/dotdigital/enrolContact/index.js.map +1 -1
  51. package/dist/destinations/dotdigital/removeContactFromList/index.js +4 -4
  52. package/dist/destinations/dotdigital/removeContactFromList/index.js.map +1 -1
  53. package/dist/destinations/dotdigital/sendEmailCampaign/index.js +4 -4
  54. package/dist/destinations/dotdigital/sendEmailCampaign/index.js.map +1 -1
  55. package/dist/destinations/dotdigital/sendSms/index.js +2 -2
  56. package/dist/destinations/dotdigital/sendSms/index.js.map +1 -1
  57. package/dist/destinations/dotdigital/sendTransactionalEmail/index.js +2 -2
  58. package/dist/destinations/dotdigital/sendTransactionalEmail/index.js.map +1 -1
  59. package/dist/destinations/dotdigital/sendTransactionalSms/index.js +3 -4
  60. package/dist/destinations/dotdigital/sendTransactionalSms/index.js.map +1 -1
  61. package/dist/destinations/dotdigital-audiences/generated-types.d.ts +2 -1
  62. package/dist/destinations/dotdigital-audiences/index.js +82 -10
  63. package/dist/destinations/dotdigital-audiences/index.js.map +1 -1
  64. package/dist/destinations/dotdigital-audiences/syncAudience/functions.d.ts +4 -0
  65. package/dist/destinations/dotdigital-audiences/syncAudience/functions.js +52 -0
  66. package/dist/destinations/dotdigital-audiences/syncAudience/functions.js.map +1 -0
  67. package/dist/destinations/dotdigital-audiences/syncAudience/generated-types.d.ts +0 -1
  68. package/dist/destinations/dotdigital-audiences/syncAudience/index.js +39 -13
  69. package/dist/destinations/dotdigital-audiences/syncAudience/index.js.map +1 -1
  70. package/dist/destinations/dotdigital-audiences/syncAudience/types.d.ts +38 -0
  71. package/dist/destinations/dotdigital-audiences/syncAudience/types.js +3 -0
  72. package/dist/destinations/dotdigital-audiences/syncAudience/types.js.map +1 -0
  73. package/dist/destinations/dotdigital-audiences/types.d.ts +16 -0
  74. package/dist/destinations/dotdigital-audiences/types.js +3 -0
  75. package/dist/destinations/dotdigital-audiences/types.js.map +1 -0
  76. package/dist/destinations/index.js +2 -0
  77. package/dist/destinations/index.js.map +1 -1
  78. package/dist/destinations/klime/index.d.ts +1 -1
  79. package/dist/destinations/klime/index.js +25 -1
  80. package/dist/destinations/klime/index.js.map +1 -1
  81. package/dist/destinations/launchdarkly-audiences/index.js +2 -2
  82. package/dist/destinations/linkedin-conversions/constants.js +2 -1
  83. package/dist/destinations/linkedin-conversions/constants.js.map +1 -1
  84. package/dist/destinations/linkedin-conversions/versioning-info.d.ts +1 -0
  85. package/dist/destinations/linkedin-conversions/versioning-info.js +5 -0
  86. package/dist/destinations/linkedin-conversions/versioning-info.js.map +1 -0
  87. package/dist/destinations/liveramp-audiences/awsClient.js +6 -1
  88. package/dist/destinations/liveramp-audiences/awsClient.js.map +1 -1
  89. package/dist/destinations/marketo-static-lists/constants.d.ts +4 -6
  90. package/dist/destinations/marketo-static-lists/functions.d.ts +1 -1
  91. package/dist/destinations/marketo-static-lists/functions.js +38 -12
  92. package/dist/destinations/marketo-static-lists/functions.js.map +1 -1
  93. package/dist/destinations/memora-internal/upsertProfile.types.d.ts +1 -1
  94. package/dist/destinations/pendo-audiences/constants.d.ts +23 -0
  95. package/dist/destinations/pendo-audiences/constants.js +27 -0
  96. package/dist/destinations/pendo-audiences/constants.js.map +1 -0
  97. package/dist/destinations/pendo-audiences/functions.d.ts +5 -0
  98. package/dist/destinations/pendo-audiences/functions.js +35 -0
  99. package/dist/destinations/pendo-audiences/functions.js.map +1 -0
  100. package/dist/destinations/pendo-audiences/generated-types.d.ts +7 -0
  101. package/dist/destinations/pendo-audiences/generated-types.js +3 -0
  102. package/dist/destinations/pendo-audiences/generated-types.js.map +1 -0
  103. package/dist/destinations/pendo-audiences/index.d.ts +4 -0
  104. package/dist/destinations/pendo-audiences/index.js +114 -0
  105. package/dist/destinations/pendo-audiences/index.js.map +1 -0
  106. package/dist/destinations/pendo-audiences/syncAudience/fields.d.ts +2 -0
  107. package/dist/destinations/pendo-audiences/syncAudience/fields.js +65 -0
  108. package/dist/destinations/pendo-audiences/syncAudience/fields.js.map +1 -0
  109. package/dist/destinations/pendo-audiences/syncAudience/functions.d.ts +3 -0
  110. package/dist/destinations/pendo-audiences/syncAudience/functions.js +108 -0
  111. package/dist/destinations/pendo-audiences/syncAudience/functions.js.map +1 -0
  112. package/dist/destinations/pendo-audiences/syncAudience/generated-types.d.ts +10 -0
  113. package/dist/destinations/pendo-audiences/syncAudience/generated-types.js +3 -0
  114. package/dist/destinations/pendo-audiences/syncAudience/generated-types.js.map +1 -0
  115. package/dist/destinations/pendo-audiences/syncAudience/index.d.ts +5 -0
  116. package/dist/destinations/pendo-audiences/syncAudience/index.js +18 -0
  117. package/dist/destinations/pendo-audiences/syncAudience/index.js.map +1 -0
  118. package/dist/destinations/pendo-audiences/syncAudience/types.d.ts +18 -0
  119. package/dist/destinations/pendo-audiences/syncAudience/types.js +3 -0
  120. package/dist/destinations/pendo-audiences/syncAudience/types.js.map +1 -0
  121. package/dist/destinations/pendo-audiences/types.d.ts +12 -0
  122. package/dist/destinations/pendo-audiences/types.js +3 -0
  123. package/dist/destinations/pendo-audiences/types.js.map +1 -0
  124. package/dist/destinations/reddit-audiences/index.js +2 -1
  125. package/dist/destinations/reddit-audiences/index.js.map +1 -1
  126. package/dist/destinations/reddit-audiences/syncAudience/functions.js +2 -1
  127. package/dist/destinations/reddit-audiences/syncAudience/functions.js.map +1 -1
  128. package/dist/destinations/reddit-audiences/versioning-info.d.ts +2 -0
  129. package/dist/destinations/reddit-audiences/versioning-info.js +6 -0
  130. package/dist/destinations/reddit-audiences/versioning-info.js.map +1 -0
  131. package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js +2 -2
  132. package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js.map +1 -1
  133. package/dist/destinations/the-trade-desk-crm/awsClient.d.ts +6 -1
  134. package/dist/destinations/the-trade-desk-crm/awsClient.js +8 -2
  135. package/dist/destinations/the-trade-desk-crm/awsClient.js.map +1 -1
  136. package/dist/destinations/the-trade-desk-crm/functions.d.ts +16 -1
  137. package/dist/destinations/the-trade-desk-crm/functions.js +9 -4
  138. package/dist/destinations/the-trade-desk-crm/functions.js.map +1 -1
  139. package/dist/destinations/the-trade-desk-crm/index.d.ts +0 -1
  140. package/dist/destinations/the-trade-desk-crm/index.js +3 -3
  141. package/dist/destinations/the-trade-desk-crm/index.js.map +1 -1
  142. package/dist/destinations/the-trade-desk-crm/syncAudience/index.js +8 -6
  143. package/dist/destinations/the-trade-desk-crm/syncAudience/index.js.map +1 -1
  144. package/dist/destinations/the-trade-desk-crm/versioning-info.d.ts +1 -0
  145. package/dist/destinations/the-trade-desk-crm/versioning-info.js +5 -0
  146. package/dist/destinations/the-trade-desk-crm/versioning-info.js.map +1 -0
  147. package/dist/destinations/vibe-audience/functions.js +5 -3
  148. package/dist/destinations/vibe-audience/functions.js.map +1 -1
  149. package/dist/destinations/vibe-audience/index.js +5 -2
  150. package/dist/destinations/vibe-audience/index.js.map +1 -1
  151. package/dist/destinations/vibe-audience/sync/generated-types.d.ts +1 -0
  152. package/dist/destinations/vibe-audience/sync/index.js +6 -0
  153. package/dist/destinations/vibe-audience/sync/index.js.map +1 -1
  154. package/dist/destinations/vibe-audience/types.d.ts +2 -0
  155. package/dist/destinations/youappi-audiences/constants.d.ts +1 -0
  156. package/dist/destinations/youappi-audiences/constants.js +5 -0
  157. package/dist/destinations/youappi-audiences/constants.js.map +1 -0
  158. package/dist/destinations/youappi-audiences/generated-types.d.ts +3 -0
  159. package/dist/destinations/youappi-audiences/generated-types.js +3 -0
  160. package/dist/destinations/youappi-audiences/generated-types.js.map +1 -0
  161. package/dist/destinations/youappi-audiences/index.d.ts +4 -0
  162. package/dist/destinations/youappi-audiences/index.js +45 -0
  163. package/dist/destinations/youappi-audiences/index.js.map +1 -0
  164. package/dist/destinations/youappi-audiences/sync/functions.d.ts +7 -0
  165. package/dist/destinations/youappi-audiences/sync/functions.js +105 -0
  166. package/dist/destinations/youappi-audiences/sync/functions.js.map +1 -0
  167. package/dist/destinations/youappi-audiences/sync/generated-types.d.ts +12 -0
  168. package/dist/destinations/youappi-audiences/sync/generated-types.js +3 -0
  169. package/dist/destinations/youappi-audiences/sync/generated-types.js.map +1 -0
  170. package/dist/destinations/youappi-audiences/sync/index.d.ts +5 -0
  171. package/dist/destinations/youappi-audiences/sync/index.js +101 -0
  172. package/dist/destinations/youappi-audiences/sync/index.js.map +1 -0
  173. package/dist/destinations/youappi-audiences/sync/types.d.ts +14 -0
  174. package/dist/destinations/youappi-audiences/sync/types.js +3 -0
  175. package/dist/destinations/youappi-audiences/sync/types.js.map +1 -0
  176. package/package.json +3 -3
  177. package/dist/destinations/dotdigital/api/dd-api.d.ts +0 -12
  178. package/dist/destinations/dotdigital/api/dd-api.js +0 -38
  179. package/dist/destinations/dotdigital/api/dd-api.js.map +0 -1
  180. package/dist/destinations/dotdigital/api/index.d.ts +0 -8
  181. package/dist/destinations/dotdigital/api/index.js +0 -23
  182. package/dist/destinations/dotdigital/api/index.js.map +0 -1
  183. package/dist/destinations/dotdigital/api/resources/dd-campaign-api.d.ts +0 -10
  184. package/dist/destinations/dotdigital/api/resources/dd-campaign-api.js +0 -52
  185. package/dist/destinations/dotdigital/api/resources/dd-campaign-api.js.map +0 -1
  186. package/dist/destinations/dotdigital/api/resources/dd-contact-api.d.ts +0 -12
  187. package/dist/destinations/dotdigital/api/resources/dd-contact-api.js +0 -50
  188. package/dist/destinations/dotdigital/api/resources/dd-contact-api.js.map +0 -1
  189. package/dist/destinations/dotdigital/api/resources/dd-cpaas-api.d.ts +0 -9
  190. package/dist/destinations/dotdigital/api/resources/dd-cpaas-api.js +0 -17
  191. package/dist/destinations/dotdigital/api/resources/dd-cpaas-api.js.map +0 -1
  192. package/dist/destinations/dotdigital/api/resources/dd-datafields-api.d.ts +0 -15
  193. package/dist/destinations/dotdigital/api/resources/dd-datafields-api.js +0 -98
  194. package/dist/destinations/dotdigital/api/resources/dd-datafields-api.js.map +0 -1
  195. package/dist/destinations/dotdigital/api/resources/dd-email-api.d.ts +0 -9
  196. package/dist/destinations/dotdigital/api/resources/dd-email-api.js +0 -29
  197. package/dist/destinations/dotdigital/api/resources/dd-email-api.js.map +0 -1
  198. package/dist/destinations/dotdigital/api/resources/dd-enrolment-api.d.ts +0 -10
  199. package/dist/destinations/dotdigital/api/resources/dd-enrolment-api.js +0 -33
  200. package/dist/destinations/dotdigital/api/resources/dd-enrolment-api.js.map +0 -1
  201. package/dist/destinations/dotdigital/api/resources/dd-lists-api.d.ts +0 -11
  202. package/dist/destinations/dotdigital/api/resources/dd-lists-api.js +0 -41
  203. package/dist/destinations/dotdigital/api/resources/dd-lists-api.js.map +0 -1
  204. package/dist/destinations/dotdigital/api/resources/dd-sms-api.d.ts +0 -8
  205. package/dist/destinations/dotdigital/api/resources/dd-sms-api.js +0 -21
  206. package/dist/destinations/dotdigital/api/resources/dd-sms-api.js.map +0 -1
  207. package/dist/destinations/dotdigital/api/types.d.ts +0 -117
  208. package/dist/destinations/dotdigital/api/types.js +0 -10
  209. package/dist/destinations/dotdigital/api/types.js.map +0 -1
  210. package/dist/destinations/dotdigital/helpers/functions/checkAndCleanEmail.d.ts +0 -3
  211. package/dist/destinations/dotdigital/helpers/functions/checkAndCleanEmail.js +0 -23
  212. package/dist/destinations/dotdigital/helpers/functions/checkAndCleanEmail.js.map +0 -1
  213. package/dist/destinations/dotdigital/helpers/functions/checkAndCleanMobileNumber.d.ts +0 -2
  214. package/dist/destinations/dotdigital/helpers/functions/checkAndCleanMobileNumber.js +0 -16
  215. package/dist/destinations/dotdigital/helpers/functions/checkAndCleanMobileNumber.js.map +0 -1
  216. package/dist/destinations/dotdigital/helpers/functions/index.d.ts +0 -2
  217. package/dist/destinations/dotdigital/helpers/functions/index.js +0 -12
  218. package/dist/destinations/dotdigital/helpers/functions/index.js.map +0 -1
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEvent = validateEvent;
4
+ function deepCopyConstraintMapping(mapping) {
5
+ const result = {};
6
+ for (const [key, arr] of Object.entries(mapping)) {
7
+ result[key] = [...arr];
8
+ }
9
+ return result;
10
+ }
11
+ function deepCopyChildren(children) {
12
+ const result = {};
13
+ for (const [propName, constraintsUnknown] of Object.entries(children)) {
14
+ const constraints = constraintsUnknown;
15
+ result[propName] = {
16
+ type: constraints.type,
17
+ required: constraints.required,
18
+ isList: constraints.isList,
19
+ pinnedValues: constraints.pinnedValues ? deepCopyConstraintMapping(constraints.pinnedValues) : undefined,
20
+ allowedValues: constraints.allowedValues ? deepCopyConstraintMapping(constraints.allowedValues) : undefined,
21
+ minMaxRanges: constraints.minMaxRanges ? deepCopyConstraintMapping(constraints.minMaxRanges) : undefined,
22
+ children: constraints.children ? deepCopyChildren(constraints.children) : undefined
23
+ };
24
+ }
25
+ return result;
26
+ }
27
+ function mergeChildren(target, source) {
28
+ for (const [propName, sourceConstraintsUnknown] of Object.entries(source)) {
29
+ const sourceConstraints = sourceConstraintsUnknown;
30
+ if (!target[propName]) {
31
+ target[propName] = {
32
+ type: sourceConstraints.type,
33
+ required: sourceConstraints.required,
34
+ isList: sourceConstraints.isList,
35
+ pinnedValues: sourceConstraints.pinnedValues
36
+ ? deepCopyConstraintMapping(sourceConstraints.pinnedValues)
37
+ : undefined,
38
+ allowedValues: sourceConstraints.allowedValues
39
+ ? deepCopyConstraintMapping(sourceConstraints.allowedValues)
40
+ : undefined,
41
+ minMaxRanges: sourceConstraints.minMaxRanges
42
+ ? deepCopyConstraintMapping(sourceConstraints.minMaxRanges)
43
+ : undefined,
44
+ children: sourceConstraints.children ? deepCopyChildren(sourceConstraints.children) : undefined
45
+ };
46
+ }
47
+ else {
48
+ const targetConstraints = target[propName];
49
+ mergeConstraintMappings(targetConstraints, sourceConstraints);
50
+ if (sourceConstraints.isList !== undefined) {
51
+ targetConstraints.isList = sourceConstraints.isList;
52
+ }
53
+ if (sourceConstraints.children) {
54
+ if (!targetConstraints.children) {
55
+ targetConstraints.children = deepCopyChildren(sourceConstraints.children);
56
+ }
57
+ else {
58
+ mergeChildren(targetConstraints.children, sourceConstraints.children);
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ function mergeConstraintMappings(target, source) {
65
+ if (source.pinnedValues) {
66
+ if (!target.pinnedValues) {
67
+ target.pinnedValues = {};
68
+ }
69
+ for (const key of Object.keys(source.pinnedValues)) {
70
+ if (target.pinnedValues[key]) {
71
+ const merged = new Set(target.pinnedValues[key]);
72
+ for (const id of source.pinnedValues[key]) {
73
+ merged.add(id);
74
+ }
75
+ target.pinnedValues[key] = Array.from(merged);
76
+ }
77
+ else {
78
+ target.pinnedValues[key] = [...source.pinnedValues[key]];
79
+ }
80
+ }
81
+ }
82
+ if (source.allowedValues) {
83
+ if (!target.allowedValues) {
84
+ target.allowedValues = {};
85
+ }
86
+ for (const key of Object.keys(source.allowedValues)) {
87
+ if (target.allowedValues[key]) {
88
+ const merged = new Set(target.allowedValues[key]);
89
+ for (const id of source.allowedValues[key]) {
90
+ merged.add(id);
91
+ }
92
+ target.allowedValues[key] = Array.from(merged);
93
+ }
94
+ else {
95
+ target.allowedValues[key] = [...source.allowedValues[key]];
96
+ }
97
+ }
98
+ }
99
+ if (source.minMaxRanges) {
100
+ if (!target.minMaxRanges) {
101
+ target.minMaxRanges = {};
102
+ }
103
+ for (const key of Object.keys(source.minMaxRanges)) {
104
+ if (target.minMaxRanges[key]) {
105
+ const merged = new Set(target.minMaxRanges[key]);
106
+ for (const id of source.minMaxRanges[key]) {
107
+ merged.add(id);
108
+ }
109
+ target.minMaxRanges[key] = Array.from(merged);
110
+ }
111
+ else {
112
+ target.minMaxRanges[key] = [...source.minMaxRanges[key]];
113
+ }
114
+ }
115
+ }
116
+ }
117
+ function validateEvent(properties, specResponse) {
118
+ const caches = {
119
+ allowedValuesCache: new Map()
120
+ };
121
+ const allEventIds = collectAllEventIds(specResponse.events);
122
+ const constraintsByProperty = collectConstraintsByPropertyName(specResponse.events);
123
+ const propertyResults = {};
124
+ for (const propName of Object.keys(properties)) {
125
+ const value = properties[propName];
126
+ const constraints = constraintsByProperty[propName];
127
+ if (!constraints) {
128
+ propertyResults[propName] = {};
129
+ }
130
+ else {
131
+ const result = validatePropertyConstraints(value, constraints, allEventIds, caches);
132
+ propertyResults[propName] = result;
133
+ }
134
+ }
135
+ return {
136
+ metadata: specResponse.metadata,
137
+ propertyResults
138
+ };
139
+ }
140
+ function collectAllEventIds(events) {
141
+ const ids = [];
142
+ for (const event of events) {
143
+ ids.push(event.baseEventId);
144
+ for (let j = 0; j < event.variantIds.length; j++) {
145
+ ids.push(event.variantIds[j]);
146
+ }
147
+ }
148
+ return ids;
149
+ }
150
+ function collectConstraintsByPropertyName(events) {
151
+ if (events.length === 0) {
152
+ return {};
153
+ }
154
+ if (events.length === 1) {
155
+ return events[0].props;
156
+ }
157
+ const result = {};
158
+ for (const event of events) {
159
+ for (const [propName, constraintsUnknown] of Object.entries(event.props)) {
160
+ const constraints = constraintsUnknown;
161
+ if (!result[propName]) {
162
+ result[propName] = {
163
+ type: constraints.type,
164
+ required: constraints.required,
165
+ isList: constraints.isList,
166
+ pinnedValues: constraints.pinnedValues ? { ...constraints.pinnedValues } : undefined,
167
+ allowedValues: constraints.allowedValues ? { ...constraints.allowedValues } : undefined,
168
+ minMaxRanges: constraints.minMaxRanges ? { ...constraints.minMaxRanges } : undefined,
169
+ children: constraints.children ? deepCopyChildren(constraints.children) : undefined
170
+ };
171
+ }
172
+ else {
173
+ const existing = result[propName];
174
+ mergeConstraintMappings(existing, constraints);
175
+ if (constraints.isList !== undefined) {
176
+ existing.isList = constraints.isList;
177
+ }
178
+ if (constraints.children) {
179
+ if (!existing.children) {
180
+ existing.children = deepCopyChildren(constraints.children);
181
+ }
182
+ else {
183
+ mergeChildren(existing.children, constraints.children);
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+ return result;
190
+ }
191
+ const MAX_CHILD_DEPTH = 2;
192
+ function validatePropertyConstraints(value, constraints, allEventIds, caches, depth = 0) {
193
+ const result = {};
194
+ if (!constraints.required && (value === null || value === undefined)) {
195
+ return result;
196
+ }
197
+ if (depth >= MAX_CHILD_DEPTH) {
198
+ return result;
199
+ }
200
+ if (constraints.isList) {
201
+ return validateListProperty(value, constraints, allEventIds, caches, depth);
202
+ }
203
+ if (constraints.children) {
204
+ return validateObjectProperty(value, constraints, allEventIds, caches, depth);
205
+ }
206
+ return validatePrimitiveProperty(value, constraints, allEventIds, caches);
207
+ }
208
+ function validateListProperty(value, constraints, allEventIds, caches, depth) {
209
+ if (!Array.isArray(value)) {
210
+ return {};
211
+ }
212
+ const listValue = value;
213
+ if (constraints.children && Array.isArray(listValue) && listValue.length > 0) {
214
+ const aggregatedChildrenResults = {};
215
+ for (const item of listValue) {
216
+ const itemResult = validateObjectProperty(item, constraints, allEventIds, caches, depth);
217
+ if (itemResult.children) {
218
+ for (const [childName, childResult] of Object.entries(itemResult.children)) {
219
+ if (!aggregatedChildrenResults[childName]) {
220
+ aggregatedChildrenResults[childName] = {
221
+ failed: new Set(),
222
+ passed: new Set(),
223
+ children: {}
224
+ };
225
+ }
226
+ if (childResult.failedEventIds) {
227
+ addIdsToSet(childResult.failedEventIds, aggregatedChildrenResults[childName].failed);
228
+ }
229
+ }
230
+ }
231
+ }
232
+ const resultChildren = {};
233
+ for (const [childName, agg] of Object.entries(aggregatedChildrenResults)) {
234
+ if (agg.failed.size > 0) {
235
+ resultChildren[childName] = buildValidationResult(agg.failed, allEventIds);
236
+ }
237
+ }
238
+ if (Object.keys(resultChildren).length > 0) {
239
+ return { children: resultChildren };
240
+ }
241
+ return {};
242
+ }
243
+ const failedIds = new Set();
244
+ for (const item of listValue) {
245
+ const itemFailedIds = new Set();
246
+ if (constraints.pinnedValues) {
247
+ checkPinnedValues(item, constraints.pinnedValues, itemFailedIds);
248
+ }
249
+ if (constraints.allowedValues) {
250
+ checkAllowedValues(item, constraints.allowedValues, itemFailedIds, caches.allowedValuesCache);
251
+ }
252
+ if (constraints.minMaxRanges) {
253
+ checkMinMaxRanges(item, constraints.minMaxRanges, itemFailedIds);
254
+ }
255
+ addIdsToSet(Array.from(itemFailedIds), failedIds);
256
+ }
257
+ return buildValidationResult(failedIds, allEventIds);
258
+ }
259
+ function validateObjectProperty(value, constraints, allEventIds, caches, depth) {
260
+ const result = {};
261
+ const childrenResults = {};
262
+ const valueObj = typeof value === 'object' && value !== null && !Array.isArray(value)
263
+ ? value
264
+ : {};
265
+ if (constraints.children) {
266
+ for (const [childName, childConstraints] of Object.entries(constraints.children)) {
267
+ if (!Object.prototype.hasOwnProperty.call(valueObj, childName)) {
268
+ continue;
269
+ }
270
+ const childValue = valueObj[childName];
271
+ const childResult = validatePropertyConstraints(childValue, childConstraints, allEventIds, caches, depth + 1);
272
+ if (childResult.failedEventIds || childResult.passedEventIds || childResult.children) {
273
+ childrenResults[childName] = childResult;
274
+ }
275
+ }
276
+ }
277
+ if (Object.keys(childrenResults).length > 0) {
278
+ result.children = childrenResults;
279
+ }
280
+ return result;
281
+ }
282
+ function validatePrimitiveProperty(value, constraints, allEventIds, caches) {
283
+ const failedIds = new Set();
284
+ if (constraints.pinnedValues) {
285
+ checkPinnedValues(value, constraints.pinnedValues, failedIds);
286
+ }
287
+ if (constraints.allowedValues) {
288
+ checkAllowedValues(value, constraints.allowedValues, failedIds, caches.allowedValuesCache);
289
+ }
290
+ if (constraints.minMaxRanges) {
291
+ checkMinMaxRanges(value, constraints.minMaxRanges, failedIds);
292
+ }
293
+ return buildValidationResult(failedIds, allEventIds);
294
+ }
295
+ function buildValidationResult(failedIds, allEventIds) {
296
+ const failedArray = Array.from(failedIds);
297
+ if (failedArray.length === 0) {
298
+ return {};
299
+ }
300
+ const passedIds = allEventIds.filter((id) => !failedIds.has(id));
301
+ if (passedIds.length < failedArray.length && passedIds.length > 0) {
302
+ return { passedEventIds: passedIds };
303
+ }
304
+ else {
305
+ return { failedEventIds: failedArray };
306
+ }
307
+ }
308
+ function addIdsToSet(ids, set) {
309
+ for (const id of ids) {
310
+ set.add(id);
311
+ }
312
+ }
313
+ function convertValueToString(value) {
314
+ if (value === null ||
315
+ value === undefined ||
316
+ typeof value === 'boolean' ||
317
+ typeof value === 'number' ||
318
+ typeof value === 'string') {
319
+ return String(value);
320
+ }
321
+ if (Array.isArray(value) || typeof value === 'object') {
322
+ try {
323
+ return JSON.stringify(value);
324
+ }
325
+ catch (e) {
326
+ return String(value);
327
+ }
328
+ }
329
+ return String(value);
330
+ }
331
+ function checkPinnedValues(value, pinnedValues, failedIds) {
332
+ const stringValue = convertValueToString(value);
333
+ for (const [pinnedValue, eventIds] of Object.entries(pinnedValues)) {
334
+ if (stringValue !== pinnedValue) {
335
+ addIdsToSet(eventIds, failedIds);
336
+ }
337
+ }
338
+ }
339
+ function checkAllowedValues(value, allowedValues, failedIds, allowedValuesCache) {
340
+ const stringValue = convertValueToString(value);
341
+ for (const [allowedArrayJson, eventIds] of Object.entries(allowedValues)) {
342
+ let allowedSet = allowedValuesCache.get(allowedArrayJson);
343
+ if (!allowedSet) {
344
+ try {
345
+ const allowedArray = JSON.parse(allowedArrayJson);
346
+ allowedSet = new Set(allowedArray);
347
+ allowedValuesCache.set(allowedArrayJson, allowedSet);
348
+ }
349
+ catch (e) {
350
+ continue;
351
+ }
352
+ }
353
+ if (!allowedSet.has(stringValue)) {
354
+ addIdsToSet(eventIds, failedIds);
355
+ }
356
+ }
357
+ }
358
+ function checkMinMaxRanges(value, minMaxRanges, failedIds) {
359
+ if (typeof value !== 'number') {
360
+ for (const eventIds of Object.values(minMaxRanges)) {
361
+ addIdsToSet(eventIds, failedIds);
362
+ }
363
+ return;
364
+ }
365
+ if (Number.isNaN(value)) {
366
+ for (const eventIds of Object.values(minMaxRanges)) {
367
+ addIdsToSet(eventIds, failedIds);
368
+ }
369
+ return;
370
+ }
371
+ for (const [rangeStr, eventIds] of Object.entries(minMaxRanges)) {
372
+ const [minStr, maxStr] = rangeStr.split(',');
373
+ const min = minStr === '' ? -Infinity : parseFloat(minStr);
374
+ const max = maxStr === '' ? Infinity : parseFloat(maxStr);
375
+ if (isNaN(min) || isNaN(max)) {
376
+ continue;
377
+ }
378
+ if (value < min || value > max) {
379
+ addIdsToSet(eventIds, failedIds);
380
+ }
381
+ }
382
+ }
383
+ //# sourceMappingURL=event-validator-functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-validator-functions.js","sourceRoot":"","sources":["../../../../../src/destinations/avo-v2/sendSchemaToInspector/functions/event-validator-functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { PropertyValidationResult, EventProperty } from '../types';
2
+ import type { RequestClient } from '@segment/actions-core';
3
+ import type { Settings } from '../../generated-types';
4
+ import { Payload } from '../generated-types';
5
+ export declare const send: (request: RequestClient, settings: Settings, payloads: Payload[]) => Promise<import("@segment/actions-core/src").ModifiedResponse<unknown>>;
6
+ export declare function mergeValidationResults(eventProperties: EventProperty[], propertyResults: Record<string, PropertyValidationResult>): void;
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.send = void 0;
4
+ exports.mergeValidationResults = mergeValidationResults;
5
+ const hashing_utils_1 = require("../../../../lib/hashing-utils");
6
+ const actions_core_1 = require("@segment/actions-core");
7
+ const schema_functions_1 = require("./schema-functions");
8
+ const encryption_functions_1 = require("./encryption-functions");
9
+ const event_validator_functions_1 = require("./event-validator-functions");
10
+ const constants_1 = require("../../constants");
11
+ const send = async (request, settings, payloads) => {
12
+ const anonymousId = payloads[0]?.anonymousId;
13
+ const userId = payloads[0]?.userId;
14
+ const streamId = anonymousId ? anonymousId : userId ? (0, hashing_utils_1.processHashing)(userId, 'sha256', 'hex') : 'unknown';
15
+ const eventSpecMap = await fetchEventSpecsForBatch(request, settings, payloads, streamId);
16
+ const { appVersionPropertyName, publicEncryptionKey, env, apiKey } = settings;
17
+ const isDevOrStaging = env === 'dev' || env === 'staging';
18
+ let encryptionSession;
19
+ if (publicEncryptionKey && isDevOrStaging) {
20
+ try {
21
+ encryptionSession = (0, encryption_functions_1.createEncryptionSession)(publicEncryptionKey);
22
+ }
23
+ catch {
24
+ }
25
+ }
26
+ const json = payloads.map((payload) => {
27
+ const { event, pageUrl, appName, properties, messageId, createdAt } = payload;
28
+ const eventProperties = (0, schema_functions_1.extractSchema)(payload.properties, encryptionSession);
29
+ const eventSpec = eventSpecMap?.get(event) ?? null;
30
+ let eventSpecMetadata;
31
+ if (eventSpec) {
32
+ const validationResult = (0, event_validator_functions_1.validateEvent)(properties, eventSpec);
33
+ mergeValidationResults(eventProperties, validationResult.propertyResults);
34
+ eventSpecMetadata = validationResult.metadata;
35
+ }
36
+ const itemJSON = {
37
+ appName: appName ?? (pageUrl ? pageUrl.split('/')[2] : 'unnamed Segment app'),
38
+ appVersion: appVersionPropertyName && properties[appVersionPropertyName]
39
+ ? properties[appVersionPropertyName]
40
+ : payload.appVersion ?? 'unversioned',
41
+ libVersion: '2.0.0',
42
+ libPlatform: 'Segment',
43
+ messageId,
44
+ createdAt,
45
+ sessionId: '',
46
+ ...(publicEncryptionKey ? { publicEncryptionKey } : {}),
47
+ type: 'event',
48
+ streamId,
49
+ eventName: event,
50
+ eventProperties,
51
+ eventId: null,
52
+ eventHash: null,
53
+ ...(typeof eventSpecMetadata !== 'undefined' ? { eventSpecMetadata } : {})
54
+ };
55
+ return itemJSON;
56
+ });
57
+ if (!json || json.length === 0) {
58
+ throw new actions_core_1.PayloadValidationError('No events generated from payload');
59
+ }
60
+ const endpoint = 'https://api.avo.app/inspector/segment/v1/track';
61
+ return request(endpoint, {
62
+ method: 'post',
63
+ headers: {
64
+ accept: 'application/json',
65
+ 'content-type': 'application/json',
66
+ 'api-key': apiKey,
67
+ env,
68
+ streamId
69
+ },
70
+ json
71
+ });
72
+ };
73
+ exports.send = send;
74
+ async function fetchEventSpecsForBatch(request, settings, payload, streamId) {
75
+ const { env, apiKey } = settings;
76
+ if (!['dev', 'staging'].includes(env)) {
77
+ return Promise.resolve(null);
78
+ }
79
+ const eventSpecMap = new Map();
80
+ const uniqueEventNames = [...new Set(payload.map((p) => p.event))];
81
+ const requests = uniqueEventNames.map(async (eventName) => {
82
+ const queryParams = new URLSearchParams({
83
+ apiKey,
84
+ streamId,
85
+ eventName
86
+ });
87
+ const url = `${constants_1.DEFAULT_BASE_URL}/trackingPlan/eventSpec?${queryParams.toString()}`;
88
+ try {
89
+ const response = await request(url, {
90
+ method: 'GET',
91
+ headers: {
92
+ 'Content-Type': 'application/json',
93
+ 'User-Agent': 'Segment (Actions)'
94
+ }
95
+ });
96
+ const { events, metadata } = response.data;
97
+ const eventSpec = {
98
+ metadata,
99
+ events: events.map((evt) => {
100
+ const eventIds = [evt.id, ...evt.vids];
101
+ return {
102
+ branchId: evt.b,
103
+ baseEventId: evt.id,
104
+ variantIds: evt.vids,
105
+ props: Object.fromEntries(Object.entries(evt.p).map(([propName, propWire]) => [
106
+ propName,
107
+ convertWirePropToConstraints(propWire, eventIds)
108
+ ]))
109
+ };
110
+ })
111
+ };
112
+ return { eventName, spec: eventSpec };
113
+ }
114
+ catch {
115
+ return { eventName, spec: null };
116
+ }
117
+ });
118
+ const results = await Promise.all(requests);
119
+ for (const { eventName, spec } of results) {
120
+ eventSpecMap.set(eventName, spec);
121
+ }
122
+ return eventSpecMap;
123
+ }
124
+ const MAX_WIRE_DEPTH = 2;
125
+ function convertWirePropToConstraints(wire, eventIds, depth = 0) {
126
+ const type = wire.t === 'string' ? wire.t : 'object';
127
+ const required = wire.r;
128
+ const isListType = wire.l === true;
129
+ const result = {
130
+ type: isListType ? 'list' : type,
131
+ required,
132
+ isList: isListType
133
+ };
134
+ if (wire.v) {
135
+ if (Array.isArray(wire.v)) {
136
+ const key = JSON.stringify(wire.v);
137
+ result.allowedValues = { [key]: [...eventIds] };
138
+ }
139
+ else if (typeof wire.v === 'object') {
140
+ result.allowedValues = {};
141
+ for (const [allowedArrayJson, vEventIds] of Object.entries(wire.v)) {
142
+ result.allowedValues[allowedArrayJson] = [...vEventIds];
143
+ }
144
+ }
145
+ }
146
+ if (wire.min !== undefined || wire.max !== undefined) {
147
+ const minStr = wire.min !== undefined ? wire.min.toString() : '';
148
+ const maxStr = wire.max !== undefined ? wire.max.toString() : '';
149
+ const key = `${minStr},${maxStr}`;
150
+ result.minMaxRanges = { [key]: [...eventIds] };
151
+ }
152
+ const nestedSchema = depth < MAX_WIRE_DEPTH && wire && typeof wire.t === 'object' && wire.t !== null ? wire.t : undefined;
153
+ if (nestedSchema) {
154
+ result.children = {};
155
+ for (const [childName, childWire] of Object.entries(nestedSchema)) {
156
+ result.children[childName] = convertWirePropToConstraints(childWire, eventIds, depth + 1);
157
+ }
158
+ }
159
+ return result;
160
+ }
161
+ function isEventProperty(child) {
162
+ return typeof child === 'object' && child !== null && !Array.isArray(child) && 'propertyName' in child;
163
+ }
164
+ function mergeValidationResults(eventProperties, propertyResults) {
165
+ for (const prop of eventProperties) {
166
+ const validationResult = propertyResults[prop.propertyName];
167
+ if (validationResult) {
168
+ if (validationResult.failedEventIds && validationResult.failedEventIds.length > 0) {
169
+ prop.failedEventIds = validationResult.failedEventIds;
170
+ }
171
+ if (validationResult.passedEventIds && validationResult.passedEventIds.length > 0) {
172
+ prop.passedEventIds = validationResult.passedEventIds;
173
+ }
174
+ if (prop.children && Array.isArray(prop.children) && validationResult.children) {
175
+ const childrenMap = {};
176
+ for (const child of prop.children) {
177
+ if (isEventProperty(child)) {
178
+ childrenMap[child.propertyName] = child;
179
+ }
180
+ }
181
+ for (const [childName, childValidationResult] of Object.entries(validationResult.children)) {
182
+ const childProp = childrenMap[childName];
183
+ if (childProp) {
184
+ if (childValidationResult.failedEventIds && childValidationResult.failedEventIds.length > 0) {
185
+ childProp.failedEventIds = childValidationResult.failedEventIds;
186
+ }
187
+ if (childValidationResult.passedEventIds && childValidationResult.passedEventIds.length > 0) {
188
+ childProp.passedEventIds = childValidationResult.passedEventIds;
189
+ }
190
+ if (childProp.children && Array.isArray(childProp.children) && childValidationResult.children) {
191
+ const eventPropertyChildren = childProp.children.filter(isEventProperty);
192
+ mergeValidationResults(eventPropertyChildren, childValidationResult.children);
193
+ }
194
+ }
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../../src/destinations/avo-v2/sendSchemaToInspector/functions/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { EventProperty } from '../types';
2
+ import { EncryptionSession } from './encryption-functions';
3
+ export declare function extractSchema(eventProperties: {
4
+ [propName: string]: unknown;
5
+ }, encryptionSession?: EncryptionSession): Array<EventProperty>;