@segment/action-destinations 3.402.0 → 3.403.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/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 +20 -6
- package/dist/destinations/amazon-conversions-api/trackConversion/utils.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
|
@@ -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.403.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": "7c45464ef0b23b1f925846616253f2d20e1c6372"
|
|
94
94
|
}
|