@segment/action-destinations 3.192.1-staging.2 → 3.193.1-joe-sayan-testing.9

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 (74) hide show
  1. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js +1 -1
  2. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js.map +1 -1
  3. package/dist/destinations/engage/sendgrid/sendEmail/insertEmailPreviewText.js +2 -2
  4. package/dist/destinations/engage/sendgrid/sendEmail/insertEmailPreviewText.js.map +1 -1
  5. package/dist/destinations/engage/utils/EngageStats.js.map +1 -1
  6. package/dist/destinations/example/generated-types.d.ts +2 -0
  7. package/dist/destinations/example/generated-types.js.map +1 -0
  8. package/dist/destinations/fullstory/identifyUser/index.js +1 -1
  9. package/dist/destinations/fullstory/identifyUser/index.js.map +1 -1
  10. package/dist/destinations/fullstory/identifyUserV2/generated-types.d.ts +9 -0
  11. package/dist/destinations/fullstory/identifyUserV2/generated-types.js.map +1 -0
  12. package/dist/destinations/fullstory/identifyUserV2/index.d.ts +4 -0
  13. package/dist/destinations/fullstory/identifyUserV2/index.js +76 -0
  14. package/dist/destinations/fullstory/identifyUserV2/index.js.map +1 -0
  15. package/dist/destinations/fullstory/index.js +5 -1
  16. package/dist/destinations/fullstory/index.js.map +1 -1
  17. package/dist/destinations/fullstory/request-params.d.ts +9 -0
  18. package/dist/destinations/fullstory/request-params.js +56 -3
  19. package/dist/destinations/fullstory/request-params.js.map +1 -1
  20. package/dist/destinations/fullstory/trackEvent/index.js +1 -1
  21. package/dist/destinations/fullstory/trackEvent/index.js.map +1 -1
  22. package/dist/destinations/fullstory/trackEventV2/generated-types.d.ts +10 -0
  23. package/dist/destinations/fullstory/trackEventV2/generated-types.js +3 -0
  24. package/dist/destinations/fullstory/trackEventV2/generated-types.js.map +1 -0
  25. package/dist/destinations/{liveramp-audiences/audienceEnteredSftp → fullstory/trackEventV2}/index.d.ts +1 -1
  26. package/dist/destinations/fullstory/trackEventV2/index.js +79 -0
  27. package/dist/destinations/fullstory/trackEventV2/index.js.map +1 -0
  28. package/dist/destinations/fullstory/vars.d.ts +1 -0
  29. package/dist/destinations/fullstory/vars.js +1 -1
  30. package/dist/destinations/fullstory/vars.js.map +1 -1
  31. package/dist/destinations/linkedin-audiences/constants.d.ts +1 -1
  32. package/dist/destinations/linkedin-audiences/constants.js +1 -1
  33. package/dist/destinations/listrak/updateEmailContactProfileFields/index.js.map +1 -1
  34. package/dist/destinations/liveramp-audiences/{audienceEnteredSftp → audienceEntered}/generated-types.d.ts +0 -3
  35. package/dist/destinations/liveramp-audiences/audienceEntered/generated-types.js +3 -0
  36. package/dist/destinations/liveramp-audiences/{audienceEnteredS3 → audienceEntered}/generated-types.js.map +1 -1
  37. package/dist/destinations/liveramp-audiences/{audienceEnteredSftp → audienceEntered}/index.js +27 -28
  38. package/dist/destinations/liveramp-audiences/audienceEntered/index.js.map +1 -0
  39. package/dist/destinations/liveramp-audiences/audienceEntered/s3.d.ts +6 -0
  40. package/dist/destinations/liveramp-audiences/{audienceEnteredS3 → audienceEntered}/s3.js +7 -7
  41. package/dist/destinations/liveramp-audiences/audienceEntered/s3.js.map +1 -0
  42. package/dist/destinations/liveramp-audiences/audienceEntered/sftp.d.ts +7 -0
  43. package/dist/destinations/liveramp-audiences/{audienceEnteredSftp → audienceEntered}/sftp.js +14 -14
  44. package/dist/destinations/liveramp-audiences/audienceEntered/sftp.js.map +1 -0
  45. package/dist/destinations/liveramp-audiences/generated-types.d.ts +8 -0
  46. package/dist/destinations/liveramp-audiences/index.js +56 -4
  47. package/dist/destinations/liveramp-audiences/index.js.map +1 -1
  48. package/dist/destinations/liveramp-audiences/operations.d.ts +1 -1
  49. package/dist/destinations/liveramp-audiences/operations.js +13 -25
  50. package/dist/destinations/liveramp-audiences/operations.js.map +1 -1
  51. package/dist/destinations/m3ter/auth.js.map +1 -1
  52. package/dist/destinations/m3ter/submitMeasurements/index.js +3 -3
  53. package/dist/destinations/m3ter/submitMeasurements/index.js.map +1 -1
  54. package/dist/destinations/playerzero-cloud/identifyUser/index.js +3 -3
  55. package/dist/destinations/the-trade-desk-crm/awsClient.d.ts +18 -0
  56. package/dist/destinations/the-trade-desk-crm/awsClient.js +78 -0
  57. package/dist/destinations/the-trade-desk-crm/awsClient.js.map +1 -0
  58. package/dist/destinations/the-trade-desk-crm/functions.d.ts +5 -2
  59. package/dist/destinations/the-trade-desk-crm/functions.js +17 -29
  60. package/dist/destinations/the-trade-desk-crm/functions.js.map +1 -1
  61. package/dist/destinations/the-trade-desk-crm/index.js +1 -1
  62. package/package.json +6 -4
  63. package/dist/destinations/liveramp-audiences/audienceEnteredS3/generated-types.d.ts +0 -17
  64. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js +0 -98
  65. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js.map +0 -1
  66. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.d.ts +0 -6
  67. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.js.map +0 -1
  68. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/generated-types.js.map +0 -1
  69. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js.map +0 -1
  70. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/sftp.d.ts +0 -7
  71. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/sftp.js.map +0 -1
  72. /package/dist/destinations/{liveramp-audiences/audienceEnteredS3 → example}/generated-types.js +0 -0
  73. /package/dist/destinations/{liveramp-audiences/audienceEnteredSftp → fullstory/identifyUserV2}/generated-types.js +0 -0
  74. /package/dist/destinations/liveramp-audiences/{audienceEnteredS3 → audienceEntered}/index.d.ts +0 -0
@@ -1,30 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const actions_core_1 = require("@segment/actions-core");
4
+ const s3_1 = require("./s3");
4
5
  const sftp_1 = require("./sftp");
5
6
  const operations_1 = require("../operations");
6
7
  const action = {
7
- title: 'Audience Entered (SFTP)',
8
- description: 'Uploads audience membership data to a file through SFTP for LiveRamp ingestion.',
8
+ title: 'Audience Entered',
9
+ description: 'Uploads audience membership data to a file for LiveRamp ingestion.',
9
10
  defaultSubscription: 'event = "Audience Entered"',
10
11
  fields: {
11
- sftp_username: {
12
- label: 'Username',
13
- description: 'User credentials for establishing an SFTP connection with LiveRamp.',
14
- type: 'string'
15
- },
16
- sftp_password: {
17
- label: 'Password',
18
- description: 'User credentials for establishing an SFTP connection with LiveRamp.',
19
- type: 'password'
20
- },
21
- sftp_folder_path: {
22
- label: 'Folder Path',
23
- description: 'Path within the LiveRamp SFTP server to upload the files to. This path must exist and all subfolders must be pre-created.',
24
- type: 'string',
25
- default: '/uploads/audience_name/',
26
- format: 'uri-reference'
27
- },
28
12
  audience_key: {
29
13
  label: 'Audience Key',
30
14
  description: 'Identifies the user within the entered audience.',
@@ -72,25 +56,40 @@ const action = {
72
56
  description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower.',
73
57
  type: 'number',
74
58
  required: false,
75
- default: 50000
59
+ default: 1000000
76
60
  }
77
61
  },
78
- perform: async (_, { payload }) => {
79
- return processData([payload]);
62
+ perform: async (request, { settings, payload }) => {
63
+ return processData(request, settings, [payload]);
80
64
  },
81
- performBatch: (_, { payload }) => {
82
- return processData(payload);
65
+ performBatch: (request, { settings, payload }) => {
66
+ return processData(request, settings, payload);
83
67
  }
84
68
  };
85
- async function processData(payloads) {
69
+ async function processData(request, settings, payloads) {
86
70
  const LIVERAMP_MIN_RECORD_COUNT = 25;
87
71
  if (payloads.length < LIVERAMP_MIN_RECORD_COUNT) {
88
72
  throw new actions_core_1.PayloadValidationError(`received payload count below LiveRamp's ingestion limits. expected: >=${LIVERAMP_MIN_RECORD_COUNT} actual: ${payloads.length}`);
89
73
  }
90
- sftp_1.validateSFTP(payloads[0]);
74
+ switch (settings.upload_mode) {
75
+ case 'S3':
76
+ s3_1.validateS3(settings);
77
+ break;
78
+ case 'SFTP':
79
+ sftp_1.validateSFTP(settings);
80
+ break;
81
+ default:
82
+ throw new actions_core_1.InvalidAuthenticationError(`Unexpected upload mode: ${settings.upload_mode}`);
83
+ }
91
84
  const { filename, fileContent } = operations_1.generateFile(payloads);
92
- const sftpClient = new sftp_1.Client();
93
- return sftp_1.uploadSFTP(sftpClient, payloads[0], filename, fileContent);
85
+ switch (settings.upload_mode) {
86
+ case 'S3':
87
+ return s3_1.uploadS3(settings, filename, fileContent, request);
88
+ case 'SFTP': {
89
+ const sftpClient = new sftp_1.Client();
90
+ return sftp_1.uploadSFTP(sftpClient, settings, filename, fileContent);
91
+ }
92
+ }
94
93
  }
95
94
  exports.default = action;
96
95
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEntered/index.ts"],"names":[],"mappings":";;AAAA,wDAK8B;AAG9B,6BAA2C;AAC3C,iCAAuE;AACvE,8CAA4C;AAE5C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,oEAAoE;IACjF,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,YAAY,EAAE;YACZ,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,kDAAkD;YAC/D,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;SACjC;QACD,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,mEAAmE;YAChF,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,eAAe,EAAE,eAAe;SACjC;QACD,wBAAwB,EAAE;YACxB,KAAK,EAAE,0BAA0B;YACjC,WAAW,EAAE,gFAAgF;YAC7F,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,eAAe,EAAE,eAAe;SACjC;QACD,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,0DAA0D;YACvE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,GAAG;SACb;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE,WAAW,EAAE,mDAAmD,EAAE;SAC9E;QACD,eAAe,EAAE;YACf,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,uFAAuF;YACpG,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,qFAAqF;YAClG,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,OAAO;SACjB;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC;IACD,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/C,OAAO,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;CACF,CAAA;AAED,KAAK,UAAU,WAAW,CAAC,OAAsB,EAAE,QAAkB,EAAE,QAAmB;IACxF,MAAM,yBAAyB,GAAG,EAAE,CAAA;IACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,yBAAyB,EAAE;QAC/C,MAAM,IAAI,qCAAsB,CAC9B,yEAAyE,yBAAyB,YAAY,QAAQ,CAAC,MAAM,EAAE,CAChI,CAAA;KACF;IAED,QAAQ,QAAQ,CAAC,WAAW,EAAE;QAC5B,KAAK,IAAI;YACP,eAAU,CAAC,QAAQ,CAAC,CAAA;YACpB,MAAK;QACP,KAAK,MAAM;YACT,mBAAY,CAAC,QAAQ,CAAC,CAAA;YACtB,MAAK;QACP;YACE,MAAM,IAAI,yCAA0B,CAAC,2BAA2B,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;KAC1F;IAED,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,yBAAY,CAAC,QAAQ,CAAC,CAAA;IAExD,QAAQ,QAAQ,CAAC,WAAW,EAAE;QAC5B,KAAK,IAAI;YACP,OAAO,aAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;QAC3D,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,UAAU,GAAG,IAAI,aAAU,EAAE,CAAA;YACnC,OAAO,iBAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;SAC/D;KACF;AACH,CAAC;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ import { ModifiedResponse, RequestOptions } from '@segment/actions-core';
3
+ import { Settings } from '../generated-types';
4
+ declare function validateS3(settings: Settings): void;
5
+ declare function uploadS3(settings: Settings, filename: string, fileContent: Buffer, request: <Data = unknown>(url: string, options?: RequestOptions) => Promise<ModifiedResponse<Data>>): Promise<ModifiedResponse<unknown>>;
6
+ export { validateS3, uploadS3 };
@@ -6,24 +6,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.uploadS3 = exports.validateS3 = void 0;
7
7
  const s3_1 = __importDefault(require("../../../lib/AWS/s3"));
8
8
  const actions_core_1 = require("@segment/actions-core");
9
- function validateS3(payload) {
10
- if (!payload.s3_aws_access_key) {
9
+ function validateS3(settings) {
10
+ if (!settings.s3_aws_access_key) {
11
11
  throw new actions_core_1.InvalidAuthenticationError('Selected S3 upload mode, but missing AWS Access Key');
12
12
  }
13
- if (!payload.s3_aws_secret_key) {
13
+ if (!settings.s3_aws_secret_key) {
14
14
  throw new actions_core_1.InvalidAuthenticationError('Selected S3 upload mode, but missing AWS Secret Key');
15
15
  }
16
- if (!payload.s3_aws_bucket_name) {
16
+ if (!settings.s3_aws_bucket_name) {
17
17
  throw new actions_core_1.InvalidAuthenticationError('Selected S3 upload mode, but missing AWS S3 bucket name');
18
18
  }
19
- if (!payload.s3_aws_region) {
19
+ if (!settings.s3_aws_region) {
20
20
  throw new actions_core_1.InvalidAuthenticationError('Selected S3 upload mode, but missing AWS Region');
21
21
  }
22
22
  }
23
23
  exports.validateS3 = validateS3;
24
- async function uploadS3(payload, filename, fileContent, request) {
24
+ async function uploadS3(settings, filename, fileContent, request) {
25
25
  const method = 'PUT';
26
- const opts = await s3_1.default(payload.s3_aws_bucket_name, payload.s3_aws_region, filename, method, fileContent, payload.s3_aws_access_key, payload.s3_aws_secret_key);
26
+ const opts = await s3_1.default(settings.s3_aws_bucket_name, settings.s3_aws_region, filename, method, fileContent, settings.s3_aws_access_key, settings.s3_aws_secret_key);
27
27
  if (!opts.headers || !opts.method || !opts.host || !opts.path) {
28
28
  throw new actions_core_1.InvalidAuthenticationError('Unable to generate signature header for AWS S3 request.');
29
29
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEntered/s3.ts"],"names":[],"mappings":";;;;;;AAAA,6DAA0D;AAC1D,wDAAoG;AAGpG,SAAS,UAAU,CAAC,QAAkB;IACpC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QAC/B,MAAM,IAAI,yCAA0B,CAAC,qDAAqD,CAAC,CAAA;KAC5F;IAED,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QAC/B,MAAM,IAAI,yCAA0B,CAAC,qDAAqD,CAAC,CAAA;KAC5F;IAED,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;QAChC,MAAM,IAAI,yCAA0B,CAAC,yDAAyD,CAAC,CAAA;KAChG;IAED,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC3B,MAAM,IAAI,yCAA0B,CAAC,iDAAiD,CAAC,CAAA;KACxF;AACH,CAAC;AA6BQ,gCAAU;AA3BnB,KAAK,UAAU,QAAQ,CACrB,QAAkB,EAClB,QAAgB,EAChB,WAAmB,EACnB,OAAmG;IAEnG,MAAM,MAAM,GAAG,KAAK,CAAA;IACpB,MAAM,IAAI,GAAG,MAAM,YAAwB,CACzC,QAAQ,CAAC,kBAA4B,EACrC,QAAQ,CAAC,aAAuB,EAChC,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,CAAC,iBAA2B,EACpC,QAAQ,CAAC,iBAA2B,CACrC,CAAA;IACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAC7D,MAAM,IAAI,yCAA0B,CAAC,yDAAyD,CAAC,CAAA;KAChG;IAED,OAAO,MAAM,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;QACxD,OAAO,EAAE,IAAI,CAAC,OAAiC;QAC/C,MAAM;QACN,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAA;AACJ,CAAC;AAEoB,4BAAQ"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import Client from 'ssh2-sftp-client';
3
+ import { Settings } from '../generated-types';
4
+ declare function validateSFTP(settings: Settings): void;
5
+ declare function uploadSFTP(sftp: Client, settings: Settings, filename: string, fileContent: Buffer): Promise<unknown>;
6
+ declare function testAuthenticationSFTP(sftp: Client, settings: Settings): Promise<unknown>;
7
+ export { validateSFTP, uploadSFTP, testAuthenticationSFTP, Client };
@@ -10,41 +10,41 @@ exports.Client = ssh2_sftp_client_1.default;
10
10
  const path_1 = __importDefault(require("path"));
11
11
  const LIVERAMP_SFTP_SERVER = 'files.liveramp.com';
12
12
  const LIVERAMP_SFTP_PORT = 22;
13
- function validateSFTP(payload) {
14
- if (!payload.sftp_username) {
13
+ function validateSFTP(settings) {
14
+ if (!settings.sftp_username) {
15
15
  throw new actions_core_1.InvalidAuthenticationError('Selected SFTP upload mode, but missing credentials (Username)');
16
16
  }
17
- if (!payload.sftp_password) {
17
+ if (!settings.sftp_password) {
18
18
  throw new actions_core_1.InvalidAuthenticationError('Selected SFTP upload mode, but missing credentials (Password)');
19
19
  }
20
- if (!payload.sftp_folder_path) {
20
+ if (!settings.sftp_folder_path) {
21
21
  throw new actions_core_1.InvalidAuthenticationError('Selected SFTP upload mode, but missing SFTP folder path.');
22
22
  }
23
23
  }
24
24
  exports.validateSFTP = validateSFTP;
25
- async function uploadSFTP(sftp, payload, filename, fileContent) {
26
- return doSFTP(sftp, payload, async (sftp) => {
27
- const targetPath = path_1.default.join(payload.sftp_folder_path, filename);
25
+ async function uploadSFTP(sftp, settings, filename, fileContent) {
26
+ return doSFTP(sftp, settings, async (sftp) => {
27
+ const targetPath = path_1.default.join(settings.sftp_folder_path, filename);
28
28
  return sftp.put(fileContent, targetPath);
29
29
  });
30
30
  }
31
31
  exports.uploadSFTP = uploadSFTP;
32
- async function doSFTP(sftp, payload, action) {
32
+ async function doSFTP(sftp, settings, action) {
33
33
  await sftp.connect({
34
34
  host: LIVERAMP_SFTP_SERVER,
35
35
  port: LIVERAMP_SFTP_PORT,
36
- username: payload.sftp_username,
37
- password: payload.sftp_password
36
+ username: settings.sftp_username,
37
+ password: settings.sftp_password
38
38
  });
39
39
  const retVal = await action(sftp);
40
40
  await sftp.end();
41
41
  return retVal;
42
42
  }
43
- async function testAuthenticationSFTP(sftp, payload) {
44
- return doSFTP(sftp, payload, async (sftp) => {
45
- return sftp.exists(payload.sftp_folder_path).then((fileType) => {
43
+ async function testAuthenticationSFTP(sftp, settings) {
44
+ return doSFTP(sftp, settings, async (sftp) => {
45
+ return sftp.exists(settings.sftp_folder_path).then((fileType) => {
46
46
  if (!fileType)
47
- throw new Error(`Could not find path: ${payload.sftp_folder_path}`);
47
+ throw new Error(`Could not find path: ${settings.sftp_folder_path}`);
48
48
  });
49
49
  });
50
50
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEntered/sftp.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAkE;AAClE,wEAAqC;AAiDsB,iBAjDpD,0BAAM,CAiDoD;AAhDjE,gDAAuB;AAGvB,MAAM,oBAAoB,GAAG,oBAAoB,CAAA;AACjD,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAE7B,SAAS,YAAY,CAAC,QAAkB;IACtC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC3B,MAAM,IAAI,yCAA0B,CAAC,+DAA+D,CAAC,CAAA;KACtG;IAED,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC3B,MAAM,IAAI,yCAA0B,CAAC,+DAA+D,CAAC,CAAA;KACtG;IAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;QAC9B,MAAM,IAAI,yCAA0B,CAAC,0DAA0D,CAAC,CAAA;KACjG;AACH,CAAC;AA8BQ,oCAAY;AA5BrB,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,QAAkB,EAAE,QAAgB,EAAE,WAAmB;IAC/F,OAAO,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAA0B,EAAE,QAAQ,CAAC,CAAA;QAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC;AAuBsB,gCAAU;AArBjC,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,QAAkB,EAAE,MAA4C;IAClG,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,QAAQ,CAAC,aAAa;QAChC,QAAQ,EAAE,QAAQ,CAAC,aAAa;KACjC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;IAChB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAY,EAAE,QAAkB;IACpE,OAAO,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxE,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAA;QACrF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAEkC,wDAAsB"}
@@ -1,4 +1,12 @@
1
1
  export interface Settings {
2
+ upload_mode: string;
3
+ s3_aws_access_key?: string;
4
+ s3_aws_secret_key?: string;
5
+ s3_aws_bucket_name?: string;
6
+ s3_aws_region?: string;
7
+ sftp_username?: string;
8
+ sftp_password?: string;
9
+ sftp_folder_path?: string;
2
10
  __segment_internal_engage_force_full_sync: boolean;
3
11
  __segment_internal_engage_batch_sync: boolean;
4
12
  }
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const audienceEnteredS3_1 = __importDefault(require("./audienceEnteredS3"));
7
- const audienceEnteredSftp_1 = __importDefault(require("./audienceEnteredSftp"));
6
+ const audienceEntered_1 = __importDefault(require("./audienceEntered"));
7
+ const sftp_1 = require("./audienceEntered/sftp");
8
8
  const destination = {
9
9
  name: 'Liveramp Audiences',
10
10
  slug: 'actions-liveramp-audiences',
@@ -12,6 +12,53 @@ const destination = {
12
12
  authentication: {
13
13
  scheme: 'custom',
14
14
  fields: {
15
+ upload_mode: {
16
+ label: 'Upload Mode',
17
+ description: 'Choose delivery route for the files',
18
+ type: 'string',
19
+ required: true,
20
+ default: 'S3',
21
+ choices: [
22
+ { value: 'S3', label: 'S3' },
23
+ { value: 'SFTP', label: 'SFTP' }
24
+ ]
25
+ },
26
+ s3_aws_access_key: {
27
+ label: 'AWS Access Key ID (S3 only)',
28
+ description: 'IAM user credentials with write permissions to the S3 bucket.',
29
+ type: 'string'
30
+ },
31
+ s3_aws_secret_key: {
32
+ label: 'AWS Secret Access Key (S3 only)',
33
+ description: 'IAM user credentials with write permissions to the S3 bucket.',
34
+ type: 'password'
35
+ },
36
+ s3_aws_bucket_name: {
37
+ label: 'AWS Bucket Name (S3 only)',
38
+ description: 'Name of the S3 bucket where the files will be uploaded to.',
39
+ type: 'string'
40
+ },
41
+ s3_aws_region: {
42
+ label: 'AWS Region (S3 only)',
43
+ description: 'Region where the S3 bucket is hosted.',
44
+ type: 'string'
45
+ },
46
+ sftp_username: {
47
+ label: 'Username (SFTP only)',
48
+ description: 'User credentials for establishing an SFTP connection with LiveRamp.',
49
+ type: 'string'
50
+ },
51
+ sftp_password: {
52
+ label: 'Password (SFTP only)',
53
+ description: 'User credentials for establishing an SFTP connection with LiveRamp.',
54
+ type: 'password'
55
+ },
56
+ sftp_folder_path: {
57
+ label: 'Folder Path (SFTP only)',
58
+ description: 'Path within the LiveRamp SFTP server to upload the files to. This path must exist and all subfolders must be pre-created.',
59
+ type: 'string',
60
+ format: 'uri-reference'
61
+ },
15
62
  __segment_internal_engage_force_full_sync: {
16
63
  label: 'Force Full Sync',
17
64
  description: '',
@@ -26,11 +73,16 @@ const destination = {
26
73
  required: true,
27
74
  default: true
28
75
  }
76
+ },
77
+ testAuthentication: async (_, { settings }) => {
78
+ if (settings.upload_mode == 'SFTP') {
79
+ const sftpClient = new sftp_1.Client();
80
+ return await sftp_1.testAuthenticationSFTP(sftpClient, settings);
81
+ }
29
82
  }
30
83
  },
31
84
  actions: {
32
- audienceEnteredS3: audienceEnteredS3_1.default,
33
- audienceEnteredSFTP: audienceEnteredSftp_1.default
85
+ audienceEntered: audienceEntered_1.default
34
86
  }
35
87
  };
36
88
  exports.default = destination;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/liveramp-audiences/index.ts"],"names":[],"mappings":";;;;;AAGA,4EAAmD;AACnD,gFAAuD;AAEvD,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,yCAAyC,EAAE;gBACzC,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;aACd;YACD,oCAAoC,EAAE;gBACpC,KAAK,EAAE,6BAA6B;gBACpC,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;aACd;SACF;KACF;IACD,OAAO,EAAE;QACP,iBAAiB,EAAjB,2BAAiB;QACjB,mBAAmB,EAAnB,6BAAmB;KACpB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/liveramp-audiences/index.ts"],"names":[],"mappings":";;;;;AAGA,wEAA+C;AAC/C,iDAAqF;AAErF,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,WAAW,EAAE;gBACX,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,qCAAqC;gBAClD,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;oBAC5B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;iBACjC;aACF;YACD,iBAAiB,EAAE;gBACjB,KAAK,EAAE,6BAA6B;gBACpC,WAAW,EAAE,+DAA+D;gBAC5E,IAAI,EAAE,QAAQ;aACf;YACD,iBAAiB,EAAE;gBACjB,KAAK,EAAE,iCAAiC;gBACxC,WAAW,EAAE,+DAA+D;gBAC5E,IAAI,EAAE,UAAU;aACjB;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,2BAA2B;gBAClC,WAAW,EAAE,4DAA4D;gBACzE,IAAI,EAAE,QAAQ;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,uCAAuC;gBACpD,IAAI,EAAE,QAAQ;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,qEAAqE;gBAClF,IAAI,EAAE,QAAQ;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,qEAAqE;gBAClF,IAAI,EAAE,UAAU;aACjB;YACD,gBAAgB,EAAE;gBAChB,KAAK,EAAE,yBAAyB;gBAChC,WAAW,EACT,2HAA2H;gBAC7H,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,eAAe;aACxB;YACD,yCAAyC,EAAE;gBACzC,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;aACd;YACD,oCAAoC,EAAE;gBACpC,KAAK,EAAE,6BAA6B;gBACpC,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;aACd;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAE5C,IAAI,QAAQ,CAAC,WAAW,IAAI,MAAM,EAAE;gBAClC,MAAM,UAAU,GAAG,IAAI,aAAU,EAAE,CAAA;gBACnC,OAAO,MAAM,6BAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;aAC1D;QACH,CAAC;KACF;IACD,OAAO,EAAE;QACP,eAAe,EAAf,yBAAe;KAChB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import type { Payload } from './audienceEnteredS3/generated-types';
2
+ import type { Payload } from './audienceEntered/generated-types';
3
3
  declare function generateFile(payloads: Payload[]): {
4
4
  filename: string;
5
5
  fileContent: Buffer;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.enquoteIdentifier = exports.generateFile = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  function generateFile(payloads) {
6
+ const rows = [];
6
7
  const headers = ['audience_key'];
7
8
  if (payloads[0].identifier_data) {
8
9
  for (const identifier of Object.getOwnPropertyNames(payloads[0].identifier_data)) {
@@ -14,44 +15,31 @@ function generateFile(payloads) {
14
15
  headers.push(identifier);
15
16
  }
16
17
  }
17
- let rows = Buffer.from(headers.join(payloads[0].delimiter) + '\n');
18
- const hashOrCache = createHashOrCache();
19
- for (let i = 0; i < payloads.length; i++) {
20
- const payload = payloads[i];
21
- const row = [enquoteIdentifier(payload.audience_key)];
18
+ rows.push(headers.join(payloads[0].delimiter));
19
+ for (const payload of payloads) {
20
+ const row = [];
21
+ row.push(payload.audience_key);
22
22
  if (payload.identifier_data) {
23
- for (const key in payload.identifier_data) {
24
- if (Object.prototype.hasOwnProperty.call(payload.identifier_data, key)) {
25
- row.push(enquoteIdentifier(String(payload.identifier_data[key])));
26
- }
23
+ for (const identifier of Object.getOwnPropertyNames(payload.identifier_data)) {
24
+ row.push(payload.identifier_data[identifier]);
27
25
  }
28
26
  }
29
27
  if (payload.unhashed_identifier_data) {
30
- for (const key in payload.unhashed_identifier_data) {
31
- if (Object.prototype.hasOwnProperty.call(payload.unhashed_identifier_data, key)) {
32
- row.push(`"${hashOrCache(String(payload.unhashed_identifier_data[key]))}"`);
33
- }
28
+ for (const identifier of Object.getOwnPropertyNames(payload.unhashed_identifier_data)) {
29
+ row.push(hash(payload.unhashed_identifier_data[identifier]));
34
30
  }
35
31
  }
36
- rows = Buffer.concat([rows, Buffer.from(row.join(payload.delimiter) + (i + 1 === payloads.length ? '' : '\n'))]);
32
+ rows.push(row.map(enquoteIdentifier).join(payload.delimiter));
37
33
  }
38
34
  const filename = payloads[0].filename;
39
- return { filename, fileContent: rows };
35
+ const fileContent = Buffer.from(rows.join('\n'));
36
+ return { filename, fileContent };
40
37
  }
41
38
  exports.generateFile = generateFile;
42
39
  function enquoteIdentifier(identifier) {
43
- return `"${String(identifier).replace(/"/g, '""')}"`;
40
+ return `"${identifier.replace(/"/g, '""')}"`;
44
41
  }
45
42
  exports.enquoteIdentifier = enquoteIdentifier;
46
- function createHashOrCache() {
47
- const cache = new Map();
48
- return function hashOrCache(value) {
49
- if (!cache.has(value)) {
50
- cache.set(value, hash(value));
51
- }
52
- return cache.get(value);
53
- };
54
- }
55
43
  const hash = (value) => {
56
44
  const hash = crypto_1.createHash('sha256');
57
45
  hash.update(value);
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/destinations/liveramp-audiences/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/destinations/liveramp-audiences/operations.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAOnC,SAAS,YAAY,CAAC,QAAmB;IACvC,MAAM,IAAI,GAAG,EAAE,CAAA;IACf,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;IAGhC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE;QAC/B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE;YAChF,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SACzB;KACF;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE;QACxC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE;YACzF,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SACzB;KACF;IACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAG9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,GAAG,GAAG,EAAE,CAAA;QACd,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC9B,IAAI,OAAO,CAAC,eAAe,EAAE;YAC3B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAC5E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAW,CAAC,CAAA;aACxD;SACF;QAED,IAAI,OAAO,CAAC,wBAAwB,EAAE;YACpC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE;gBACrF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAW,CAAC,CAAC,CAAA;aACvE;SACF;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;KAC9D;IAGD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IACrC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAEhD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;AAClC,CAAC;AAoBQ,oCAAY;AAVrB,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAA;AAC9C,CAAC;AAQsB,8CAAiB;AANxC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE;IACrC,MAAM,IAAI,GAAG,mBAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/destinations/m3ter/auth.ts"],"names":[],"mappings":";;AAAA,2CAA4C;AAS7B,KAAK,UAAU,cAAc,CAC1C,OAAsB,EACtB,WAAmB,EACnB,SAAiB;IAEjB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAsB,GAAG,0BAAc,cAAc,EAAE;QAC9E,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE;YACP,aAAa,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACvF,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAA;IACF,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,CAAA;AAC9B,CAAC;AAdD,iCAcC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/destinations/m3ter/auth.ts"],"names":[],"mappings":";;AAAA,2CAA4C;AAS7B,KAAK,UAAU,cAAc,CAAC,OAAsB,EAAE,WAAmB,EAAE,SAAiB;IACzG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAsB,GAAG,0BAAc,cAAc,EAAE;QAC9E,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE;YACP,aAAa,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACvF,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAA;IACF,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,CAAA;AAC9B,CAAC;AAVD,iCAUC"}
@@ -67,7 +67,7 @@ const action = {
67
67
  metadata: {
68
68
  label: 'Metadata',
69
69
  type: 'object',
70
- description: "Non-numeric metadata values for measurements using high-cardinality fields that you don't intend to segment when you aggregate the data",
70
+ description: 'Non-numeric metadata values for measurements using high-cardinality fields that you don\'t intend to segment when you aggregate the data',
71
71
  required: false
72
72
  },
73
73
  measure: {
@@ -105,9 +105,9 @@ const action = {
105
105
  };
106
106
  async function submitMeasurements(request, orgId, payload) {
107
107
  const batches = [...limitBatch(payload)];
108
- const requests = batches.map((batch) => request(`${constants_1.M3TER_INGEST_API}/organizations/${orgId}/measurements`, {
108
+ const requests = batches.map(batch => request(`${constants_1.M3TER_INGEST_API}/organizations/${orgId}/measurements`, {
109
109
  method: 'post',
110
- json: { measurements: batch }
110
+ json: { 'measurements': batch }
111
111
  }));
112
112
  return Promise.all(requests);
113
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/m3ter/submitMeasurements/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/m3ter/submitMeasurements/index.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,11 @@ const action = {
6
6
  description: 'Forward identify, group, and alias events from Segment to PlayerZero.',
7
7
  fields: {},
8
8
  perform: (request, data) => {
9
- return util_1.send(request, data.settings, [data.payload], 'identity');
9
+ return util_1.send(request, data.settings, [data.payload], "identity");
10
10
  },
11
11
  performBatch: async (request, data) => {
12
- return util_1.send(request, data.settings, data.payload, 'identity');
13
- }
12
+ return util_1.send(request, data.settings, data.payload, "identity");
13
+ },
14
14
  };
15
15
  exports.default = action;
16
16
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,18 @@
1
+ interface SendToAWSRequest {
2
+ TDDAuthToken: string;
3
+ AdvertiserId: string;
4
+ CrmDataId: string;
5
+ SegmentName: string;
6
+ UsersFormatted: string;
7
+ DropOptions: {
8
+ PiiType: string;
9
+ MergeMode: string;
10
+ TtlInMinutes?: number;
11
+ RetentionEnabled?: boolean;
12
+ };
13
+ }
14
+ export declare const sendEventToAWS: (request: SendToAWSRequest) => Promise<{
15
+ S3Response: import("@aws-sdk/client-s3").PutObjectCommandOutput;
16
+ SQSResponse: import("@aws-sdk/client-sqs").SendMessageCommandOutput;
17
+ }>;
18
+ export {};
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendEventToAWS = void 0;
4
+ const client_s3_1 = require("@aws-sdk/client-s3");
5
+ const client_sqs_1 = require("@aws-sdk/client-sqs");
6
+ const uuid_1 = require("@lukeed/uuid");
7
+ const stream_1 = require("stream");
8
+ const NODE_ENV = process.env['NODE_ENV'] || `stage`;
9
+ const AWS_REGION = process.env['AWS_REGION'] || `us-west-2`;
10
+ const AWS_ACCOUNT_ID = parseARN(process.env['AWS_ROLE_ARN']) || `1234567890`;
11
+ const ACTION_SLUG = `actions-the-trade-desk-crm`;
12
+ const S3ClientInstance = new client_s3_1.S3Client({ region: AWS_REGION });
13
+ const SQSClientInstance = new client_sqs_1.SQSClient({ region: AWS_REGION });
14
+ const S3_BUCKET_NAME = `integrations-outbound-event-store-${NODE_ENV}-${AWS_REGION}`;
15
+ const SQS_QUEUE_NAME = `integrations-outbound-event-aggregation-queue-${NODE_ENV}-${AWS_REGION}.fifo`;
16
+ const SQS_QUEUE_URL = `https://sqs.${AWS_REGION}.amazonaws.com/${AWS_ACCOUNT_ID}/${SQS_QUEUE_NAME}`;
17
+ const sendEventToAWS = async (request) => {
18
+ const uuidValue = uuid_1.v4();
19
+ const S3FilePath = `${ACTION_SLUG}/${request.AdvertiserId}-${request.CrmDataId}-${uuidValue}.txt`;
20
+ const MessageDeduplicationId = `${request.AdvertiserId}-${request.CrmDataId}-${uuidValue}`;
21
+ const SQSPayload = {
22
+ ActionSlug: ACTION_SLUG,
23
+ S3FilePath,
24
+ DestinationPayload: {
25
+ TDDAuthToken: request.TDDAuthToken,
26
+ AdvertiserId: request.AdvertiserId,
27
+ SegmentName: request.SegmentName,
28
+ CrmDataId: request.CrmDataId,
29
+ DropOptions: request.DropOptions,
30
+ RequeueCount: 0
31
+ }
32
+ };
33
+ const S3PayloadData = new stream_1.Readable();
34
+ S3PayloadData.push(request.UsersFormatted);
35
+ S3PayloadData.push(null);
36
+ const S3Response = await S3ClientInstance.send(new client_s3_1.PutObjectCommand({
37
+ Bucket: S3_BUCKET_NAME,
38
+ Key: S3FilePath,
39
+ Body: S3PayloadData,
40
+ ContentType: 'text/plain',
41
+ ContentLength: S3PayloadData.readableLength
42
+ }));
43
+ const MessageAttributes = {
44
+ ActionSlug: {
45
+ DataType: 'String',
46
+ StringValue: ACTION_SLUG
47
+ },
48
+ EventUUID: {
49
+ DataType: 'String',
50
+ StringValue: uuidValue
51
+ }
52
+ };
53
+ const SQSResponse = await SQSClientInstance.send(new client_sqs_1.SendMessageCommand({
54
+ QueueUrl: SQS_QUEUE_URL,
55
+ MessageBody: JSON.stringify(SQSPayload),
56
+ MessageGroupId: request.CrmDataId,
57
+ MessageDeduplicationId,
58
+ MessageAttributes
59
+ }));
60
+ return {
61
+ S3Response,
62
+ SQSResponse
63
+ };
64
+ };
65
+ exports.sendEventToAWS = sendEventToAWS;
66
+ function parseARN(awsARN) {
67
+ if (awsARN === undefined) {
68
+ return '';
69
+ }
70
+ const regexParse = /arn:aws:iam[:]+(\d+):role\/[\da-z-.]+/.exec(awsARN);
71
+ if (regexParse && regexParse[1]) {
72
+ return regexParse[1];
73
+ }
74
+ else {
75
+ return '';
76
+ }
77
+ }
78
+ //# sourceMappingURL=awsClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awsClient.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/awsClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { RequestClient, ModifiedResponse } from '@segment/actions-core';
1
+ import { RequestClient } from '@segment/actions-core';
2
2
  import { Settings } from './generated-types';
3
3
  import { Payload } from './syncAudience/generated-types';
4
4
  export interface DROP_ENDPOINT_API_RESPONSE {
@@ -26,5 +26,8 @@ export interface CREATE_API_RESPONSE {
26
26
  CrmDataId: string;
27
27
  FirstPartyDataId: number;
28
28
  }
29
- export declare function processPayload(request: RequestClient, settings: Settings, payloads: Payload[]): Promise<ModifiedResponse<unknown>>;
29
+ export declare function processPayload(request: RequestClient, settings: Settings, payloads: Payload[]): Promise<{
30
+ S3Response: import("@aws-sdk/client-s3").PutObjectCommandOutput;
31
+ SQSResponse: import("@aws-sdk/client-sqs").SendMessageCommandOutput;
32
+ }>;
30
33
  export declare const hash: (value: string) => string;