@segment/action-destinations 3.71.1-alpha.1 → 3.73.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 (54) hide show
  1. package/dist/destinations/index.js +1 -0
  2. package/dist/destinations/index.js.map +1 -1
  3. package/dist/destinations/personas-messaging-twilio/generated-types.d.ts +3 -2
  4. package/dist/destinations/personas-messaging-twilio/index.js +12 -6
  5. package/dist/destinations/personas-messaging-twilio/index.js.map +1 -1
  6. package/dist/destinations/personas-messaging-twilio/sendSms/index.js +2 -2
  7. package/dist/destinations/personas-messaging-twilio/sendSms/index.js.map +1 -1
  8. package/dist/destinations/salesforce/account/generated-types.d.ts +4 -0
  9. package/dist/destinations/salesforce/account/index.js +18 -3
  10. package/dist/destinations/salesforce/account/index.js.map +1 -1
  11. package/dist/destinations/salesforce/cases/generated-types.d.ts +4 -0
  12. package/dist/destinations/salesforce/cases/index.js +16 -3
  13. package/dist/destinations/salesforce/cases/index.js.map +1 -1
  14. package/dist/destinations/salesforce/contact/generated-types.d.ts +4 -0
  15. package/dist/destinations/salesforce/contact/index.js +18 -3
  16. package/dist/destinations/salesforce/contact/index.js.map +1 -1
  17. package/dist/destinations/salesforce/customObject/generated-types.d.ts +4 -0
  18. package/dist/destinations/salesforce/customObject/index.d.ts +1 -1
  19. package/dist/destinations/salesforce/customObject/index.js +12 -0
  20. package/dist/destinations/salesforce/customObject/index.js.map +1 -1
  21. package/dist/destinations/salesforce/lead/generated-types.d.ts +4 -0
  22. package/dist/destinations/salesforce/lead/index.js +18 -3
  23. package/dist/destinations/salesforce/lead/index.js.map +1 -1
  24. package/dist/destinations/salesforce/opportunity/generated-types.d.ts +4 -0
  25. package/dist/destinations/salesforce/opportunity/index.js +18 -3
  26. package/dist/destinations/salesforce/opportunity/index.js.map +1 -1
  27. package/dist/destinations/salesforce/sf-operations.d.ts +4 -1
  28. package/dist/destinations/salesforce/sf-operations.js +48 -14
  29. package/dist/destinations/salesforce/sf-operations.js.map +1 -1
  30. package/dist/destinations/salesforce/sf-properties.d.ts +2 -0
  31. package/dist/destinations/salesforce/sf-properties.js +27 -2
  32. package/dist/destinations/salesforce/sf-properties.js.map +1 -1
  33. package/dist/destinations/salesforce/sf-utils.d.ts +2 -0
  34. package/dist/destinations/salesforce/sf-utils.js +90 -0
  35. package/dist/destinations/salesforce/sf-utils.js.map +1 -0
  36. package/dist/destinations/snap-conversions-api/_tests_/index.test.d.ts +1 -0
  37. package/dist/destinations/snap-conversions-api/_tests_/index.test.js +204 -0
  38. package/dist/destinations/snap-conversions-api/_tests_/index.test.js.map +1 -0
  39. package/dist/destinations/snap-conversions-api/generated-types.d.ts +5 -0
  40. package/dist/destinations/snap-conversions-api/generated-types.js +3 -0
  41. package/dist/destinations/snap-conversions-api/generated-types.js.map +1 -0
  42. package/dist/destinations/snap-conversions-api/index.d.ts +4 -0
  43. package/dist/destinations/snap-conversions-api/index.js +189 -0
  44. package/dist/destinations/snap-conversions-api/index.js.map +1 -0
  45. package/dist/destinations/snap-conversions-api/reportConversionEvent/generated-types.d.ts +25 -0
  46. package/dist/destinations/snap-conversions-api/reportConversionEvent/generated-types.js +3 -0
  47. package/dist/destinations/snap-conversions-api/reportConversionEvent/generated-types.js.map +1 -0
  48. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.d.ts +5 -0
  49. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js +50 -0
  50. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js.map +1 -0
  51. package/dist/destinations/snap-conversions-api/snap-capi-properties.d.ts +30 -0
  52. package/dist/destinations/snap-conversions-api/snap-capi-properties.js +310 -0
  53. package/dist/destinations/snap-conversions-api/snap-capi-properties.js.map +1 -0
  54. package/package.json +4 -4
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.API_VERSION = void 0;
4
4
  const actions_core_1 = require("@segment/actions-core");
5
5
  const sf_object_to_shape_1 = require("./sf-object-to-shape");
6
+ const sf_utils_1 = require("./sf-utils");
6
7
  exports.API_VERSION = 'v53.0';
7
8
  class Salesforce {
8
9
  constructor(instanceUrl, request) {
@@ -39,6 +40,51 @@ class Salesforce {
39
40
  }
40
41
  return await this.baseUpdate(recordId, sobject, payload);
41
42
  };
43
+ this.bulkUpsert = async (payloads, sobject) => {
44
+ if (!payloads[0].bulkUpsertExternalId ||
45
+ !payloads[0].bulkUpsertExternalId.externalIdName ||
46
+ !payloads[0].bulkUpsertExternalId.externalIdValue) {
47
+ throw new actions_core_1.IntegrationError('Undefined bulkUpsertExternalId.externalIdName or externalIdValue when using bulkUpsert operation', 'Undefined bulkUpsertExternalId.externalIdName externalIdValue', 400);
48
+ }
49
+ const externalIdFieldName = payloads[0].bulkUpsertExternalId.externalIdName;
50
+ const jobId = await this.createBulkJob(sobject, externalIdFieldName);
51
+ const csv = sf_utils_1.buildCSVData(payloads, externalIdFieldName);
52
+ await this.uploadBulkCSV(jobId, csv);
53
+ return await this.closeBulkJob(jobId);
54
+ };
55
+ this.createBulkJob = async (sobject, externalIdFieldName) => {
56
+ const res = await this.request(`${this.instanceUrl}services/data/${exports.API_VERSION}/jobs/ingest`, {
57
+ method: 'post',
58
+ json: {
59
+ object: sobject,
60
+ externalIdFieldName: externalIdFieldName,
61
+ contentType: 'CSV',
62
+ operation: 'upsert'
63
+ }
64
+ });
65
+ if (!res || !res.data || !res.data.id) {
66
+ throw new actions_core_1.IntegrationError('Failed to create bulk job', 'Failed to create bulk job', 500);
67
+ }
68
+ return res.data.id;
69
+ };
70
+ this.uploadBulkCSV = async (jobId, csv) => {
71
+ return this.request(`${this.instanceUrl}services/data/${exports.API_VERSION}/jobs/ingest/${jobId}/batches`, {
72
+ method: 'put',
73
+ headers: {
74
+ 'Content-Type': 'text/csv',
75
+ Accept: 'application/json'
76
+ },
77
+ body: csv
78
+ });
79
+ };
80
+ this.closeBulkJob = async (jobId) => {
81
+ return this.request(`${this.instanceUrl}services/data/${exports.API_VERSION}/jobs/ingest/${jobId}`, {
82
+ method: 'PATCH',
83
+ json: {
84
+ state: 'UploadComplete'
85
+ }
86
+ });
87
+ };
42
88
  this.baseUpdate = async (recordId, sobject, payload) => {
43
89
  const json = this.buildJSONData(payload, sobject);
44
90
  return this.request(`${this.instanceUrl}services/data/${exports.API_VERSION}/sobjects/${sobject}/${recordId}`, {
@@ -56,26 +102,14 @@ class Salesforce {
56
102
  }
57
103
  return baseShape;
58
104
  };
59
- this.escapeQuotes = (value) => value.toString().replace(/'/g, "\\'");
105
+ this.escapeQuotes = (value) => value.replace(/'/g, "\\'");
60
106
  this.removeInvalidChars = (value) => value.replace(/[^a-zA-Z0-9_]/g, '');
61
- this.typecast = (value) => {
62
- switch (typeof value) {
63
- case "string":
64
- return `'${this.escapeQuotes(value)}'`;
65
- case "boolean":
66
- return value;
67
- case "number":
68
- return value;
69
- default:
70
- return `'${this.escapeQuotes(value)}'`;
71
- }
72
- };
73
107
  this.buildQuery = (traits, sobject) => {
74
108
  let soql = `SELECT Id FROM ${sobject} WHERE `;
75
109
  const entries = Object.entries(traits);
76
110
  let i = 0;
77
111
  for (const [key, value] of entries) {
78
- let token = `${this.removeInvalidChars(key)} = ${this.typecast(value)}`;
112
+ let token = `${this.removeInvalidChars(key)} = '${this.escapeQuotes(value)}'`;
79
113
  if (i < entries.length - 1) {
80
114
  token += ' OR ';
81
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sf-operations.js","sourceRoot":"","sources":["../../../src/destinations/salesforce/sf-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sf-operations.js","sourceRoot":"","sources":["../../../src/destinations/salesforce/sf-operations.ts"],"names":[],"mappings":";;;AAAA,wDAAuE;AAEvE,6DAAuD;AACvD,yCAAyC;AAE5B,QAAA,WAAW,GAAG,OAAO,CAAA;AAgBlC,MAAqB,UAAU;IAI7B,YAAY,WAAmB,EAAE,OAAsB;QAOvD,iBAAY,GAAG,KAAK,EAAE,OAAuB,EAAE,OAAe,EAAE,EAAE;YAChE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAEjD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,iBAAiB,mBAAW,aAAa,OAAO,EAAE,EAAE;gBACzF,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,iBAAY,GAAG,KAAK,EAAE,OAAuB,EAAE,OAAe,EAAE,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/D,MAAM,IAAI,+BAAgB,CAAC,8CAA8C,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAA;aACpG;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACtE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;aAC/E;YAED,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAExE,IAAI,GAAG,EAAE;gBACP,MAAM,GAAG,CAAA;aACV;YAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAC1D,CAAC,CAAA;QAED,iBAAY,GAAG,KAAK,EAAE,OAAuB,EAAE,OAAe,EAAE,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/D,MAAM,IAAI,+BAAgB,CAAC,8CAA8C,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAA;aACpG;YAED,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAExE,IAAI,GAAG,EAAE;gBACP,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACtB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;iBACjD;gBACD,MAAM,GAAG,CAAA;aACV;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAC1D,CAAC,CAAA;QAED,eAAU,GAAG,KAAK,EAAE,QAA0B,EAAE,OAAe,EAAE,EAAE;YACjE,IACE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB;gBACjC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,cAAc;gBAChD,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,eAAe,EACjD;gBACA,MAAM,IAAI,+BAAgB,CACxB,kGAAkG,EAClG,+DAA+D,EAC/D,GAAG,CACJ,CAAA;aACF;YACD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAA;YAE3E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;YAEpE,MAAM,GAAG,GAAG,uBAAY,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAA;YAEvD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACpC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACvC,CAAC,CAAA;QAEO,kBAAa,GAAG,KAAK,EAAE,OAAe,EAAE,mBAA2B,EAAE,EAAE;YAC7E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,GAAG,IAAI,CAAC,WAAW,iBAAiB,mBAAW,cAAc,EAC7D;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,MAAM,EAAE,OAAO;oBACf,mBAAmB,EAAE,mBAAmB;oBACxC,WAAW,EAAE,KAAK;oBAClB,SAAS,EAAE,QAAQ;iBACpB;aACF,CACF,CAAA;YAED,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;gBACrC,MAAM,IAAI,+BAAgB,CAAC,2BAA2B,EAAE,2BAA2B,EAAE,GAAG,CAAC,CAAA;aAC1F;YAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;QACpB,CAAC,CAAA;QAEO,kBAAa,GAAG,KAAK,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE;YAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,iBAAiB,mBAAW,gBAAgB,KAAK,UAAU,EAAE;gBAClG,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,UAAU;oBAC1B,MAAM,EAAE,kBAAkB;iBAC3B;gBACD,IAAI,EAAE,GAAG;aACV,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,iBAAY,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;YAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,iBAAiB,mBAAW,gBAAgB,KAAK,EAAE,EAAE;gBAC1F,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE;oBACJ,KAAK,EAAE,gBAAgB;iBACxB;aACF,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,eAAU,GAAG,KAAK,EAAE,QAAgB,EAAE,OAAe,EAAE,OAAuB,EAAE,EAAE;YACxF,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAEjD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,iBAAiB,mBAAW,aAAa,OAAO,IAAI,QAAQ,EAAE,EAAE;gBACrG,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;QACJ,CAAC,CAAA;QAEO,kBAAa,GAAG,CAAC,OAAuB,EAAE,OAAe,EAAE,EAAE;YACnE,IAAI,SAAS,GAAG,EAAE,CAAA;YAElB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAC7B,SAAS,GAAG,qCAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;aAC/C;YAED,IAAI,OAAO,CAAC,YAAY,EAAE;gBAExB,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAA;aACtD;YAED,OAAO,SAAS,CAAA;QAClB,CAAC,CAAA;QAGO,iBAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAG5D,uBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;QAE3E,eAAU,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE;YACvD,IAAI,IAAI,GAAG,kBAAkB,OAAO,SAAS,CAAA;YAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;gBAClC,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAA;gBAE7E,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,KAAK,IAAI,MAAM,CAAA;iBAChB;gBAED,IAAI,IAAI,KAAK,CAAA;gBACb,CAAC,IAAI,CAAC,CAAA;aACP;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAEO,iBAAY,GAAG,KAAK,EAAE,MAAc,EAAE,OAAe,EAAmD,EAAE;YAChH,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;YAEtE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,GAAG,IAAI,CAAC,WAAW,iBAAiB,mBAAW,aAAa,SAAS,EAAE,EACvE,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAA;YAED,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBACzD,OAAO,CAAC,EAAE,EAAE,IAAI,+BAAgB,CAAC,kCAAkC,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAA;aAC3F;YAED,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;gBAC5B,OAAO,CAAC,EAAE,EAAE,IAAI,+BAAgB,CAAC,mCAAmC,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAA;aAChG;YAED,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC1B,OAAO,CAAC,EAAE,EAAE,IAAI,+BAAgB,CAAC,6CAA6C,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC,CAAA;aAChH;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxE,OAAO,CAAC,EAAE,EAAE,IAAI,+BAAgB,CAAC,kCAAkC,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAA;aAC3F;YAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;QAC5C,CAAC,CAAA;QAvLC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC/E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CAsLF;AA/LD,6BA+LC"}
@@ -1,5 +1,7 @@
1
1
  import { InputField } from '@segment/actions-core/src/destination-kit/types';
2
2
  export declare const operation: InputField;
3
+ export declare const bulkUpsertExternalId: InputField;
4
+ export declare const bulkUpdateRecordId: InputField;
3
5
  export declare const traits: InputField;
4
6
  export declare const customFields: InputField;
5
7
  interface Payload {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateLookup = exports.customFields = exports.traits = exports.operation = void 0;
3
+ exports.validateLookup = exports.customFields = exports.traits = exports.bulkUpdateRecordId = exports.bulkUpsertExternalId = exports.operation = void 0;
4
4
  const actions_core_1 = require("@segment/actions-core");
5
5
  exports.operation = {
6
6
  label: 'Operation',
@@ -10,9 +10,34 @@ exports.operation = {
10
10
  choices: [
11
11
  { label: 'Create', value: 'create' },
12
12
  { label: 'Update', value: 'update' },
13
- { label: 'Upsert', value: 'upsert' }
13
+ { label: 'Upsert', value: 'upsert' },
14
+ { label: 'Bulk Upsert', value: 'bulkUpsert' }
14
15
  ]
15
16
  };
17
+ exports.bulkUpsertExternalId = {
18
+ label: 'Bulk Upsert External Id',
19
+ description: 'The external id field name and mapping to use for bulk upsert.',
20
+ type: 'object',
21
+ defaultObjectUI: 'keyvalue:only',
22
+ additionalProperties: false,
23
+ properties: {
24
+ externalIdName: {
25
+ label: 'External Id Name',
26
+ description: 'The external id field name as defined in Salesforce.',
27
+ type: 'string'
28
+ },
29
+ externalIdValue: {
30
+ label: 'External Id Value',
31
+ description: 'The external id field value to use for bulk upsert.',
32
+ type: 'string'
33
+ }
34
+ }
35
+ };
36
+ exports.bulkUpdateRecordId = {
37
+ label: 'Bulk Update Record Id',
38
+ description: 'The record id value to use for bulk update.',
39
+ type: 'string'
40
+ };
16
41
  exports.traits = {
17
42
  label: 'Record Matchers',
18
43
  description: `The fields used to find Salesforce records for updates. **This is required if the operation is Update or Upsert.**
@@ -1 +1 @@
1
- {"version":3,"file":"sf-properties.js","sourceRoot":"","sources":["../../../src/destinations/salesforce/sf-properties.ts"],"names":[],"mappings":";;;AACA,wDAAwD;AAE3C,QAAA,SAAS,GAAe;IACnC,KAAK,EAAE,WAAW;IAClB,WAAW,EACT,kHAAkH;IACpH,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACrC;CACF,CAAA;AAEY,QAAA,MAAM,GAAe;IAChC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE;;;;;;;;GAQZ;IACD,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,eAAe;CACjC,CAAA;AAEY,QAAA,YAAY,GAAe;IACtC,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE;;;;;;;GAOZ;IACD,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,UAAU;CAC5B,CAAA;AAOM,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE;IACjD,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;QACpE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,MAAM,IAAI,+BAAgB,CACxB,wDAAwD,EACxD,8BAA8B,EAC9B,GAAG,CACJ,CAAA;SACF;KACF;AACH,CAAC,CAAA;AAVY,QAAA,cAAc,kBAU1B"}
1
+ {"version":3,"file":"sf-properties.js","sourceRoot":"","sources":["../../../src/destinations/salesforce/sf-properties.ts"],"names":[],"mappings":";;;AACA,wDAAwD;AAE3C,QAAA,SAAS,GAAe;IACnC,KAAK,EAAE,WAAW;IAClB,WAAW,EACT,kHAAkH;IACpH,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE;KAC9C;CACF,CAAA;AAEY,QAAA,oBAAoB,GAAe;IAC9C,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE,gEAAgE;IAC7E,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,eAAe;IAChC,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,cAAc,EAAE;YACd,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,sDAAsD;YACnE,IAAI,EAAE,QAAQ;SACf;QACD,eAAe,EAAE;YACf,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,qDAAqD;YAClE,IAAI,EAAE,QAAQ;SACf;KACF;CACF,CAAA;AAEY,QAAA,kBAAkB,GAAe;IAC5C,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EAAE,6CAA6C;IAC1D,IAAI,EAAE,QAAQ;CACf,CAAA;AAEY,QAAA,MAAM,GAAe;IAChC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE;;;;;;;;GAQZ;IACD,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,eAAe;CACjC,CAAA;AAEY,QAAA,YAAY,GAAe;IACtC,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE;;;;;;;GAOZ;IACD,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,UAAU;CAC5B,CAAA;AAOM,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE;IACjD,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;QACpE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,MAAM,IAAI,+BAAgB,CACxB,wDAAwD,EACxD,8BAA8B,EAC9B,GAAG,CACJ,CAAA;SACF;KACF;AACH,CAAC,CAAA;AAVY,QAAA,cAAc,kBAU1B"}
@@ -0,0 +1,2 @@
1
+ import { GenericPayload } from './sf-types';
2
+ export declare const buildCSVData: (payloads: GenericPayload[], externalIdFieldName: string) => string;
@@ -0,0 +1,90 @@
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
+ exports.buildCSVData = void 0;
7
+ const actions_core_1 = require("@segment/actions-core");
8
+ const camelCase_1 = __importDefault(require("lodash/camelCase"));
9
+ const isSettingsKey = new Set(['operation', 'traits', 'customFields', 'bulkUpsertExternalId']);
10
+ const NO_VALUE = `#N/A`;
11
+ const validateHeaderField = (field) => {
12
+ if (field.includes(',')) {
13
+ throw new actions_core_1.IntegrationError(`Invalid character in field name: ${field}`, `Invalid character in field name: ${field}`, 400);
14
+ }
15
+ };
16
+ const buildHeaderMap = (payloads) => {
17
+ const headerMap = new Map();
18
+ for (let i = payloads.length - 1; i >= 0; i--) {
19
+ const payload = payloads[i];
20
+ Object.entries(payload).forEach(([key, value]) => {
21
+ if (!isSettingsKey.has(key)) {
22
+ const pascalKey = snakeCaseToPascalCase(key);
23
+ const actualValue = value;
24
+ if (headerMap.has(pascalKey)) {
25
+ headerMap.get(pascalKey)?.push([actualValue, i]);
26
+ }
27
+ else {
28
+ headerMap.set(pascalKey, [[actualValue, i]]);
29
+ }
30
+ }
31
+ if (key === 'customFields') {
32
+ const customFields = value;
33
+ Object.entries(customFields).forEach(([customFieldName, customFieldValue]) => {
34
+ validateHeaderField(customFieldName);
35
+ if (!headerMap.has(customFieldName)) {
36
+ headerMap.set(customFieldName, [[customFieldValue, i]]);
37
+ }
38
+ else {
39
+ headerMap.get(customFieldName)?.push([customFieldValue, i]);
40
+ }
41
+ });
42
+ }
43
+ });
44
+ }
45
+ return headerMap;
46
+ };
47
+ const buildHeaders = (headerMap) => {
48
+ let headers = '';
49
+ for (const [key, _] of headerMap.entries()) {
50
+ headers += `${key},`;
51
+ }
52
+ return headers;
53
+ };
54
+ const buildCSVFromHeaderMap = (payloads, headerMap, n) => {
55
+ let rows = '';
56
+ for (let i = 0; i < n; i++) {
57
+ let row = '';
58
+ for (const [key, _] of headerMap.entries()) {
59
+ let noValueFound = true;
60
+ if (headerMap.has(key)) {
61
+ const column = headerMap.get(key);
62
+ if (column !== undefined && column.length > 0 && column[column.length - 1][1] === i) {
63
+ const value = column.pop();
64
+ if (value !== undefined) {
65
+ row += `"${value[0]}",`;
66
+ noValueFound = false;
67
+ }
68
+ }
69
+ }
70
+ if (noValueFound) {
71
+ row += `${NO_VALUE},`;
72
+ }
73
+ }
74
+ const externalIdFieldValue = payloads[i].bulkUpsertExternalId?.externalIdValue;
75
+ rows += `${row}"${externalIdFieldValue}"\n`;
76
+ }
77
+ return rows;
78
+ };
79
+ const buildCSVData = (payloads, externalIdFieldName) => {
80
+ const headerMap = buildHeaderMap(payloads);
81
+ let csv = buildHeaders(headerMap);
82
+ csv += `${externalIdFieldName}\n` + buildCSVFromHeaderMap(payloads, headerMap, payloads.length);
83
+ return csv;
84
+ };
85
+ exports.buildCSVData = buildCSVData;
86
+ const snakeCaseToPascalCase = (key) => {
87
+ const token = camelCase_1.default(key);
88
+ return token.charAt(0).toUpperCase() + token.slice(1);
89
+ };
90
+ //# sourceMappingURL=sf-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sf-utils.js","sourceRoot":"","sources":["../../../src/destinations/salesforce/sf-utils.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAwD;AAExD,iEAAwC;AAExC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAA;AAEtG,MAAM,QAAQ,GAAG,MAAM,CAAA;AAEvB,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAQ,EAAE;IAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,IAAI,+BAAgB,CACxB,oCAAoC,KAAK,EAAE,EAC3C,oCAAoC,KAAK,EAAE,EAC3C,GAAG,CACJ,CAAA;KACF;AACH,CAAC,CAAA;AAUD,MAAM,cAAc,GAAG,CAAC,QAA0B,EAAmC,EAAE;IACrF,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAA;IAGvD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC3B,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAA;gBAC5C,MAAM,WAAW,GAAG,KAAe,CAAA;gBACnC,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBAC5B,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;iBACjD;qBAAM;oBACL,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;iBAC7C;aACF;YACD,IAAI,GAAG,KAAK,cAAc,EAAE;gBAC1B,MAAM,YAAY,GAAG,KAAe,CAAA;gBACpC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,EAAE;oBAC3E,mBAAmB,CAAC,eAAe,CAAC,CAAA;oBAEpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;wBACnC,SAAS,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;qBACxD;yBAAM;wBACL,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAA;qBAC5D;gBACH,CAAC,CAAC,CAAA;aACH;QACH,CAAC,CAAC,CAAA;KACH;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAQD,MAAM,YAAY,GAAG,CAAC,SAA0C,EAAU,EAAE;IAC1E,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;QAC1C,OAAO,IAAI,GAAG,GAAG,GAAG,CAAA;KACrB;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAaD,MAAM,qBAAqB,GAAG,CAC5B,QAA0B,EAC1B,SAA0C,EAC1C,CAAS,EACD,EAAE;IACV,IAAI,IAAI,GAAG,EAAE,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YAC1C,IAAI,YAAY,GAAG,IAAI,CAAA;YACvB,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACtB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAuB,CAAA;gBAEvD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACnF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;oBAC1B,IAAI,KAAK,KAAK,SAAS,EAAE;wBACvB,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;wBACvB,YAAY,GAAG,KAAK,CAAA;qBACrB;iBACF;aACF;YAED,IAAI,YAAY,EAAE;gBAChB,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAA;aACtB;SACF;QACD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,eAAyB,CAAA;QACxF,IAAI,IAAI,GAAG,GAAG,IAAI,oBAAoB,KAAK,CAAA;KAC5C;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAQM,MAAM,YAAY,GAAG,CAAC,QAA0B,EAAE,mBAA2B,EAAU,EAAE;IAC9F,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC1C,IAAI,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IAEjC,GAAG,IAAI,GAAG,mBAAmB,IAAI,GAAG,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE/F,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAPY,QAAA,YAAY,gBAOxB;AAID,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAU,EAAE;IACpD,MAAM,KAAK,GAAG,mBAAS,CAAC,GAAG,CAAC,CAAA;IAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACvD,CAAC,CAAA"}
@@ -0,0 +1,204 @@
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 nock_1 = __importDefault(require("nock"));
7
+ const actions_core_1 = require("@segment/actions-core");
8
+ const index_1 = __importDefault(require("../index"));
9
+ const testDestination = actions_core_1.createTestIntegration(index_1.default);
10
+ const timestamp = '2022-05-12T15:21:15.449Z';
11
+ const settings = {
12
+ snap_app_id: 'test123',
13
+ pixel_id: 'test123',
14
+ app_id: 'test123'
15
+ };
16
+ const accessToken = 'test123';
17
+ const refreshToken = 'test123';
18
+ const testEvent = actions_core_1.createTestEvent({
19
+ timestamp: timestamp,
20
+ messageId: 'test-message-rv4t40s898k',
21
+ event: 'PURCHASE',
22
+ type: 'track',
23
+ properties: {
24
+ email: 'test123@gmail.com',
25
+ phone: '+44 844 412 4653',
26
+ event_tag: 'back-to-school',
27
+ number_items: 10,
28
+ price: '15',
29
+ currency: 'USD',
30
+ level: 3
31
+ }
32
+ });
33
+ const conversionEventUrl = 'https://tr.snapchat.com/v2/conversion';
34
+ describe('Snap Conversions API ', () => {
35
+ describe('ReportConversionEvent', () => {
36
+ it('should handle a basic event', async () => {
37
+ nock_1.default(conversionEventUrl).post('').reply(200, {});
38
+ const event = actions_core_1.createTestEvent(testEvent);
39
+ const responses = await testDestination.testAction('reportConversionEvent', {
40
+ event,
41
+ settings,
42
+ useDefaultMappings: true,
43
+ auth: {
44
+ accessToken,
45
+ refreshToken
46
+ },
47
+ mapping: {
48
+ event_type: 'PURCHASE',
49
+ event_conversion_type: 'WEB'
50
+ }
51
+ });
52
+ expect(responses).not.toBeNull();
53
+ expect(responses[0].status).toBe(200);
54
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"event_type\\":\\"PURCHASE\\",\\"event_conversion_type\\":\\"WEB\\",\\"timestamp\\":1652368875449,\\"hashed_email\\":\\"cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9\\",\\"hashed_phone_number\\":\\"dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383\\",\\"user_agent\\":\\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\\",\\"hashed_ip_address\\":\\"838c4c2573848f58e74332341a7ca6bc5cd86a8aec7d644137d53b4d597f10f5\\",\\"price\\":15,\\"currency\\":\\"USD\\",\\"page_url\\":\\"https://segment.com/academy/\\",\\"pixel_id\\":\\"test123\\"}"`);
55
+ });
56
+ it('should fail web event without pixel_id', async () => {
57
+ nock_1.default(conversionEventUrl).post('').reply(400, {});
58
+ const event = actions_core_1.createTestEvent(testEvent);
59
+ await expect(testDestination.testAction('reportConversionEvent', {
60
+ event,
61
+ settings: {
62
+ app_id: 'test123'
63
+ },
64
+ useDefaultMappings: true,
65
+ auth: {
66
+ accessToken,
67
+ refreshToken
68
+ },
69
+ mapping: {
70
+ event_type: 'PURCHASE',
71
+ event_conversion_type: 'WEB'
72
+ }
73
+ })).rejects.toThrowError('If event conversion type is "WEB" then pixel_id must be defined');
74
+ });
75
+ it('should fail web event without snap_app_id', async () => {
76
+ nock_1.default(conversionEventUrl).post('').reply(400, {});
77
+ const event = actions_core_1.createTestEvent(testEvent);
78
+ await expect(testDestination.testAction('reportConversionEvent', {
79
+ event,
80
+ settings: {
81
+ pixel_id: 'test123',
82
+ app_id: 'test123'
83
+ },
84
+ useDefaultMappings: true,
85
+ auth: {
86
+ accessToken,
87
+ refreshToken
88
+ },
89
+ mapping: {
90
+ event_type: 'PURCHASE',
91
+ event_conversion_type: 'MOBILE_APP'
92
+ }
93
+ })).rejects.toThrowError('If event conversion type is "MOBILE_APP" then snap_app_id and app_id must be defined');
94
+ });
95
+ it('should handle an offline event conversion type', async () => {
96
+ nock_1.default(conversionEventUrl).post('').reply(200, {});
97
+ const event = actions_core_1.createTestEvent(testEvent);
98
+ const responses = await testDestination.testAction('reportConversionEvent', {
99
+ event,
100
+ settings,
101
+ useDefaultMappings: true,
102
+ auth: {
103
+ accessToken,
104
+ refreshToken
105
+ },
106
+ mapping: {
107
+ event_type: 'SAVE',
108
+ event_conversion_type: 'OFFLINE'
109
+ }
110
+ });
111
+ expect(responses).not.toBeNull();
112
+ expect(responses[0].status).toBe(200);
113
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"event_type\\":\\"SAVE\\",\\"event_conversion_type\\":\\"OFFLINE\\",\\"timestamp\\":1652368875449,\\"hashed_email\\":\\"cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9\\",\\"hashed_phone_number\\":\\"dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383\\",\\"user_agent\\":\\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\\",\\"hashed_ip_address\\":\\"838c4c2573848f58e74332341a7ca6bc5cd86a8aec7d644137d53b4d597f10f5\\",\\"price\\":15,\\"currency\\":\\"USD\\",\\"page_url\\":\\"https://segment.com/academy/\\",\\"pixel_id\\":\\"test123\\"}"`);
114
+ });
115
+ it('should handle a mobile app event conversion type', async () => {
116
+ nock_1.default(conversionEventUrl).post('').reply(200, {});
117
+ const event = actions_core_1.createTestEvent(testEvent);
118
+ const responses = await testDestination.testAction('reportConversionEvent', {
119
+ event,
120
+ settings: {
121
+ snap_app_id: '123',
122
+ app_id: '123'
123
+ },
124
+ useDefaultMappings: true,
125
+ auth: {
126
+ accessToken,
127
+ refreshToken
128
+ },
129
+ mapping: {
130
+ event_type: 'SAVE',
131
+ event_conversion_type: 'MOBILE_APP'
132
+ }
133
+ });
134
+ expect(responses).not.toBeNull();
135
+ expect(responses[0].status).toBe(200);
136
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"event_type\\":\\"SAVE\\",\\"event_conversion_type\\":\\"MOBILE_APP\\",\\"timestamp\\":1652368875449,\\"hashed_email\\":\\"cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9\\",\\"hashed_phone_number\\":\\"dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383\\",\\"user_agent\\":\\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\\",\\"hashed_ip_address\\":\\"838c4c2573848f58e74332341a7ca6bc5cd86a8aec7d644137d53b4d597f10f5\\",\\"price\\":15,\\"currency\\":\\"USD\\",\\"page_url\\":\\"https://segment.com/academy/\\",\\"snap_app_id\\":\\"123\\",\\"app_id\\":\\"123\\"}"`);
137
+ });
138
+ it('should fail invalid currency', async () => {
139
+ nock_1.default(conversionEventUrl).post('').reply(400, {});
140
+ const event = actions_core_1.createTestEvent({
141
+ ...testEvent,
142
+ properties: {
143
+ currency: 'Galleon'
144
+ }
145
+ });
146
+ await expect(testDestination.testAction('reportConversionEvent', {
147
+ event,
148
+ settings,
149
+ useDefaultMappings: true,
150
+ auth: {
151
+ accessToken,
152
+ refreshToken
153
+ },
154
+ mapping: {
155
+ event_type: 'PURCHASE',
156
+ event_conversion_type: 'WEB'
157
+ }
158
+ })).rejects.toThrowError('Galleon is not a valid currency code.');
159
+ });
160
+ it('should fail missing event conversion type', async () => {
161
+ nock_1.default(conversionEventUrl).post('').reply(400, {});
162
+ const event = actions_core_1.createTestEvent(testEvent);
163
+ await expect(testDestination.testAction('reportConversionEvent', {
164
+ event,
165
+ settings,
166
+ useDefaultMappings: true,
167
+ auth: {
168
+ accessToken,
169
+ refreshToken
170
+ },
171
+ mapping: {
172
+ event_type: 'PURCHASE'
173
+ }
174
+ })).rejects.toThrowError("The root value is missing the required field 'event_conversion_type'.");
175
+ });
176
+ it('should handle a custom event', async () => {
177
+ nock_1.default(conversionEventUrl).post('').reply(200, {});
178
+ const event = actions_core_1.createTestEvent({
179
+ ...testEvent,
180
+ event: 'CUSTOM_EVENT_5'
181
+ });
182
+ const responses = await testDestination.testAction('reportConversionEvent', {
183
+ event,
184
+ settings: {
185
+ snap_app_id: '123',
186
+ app_id: '123'
187
+ },
188
+ useDefaultMappings: true,
189
+ auth: {
190
+ accessToken,
191
+ refreshToken
192
+ },
193
+ mapping: {
194
+ event_type: { '@path': '$.event' },
195
+ event_conversion_type: 'MOBILE_APP'
196
+ }
197
+ });
198
+ expect(responses).not.toBeNull();
199
+ expect(responses[0].status).toBe(200);
200
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"event_type\\":\\"CUSTOM_EVENT_5\\",\\"event_conversion_type\\":\\"MOBILE_APP\\",\\"timestamp\\":1652368875449,\\"hashed_email\\":\\"cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9\\",\\"hashed_phone_number\\":\\"dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383\\",\\"user_agent\\":\\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\\",\\"hashed_ip_address\\":\\"838c4c2573848f58e74332341a7ca6bc5cd86a8aec7d644137d53b4d597f10f5\\",\\"price\\":15,\\"currency\\":\\"USD\\",\\"page_url\\":\\"https://segment.com/academy/\\",\\"snap_app_id\\":\\"123\\",\\"app_id\\":\\"123\\"}"`);
201
+ });
202
+ });
203
+ });
204
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/destinations/snap-conversions-api/_tests_/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface Settings {
2
+ pixel_id?: string;
3
+ snap_app_id?: string;
4
+ app_id?: string;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generated-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/snap-conversions-api/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { DestinationDefinition } from '@segment/actions-core';
2
+ import type { Settings } from './generated-types';
3
+ declare const destination: DestinationDefinition<Settings>;
4
+ export default destination;