@segment/action-destinations 3.416.0 → 3.418.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/attentive/fields.js +1 -16
- package/dist/destinations/attentive/fields.js.map +1 -1
- package/dist/destinations/attentive/functions.js +6 -9
- package/dist/destinations/attentive/functions.js.map +1 -1
- package/dist/destinations/attentive/types.d.ts +4 -1
- package/dist/destinations/batch/generated-types.d.ts +4 -0
- package/dist/destinations/batch/generated-types.js +3 -0
- package/dist/destinations/batch/generated-types.js.map +1 -0
- package/dist/destinations/batch/index.d.ts +4 -0
- package/dist/destinations/batch/index.js +64 -0
- package/dist/destinations/batch/index.js.map +1 -0
- package/dist/destinations/batch/updateProfile/constants.d.ts +2 -0
- package/dist/destinations/batch/updateProfile/constants.js +6 -0
- package/dist/destinations/batch/updateProfile/constants.js.map +1 -0
- package/dist/destinations/batch/updateProfile/generated-types.d.ts +22 -0
- package/dist/destinations/batch/updateProfile/generated-types.js +3 -0
- package/dist/destinations/batch/updateProfile/generated-types.js.map +1 -0
- package/dist/destinations/batch/updateProfile/index.d.ts +5 -0
- package/dist/destinations/batch/updateProfile/index.js +169 -0
- package/dist/destinations/batch/updateProfile/index.js.map +1 -0
- package/dist/destinations/batch/updateProfile/type.d.ts +31 -0
- package/dist/destinations/batch/updateProfile/type.js +3 -0
- package/dist/destinations/batch/updateProfile/type.js.map +1 -0
- package/dist/destinations/batch/updateProfile/utils.d.ts +6 -0
- package/dist/destinations/batch/updateProfile/utils.js +129 -0
- package/dist/destinations/batch/updateProfile/utils.js.map +1 -0
- package/dist/destinations/bing-ads-audiences/generated-types.d.ts +2 -0
- package/dist/destinations/bing-ads-audiences/generated-types.js +3 -0
- package/dist/destinations/bing-ads-audiences/generated-types.js.map +1 -0
- package/dist/destinations/bing-ads-audiences/index.d.ts +4 -0
- package/dist/destinations/bing-ads-audiences/index.js +34 -0
- package/dist/destinations/bing-ads-audiences/index.js.map +1 -0
- package/dist/destinations/bing-ads-audiences/syncAudiences/generated-types.d.ts +2 -0
- package/dist/destinations/bing-ads-audiences/syncAudiences/generated-types.js +3 -0
- package/dist/destinations/bing-ads-audiences/syncAudiences/generated-types.js.map +1 -0
- package/dist/destinations/bing-ads-audiences/syncAudiences/index.d.ts +5 -0
- package/dist/destinations/bing-ads-audiences/syncAudiences/index.js +15 -0
- package/dist/destinations/bing-ads-audiences/syncAudiences/index.js.map +1 -0
- package/dist/destinations/braze/index.js +1 -1
- package/dist/destinations/braze/index.js.map +1 -1
- package/dist/destinations/customerio/createUpdateDevice/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/createUpdateDevice/index.js +3 -1
- package/dist/destinations/customerio/createUpdateDevice/index.js.map +1 -1
- package/dist/destinations/customerio/createUpdateObject/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/createUpdateObject/index.js +3 -1
- package/dist/destinations/customerio/createUpdateObject/index.js.map +1 -1
- package/dist/destinations/customerio/createUpdatePerson/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/createUpdatePerson/index.js +3 -1
- package/dist/destinations/customerio/createUpdatePerson/index.js.map +1 -1
- package/dist/destinations/customerio/customerio-properties.d.ts +2 -0
- package/dist/destinations/customerio/customerio-properties.js +21 -0
- package/dist/destinations/customerio/customerio-properties.js.map +1 -0
- package/dist/destinations/customerio/deleteDevice/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/deleteDevice/index.js +3 -1
- package/dist/destinations/customerio/deleteDevice/index.js.map +1 -1
- package/dist/destinations/customerio/deleteObject/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/deleteObject/index.js +3 -1
- package/dist/destinations/customerio/deleteObject/index.js.map +1 -1
- package/dist/destinations/customerio/deletePerson/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/deletePerson/index.js +3 -1
- package/dist/destinations/customerio/deletePerson/index.js.map +1 -1
- package/dist/destinations/customerio/deleteRelationship/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/deleteRelationship/index.js +3 -1
- package/dist/destinations/customerio/deleteRelationship/index.js.map +1 -1
- package/dist/destinations/customerio/mergePeople/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/mergePeople/index.js +3 -1
- package/dist/destinations/customerio/mergePeople/index.js.map +1 -1
- package/dist/destinations/customerio/reportContentEvent/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/reportContentEvent/index.js +2 -0
- package/dist/destinations/customerio/reportContentEvent/index.js.map +1 -1
- package/dist/destinations/customerio/reportDeliveryEvent/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/reportDeliveryEvent/index.js +3 -1
- package/dist/destinations/customerio/reportDeliveryEvent/index.js.map +1 -1
- package/dist/destinations/customerio/suppressPerson/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/suppressPerson/index.js +3 -1
- package/dist/destinations/customerio/suppressPerson/index.js.map +1 -1
- package/dist/destinations/customerio/trackEvent/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/trackEvent/index.js +3 -1
- package/dist/destinations/customerio/trackEvent/index.js.map +1 -1
- package/dist/destinations/customerio/trackPageView/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/trackPageView/index.js +3 -1
- package/dist/destinations/customerio/trackPageView/index.js.map +1 -1
- package/dist/destinations/customerio/trackScreenView/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/trackScreenView/index.js +3 -1
- package/dist/destinations/customerio/trackScreenView/index.js.map +1 -1
- package/dist/destinations/customerio/unsuppressPerson/generated-types.d.ts +2 -0
- package/dist/destinations/customerio/unsuppressPerson/index.js +3 -1
- package/dist/destinations/customerio/unsuppressPerson/index.js.map +1 -1
- package/dist/destinations/customerio/utils.js +6 -0
- package/dist/destinations/customerio/utils.js.map +1 -1
- package/dist/destinations/epsilon/sendEvent/fields.js +4 -2
- package/dist/destinations/epsilon/sendEvent/fields.js.map +1 -1
- package/dist/destinations/index.js +4 -0
- package/dist/destinations/index.js.map +1 -1
- package/dist/destinations/intercom/index.js +0 -4
- package/dist/destinations/intercom/index.js.map +1 -1
- package/dist/destinations/klaviyo/functions.d.ts +2 -2
- package/dist/destinations/klaviyo/functions.js +5 -4
- package/dist/destinations/klaviyo/functions.js.map +1 -1
- package/dist/destinations/klaviyo/subscribeProfile/generated-types.d.ts +1 -0
- package/dist/destinations/klaviyo/subscribeProfile/index.js +13 -7
- package/dist/destinations/klaviyo/subscribeProfile/index.js.map +1 -1
- package/dist/destinations/klaviyo/types.d.ts +1 -0
- package/dist/destinations/livelike-cloud/syncToUserGroup/generated-types.d.ts +1 -0
- package/dist/destinations/livelike-cloud/syncToUserGroup/index.js +7 -1
- package/dist/destinations/livelike-cloud/syncToUserGroup/index.js.map +1 -1
- package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js +3 -1
- package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js.map +1 -1
- package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js +2 -0
- package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js.map +1 -1
- package/dist/destinations/liveramp-audiences/awsClient.d.ts +1 -0
- package/dist/destinations/liveramp-audiences/awsClient.js +2 -1
- package/dist/destinations/liveramp-audiences/awsClient.js.map +1 -1
- package/dist/destinations/liveramp-audiences/properties.d.ts +1 -0
- package/dist/destinations/liveramp-audiences/properties.js +2 -1
- package/dist/destinations/liveramp-audiences/properties.js.map +1 -1
- package/dist/destinations/sftp/client.d.ts +9 -0
- package/dist/destinations/sftp/client.js +96 -0
- package/dist/destinations/sftp/client.js.map +1 -0
- package/dist/destinations/sftp/constants.d.ts +1 -0
- package/dist/destinations/sftp/constants.js +5 -0
- package/dist/destinations/sftp/constants.js.map +1 -0
- package/dist/destinations/sftp/fields.d.ts +3 -0
- package/dist/destinations/sftp/fields.js +260 -0
- package/dist/destinations/sftp/fields.js.map +1 -0
- package/dist/destinations/sftp/functions.d.ts +13 -0
- package/dist/destinations/sftp/functions.js +116 -0
- package/dist/destinations/sftp/functions.js.map +1 -0
- package/dist/destinations/sftp/generated-types.d.ts +8 -0
- package/dist/destinations/sftp/generated-types.js +3 -0
- package/dist/destinations/sftp/generated-types.js.map +1 -0
- package/dist/destinations/sftp/index.d.ts +4 -0
- package/dist/destinations/sftp/index.js +103 -0
- package/dist/destinations/sftp/index.js.map +1 -0
- package/dist/destinations/sftp/syncEvents/generated-types.d.ts +39 -0
- package/dist/destinations/sftp/syncEvents/generated-types.js +3 -0
- package/dist/destinations/sftp/syncEvents/generated-types.js.map +1 -0
- package/dist/destinations/sftp/syncEvents/index.d.ts +5 -0
- package/dist/destinations/sftp/syncEvents/index.js +22 -0
- package/dist/destinations/sftp/syncEvents/index.js.map +1 -0
- package/dist/destinations/sftp/syncModelToSFTP/generated-types.d.ts +12 -0
- package/dist/destinations/sftp/syncModelToSFTP/generated-types.js +3 -0
- package/dist/destinations/sftp/syncModelToSFTP/generated-types.js.map +1 -0
- package/dist/destinations/sftp/syncModelToSFTP/index.d.ts +5 -0
- package/dist/destinations/sftp/syncModelToSFTP/index.js +22 -0
- package/dist/destinations/sftp/syncModelToSFTP/index.js.map +1 -0
- package/dist/destinations/sftp/types.d.ts +40 -0
- package/dist/destinations/sftp/types.js +3 -0
- package/dist/destinations/sftp/types.js.map +1 -0
- package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js +4 -2
- package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js.map +1 -1
- package/dist/destinations/stackadapt-audiences/functions.d.ts +1 -1
- package/dist/destinations/stackadapt-audiences/functions.js +1 -1
- package/dist/destinations/stackadapt-audiences/functions.js.map +1 -1
- package/dist/destinations/twilio-messaging/sendMessage/dynamic-fields.js +5 -0
- package/dist/destinations/twilio-messaging/sendMessage/dynamic-fields.js.map +1 -1
- package/dist/destinations/twilio-messaging/sendMessage/fields.js +11 -2
- package/dist/destinations/twilio-messaging/sendMessage/fields.js.map +1 -1
- package/dist/destinations/twilio-messaging/sendMessage/utils.js +4 -4
- package/dist/destinations/twilio-messaging/sendMessage/utils.js.map +1 -1
- package/dist/destinations/yonoma/generated-types.d.ts +3 -0
- package/dist/destinations/yonoma/generated-types.js +3 -0
- package/dist/destinations/yonoma/generated-types.js.map +1 -0
- package/dist/destinations/yonoma/index.d.ts +4 -0
- package/dist/destinations/yonoma/index.js +47 -0
- package/dist/destinations/yonoma/index.js.map +1 -0
- package/dist/destinations/yonoma/sendEvent/constants.d.ts +1 -0
- package/dist/destinations/yonoma/sendEvent/constants.js +5 -0
- package/dist/destinations/yonoma/sendEvent/constants.js.map +1 -0
- package/dist/destinations/yonoma/sendEvent/functions.d.ts +1 -0
- package/dist/destinations/yonoma/sendEvent/functions.js +19 -0
- package/dist/destinations/yonoma/sendEvent/functions.js.map +1 -0
- package/dist/destinations/yonoma/sendEvent/generated-types.d.ts +12 -0
- package/dist/destinations/yonoma/sendEvent/generated-types.js +3 -0
- package/dist/destinations/yonoma/sendEvent/generated-types.js.map +1 -0
- package/dist/destinations/yonoma/sendEvent/index.d.ts +5 -0
- package/dist/destinations/yonoma/sendEvent/index.js +97 -0
- package/dist/destinations/yonoma/sendEvent/index.js.map +1 -0
- package/dist/destinations/yonoma/sendEvent/types.d.ts +10 -0
- package/dist/destinations/yonoma/sendEvent/types.js +3 -0
- package/dist/destinations/yonoma/sendEvent/types.js.map +1 -0
- package/dist/destinations/yonoma/trackEvent/constants.d.ts +1 -0
- package/dist/destinations/yonoma/trackEvent/constants.js +5 -0
- package/dist/destinations/yonoma/trackEvent/constants.js.map +1 -0
- package/dist/destinations/yonoma/trackEvent/generated-types.d.ts +13 -0
- package/dist/destinations/yonoma/trackEvent/generated-types.js +3 -0
- package/dist/destinations/yonoma/trackEvent/generated-types.js.map +1 -0
- package/dist/destinations/yonoma/trackEvent/index.d.ts +5 -0
- package/dist/destinations/yonoma/trackEvent/index.js +104 -0
- package/dist/destinations/yonoma/trackEvent/index.js.map +1 -0
- package/dist/destinations/yonoma/trackEvent/types.d.ts +11 -0
- package/dist/destinations/yonoma/trackEvent/types.js +3 -0
- package/dist/destinations/yonoma/trackEvent/types.js.map +1 -0
- package/dist/destinations/yonoma/trackPageView/constants.d.ts +1 -0
- package/dist/destinations/yonoma/trackPageView/constants.js +5 -0
- package/dist/destinations/yonoma/trackPageView/constants.js.map +1 -0
- package/dist/destinations/yonoma/trackPageView/generated-types.d.ts +17 -0
- package/dist/destinations/yonoma/trackPageView/generated-types.js +3 -0
- package/dist/destinations/yonoma/trackPageView/generated-types.js.map +1 -0
- package/dist/destinations/yonoma/trackPageView/index.d.ts +5 -0
- package/dist/destinations/yonoma/trackPageView/index.js +116 -0
- package/dist/destinations/yonoma/trackPageView/index.js.map +1 -0
- package/dist/destinations/yonoma/trackPageView/types.d.ts +13 -0
- package/dist/destinations/yonoma/trackPageView/types.js +3 -0
- package/dist/destinations/yonoma/trackPageView/types.js.map +1 -0
- package/dist/destinations/yonoma/upsertContact/constants.d.ts +3 -0
- package/dist/destinations/yonoma/upsertContact/constants.js +7 -0
- package/dist/destinations/yonoma/upsertContact/constants.js.map +1 -0
- package/dist/destinations/yonoma/upsertContact/functions.d.ts +1 -0
- package/dist/destinations/yonoma/upsertContact/functions.js +19 -0
- package/dist/destinations/yonoma/upsertContact/functions.js.map +1 -0
- package/dist/destinations/yonoma/upsertContact/generated-types.d.ts +22 -0
- package/dist/destinations/yonoma/upsertContact/generated-types.js +3 -0
- package/dist/destinations/yonoma/upsertContact/generated-types.js.map +1 -0
- package/dist/destinations/yonoma/upsertContact/index.d.ts +5 -0
- package/dist/destinations/yonoma/upsertContact/index.js +189 -0
- package/dist/destinations/yonoma/upsertContact/index.js.map +1 -0
- package/dist/destinations/yonoma/upsertContact/types.d.ts +24 -0
- package/dist/destinations/yonoma/upsertContact/types.js +3 -0
- package/dist/destinations/yonoma/upsertContact/types.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clean = clean;
|
|
4
|
+
exports.createFilename = createFilename;
|
|
5
|
+
exports.createHeaders = createHeaders;
|
|
6
|
+
exports.enquoteIdentifier = enquoteIdentifier;
|
|
7
|
+
exports.generateFile = generateFile;
|
|
8
|
+
exports.getAudienceAction = getAudienceAction;
|
|
9
|
+
exports.processField = processField;
|
|
10
|
+
exports.send = send;
|
|
11
|
+
const actions_core_1 = require("@segment/actions-core");
|
|
12
|
+
const client_1 = require("./client");
|
|
13
|
+
async function send(payloads, settings, rawMapping) {
|
|
14
|
+
const { delimiter, audience_action_column_name, batch_size_column_name, filename_prefix, file_extension, sftp_folder_path } = payloads[0];
|
|
15
|
+
const headers = createHeaders(rawMapping, delimiter, audience_action_column_name, batch_size_column_name);
|
|
16
|
+
const rowsObservabilityArray = [];
|
|
17
|
+
const fileContent = generateFile(payloads, headers, delimiter, rowsObservabilityArray, audience_action_column_name, batch_size_column_name);
|
|
18
|
+
const filename = createFilename(filename_prefix, file_extension);
|
|
19
|
+
const msResponse = new actions_core_1.MultiStatusResponse();
|
|
20
|
+
try {
|
|
21
|
+
await (0, client_1.uploadSFTP)(settings, sftp_folder_path, filename, fileContent);
|
|
22
|
+
payloads.forEach((payload, index) => {
|
|
23
|
+
const row = rowsObservabilityArray[index] ?? '';
|
|
24
|
+
msResponse.setSuccessResponseAtIndex(index, {
|
|
25
|
+
status: 200,
|
|
26
|
+
sent: payload,
|
|
27
|
+
body: `Header row = ${headers.map((header) => header.cleanName) ?? 'Headers not found'}. Row content =${row ?? 'Row content not found'}`
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
payloads.forEach((payload, index) => {
|
|
33
|
+
const row = rowsObservabilityArray[index] ?? '';
|
|
34
|
+
msResponse.setErrorResponseAtIndex(index, {
|
|
35
|
+
status: error?.status || 400,
|
|
36
|
+
errortype: error?.code || actions_core_1.ErrorCodes.BAD_REQUEST,
|
|
37
|
+
errormessage: error?.message ?? 'Failed to upload file to SFTP',
|
|
38
|
+
sent: payload,
|
|
39
|
+
body: `Header row = ${headers.map((header) => header.cleanName) ?? 'Headers not found'}. Row content =${row ?? 'Row content not found'}`
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return msResponse;
|
|
44
|
+
}
|
|
45
|
+
function clean(delimiter, str = '') {
|
|
46
|
+
return delimiter === 'tab' ? str : str.replace(delimiter, '');
|
|
47
|
+
}
|
|
48
|
+
function createHeaders(rawMapping, delimiter, audienceActionColumnName, batchSizeColumnName) {
|
|
49
|
+
const createHeader = (columnName) => ({
|
|
50
|
+
cleanName: clean(delimiter, columnName),
|
|
51
|
+
originalName: columnName
|
|
52
|
+
});
|
|
53
|
+
const headers = [];
|
|
54
|
+
Object.entries(rawMapping.columns)
|
|
55
|
+
.filter(([_, value]) => value !== '')
|
|
56
|
+
.forEach(([column]) => {
|
|
57
|
+
headers.push(createHeader(column));
|
|
58
|
+
});
|
|
59
|
+
if (audienceActionColumnName)
|
|
60
|
+
headers.push(createHeader(audienceActionColumnName));
|
|
61
|
+
if (batchSizeColumnName)
|
|
62
|
+
headers.push(createHeader(batchSizeColumnName));
|
|
63
|
+
if (headers.length === 0) {
|
|
64
|
+
throw new actions_core_1.PayloadValidationError('No columns headers specified');
|
|
65
|
+
}
|
|
66
|
+
return headers;
|
|
67
|
+
}
|
|
68
|
+
function createFilename(filename_prefix, file_extension) {
|
|
69
|
+
const dateSuffix = new Date().toISOString().replace(/[:.]/g, '-');
|
|
70
|
+
switch (true) {
|
|
71
|
+
case filename_prefix.endsWith(`.${file_extension}`):
|
|
72
|
+
return filename_prefix.replace(`.${file_extension}`, `__${dateSuffix}.${file_extension}`);
|
|
73
|
+
case filename_prefix !== '':
|
|
74
|
+
return `${filename_prefix}__${dateSuffix}.${file_extension}`;
|
|
75
|
+
default:
|
|
76
|
+
return `${dateSuffix}.${file_extension}`;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function generateFile(payloads, headers, delimiter, rowsArray, actionColName, batchColName) {
|
|
80
|
+
const rows = payloads.map((payload, index) => {
|
|
81
|
+
const isLastRow = index === payloads.length - 1;
|
|
82
|
+
const row = headers.map((header) => {
|
|
83
|
+
switch (header.originalName) {
|
|
84
|
+
case actionColName:
|
|
85
|
+
return processField(getAudienceAction(payload));
|
|
86
|
+
case batchColName:
|
|
87
|
+
return processField(payloads.length);
|
|
88
|
+
default:
|
|
89
|
+
return processField(payload.columns[header.originalName]);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
return Buffer.from(`${row.join(delimiter === 'tab' ? '\t' : delimiter)}${isLastRow ? '' : '\n'}`);
|
|
93
|
+
});
|
|
94
|
+
rowsArray.push(...rows.map((row) => row.toString()));
|
|
95
|
+
return Buffer.concat([
|
|
96
|
+
Buffer.from(`${headers.map((header) => header.cleanName).join(delimiter === 'tab' ? '\t' : delimiter)}\n`),
|
|
97
|
+
...rows
|
|
98
|
+
]);
|
|
99
|
+
}
|
|
100
|
+
function processField(value) {
|
|
101
|
+
return enquoteIdentifier(value === undefined || value === null
|
|
102
|
+
? ''
|
|
103
|
+
: typeof value === 'object'
|
|
104
|
+
? String(JSON.stringify(value))
|
|
105
|
+
: String(value));
|
|
106
|
+
}
|
|
107
|
+
function getAudienceAction(payload) {
|
|
108
|
+
if (!payload.traits_or_props || !payload.computation_key) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
return payload?.traits_or_props?.[payload.computation_key] ?? undefined;
|
|
112
|
+
}
|
|
113
|
+
function enquoteIdentifier(identifier) {
|
|
114
|
+
return `"${String(identifier).replace(/"/g, '""')}"`;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/sftp/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/sftp/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const client_1 = require("./client");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
const syncEvents_1 = __importDefault(require("./syncEvents"));
|
|
9
|
+
const syncModelToSFTP_1 = __importDefault(require("./syncModelToSFTP"));
|
|
10
|
+
const destination = {
|
|
11
|
+
name: 'SFTP',
|
|
12
|
+
slug: 'actions-sftp',
|
|
13
|
+
mode: 'cloud',
|
|
14
|
+
description: 'Sync Segment events to SFTP',
|
|
15
|
+
authentication: {
|
|
16
|
+
scheme: 'custom',
|
|
17
|
+
fields: {
|
|
18
|
+
auth_type: {
|
|
19
|
+
label: 'Authentication Type',
|
|
20
|
+
description: 'The type of authentication to use for the SFTP connection',
|
|
21
|
+
type: 'string',
|
|
22
|
+
choices: [
|
|
23
|
+
{ label: 'Username and Password', value: 'password' },
|
|
24
|
+
{ label: 'Username and SSH Key', value: 'ssh_key' }
|
|
25
|
+
],
|
|
26
|
+
default: 'password',
|
|
27
|
+
required: true
|
|
28
|
+
},
|
|
29
|
+
sftp_host: {
|
|
30
|
+
label: 'SFTP Host',
|
|
31
|
+
description: 'The hostname or IP address of the SFTP server',
|
|
32
|
+
type: 'string',
|
|
33
|
+
required: true
|
|
34
|
+
},
|
|
35
|
+
sftp_port: {
|
|
36
|
+
label: 'SFTP Port',
|
|
37
|
+
description: 'The port number for the SFTP connection',
|
|
38
|
+
type: 'number',
|
|
39
|
+
required: false,
|
|
40
|
+
default: constants_1.SFTP_DEFAULT_PORT
|
|
41
|
+
},
|
|
42
|
+
sftp_username: {
|
|
43
|
+
label: 'Username',
|
|
44
|
+
description: 'Username for establishing an SFTP connection',
|
|
45
|
+
type: 'string',
|
|
46
|
+
required: true
|
|
47
|
+
},
|
|
48
|
+
sftp_password: {
|
|
49
|
+
label: 'Password',
|
|
50
|
+
description: 'Password for establishing an SFTP connection',
|
|
51
|
+
type: 'password',
|
|
52
|
+
required: {
|
|
53
|
+
conditions: [
|
|
54
|
+
{
|
|
55
|
+
fieldKey: 'auth_type',
|
|
56
|
+
operator: 'is',
|
|
57
|
+
value: 'password'
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
depends_on: {
|
|
62
|
+
conditions: [
|
|
63
|
+
{
|
|
64
|
+
fieldKey: 'auth_type',
|
|
65
|
+
operator: 'is',
|
|
66
|
+
value: 'password'
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
sftp_ssh_key: {
|
|
72
|
+
label: 'SSH Key',
|
|
73
|
+
description: 'SSH Key for establishing an SFTP connection',
|
|
74
|
+
type: 'password',
|
|
75
|
+
required: {
|
|
76
|
+
conditions: [
|
|
77
|
+
{
|
|
78
|
+
fieldKey: 'auth_type',
|
|
79
|
+
operator: 'is',
|
|
80
|
+
value: 'ssh_key'
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
depends_on: {
|
|
85
|
+
conditions: [
|
|
86
|
+
{
|
|
87
|
+
fieldKey: 'auth_type',
|
|
88
|
+
operator: 'is',
|
|
89
|
+
value: 'ssh_key'
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
testAuthentication: async (_, { settings }) => await (0, client_1.testSFTPConnection)(settings)
|
|
96
|
+
},
|
|
97
|
+
actions: {
|
|
98
|
+
syncEvents: syncEvents_1.default,
|
|
99
|
+
syncModelToSFTP: syncModelToSFTP_1.default
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
exports.default = destination;
|
|
103
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/sftp/index.ts"],"names":[],"mappings":";;;;;AAGA,qCAA6C;AAC7C,2CAA+C;AAC/C,8DAAqC;AACrC,wEAA+C;AAE/C,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,6BAA6B;IAC1C,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,2DAA2D;gBACxE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,UAAU,EAAE;oBACrD,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE;iBACpD;gBACD,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,+CAA+C;gBAC5D,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,yCAAyC;gBACtD,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,6BAAiB;aAC3B;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,8CAA8C;gBAC3D,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,8CAA8C;gBAC3D,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE;oBACR,UAAU,EAAE;wBACV;4BACE,QAAQ,EAAE,WAAW;4BACrB,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,UAAU;yBAClB;qBACF;iBACF;gBACD,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV;4BACE,QAAQ,EAAE,WAAW;4BACrB,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,UAAU;yBAClB;qBACF;iBACF;aACF;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,6CAA6C;gBAC1D,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE;oBACR,UAAU,EAAE;wBACV;4BACE,QAAQ,EAAE,WAAW;4BACrB,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,SAAS;yBACjB;qBACF;iBACF;gBACD,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV;4BACE,QAAQ,EAAE,WAAW;4BACrB,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,SAAS;yBACjB;qBACF;iBACF;aACF;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,IAAA,2BAAkB,EAAC,QAAQ,CAAC;KAClF;IACD,OAAO,EAAE;QACP,UAAU,EAAV,oBAAU;QACV,eAAe,EAAf,yBAAe;KAChB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export interface Payload {
|
|
2
|
+
columns: {
|
|
3
|
+
event_name?: string;
|
|
4
|
+
event_type?: string;
|
|
5
|
+
user_id?: string;
|
|
6
|
+
anonymous_id?: string;
|
|
7
|
+
email?: string;
|
|
8
|
+
properties?: {
|
|
9
|
+
[k: string]: unknown;
|
|
10
|
+
};
|
|
11
|
+
traits?: {
|
|
12
|
+
[k: string]: unknown;
|
|
13
|
+
};
|
|
14
|
+
context?: {
|
|
15
|
+
[k: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
timestamp?: string;
|
|
18
|
+
message_id?: string;
|
|
19
|
+
integrations?: {
|
|
20
|
+
[k: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
audience_name?: string;
|
|
23
|
+
audience_id?: string;
|
|
24
|
+
audience_space_id?: string;
|
|
25
|
+
[k: string]: unknown;
|
|
26
|
+
};
|
|
27
|
+
filename_prefix: string;
|
|
28
|
+
file_extension: string;
|
|
29
|
+
delimiter: string;
|
|
30
|
+
sftp_folder_path: string;
|
|
31
|
+
enable_batching: boolean;
|
|
32
|
+
batch_size: number;
|
|
33
|
+
batch_size_column_name?: string;
|
|
34
|
+
audience_action_column_name?: string;
|
|
35
|
+
traits_or_props?: {
|
|
36
|
+
[k: string]: unknown;
|
|
37
|
+
};
|
|
38
|
+
computation_key?: string;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/sftp/syncEvents/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fields_1 = require("../fields");
|
|
4
|
+
const functions_1 = require("../functions");
|
|
5
|
+
const action = {
|
|
6
|
+
title: 'Sync Events',
|
|
7
|
+
description: 'Sync Segment events to SFTP. Includes predefined mappings for common Segment event fields. Additional column mappings may be added.',
|
|
8
|
+
defaultSubscription: 'type = "identify" or type = "track" or type = "page" or type = "screen" or type = "group"',
|
|
9
|
+
fields: fields_1.commonFields,
|
|
10
|
+
perform: async (_, data) => {
|
|
11
|
+
const { payload, settings } = data;
|
|
12
|
+
const rawMapping = data.rawMapping;
|
|
13
|
+
return (0, functions_1.send)([payload], settings, rawMapping);
|
|
14
|
+
},
|
|
15
|
+
performBatch: async (_, data) => {
|
|
16
|
+
const { payload, settings } = data;
|
|
17
|
+
const rawMapping = data.rawMapping;
|
|
18
|
+
return (0, functions_1.send)(payload, settings, rawMapping);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.default = action;
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/sftp/syncEvents/index.ts"],"names":[],"mappings":";;AAGA,sCAAwC;AACxC,4CAAmC;AAGnC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,qIAAqI;IACvI,mBAAmB,EAAE,2FAA2F;IAChH,MAAM,EAAE,qBAAY;IACpB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAClC,MAAM,UAAU,GAAgB,IAAwB,CAAC,UAAU,CAAA;QACnE,OAAO,IAAA,gBAAI,EAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC9C,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAClC,MAAM,UAAU,GAAgB,IAAwB,CAAC,UAAU,CAAA;QACnE,OAAO,IAAA,gBAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC5C,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface Payload {
|
|
2
|
+
columns: {
|
|
3
|
+
[k: string]: unknown;
|
|
4
|
+
};
|
|
5
|
+
filename_prefix: string;
|
|
6
|
+
file_extension: string;
|
|
7
|
+
delimiter: string;
|
|
8
|
+
sftp_folder_path: string;
|
|
9
|
+
enable_batching: boolean;
|
|
10
|
+
batch_size: number;
|
|
11
|
+
batch_size_column_name?: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/sftp/syncModelToSFTP/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fields_1 = require("../fields");
|
|
4
|
+
const functions_1 = require("../functions");
|
|
5
|
+
const action = {
|
|
6
|
+
title: 'Sync RETL Model',
|
|
7
|
+
description: 'Sync Reverse ETL model data to SFTP. Can also be used to sync Segment events with no predefined mappings.',
|
|
8
|
+
defaultSubscription: 'type = "identify" or type = "track" or type = "page" or type = "screen" or type = "group"',
|
|
9
|
+
fields: fields_1.baseFields,
|
|
10
|
+
perform: async (_, data) => {
|
|
11
|
+
const { payload, settings } = data;
|
|
12
|
+
const rawMapping = data.rawMapping;
|
|
13
|
+
return (0, functions_1.send)([payload], settings, rawMapping);
|
|
14
|
+
},
|
|
15
|
+
performBatch: async (_, data) => {
|
|
16
|
+
const { payload, settings } = data;
|
|
17
|
+
const rawMapping = data.rawMapping;
|
|
18
|
+
return (0, functions_1.send)(payload, settings, rawMapping);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.default = action;
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/sftp/syncModelToSFTP/index.ts"],"names":[],"mappings":";;AACA,sCAAsC;AACtC,4CAAmC;AAKnC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,2GAA2G;IAC7G,mBAAmB,EAAE,2FAA2F;IAChH,MAAM,EAAE,mBAAU;IAClB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAClC,MAAM,UAAU,GAAgB,IAAwB,CAAC,UAAU,CAAA;QACnE,OAAO,IAAA,gBAAI,EAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC9C,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAClC,MAAM,UAAU,GAAgB,IAAwB,CAAC,UAAU,CAAA;QACnE,OAAO,IAAA,gBAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC5C,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ExecuteInput } from '@segment/actions-core';
|
|
2
|
+
import type { Settings } from './generated-types';
|
|
3
|
+
import type { Payload } from './syncEvents/generated-types';
|
|
4
|
+
export interface Data {
|
|
5
|
+
rawMapping: RawMapping;
|
|
6
|
+
}
|
|
7
|
+
export interface RawMapping {
|
|
8
|
+
columns: {
|
|
9
|
+
[k: string]: unknown;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface ColumnHeader {
|
|
13
|
+
cleanName: string;
|
|
14
|
+
originalName: string;
|
|
15
|
+
}
|
|
16
|
+
export type RawData = {
|
|
17
|
+
context?: {
|
|
18
|
+
personas?: {
|
|
19
|
+
computation_key?: string;
|
|
20
|
+
computation_class?: string;
|
|
21
|
+
computation_id?: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export type ProcessDataInput<T extends Payload> = {
|
|
26
|
+
payloads: T[];
|
|
27
|
+
features?: Record<string, boolean>;
|
|
28
|
+
rawData?: RawData[];
|
|
29
|
+
settings: Settings;
|
|
30
|
+
};
|
|
31
|
+
export type ExecuteInputRaw<Settings, Payload, RawData, AudienceSettings = unknown> = ExecuteInput<Settings, Payload, AudienceSettings> & {
|
|
32
|
+
rawData?: RawData;
|
|
33
|
+
};
|
|
34
|
+
export type sftpConnectionConfig = {
|
|
35
|
+
host: string;
|
|
36
|
+
port: number;
|
|
37
|
+
username: string;
|
|
38
|
+
password?: string;
|
|
39
|
+
privateKey?: string;
|
|
40
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/destinations/sftp/types.ts"],"names":[],"mappings":""}
|
|
@@ -7,13 +7,15 @@ const audienceMapping = (0, functions_1.stringifyJsonWithEscapedQuotes)([
|
|
|
7
7
|
incomingKey: 'audienceId',
|
|
8
8
|
destinationKey: 'external_id',
|
|
9
9
|
type: 'string',
|
|
10
|
-
label: 'External Audience ID'
|
|
10
|
+
label: 'External Audience ID',
|
|
11
|
+
isPii: false,
|
|
11
12
|
},
|
|
12
13
|
{
|
|
13
14
|
incomingKey: 'audienceName',
|
|
14
15
|
destinationKey: 'name',
|
|
15
16
|
type: 'string',
|
|
16
|
-
label: 'External Audience Name'
|
|
17
|
+
label: 'External Audience Name',
|
|
18
|
+
isPii: false,
|
|
17
19
|
}
|
|
18
20
|
]);
|
|
19
21
|
const profileMapping = (0, functions_1.stringifyJsonWithEscapedQuotes)([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/destinations/stackadapt-audiences/forwardAudienceEvent/functions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/destinations/stackadapt-audiences/forwardAudienceEvent/functions.ts"],"names":[],"mappings":";;AAgCA,oEAsDC;AApFD,4CAA0G;AAE1G,MAAM,eAAe,GAAG,IAAA,0CAA8B,EAAC;IACrD;QACE,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,aAAa;QAC7B,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,KAAK;KACb;IACD;QACE,WAAW,EAAE,cAAc;QAC3B,cAAc,EAAE,MAAM;QACtB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,KAAK;KAEb;CACF,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,IAAA,0CAA8B,EAAC;IACpD;QACE,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,aAAa;QAC7B,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,qBAAqB;KAC7B;CACF,CAAC,CAAA;AAEK,KAAK,UAAU,4BAA4B,CAAC,OAAsB,EAAE,MAAiB;IAC1F,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAA;IAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1C,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,sBAAsB,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,CAAA;QAEpH,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,CAAA;QACjD,OAAO;YACL,MAAM,EAAE,OAAO;YACf,UAAU;YACV,YAAY,EAAE,WAAW;YACzB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;SAClC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAA,0CAA8B,EAAC,cAAc,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG;;;0BAGO,YAAY;+BACP,6BAAiB;qBAC3B,IAAA,sBAAU,EAAC,QAAQ,CAAC;uBAClB,QAAQ;;;;;;;;;0BASL,YAAY;6BACT,cAAc;2BAChB,6BAAiB;;;;;;;;;0BASlB,YAAY;2BACX,eAAe;2BACf,6BAAiB;;;;;;;MAOtC,CAAA;IACJ,OAAO,MAAM,OAAO,CAAC,wBAAY,EAAE;QACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KAC1C,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequestClient, DynamicFieldResponse } from '@segment/actions-core';
|
|
2
|
-
export declare const EXTERNAL_PROVIDER = "
|
|
2
|
+
export declare const EXTERNAL_PROVIDER = "segment_io";
|
|
3
3
|
export declare const GQL_ENDPOINT = "https://api.stackadapt.com/graphql";
|
|
4
4
|
export declare function advertiserIdFieldImplementation(request: ReturnType<typeof createRequestClient>): Promise<DynamicFieldResponse>;
|
|
5
5
|
export declare function sha256hash(data: string): string;
|
|
@@ -5,7 +5,7 @@ exports.advertiserIdFieldImplementation = advertiserIdFieldImplementation;
|
|
|
5
5
|
exports.sha256hash = sha256hash;
|
|
6
6
|
exports.stringifyJsonWithEscapedQuotes = stringifyJsonWithEscapedQuotes;
|
|
7
7
|
const crypto_1 = require("crypto");
|
|
8
|
-
exports.EXTERNAL_PROVIDER = '
|
|
8
|
+
exports.EXTERNAL_PROVIDER = 'segment_io';
|
|
9
9
|
exports.GQL_ENDPOINT = 'https://api.stackadapt.com/graphql';
|
|
10
10
|
async function advertiserIdFieldImplementation(request) {
|
|
11
11
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/stackadapt-audiences/functions.ts"],"names":[],"mappings":";;;AA6BA,0EAoCC;AAED,gCAIC;AAGD,wEASC;AAjFD,mCAAmC;AAwBtB,QAAA,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/stackadapt-audiences/functions.ts"],"names":[],"mappings":";;;AA6BA,0EAoCC;AAED,gCAIC;AAGD,wEASC;AAjFD,mCAAmC;AAwBtB,QAAA,iBAAiB,GAAG,YAAY,CAAA;AAChC,QAAA,YAAY,GAAG,oCAAoC,CAAA;AAEzD,KAAK,UAAU,+BAA+B,CACnD,OAA+C;IAE/C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG;;;;;;;;;;;;QAYV,CAAA;QACJ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAoB,oBAAY,EAAE;YAC9D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAA;QAC1E,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK;aACrC,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aACrE,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;aAC5G,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;QACjD,OAAO,EAAE,OAAO,EAAE,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE;gBACL,OAAO,EAAG,KAAkB,CAAC,OAAO,IAAI,eAAe;gBACvD,IAAI,EAAG,KAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,eAAe;aAChE;SACF,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,IAAY;IACrC,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAGD,SAAgB,8BAA8B,CAAC,KAAc;IAC3D,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAGvC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CACpE,UAAU,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAGvC,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -35,6 +35,11 @@ async function dynamicSenderType(payload) {
|
|
|
35
35
|
if (!channel) {
|
|
36
36
|
return createErrorResponse("Select from 'Channel' field first.");
|
|
37
37
|
}
|
|
38
|
+
if (channel === constants_1.CHANNELS.RCS) {
|
|
39
|
+
return {
|
|
40
|
+
choices: [{ label: constants_1.SENDER_TYPE.MESSAGING_SERVICE, value: constants_1.SENDER_TYPE.MESSAGING_SERVICE }]
|
|
41
|
+
};
|
|
42
|
+
}
|
|
38
43
|
return {
|
|
39
44
|
choices: [
|
|
40
45
|
{ label: constants_1.SENDER_TYPE.PHONE_NUMBER, value: constants_1.SENDER_TYPE.PHONE_NUMBER },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-fields.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/dynamic-fields.ts"],"names":[],"mappings":";;AA6DA,
|
|
1
|
+
{"version":3,"file":"dynamic-fields.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/dynamic-fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,8 @@ exports.fields = {
|
|
|
11
11
|
choices: [
|
|
12
12
|
{ label: 'SMS', value: constants_1.CHANNELS.SMS },
|
|
13
13
|
{ label: 'MMS', value: constants_1.CHANNELS.MMS },
|
|
14
|
-
{ label: 'WhatsApp', value: constants_1.CHANNELS.WHATSAPP }
|
|
14
|
+
{ label: 'WhatsApp', value: constants_1.CHANNELS.WHATSAPP },
|
|
15
|
+
{ label: 'RCS', value: constants_1.CHANNELS.RCS }
|
|
15
16
|
]
|
|
16
17
|
},
|
|
17
18
|
senderType: {
|
|
@@ -102,7 +103,15 @@ exports.fields = {
|
|
|
102
103
|
description: 'The SID of the messaging service to use. If not in the dropdown, enter it directly.',
|
|
103
104
|
type: 'string',
|
|
104
105
|
dynamic: true,
|
|
105
|
-
required:
|
|
106
|
+
required: {
|
|
107
|
+
conditions: [
|
|
108
|
+
{
|
|
109
|
+
fieldKey: 'channel',
|
|
110
|
+
operator: 'is',
|
|
111
|
+
value: constants_1.CHANNELS.RCS
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
106
115
|
default: undefined,
|
|
107
116
|
allowNull: false,
|
|
108
117
|
disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/fields.ts"],"names":[],"mappings":";;;AACA,2CAAsE;AAEzD,QAAA,MAAM,GAA+B;IAChD,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAQ,CAAC,GAAG,EAAE;YACrC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAQ,CAAC,GAAG,EAAE;YACrC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,oBAAQ,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/destinations/twilio-messaging/sendMessage/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,16 +10,16 @@ async function send(request, payload, settings) {
|
|
|
10
10
|
const { channel, senderType, contentVariables, validityPeriod, sendAt, inlineMediaUrls, inlineBody, contentTemplateType, tags } = payload;
|
|
11
11
|
const getTo = () => {
|
|
12
12
|
switch (channel) {
|
|
13
|
-
case
|
|
14
|
-
case
|
|
15
|
-
case
|
|
13
|
+
case constants_1.CHANNELS.SMS:
|
|
14
|
+
case constants_1.CHANNELS.MMS:
|
|
15
|
+
case constants_1.CHANNELS.RCS: {
|
|
16
16
|
toPhoneNumber = toPhoneNumber?.trim() ?? '';
|
|
17
17
|
if (!(constants_1.E164_REGEX.test(toPhoneNumber) || constants_1.TWILIO_SHORT_CODE_REGEX.test(toPhoneNumber))) {
|
|
18
18
|
throw new actions_core_1.PayloadValidationError("'To' field should be a valid phone number in E.164 format or a Twilio Short Code");
|
|
19
19
|
}
|
|
20
20
|
return toPhoneNumber;
|
|
21
21
|
}
|
|
22
|
-
case
|
|
22
|
+
case constants_1.CHANNELS.WHATSAPP: {
|
|
23
23
|
toPhoneNumber = toPhoneNumber?.trim() ?? '';
|
|
24
24
|
if (!constants_1.E164_REGEX.test(toPhoneNumber)) {
|
|
25
25
|
throw new actions_core_1.PayloadValidationError("'To' field should be a valid phone number in E.164 format");
|