@segment/action-destinations 3.462.1-staging-b62296b04.0 → 3.463.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 (254) hide show
  1. package/dist/destinations/airship/utilities.js.map +1 -1
  2. package/dist/destinations/altertable/event/index.js.map +1 -1
  3. package/dist/destinations/altertable/fields.js.map +1 -1
  4. package/dist/destinations/altertable/identify/index.js +3 -1
  5. package/dist/destinations/altertable/identify/index.js.map +1 -1
  6. package/dist/destinations/altertable/index.js +1 -1
  7. package/dist/destinations/altertable/utils.js +7 -3
  8. package/dist/destinations/altertable/utils.js.map +1 -1
  9. package/dist/destinations/amazon-amc/function.d.ts +2 -4
  10. package/dist/destinations/amazon-amc/function.js +18 -44
  11. package/dist/destinations/amazon-amc/function.js.map +1 -1
  12. package/dist/destinations/amazon-amc/generated-types.d.ts +1 -5
  13. package/dist/destinations/amazon-amc/index.js +34 -89
  14. package/dist/destinations/amazon-amc/index.js.map +1 -1
  15. package/dist/destinations/amazon-amc/syncAudiencesToDSP/index.js +1 -1
  16. package/dist/destinations/amazon-amc/syncAudiencesToDSP/index.js.map +1 -1
  17. package/dist/destinations/amazon-amc/types.d.ts +0 -44
  18. package/dist/destinations/amazon-amc/types.js +1 -4
  19. package/dist/destinations/amazon-amc/types.js.map +1 -1
  20. package/dist/destinations/amazon-amc/utils.d.ts +49 -3
  21. package/dist/destinations/amazon-amc/utils.js +24 -10
  22. package/dist/destinations/amazon-amc/utils.js.map +1 -1
  23. package/dist/destinations/amplitude/event-schema.js +3 -30
  24. package/dist/destinations/amplitude/event-schema.js.map +1 -1
  25. package/dist/destinations/amplitude/logEvent/generated-types.d.ts +0 -4
  26. package/dist/destinations/amplitude/logEvent/index.js +3 -11
  27. package/dist/destinations/amplitude/logEvent/index.js.map +1 -1
  28. package/dist/destinations/amplitude/logEventV2/generated-types.d.ts +0 -4
  29. package/dist/destinations/amplitude/logEventV2/index.js +5 -10
  30. package/dist/destinations/amplitude/logEventV2/index.js.map +1 -1
  31. package/dist/destinations/amplitude/logPurchase/generated-types.d.ts +0 -4
  32. package/dist/destinations/amplitude/logPurchase/index.js +5 -10
  33. package/dist/destinations/amplitude/logPurchase/index.js.map +1 -1
  34. package/dist/destinations/aws-kinesis/utils.js +0 -3
  35. package/dist/destinations/aws-kinesis/utils.js.map +1 -1
  36. package/dist/destinations/braze/ecommerce/constants.d.ts +7 -0
  37. package/dist/destinations/braze/ecommerce/constants.js +11 -0
  38. package/dist/destinations/braze/ecommerce/constants.js.map +1 -0
  39. package/dist/destinations/braze/ecommerce/fields.d.ts +24 -0
  40. package/dist/destinations/braze/ecommerce/fields.js +523 -0
  41. package/dist/destinations/braze/ecommerce/fields.js.map +1 -0
  42. package/dist/destinations/braze/ecommerce/functions.d.ts +11 -0
  43. package/dist/destinations/braze/ecommerce/functions.js +261 -0
  44. package/dist/destinations/braze/ecommerce/functions.js.map +1 -0
  45. package/dist/destinations/braze/ecommerce/generated-types.d.ts +39 -0
  46. package/dist/destinations/braze/ecommerce/generated-types.js.map +1 -0
  47. package/dist/destinations/{salesforce-marketing-cloud/asyncDataExtension → braze/ecommerce}/index.d.ts +1 -1
  48. package/dist/destinations/braze/ecommerce/index.js +29 -0
  49. package/dist/destinations/braze/ecommerce/index.js.map +1 -0
  50. package/dist/destinations/braze/ecommerce/types.d.ts +117 -0
  51. package/dist/destinations/braze/ecommerce/types.js +3 -0
  52. package/dist/destinations/braze/ecommerce/types.js.map +1 -0
  53. package/dist/destinations/braze/ecommerceSingleProduct/generated-types.d.ts +37 -0
  54. package/dist/destinations/braze/ecommerceSingleProduct/generated-types.js +3 -0
  55. package/dist/destinations/braze/ecommerceSingleProduct/generated-types.js.map +1 -0
  56. package/dist/destinations/braze/ecommerceSingleProduct/index.d.ts +5 -0
  57. package/dist/destinations/braze/ecommerceSingleProduct/index.js +29 -0
  58. package/dist/destinations/braze/ecommerceSingleProduct/index.js.map +1 -0
  59. package/dist/destinations/braze/index.js +65 -5
  60. package/dist/destinations/braze/index.js.map +1 -1
  61. package/dist/destinations/braze/trackPurchase/index.js +1 -1
  62. package/dist/destinations/braze/trackPurchase/index.js.map +1 -1
  63. package/dist/destinations/braze/trackPurchase2/index.js +1 -1
  64. package/dist/destinations/braze/trackPurchase2/index.js.map +1 -1
  65. package/dist/destinations/braze/updateUserProfile/generated-types.d.ts +0 -4
  66. package/dist/destinations/braze/updateUserProfile/index.js +0 -25
  67. package/dist/destinations/braze/updateUserProfile/index.js.map +1 -1
  68. package/dist/destinations/braze/updateUserProfile2/generated-types.d.ts +0 -4
  69. package/dist/destinations/braze/updateUserProfile2/index.js +0 -25
  70. package/dist/destinations/braze/updateUserProfile2/index.js.map +1 -1
  71. package/dist/destinations/braze/utils.js +0 -2
  72. package/dist/destinations/braze/utils.js.map +1 -1
  73. package/dist/destinations/collab-travel-crm/identifyUser/index.d.ts +1 -1
  74. package/dist/destinations/collab-travel-crm/identifyUser/index.js.map +1 -1
  75. package/dist/destinations/customerio/index.js +2 -3
  76. package/dist/destinations/customerio/index.js.map +1 -1
  77. package/dist/destinations/customerio/utils.js +2 -3
  78. package/dist/destinations/customerio/utils.js.map +1 -1
  79. package/dist/destinations/facebook-conversions-api/fb-capi-properties.d.ts +0 -1
  80. package/dist/destinations/facebook-conversions-api/fb-capi-properties.js +1 -6
  81. package/dist/destinations/facebook-conversions-api/fb-capi-properties.js.map +1 -1
  82. package/dist/destinations/facebook-conversions-api/purchase/generated-types.d.ts +0 -1
  83. package/dist/destinations/facebook-conversions-api/purchase/index.js +0 -2
  84. package/dist/destinations/facebook-conversions-api/purchase/index.js.map +1 -1
  85. package/dist/destinations/facebook-conversions-api/purchase2/generated-types.d.ts +0 -1
  86. package/dist/destinations/facebook-conversions-api/purchase2/index.js +93 -4
  87. package/dist/destinations/facebook-conversions-api/purchase2/index.js.map +1 -1
  88. package/dist/destinations/fullstory/request-params.js +2 -3
  89. package/dist/destinations/fullstory/request-params.js.map +1 -1
  90. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js +1 -1
  91. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js.map +1 -1
  92. package/dist/destinations/google-enhanced-conversions/uploadClickConversion2/index.js +1 -1
  93. package/dist/destinations/google-enhanced-conversions/uploadClickConversion2/index.js.map +1 -1
  94. package/dist/destinations/hubspot/api/index.js +4 -5
  95. package/dist/destinations/hubspot/api/index.js.map +1 -1
  96. package/dist/destinations/hubspot/customEvent/client.js +4 -5
  97. package/dist/destinations/hubspot/customEvent/client.js.map +1 -1
  98. package/dist/destinations/hubspot/customEvent/functions/cache-functions.d.ts +0 -2
  99. package/dist/destinations/hubspot/customEvent/functions/cache-functions.js +2 -19
  100. package/dist/destinations/hubspot/customEvent/functions/cache-functions.js.map +1 -1
  101. package/dist/destinations/hubspot/customEvent/functions/dynamic-field-functions.js +3 -4
  102. package/dist/destinations/hubspot/customEvent/functions/dynamic-field-functions.js.map +1 -1
  103. package/dist/destinations/hubspot/customEvent/functions/hubspot-event-schema-functions.d.ts +1 -2
  104. package/dist/destinations/hubspot/customEvent/functions/hubspot-event-schema-functions.js +3 -14
  105. package/dist/destinations/hubspot/customEvent/functions/hubspot-event-schema-functions.js.map +1 -1
  106. package/dist/destinations/hubspot/customEvent/index.js +1 -2
  107. package/dist/destinations/hubspot/customEvent/index.js.map +1 -1
  108. package/dist/destinations/hubspot/customEvent/types.d.ts +0 -1
  109. package/dist/destinations/hubspot/index.js +2 -3
  110. package/dist/destinations/hubspot/index.js.map +1 -1
  111. package/dist/destinations/hubspot/sendCustomBehavioralEvent/index.js +2 -3
  112. package/dist/destinations/hubspot/sendCustomBehavioralEvent/index.js.map +1 -1
  113. package/dist/destinations/hubspot/upsertCompany/index.js +2 -3
  114. package/dist/destinations/hubspot/upsertCompany/index.js.map +1 -1
  115. package/dist/destinations/hubspot/upsertContact/index.js +5 -6
  116. package/dist/destinations/hubspot/upsertContact/index.js.map +1 -1
  117. package/dist/destinations/hubspot/upsertCustomObjectRecord/index.js +2 -3
  118. package/dist/destinations/hubspot/upsertCustomObjectRecord/index.js.map +1 -1
  119. package/dist/destinations/hubspot/upsertObject/client.js +8 -9
  120. package/dist/destinations/hubspot/upsertObject/client.js.map +1 -1
  121. package/dist/destinations/hubspot/upsertObject/functions/dynamic-field-functions.js +7 -8
  122. package/dist/destinations/hubspot/upsertObject/functions/dynamic-field-functions.js.map +1 -1
  123. package/dist/destinations/index.js +0 -1
  124. package/dist/destinations/index.js.map +1 -1
  125. package/dist/destinations/kafka/generated-types.d.ts +3 -0
  126. package/dist/destinations/kafka/index.js +21 -0
  127. package/dist/destinations/kafka/index.js.map +1 -1
  128. package/dist/destinations/kafka/send/generated-types.d.ts +0 -1
  129. package/dist/destinations/kafka/send/index.js +0 -7
  130. package/dist/destinations/kafka/send/index.js.map +1 -1
  131. package/dist/destinations/kafka/utils.js +13 -0
  132. package/dist/destinations/kafka/utils.js.map +1 -1
  133. package/dist/destinations/linkedin-audiences/api.js +1 -2
  134. package/dist/destinations/linkedin-audiences/api.js.map +1 -1
  135. package/dist/destinations/linkedin-audiences/constants.js +1 -2
  136. package/dist/destinations/linkedin-audiences/constants.js.map +1 -1
  137. package/dist/destinations/linkedin-audiences/updateAudience/fields.js.map +1 -1
  138. package/dist/destinations/linkedin-audiences/updateAudience/functions.js +1 -1
  139. package/dist/destinations/linkedin-audiences/updateAudience/functions.js.map +1 -1
  140. package/dist/destinations/linkedin-conversions/api/index.js +2 -6
  141. package/dist/destinations/linkedin-conversions/api/index.js.map +1 -1
  142. package/dist/destinations/linkedin-conversions/streamConversion/index.js.map +1 -1
  143. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js +17 -59
  144. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js.map +1 -1
  145. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js +17 -57
  146. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js.map +1 -1
  147. package/dist/destinations/memora/index.d.ts +1 -1
  148. package/dist/destinations/memora/index.js +7 -3
  149. package/dist/destinations/memora/index.js.map +1 -1
  150. package/dist/destinations/memora/upsertProfile/generated-types.d.ts +3 -3
  151. package/dist/destinations/memora/upsertProfile/index.js +79 -160
  152. package/dist/destinations/memora/upsertProfile/index.js.map +1 -1
  153. package/dist/destinations/ms-bing-capi/sendEvent/fields.js +1 -0
  154. package/dist/destinations/ms-bing-capi/sendEvent/fields.js.map +1 -1
  155. package/dist/destinations/optimizely-advanced-audience-targeting/syncAudience/index.js +1 -4
  156. package/dist/destinations/optimizely-advanced-audience-targeting/syncAudience/index.js.map +1 -1
  157. package/dist/destinations/optimizely-advanced-audience-targeting/syncAudience/optimizely-client.js +3 -4
  158. package/dist/destinations/optimizely-advanced-audience-targeting/syncAudience/optimizely-client.js.map +1 -1
  159. package/dist/destinations/qualified/dynamic-functions.d.ts +1 -1
  160. package/dist/destinations/qualified/dynamic-functions.js +1 -1
  161. package/dist/destinations/qualified/dynamic-functions.js.map +1 -1
  162. package/dist/destinations/qualified/index.js.map +1 -1
  163. package/dist/destinations/qualified/updateCompany/index.js.map +1 -1
  164. package/dist/destinations/qualified/upsertLead/index.js.map +1 -1
  165. package/dist/destinations/rokt-capi/index.js.map +1 -1
  166. package/dist/destinations/rokt-capi/send/constants.js +2 -2
  167. package/dist/destinations/rokt-capi/send/fields.js +3 -3
  168. package/dist/destinations/rokt-capi/send/fields.js.map +1 -1
  169. package/dist/destinations/rokt-capi/send/functions.js +16 -19
  170. package/dist/destinations/rokt-capi/send/functions.js.map +1 -1
  171. package/dist/destinations/rokt-capi/send/types.d.ts +8 -8
  172. package/dist/destinations/salesforce/sf-operations.d.ts +1 -0
  173. package/dist/destinations/salesforce/sf-operations.js +10 -10
  174. package/dist/destinations/salesforce/sf-operations.js.map +1 -1
  175. package/dist/destinations/salesforce-marketing-cloud/index.d.ts +1 -1
  176. package/dist/destinations/salesforce-marketing-cloud/index.js +1 -3
  177. package/dist/destinations/salesforce-marketing-cloud/index.js.map +1 -1
  178. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.d.ts +0 -1
  179. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js +0 -23
  180. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js.map +1 -1
  181. package/dist/destinations/snap-audiences/index.js.map +1 -1
  182. package/dist/destinations/snap-audiences/syncAudience/fields.js +2 -2
  183. package/dist/destinations/snap-audiences/syncAudience/fields.js.map +1 -1
  184. package/dist/destinations/snap-audiences/syncAudience/functions.js +6 -27
  185. package/dist/destinations/snap-audiences/syncAudience/functions.js.map +1 -1
  186. package/dist/destinations/snap-audiences/syncAudience/types.d.ts +1 -1
  187. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/constants.js +11 -11
  188. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/fields.js +3 -9
  189. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/fields.js.map +1 -1
  190. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js +2 -2
  191. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js.map +1 -1
  192. package/dist/destinations/taguchi/syncUserProfile/utils.js.map +1 -1
  193. package/dist/destinations/the-trade-desk-crm/functions.d.ts +2 -2
  194. package/dist/destinations/the-trade-desk-crm/functions.js +22 -74
  195. package/dist/destinations/the-trade-desk-crm/functions.js.map +1 -1
  196. package/dist/destinations/the-trade-desk-crm/syncAudience/index.js +2 -2
  197. package/dist/destinations/the-trade-desk-crm/syncAudience/index.js.map +1 -1
  198. package/dist/destinations/tiktok-app-events/index.js +1 -1
  199. package/dist/destinations/tiktok-app-events/index.js.map +1 -1
  200. package/dist/destinations/tiktok-app-events/reportAppEvent/constants.js.map +1 -1
  201. package/dist/destinations/tiktok-app-events/reportAppEvent/fields/common_fields.js +29 -29
  202. package/dist/destinations/tiktok-app-events/reportAppEvent/fields/common_fields.js.map +1 -1
  203. package/dist/destinations/tiktok-app-events/reportAppEvent/utils.js +3 -4
  204. package/dist/destinations/tiktok-app-events/reportAppEvent/utils.js.map +1 -1
  205. package/dist/destinations/twilio-messaging/sendMessage/constants.d.ts +3 -3
  206. package/dist/destinations/twilio-messaging/sendMessage/constants.js +3 -3
  207. package/dist/destinations/twilio-messaging/sendMessage/constants.js.map +1 -1
  208. package/dist/destinations/twilio-messaging/sendMessage/fields.js.map +1 -1
  209. package/dist/destinations/twilio-messaging/sendMessage/utils.js.map +1 -1
  210. package/dist/destinations/yahoo-audiences/index.js +4 -8
  211. package/dist/destinations/yahoo-audiences/index.js.map +1 -1
  212. package/dist/destinations/yahoo-audiences/utils-rt.js +2 -2
  213. package/dist/destinations/yahoo-audiences/utils-rt.js.map +1 -1
  214. package/dist/destinations/yonoma/trackEvent/index.js +1 -1
  215. package/dist/destinations/yonoma/trackEvent/index.js.map +1 -1
  216. package/dist/destinations/yonoma/trackPageView/index.js +1 -1
  217. package/dist/destinations/yonoma/trackPageView/index.js.map +1 -1
  218. package/dist/destinations/yonoma/upsertContact/index.js +3 -3
  219. package/dist/destinations/yonoma/upsertContact/index.js.map +1 -1
  220. package/dist/destinations/zapier/index.js.map +1 -1
  221. package/dist/destinations/zapier/send/index.js.map +1 -1
  222. package/package.json +4 -4
  223. package/dist/destinations/amazon-amc/constants.d.ts +0 -17
  224. package/dist/destinations/amazon-amc/constants.js +0 -25
  225. package/dist/destinations/amazon-amc/constants.js.map +0 -1
  226. package/dist/destinations/customerio/versioning-info.d.ts +0 -2
  227. package/dist/destinations/customerio/versioning-info.js +0 -6
  228. package/dist/destinations/customerio/versioning-info.js.map +0 -1
  229. package/dist/destinations/facebook-conversions-api/purchase2/fields.d.ts +0 -2
  230. package/dist/destinations/facebook-conversions-api/purchase2/fields.js +0 -50
  231. package/dist/destinations/facebook-conversions-api/purchase2/fields.js.map +0 -1
  232. package/dist/destinations/facebook-conversions-api/purchase2/functions.d.ts +0 -4
  233. package/dist/destinations/facebook-conversions-api/purchase2/functions.js +0 -59
  234. package/dist/destinations/facebook-conversions-api/purchase2/functions.js.map +0 -1
  235. package/dist/destinations/fullstory/versioning-info.d.ts +0 -1
  236. package/dist/destinations/fullstory/versioning-info.js +0 -5
  237. package/dist/destinations/fullstory/versioning-info.js.map +0 -1
  238. package/dist/destinations/hubspot/versioning-info.d.ts +0 -3
  239. package/dist/destinations/hubspot/versioning-info.js +0 -7
  240. package/dist/destinations/hubspot/versioning-info.js.map +0 -1
  241. package/dist/destinations/linkedin-audiences/versioning-info.d.ts +0 -1
  242. package/dist/destinations/linkedin-audiences/versioning-info.js +0 -5
  243. package/dist/destinations/linkedin-audiences/versioning-info.js.map +0 -1
  244. package/dist/destinations/salesforce/versioning-info.d.ts +0 -1
  245. package/dist/destinations/salesforce/versioning-info.js +0 -5
  246. package/dist/destinations/salesforce/versioning-info.js.map +0 -1
  247. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.d.ts +0 -1
  248. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.js +0 -144
  249. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.js.map +0 -1
  250. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.d.ts +0 -59
  251. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.js.map +0 -1
  252. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js +0 -76
  253. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js.map +0 -1
  254. /package/dist/destinations/{salesforce-marketing-cloud/asyncDataExtension → braze/ecommerce}/generated-types.js +0 -0
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.send = send;
7
+ exports.currencies = currencies;
8
+ const actions_core_1 = require("@segment/actions-core");
9
+ const constants_1 = require("./constants");
10
+ const dayjs_1 = __importDefault(require("dayjs"));
11
+ async function send(request, payloads, settings, isBatch, syncMode) {
12
+ const msResponse = new actions_core_1.MultiStatusResponse();
13
+ if (!['update', 'add'].includes(syncMode ?? '')) {
14
+ const message = `Invalid syncMode: ${syncMode}. Supported sync modes are 'add' and 'update'.`;
15
+ if (isBatch) {
16
+ payloads.forEach((payload, index) => {
17
+ msResponse.setErrorResponseAtIndex(index, {
18
+ status: 400,
19
+ errormessage: message,
20
+ sent: payload
21
+ });
22
+ });
23
+ return msResponse;
24
+ }
25
+ else {
26
+ throw new actions_core_1.PayloadValidationError(message);
27
+ }
28
+ }
29
+ const { endpoint } = settings;
30
+ const { json, payloadsWithIndexes } = getJSON(payloads, settings, isBatch, syncMode, msResponse);
31
+ const url = `${endpoint}/users/track`;
32
+ const response = await request(url, {
33
+ method: 'POST',
34
+ ...(isBatch ? { headers: { 'X-Braze-Batch': 'true' } } : undefined),
35
+ json
36
+ });
37
+ const errors = Array.isArray(response.data.errors) ? response.data.errors : [];
38
+ payloadsWithIndexes.forEach((payload, index) => {
39
+ const error = errors.find(e => e.index === index);
40
+ if (error) {
41
+ msResponse.setErrorResponseAtIndex(index, {
42
+ status: 400,
43
+ errortype: 'BAD_REQUEST',
44
+ errormessage: error.type,
45
+ sent: payload,
46
+ body: JSON.stringify(json.events[index])
47
+ });
48
+ }
49
+ });
50
+ return isBatch ? msResponse : response;
51
+ }
52
+ function getJSON(payloads, settings, isBatch, syncMode, msResponse) {
53
+ const payloadsWithIndexes = [...payloads];
54
+ const events = [];
55
+ payloadsWithIndexes.forEach((payload, index) => {
56
+ const message = validate(payload, isBatch);
57
+ if (message) {
58
+ payload.index = undefined;
59
+ msResponse.setErrorResponseAtIndex(index, {
60
+ status: 400,
61
+ errormessage: message,
62
+ sent: payload
63
+ });
64
+ }
65
+ else {
66
+ const event = getJSONItem(payload, settings, syncMode);
67
+ payload.index = events.length;
68
+ events.push(event);
69
+ msResponse.setSuccessResponseAtIndex(index, {
70
+ status: 200,
71
+ sent: payload,
72
+ body: JSON.stringify(event)
73
+ });
74
+ }
75
+ });
76
+ return { json: { events }, payloadsWithIndexes };
77
+ }
78
+ function getJSONItem(payload, settings, syncMode) {
79
+ const { app_id } = settings;
80
+ const { external_id, braze_id, email, phone, user_alias, name, time: payloadTime, currency, source, metadata } = payload;
81
+ const time = (0, dayjs_1.default)(payloadTime).toISOString();
82
+ const updateExistingOnly = (() => {
83
+ if (user_alias?.alias_label && user_alias?.alias_name) {
84
+ return true;
85
+ }
86
+ if (syncMode === 'update') {
87
+ return true;
88
+ }
89
+ return undefined;
90
+ })();
91
+ const baseEvent = {
92
+ ...(external_id ? { external_id } : {}),
93
+ ...(braze_id ? { braze_id } : {}),
94
+ ...(email ? { email } : {}),
95
+ ...(phone ? { phone } : {}),
96
+ ...(user_alias ? { user_alias } : {}),
97
+ ...(app_id ? { app_id } : {}),
98
+ name: name,
99
+ time,
100
+ properties: {
101
+ currency,
102
+ source,
103
+ ...(metadata ? { metadata } : {})
104
+ },
105
+ ...(typeof updateExistingOnly === 'boolean' ? { _update_existing_only: updateExistingOnly } : {})
106
+ };
107
+ switch (name) {
108
+ case constants_1.EVENT_NAMES.PRODUCT_VIEWED: {
109
+ const { product } = payload;
110
+ const event = {
111
+ ...baseEvent,
112
+ name: constants_1.EVENT_NAMES.PRODUCT_VIEWED,
113
+ properties: {
114
+ ...baseEvent.properties,
115
+ ...product
116
+ }
117
+ };
118
+ return event;
119
+ }
120
+ case constants_1.EVENT_NAMES.CHECKOUT_STARTED:
121
+ case constants_1.EVENT_NAMES.ORDER_PLACED:
122
+ case constants_1.EVENT_NAMES.ORDER_CANCELLED:
123
+ case constants_1.EVENT_NAMES.ORDER_REFUNDED: {
124
+ const { total_value } = payload;
125
+ const multiProductEvent = {
126
+ ...baseEvent,
127
+ name: name,
128
+ properties: {
129
+ ...baseEvent.properties,
130
+ products: getProductAndMetadataJSON(payload),
131
+ total_value: total_value
132
+ }
133
+ };
134
+ switch (name) {
135
+ case constants_1.EVENT_NAMES.CHECKOUT_STARTED: {
136
+ const { checkout_id, cart_id } = payload;
137
+ const event = {
138
+ ...multiProductEvent,
139
+ name: constants_1.EVENT_NAMES.CHECKOUT_STARTED,
140
+ properties: {
141
+ ...multiProductEvent.properties,
142
+ checkout_id: checkout_id,
143
+ ...(cart_id ? { cart_id } : {})
144
+ }
145
+ };
146
+ return event;
147
+ }
148
+ case constants_1.EVENT_NAMES.ORDER_PLACED: {
149
+ const { order_id, cart_id, total_discounts, discounts } = payload;
150
+ const event = {
151
+ ...multiProductEvent,
152
+ name: constants_1.EVENT_NAMES.ORDER_PLACED,
153
+ properties: {
154
+ ...multiProductEvent.properties,
155
+ order_id: order_id,
156
+ ...(typeof total_discounts === 'number' ? { total_discounts } : {}),
157
+ ...(discounts ? { discounts } : {}),
158
+ ...(cart_id ? { cart_id } : {})
159
+ }
160
+ };
161
+ return event;
162
+ }
163
+ case constants_1.EVENT_NAMES.ORDER_REFUNDED: {
164
+ const { order_id, total_discounts, discounts } = payload;
165
+ const event = {
166
+ ...multiProductEvent,
167
+ name: constants_1.EVENT_NAMES.ORDER_REFUNDED,
168
+ properties: {
169
+ ...multiProductEvent.properties,
170
+ order_id: order_id,
171
+ ...(typeof total_discounts === 'number' ? { total_discounts } : {}),
172
+ ...(discounts ? { discounts } : {})
173
+ }
174
+ };
175
+ return event;
176
+ }
177
+ case constants_1.EVENT_NAMES.ORDER_CANCELLED: {
178
+ const { order_id, cancel_reason, total_discounts, discounts } = payload;
179
+ const event = {
180
+ ...multiProductEvent,
181
+ name: constants_1.EVENT_NAMES.ORDER_CANCELLED,
182
+ properties: {
183
+ ...multiProductEvent.properties,
184
+ order_id: order_id,
185
+ cancel_reason: cancel_reason,
186
+ ...(typeof total_discounts === 'number' ? { total_discounts } : {}),
187
+ ...(discounts ? { discounts } : {})
188
+ }
189
+ };
190
+ return event;
191
+ }
192
+ default: {
193
+ throw new actions_core_1.PayloadValidationError(`Unsupported event name: ${name}`);
194
+ }
195
+ }
196
+ }
197
+ default: {
198
+ throw new actions_core_1.PayloadValidationError(`Unsupported event name: ${name}`);
199
+ }
200
+ }
201
+ }
202
+ function getProductAndMetadataJSON(payload) {
203
+ return payload.products.map(product => {
204
+ const { quantity, product_id, product_name, variant_id, price, image_url, product_url, ...metadata } = product;
205
+ return {
206
+ quantity,
207
+ product_id,
208
+ product_name,
209
+ variant_id,
210
+ price,
211
+ image_url,
212
+ product_url,
213
+ ...(typeof metadata === 'object' && Object.entries(metadata).length > 0 ? { metadata } : {})
214
+ };
215
+ });
216
+ }
217
+ function validate(payload, isBatch) {
218
+ const { braze_id, user_alias, external_id, email, phone } = payload;
219
+ if (!braze_id && !user_alias && !external_id && !email && !phone) {
220
+ const message = 'One of "external_id" or "user_alias" or "braze_id" or "email" or "phone" is required.';
221
+ if (!isBatch) {
222
+ throw new actions_core_1.PayloadValidationError(message);
223
+ }
224
+ else {
225
+ return message;
226
+ }
227
+ }
228
+ }
229
+ function currencies() {
230
+ const codes = [
231
+ "AFN", "EUR", "ALL", "DZD", "USD", "EUR", "AOA", "XCD", "XCD", "XAD", "ARS", "AMD",
232
+ "AWG", "AUD", "EUR", "AZN", "BSD", "BHD", "BDT", "BBD", "BYN", "EUR", "BZD", "XOF",
233
+ "BMD", "INR", "BTN", "BOB", "BOV", "USD", "BAM", "BWP", "NOK", "BRL", "USD", "BND",
234
+ "BGN", "XOF", "BIF", "CVE", "KHR", "XAF", "CAD", "KYD", "XAF", "XAF", "CLP", "CLF",
235
+ "CNY", "AUD", "AUD", "COP", "COU", "KMF", "CDF", "XAF", "NZD", "CRC", "XOF", "EUR",
236
+ "CUP", "XCG", "EUR", "CZK", "DKK", "DJF", "XCD", "DOP", "USD", "EGP", "SVC", "USD",
237
+ "XAF", "ERN", "EUR", "SZL", "ETB", "EUR", "FKP", "DKK", "FJD", "EUR", "EUR", "EUR",
238
+ "XPF", "EUR", "XAF", "GMD", "GEL", "EUR", "GHS", "GIP", "EUR", "DKK", "XCD", "EUR",
239
+ "USD", "GTQ", "GBP", "GNF", "XOF", "GYD", "HTG", "USD", "AUD", "EUR", "HNL", "HKD",
240
+ "HUF", "ISK", "INR", "IDR", "XDR", "IRR", "IQD", "EUR", "GBP", "ILS", "EUR", "JMD",
241
+ "JPY", "GBP", "JOD", "KZT", "KES", "AUD", "KPW", "KRW", "KWD", "KGS", "LAK", "EUR",
242
+ "LBP", "LSL", "ZAR", "LRD", "LYD", "CHF", "EUR", "EUR", "MOP", "MGA", "MWK", "MYR",
243
+ "MVR", "XOF", "EUR", "USD", "EUR", "MRU", "MUR", "EUR", "XUA", "MXN", "MXV", "USD",
244
+ "MDL", "EUR", "MNT", "EUR", "XCD", "MAD", "MZN", "MMK", "NAD", "ZAR", "AUD", "NPR",
245
+ "EUR", "XPF", "NZD", "NIO", "XOF", "NGN", "NZD", "AUD", "MKD", "USD", "NOK", "OMR",
246
+ "PKR", "USD", "PAB", "USD", "PGK", "PYG", "PEN", "PHP", "NZD", "PLN", "EUR", "USD",
247
+ "QAR", "EUR", "RON", "RUB", "RWF", "EUR", "SHP", "XCD", "XCD", "EUR", "EUR", "XCD",
248
+ "WST", "EUR", "STN", "SAR", "XOF", "RSD", "SCR", "SLE", "SGD", "XCG", "XSU", "EUR",
249
+ "EUR", "SBD", "SOS", "ZAR", "SSP", "EUR", "LKR", "SDG", "SRD", "NOK", "SEK", "CHF",
250
+ "CHE", "CHW", "SYP", "TWD", "TJS", "TZS", "THB", "USD", "XOF", "NZD", "TOP", "TTD",
251
+ "TND", "TRY", "TMT", "USD", "AUD", "UGX", "UAH", "AED", "GBP", "USD", "USD", "USN",
252
+ "UYU", "UYI", "UYW", "UZS", "VUV", "VES", "VED", "VND", "USD", "USD", "XPF", "MAD",
253
+ "YER", "ZMW", "ZWG"
254
+ ];
255
+ const unique = Array.from(new Set(codes));
256
+ return unique.map(code => ({
257
+ label: code,
258
+ value: code
259
+ }));
260
+ }
261
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/destinations/braze/ecommerce/functions.ts"],"names":[],"mappings":"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,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK;QACvE,KAAK,EAAC,KAAK,EAAC,KAAK;KAClB,CAAA;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAEzC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,39 @@
1
+ export interface Payload {
2
+ name: string;
3
+ external_id?: string;
4
+ user_alias?: {
5
+ alias_name: string;
6
+ alias_label: string;
7
+ };
8
+ email?: string;
9
+ phone?: string | null;
10
+ braze_id?: string | null;
11
+ cancel_reason?: string;
12
+ time: string;
13
+ checkout_id?: string;
14
+ order_id?: string;
15
+ cart_id?: string;
16
+ total_value?: number;
17
+ total_discounts?: number;
18
+ discounts?: {
19
+ code: string;
20
+ amount: number;
21
+ }[];
22
+ currency: string;
23
+ source: string;
24
+ metadata?: {
25
+ [k: string]: unknown;
26
+ };
27
+ enable_batching: boolean;
28
+ batch_size: number;
29
+ products: {
30
+ product_id: string;
31
+ product_name: string;
32
+ variant_id: string;
33
+ image_url?: string;
34
+ product_url?: string;
35
+ quantity: number;
36
+ price: number;
37
+ [k: string]: unknown;
38
+ }[];
39
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/braze/ecommerce/generated-types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { ActionDefinition } from '@segment/actions-core';
1
+ import type { ActionDefinition } from '@segment/actions-core';
2
2
  import type { Settings } from '../generated-types';
3
3
  import type { Payload } from './generated-types';
4
4
  declare const action: ActionDefinition<Settings, Payload>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fields_1 = require("./fields");
4
+ const functions_1 = require("./functions");
5
+ const action = {
6
+ title: 'Ecommerce Event (multi product)',
7
+ description: '(Beta) Send a multi product [Ecommerce Recommended event](https://www.braze.com/docs/user_guide/data/activation/custom_data/recommended_events/ecommerce_events) to Braze.',
8
+ fields: {
9
+ ...fields_1.commonFields,
10
+ products: fields_1.products
11
+ },
12
+ syncMode: {
13
+ description: 'Define how the records from your destination will be synced.',
14
+ label: 'How to track events',
15
+ default: 'add',
16
+ choices: [
17
+ { label: 'Add Profile with Event', value: 'add' },
18
+ { label: 'Update Profile with Event', value: 'update' }
19
+ ]
20
+ },
21
+ perform: async (request, { payload, settings, syncMode }) => {
22
+ return await (0, functions_1.send)(request, [payload], settings, false, syncMode);
23
+ },
24
+ performBatch: async (request, { payload, settings, syncMode }) => {
25
+ return await (0, functions_1.send)(request, payload, settings, true, syncMode);
26
+ }
27
+ };
28
+ exports.default = action;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/braze/ecommerce/index.ts"],"names":[],"mappings":";;AAGA,qCAGiB;AACjB,2CAAkC;AAElC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,iCAAiC;IACxC,WAAW,EAAE,4KAA4K;IACzL,MAAM,EAAE;QACN,GAAG,qBAAY;QACf,QAAQ,EAAR,iBAAQ;KACT;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,8DAA8D;QAC3E,KAAK,EAAE,qBAAqB;QAC5B,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE;YACjD,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,QAAQ,EAAE;SACxD;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,EAAE;QACxD,OAAO,MAAM,IAAA,gBAAI,EAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAClE,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,EAAE;QAC7D,OAAO,MAAM,IAAA,gBAAI,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,117 @@
1
+ import { EVENT_NAMES } from './constants';
2
+ import { Payload } from './generated-types';
3
+ import { Payload as SingleProductPayload } from '../ecommerceSingleProduct/generated-types';
4
+ export type SupportedSyncMode = 'add' | 'update';
5
+ export type PayloadWithIndex = (Payload | SingleProductPayload) & {
6
+ index?: number;
7
+ };
8
+ export type ProductViewedEventName = typeof EVENT_NAMES.PRODUCT_VIEWED;
9
+ export type CheckoutStartedEventName = typeof EVENT_NAMES.CHECKOUT_STARTED;
10
+ export type OrderPlacedEventName = typeof EVENT_NAMES.ORDER_PLACED;
11
+ export type OrderCancelledEventName = typeof EVENT_NAMES.ORDER_CANCELLED;
12
+ export type OrderRefundedEventName = typeof EVENT_NAMES.ORDER_REFUNDED;
13
+ export type MultiPropertyEventName = CheckoutStartedEventName | OrderPlacedEventName | OrderCancelledEventName | OrderRefundedEventName;
14
+ export interface EcommerceEvents {
15
+ events: Array<EcommerceEvent>;
16
+ }
17
+ export type EcommerceEvent = ProductViewedEvent | CheckoutStartedEvent | OrderPlacedEvent | OrderRefundedEvent | OrderCancelledEvent;
18
+ export interface BaseEvent {
19
+ external_id?: string;
20
+ braze_id?: string;
21
+ email?: string;
22
+ phone?: string;
23
+ user_alias?: {
24
+ alias_name: string;
25
+ alias_label: string;
26
+ };
27
+ app_id?: string;
28
+ name: ProductViewedEventName | MultiPropertyEventName;
29
+ time: string;
30
+ properties: {
31
+ currency: string;
32
+ source: string;
33
+ metadata?: {
34
+ [key: string]: unknown;
35
+ };
36
+ };
37
+ _update_existing_only?: boolean;
38
+ }
39
+ export interface ProductViewedEvent extends BaseEvent {
40
+ name: ProductViewedEventName;
41
+ properties: BaseEvent['properties'] & BaseProduct;
42
+ }
43
+ export interface MultiProductBaseEvent extends BaseEvent {
44
+ name: MultiPropertyEventName;
45
+ properties: BaseEvent['properties'] & {
46
+ total_value: number;
47
+ products: Array<Product>;
48
+ };
49
+ }
50
+ export interface Product extends BaseProduct {
51
+ quantity: number;
52
+ metadata?: {
53
+ [key: string]: unknown;
54
+ };
55
+ }
56
+ export interface BaseProduct {
57
+ product_id: string;
58
+ product_name: string;
59
+ variant_id: string;
60
+ price: number;
61
+ image_url?: string;
62
+ product_url?: string;
63
+ }
64
+ export interface CheckoutStartedEvent extends MultiProductBaseEvent {
65
+ name: CheckoutStartedEventName;
66
+ properties: MultiProductBaseEvent['properties'] & {
67
+ checkout_id: string;
68
+ cart_id?: string;
69
+ metadata?: BaseEvent['properties']['metadata'] & {
70
+ checkout_url?: string;
71
+ };
72
+ };
73
+ }
74
+ export interface OrderPlacedEvent extends MultiProductBaseEvent {
75
+ name: OrderPlacedEventName;
76
+ properties: MultiProductBaseEvent['properties'] & {
77
+ order_id: string;
78
+ cart_id?: string;
79
+ total_discounts?: number;
80
+ discounts?: Array<{
81
+ code: string;
82
+ amount: number;
83
+ }>;
84
+ metadata?: BaseEvent['properties']['metadata'] & {
85
+ order_status_url?: string;
86
+ };
87
+ };
88
+ }
89
+ export interface OrderRefundedEvent extends MultiProductBaseEvent {
90
+ name: OrderRefundedEventName;
91
+ properties: MultiProductBaseEvent['properties'] & {
92
+ order_id: string;
93
+ total_discounts?: number;
94
+ discounts?: Array<{
95
+ code: string;
96
+ amount: number;
97
+ }>;
98
+ metadata?: BaseEvent['properties']['metadata'] & {
99
+ order_status_url?: string;
100
+ };
101
+ };
102
+ }
103
+ export interface OrderCancelledEvent extends MultiProductBaseEvent {
104
+ name: OrderCancelledEventName;
105
+ properties: MultiProductBaseEvent['properties'] & {
106
+ order_id: string;
107
+ cancel_reason: string;
108
+ total_discounts?: number;
109
+ discounts?: Array<{
110
+ code: string;
111
+ amount: number;
112
+ }>;
113
+ metadata?: BaseEvent['properties']['metadata'] & {
114
+ order_status_url?: string;
115
+ };
116
+ };
117
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/destinations/braze/ecommerce/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ export interface Payload {
2
+ name: string;
3
+ external_id?: string;
4
+ user_alias?: {
5
+ alias_name: string;
6
+ alias_label: string;
7
+ };
8
+ email?: string;
9
+ phone?: string | null;
10
+ braze_id?: string | null;
11
+ cancel_reason?: string;
12
+ time: string;
13
+ checkout_id?: string;
14
+ order_id?: string;
15
+ cart_id?: string;
16
+ total_value?: number;
17
+ total_discounts?: number;
18
+ discounts?: {
19
+ code: string;
20
+ amount: number;
21
+ }[];
22
+ currency: string;
23
+ source: string;
24
+ metadata?: {
25
+ [k: string]: unknown;
26
+ };
27
+ enable_batching: boolean;
28
+ batch_size: number;
29
+ product: {
30
+ product_id: string;
31
+ product_name: string;
32
+ variant_id: string;
33
+ image_url?: string;
34
+ product_url?: string;
35
+ price: number;
36
+ };
37
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generated-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/braze/ecommerceSingleProduct/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fields_1 = require("../ecommerce/fields");
4
+ const functions_1 = require("../ecommerce/functions");
5
+ const action = {
6
+ title: 'Ecommerce Event (single product)',
7
+ description: '(Beta) Send a single product [Ecommerce Recommended event](https://www.braze.com/docs/user_guide/data/activation/custom_data/recommended_events/ecommerce_events) to Braze.',
8
+ fields: {
9
+ ...fields_1.commonFields,
10
+ product: fields_1.product
11
+ },
12
+ syncMode: {
13
+ description: 'Define how the records from your destination will be synced.',
14
+ label: 'How to track events',
15
+ default: 'add',
16
+ choices: [
17
+ { label: 'Add Profile with Event', value: 'add' },
18
+ { label: 'Update Profile with Event', value: 'update' }
19
+ ]
20
+ },
21
+ perform: async (request, { payload, settings, syncMode }) => {
22
+ return await (0, functions_1.send)(request, [payload], settings, false, syncMode);
23
+ },
24
+ performBatch: async (request, { payload, settings, syncMode }) => {
25
+ return await (0, functions_1.send)(request, payload, settings, true, syncMode);
26
+ }
27
+ };
28
+ exports.default = action;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/braze/ecommerceSingleProduct/index.ts"],"names":[],"mappings":";;AAGA,gDAG4B;AAC5B,sDAA6C;AAE7C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,6KAA6K;IAC1L,MAAM,EAAE;QACN,GAAG,qBAAY;QACf,OAAO,EAAP,gBAAO;KACR;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,8DAA8D;QAC3E,KAAK,EAAE,qBAAqB;QAC5B,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE;YACjD,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,QAAQ,EAAE;SACxD;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,EAAE;QACxD,OAAO,MAAM,IAAA,gBAAI,EAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAClE,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,EAAE;QAC7D,OAAO,MAAM,IAAA,gBAAI,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}