@segment/action-destinations 3.310.0 → 3.311.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.
Files changed (66) hide show
  1. package/dist/destinations/facebook-conversions-api/addToCart/generated-types.d.ts +1 -0
  2. package/dist/destinations/facebook-conversions-api/custom/generated-types.d.ts +1 -0
  3. package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js +6 -0
  4. package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js.map +1 -1
  5. package/dist/destinations/facebook-conversions-api/initiateCheckout/generated-types.d.ts +1 -0
  6. package/dist/destinations/facebook-conversions-api/pageView/generated-types.d.ts +1 -0
  7. package/dist/destinations/facebook-conversions-api/purchase/generated-types.d.ts +1 -0
  8. package/dist/destinations/facebook-conversions-api/search/generated-types.d.ts +1 -0
  9. package/dist/destinations/facebook-conversions-api/viewContent/generated-types.d.ts +1 -0
  10. package/dist/destinations/google-enhanced-conversions/functions.d.ts +1 -1
  11. package/dist/destinations/google-enhanced-conversions/functions.js +1 -1
  12. package/dist/destinations/google-enhanced-conversions/uploadCallConversion/index.js +2 -2
  13. package/dist/destinations/google-enhanced-conversions/uploadCallConversion2/index.js +2 -2
  14. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js +2 -2
  15. package/dist/destinations/google-enhanced-conversions/uploadClickConversion2/index.js +2 -2
  16. package/dist/destinations/google-enhanced-conversions/userList/index.js +2 -2
  17. package/dist/destinations/google-sheets/googleapis/index.js +2 -0
  18. package/dist/destinations/google-sheets/googleapis/index.js.map +1 -1
  19. package/dist/destinations/hubspot/customEvent/client.d.ts +10 -0
  20. package/dist/destinations/hubspot/customEvent/client.js +38 -0
  21. package/dist/destinations/hubspot/customEvent/client.js.map +1 -0
  22. package/dist/destinations/hubspot/customEvent/common-fields.js +7 -3
  23. package/dist/destinations/hubspot/customEvent/common-fields.js.map +1 -1
  24. package/dist/destinations/hubspot/customEvent/constants.d.ts +4 -0
  25. package/dist/destinations/hubspot/customEvent/constants.js +141 -1
  26. package/dist/destinations/hubspot/customEvent/constants.js.map +1 -1
  27. package/dist/destinations/hubspot/customEvent/dynamic-fields.js +11 -5
  28. package/dist/destinations/hubspot/customEvent/dynamic-fields.js.map +1 -1
  29. package/dist/destinations/hubspot/customEvent/index.d.ts +1 -1
  30. package/dist/destinations/hubspot/customEvent/index.js +54 -16
  31. package/dist/destinations/hubspot/customEvent/index.js.map +1 -1
  32. package/dist/destinations/hubspot/customEvent/types.d.ts +93 -0
  33. package/dist/destinations/hubspot/customEvent/types.js +10 -0
  34. package/dist/destinations/hubspot/customEvent/types.js.map +1 -0
  35. package/dist/destinations/hubspot/customEvent/utils.d.ts +12 -0
  36. package/dist/destinations/hubspot/customEvent/utils.js +278 -0
  37. package/dist/destinations/hubspot/customEvent/utils.js.map +1 -0
  38. package/dist/destinations/hubspot/upsertObject/client.d.ts +11 -0
  39. package/dist/destinations/hubspot/upsertObject/client.js +39 -0
  40. package/dist/destinations/hubspot/upsertObject/client.js.map +1 -0
  41. package/dist/destinations/hubspot/upsertObject/common-fields.js +14 -7
  42. package/dist/destinations/hubspot/upsertObject/common-fields.js.map +1 -1
  43. package/dist/destinations/hubspot/upsertObject/constants.d.ts +1 -0
  44. package/dist/destinations/hubspot/upsertObject/constants.js +2 -1
  45. package/dist/destinations/hubspot/upsertObject/constants.js.map +1 -1
  46. package/dist/destinations/hubspot/upsertObject/dynamic-fields.js.map +1 -1
  47. package/dist/destinations/hubspot/upsertObject/index.js +36 -35
  48. package/dist/destinations/hubspot/upsertObject/index.js.map +1 -1
  49. package/dist/destinations/hubspot/upsertObject/types.d.ts +192 -0
  50. package/dist/destinations/hubspot/upsertObject/types.js +56 -0
  51. package/dist/destinations/hubspot/upsertObject/types.js.map +1 -0
  52. package/dist/destinations/hubspot/upsertObject/utils.d.ts +13 -0
  53. package/dist/destinations/hubspot/upsertObject/utils.js +548 -0
  54. package/dist/destinations/hubspot/upsertObject/utils.js.map +1 -0
  55. package/dist/destinations/linkedin-conversions/index.js +14 -2
  56. package/dist/destinations/linkedin-conversions/index.js.map +1 -1
  57. package/dist/destinations/loops/createOrUpdateContact/generated-types.d.ts +4 -0
  58. package/dist/destinations/loops/createOrUpdateContact/index.js +48 -2
  59. package/dist/destinations/loops/createOrUpdateContact/index.js.map +1 -1
  60. package/package.json +2 -2
  61. package/dist/destinations/hubspot/customEvent/hubspot-api.d.ts +0 -62
  62. package/dist/destinations/hubspot/customEvent/hubspot-api.js +0 -305
  63. package/dist/destinations/hubspot/customEvent/hubspot-api.js.map +0 -1
  64. package/dist/destinations/hubspot/upsertObject/hubspot-api.d.ts +0 -221
  65. package/dist/destinations/hubspot/upsertObject/hubspot-api.js +0 -617
  66. package/dist/destinations/hubspot/upsertObject/hubspot-api.js.map +0 -1
@@ -0,0 +1,548 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createProperties = exports.saveSchemaToCache = exports.compareToHubspot = exports.sendAssociations = exports.sendAssociatedRecords = exports.createAssociationPayloads = exports.sendFromRecords = exports.compareToCache = exports.objectSchema = exports.validate = void 0;
4
+ const actions_core_1 = require("@segment/actions-core");
5
+ const constants_1 = require("./constants");
6
+ const types_1 = require("./types");
7
+ function validate(payloads) {
8
+ const length = payloads.length;
9
+ const cleaned = payloads.filter((payload) => {
10
+ const fieldsToCheck = [
11
+ payload.object_details.id_field_name,
12
+ payload.object_details.id_field_value,
13
+ payload.object_details.object_type
14
+ ];
15
+ return fieldsToCheck.every((field) => field !== null && field !== '');
16
+ });
17
+ if (length === 1 && cleaned.length === 0) {
18
+ throw new actions_core_1.PayloadValidationError('Payload is missing required fields. Null or empty values are not allowed for "Object Type", "ID Field Name" or "ID Field Value".');
19
+ }
20
+ cleaned.forEach((payload) => {
21
+ payload.properties = cleanPropObj(payload.properties);
22
+ payload.sensitive_properties = cleanPropObj(payload.sensitive_properties);
23
+ payload.associations = payload.associations?.filter((association) => {
24
+ const fieldsToCheck = [
25
+ association.id_field_name,
26
+ association.object_type,
27
+ association.id_field_value,
28
+ association.association_label
29
+ ];
30
+ return fieldsToCheck.every((field) => field !== null && field !== '');
31
+ });
32
+ });
33
+ return cleaned;
34
+ }
35
+ exports.validate = validate;
36
+ function cleanPropObj(obj) {
37
+ const cleanObj = {};
38
+ if (obj === undefined) {
39
+ return undefined;
40
+ }
41
+ Object.keys(obj).forEach((key) => {
42
+ const value = obj[key];
43
+ const cleanKey = cleanProp(key);
44
+ if (typeof value === 'boolean' || typeof value === 'number') {
45
+ cleanObj[cleanKey] = value;
46
+ }
47
+ else if (typeof value === 'string' && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {
48
+ cleanObj[cleanKey] = value.toLowerCase() === 'true';
49
+ }
50
+ else if (!isNaN(Number(value))) {
51
+ cleanObj[cleanKey] = Number(value);
52
+ }
53
+ else if (typeof value === 'object' && value !== null) {
54
+ cleanObj[cleanKey] = JSON.stringify(value);
55
+ }
56
+ else {
57
+ cleanObj[cleanKey] = String(value);
58
+ }
59
+ });
60
+ return cleanObj;
61
+ }
62
+ function cleanProp(str) {
63
+ str = str.toLowerCase().replace(/[^a-z0-9_]/g, '_');
64
+ if (!/^[a-z]/.test(str)) {
65
+ throw new actions_core_1.PayloadValidationError(`Property ${str} in event has an invalid name. Property names must start with a letter.`);
66
+ }
67
+ return str;
68
+ }
69
+ function objectSchema(payloads, objectType) {
70
+ const extractProperties = (propertyType) => {
71
+ return Object.values(payloads.reduce((acc, payload) => {
72
+ const properties = payload[propertyType];
73
+ if (properties) {
74
+ Object.entries(properties).forEach(([propName, value]) => {
75
+ const typeData = format(value);
76
+ acc[propName] = {
77
+ name: propName,
78
+ type: typeData.type,
79
+ fieldType: typeData.fieldType,
80
+ typeFieldType: formatHS(typeData.type, typeData.fieldType)
81
+ };
82
+ });
83
+ }
84
+ return acc;
85
+ }, {}));
86
+ };
87
+ const properties = extractProperties('properties');
88
+ const sensitiveProperties = extractProperties('sensitive_properties');
89
+ return {
90
+ object_details: {
91
+ object_type: objectType,
92
+ id_field_name: payloads[0].object_details.id_field_name
93
+ },
94
+ properties,
95
+ sensitiveProperties
96
+ };
97
+ }
98
+ exports.objectSchema = objectSchema;
99
+ function format(value) {
100
+ switch (typeof value) {
101
+ case 'object':
102
+ return { type: types_1.HSPropType.String, fieldType: types_1.HSPropFieldType.Text };
103
+ case 'number':
104
+ return { type: types_1.HSPropType.Number, fieldType: types_1.HSPropFieldType.Number };
105
+ case 'boolean':
106
+ return { type: types_1.HSPropType.Enumeration, fieldType: types_1.HSPropFieldType.BooleanCheckbox };
107
+ case 'string': {
108
+ const isoDateTimeRegex = /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(?:([ T])(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;
109
+ const dateOnlyRegex = /^\d{4}-\d{2}-\d{2}$/;
110
+ if (isoDateTimeRegex.test(value)) {
111
+ return {
112
+ type: dateOnlyRegex.test(value) ? types_1.HSPropType.Date : types_1.HSPropType.DateTime,
113
+ fieldType: types_1.HSPropFieldType.Date
114
+ };
115
+ }
116
+ else {
117
+ return { type: types_1.HSPropType.String, fieldType: types_1.HSPropFieldType.Text };
118
+ }
119
+ }
120
+ case undefined:
121
+ default:
122
+ throw new actions_core_1.IntegrationError('Property must be an object, boolean, string or number', 'HUBSPOT_PROPERTY_VALUE_UNDEFINED', 400);
123
+ }
124
+ }
125
+ function formatHS(type, fieldType) {
126
+ if (type === 'date' && fieldType === 'date') {
127
+ return types_1.HSPropTypeFieldType.DateDate;
128
+ }
129
+ else if (type === 'string' && fieldType === 'text') {
130
+ return types_1.HSPropTypeFieldType.StringText;
131
+ }
132
+ else if (type === 'number' && fieldType === 'number') {
133
+ return types_1.HSPropTypeFieldType.NumberNumber;
134
+ }
135
+ else if (type === 'datetime' && fieldType === 'date') {
136
+ return types_1.HSPropTypeFieldType.DateTimeDate;
137
+ }
138
+ else if (type === 'enumeration' && fieldType === 'booleancheckbox') {
139
+ return types_1.HSPropTypeFieldType.EnumerationBooleanCheckbox;
140
+ }
141
+ throw new actions_core_1.IntegrationError('Property type not supported', 'HUBSPOT_PROPERTY_TYPE_NOT_SUPPORTED', 400);
142
+ }
143
+ async function compareToCache(schema) {
144
+ const schemaDiff = {
145
+ match: 'no_match',
146
+ object_details: {
147
+ object_type: schema.object_details.object_type,
148
+ id_field_name: schema.object_details.id_field_name
149
+ },
150
+ missingProperties: [],
151
+ missingSensitiveProperties: []
152
+ };
153
+ return Promise.resolve(schemaDiff);
154
+ }
155
+ exports.compareToCache = compareToCache;
156
+ async function sendFromRecords(client, payloads, objectType, syncMode) {
157
+ switch (syncMode) {
158
+ case types_1.SyncMode.Upsert: {
159
+ return await upsertRecords(client, payloads, objectType);
160
+ }
161
+ case types_1.SyncMode.Update: {
162
+ return await updateRecords(client, payloads, objectType);
163
+ }
164
+ case types_1.SyncMode.Add: {
165
+ return await addRecords(client, payloads, objectType);
166
+ }
167
+ }
168
+ }
169
+ exports.sendFromRecords = sendFromRecords;
170
+ async function upsertRecords(client, payloads, objectType) {
171
+ const response = await client.batchObjectRequest(types_1.BatchRequestType.Upsert, objectType, {
172
+ inputs: payloads.map(({ object_details: { id_field_value }, properties, sensitive_properties }) => {
173
+ const idFieldName = payloads[0].object_details.id_field_name;
174
+ return {
175
+ idProperty: idFieldName,
176
+ id: id_field_value,
177
+ properties: { ...properties, ...sensitive_properties, [idFieldName]: id_field_value }
178
+ };
179
+ })
180
+ });
181
+ return returnRecordsWithIds(payloads, response);
182
+ }
183
+ async function updateRecords(client, payloads, objectType) {
184
+ const existingRecords = (await readRecords(client, payloads, objectType, types_1.ReadType.ReturnRecordsWithIds));
185
+ const response = await client.batchObjectRequest(types_1.BatchRequestType.Update, objectType, {
186
+ inputs: existingRecords.map(({ object_details: { id_field_value }, properties, sensitive_properties }) => {
187
+ const idFieldName = payloads[0].object_details.id_field_name;
188
+ return {
189
+ idProperty: idFieldName,
190
+ id: id_field_value,
191
+ properties: { ...properties, ...sensitive_properties }
192
+ };
193
+ })
194
+ });
195
+ return returnRecordsWithIds(existingRecords, response);
196
+ }
197
+ async function addRecords(client, payloads, objectType) {
198
+ const recordsToCreate = (await readRecords(client, payloads, objectType, types_1.ReadType.ReturnRecordsWithoutIds));
199
+ const response = await client.batchObjectRequest(types_1.BatchRequestType.Create, objectType, {
200
+ inputs: recordsToCreate.map(({ object_details: { id_field_value: fromIdFieldValue }, properties, sensitive_properties }) => {
201
+ const idFieldName = payloads[0].object_details.id_field_name;
202
+ return {
203
+ idProperty: idFieldName,
204
+ properties: { ...properties, ...sensitive_properties, [idFieldName]: fromIdFieldValue }
205
+ };
206
+ })
207
+ });
208
+ return returnRecordsWithIds(recordsToCreate, response);
209
+ }
210
+ async function readRecords(client, payloads, objectType, readType) {
211
+ const idFieldName = payloads[0].object_details.id_field_name;
212
+ const readResponse = await client.batchObjectRequest(types_1.BatchRequestType.Read, objectType, {
213
+ properties: [idFieldName],
214
+ idProperty: idFieldName,
215
+ inputs: payloads.map((payload) => {
216
+ return { id: payload.object_details.id_field_value };
217
+ })
218
+ });
219
+ switch (readType) {
220
+ case types_1.ReadType.ReturnRecordsWithIds:
221
+ return returnRecordsWithIds(payloads, readResponse);
222
+ case types_1.ReadType.ReturnRecordsWithoutIds:
223
+ return returnRecordsWithoutIds(payloads, readResponse);
224
+ }
225
+ }
226
+ function returnRecordsWithIds(payloads, response) {
227
+ response?.data?.results.forEach((result) => {
228
+ payloads
229
+ .filter((p) => {
230
+ return p.object_details.id_field_value == result.properties[p.object_details.id_field_name];
231
+ })
232
+ .forEach((p) => {
233
+ const pw = { ...p, object_details: { ...p.object_details, record_id: result.id } };
234
+ if (pw.associations) {
235
+ pw.associations.forEach((association) => {
236
+ association.from_record_id = result.id;
237
+ });
238
+ }
239
+ });
240
+ });
241
+ return payloads;
242
+ }
243
+ function returnRecordsWithoutIds(payloads, response) {
244
+ const missingRecords = payloads.filter((payload) => {
245
+ return !response.data.results.some((result) => {
246
+ return result.properties[payload.object_details.id_field_name] === payload.object_details.id_field_value;
247
+ });
248
+ });
249
+ return missingRecords;
250
+ }
251
+ function createAssociationPayloads(payloads) {
252
+ const associationPayloads = payloads.flatMap((payload) => Array.isArray(payload.associations)
253
+ ? payload.associations.map((association) => ({
254
+ object_details: {
255
+ object_type: association.object_type,
256
+ id_field_name: association.id_field_name,
257
+ id_field_value: association.id_field_value,
258
+ from_record_id: association.from_record_id
259
+ },
260
+ association_details: {
261
+ association_label: association.association_label
262
+ }
263
+ }))
264
+ : []);
265
+ return groupPayloads(associationPayloads, ['object_type', 'id_field_name']);
266
+ }
267
+ exports.createAssociationPayloads = createAssociationPayloads;
268
+ function groupPayloads(associations, groupBy) {
269
+ const groupedPayloads = [];
270
+ const groups = associations.reduce((acc, payload) => {
271
+ const key = groupBy.map((prop) => payload.object_details[prop]).join('_');
272
+ if (!acc[key]) {
273
+ acc[key] = [];
274
+ }
275
+ acc[key].push(payload);
276
+ return acc;
277
+ }, {});
278
+ for (const key in groups) {
279
+ const items = groups[key];
280
+ for (let i = 0; i < items.length; i += constants_1.MAX_HUBSPOT_BATCH_SIZE) {
281
+ groupedPayloads.push(items.slice(i, i + constants_1.MAX_HUBSPOT_BATCH_SIZE));
282
+ }
283
+ }
284
+ return groupedPayloads;
285
+ }
286
+ async function sendAssociatedRecords(client, payloads, associationSyncMode) {
287
+ switch (associationSyncMode) {
288
+ case types_1.AssociationSyncMode.Upsert: {
289
+ return await upsertAssociatedRecords(client, payloads);
290
+ }
291
+ case types_1.AssociationSyncMode.Read: {
292
+ return await readAssociatedRecords(client, payloads);
293
+ }
294
+ }
295
+ }
296
+ exports.sendAssociatedRecords = sendAssociatedRecords;
297
+ async function readAssociatedRecords(client, groupedPayloads) {
298
+ const requests = groupedPayloads.map(async (payloads) => {
299
+ const { object_type: objectType } = payloads[0].object_details;
300
+ return await client.batchObjectRequest(types_1.AssociationSyncMode.Read, objectType, {
301
+ idProperty: payloads[0].object_details.id_field_name,
302
+ properties: [payloads[0].object_details.id_field_name],
303
+ inputs: payloads.map((payload) => {
304
+ return {
305
+ id: payload.object_details.id_field_value
306
+ };
307
+ })
308
+ });
309
+ });
310
+ const responses = await Promise.all(requests);
311
+ return returnAssociatedRecordsWithIds(groupedPayloads, responses);
312
+ }
313
+ async function upsertAssociatedRecords(client, groupedPayloads) {
314
+ const requests = groupedPayloads.map(async (payloads) => {
315
+ const { object_type: objectType } = payloads[0].object_details;
316
+ return await client.batchObjectRequest(types_1.AssociationSyncMode.Upsert, objectType, {
317
+ inputs: payloads.map((payload) => {
318
+ return {
319
+ idProperty: payload.object_details.id_field_name,
320
+ id: payload.object_details.id_field_value,
321
+ properties: {
322
+ [payload.object_details.id_field_name]: payload.object_details.id_field_value
323
+ }
324
+ };
325
+ })
326
+ });
327
+ });
328
+ const responses = await Promise.all(requests);
329
+ return returnAssociatedRecordsWithIds(groupedPayloads, responses);
330
+ }
331
+ function returnAssociatedRecordsWithIds(groupedPayloads, responses) {
332
+ responses.forEach((response, index) => {
333
+ const payloads = groupedPayloads[index];
334
+ response?.data?.results.forEach((result) => {
335
+ payloads
336
+ .filter((payload) => payload.object_details.id_field_value == result.properties[payload.object_details.id_field_name])
337
+ .forEach((payload) => (payload.object_details.record_id = result.id));
338
+ });
339
+ });
340
+ return groupedPayloads
341
+ .flat()
342
+ .filter((payload) => payload.object_details.record_id);
343
+ }
344
+ async function sendAssociations(client, payloads) {
345
+ const groupedPayloads = groupPayloads(payloads, [
346
+ 'object_type'
347
+ ]);
348
+ const requests = groupedPayloads.map(async (payloads) => {
349
+ const toObjectType = payloads[0].object_details.object_type;
350
+ const inputs = payloads.map((payload) => {
351
+ const { associationCategory, associationTypeId } = getAssociationType(payload.association_details.association_label);
352
+ const input = {
353
+ types: [
354
+ {
355
+ associationCategory,
356
+ associationTypeId
357
+ }
358
+ ],
359
+ from: {
360
+ id: payload.object_details.from_record_id
361
+ },
362
+ to: {
363
+ id: payload.object_details.record_id
364
+ }
365
+ };
366
+ return input;
367
+ });
368
+ return client.batchAssociationsRequest({ inputs }, toObjectType);
369
+ });
370
+ await Promise.all(requests);
371
+ }
372
+ exports.sendAssociations = sendAssociations;
373
+ function getAssociationType(associationLabel) {
374
+ const [associationCategory, associationTypeId] = associationLabel.split(':');
375
+ return { associationCategory, associationTypeId };
376
+ }
377
+ async function compareToHubspot(client, schema) {
378
+ const requests = [];
379
+ const hasProps = schema.properties.length;
380
+ const hasSensitiveProps = schema.sensitiveProperties.length;
381
+ if (hasProps) {
382
+ requests.push(client.readProperties(false));
383
+ }
384
+ if (hasSensitiveProps) {
385
+ requests.push(client.readProperties(true));
386
+ }
387
+ const responses = await Promise.allSettled(requests);
388
+ const schemaDiff = {
389
+ object_details: {
390
+ object_type: schema.object_details.object_type,
391
+ id_field_name: schema.object_details.id_field_name
392
+ }
393
+ };
394
+ if (hasProps && requests.length > 0) {
395
+ const response = responses.shift();
396
+ const { missingProps, match } = determineMissingPropsAndMatchType(response, schema.properties);
397
+ schemaDiff.missingProperties = missingProps;
398
+ schemaDiff.match = match;
399
+ }
400
+ if (hasSensitiveProps && requests.length > 0) {
401
+ const response = responses.shift();
402
+ const { missingProps, match } = determineMissingPropsAndMatchType(response, schema.sensitiveProperties);
403
+ schemaDiff.missingSensitiveProperties = missingProps;
404
+ if (schemaDiff.match === types_1.SchemaMatch.NoMatch && schemaDiff.match !== types_1.SchemaMatch.NoMatch) {
405
+ throw new actions_core_1.IntegrationError('Unable to fetch property data from Hubspot', 'HUBSPOT_PROPERTIES_ERROR', 400);
406
+ }
407
+ if (schemaDiff.match === types_1.SchemaMatch.FullMatch) {
408
+ schemaDiff.match = match;
409
+ }
410
+ }
411
+ return schemaDiff;
412
+ }
413
+ exports.compareToHubspot = compareToHubspot;
414
+ function determineMissingPropsAndMatchType(response, properties) {
415
+ switch (response.status) {
416
+ case 'fulfilled': {
417
+ const results = response.value?.data.results ?? [];
418
+ const missingProps = [];
419
+ properties.forEach((prop) => {
420
+ const match = results.find((item) => {
421
+ return item.name === prop.name;
422
+ });
423
+ checkForIncompatiblePropTypes(prop, match);
424
+ if (!match) {
425
+ missingProps.push({
426
+ name: prop.name,
427
+ type: prop.type,
428
+ fieldType: prop.fieldType,
429
+ typeFieldType: prop.typeFieldType
430
+ });
431
+ }
432
+ });
433
+ return {
434
+ missingProps,
435
+ match: missingProps.length === 0 ? types_1.SchemaMatch.FullMatch : types_1.SchemaMatch.PropertiesMissing
436
+ };
437
+ }
438
+ case 'rejected': {
439
+ if (response.reason?.message.startsWith(constants_1.OBJECT_NOT_FOUND_ERROR_RESPONSE)) {
440
+ return { missingProps: [], match: types_1.SchemaMatch.NoMatch };
441
+ }
442
+ else {
443
+ throw new actions_core_1.IntegrationError(`Error fetching Hubspot property data: ${response.reason?.message}`, 'HUBSPOT_PROPERTY_FETCH_ERROR', 400);
444
+ }
445
+ }
446
+ }
447
+ }
448
+ function checkForIncompatiblePropTypes(prop, hubspotProp) {
449
+ if (!hubspotProp) {
450
+ return;
451
+ }
452
+ if (hubspotProp.fieldType === prop.fieldType && hubspotProp.type === prop.type) {
453
+ return;
454
+ }
455
+ if (hubspotProp.fieldType === 'select' &&
456
+ hubspotProp.type === 'enumeration' &&
457
+ prop.fieldType === 'text' &&
458
+ prop.type === 'string') {
459
+ return;
460
+ }
461
+ throw new actions_core_1.IntegrationError(`Payload property with name ${prop.name} has a different type to the property in HubSpot. Expected: type = ${prop.type} fieldType = ${prop.fieldType}. Received: type = ${hubspotProp.type} fieldType = ${hubspotProp.fieldType}`, 'HUBSPOT_PROPERTY_TYPE_MISMATCH', 400);
462
+ }
463
+ async function saveSchemaToCache(_schema) {
464
+ }
465
+ exports.saveSchemaToCache = saveSchemaToCache;
466
+ async function createProperties(client, schemaDiff, propertyGroup) {
467
+ if (!propertyGroup) {
468
+ throw new actions_core_1.PayloadValidationError('"Property Group" is a required field when creating properties on an Object Schema in Hubspot');
469
+ }
470
+ if (schemaDiff.missingProperties.length === 0 && schemaDiff.missingSensitiveProperties.length === 0) {
471
+ return;
472
+ }
473
+ const { missingProperties: props, missingSensitiveProperties: sensitiveProps } = schemaDiff;
474
+ const input = (prop, sensitive) => {
475
+ switch (prop.typeFieldType) {
476
+ case types_1.HSPropTypeFieldType.NumberNumber:
477
+ return {
478
+ name: prop.name,
479
+ label: prop.name,
480
+ groupName: propertyGroup,
481
+ type: 'number',
482
+ dataSensitivity: sensitive === true ? 'sensitive' : undefined,
483
+ fieldType: 'number'
484
+ };
485
+ case types_1.HSPropTypeFieldType.StringText:
486
+ return {
487
+ name: prop.name,
488
+ label: prop.name,
489
+ groupName: propertyGroup,
490
+ type: 'string',
491
+ dataSensitivity: sensitive === true ? 'sensitive' : undefined,
492
+ fieldType: 'text'
493
+ };
494
+ case types_1.HSPropTypeFieldType.EnumerationBooleanCheckbox:
495
+ return {
496
+ name: prop.name,
497
+ label: prop.name,
498
+ groupName: propertyGroup,
499
+ type: 'enumeration',
500
+ dataSensitivity: sensitive === true ? 'sensitive' : undefined,
501
+ fieldType: 'booleancheckbox',
502
+ options: [
503
+ {
504
+ label: 'true',
505
+ value: 'true',
506
+ hidden: false,
507
+ description: 'True',
508
+ displayOrder: 1
509
+ },
510
+ {
511
+ label: 'false',
512
+ value: 'false',
513
+ hidden: false,
514
+ description: 'False',
515
+ displayOrder: 2
516
+ }
517
+ ]
518
+ };
519
+ case types_1.HSPropTypeFieldType.DateTimeDate:
520
+ return {
521
+ name: prop.name,
522
+ label: prop.name,
523
+ groupName: propertyGroup,
524
+ type: 'datetime',
525
+ dataSensitivity: sensitive === true ? 'sensitive' : undefined,
526
+ fieldType: 'date'
527
+ };
528
+ case types_1.HSPropTypeFieldType.DateDate:
529
+ return {
530
+ name: prop.name,
531
+ label: prop.name,
532
+ groupName: propertyGroup,
533
+ type: 'date',
534
+ dataSensitivity: sensitive === true ? 'sensitive' : undefined,
535
+ fieldType: 'date'
536
+ };
537
+ }
538
+ };
539
+ const json = {
540
+ inputs: [
541
+ ...(props ? props.map((p) => input(p, false)) : []),
542
+ ...(sensitiveProps ? sensitiveProps.map((p) => input(p, true)) : [])
543
+ ]
544
+ };
545
+ await client.createPropertiesDefinition(json);
546
+ }
547
+ exports.createProperties = createProperties;
548
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/destinations/hubspot/upsertObject/utils.ts"],"names":[],"mappings":"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"}
@@ -33,13 +33,25 @@ const destination = {
33
33
  },
34
34
  refreshAccessToken: async (request, { auth }) => {
35
35
  let res;
36
+ if (!process.env.ACTIONS_LINKEDIN_CONVERSIONS_CLIENT_ID) {
37
+ throw new actions_core_1.IntegrationError(`Missing client ID`, actions_core_1.ErrorCodes.OAUTH_REFRESH_FAILED, 500);
38
+ }
39
+ if (!process.env.ACTIONS_LINKEDIN_CONVERSIONS_CLIENT_SECRET) {
40
+ throw new actions_core_1.IntegrationError(`Missing client secret`, actions_core_1.ErrorCodes.OAUTH_REFRESH_FAILED, 500);
41
+ }
42
+ if (!auth?.refreshToken) {
43
+ throw new actions_core_1.IntegrationError(`Missing refresh token. Please re-authenticate to fetch a new refresh token.`, actions_core_1.ErrorCodes.OAUTH_REFRESH_FAILED, 401);
44
+ }
36
45
  try {
37
46
  res = await request('https://www.linkedin.com/oauth/v2/accessToken', {
38
47
  method: 'POST',
48
+ headers: {
49
+ 'Content-Type': 'application/x-www-form-urlencoded'
50
+ },
39
51
  body: new URLSearchParams({
40
52
  refresh_token: auth.refreshToken,
41
- client_id: auth.clientId,
42
- client_secret: auth.clientSecret,
53
+ client_id: process.env.ACTIONS_LINKEDIN_CONVERSIONS_CLIENT_ID,
54
+ client_secret: process.env.ACTIONS_LINKEDIN_CONVERSIONS_CLIENT_SECRET,
43
55
  grant_type: 'refresh_token'
44
56
  })
45
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/linkedin-conversions/index.ts"],"names":[],"mappings":";;;;;AACA,wDAAgG;AAEhG,+BAA2C;AAE3C,2CAAkD;AAClD,kDAAyB;AACzB,0EAAiD;AAEjD,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,EAAE;QACV,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE;gBACtB,MAAM,IAAI,yCAA0B,CAAC,gEAAgE,CAAC,CAAA;aACvG;YAED,MAAM,iBAAiB,GAAwB,IAAI,yBAAmB,CAAC,OAAO,CAAC,CAAA;YAE/E,IAAI;gBAGF,OAAO,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAA;aAC5C;YAAC,OAAO,CAAM,EAAE;gBACf,MAAM,KAAK,GAAG,CAAoC,CAAA;gBAClD,IAAI,KAAK,CAAC,OAAO,KAAK,cAAc,EAAE;oBACpC,MAAM,IAAI,KAAK,CACb,8HAA8H,CAC/H,CAAA;iBACF;gBACD,MAAM,CAAC,CAAA;aACR;QACH,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,IAAI,GAAG,CAAA;YAEP,IAAI;gBACF,GAAG,GAAG,MAAM,OAAO,CAAuB,+CAA+C,EAAE;oBACzF,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,IAAI,eAAe,CAAC;wBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;wBAChC,SAAS,EAAE,IAAI,CAAC,QAAQ;wBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;wBAChC,UAAU,EAAE,eAAe;qBAC5B,CAAC;iBACH,CAAC,CAAA;aACH;YAAC,OAAO,CAAM,EAAE;gBACf,MAAM,KAAK,GAAG,CAA8B,CAAA;gBAC5C,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,KAAK,eAAe,EAAE;oBACnD,MAAM,IAAI,+BAAgB,CACxB,wHAAwH,EACxH,yBAAU,CAAC,qBAAqB,EAChC,GAAG,CACJ,CAAA;iBACF;gBAED,MAAM,IAAI,+BAAgB,CACxB,+CAA+C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAC5E,yBAAU,CAAC,oBAAoB,EAC/B,GAAG,CACJ,CAAA;aACF;YAED,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QACjD,CAAC;KACF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QAIpB,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAElD,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,EAAE,WAAW,EAAE;gBAC5C,kBAAkB,EAAE,gCAAoB;gBACxC,2BAA2B,EAAE,OAAO;aACrC;YACD,KAAK;SACN,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,gBAAgB,EAAhB,0BAAgB;KACjB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/linkedin-conversions/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ export interface Payload {
6
6
  email?: string;
7
7
  firstName?: string;
8
8
  lastName?: string;
9
+ mailingLists?: {
10
+ listId: string;
11
+ subscribed: boolean;
12
+ }[];
9
13
  source?: string;
10
14
  subscribed?: boolean;
11
15
  userGroup?: string;