@segment/action-destinations 3.402.0 → 3.404.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/amazon-conversions-api/index.js +10 -0
- package/dist/destinations/amazon-conversions-api/index.js.map +1 -1
- package/dist/destinations/amazon-conversions-api/trackConversion/index.js +3 -2
- package/dist/destinations/amazon-conversions-api/trackConversion/index.js.map +1 -1
- package/dist/destinations/amazon-conversions-api/trackConversion/utils.d.ts +2 -1
- package/dist/destinations/amazon-conversions-api/trackConversion/utils.js +21 -7
- package/dist/destinations/amazon-conversions-api/trackConversion/utils.js.map +1 -1
- package/dist/destinations/braze/identifyUser2/generated-types.d.ts +6 -1
- package/dist/destinations/braze/identifyUser2/index.d.ts +11 -0
- package/dist/destinations/braze/identifyUser2/index.js +111 -13
- package/dist/destinations/braze/identifyUser2/index.js.map +1 -1
- package/dist/destinations/braze/index.js +2 -0
- package/dist/destinations/braze/index.js.map +1 -1
- package/dist/destinations/braze/upsertCatalogItem/generated-types.d.ts +22 -0
- package/dist/destinations/braze/upsertCatalogItem/generated-types.js +3 -0
- package/dist/destinations/braze/upsertCatalogItem/generated-types.js.map +1 -0
- package/dist/destinations/braze/upsertCatalogItem/index.d.ts +5 -0
- package/dist/destinations/braze/upsertCatalogItem/index.js +267 -0
- package/dist/destinations/braze/upsertCatalogItem/index.js.map +1 -0
- package/dist/destinations/braze/upsertCatalogItem/types.d.ts +29 -0
- package/dist/destinations/braze/upsertCatalogItem/types.js +3 -0
- package/dist/destinations/braze/upsertCatalogItem/types.js.map +1 -0
- package/dist/destinations/braze/upsertCatalogItem/utils.d.ts +16 -0
- package/dist/destinations/braze/upsertCatalogItem/utils.js +185 -0
- package/dist/destinations/braze/upsertCatalogItem/utils.js.map +1 -0
- package/dist/destinations/twilio-messaging/sendMessage/constants.d.ts +3 -3
- package/dist/destinations/twilio-messaging/sendMessage/constants.js +13 -7
- package/dist/destinations/twilio-messaging/sendMessage/constants.js.map +1 -1
- package/dist/destinations/twilio-messaging/sendMessage/dynamic-fields.d.ts +0 -1
- package/dist/destinations/twilio-messaging/sendMessage/dynamic-fields.js +21 -73
- package/dist/destinations/twilio-messaging/sendMessage/dynamic-fields.js.map +1 -1
- package/dist/destinations/twilio-messaging/sendMessage/fields.js +3 -53
- package/dist/destinations/twilio-messaging/sendMessage/fields.js.map +1 -1
- package/dist/destinations/twilio-messaging/sendMessage/generated-types.d.ts +0 -6
- package/dist/destinations/twilio-messaging/sendMessage/index.js +0 -5
- package/dist/destinations/twilio-messaging/sendMessage/index.js.map +1 -1
- package/dist/destinations/twilio-messaging/sendMessage/utils.js +35 -55
- package/dist/destinations/twilio-messaging/sendMessage/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dynamicContentVariables = exports.
|
|
3
|
+
exports.dynamicContentVariables = exports.dynamicContentSid = exports.dynamicContentTemplateType = exports.dynamicMessagingServiceSid = exports.dynamicFromPhoneNumber = exports.dynamicSenderType = void 0;
|
|
4
4
|
const constants_1 = require("./constants");
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
6
|
function isErrorResponse(response) {
|
|
@@ -30,56 +30,39 @@ async function dynamicSenderType(payload) {
|
|
|
30
30
|
if (!channel) {
|
|
31
31
|
return createErrorResponse("Select from 'Channel' field first.");
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
return {
|
|
43
|
-
choices: [
|
|
44
|
-
{ label: constants_1.SENDER_TYPE.PHONE_NUMBER, value: constants_1.SENDER_TYPE.PHONE_NUMBER },
|
|
45
|
-
{ label: constants_1.SENDER_TYPE.MESSAGING_SERVICE, value: constants_1.SENDER_TYPE.MESSAGING_SERVICE }
|
|
46
|
-
]
|
|
47
|
-
};
|
|
48
|
-
}
|
|
33
|
+
return {
|
|
34
|
+
choices: [
|
|
35
|
+
{ label: constants_1.SENDER_TYPE.PHONE_NUMBER, value: constants_1.SENDER_TYPE.PHONE_NUMBER },
|
|
36
|
+
{ label: constants_1.SENDER_TYPE.MESSAGING_SERVICE, value: constants_1.SENDER_TYPE.MESSAGING_SERVICE }
|
|
37
|
+
]
|
|
38
|
+
};
|
|
49
39
|
}
|
|
50
40
|
exports.dynamicSenderType = dynamicSenderType;
|
|
51
41
|
async function dynamicFromPhoneNumber(request, payload, settings) {
|
|
52
42
|
const { channel } = payload;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return shortCodeResp;
|
|
62
|
-
}
|
|
63
|
-
const shortCodes = (shortCodeResp.data?.short_codes
|
|
64
|
-
.filter((s) => (channel === constants_1.CHANNELS.MMS && s.sms_url !== null) || channel === constants_1.CHANNELS.SMS))
|
|
65
|
-
.map((s) => s.short_code);
|
|
66
|
-
numbers.push(...shortCodes);
|
|
43
|
+
if (!channel) {
|
|
44
|
+
return createErrorResponse("Select from 'Channel' field first.");
|
|
45
|
+
}
|
|
46
|
+
if (channel === constants_1.CHANNELS.WHATSAPP) {
|
|
47
|
+
return createErrorResponse('For WhatsApp channel, please manually enter your WhatsApp Business phone number in E.164 format.');
|
|
48
|
+
}
|
|
49
|
+
if (channel === constants_1.CHANNELS.RCS) {
|
|
50
|
+
return createErrorResponse('Please manually enter your RCS phone number in E.164 format.');
|
|
67
51
|
}
|
|
68
52
|
const PhoneNumResp = await getData(request, constants_1.GET_INCOMING_PHONE_NUMBERS_URL.replace(constants_1.ACCOUNT_SID_TOKEN, settings.accountSID));
|
|
69
53
|
if (isErrorResponse(PhoneNumResp)) {
|
|
70
54
|
return PhoneNumResp;
|
|
71
55
|
}
|
|
72
56
|
const phoneNumbers = PhoneNumResp.data.incoming_phone_numbers
|
|
73
|
-
.filter((n) =>
|
|
57
|
+
.filter((n) => n.capabilities &&
|
|
58
|
+
((channel === constants_1.CHANNELS.SMS && n.capabilities.sms) || (n.capabilities.mms && channel === constants_1.CHANNELS.MMS)))
|
|
74
59
|
.map((n) => n.phone_number);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return createErrorResponse(`No phone numbers ${supportsShortCodes ? 'or short codes' : ''} found. Please create a phone number ${supportsShortCodes ? 'or short code' : ''} in your Twilio account.`);
|
|
60
|
+
phoneNumbers.sort((a, b) => a.length - b.length || a.localeCompare(b));
|
|
61
|
+
if (phoneNumbers.length === 0) {
|
|
62
|
+
return createErrorResponse('No phone numbers found. Please create a phone number in your Twilio account.');
|
|
79
63
|
}
|
|
80
64
|
return {
|
|
81
|
-
choices:
|
|
82
|
-
.map((n) => {
|
|
65
|
+
choices: phoneNumbers.map((n) => {
|
|
83
66
|
return {
|
|
84
67
|
label: n,
|
|
85
68
|
value: n
|
|
@@ -147,41 +130,6 @@ async function dynamicContentSid(request, payload) {
|
|
|
147
130
|
};
|
|
148
131
|
}
|
|
149
132
|
exports.dynamicContentSid = dynamicContentSid;
|
|
150
|
-
async function dynamicMediaUrls(request, payload) {
|
|
151
|
-
const { contentTemplateType, mediaUrls } = payload;
|
|
152
|
-
const contentSid = (0, utils_1.parseFieldValue)(payload.contentSid);
|
|
153
|
-
if (contentTemplateType === constants_1.INLINE_CONTENT_TYPES.INLINE.friendly_name) {
|
|
154
|
-
return createErrorResponse("Use the 'Inline Media URLs' field for specifying Media URLs for an inline message.");
|
|
155
|
-
}
|
|
156
|
-
if ([undefined, '', null].includes(contentSid)) {
|
|
157
|
-
return createErrorResponse("Select 'Content Template SID' first.");
|
|
158
|
-
}
|
|
159
|
-
if ((0, utils_1.validateContentSid)(contentSid) === false) {
|
|
160
|
-
return createErrorResponse('Invalid Content Template SID. SID should match with the pattern HX[0-9a-fA-F]{32}');
|
|
161
|
-
}
|
|
162
|
-
const response = await getData(request, constants_1.GET_CONTENT_URL.replace(constants_1.CONTENT_SID_TOKEN, contentSid));
|
|
163
|
-
if (isErrorResponse(response)) {
|
|
164
|
-
return response;
|
|
165
|
-
}
|
|
166
|
-
const name = Object.values(constants_1.PREDEFINED_CONTENT_TYPES).find((type) => type.friendly_name === contentTemplateType)
|
|
167
|
-
?.name;
|
|
168
|
-
const urls = response.data?.types?.[name]?.media ?? [];
|
|
169
|
-
if (urls.length === 0) {
|
|
170
|
-
return createErrorResponse('No Media URLs found for this Content Template. If media files are required please create them in Twilio first.');
|
|
171
|
-
}
|
|
172
|
-
const selectedUrls = mediaUrls?.map((m) => m.url) ?? [];
|
|
173
|
-
const filteredUrls = urls.filter((url) => !selectedUrls.includes(url));
|
|
174
|
-
if (filteredUrls.length === 0) {
|
|
175
|
-
return createErrorResponse('No additional Media URLs found for this Content Template.');
|
|
176
|
-
}
|
|
177
|
-
return {
|
|
178
|
-
choices: filteredUrls.map((url) => ({
|
|
179
|
-
label: url,
|
|
180
|
-
value: url
|
|
181
|
-
}))
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
exports.dynamicMediaUrls = dynamicMediaUrls;
|
|
185
133
|
async function dynamicContentVariables(request, payload) {
|
|
186
134
|
const contentSid = (0, utils_1.parseFieldValue)(payload.contentSid);
|
|
187
135
|
if (!contentSid) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-fields.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/dynamic-fields.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"dynamic-fields.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/dynamic-fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,7 @@ exports.fields = {
|
|
|
12
12
|
{ label: 'SMS', value: constants_1.CHANNELS.SMS },
|
|
13
13
|
{ label: 'MMS', value: constants_1.CHANNELS.MMS },
|
|
14
14
|
{ label: 'WhatsApp', value: constants_1.CHANNELS.WHATSAPP },
|
|
15
|
-
|
|
16
|
-
],
|
|
17
|
-
default: constants_1.CHANNELS.MMS,
|
|
18
|
-
disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment']
|
|
15
|
+
]
|
|
19
16
|
},
|
|
20
17
|
senderType: {
|
|
21
18
|
label: 'Sender Type',
|
|
@@ -85,7 +82,7 @@ exports.fields = {
|
|
|
85
82
|
},
|
|
86
83
|
fromMessengerSenderId: {
|
|
87
84
|
label: 'From Messenger Sender ID',
|
|
88
|
-
description:
|
|
85
|
+
description: 'The unique identifier for your Facebook Page, used to send messages via Messenger. You can find this in your Facebook Page settings.',
|
|
89
86
|
type: 'string',
|
|
90
87
|
required: false,
|
|
91
88
|
default: undefined,
|
|
@@ -127,7 +124,7 @@ exports.fields = {
|
|
|
127
124
|
dynamic: true,
|
|
128
125
|
required: false,
|
|
129
126
|
allowNull: false,
|
|
130
|
-
disabledInputMethods: ['
|
|
127
|
+
disabledInputMethods: ['variable', 'function'],
|
|
131
128
|
depends_on: {
|
|
132
129
|
match: 'all',
|
|
133
130
|
conditions: [
|
|
@@ -139,34 +136,6 @@ exports.fields = {
|
|
|
139
136
|
]
|
|
140
137
|
}
|
|
141
138
|
},
|
|
142
|
-
mediaUrls: {
|
|
143
|
-
label: 'Media URLs',
|
|
144
|
-
description: 'The URLs of the media to include with the message. The URLs should be configured in the Content Template in Twilio.',
|
|
145
|
-
type: 'object',
|
|
146
|
-
multiple: true,
|
|
147
|
-
required: false,
|
|
148
|
-
properties: {
|
|
149
|
-
url: {
|
|
150
|
-
label: 'URL',
|
|
151
|
-
type: 'string',
|
|
152
|
-
description: 'The URL of the media to include with the message.',
|
|
153
|
-
required: true,
|
|
154
|
-
dynamic: true,
|
|
155
|
-
allowNull: false,
|
|
156
|
-
disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment']
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
depends_on: {
|
|
160
|
-
match: 'all',
|
|
161
|
-
conditions: [
|
|
162
|
-
{
|
|
163
|
-
fieldKey: 'contentTemplateType',
|
|
164
|
-
operator: 'is',
|
|
165
|
-
value: constants_1.CONTENT_TYPE_FRIENDLY_NAMES_SUPPORTING_MEDIA
|
|
166
|
-
}
|
|
167
|
-
]
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
139
|
contentVariables: {
|
|
171
140
|
label: 'Content Variables',
|
|
172
141
|
description: 'Variables to be used in the Content Template. The Variables must be defined in the Content Template in Twilio.',
|
|
@@ -221,25 +190,6 @@ exports.fields = {
|
|
|
221
190
|
]
|
|
222
191
|
}
|
|
223
192
|
},
|
|
224
|
-
inlineVariables: {
|
|
225
|
-
label: 'Inline Variables',
|
|
226
|
-
description: "Variables to be send with the inline message. e.g. 'first_name' would match with {{first_name}} in the Inline Template message body.",
|
|
227
|
-
type: 'object',
|
|
228
|
-
required: false,
|
|
229
|
-
defaultObjectUI: 'keyvalue',
|
|
230
|
-
additionalProperties: true,
|
|
231
|
-
default: undefined,
|
|
232
|
-
depends_on: {
|
|
233
|
-
match: 'all',
|
|
234
|
-
conditions: [
|
|
235
|
-
{
|
|
236
|
-
fieldKey: 'contentTemplateType',
|
|
237
|
-
operator: 'is',
|
|
238
|
-
value: constants_1.ALL_CONTENT_TYPES.INLINE.friendly_name
|
|
239
|
-
}
|
|
240
|
-
]
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
193
|
validityPeriod: {
|
|
244
194
|
label: 'Validity Period',
|
|
245
195
|
description: 'The number of seconds between 1-14400 that the message is valid for. Default is 14400. If the message is not delivered within this time, it will not be delivered.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/fields.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,17 +8,11 @@ export interface Payload {
|
|
|
8
8
|
fromMessengerSenderId?: string;
|
|
9
9
|
messagingServiceSid?: string;
|
|
10
10
|
contentSid?: string;
|
|
11
|
-
mediaUrls?: {
|
|
12
|
-
url: string;
|
|
13
|
-
}[];
|
|
14
11
|
contentVariables?: {
|
|
15
12
|
[k: string]: unknown;
|
|
16
13
|
};
|
|
17
14
|
inlineBody?: string;
|
|
18
15
|
inlineMediaUrls?: string[];
|
|
19
|
-
inlineVariables?: {
|
|
20
|
-
[k: string]: unknown;
|
|
21
|
-
};
|
|
22
16
|
validityPeriod?: number;
|
|
23
17
|
sendAt?: string;
|
|
24
18
|
}
|
|
@@ -23,11 +23,6 @@ const action = {
|
|
|
23
23
|
contentSid: async (request, { payload }) => {
|
|
24
24
|
return await (0, dynamic_fields_1.dynamicContentSid)(request, payload);
|
|
25
25
|
},
|
|
26
|
-
mediaUrls: {
|
|
27
|
-
url: async (request, { payload }) => {
|
|
28
|
-
return await (0, dynamic_fields_1.dynamicMediaUrls)(request, payload);
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
26
|
contentVariables: {
|
|
32
27
|
__keys__: async (request, { payload }) => {
|
|
33
28
|
return await (0, dynamic_fields_1.dynamicContentVariables)(request, payload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/index.ts"],"names":[],"mappings":";;AAGA,qCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/index.ts"],"names":[],"mappings":";;AAGA,qCAAiC;AACjC,qDAOyB;AACzB,mCAA8B;AAE9B,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,uCAAuC;IACpD,MAAM,EAAN,eAAM;IACN,aAAa,EAAE;QACb,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACnC,OAAO,MAAM,IAAA,kCAAiB,EAAC,OAAO,CAAC,CAAA;QACzC,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxD,OAAO,MAAM,IAAA,uCAAsB,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QACjE,CAAC;QACD,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACnD,OAAO,MAAM,IAAA,2CAA0B,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC5D,CAAC;QACD,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC5C,OAAO,MAAM,IAAA,2CAA0B,EAAC,OAAO,CAAC,CAAA;QAClD,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACzC,OAAO,MAAM,IAAA,kCAAiB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAClD,CAAC;QACD,gBAAgB,EAAE;YAChB,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBACvC,OAAO,MAAM,IAAA,wCAAuB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACxD,CAAC;SACF;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChD,OAAO,MAAM,IAAA,YAAI,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -4,12 +4,13 @@ exports.validateContentSid = exports.parseFieldValue = exports.send = void 0;
|
|
|
4
4
|
const actions_core_1 = require("@segment/actions-core");
|
|
5
5
|
const constants_1 = require("./constants");
|
|
6
6
|
async function send(request, payload, settings) {
|
|
7
|
-
let { toPhoneNumber, fromPhoneNumber,
|
|
8
|
-
const { channel, senderType,
|
|
7
|
+
let { toPhoneNumber, fromPhoneNumber, messagingServiceSid, contentSid } = payload;
|
|
8
|
+
const { channel, senderType, contentVariables, validityPeriod, sendAt, inlineMediaUrls, inlineBody } = payload;
|
|
9
9
|
const getTo = () => {
|
|
10
10
|
switch (channel) {
|
|
11
11
|
case 'SMS':
|
|
12
|
-
case 'MMS':
|
|
12
|
+
case 'MMS':
|
|
13
|
+
case 'RCS': {
|
|
13
14
|
toPhoneNumber = toPhoneNumber?.trim() ?? '';
|
|
14
15
|
if (!(constants_1.E164_REGEX.test(toPhoneNumber) || constants_1.TWILIO_SHORT_CODE_REGEX.test(toPhoneNumber))) {
|
|
15
16
|
throw new actions_core_1.PayloadValidationError("'To' field should be a valid phone number in E.164 format or a Twilio Short Code");
|
|
@@ -23,12 +24,6 @@ async function send(request, payload, settings) {
|
|
|
23
24
|
}
|
|
24
25
|
return `whatsapp:${toPhoneNumber}`;
|
|
25
26
|
}
|
|
26
|
-
case 'Messenger': {
|
|
27
|
-
if (!toMessengerPageUserId) {
|
|
28
|
-
throw new actions_core_1.PayloadValidationError("'Messenger Page or User ID' field is required when Channel field set to 'Messenger'");
|
|
29
|
-
}
|
|
30
|
-
return `messenger:${toMessengerPageUserId.trim()}`;
|
|
31
|
-
}
|
|
32
27
|
default: {
|
|
33
28
|
throw new actions_core_1.PayloadValidationError('Unsupported Channel');
|
|
34
29
|
}
|
|
@@ -47,13 +42,6 @@ async function send(request, payload, settings) {
|
|
|
47
42
|
}
|
|
48
43
|
return channel === constants_1.CHANNELS.WHATSAPP ? { From: `whatsapp:${fromPhoneNumber}` } : { From: fromPhoneNumber };
|
|
49
44
|
}
|
|
50
|
-
if (senderType === constants_1.SENDER_TYPE.MESSENGER_SENDER_ID) {
|
|
51
|
-
fromMessengerSenderId = fromMessengerSenderId?.trim();
|
|
52
|
-
if (!fromMessengerSenderId) {
|
|
53
|
-
throw new actions_core_1.PayloadValidationError("'From Messenger Sender ID' field is required when sending from a Messenger Sender ID.");
|
|
54
|
-
}
|
|
55
|
-
return { From: `messenger:${fromMessengerSenderId}` };
|
|
56
|
-
}
|
|
57
45
|
if (senderType === constants_1.SENDER_TYPE.MESSAGING_SERVICE) {
|
|
58
46
|
messagingServiceSid = parseFieldValue(messagingServiceSid);
|
|
59
47
|
if (!messagingServiceSid) {
|
|
@@ -68,44 +56,39 @@ async function send(request, payload, settings) {
|
|
|
68
56
|
};
|
|
69
57
|
const getContent = () => {
|
|
70
58
|
contentSid = parseFieldValue(contentSid);
|
|
71
|
-
if (contentSid
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
else {
|
|
78
|
-
return {
|
|
79
|
-
ContentSid: contentSid,
|
|
80
|
-
...(Object.keys(contentVariables ?? {}).length > 0 && { ContentVariables: JSON.stringify(contentVariables) })
|
|
59
|
+
if (contentSid) {
|
|
60
|
+
if (!constants_1.CONTENT_SID_REGEX.test(contentSid)) {
|
|
61
|
+
throw new actions_core_1.PayloadValidationError("Content SID should start with 'HX' followed by 32 hexadecimal characters.");
|
|
62
|
+
}
|
|
63
|
+
const contentTemplate = {
|
|
64
|
+
ContentSid: contentSid
|
|
81
65
|
};
|
|
66
|
+
if (Object.keys(contentVariables ?? {}).length > 0) {
|
|
67
|
+
contentTemplate.ContentVariables = JSON.stringify(contentVariables);
|
|
68
|
+
}
|
|
69
|
+
return contentTemplate;
|
|
82
70
|
}
|
|
71
|
+
return {
|
|
72
|
+
Body: inlineBody || ''
|
|
73
|
+
};
|
|
83
74
|
};
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const urls = contentTemplateType === constants_1.ALL_CONTENT_TYPES.INLINE.friendly_name
|
|
88
|
-
? inlineMediaUrls
|
|
89
|
-
?.filter((item) => item.trim() !== '')
|
|
90
|
-
.map((item) => replaceTokens(item.trim(), inlineVariables)) ?? []
|
|
91
|
-
: mediaUrls?.map((item) => item.url.trim()) ?? [];
|
|
92
|
-
if (urls.length > 10) {
|
|
93
|
-
throw new actions_core_1.PayloadValidationError('Media URL cannot contain more than 10 URLs');
|
|
94
|
-
}
|
|
95
|
-
urls
|
|
96
|
-
.filter((url) => url.trim() !== '')
|
|
97
|
-
.some((url) => {
|
|
98
|
-
try {
|
|
99
|
-
new URL(url);
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
throw new actions_core_1.PayloadValidationError(`Media URL ${url} is not a valid URL.`);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
return urls.length > 0 ? { MediaUrl: urls } : {};
|
|
75
|
+
const getInlineMediaUrls = () => {
|
|
76
|
+
if (!inlineMediaUrls || inlineMediaUrls.length === 0) {
|
|
77
|
+
return {};
|
|
107
78
|
}
|
|
108
|
-
|
|
79
|
+
const urls = inlineMediaUrls.filter((item) => item.trim() !== '').map((item) => item.trim());
|
|
80
|
+
if (urls.length > 10) {
|
|
81
|
+
throw new actions_core_1.PayloadValidationError('Media URL cannot contain more than 10 URLs');
|
|
82
|
+
}
|
|
83
|
+
urls.forEach((url) => {
|
|
84
|
+
try {
|
|
85
|
+
new URL(url);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
throw new actions_core_1.PayloadValidationError(`Media URL ${url} is not a valid URL.`);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return urls.length > 0 ? { MediaUrl: urls } : {};
|
|
109
92
|
};
|
|
110
93
|
const twilioPayload = (() => ({
|
|
111
94
|
To: getTo(),
|
|
@@ -113,7 +96,7 @@ async function send(request, payload, settings) {
|
|
|
113
96
|
...getValidityPeriod(),
|
|
114
97
|
...getSender(),
|
|
115
98
|
...getContent(),
|
|
116
|
-
...
|
|
99
|
+
...getInlineMediaUrls()
|
|
117
100
|
}))();
|
|
118
101
|
const encodedBody = encode(twilioPayload);
|
|
119
102
|
return await request(constants_1.SEND_SMS_URL.replace(constants_1.ACCOUNT_SID_TOKEN, settings.accountSID), {
|
|
@@ -130,15 +113,12 @@ function parseFieldValue(value) {
|
|
|
130
113
|
return match ? match[1] : value;
|
|
131
114
|
}
|
|
132
115
|
exports.parseFieldValue = parseFieldValue;
|
|
133
|
-
function replaceTokens(str, tokens) {
|
|
134
|
-
return str.replace(constants_1.TOKEN_REGEX, (_, key) => String(tokens?.[key] ?? ''));
|
|
135
|
-
}
|
|
136
116
|
function encode(twilioPayload) {
|
|
137
117
|
const encodedSmsBody = new URLSearchParams();
|
|
138
118
|
Object.entries(twilioPayload).forEach(([key, value]) => {
|
|
139
119
|
if (key === 'MediaUrl' && Array.isArray(value)) {
|
|
140
120
|
value.forEach((url) => {
|
|
141
|
-
encodedSmsBody.append(
|
|
121
|
+
encodedSmsBody.append('MediaUrl', url);
|
|
142
122
|
});
|
|
143
123
|
}
|
|
144
124
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/utils.ts"],"names":[],"mappings":";;;AAAA,wDAA6E;AAG7E,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@segment/action-destinations",
|
|
3
3
|
"description": "Destination Actions engine and definitions.",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.404.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/segmentio/action-destinations",
|
|
@@ -90,5 +90,5 @@
|
|
|
90
90
|
"__tests__/__helpers__/"
|
|
91
91
|
]
|
|
92
92
|
},
|
|
93
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "dff81c312a061dc3b3a858179956d9cc5dba6ff3"
|
|
94
94
|
}
|