@segment/action-destinations 3.464.0 → 3.465.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/memora/index.d.ts +1 -1
- package/dist/destinations/memora/index.js +3 -7
- package/dist/destinations/memora/index.js.map +1 -1
- package/dist/destinations/memora/upsertProfile/generated-types.d.ts +3 -3
- package/dist/destinations/memora/upsertProfile/index.js +174 -82
- package/dist/destinations/memora/upsertProfile/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DestinationDefinition } from '@segment/actions-core';
|
|
2
2
|
import type { Settings } from './generated-types';
|
|
3
3
|
export declare const API_VERSION = "v1";
|
|
4
|
-
export declare const BASE_URL = "https://memory.
|
|
4
|
+
export declare const BASE_URL = "https://memory.twilio.com";
|
|
5
5
|
declare const destination: DestinationDefinition<Settings>;
|
|
6
6
|
export default destination;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.BASE_URL = exports.API_VERSION = void 0;
|
|
7
7
|
const upsertProfile_1 = __importDefault(require("./upsertProfile"));
|
|
8
8
|
exports.API_VERSION = 'v1';
|
|
9
|
-
exports.BASE_URL = 'https://memory.
|
|
9
|
+
exports.BASE_URL = 'https://memory.twilio.com';
|
|
10
10
|
const destination = {
|
|
11
11
|
name: 'Memora',
|
|
12
12
|
slug: 'actions-memora',
|
|
@@ -36,18 +36,14 @@ const destination = {
|
|
|
36
36
|
testAuthentication: (request, { settings }) => {
|
|
37
37
|
return request(`${exports.BASE_URL}/${exports.API_VERSION}/ControlPlane/Stores?pageSize=1`, {
|
|
38
38
|
method: 'GET',
|
|
39
|
+
username: settings.username,
|
|
40
|
+
password: settings.password,
|
|
39
41
|
headers: {
|
|
40
42
|
...(settings.twilioAccount && { 'X-Pre-Auth-Context': settings.twilioAccount })
|
|
41
43
|
}
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
46
|
},
|
|
45
|
-
extendRequest({ settings }) {
|
|
46
|
-
return {
|
|
47
|
-
username: settings.username,
|
|
48
|
-
password: settings.password
|
|
49
|
-
};
|
|
50
|
-
},
|
|
51
47
|
actions: {
|
|
52
48
|
upsertProfile: upsertProfile_1.default
|
|
53
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/memora/index.ts"],"names":[],"mappings":";;;;;;AAGA,oEAA2C;AAE9B,QAAA,WAAW,GAAG,IAAI,CAAA;AAClB,QAAA,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/memora/index.ts"],"names":[],"mappings":";;;;;;AAGA,oEAA2C;AAE9B,QAAA,WAAW,GAAG,IAAI,CAAA;AAClB,QAAA,QAAQ,GAAG,2BAA2B,CAAA;AAEnD,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,OAAO;QACf,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,kCAAkC;gBAC/C,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,QAAQ,EAAE;gBACR,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,qCAAqC;gBAClD,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,4DAA4D;gBACzE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5C,OAAO,OAAO,CAAC,GAAG,gBAAQ,IAAI,mBAAW,iCAAiC,EAAE;gBAC1E,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO,EAAE;oBACP,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;iBAChF;aACF,CAAC,CAAA;QACJ,CAAC;KACF;IAED,OAAO,EAAE;QACP,aAAa,EAAb,uBAAa;KACd;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -2,11 +2,11 @@ export interface Payload {
|
|
|
2
2
|
enable_batching?: boolean;
|
|
3
3
|
batch_size?: number;
|
|
4
4
|
memora_store: string;
|
|
5
|
-
|
|
5
|
+
contact_identifiers: {
|
|
6
6
|
email?: string;
|
|
7
|
-
firstName?: string;
|
|
8
|
-
lastName?: string;
|
|
9
7
|
phone?: string;
|
|
8
|
+
};
|
|
9
|
+
contact_traits?: {
|
|
10
10
|
[k: string]: unknown;
|
|
11
11
|
};
|
|
12
12
|
}
|
|
@@ -4,19 +4,19 @@ const actions_core_1 = require("@segment/actions-core");
|
|
|
4
4
|
const index_1 = require("../index");
|
|
5
5
|
const action = {
|
|
6
6
|
title: 'Upsert Profile',
|
|
7
|
-
description: 'Create or update Memora profiles
|
|
7
|
+
description: 'Create or update Memora profiles by importing a CSV file. Profiles are uploaded via a pre-signed URL and processed asynchronously. If a profile already exists, its traits are merged (new keys added, existing keys overwritten).',
|
|
8
8
|
defaultSubscription: 'type = "identify"',
|
|
9
9
|
fields: {
|
|
10
10
|
enable_batching: {
|
|
11
11
|
label: 'Enable Batching',
|
|
12
|
-
description: 'Enable batching of requests to Memora. Batches
|
|
12
|
+
description: 'Enable batching of requests to Memora. Batches are uploaded as CSV files.',
|
|
13
13
|
type: 'boolean',
|
|
14
14
|
default: true,
|
|
15
15
|
unsafe_hidden: true
|
|
16
16
|
},
|
|
17
17
|
batch_size: {
|
|
18
18
|
label: 'Batch Size',
|
|
19
|
-
description: 'Maximum number of profiles to include in each
|
|
19
|
+
description: 'Maximum number of profiles to include in each CSV import. Actual batch sizes may be lower.',
|
|
20
20
|
type: 'number',
|
|
21
21
|
default: 1000,
|
|
22
22
|
unsafe_hidden: true
|
|
@@ -28,12 +28,12 @@ const action = {
|
|
|
28
28
|
required: true,
|
|
29
29
|
dynamic: true
|
|
30
30
|
},
|
|
31
|
-
|
|
32
|
-
label: 'Contact
|
|
33
|
-
description: 'Contact
|
|
31
|
+
contact_identifiers: {
|
|
32
|
+
label: 'Contact Identifiers',
|
|
33
|
+
description: 'Contact identifiers (email and/or phone). At least one identifier is required.',
|
|
34
34
|
type: 'object',
|
|
35
|
-
required:
|
|
36
|
-
additionalProperties:
|
|
35
|
+
required: true,
|
|
36
|
+
additionalProperties: false,
|
|
37
37
|
properties: {
|
|
38
38
|
email: {
|
|
39
39
|
label: 'Email',
|
|
@@ -41,16 +41,6 @@ const action = {
|
|
|
41
41
|
type: 'string',
|
|
42
42
|
format: 'email'
|
|
43
43
|
},
|
|
44
|
-
firstName: {
|
|
45
|
-
label: 'First Name',
|
|
46
|
-
description: 'User first name',
|
|
47
|
-
type: 'string'
|
|
48
|
-
},
|
|
49
|
-
lastName: {
|
|
50
|
-
label: 'Last Name',
|
|
51
|
-
description: 'User last name',
|
|
52
|
-
type: 'string'
|
|
53
|
-
},
|
|
54
44
|
phone: {
|
|
55
45
|
label: 'Phone',
|
|
56
46
|
description: 'User phone number',
|
|
@@ -59,95 +49,195 @@ const action = {
|
|
|
59
49
|
},
|
|
60
50
|
default: {
|
|
61
51
|
email: { '@path': '$.properties.email' },
|
|
62
|
-
|
|
63
|
-
lastName: { '@path': '$.properties.last_name' },
|
|
64
|
-
phone: {
|
|
65
|
-
'@path': '$.properties.phone'
|
|
66
|
-
}
|
|
52
|
+
phone: { '@path': '$.properties.phone' }
|
|
67
53
|
}
|
|
54
|
+
},
|
|
55
|
+
contact_traits: {
|
|
56
|
+
label: 'Other Contact Traits',
|
|
57
|
+
description: 'Additional contact traits for the profile. These fields are dynamically loaded from the selected Memora Store.',
|
|
58
|
+
type: 'object',
|
|
59
|
+
required: false,
|
|
60
|
+
additionalProperties: true,
|
|
61
|
+
dynamic: true
|
|
68
62
|
}
|
|
69
63
|
},
|
|
70
64
|
dynamicFields: {
|
|
71
65
|
memora_store: async (request, { settings }) => {
|
|
72
66
|
return fetchMemoraStores(request, settings);
|
|
67
|
+
},
|
|
68
|
+
contact_traits: {
|
|
69
|
+
__keys__: async (request, { settings, payload }) => {
|
|
70
|
+
if (!payload.memora_store) {
|
|
71
|
+
return { choices: [], error: { message: 'Please select a Memora Store first', code: 'STORE_REQUIRED' } };
|
|
72
|
+
}
|
|
73
|
+
return fetchContactTraits(request, settings, payload.memora_store);
|
|
74
|
+
}
|
|
73
75
|
}
|
|
74
76
|
},
|
|
75
|
-
perform: async (request, { payload, settings }) => {
|
|
76
|
-
return upsertProfiles(request, [payload], settings);
|
|
77
|
+
perform: async (request, { payload, settings, logger }) => {
|
|
78
|
+
return upsertProfiles(request, [payload], settings, logger);
|
|
77
79
|
},
|
|
78
|
-
performBatch: async (request, { payload: payloads, settings }) => {
|
|
79
|
-
return upsertProfiles(request, payloads, settings);
|
|
80
|
+
performBatch: async (request, { payload: payloads, settings, logger }) => {
|
|
81
|
+
return upsertProfiles(request, payloads, settings, logger);
|
|
80
82
|
}
|
|
81
83
|
};
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if (
|
|
90
|
-
|
|
84
|
+
function validateAndCollectFields(payloads) {
|
|
85
|
+
const allFields = new Set();
|
|
86
|
+
payloads.forEach((payload, index) => {
|
|
87
|
+
const identifiers = payload.contact_identifiers || {};
|
|
88
|
+
if (!identifiers.email && !identifiers.phone) {
|
|
89
|
+
throw new actions_core_1.IntegrationError(`Profile at index ${index} must contain at least one identifier (email or phone)`, 'MISSING_IDENTIFIER', 400);
|
|
90
|
+
}
|
|
91
|
+
if (identifiers.email)
|
|
92
|
+
allFields.add('email');
|
|
93
|
+
if (identifiers.phone)
|
|
94
|
+
allFields.add('phone');
|
|
95
|
+
if (payload.contact_traits && typeof payload.contact_traits === 'object') {
|
|
96
|
+
const traits = payload.contact_traits;
|
|
97
|
+
Object.keys(traits).forEach((key) => {
|
|
98
|
+
if (traits[key] !== undefined) {
|
|
99
|
+
allFields.add(key);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
91
102
|
}
|
|
92
|
-
return { traits: traitGroups };
|
|
93
103
|
});
|
|
104
|
+
if (allFields.size === 0) {
|
|
105
|
+
throw new actions_core_1.IntegrationError('No profile fields found for import', 'EMPTY_PROFILE', 400);
|
|
106
|
+
}
|
|
107
|
+
return allFields;
|
|
108
|
+
}
|
|
109
|
+
async function requestImportUrl(request, storeId, fileSize, columnMappings, settings, logger) {
|
|
110
|
+
const timestamp = Date.now();
|
|
111
|
+
const filename = `memora-segment-import-${storeId}-${timestamp}.csv`;
|
|
94
112
|
try {
|
|
95
|
-
const
|
|
96
|
-
method: '
|
|
113
|
+
const importResponse = await request(`${index_1.BASE_URL}/${index_1.API_VERSION}/Stores/${storeId}/Profiles/Imports`, {
|
|
114
|
+
method: 'POST',
|
|
97
115
|
headers: {
|
|
98
116
|
'Content-Type': 'application/json',
|
|
99
117
|
...(settings.twilioAccount && { 'X-Pre-Auth-Context': settings.twilioAccount })
|
|
100
118
|
},
|
|
119
|
+
username: settings.username,
|
|
120
|
+
password: settings.password,
|
|
101
121
|
json: {
|
|
102
|
-
|
|
122
|
+
filename,
|
|
123
|
+
fileSize,
|
|
124
|
+
columnMappings
|
|
103
125
|
}
|
|
104
126
|
});
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
return
|
|
127
|
+
const importId = importResponse.data.importId;
|
|
128
|
+
const uploadUrl = importResponse.data.url;
|
|
129
|
+
logger?.info?.(`Memora import initiated: ${importId}`);
|
|
130
|
+
return { importId, uploadUrl };
|
|
109
131
|
}
|
|
110
132
|
catch (error) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
handleMemoraApiError(error);
|
|
133
|
+
logger?.error?.(`Error initiating Memora import: ${error instanceof Error ? error.message : String(error)}`);
|
|
134
|
+
throw error;
|
|
115
135
|
}
|
|
116
136
|
}
|
|
117
|
-
function
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
137
|
+
async function uploadCSVToMemora(request, uploadUrl, csvBuffer, importId, profileCount, logger) {
|
|
138
|
+
try {
|
|
139
|
+
await request(uploadUrl, {
|
|
140
|
+
method: 'PUT',
|
|
141
|
+
headers: {
|
|
142
|
+
'Content-Type': 'text/csv'
|
|
143
|
+
},
|
|
144
|
+
body: csvBuffer
|
|
145
|
+
});
|
|
146
|
+
logger?.info?.(`CSV uploaded successfully to Memora (importId: ${importId}, ${profileCount} profiles)`);
|
|
147
|
+
return {
|
|
148
|
+
data: {
|
|
149
|
+
importId,
|
|
150
|
+
profileCount,
|
|
151
|
+
success: true
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
logger?.error?.(`Error uploading CSV to Memora (importId: ${importId}): ${error instanceof Error ? error.message : String(error)}`);
|
|
157
|
+
throw error;
|
|
124
158
|
}
|
|
125
|
-
return traitGroups;
|
|
126
159
|
}
|
|
127
|
-
function
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
case 500:
|
|
143
|
-
throw new actions_core_1.RetryableError(data?.message || 'Internal server error');
|
|
144
|
-
case 503:
|
|
145
|
-
throw new actions_core_1.RetryableError(data?.message || 'Service unavailable');
|
|
146
|
-
default:
|
|
147
|
-
throw new actions_core_1.IntegrationError(data?.message || `HTTP ${status} error`, 'API_ERROR', status);
|
|
160
|
+
async function upsertProfiles(request, payloads, settings, logger) {
|
|
161
|
+
if (!payloads || payloads.length === 0) {
|
|
162
|
+
throw new actions_core_1.IntegrationError('No profiles provided for import', 'EMPTY_BATCH', 400);
|
|
163
|
+
}
|
|
164
|
+
const storeId = payloads[0]?.memora_store;
|
|
165
|
+
const allFields = validateAndCollectFields(payloads);
|
|
166
|
+
const { csv, columnMappings } = convertToCSV(payloads, Array.from(allFields));
|
|
167
|
+
const csvBuffer = Buffer.from(csv, 'utf-8');
|
|
168
|
+
const { importId, uploadUrl } = await requestImportUrl(request, storeId, csvBuffer.length, columnMappings, settings, logger);
|
|
169
|
+
return uploadCSVToMemora(request, uploadUrl, csvBuffer, importId, payloads.length, logger);
|
|
170
|
+
}
|
|
171
|
+
function convertToCSV(payloads, fields) {
|
|
172
|
+
const escapeCSVValue = (value) => {
|
|
173
|
+
if (value.includes(',') || value.includes('"') || value.includes('\n')) {
|
|
174
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
148
175
|
}
|
|
176
|
+
return value;
|
|
177
|
+
};
|
|
178
|
+
const header = fields.map(escapeCSVValue).join(',');
|
|
179
|
+
const rows = payloads.map((payload) => {
|
|
180
|
+
return fields
|
|
181
|
+
.map((field) => {
|
|
182
|
+
let value;
|
|
183
|
+
if (field === 'email' || field === 'phone') {
|
|
184
|
+
const identifiers = payload.contact_identifiers;
|
|
185
|
+
value = identifiers?.[field];
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
const traits = payload.contact_traits;
|
|
189
|
+
value = traits?.[field];
|
|
190
|
+
}
|
|
191
|
+
if (value === undefined || value === null) {
|
|
192
|
+
return '';
|
|
193
|
+
}
|
|
194
|
+
const stringValue = String(value);
|
|
195
|
+
return escapeCSVValue(stringValue);
|
|
196
|
+
})
|
|
197
|
+
.join(',');
|
|
198
|
+
});
|
|
199
|
+
const csv = [header, ...rows].join('\n');
|
|
200
|
+
const columnMappings = fields.map((field) => ({
|
|
201
|
+
columnName: field,
|
|
202
|
+
traitGroup: 'Contact',
|
|
203
|
+
traitName: field
|
|
204
|
+
}));
|
|
205
|
+
return { csv, columnMappings };
|
|
206
|
+
}
|
|
207
|
+
async function fetchContactTraits(request, settings, storeId) {
|
|
208
|
+
try {
|
|
209
|
+
const response = await request(`${index_1.BASE_URL}/${index_1.API_VERSION}/ControlPlane/Stores/${storeId}/TraitGroups/Contact?includeTraits=true&pageSize=100`, {
|
|
210
|
+
method: 'GET',
|
|
211
|
+
headers: {
|
|
212
|
+
...(settings.twilioAccount && { 'X-Pre-Auth-Context': settings.twilioAccount })
|
|
213
|
+
},
|
|
214
|
+
username: settings.username,
|
|
215
|
+
password: settings.password,
|
|
216
|
+
skipResponseCloning: true
|
|
217
|
+
});
|
|
218
|
+
const traitsObj = response?.data?.traitGroup?.traits || {};
|
|
219
|
+
const choices = Object.entries(traitsObj)
|
|
220
|
+
.filter(([_, trait]) => trait.idTypePromotion !== 'email' && trait.idTypePromotion !== 'phone')
|
|
221
|
+
.map(([traitName, trait]) => ({
|
|
222
|
+
label: trait.displayName || traitName,
|
|
223
|
+
value: traitName,
|
|
224
|
+
description: trait.description || `${trait.displayName} (${trait.dataType})`
|
|
225
|
+
}));
|
|
226
|
+
return {
|
|
227
|
+
choices
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
const statusCode = error?.response?.status || 'unknown';
|
|
232
|
+
const errorMsg = error?.response?.data?.message || (error instanceof Error ? error.message : String(error));
|
|
233
|
+
return {
|
|
234
|
+
choices: [],
|
|
235
|
+
error: {
|
|
236
|
+
message: `Unable to fetch contact traits (HTTP ${statusCode}: ${errorMsg}). You can still manually enter field names.`,
|
|
237
|
+
code: 'FETCH_ERROR'
|
|
238
|
+
}
|
|
239
|
+
};
|
|
149
240
|
}
|
|
150
|
-
throw new actions_core_1.RetryableError(httpError.message || 'Network error occurred');
|
|
151
241
|
}
|
|
152
242
|
async function fetchMemoraStores(request, settings) {
|
|
153
243
|
try {
|
|
@@ -156,12 +246,14 @@ async function fetchMemoraStores(request, settings) {
|
|
|
156
246
|
headers: {
|
|
157
247
|
...(settings.twilioAccount && { 'X-Pre-Auth-Context': settings.twilioAccount })
|
|
158
248
|
},
|
|
249
|
+
username: settings.username,
|
|
250
|
+
password: settings.password,
|
|
159
251
|
skipResponseCloning: true
|
|
160
252
|
});
|
|
161
|
-
const
|
|
162
|
-
const choices =
|
|
163
|
-
label:
|
|
164
|
-
value:
|
|
253
|
+
const stores = response?.data?.stores || [];
|
|
254
|
+
const choices = stores.map((storeId) => ({
|
|
255
|
+
label: storeId,
|
|
256
|
+
value: storeId
|
|
165
257
|
}));
|
|
166
258
|
return {
|
|
167
259
|
choices
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/memora/upsertProfile/index.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/memora/upsertProfile/index.ts"],"names":[],"mappings":";;AAGA,wDAA6E;AAC7E,oCAAgD;AAGhD,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,oOAAoO;IACtO,mBAAmB,EAAE,mBAAmB;IACxC,MAAM,EAAE;QACN,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,2EAA2E;YACxF,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;SACpB;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,4FAA4F;YACzG,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;SACpB;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,cAAc;YACrB,WAAW,EACT,uHAAuH;YACzH,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd;QACD,mBAAmB,EAAE;YACnB,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,gFAAgF;YAC7F,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,KAAK,EAAE,OAAO;oBACd,WAAW,EAAE,oBAAoB;oBACjC,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,OAAO;iBAChB;gBACD,KAAK,EAAE;oBACL,KAAK,EAAE,OAAO;oBACd,WAAW,EAAE,mBAAmB;oBAChC,IAAI,EAAE,QAAQ;iBACf;aACF;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBACxC,KAAK,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;aACzC;SACF;QACD,cAAc,EAAE;YACd,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EACT,gHAAgH;YAClH,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,oBAAoB,EAAE,IAAI;YAC1B,OAAO,EAAE,IAAI;SACd;KACF;IACD,aAAa,EAAE;QACb,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5C,OAAO,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC7C,CAAC;QACD,cAAc,EAAE;YACd,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;gBACjD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBAC1B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAA;gBAC1G,CAAC;gBACD,OAAO,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;YACpE,CAAC;SACF;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,OAAO,cAAc,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC7D,CAAC;IAED,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACvE,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC;CACF,CAAA;AAGD,SAAS,wBAAwB,CAAC,QAAmB;IACnD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IAEnC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAElC,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAA;QACrD,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,IAAI,+BAAgB,CACxB,oBAAoB,KAAK,wDAAwD,EACjF,oBAAoB,EACpB,GAAG,CACJ,CAAA;QACH,CAAC;QAGD,IAAI,WAAW,CAAC,KAAK;YAAE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,WAAW,CAAC,KAAK;YAAE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAG7C,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YACzE,MAAM,MAAM,GAAG,OAAO,CAAC,cAAyC,CAAA;YAChE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC9B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,+BAAgB,CAAC,oCAAoC,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;IACxF,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAGD,KAAK,UAAU,gBAAgB,CAC7B,OAA+C,EAC/C,OAAe,EACf,QAAgB,EAChB,cAA+B,EAC/B,QAAkB,EAClB,MAAe;IAEf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,yBAAyB,OAAO,IAAI,SAAS,MAAM,CAAA;IAEpE,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,OAAO,CAClC,GAAG,gBAAQ,IAAI,mBAAW,WAAW,OAAO,mBAAmB,EAC/D;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;aAChF;YACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE;gBACJ,QAAQ;gBACR,QAAQ;gBACR,cAAc;aACf;SACF,CACF,CAAA;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAA;QAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAA;QACzC,MAAM,EAAE,IAAI,EAAE,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAA;QAEtD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,CAAC,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5G,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,iBAAiB,CAC9B,OAA+C,EAC/C,SAAiB,EACjB,SAAiB,EACjB,QAAgB,EAChB,YAAoB,EACpB,MAAe;IAEf,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,EAAE;YACvB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,UAAU;aAC3B;YACD,IAAI,EAAE,SAAgC;SACvC,CAAC,CAAA;QAEF,MAAM,EAAE,IAAI,EAAE,CAAC,kDAAkD,QAAQ,KAAK,YAAY,YAAY,CAAC,CAAA;QAEvG,OAAO;YACL,IAAI,EAAE;gBACJ,QAAQ;gBACR,YAAY;gBACZ,OAAO,EAAE,IAAI;aACd;SACF,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,CACb,4CAA4C,QAAQ,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnH,CAAA;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,cAAc,CAC3B,OAA+C,EAC/C,QAAmB,EACnB,QAAkB,EAClB,MAAe;IAEf,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,+BAAgB,CAAC,iCAAiC,EAAE,aAAa,EAAE,GAAG,CAAC,CAAA;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAA;IAGzC,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAA;IAGpD,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7E,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAG3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CACpD,OAAO,EACP,OAAO,EACP,SAAS,CAAC,MAAM,EAChB,cAAc,EACd,QAAQ,EACR,MAAM,CACP,CAAA;IAGD,OAAO,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC5F,CAAC;AAGD,SAAS,YAAY,CAAC,QAAmB,EAAE,MAAgB;IAEzD,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;QAE/C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAA;QACzC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAGD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAGnD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACpC,OAAO,MAAM;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,IAAI,KAAc,CAAA;YAGlB,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,mBAA8C,CAAA;gBAC1E,KAAK,GAAG,WAAW,EAAE,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBAEN,MAAM,MAAM,GAAG,OAAO,CAAC,cAAyC,CAAA;gBAChE,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;YAGD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,OAAO,EAAE,CAAA;YACX,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YACjC,OAAO,cAAc,CAAC,WAAW,CAAC,CAAA;QACpC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAGxC,MAAM,cAAc,GAAoB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7D,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC,CAAA;IAEH,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,CAAA;AAChC,CAAC;AA+BD,KAAK,UAAU,kBAAkB,CAC/B,OAA+C,EAC/C,QAAkB,EAClB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,GAAG,gBAAQ,IAAI,mBAAW,wBAAwB,OAAO,sDAAsD,EAC/G;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;aAChF;YACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,mBAAmB,EAAE,IAAI;SAC1B,CACF,CAAA;QAED,MAAM,SAAS,GAAG,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,EAAE,CAAA;QAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,KAAK,OAAO,IAAI,KAAK,CAAC,eAAe,KAAK,OAAO,CAAC;aAC9F,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,KAAK,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;YACrC,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,GAAG,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,QAAQ,GAAG;SAC7E,CAAC,CAAC,CAAA;QAEL,OAAO;YACL,OAAO;SACR,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAA;QACvD,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3G,OAAO;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,OAAO,EAAE,wCAAwC,UAAU,KAAK,QAAQ,8CAA8C;gBACtH,IAAI,EAAE,aAAa;aACpB;SACF,CAAA;IACH,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,iBAAiB,CAAC,OAA+C,EAAE,QAAkB;IAClG,IAAI,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,GAAG,gBAAQ,IAAI,mBAAW,+CAA+C,EACzE;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;aAChF;YACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,mBAAmB,EAAE,IAAI;SAC1B,CACF,CAAA;QACD,MAAM,MAAM,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAA;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC;YAC/C,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;SACf,CAAC,CAAC,CAAA;QAEH,OAAO;YACL,OAAO;SACR,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,OAAO;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,OAAO,EAAE,gFAAgF;gBACzF,IAAI,EAAE,aAAa;aACpB;SACF,CAAA;IACH,CAAC;AACH,CAAC;AAED,kBAAe,MAAM,CAAA"}
|
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.465.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/segmentio/action-destinations",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"@aws-sdk/client-sts": "3.614.0",
|
|
48
48
|
"@bufbuild/protobuf": "^2.2.3",
|
|
49
49
|
"@segment/a1-notation": "^2.1.4",
|
|
50
|
-
"@segment/actions-core": "^3.
|
|
51
|
-
"@segment/actions-shared": "^1.
|
|
50
|
+
"@segment/actions-core": "^3.164.0",
|
|
51
|
+
"@segment/actions-shared": "^1.147.0",
|
|
52
52
|
"@types/node": "^22.13.1",
|
|
53
53
|
"ajv-formats": "^2.1.1",
|
|
54
54
|
"aws4": "^1.12.0",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"__tests__/__helpers__/"
|
|
93
93
|
]
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "bda78db80a4ab33f11968bea94336855d37d3805"
|
|
96
96
|
}
|