@segment/action-destinations 3.494.0 → 3.494.1-staging-f466f04ea.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 (226) hide show
  1. package/dist/destinations/acoustic/generated-types.d.ts +0 -1
  2. package/dist/destinations/acoustic/index.js +0 -10
  3. package/dist/destinations/acoustic/index.js.map +1 -1
  4. package/dist/destinations/braze/ecommerce/constants.d.ts +1 -0
  5. package/dist/destinations/braze/ecommerce/constants.js +1 -0
  6. package/dist/destinations/braze/ecommerce/constants.js.map +1 -1
  7. package/dist/destinations/braze/ecommerce/fields.d.ts +6 -0
  8. package/dist/destinations/braze/ecommerce/fields.js +173 -2
  9. package/dist/destinations/braze/ecommerce/fields.js.map +1 -1
  10. package/dist/destinations/braze/ecommerce/functions.js +35 -8
  11. package/dist/destinations/braze/ecommerce/functions.js.map +1 -1
  12. package/dist/destinations/braze/ecommerce/generated-types.d.ts +4 -0
  13. package/dist/destinations/braze/ecommerce/types.d.ts +25 -3
  14. package/dist/destinations/braze/ecommerceSingleProduct/generated-types.d.ts +5 -0
  15. package/dist/destinations/braze/ecommerceSingleProduct/index.js +1 -0
  16. package/dist/destinations/braze/ecommerceSingleProduct/index.js.map +1 -1
  17. package/dist/destinations/braze/index.js +48 -2
  18. package/dist/destinations/braze/index.js.map +1 -1
  19. package/dist/destinations/braze/mergeUsers/functions.d.ts +12 -0
  20. package/dist/destinations/braze/mergeUsers/functions.js +142 -0
  21. package/dist/destinations/braze/mergeUsers/functions.js.map +1 -0
  22. package/dist/destinations/braze/mergeUsers/generated-types.d.ts +17 -0
  23. package/dist/destinations/braze/mergeUsers/generated-types.js +3 -0
  24. package/dist/destinations/braze/mergeUsers/generated-types.js.map +1 -0
  25. package/dist/destinations/braze/mergeUsers/index.d.ts +5 -0
  26. package/dist/destinations/braze/mergeUsers/index.js +216 -0
  27. package/dist/destinations/braze/mergeUsers/index.js.map +1 -0
  28. package/dist/destinations/braze/mergeUsers/types.d.ts +27 -0
  29. package/dist/destinations/braze/mergeUsers/types.js +3 -0
  30. package/dist/destinations/braze/mergeUsers/types.js.map +1 -0
  31. package/dist/destinations/braze/userAlias.d.ts +1 -2
  32. package/dist/destinations/customerio/createUpdateObject/index.js +33 -11
  33. package/dist/destinations/customerio/createUpdateObject/index.js.map +1 -1
  34. package/dist/destinations/customerio/types.d.ts +9 -0
  35. package/dist/destinations/customerio/types.js +3 -0
  36. package/dist/destinations/customerio/types.js.map +1 -0
  37. package/dist/destinations/customerio/utils.d.ts +4 -1
  38. package/dist/destinations/customerio/utils.js +52 -7
  39. package/dist/destinations/customerio/utils.js.map +1 -1
  40. package/dist/destinations/display-video-360/index.js +7 -0
  41. package/dist/destinations/display-video-360/index.js.map +1 -1
  42. package/dist/destinations/facebook-conversions-api/addToCart/generated-types.d.ts +1 -0
  43. package/dist/destinations/facebook-conversions-api/addToCart2/generated-types.d.ts +1 -0
  44. package/dist/destinations/facebook-conversions-api/custom/generated-types.d.ts +9 -0
  45. package/dist/destinations/facebook-conversions-api/custom2/generated-types.d.ts +9 -0
  46. package/dist/destinations/facebook-conversions-api/initiateCheckout/generated-types.d.ts +1 -0
  47. package/dist/destinations/facebook-conversions-api/initiateCheckout2/generated-types.d.ts +1 -0
  48. package/dist/destinations/facebook-conversions-api/pageView/generated-types.d.ts +1 -0
  49. package/dist/destinations/facebook-conversions-api/pageView2/generated-types.d.ts +1 -0
  50. package/dist/destinations/facebook-conversions-api/purchase/generated-types.d.ts +11 -0
  51. package/dist/destinations/facebook-conversions-api/purchase2/generated-types.d.ts +11 -0
  52. package/dist/destinations/facebook-conversions-api/search/generated-types.d.ts +1 -0
  53. package/dist/destinations/facebook-conversions-api/search2/generated-types.d.ts +1 -0
  54. package/dist/destinations/facebook-conversions-api/shared/constants.d.ts +1 -0
  55. package/dist/destinations/facebook-conversions-api/shared/constants.js +2 -1
  56. package/dist/destinations/facebook-conversions-api/shared/constants.js.map +1 -1
  57. package/dist/destinations/facebook-conversions-api/shared/fields.d.ts +3 -0
  58. package/dist/destinations/facebook-conversions-api/shared/fields.js +109 -2
  59. package/dist/destinations/facebook-conversions-api/shared/fields.js.map +1 -1
  60. package/dist/destinations/facebook-conversions-api/shared/functions.d.ts +5 -4
  61. package/dist/destinations/facebook-conversions-api/shared/functions.js +90 -16
  62. package/dist/destinations/facebook-conversions-api/shared/functions.js.map +1 -1
  63. package/dist/destinations/facebook-conversions-api/shared/types.d.ts +23 -1
  64. package/dist/destinations/facebook-conversions-api/viewContent/generated-types.d.ts +1 -0
  65. package/dist/destinations/facebook-conversions-api/viewContent2/generated-types.d.ts +1 -0
  66. package/dist/destinations/facebook-custom-audiences/presets.js +7 -0
  67. package/dist/destinations/facebook-custom-audiences/presets.js.map +1 -1
  68. package/dist/destinations/facebook-custom-audiences/sync/functions.js +5 -5
  69. package/dist/destinations/facebook-custom-audiences/sync/functions.js.map +1 -1
  70. package/dist/destinations/first-party-dv360/properties.js +30 -6
  71. package/dist/destinations/first-party-dv360/properties.js.map +1 -1
  72. package/dist/destinations/google-enhanced-conversions/functions.d.ts +12 -7
  73. package/dist/destinations/google-enhanced-conversions/functions.js +163 -103
  74. package/dist/destinations/google-enhanced-conversions/functions.js.map +1 -1
  75. package/dist/destinations/google-enhanced-conversions/index.js +22 -20
  76. package/dist/destinations/google-enhanced-conversions/index.js.map +1 -1
  77. package/dist/destinations/google-enhanced-conversions/types.d.ts +20 -0
  78. package/dist/destinations/google-enhanced-conversions/userList/index.js +20 -24
  79. package/dist/destinations/google-enhanced-conversions/userList/index.js.map +1 -1
  80. package/dist/destinations/hubspot/index.js +3 -2
  81. package/dist/destinations/hubspot/index.js.map +1 -1
  82. package/dist/destinations/hubspot/versioning-info.d.ts +1 -0
  83. package/dist/destinations/hubspot/versioning-info.js +2 -1
  84. package/dist/destinations/hubspot/versioning-info.js.map +1 -1
  85. package/dist/destinations/intercom/identifyContact/index.js +2 -2
  86. package/dist/destinations/intercom/identifyContact/index.js.map +1 -1
  87. package/dist/destinations/iterable/index.js +3 -1
  88. package/dist/destinations/iterable/index.js.map +1 -1
  89. package/dist/destinations/iterable/updateSubscriptions/constants.d.ts +3 -0
  90. package/dist/destinations/iterable/updateSubscriptions/constants.js +7 -0
  91. package/dist/destinations/iterable/updateSubscriptions/constants.js.map +1 -0
  92. package/dist/destinations/iterable/updateSubscriptions/dynamic-fields.d.ts +9 -0
  93. package/dist/destinations/iterable/updateSubscriptions/dynamic-fields.js +60 -0
  94. package/dist/destinations/iterable/updateSubscriptions/dynamic-fields.js.map +1 -0
  95. package/dist/destinations/iterable/updateSubscriptions/functions.d.ts +9 -0
  96. package/dist/destinations/iterable/updateSubscriptions/functions.js +168 -0
  97. package/dist/destinations/iterable/updateSubscriptions/functions.js.map +1 -0
  98. package/dist/destinations/iterable/updateSubscriptions/generated-types.d.ts +15 -0
  99. package/dist/destinations/iterable/updateSubscriptions/generated-types.js +3 -0
  100. package/dist/destinations/iterable/updateSubscriptions/generated-types.js.map +1 -0
  101. package/dist/destinations/iterable/updateSubscriptions/index.d.ts +5 -0
  102. package/dist/destinations/iterable/updateSubscriptions/index.js +129 -0
  103. package/dist/destinations/iterable/updateSubscriptions/index.js.map +1 -0
  104. package/dist/destinations/iterable/updateSubscriptions/types.d.ts +39 -0
  105. package/dist/destinations/iterable/updateSubscriptions/types.js +3 -0
  106. package/dist/destinations/iterable/updateSubscriptions/types.js.map +1 -0
  107. package/dist/destinations/iterable/updateUser/generated-types.d.ts +1 -0
  108. package/dist/destinations/iterable/updateUser/index.js +35 -5
  109. package/dist/destinations/iterable/updateUser/index.js.map +1 -1
  110. package/dist/destinations/iterable/utils.d.ts +5 -0
  111. package/dist/destinations/iterable/utils.js +9 -1
  112. package/dist/destinations/iterable/utils.js.map +1 -1
  113. package/dist/destinations/linkedin-conversions/api/index.js +14 -2
  114. package/dist/destinations/linkedin-conversions/api/index.js.map +1 -1
  115. package/dist/destinations/linkedin-conversions/streamConversion/generated-types.d.ts +2 -0
  116. package/dist/destinations/linkedin-conversions/streamConversion/index.js +19 -6
  117. package/dist/destinations/linkedin-conversions/streamConversion/index.js.map +1 -1
  118. package/dist/destinations/mixpanel/__test__/multistatus.test.js +0 -1
  119. package/dist/destinations/mixpanel/__test__/multistatus.test.js.map +1 -1
  120. package/dist/destinations/mixpanel/generated-types.d.ts +0 -1
  121. package/dist/destinations/mixpanel/incrementProperties/__test__/index.test.js +0 -6
  122. package/dist/destinations/mixpanel/incrementProperties/__test__/index.test.js.map +1 -1
  123. package/dist/destinations/mixpanel/index.js +0 -7
  124. package/dist/destinations/mixpanel/index.js.map +1 -1
  125. package/dist/destinations/mixpanel/trackEvent/index.js +1 -1
  126. package/dist/destinations/mixpanel/trackEvent/index.js.map +1 -1
  127. package/dist/destinations/mixpanel/trackPurchase/index.js +1 -1
  128. package/dist/destinations/mixpanel/trackPurchase/index.js.map +1 -1
  129. package/dist/destinations/ms-bing-ads-audiences/index.js +19 -5
  130. package/dist/destinations/ms-bing-ads-audiences/index.js.map +1 -1
  131. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.js +68 -5
  132. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.js.map +1 -1
  133. package/dist/destinations/ms-bing-ads-audiences/utils.d.ts +2 -0
  134. package/dist/destinations/ms-bing-ads-audiences/utils.js +43 -1
  135. package/dist/destinations/ms-bing-ads-audiences/utils.js.map +1 -1
  136. package/dist/destinations/pinterest-conversions/constants.d.ts +13 -0
  137. package/dist/destinations/pinterest-conversions/constants.js +14 -1
  138. package/dist/destinations/pinterest-conversions/constants.js.map +1 -1
  139. package/dist/destinations/pinterest-conversions/index.js +88 -8
  140. package/dist/destinations/pinterest-conversions/index.js.map +1 -1
  141. package/dist/destinations/pinterest-conversions/pinterest-capi-custom-data.d.ts +4 -2
  142. package/dist/destinations/pinterest-conversions/pinterest-capi-custom-data.js +185 -8
  143. package/dist/destinations/pinterest-conversions/pinterest-capi-custom-data.js.map +1 -1
  144. package/dist/destinations/pinterest-conversions/reportConversionEvent/generated-types.d.ts +70 -1
  145. package/dist/destinations/pinterest-conversions/reportConversionEvent/index.js +355 -43
  146. package/dist/destinations/pinterest-conversions/reportConversionEvent/index.js.map +1 -1
  147. package/dist/destinations/pinterest-conversions/types.d.ts +117 -0
  148. package/dist/destinations/reddit-conversions-api/customEvent/generated-types.d.ts +5 -0
  149. package/dist/destinations/reddit-conversions-api/customEvent/index.js +8 -5
  150. package/dist/destinations/reddit-conversions-api/customEvent/index.js.map +1 -1
  151. package/dist/destinations/reddit-conversions-api/fields.d.ts +3 -0
  152. package/dist/destinations/reddit-conversions-api/fields.js +42 -2
  153. package/dist/destinations/reddit-conversions-api/fields.js.map +1 -1
  154. package/dist/destinations/reddit-conversions-api/index.js.map +1 -1
  155. package/dist/destinations/reddit-conversions-api/shared.d.ts +20 -0
  156. package/dist/destinations/reddit-conversions-api/shared.js +66 -0
  157. package/dist/destinations/reddit-conversions-api/shared.js.map +1 -0
  158. package/dist/destinations/reddit-conversions-api/standardEvent/generated-types.d.ts +5 -0
  159. package/dist/destinations/reddit-conversions-api/standardEvent/index.js +8 -5
  160. package/dist/destinations/reddit-conversions-api/standardEvent/index.js.map +1 -1
  161. package/dist/destinations/reddit-conversions-api/types.d.ts +50 -0
  162. package/dist/destinations/reddit-conversions-api/utils.d.ts +6 -2
  163. package/dist/destinations/reddit-conversions-api/utils.js +12 -137
  164. package/dist/destinations/reddit-conversions-api/utils.js.map +1 -1
  165. package/dist/destinations/reddit-conversions-api/v2.d.ts +5 -0
  166. package/dist/destinations/reddit-conversions-api/v2.js +87 -0
  167. package/dist/destinations/reddit-conversions-api/v2.js.map +1 -0
  168. package/dist/destinations/reddit-conversions-api/v3.d.ts +6 -0
  169. package/dist/destinations/reddit-conversions-api/v3.js +118 -0
  170. package/dist/destinations/reddit-conversions-api/v3.js.map +1 -0
  171. package/dist/destinations/reddit-conversions-api/versioning-info.d.ts +1 -0
  172. package/dist/destinations/reddit-conversions-api/versioning-info.js +2 -1
  173. package/dist/destinations/reddit-conversions-api/versioning-info.js.map +1 -1
  174. package/dist/destinations/rokt-capi/send/functions.js +37 -16
  175. package/dist/destinations/rokt-capi/send/functions.js.map +1 -1
  176. package/dist/destinations/s3/constants.d.ts +1 -0
  177. package/dist/destinations/s3/constants.js +5 -0
  178. package/dist/destinations/s3/constants.js.map +1 -0
  179. package/dist/destinations/s3/syncToS3/fields.js +28 -0
  180. package/dist/destinations/s3/syncToS3/fields.js.map +1 -1
  181. package/dist/destinations/s3/syncToS3/functions.d.ts +5 -3
  182. package/dist/destinations/s3/syncToS3/functions.js +47 -9
  183. package/dist/destinations/s3/syncToS3/functions.js.map +1 -1
  184. package/dist/destinations/s3/syncToS3/generated-types.d.ts +4 -0
  185. package/dist/destinations/s3/syncToS3/index.js +4 -4
  186. package/dist/destinations/s3/syncToS3/index.js.map +1 -1
  187. package/dist/destinations/s3/syncToS3/types.d.ts +2 -0
  188. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.async.test.d.ts +1 -0
  189. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.async.test.js +656 -0
  190. package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.async.test.js.map +1 -0
  191. package/dist/destinations/salesforce-marketing-cloud/_tests_/getCategoryList.test.js +88 -0
  192. package/dist/destinations/salesforce-marketing-cloud/_tests_/getCategoryList.test.js.map +1 -1
  193. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/fields.d.ts +140 -0
  194. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/fields.js +69 -0
  195. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/fields.js.map +1 -0
  196. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.d.ts +1 -0
  197. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.async.d.ts +5 -0
  198. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.async.js +145 -0
  199. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.async.js.map +1 -0
  200. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js +5 -55
  201. package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js.map +1 -1
  202. package/dist/destinations/salesforce-marketing-cloud/index.js +6 -2
  203. package/dist/destinations/salesforce-marketing-cloud/index.js.map +1 -1
  204. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.d.ts +13 -3
  205. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js +11 -6
  206. package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js.map +1 -1
  207. package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js +3 -3
  208. package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js.map +1 -1
  209. package/dist/destinations/salesforce-marketing-cloud/versioning-info.d.ts +1 -0
  210. package/dist/destinations/salesforce-marketing-cloud/versioning-info.js +2 -1
  211. package/dist/destinations/salesforce-marketing-cloud/versioning-info.js.map +1 -1
  212. package/dist/destinations/sendgrid/sendEmail/fields.js +1 -1
  213. package/dist/destinations/sendgrid/sendEmail/fields.js.map +1 -1
  214. package/dist/destinations/tiktok-audiences/index.js +7 -0
  215. package/dist/destinations/tiktok-audiences/index.js.map +1 -1
  216. package/dist/destinations/webhook/send/index.js +7 -0
  217. package/dist/destinations/webhook/send/index.js.map +1 -1
  218. package/dist/destinations/webhook/ssrf-utils.d.ts +1 -0
  219. package/dist/destinations/webhook/ssrf-utils.js +74 -0
  220. package/dist/destinations/webhook/ssrf-utils.js.map +1 -0
  221. package/dist/destinations/webhook-extensible/send/index.js +7 -0
  222. package/dist/destinations/webhook-extensible/send/index.js.map +1 -1
  223. package/dist/destinations/webhook-extensible/ssrf-utils.d.ts +1 -0
  224. package/dist/destinations/webhook-extensible/ssrf-utils.js +74 -0
  225. package/dist/destinations/webhook-extensible/ssrf-utils.js.map +1 -0
  226. package/package.json +5 -5
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSubscriptionGroupId = getSubscriptionGroupId;
4
+ const utils_1 = require("../utils");
5
+ async function getSubscriptionGroupId(request, { payload, dynamicFieldContext, settings }) {
6
+ const { selectedArrayIndex: index = 0 } = dynamicFieldContext ?? {};
7
+ const groupType = payload?.subscriptions?.[index]?.subscription_group_type;
8
+ const { dataCenterLocation } = settings;
9
+ if (!groupType) {
10
+ return {
11
+ choices: [],
12
+ error: {
13
+ code: 'MISSING_GROUP_TYPE',
14
+ message: "Select a 'Subscription Group Type' first."
15
+ }
16
+ };
17
+ }
18
+ const endpoint = (0, utils_1.getRegionalEndpoint)(groupType === 'messageChannel' ? 'getChannels' : groupType === 'messageType' ? 'getMessageTypes' : 'getLists', dataCenterLocation);
19
+ switch (groupType) {
20
+ case 'messageChannel':
21
+ return fetchChannels(request, endpoint);
22
+ case 'messageType':
23
+ return fetchMessageTypes(request, endpoint);
24
+ case 'emailList':
25
+ return fetchLists(request, endpoint);
26
+ default:
27
+ return {
28
+ choices: [],
29
+ error: {
30
+ code: 'INVALID_GROUP_TYPE',
31
+ message: `Unknown subscription group type: ${groupType}`
32
+ }
33
+ };
34
+ }
35
+ }
36
+ async function fetchChannels(request, endpoint) {
37
+ const response = await request(endpoint, { method: 'get' });
38
+ const choices = response.data.channels.map(({ id, name, messageMedium, channelType }) => ({
39
+ label: `${name} (${messageMedium} - ${channelType})`,
40
+ value: String(id)
41
+ }));
42
+ return { choices };
43
+ }
44
+ async function fetchMessageTypes(request, endpoint) {
45
+ const response = await request(endpoint, { method: 'get' });
46
+ const choices = response.data.messageTypes.map(({ id, name, subscriptionPolicy }) => ({
47
+ label: `${name} (${subscriptionPolicy})`,
48
+ value: String(id)
49
+ }));
50
+ return { choices };
51
+ }
52
+ async function fetchLists(request, endpoint) {
53
+ const response = await request(endpoint, { method: 'get' });
54
+ const choices = response.data.lists.map(({ id, name, listType }) => ({
55
+ label: `${name} (${listType})`,
56
+ value: String(id)
57
+ }));
58
+ return { choices };
59
+ }
60
+ //# sourceMappingURL=dynamic-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-fields.js","sourceRoot":"","sources":["../../../../src/destinations/iterable/updateSubscriptions/dynamic-fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { RequestClient, MultiStatusResponse } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ import type { ResolvedIdentifier } from './types';
5
+ export declare function performUpdateSubscriptions(request: RequestClient, payload: Payload, settings: Settings): Promise<import("@segment/actions-core/src").ModifiedResponse<unknown>>;
6
+ export declare function performBatchUpdateSubscriptions(request: RequestClient, payloads: Payload[], settings: Settings): Promise<MultiStatusResponse>;
7
+ export declare function resolveIdentifier(payload: Payload): ResolvedIdentifier;
8
+ export declare function getBulkSubscriptionEndpoint(settings: Settings, groupType: string, groupId: string, action: string): string;
9
+ export declare function getSingleUserEndpoint(settings: Settings, groupType: string, groupId: string, identifier: ResolvedIdentifier): string;
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.performUpdateSubscriptions = performUpdateSubscriptions;
4
+ exports.performBatchUpdateSubscriptions = performBatchUpdateSubscriptions;
5
+ exports.resolveIdentifier = resolveIdentifier;
6
+ exports.getBulkSubscriptionEndpoint = getBulkSubscriptionEndpoint;
7
+ exports.getSingleUserEndpoint = getSingleUserEndpoint;
8
+ const actions_core_1 = require("@segment/actions-core");
9
+ const utils_1 = require("../utils");
10
+ const constants_1 = require("./constants");
11
+ async function performUpdateSubscriptions(request, payload, settings) {
12
+ const { subscriptions } = payload;
13
+ const subscriptionCount = subscriptions.length;
14
+ if (subscriptionCount === 0) {
15
+ throw new actions_core_1.PayloadValidationError('At least one subscription item is required.');
16
+ }
17
+ if (subscriptionCount > constants_1.MAX_SUBSCRIPTION_ITEMS) {
18
+ throw new actions_core_1.PayloadValidationError(`Maximum of ${constants_1.MAX_SUBSCRIPTION_ITEMS} subscription items allowed. Received ${subscriptionCount}.`);
19
+ }
20
+ const identifier = resolveIdentifier(payload);
21
+ const results = await Promise.all(subscriptions.map(async ({ subscription_group_type, subscription_group_id, action }) => {
22
+ validateAction(action);
23
+ const endpoint = getSingleUserEndpoint(settings, subscription_group_type, subscription_group_id, identifier);
24
+ const method = action === 'subscribe' ? 'patch' : 'delete';
25
+ return request(endpoint, { method, timeout: Math.max(constants_1.MIN_REQUEST_TIMEOUT, actions_core_1.DEFAULT_REQUEST_TIMEOUT) });
26
+ }));
27
+ return results[results.length - 1];
28
+ }
29
+ async function performBatchUpdateSubscriptions(request, payloads, settings) {
30
+ const multiStatusResponse = new actions_core_1.MultiStatusResponse();
31
+ const validPayloads = [];
32
+ payloads.forEach((payload, index) => {
33
+ const sent = payload;
34
+ const subscriptionCount = payload.subscriptions.length;
35
+ if (subscriptionCount === 0) {
36
+ multiStatusResponse.setErrorResponseAtIndex(index, {
37
+ status: 400,
38
+ errortype: 'PAYLOAD_VALIDATION_FAILED',
39
+ errormessage: 'At least one subscription item is required.',
40
+ sent
41
+ });
42
+ return;
43
+ }
44
+ if (subscriptionCount > constants_1.MAX_SUBSCRIPTION_ITEMS) {
45
+ multiStatusResponse.setErrorResponseAtIndex(index, {
46
+ status: 400,
47
+ errortype: 'PAYLOAD_VALIDATION_FAILED',
48
+ errormessage: `Maximum of ${constants_1.MAX_SUBSCRIPTION_ITEMS} subscription items allowed. Received ${subscriptionCount}.`,
49
+ sent
50
+ });
51
+ return;
52
+ }
53
+ try {
54
+ const identifier = resolveIdentifier(payload);
55
+ validPayloads.push({ index, identifier });
56
+ }
57
+ catch (error) {
58
+ multiStatusResponse.setErrorResponseAtIndex(index, {
59
+ status: 400,
60
+ errortype: 'PAYLOAD_VALIDATION_FAILED',
61
+ errormessage: error.message,
62
+ sent
63
+ });
64
+ }
65
+ });
66
+ if (validPayloads.length === 0) {
67
+ return multiStatusResponse;
68
+ }
69
+ const subscriptions = payloads[validPayloads[0].index].subscriptions;
70
+ for (const { action } of subscriptions) {
71
+ try {
72
+ validateAction(action);
73
+ }
74
+ catch (error) {
75
+ validPayloads.forEach(({ index }) => {
76
+ multiStatusResponse.setErrorResponseAtIndex(index, {
77
+ status: 400,
78
+ errortype: 'PAYLOAD_VALIDATION_FAILED',
79
+ errormessage: error.message,
80
+ sent: payloads[index]
81
+ });
82
+ });
83
+ return multiStatusResponse;
84
+ }
85
+ }
86
+ const users = validPayloads.filter(({ identifier }) => identifier.email).map(({ identifier }) => identifier.email);
87
+ const usersByUserId = validPayloads.filter(({ identifier }) => identifier.userId).map(({ identifier }) => identifier.userId);
88
+ const body = {
89
+ ...(users.length > 0 && { users }),
90
+ ...(usersByUserId.length > 0 && { usersByUserId })
91
+ };
92
+ try {
93
+ await Promise.all(subscriptions.map(async ({ subscription_group_type, subscription_group_id, action }) => {
94
+ const endpoint = getBulkSubscriptionEndpoint(settings, subscription_group_type, subscription_group_id, action);
95
+ return request(endpoint, {
96
+ method: 'put',
97
+ json: body,
98
+ timeout: Math.max(constants_1.MIN_REQUEST_TIMEOUT, actions_core_1.DEFAULT_REQUEST_TIMEOUT)
99
+ });
100
+ }));
101
+ validPayloads.forEach(({ index, identifier }) => {
102
+ const sentBody = identifier.email
103
+ ? { users: [identifier.email] }
104
+ : { usersByUserId: [identifier.userId] };
105
+ multiStatusResponse.setSuccessResponseAtIndex(index, {
106
+ status: 200,
107
+ sent: payloads[index],
108
+ body: sentBody
109
+ });
110
+ });
111
+ }
112
+ catch (error) {
113
+ const isHTTPError = error instanceof actions_core_1.HTTPError;
114
+ const status = isHTTPError ? error.response.status : 500;
115
+ const errormessage = isHTTPError ? error.response.statusText : error.message;
116
+ validPayloads.forEach(({ index, identifier }) => {
117
+ const sentBody = identifier.email
118
+ ? { users: [identifier.email] }
119
+ : { usersByUserId: [identifier.userId] };
120
+ multiStatusResponse.setErrorResponseAtIndex(index, {
121
+ status,
122
+ errortype: 'UNKNOWN_ERROR',
123
+ errormessage,
124
+ sent: payloads[index],
125
+ body: sentBody
126
+ });
127
+ });
128
+ }
129
+ return multiStatusResponse;
130
+ }
131
+ function validateAction(action) {
132
+ if (!constants_1.VALID_ACTIONS.includes(action)) {
133
+ throw new actions_core_1.PayloadValidationError(`Invalid action: '${action}'. Must be 'subscribe' or 'unsubscribe'.`);
134
+ }
135
+ }
136
+ function resolveIdentifier(payload) {
137
+ const { identifier: { email, userId }, user_identifier_preference } = payload;
138
+ const trimmedEmail = email?.trim();
139
+ const trimmedUserId = userId?.trim();
140
+ if (user_identifier_preference === 'userId' && trimmedUserId) {
141
+ return { userId: trimmedUserId };
142
+ }
143
+ if (user_identifier_preference === 'email' && trimmedEmail) {
144
+ return { email: trimmedEmail };
145
+ }
146
+ if (trimmedEmail) {
147
+ return { email: trimmedEmail };
148
+ }
149
+ if (trimmedUserId) {
150
+ return { userId: trimmedUserId };
151
+ }
152
+ throw new actions_core_1.PayloadValidationError('Must include email or userId in identifier.');
153
+ }
154
+ function getBulkSubscriptionEndpoint(settings, groupType, groupId, action) {
155
+ const { dataCenterLocation } = settings;
156
+ const baseUrl = (0, utils_1.getRegionalBaseUrl)(dataCenterLocation);
157
+ return `${baseUrl}/api/subscriptions/${groupType}/${groupId}?action=${action}`;
158
+ }
159
+ function getSingleUserEndpoint(settings, groupType, groupId, identifier) {
160
+ const { dataCenterLocation } = settings;
161
+ const baseUrl = (0, utils_1.getRegionalBaseUrl)(dataCenterLocation);
162
+ const { email, userId } = identifier;
163
+ if (userId) {
164
+ return `${baseUrl}/api/subscriptions/${groupType}/${groupId}/byUserId/${encodeURIComponent(userId)}`;
165
+ }
166
+ return `${baseUrl}/api/subscriptions/${groupType}/${groupId}/user/${encodeURIComponent(email)}`;
167
+ }
168
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/destinations/iterable/updateSubscriptions/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface Payload {
2
+ identifier: {
3
+ email?: string;
4
+ userId?: string;
5
+ };
6
+ user_identifier_preference: string;
7
+ subscriptions: {
8
+ subscription_group_type: string;
9
+ subscription_group_id: string;
10
+ action: string;
11
+ }[];
12
+ enable_batching?: boolean;
13
+ batch_size?: number;
14
+ batch_keys?: string[];
15
+ }
@@ -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/iterable/updateSubscriptions/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { 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,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const functions_1 = require("./functions");
4
+ const dynamic_fields_1 = require("./dynamic-fields");
5
+ const action = {
6
+ title: 'Update Subscriptions',
7
+ description: 'Manage subscription preferences for a user, including subscribing and unsubscribing from channels, message types, and email lists.',
8
+ defaultSubscription: 'type = "track" and event = "Subscriptions Updated"',
9
+ fields: {
10
+ identifier: {
11
+ label: 'User Identifier',
12
+ description: 'User identifier - provide email, userId, or both. At least one is required.',
13
+ type: 'object',
14
+ required: true,
15
+ additionalProperties: false,
16
+ properties: {
17
+ email: {
18
+ label: 'Email',
19
+ description: 'An email address that identifies a user profile in Iterable.',
20
+ type: 'string',
21
+ format: 'email',
22
+ required: false
23
+ },
24
+ userId: {
25
+ label: 'User ID',
26
+ description: 'A user ID that identifies a user profile in Iterable.',
27
+ type: 'string',
28
+ required: false
29
+ }
30
+ },
31
+ default: {
32
+ email: { '@path': '$.properties.email' },
33
+ userId: { '@path': '$.userId' }
34
+ }
35
+ },
36
+ user_identifier_preference: {
37
+ label: 'User Identifier Preference',
38
+ description: 'When both email and userId are provided, this determines which identifier is sent to Iterable. Iterable requires one or the other, not both.',
39
+ type: 'string',
40
+ required: true,
41
+ choices: [
42
+ { label: 'Email', value: 'email' },
43
+ { label: 'User ID', value: 'userId' }
44
+ ],
45
+ default: 'email',
46
+ disabledInputMethods: ['variable', 'function', 'freeform', 'enrichment']
47
+ },
48
+ subscriptions: {
49
+ label: 'Subscription Preferences',
50
+ description: 'Subscription changes to apply for this user. Maximum 6 items.',
51
+ type: 'object',
52
+ multiple: true,
53
+ required: true,
54
+ defaultObjectUI: 'arrayeditor',
55
+ additionalProperties: false,
56
+ properties: {
57
+ subscription_group_type: {
58
+ label: 'Subscription Group Type',
59
+ description: 'The type of subscription group.',
60
+ type: 'string',
61
+ required: true,
62
+ choices: [
63
+ { label: 'Email List', value: 'emailList' },
64
+ { label: 'Message Type', value: 'messageType' },
65
+ { label: 'Message Channel', value: 'messageChannel' }
66
+ ],
67
+ disabledInputMethods: ['variable', 'function', 'freeform', 'enrichment']
68
+ },
69
+ subscription_group_id: {
70
+ label: 'Subscription Group ID',
71
+ description: 'The ID of the subscription group. Select a group type first to see available options.',
72
+ type: 'string',
73
+ required: true,
74
+ dynamic: true,
75
+ disabledInputMethods: ['variable', 'function', 'freeform', 'enrichment']
76
+ },
77
+ action: {
78
+ label: 'Action',
79
+ description: 'Whether to subscribe or unsubscribe the user from this group.',
80
+ type: 'string',
81
+ required: true,
82
+ choices: [
83
+ { label: 'Subscribe', value: 'subscribe' },
84
+ { label: 'Unsubscribe', value: 'unsubscribe' }
85
+ ]
86
+ }
87
+ }
88
+ },
89
+ enable_batching: {
90
+ label: 'Enable Batching',
91
+ description: 'When enabled, Segment will send data to Iterable in batches.',
92
+ type: 'boolean',
93
+ required: false,
94
+ default: true
95
+ },
96
+ batch_size: {
97
+ label: 'Batch Size',
98
+ description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower.',
99
+ type: 'number',
100
+ unsafe_hidden: true,
101
+ required: false,
102
+ default: 1000
103
+ },
104
+ batch_keys: {
105
+ label: 'Batch Keys',
106
+ description: 'The keys to use for batching events together.',
107
+ type: 'string',
108
+ multiple: true,
109
+ unsafe_hidden: true,
110
+ required: false,
111
+ default: ['subscriptions', 'user_identifier_preference']
112
+ }
113
+ },
114
+ dynamicFields: {
115
+ subscriptions: {
116
+ subscription_group_id: async (request, { payload, dynamicFieldContext, settings }) => {
117
+ return (0, dynamic_fields_1.getSubscriptionGroupId)(request, { payload, dynamicFieldContext, settings });
118
+ }
119
+ }
120
+ },
121
+ perform: async (request, { payload, settings }) => {
122
+ return (0, functions_1.performUpdateSubscriptions)(request, payload, settings);
123
+ },
124
+ performBatch: async (request, { settings, payload: payloads }) => {
125
+ return (0, functions_1.performBatchUpdateSubscriptions)(request, payloads, settings);
126
+ }
127
+ };
128
+ exports.default = action;
129
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/iterable/updateSubscriptions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export interface ChannelDetails {
2
+ id: number;
3
+ name: string;
4
+ messageMedium: string;
5
+ channelType: string;
6
+ }
7
+ export interface MessageTypeDetails {
8
+ id: number;
9
+ name: string;
10
+ channelId: number;
11
+ subscriptionPolicy: string;
12
+ }
13
+ export interface ListDetails {
14
+ id: number;
15
+ name: string;
16
+ listType: string;
17
+ }
18
+ export interface ResolvedIdentifier {
19
+ email?: string;
20
+ userId?: string;
21
+ }
22
+ export interface DynamicFieldContext {
23
+ selectedArrayIndex?: number;
24
+ selectedKey?: string;
25
+ query?: string;
26
+ }
27
+ export interface ChannelsResponse {
28
+ channels: ChannelDetails[];
29
+ }
30
+ export interface MessageTypesResponse {
31
+ messageTypes: MessageTypeDetails[];
32
+ }
33
+ export interface ListsResponse {
34
+ lists: ListDetails[];
35
+ }
36
+ export interface BulkSubscriptionRequestBody {
37
+ users?: string[];
38
+ usersByUserId?: string[];
39
+ }
@@ -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/iterable/updateSubscriptions/types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  export interface Payload {
2
2
  email?: string;
3
3
  userId?: string;
4
+ newEmail?: string;
4
5
  dataFields?: {
5
6
  [k: string]: unknown;
6
7
  };
@@ -7,7 +7,7 @@ const transformIterableUserPayload = (payload) => {
7
7
  const phoneNumber = payload.phoneNumber;
8
8
  const formattedDataFields = (0, utils_1.convertDatesInObject)(payload.dataFields ?? {});
9
9
  const userUpdateRequest = {
10
- ...(0, actions_core_1.omit)(payload, ['updateOnly', 'enable_batching', 'batch_size', 'phoneNumber']),
10
+ ...(0, actions_core_1.omit)(payload, ['newEmail', 'updateOnly', 'enable_batching', 'batch_size', 'phoneNumber']),
11
11
  dataFields: {
12
12
  ...formattedDataFields,
13
13
  phoneNumber: phoneNumber
@@ -27,6 +27,13 @@ const action = {
27
27
  userId: {
28
28
  ...shared_fields_1.USER_ID_FIELD
29
29
  },
30
+ newEmail: {
31
+ label: 'New Email Address',
32
+ description: 'The new email address to assign to the user. For single event processing, Segment makes a separate API call to set the new email address. Batch updating a profile email address is only supported for Hybrid projects.',
33
+ type: 'string',
34
+ format: 'email',
35
+ required: false
36
+ },
30
37
  dataFields: {
31
38
  ...shared_fields_1.USER_DATA_FIELDS
32
39
  },
@@ -69,23 +76,46 @@ const action = {
69
76
  default: 1001
70
77
  }
71
78
  },
72
- perform: (request, { payload, settings }) => {
79
+ perform: async (request, { payload, settings }) => {
73
80
  if (!payload.email && !payload.userId) {
74
81
  throw new actions_core_1.PayloadValidationError('Must include email or userId.');
75
82
  }
76
83
  const updateUserRequestPayload = transformIterableUserPayload(payload);
77
- const endpoint = (0, utils_1.getRegionalEndpoint)('updateUser', settings.dataCenterLocation);
78
- return request(endpoint, {
84
+ const updateUserEndpoint = (0, utils_1.getRegionalEndpoint)('updateUser', settings.dataCenterLocation);
85
+ const response = await request(updateUserEndpoint, {
79
86
  method: 'post',
80
87
  json: updateUserRequestPayload,
81
88
  timeout: Math.max(30000, actions_core_1.DEFAULT_REQUEST_TIMEOUT)
82
89
  });
90
+ if (!payload.newEmail) {
91
+ return response;
92
+ }
93
+ const updateEmailEndpoint = (0, utils_1.getRegionalEndpoint)('updateEmail', settings.dataCenterLocation);
94
+ return request(updateEmailEndpoint, {
95
+ method: 'post',
96
+ json: {
97
+ ...(payload.email ? { currentEmail: payload.email } : {}),
98
+ ...(payload.userId ? { currentUserId: payload.userId } : {}),
99
+ newEmail: payload.newEmail
100
+ },
101
+ timeout: Math.max(30000, actions_core_1.DEFAULT_REQUEST_TIMEOUT)
102
+ });
83
103
  },
84
104
  performBatch: (request, { settings, payload }) => {
85
105
  const { updateOnly } = payload[0];
106
+ const users = payload.map((p) => {
107
+ const user = transformIterableUserPayload(p);
108
+ if (p.newEmail) {
109
+ user.dataFields = {
110
+ ...user.dataFields,
111
+ email: p.newEmail
112
+ };
113
+ }
114
+ return user;
115
+ });
86
116
  const bulkUpdateUserRequestPayload = {
87
117
  ...(updateOnly ? { updateOnly } : {}),
88
- users: payload.map(transformIterableUserPayload)
118
+ users
89
119
  };
90
120
  const endpoint = (0, utils_1.getRegionalEndpoint)('bulkUpdateUser', settings.dataCenterLocation);
91
121
  return request(endpoint, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/iterable/updateUser/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/iterable/updateUser/index.ts"],"names":[],"mappings":";;AAAA,wDAA+G;AAG/G,oDAOyB;AACzB,oCAAoE;AAgBpE,MAAM,4BAA4B,GAAmD,CAAC,OAAO,EAAE,EAAE;IAC/F,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;IACvC,MAAM,mBAAmB,GAAG,IAAA,4BAAoB,EAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IAC1E,MAAM,iBAAiB,GAA6B;QAClD,GAAG,IAAA,mBAAI,EAAC,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAC5F,UAAU,EAAE;YACV,GAAG,mBAAmB;YACtB,WAAW,EAAE,WAAW;SACzB;KACF,CAAA;IACD,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,2BAA2B;IACxC,mBAAmB,EAAE,mBAAmB;IACxC,MAAM,EAAE;QACN,KAAK,EAAE;YACL,GAAG,2BAAW;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;SACvC;QACD,MAAM,EAAE;YACN,GAAG,6BAAa;SACjB;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EACT,yNAAyN;YAC3N,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,KAAK;SAChB;QACD,UAAU,EAAE;YACV,GAAG,gCAAgB;SACpB;QACD,WAAW,EAAE;YACX,GAAG,uCAAuB;SAC3B;QACD,kBAAkB,EAAE;YAClB,GAAG,0CAA0B;SAC9B;QACD,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,2EAA2E;YACxF,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;SACd;QACD,UAAU,EAAE;YACV,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,uOAAuO;YACpP,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,KAAK;YACf,oBAAoB,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;YACxE,UAAU,EAAE;gBACV,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE;oBACV;wBACE,QAAQ,EAAE,iBAAiB;wBAC3B,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF;SACF;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,qFAAqF;YAClG,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;SACd;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChD,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,qCAAsB,CAAC,+BAA+B,CAAC,CAAA;QACnE,CAAC;QAED,MAAM,wBAAwB,GAA6B,4BAA4B,CAAC,OAAO,CAAC,CAAA;QAEhG,MAAM,kBAAkB,GAAG,IAAA,2BAAmB,EAAC,YAAY,EAAE,QAAQ,CAAC,kBAAwC,CAAC,CAAA;QAC/G,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAM,EAAE,sCAAuB,CAAC;SACnD,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAA,2BAAmB,EAAC,aAAa,EAAE,QAAQ,CAAC,kBAAwC,CAAC,CAAA;QACjH,OAAO,OAAO,CAAC,mBAAmB,EAAE;YAClC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;YACD,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAM,EAAE,sCAAuB,CAAC;SACnD,CAAC,CAAA;IACJ,CAAC;IACD,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/C,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAA;YAC5C,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,GAAG;oBAChB,GAAG,IAAI,CAAC,UAAU;oBAClB,KAAK,EAAE,CAAC,CAAC,QAAQ;iBAClB,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;QACF,MAAM,4BAA4B,GAAiC;YACjE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,KAAK;SACN,CAAA;QAED,MAAM,QAAQ,GAAG,IAAA,2BAAmB,EAAC,gBAAgB,EAAE,QAAQ,CAAC,kBAAwC,CAAC,CAAA;QACzG,OAAO,OAAO,CAAC,QAAQ,EAAE;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAM,EAAE,sCAAuB,CAAC;SACnD,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -4,11 +4,16 @@ export declare function convertDatesInObject(obj: Record<string, unknown>): Reco
4
4
  export declare function transformItems(items: UpdateCart['items']): CommerceItem[];
5
5
  export declare const apiEndpoints: {
6
6
  updateUser: string;
7
+ updateEmail: string;
7
8
  bulkUpdateUser: string;
8
9
  trackEvent: string;
9
10
  bulkTrackEvent: string;
10
11
  updateCart: string;
11
12
  trackPurchase: string;
12
13
  getWebhooks: string;
14
+ getChannels: string;
15
+ getMessageTypes: string;
16
+ getLists: string;
13
17
  };
18
+ export declare function getRegionalBaseUrl(dataCenterLocation?: DataCenterLocation): string;
14
19
  export declare function getRegionalEndpoint(action: keyof typeof apiEndpoints, dataCenterLocation?: DataCenterLocation): string;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.apiEndpoints = void 0;
4
4
  exports.convertDatesInObject = convertDatesInObject;
5
5
  exports.transformItems = transformItems;
6
+ exports.getRegionalBaseUrl = getRegionalBaseUrl;
6
7
  exports.getRegionalEndpoint = getRegionalEndpoint;
7
8
  const actions_core_1 = require("@segment/actions-core");
8
9
  const isoDateRegExp = /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(?:([ T])(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;
@@ -70,13 +71,20 @@ const regionBaseUrls = {
70
71
  };
71
72
  exports.apiEndpoints = {
72
73
  updateUser: '/api/users/update',
74
+ updateEmail: '/api/users/updateEmail',
73
75
  bulkUpdateUser: '/api/users/bulkUpdate',
74
76
  trackEvent: '/api/events/track',
75
77
  bulkTrackEvent: '/api/events/trackBulk',
76
78
  updateCart: '/api/commerce/updateCart',
77
79
  trackPurchase: '/api/commerce/trackPurchase',
78
- getWebhooks: '/api/webhooks'
80
+ getWebhooks: '/api/webhooks',
81
+ getChannels: '/api/channels',
82
+ getMessageTypes: '/api/messageTypes',
83
+ getLists: '/api/lists'
79
84
  };
85
+ function getRegionalBaseUrl(dataCenterLocation = 'united_states') {
86
+ return regionBaseUrls[dataCenterLocation] || regionBaseUrls['united_states'];
87
+ }
80
88
  function getRegionalEndpoint(action, dataCenterLocation = 'united_states') {
81
89
  const regionBaseUrl = regionBaseUrls[dataCenterLocation] || regionBaseUrls['united_states'];
82
90
  const endpoint = exports.apiEndpoints[action];
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/iterable/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/iterable/utils.ts"],"names":[],"mappings":"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"}