@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.
- package/dist/destinations/acoustic/generated-types.d.ts +0 -1
- package/dist/destinations/acoustic/index.js +0 -10
- package/dist/destinations/acoustic/index.js.map +1 -1
- package/dist/destinations/braze/ecommerce/constants.d.ts +1 -0
- package/dist/destinations/braze/ecommerce/constants.js +1 -0
- package/dist/destinations/braze/ecommerce/constants.js.map +1 -1
- package/dist/destinations/braze/ecommerce/fields.d.ts +6 -0
- package/dist/destinations/braze/ecommerce/fields.js +173 -2
- package/dist/destinations/braze/ecommerce/fields.js.map +1 -1
- package/dist/destinations/braze/ecommerce/functions.js +35 -8
- package/dist/destinations/braze/ecommerce/functions.js.map +1 -1
- package/dist/destinations/braze/ecommerce/generated-types.d.ts +4 -0
- package/dist/destinations/braze/ecommerce/types.d.ts +25 -3
- package/dist/destinations/braze/ecommerceSingleProduct/generated-types.d.ts +5 -0
- package/dist/destinations/braze/ecommerceSingleProduct/index.js +1 -0
- package/dist/destinations/braze/ecommerceSingleProduct/index.js.map +1 -1
- package/dist/destinations/braze/index.js +48 -2
- package/dist/destinations/braze/index.js.map +1 -1
- package/dist/destinations/braze/mergeUsers/functions.d.ts +12 -0
- package/dist/destinations/braze/mergeUsers/functions.js +142 -0
- package/dist/destinations/braze/mergeUsers/functions.js.map +1 -0
- package/dist/destinations/braze/mergeUsers/generated-types.d.ts +17 -0
- package/dist/destinations/braze/mergeUsers/generated-types.js +3 -0
- package/dist/destinations/braze/mergeUsers/generated-types.js.map +1 -0
- package/dist/destinations/braze/mergeUsers/index.d.ts +5 -0
- package/dist/destinations/braze/mergeUsers/index.js +216 -0
- package/dist/destinations/braze/mergeUsers/index.js.map +1 -0
- package/dist/destinations/braze/mergeUsers/types.d.ts +27 -0
- package/dist/destinations/braze/mergeUsers/types.js +3 -0
- package/dist/destinations/braze/mergeUsers/types.js.map +1 -0
- package/dist/destinations/braze/userAlias.d.ts +1 -2
- package/dist/destinations/customerio/createUpdateObject/index.js +33 -11
- package/dist/destinations/customerio/createUpdateObject/index.js.map +1 -1
- package/dist/destinations/customerio/types.d.ts +9 -0
- package/dist/destinations/customerio/types.js +3 -0
- package/dist/destinations/customerio/types.js.map +1 -0
- package/dist/destinations/customerio/utils.d.ts +4 -1
- package/dist/destinations/customerio/utils.js +52 -7
- package/dist/destinations/customerio/utils.js.map +1 -1
- package/dist/destinations/display-video-360/index.js +7 -0
- package/dist/destinations/display-video-360/index.js.map +1 -1
- package/dist/destinations/facebook-conversions-api/addToCart/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/addToCart2/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/custom/generated-types.d.ts +9 -0
- package/dist/destinations/facebook-conversions-api/custom2/generated-types.d.ts +9 -0
- package/dist/destinations/facebook-conversions-api/initiateCheckout/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/initiateCheckout2/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/pageView/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/pageView2/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/purchase/generated-types.d.ts +11 -0
- package/dist/destinations/facebook-conversions-api/purchase2/generated-types.d.ts +11 -0
- package/dist/destinations/facebook-conversions-api/search/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/search2/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/shared/constants.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/shared/constants.js +2 -1
- package/dist/destinations/facebook-conversions-api/shared/constants.js.map +1 -1
- package/dist/destinations/facebook-conversions-api/shared/fields.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/shared/fields.js +109 -2
- package/dist/destinations/facebook-conversions-api/shared/fields.js.map +1 -1
- package/dist/destinations/facebook-conversions-api/shared/functions.d.ts +5 -4
- package/dist/destinations/facebook-conversions-api/shared/functions.js +90 -16
- package/dist/destinations/facebook-conversions-api/shared/functions.js.map +1 -1
- package/dist/destinations/facebook-conversions-api/shared/types.d.ts +23 -1
- package/dist/destinations/facebook-conversions-api/viewContent/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-conversions-api/viewContent2/generated-types.d.ts +1 -0
- package/dist/destinations/facebook-custom-audiences/presets.js +7 -0
- package/dist/destinations/facebook-custom-audiences/presets.js.map +1 -1
- package/dist/destinations/facebook-custom-audiences/sync/functions.js +5 -5
- package/dist/destinations/facebook-custom-audiences/sync/functions.js.map +1 -1
- package/dist/destinations/first-party-dv360/properties.js +30 -6
- package/dist/destinations/first-party-dv360/properties.js.map +1 -1
- package/dist/destinations/google-enhanced-conversions/functions.d.ts +12 -7
- package/dist/destinations/google-enhanced-conversions/functions.js +163 -103
- package/dist/destinations/google-enhanced-conversions/functions.js.map +1 -1
- package/dist/destinations/google-enhanced-conversions/index.js +22 -20
- package/dist/destinations/google-enhanced-conversions/index.js.map +1 -1
- package/dist/destinations/google-enhanced-conversions/types.d.ts +20 -0
- package/dist/destinations/google-enhanced-conversions/userList/index.js +20 -24
- package/dist/destinations/google-enhanced-conversions/userList/index.js.map +1 -1
- package/dist/destinations/hubspot/index.js +3 -2
- package/dist/destinations/hubspot/index.js.map +1 -1
- package/dist/destinations/hubspot/versioning-info.d.ts +1 -0
- package/dist/destinations/hubspot/versioning-info.js +2 -1
- package/dist/destinations/hubspot/versioning-info.js.map +1 -1
- package/dist/destinations/intercom/identifyContact/index.js +2 -2
- package/dist/destinations/intercom/identifyContact/index.js.map +1 -1
- package/dist/destinations/iterable/index.js +3 -1
- package/dist/destinations/iterable/index.js.map +1 -1
- package/dist/destinations/iterable/updateSubscriptions/constants.d.ts +3 -0
- package/dist/destinations/iterable/updateSubscriptions/constants.js +7 -0
- package/dist/destinations/iterable/updateSubscriptions/constants.js.map +1 -0
- package/dist/destinations/iterable/updateSubscriptions/dynamic-fields.d.ts +9 -0
- package/dist/destinations/iterable/updateSubscriptions/dynamic-fields.js +60 -0
- package/dist/destinations/iterable/updateSubscriptions/dynamic-fields.js.map +1 -0
- package/dist/destinations/iterable/updateSubscriptions/functions.d.ts +9 -0
- package/dist/destinations/iterable/updateSubscriptions/functions.js +168 -0
- package/dist/destinations/iterable/updateSubscriptions/functions.js.map +1 -0
- package/dist/destinations/iterable/updateSubscriptions/generated-types.d.ts +15 -0
- package/dist/destinations/iterable/updateSubscriptions/generated-types.js +3 -0
- package/dist/destinations/iterable/updateSubscriptions/generated-types.js.map +1 -0
- package/dist/destinations/iterable/updateSubscriptions/index.d.ts +5 -0
- package/dist/destinations/iterable/updateSubscriptions/index.js +129 -0
- package/dist/destinations/iterable/updateSubscriptions/index.js.map +1 -0
- package/dist/destinations/iterable/updateSubscriptions/types.d.ts +39 -0
- package/dist/destinations/iterable/updateSubscriptions/types.js +3 -0
- package/dist/destinations/iterable/updateSubscriptions/types.js.map +1 -0
- package/dist/destinations/iterable/updateUser/generated-types.d.ts +1 -0
- package/dist/destinations/iterable/updateUser/index.js +35 -5
- package/dist/destinations/iterable/updateUser/index.js.map +1 -1
- package/dist/destinations/iterable/utils.d.ts +5 -0
- package/dist/destinations/iterable/utils.js +9 -1
- package/dist/destinations/iterable/utils.js.map +1 -1
- package/dist/destinations/linkedin-conversions/api/index.js +14 -2
- package/dist/destinations/linkedin-conversions/api/index.js.map +1 -1
- package/dist/destinations/linkedin-conversions/streamConversion/generated-types.d.ts +2 -0
- package/dist/destinations/linkedin-conversions/streamConversion/index.js +19 -6
- package/dist/destinations/linkedin-conversions/streamConversion/index.js.map +1 -1
- package/dist/destinations/mixpanel/__test__/multistatus.test.js +0 -1
- package/dist/destinations/mixpanel/__test__/multistatus.test.js.map +1 -1
- package/dist/destinations/mixpanel/generated-types.d.ts +0 -1
- package/dist/destinations/mixpanel/incrementProperties/__test__/index.test.js +0 -6
- package/dist/destinations/mixpanel/incrementProperties/__test__/index.test.js.map +1 -1
- package/dist/destinations/mixpanel/index.js +0 -7
- package/dist/destinations/mixpanel/index.js.map +1 -1
- package/dist/destinations/mixpanel/trackEvent/index.js +1 -1
- package/dist/destinations/mixpanel/trackEvent/index.js.map +1 -1
- package/dist/destinations/mixpanel/trackPurchase/index.js +1 -1
- package/dist/destinations/mixpanel/trackPurchase/index.js.map +1 -1
- package/dist/destinations/ms-bing-ads-audiences/index.js +19 -5
- package/dist/destinations/ms-bing-ads-audiences/index.js.map +1 -1
- package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.js +68 -5
- package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.js.map +1 -1
- package/dist/destinations/ms-bing-ads-audiences/utils.d.ts +2 -0
- package/dist/destinations/ms-bing-ads-audiences/utils.js +43 -1
- package/dist/destinations/ms-bing-ads-audiences/utils.js.map +1 -1
- package/dist/destinations/pinterest-conversions/constants.d.ts +13 -0
- package/dist/destinations/pinterest-conversions/constants.js +14 -1
- package/dist/destinations/pinterest-conversions/constants.js.map +1 -1
- package/dist/destinations/pinterest-conversions/index.js +88 -8
- package/dist/destinations/pinterest-conversions/index.js.map +1 -1
- package/dist/destinations/pinterest-conversions/pinterest-capi-custom-data.d.ts +4 -2
- package/dist/destinations/pinterest-conversions/pinterest-capi-custom-data.js +185 -8
- package/dist/destinations/pinterest-conversions/pinterest-capi-custom-data.js.map +1 -1
- package/dist/destinations/pinterest-conversions/reportConversionEvent/generated-types.d.ts +70 -1
- package/dist/destinations/pinterest-conversions/reportConversionEvent/index.js +355 -43
- package/dist/destinations/pinterest-conversions/reportConversionEvent/index.js.map +1 -1
- package/dist/destinations/pinterest-conversions/types.d.ts +117 -0
- package/dist/destinations/reddit-conversions-api/customEvent/generated-types.d.ts +5 -0
- package/dist/destinations/reddit-conversions-api/customEvent/index.js +8 -5
- package/dist/destinations/reddit-conversions-api/customEvent/index.js.map +1 -1
- package/dist/destinations/reddit-conversions-api/fields.d.ts +3 -0
- package/dist/destinations/reddit-conversions-api/fields.js +42 -2
- package/dist/destinations/reddit-conversions-api/fields.js.map +1 -1
- package/dist/destinations/reddit-conversions-api/index.js.map +1 -1
- package/dist/destinations/reddit-conversions-api/shared.d.ts +20 -0
- package/dist/destinations/reddit-conversions-api/shared.js +66 -0
- package/dist/destinations/reddit-conversions-api/shared.js.map +1 -0
- package/dist/destinations/reddit-conversions-api/standardEvent/generated-types.d.ts +5 -0
- package/dist/destinations/reddit-conversions-api/standardEvent/index.js +8 -5
- package/dist/destinations/reddit-conversions-api/standardEvent/index.js.map +1 -1
- package/dist/destinations/reddit-conversions-api/types.d.ts +50 -0
- package/dist/destinations/reddit-conversions-api/utils.d.ts +6 -2
- package/dist/destinations/reddit-conversions-api/utils.js +12 -137
- package/dist/destinations/reddit-conversions-api/utils.js.map +1 -1
- package/dist/destinations/reddit-conversions-api/v2.d.ts +5 -0
- package/dist/destinations/reddit-conversions-api/v2.js +87 -0
- package/dist/destinations/reddit-conversions-api/v2.js.map +1 -0
- package/dist/destinations/reddit-conversions-api/v3.d.ts +6 -0
- package/dist/destinations/reddit-conversions-api/v3.js +118 -0
- package/dist/destinations/reddit-conversions-api/v3.js.map +1 -0
- package/dist/destinations/reddit-conversions-api/versioning-info.d.ts +1 -0
- package/dist/destinations/reddit-conversions-api/versioning-info.js +2 -1
- package/dist/destinations/reddit-conversions-api/versioning-info.js.map +1 -1
- package/dist/destinations/rokt-capi/send/functions.js +37 -16
- package/dist/destinations/rokt-capi/send/functions.js.map +1 -1
- package/dist/destinations/s3/constants.d.ts +1 -0
- package/dist/destinations/s3/constants.js +5 -0
- package/dist/destinations/s3/constants.js.map +1 -0
- package/dist/destinations/s3/syncToS3/fields.js +28 -0
- package/dist/destinations/s3/syncToS3/fields.js.map +1 -1
- package/dist/destinations/s3/syncToS3/functions.d.ts +5 -3
- package/dist/destinations/s3/syncToS3/functions.js +47 -9
- package/dist/destinations/s3/syncToS3/functions.js.map +1 -1
- package/dist/destinations/s3/syncToS3/generated-types.d.ts +4 -0
- package/dist/destinations/s3/syncToS3/index.js +4 -4
- package/dist/destinations/s3/syncToS3/index.js.map +1 -1
- package/dist/destinations/s3/syncToS3/types.d.ts +2 -0
- package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.async.test.d.ts +1 -0
- package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.async.test.js +656 -0
- package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.async.test.js.map +1 -0
- package/dist/destinations/salesforce-marketing-cloud/_tests_/getCategoryList.test.js +88 -0
- package/dist/destinations/salesforce-marketing-cloud/_tests_/getCategoryList.test.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/fields.d.ts +140 -0
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/fields.js +69 -0
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/fields.js.map +1 -0
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.d.ts +1 -0
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.async.d.ts +5 -0
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.async.js +145 -0
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.async.js.map +1 -0
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js +5 -55
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/index.js +6 -2
- package/dist/destinations/salesforce-marketing-cloud/index.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.d.ts +13 -3
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js +11 -6
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js +3 -3
- package/dist/destinations/salesforce-marketing-cloud/sfmc-properties.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/versioning-info.d.ts +1 -0
- package/dist/destinations/salesforce-marketing-cloud/versioning-info.js +2 -1
- package/dist/destinations/salesforce-marketing-cloud/versioning-info.js.map +1 -1
- package/dist/destinations/sendgrid/sendEmail/fields.js +1 -1
- package/dist/destinations/sendgrid/sendEmail/fields.js.map +1 -1
- package/dist/destinations/tiktok-audiences/index.js +7 -0
- package/dist/destinations/tiktok-audiences/index.js.map +1 -1
- package/dist/destinations/webhook/send/index.js +7 -0
- package/dist/destinations/webhook/send/index.js.map +1 -1
- package/dist/destinations/webhook/ssrf-utils.d.ts +1 -0
- package/dist/destinations/webhook/ssrf-utils.js +74 -0
- package/dist/destinations/webhook/ssrf-utils.js.map +1 -0
- package/dist/destinations/webhook-extensible/send/index.js +7 -0
- package/dist/destinations/webhook-extensible/send/index.js.map +1 -1
- package/dist/destinations/webhook-extensible/ssrf-utils.d.ts +1 -0
- package/dist/destinations/webhook-extensible/ssrf-utils.js +74 -0
- package/dist/destinations/webhook-extensible/ssrf-utils.js.map +1 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/iterable/updateSubscriptions/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/destinations/iterable/updateSubscriptions/types.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
|
78
|
-
|
|
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
|
|
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":";;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,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/iterable/updateUser/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":";;;AAmCA,oDAuBC;AAQD,wCAoBC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/iterable/utils.ts"],"names":[],"mappings":"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"}
|