@segment/action-destinations 3.196.0 → 3.198.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/linkedin-audiences/api/index.js +2 -2
  2. package/dist/destinations/linkedin-audiences/api/index.js.map +1 -1
  3. package/dist/destinations/linkedin-audiences/updateAudience/generated-types.d.ts +1 -0
  4. package/dist/destinations/linkedin-audiences/updateAudience/index.js +24 -3
  5. package/dist/destinations/linkedin-audiences/updateAudience/index.js.map +1 -1
  6. package/dist/destinations/liveramp-audiences/audienceEnteredS3/generated-types.d.ts +17 -0
  7. package/dist/destinations/liveramp-audiences/{audienceEntered → audienceEnteredS3}/generated-types.js.map +1 -1
  8. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js +98 -0
  9. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js.map +1 -0
  10. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.d.ts +6 -0
  11. package/dist/destinations/liveramp-audiences/{audienceEntered → audienceEnteredS3}/s3.js +7 -7
  12. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.js.map +1 -0
  13. package/dist/destinations/liveramp-audiences/audienceEnteredSFTP.types.d.ts +16 -0
  14. package/dist/destinations/liveramp-audiences/audienceEnteredSFTP.types.js +3 -0
  15. package/dist/destinations/liveramp-audiences/audienceEnteredSFTP.types.js.map +1 -0
  16. package/dist/destinations/liveramp-audiences/{audienceEntered → audienceEnteredSftp}/generated-types.d.ts +3 -0
  17. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/generated-types.js +3 -0
  18. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/generated-types.js.map +1 -0
  19. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.d.ts +5 -0
  20. package/dist/destinations/liveramp-audiences/{audienceEntered → audienceEnteredSftp}/index.js +28 -27
  21. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js.map +1 -0
  22. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/sftp.d.ts +7 -0
  23. package/dist/destinations/liveramp-audiences/{audienceEntered → audienceEnteredSftp}/sftp.js +14 -14
  24. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/sftp.js.map +1 -0
  25. package/dist/destinations/liveramp-audiences/generated-types.d.ts +0 -8
  26. package/dist/destinations/liveramp-audiences/index.js +4 -56
  27. package/dist/destinations/liveramp-audiences/index.js.map +1 -1
  28. package/dist/destinations/liveramp-audiences/operations.d.ts +1 -1
  29. package/dist/destinations/pinterest-conversions/pinterest-capi-custom-data.js +7 -2
  30. package/dist/destinations/pinterest-conversions/pinterest-capi-custom-data.js.map +1 -1
  31. package/dist/destinations/pinterest-conversions/reportConversionEvent/generated-types.d.ts +1 -0
  32. package/dist/destinations/the-trade-desk-crm/awsClient.d.ts +16 -0
  33. package/dist/destinations/the-trade-desk-crm/awsClient.js +74 -0
  34. package/dist/destinations/the-trade-desk-crm/awsClient.js.map +1 -0
  35. package/dist/destinations/the-trade-desk-crm/functions.d.ts +9 -1
  36. package/dist/destinations/the-trade-desk-crm/functions.js +51 -34
  37. package/dist/destinations/the-trade-desk-crm/functions.js.map +1 -1
  38. package/dist/destinations/the-trade-desk-crm/properties.d.ts +1 -0
  39. package/dist/destinations/the-trade-desk-crm/properties.js +18 -1
  40. package/dist/destinations/the-trade-desk-crm/properties.js.map +1 -1
  41. package/dist/destinations/the-trade-desk-crm/syncAudience/generated-types.d.ts +1 -0
  42. package/dist/destinations/the-trade-desk-crm/syncAudience/index.js +15 -4
  43. package/dist/destinations/the-trade-desk-crm/syncAudience/index.js.map +1 -1
  44. package/dist/lib/AWS/sts.d.ts +7 -0
  45. package/dist/lib/AWS/sts.js +57 -0
  46. package/dist/lib/AWS/sts.js.map +1 -0
  47. package/package.json +2 -2
  48. package/dist/destinations/liveramp-audiences/audienceEntered/index.js.map +0 -1
  49. package/dist/destinations/liveramp-audiences/audienceEntered/s3.d.ts +0 -6
  50. package/dist/destinations/liveramp-audiences/audienceEntered/s3.js.map +0 -1
  51. package/dist/destinations/liveramp-audiences/audienceEntered/sftp.d.ts +0 -7
  52. package/dist/destinations/liveramp-audiences/audienceEntered/sftp.js.map +0 -1
  53. /package/dist/destinations/liveramp-audiences/{audienceEntered → audienceEnteredS3}/generated-types.js +0 -0
  54. /package/dist/destinations/liveramp-audiences/{audienceEntered → audienceEnteredS3}/index.d.ts +0 -0
@@ -22,7 +22,7 @@ class LinkedInAudiences {
22
22
  searchParams: {
23
23
  q: 'account',
24
24
  account: `urn:li:sponsoredAccount:${settings.ad_account_id}`,
25
- sourceSegmentId: payload.source_segment_id || '',
25
+ sourceSegmentId: payload.personas_audience_key || '',
26
26
  sourcePlatform: constants_1.LINKEDIN_SOURCE_PLATFORM
27
27
  }
28
28
  });
@@ -33,7 +33,7 @@ class LinkedInAudiences {
33
33
  json: {
34
34
  name: payload.dmp_segment_name,
35
35
  sourcePlatform: constants_1.LINKEDIN_SOURCE_PLATFORM,
36
- sourceSegmentId: payload.source_segment_id,
36
+ sourceSegmentId: payload.personas_audience_key,
37
37
  account: `urn:li:sponsoredAccount:${settings.ad_account_id}`,
38
38
  accessPolicy: 'PRIVATE',
39
39
  type: 'USER',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/linkedin-audiences/api/index.ts"],"names":[],"mappings":";;;AAGA,4CAAiE;AAGjE,MAAa,iBAAiB;IAG5B,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,KAAK,EAAE;YACpC,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,QAAkB,EAAE,MAAc;QAC9D,OAAO,IAAI,CAAC,OAAO,CACjB,GAAG,oBAAQ,mDAAmD,QAAQ,CAAC,aAAa,uBAAuB,MAAM,EAAE,EACnH;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAkB,EAAE,OAAgB;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,cAAc,EAAE;YAC7C,MAAM,EAAE,KAAK;YACb,YAAY,EAAE;gBACZ,CAAC,EAAE,SAAS;gBACZ,OAAO,EAAE,2BAA2B,QAAQ,CAAC,aAAa,EAAE;gBAC5D,eAAe,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE;gBAChD,cAAc,EAAE,oCAAwB;aACzC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAgB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,cAAc,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO,CAAC,gBAAgB;gBAC9B,cAAc,EAAE,oCAAwB;gBACxC,eAAe,EAAE,OAAO,CAAC,iBAAiB;gBAC1C,OAAO,EAAE,2BAA2B,QAAQ,CAAC,aAAa,EAAE;gBAC5D,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE;oBACZ;wBACE,WAAW,EAAE,UAAU;qBACxB;iBACF;aACF;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,YAAoB,EAAE,QAAkC;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,gBAAgB,YAAY,QAAQ,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,iBAAiB,EAAE,cAAc;aAClC;YACD,IAAI,EAAE;gBACJ,QAAQ;aACT;YACD,eAAe,EAAE,KAAK;SACvB,CAAC,CAAA;IACJ,CAAC;CACF;AAjED,8CAiEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/linkedin-audiences/api/index.ts"],"names":[],"mappings":";;;AAGA,4CAAiE;AAGjE,MAAa,iBAAiB;IAG5B,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,KAAK,EAAE;YACpC,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,QAAkB,EAAE,MAAc;QAC9D,OAAO,IAAI,CAAC,OAAO,CACjB,GAAG,oBAAQ,mDAAmD,QAAQ,CAAC,aAAa,uBAAuB,MAAM,EAAE,EACnH;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAkB,EAAE,OAAgB;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,cAAc,EAAE;YAC7C,MAAM,EAAE,KAAK;YACb,YAAY,EAAE;gBACZ,CAAC,EAAE,SAAS;gBACZ,OAAO,EAAE,2BAA2B,QAAQ,CAAC,aAAa,EAAE;gBAC5D,eAAe,EAAE,OAAO,CAAC,qBAAqB,IAAI,EAAE;gBACpD,cAAc,EAAE,oCAAwB;aACzC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAkB,EAAE,OAAgB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,cAAc,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO,CAAC,gBAAgB;gBAC9B,cAAc,EAAE,oCAAwB;gBACxC,eAAe,EAAE,OAAO,CAAC,qBAAqB;gBAC9C,OAAO,EAAE,2BAA2B,QAAQ,CAAC,aAAa,EAAE;gBAC5D,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE;oBACZ;wBACE,WAAW,EAAE,UAAU;qBACxB;iBACF;aACF;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,YAAoB,EAAE,QAAkC;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,gBAAgB,YAAY,QAAQ,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,iBAAiB,EAAE,cAAc;aAClC;YACD,IAAI,EAAE;gBACJ,QAAQ;aACT;YACD,eAAe,EAAE,KAAK;SACvB,CAAC,CAAA;IACJ,CAAC;CACF;AAjED,8CAiEC"}
@@ -6,4 +6,5 @@ export interface Payload {
6
6
  source_segment_id?: string;
7
7
  personas_audience_key: string;
8
8
  event_name?: string;
9
+ dmp_user_action?: string;
9
10
  }
@@ -59,6 +59,17 @@ const action = {
59
59
  default: {
60
60
  '@path': '$.event'
61
61
  }
62
+ },
63
+ dmp_user_action: {
64
+ label: 'DMP User Action',
65
+ description: 'A Segment specific key used to define action type.',
66
+ type: 'string',
67
+ choices: [
68
+ { label: `Auto Detect`, value: 'AUTO' },
69
+ { label: `Add`, value: 'ADD' },
70
+ { label: 'Remove', value: 'REMOVE' }
71
+ ],
72
+ default: 'AUTO'
62
73
  }
63
74
  },
64
75
  perform: async (request, { settings, payload }) => {
@@ -83,7 +94,8 @@ async function processPayload(request, settings, payloads) {
83
94
  return res;
84
95
  }
85
96
  function validate(settings, payloads) {
86
- if (payloads[0].source_segment_id !== payloads[0].personas_audience_key) {
97
+ const isAutoOrUndefined = ['AUTO', undefined].includes(payloads[0]?.dmp_user_action);
98
+ if (isAutoOrUndefined && payloads[0].source_segment_id !== payloads[0].personas_audience_key) {
87
99
  throw new actions_core_1.IntegrationError('The value of `source_segment_id` and `personas_audience_key` must match.', 'INVALID_SETTINGS', 400);
88
100
  }
89
101
  if (!settings.send_google_advertising_id && !settings.send_email) {
@@ -117,12 +129,21 @@ function extractUsers(settings, payloads) {
117
129
  return elements;
118
130
  }
119
131
  function getAction(payload) {
120
- if (payload.event_name === 'Audience Entered') {
132
+ const { dmp_user_action = 'AUTO' } = payload;
133
+ if (dmp_user_action === 'ADD') {
121
134
  return 'ADD';
122
135
  }
123
- else if (payload.event_name === 'Audience Exited') {
136
+ else if (dmp_user_action === 'REMOVE') {
124
137
  return 'REMOVE';
125
138
  }
139
+ else if (dmp_user_action === 'AUTO' || !dmp_user_action) {
140
+ if (payload.event_name === 'Audience Entered') {
141
+ return 'ADD';
142
+ }
143
+ else if (payload.event_name === 'Audience Exited') {
144
+ return 'REMOVE';
145
+ }
146
+ }
126
147
  }
127
148
  function getUserIds(settings, payload) {
128
149
  const users = [];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/linkedin-audiences/updateAudience/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/linkedin-audiences/updateAudience/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface Payload {
2
+ s3_aws_access_key?: string;
3
+ s3_aws_secret_key?: string;
4
+ s3_aws_bucket_name?: string;
5
+ s3_aws_region?: string;
6
+ audience_key: string;
7
+ identifier_data?: {
8
+ [k: string]: unknown;
9
+ };
10
+ unhashed_identifier_data?: {
11
+ [k: string]: unknown;
12
+ };
13
+ delimiter: string;
14
+ filename: string;
15
+ enable_batching: boolean;
16
+ batch_size?: number;
17
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEntered/generated-types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredS3/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const s3_1 = require("./s3");
5
+ const operations_1 = require("../operations");
6
+ const action = {
7
+ title: 'Audience Entered (S3)',
8
+ description: 'Uploads audience membership data to a file in S3 for LiveRamp ingestion.',
9
+ defaultSubscription: 'event = "Audience Entered"',
10
+ fields: {
11
+ s3_aws_access_key: {
12
+ label: 'AWS Access Key ID',
13
+ description: 'IAM user credentials with write permissions to the S3 bucket.',
14
+ type: 'string'
15
+ },
16
+ s3_aws_secret_key: {
17
+ label: 'AWS Secret Access Key',
18
+ description: 'IAM user credentials with write permissions to the S3 bucket.',
19
+ type: 'password'
20
+ },
21
+ s3_aws_bucket_name: {
22
+ label: 'AWS Bucket Name',
23
+ description: 'Name of the S3 bucket where the files will be uploaded to.',
24
+ type: 'string'
25
+ },
26
+ s3_aws_region: {
27
+ label: 'AWS Region (S3 only)',
28
+ description: 'Region where the S3 bucket is hosted.',
29
+ type: 'string'
30
+ },
31
+ audience_key: {
32
+ label: 'Audience Key',
33
+ description: 'Identifies the user within the entered audience.',
34
+ type: 'string',
35
+ required: true,
36
+ default: { '@path': '$.userId' }
37
+ },
38
+ identifier_data: {
39
+ label: 'Identifier Data',
40
+ description: `Additional data pertaining to the user to be written to the file.`,
41
+ type: 'object',
42
+ required: false,
43
+ defaultObjectUI: 'keyvalue:only'
44
+ },
45
+ unhashed_identifier_data: {
46
+ label: 'Hashable Identifier Data',
47
+ description: `Additional data pertaining to the user to be hashed before written to the file`,
48
+ type: 'object',
49
+ required: false,
50
+ defaultObjectUI: 'keyvalue:only'
51
+ },
52
+ delimiter: {
53
+ label: 'Delimeter',
54
+ description: `Character used to separate tokens in the resulting file.`,
55
+ type: 'string',
56
+ required: true,
57
+ default: ','
58
+ },
59
+ filename: {
60
+ label: 'Filename',
61
+ description: `Name of the CSV file to upload for LiveRamp ingestion.`,
62
+ type: 'string',
63
+ required: true,
64
+ default: { '@template': '{{properties.audience_key}}_PII_{{timestamp}}.csv' }
65
+ },
66
+ enable_batching: {
67
+ type: 'boolean',
68
+ label: 'Batch data',
69
+ description: 'Receive events in a batch payload. This is required for LiveRamp audiences ingestion.',
70
+ required: true,
71
+ default: true
72
+ },
73
+ batch_size: {
74
+ label: 'Batch Size',
75
+ description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower.',
76
+ type: 'number',
77
+ required: false,
78
+ default: 170000
79
+ }
80
+ },
81
+ perform: async (request, { payload }) => {
82
+ return processData(request, [payload]);
83
+ },
84
+ performBatch: (request, { payload }) => {
85
+ return processData(request, payload);
86
+ }
87
+ };
88
+ async function processData(request, payloads) {
89
+ const LIVERAMP_MIN_RECORD_COUNT = 25;
90
+ if (payloads.length < LIVERAMP_MIN_RECORD_COUNT) {
91
+ throw new actions_core_1.PayloadValidationError(`received payload count below LiveRamp's ingestion limits. expected: >=${LIVERAMP_MIN_RECORD_COUNT} actual: ${payloads.length}`);
92
+ }
93
+ s3_1.validateS3(payloads[0]);
94
+ const { filename, fileContent } = operations_1.generateFile(payloads);
95
+ return s3_1.uploadS3(payloads[0], filename, fileContent, request);
96
+ }
97
+ exports.default = action;
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredS3/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ import { ModifiedResponse, RequestOptions } from '@segment/actions-core';
3
+ import { Payload } from './generated-types';
4
+ declare function validateS3(payload: Payload): void;
5
+ declare function uploadS3(payload: Payload, 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(settings) {
10
- if (!settings.s3_aws_access_key) {
9
+ function validateS3(payload) {
10
+ if (!payload.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 (!settings.s3_aws_secret_key) {
13
+ if (!payload.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 (!settings.s3_aws_bucket_name) {
16
+ if (!payload.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 (!settings.s3_aws_region) {
19
+ if (!payload.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(settings, filename, fileContent, request) {
24
+ async function uploadS3(payload, filename, fileContent, request) {
25
25
  const method = 'PUT';
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);
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);
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/audienceEnteredS3/s3.ts"],"names":[],"mappings":";;;;;;AAAA,6DAA0D;AAC1D,wDAAoG;AAGpG,SAAS,UAAU,CAAC,OAAgB;IAClC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;QAC9B,MAAM,IAAI,yCAA0B,CAAC,qDAAqD,CAAC,CAAA;KAC5F;IAED,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;QAC9B,MAAM,IAAI,yCAA0B,CAAC,qDAAqD,CAAC,CAAA;KAC5F;IAED,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;QAC/B,MAAM,IAAI,yCAA0B,CAAC,yDAAyD,CAAC,CAAA;KAChG;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,yCAA0B,CAAC,iDAAiD,CAAC,CAAA;KACxF;AACH,CAAC;AA6BQ,gCAAU;AA3BnB,KAAK,UAAU,QAAQ,CACrB,OAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,OAAmG;IAEnG,MAAM,MAAM,GAAG,KAAK,CAAA;IACpB,MAAM,IAAI,GAAG,MAAM,YAAwB,CACzC,OAAO,CAAC,kBAA4B,EACpC,OAAO,CAAC,aAAuB,EAC/B,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,CAAC,iBAA2B,EACnC,OAAO,CAAC,iBAA2B,CACpC,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,16 @@
1
+ export interface Payload {
2
+ sftp_username?: string;
3
+ sftp_password?: string;
4
+ sftp_folder_path?: string;
5
+ audience_key: string;
6
+ identifier_data?: {
7
+ [k: string]: unknown;
8
+ };
9
+ unhashed_identifier_data?: {
10
+ [k: string]: unknown;
11
+ };
12
+ delimiter: string;
13
+ filename: string;
14
+ enable_batching: boolean;
15
+ batch_size?: number;
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=audienceEnteredSFTP.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audienceEnteredSFTP.types.js","sourceRoot":"","sources":["../../../src/destinations/liveramp-audiences/audienceEnteredSFTP.types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,7 @@
1
1
  export interface Payload {
2
+ sftp_username?: string;
3
+ sftp_password?: string;
4
+ sftp_folder_path?: string;
2
5
  audience_key: string;
3
6
  identifier_data?: {
4
7
  [k: string]: unknown;
@@ -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/liveramp-audiences/audienceEnteredSftp/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -1,14 +1,30 @@
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");
5
4
  const sftp_1 = require("./sftp");
6
5
  const operations_1 = require("../operations");
7
6
  const action = {
8
- title: 'Audience Entered',
9
- description: 'Uploads audience membership data to a file for LiveRamp ingestion.',
7
+ title: 'Audience Entered (SFTP)',
8
+ description: 'Uploads audience membership data to a file through SFTP for LiveRamp ingestion.',
10
9
  defaultSubscription: 'event = "Audience Entered"',
11
10
  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
+ },
12
28
  audience_key: {
13
29
  label: 'Audience Key',
14
30
  description: 'Identifies the user within the entered audience.',
@@ -56,40 +72,25 @@ const action = {
56
72
  description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower.',
57
73
  type: 'number',
58
74
  required: false,
59
- default: 1000000
75
+ default: 100000
60
76
  }
61
77
  },
62
- perform: async (request, { settings, payload }) => {
63
- return processData(request, settings, [payload]);
78
+ perform: async (_, { payload }) => {
79
+ return processData([payload]);
64
80
  },
65
- performBatch: (request, { settings, payload }) => {
66
- return processData(request, settings, payload);
81
+ performBatch: (_, { payload }) => {
82
+ return processData(payload);
67
83
  }
68
84
  };
69
- async function processData(request, settings, payloads) {
85
+ async function processData(payloads) {
70
86
  const LIVERAMP_MIN_RECORD_COUNT = 25;
71
87
  if (payloads.length < LIVERAMP_MIN_RECORD_COUNT) {
72
88
  throw new actions_core_1.PayloadValidationError(`received payload count below LiveRamp's ingestion limits. expected: >=${LIVERAMP_MIN_RECORD_COUNT} actual: ${payloads.length}`);
73
89
  }
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
- }
90
+ sftp_1.validateSFTP(payloads[0]);
84
91
  const { filename, fileContent } = operations_1.generateFile(payloads);
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
- }
92
+ const sftpClient = new sftp_1.Client();
93
+ return sftp_1.uploadSFTP(sftpClient, payloads[0], filename, fileContent);
93
94
  }
94
95
  exports.default = action;
95
96
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredSftp/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import Client from 'ssh2-sftp-client';
3
+ import { Payload } from './generated-types';
4
+ declare function validateSFTP(payload: Payload): void;
5
+ declare function uploadSFTP(sftp: Client, payload: Payload, filename: string, fileContent: Buffer): Promise<unknown>;
6
+ declare function testAuthenticationSFTP(sftp: Client, payload: Payload): 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(settings) {
14
- if (!settings.sftp_username) {
13
+ function validateSFTP(payload) {
14
+ if (!payload.sftp_username) {
15
15
  throw new actions_core_1.InvalidAuthenticationError('Selected SFTP upload mode, but missing credentials (Username)');
16
16
  }
17
- if (!settings.sftp_password) {
17
+ if (!payload.sftp_password) {
18
18
  throw new actions_core_1.InvalidAuthenticationError('Selected SFTP upload mode, but missing credentials (Password)');
19
19
  }
20
- if (!settings.sftp_folder_path) {
20
+ if (!payload.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, settings, filename, fileContent) {
26
- return doSFTP(sftp, settings, async (sftp) => {
27
- const targetPath = path_1.default.join(settings.sftp_folder_path, filename);
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);
28
28
  return sftp.put(fileContent, targetPath);
29
29
  });
30
30
  }
31
31
  exports.uploadSFTP = uploadSFTP;
32
- async function doSFTP(sftp, settings, action) {
32
+ async function doSFTP(sftp, payload, action) {
33
33
  await sftp.connect({
34
34
  host: LIVERAMP_SFTP_SERVER,
35
35
  port: LIVERAMP_SFTP_PORT,
36
- username: settings.sftp_username,
37
- password: settings.sftp_password
36
+ username: payload.sftp_username,
37
+ password: payload.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, settings) {
44
- return doSFTP(sftp, settings, async (sftp) => {
45
- return sftp.exists(settings.sftp_folder_path).then((fileType) => {
43
+ async function testAuthenticationSFTP(sftp, payload) {
44
+ return doSFTP(sftp, payload, async (sftp) => {
45
+ return sftp.exists(payload.sftp_folder_path).then((fileType) => {
46
46
  if (!fileType)
47
- throw new Error(`Could not find path: ${settings.sftp_folder_path}`);
47
+ throw new Error(`Could not find path: ${payload.sftp_folder_path}`);
48
48
  });
49
49
  });
50
50
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredSftp/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,OAAgB;IACpC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,yCAA0B,CAAC,+DAA+D,CAAC,CAAA;KACtG;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,yCAA0B,CAAC,+DAA+D,CAAC,CAAA;KACtG;IAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAC7B,MAAM,IAAI,yCAA0B,CAAC,0DAA0D,CAAC,CAAA;KACjG;AACH,CAAC;AA8BQ,oCAAY;AA5BrB,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,OAAgB,EAAE,QAAgB,EAAE,WAAmB;IAC7F,OAAO,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAA0B,EAAE,QAAQ,CAAC,CAAA;QAC1E,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,OAAgB,EAAE,MAA4C;IAChG,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,OAAO,CAAC,aAAa;QAC/B,QAAQ,EAAE,OAAO,CAAC,aAAa;KAChC,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,OAAgB;IAClE,OAAO,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACvE,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAEkC,wDAAsB"}
@@ -1,12 +1,4 @@
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;
10
2
  __segment_internal_engage_force_full_sync: boolean;
11
3
  __segment_internal_engage_batch_sync: boolean;
12
4
  }
@@ -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 audienceEntered_1 = __importDefault(require("./audienceEntered"));
7
- const sftp_1 = require("./audienceEntered/sftp");
6
+ const audienceEnteredS3_1 = __importDefault(require("./audienceEnteredS3"));
7
+ const audienceEnteredSftp_1 = __importDefault(require("./audienceEnteredSftp"));
8
8
  const destination = {
9
9
  name: 'Liveramp Audiences',
10
10
  slug: 'actions-liveramp-audiences',
@@ -12,53 +12,6 @@ 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
- },
62
15
  __segment_internal_engage_force_full_sync: {
63
16
  label: 'Force Full Sync',
64
17
  description: '',
@@ -73,16 +26,11 @@ const destination = {
73
26
  required: true,
74
27
  default: true
75
28
  }
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
- }
82
29
  }
83
30
  },
84
31
  actions: {
85
- audienceEntered: audienceEntered_1.default
32
+ audienceEnteredS3: audienceEnteredS3_1.default,
33
+ audienceEnteredSFTP: audienceEnteredSftp_1.default
86
34
  }
87
35
  };
88
36
  exports.default = destination;
@@ -1 +1 @@
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
+ {"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,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import type { Payload } from './audienceEntered/generated-types';
2
+ import type { Payload } from './audienceEnteredS3/generated-types';
3
3
  declare function generateFile(payloads: Payload[]): {
4
4
  filename: string;
5
5
  fileContent: Buffer;
@@ -23,11 +23,16 @@ exports.custom_data_field = {
23
23
  multiple: true
24
24
  },
25
25
  contents: {
26
- label: 'Gender',
27
- description: 'Gender in lowercase. Either f or m.',
26
+ label: 'Product Info',
27
+ description: 'A list of objects containing information about products.',
28
28
  type: 'object',
29
29
  multiple: true,
30
30
  properties: {
31
+ id: {
32
+ label: 'Id',
33
+ type: 'number',
34
+ description: 'The id of the Item'
35
+ },
31
36
  item_price: {
32
37
  label: 'Price',
33
38
  type: 'number',
@@ -1 +1 @@
1
- {"version":3,"file":"pinterest-capi-custom-data.js","sourceRoot":"","sources":["../../../src/destinations/pinterest-conversions/pinterest-capi-custom-data.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAe;IAC3C,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,8CAA8C;IAC3D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,kGAAkG;YAC/G,IAAI,EAAE,QAAQ;SACf;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,WAAW,EACT,8HAA8H;YAChI,IAAI,EAAE,QAAQ;SACf;QACD,WAAW,EAAE;YACX,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,oCAAoC;YACjD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACf;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,qCAAqC;YAClD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uBAAuB;iBACrC;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+BAA+B;iBAC7C;aACF;SACF;QACD,SAAS,EAAE;YACT,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,yCAAyC;YACtD,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,QAAQ;SACf;QACD,aAAa,EAAE;YACb,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,QAAQ;SACf;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,cAAc;YACrB,WAAW,EACT,8IAA8I;YAChJ,IAAI,EAAE,QAAQ;SACf;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBACzC,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBACvC,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;aACxC;SACF;QACD,aAAa,EAAE;YACb,OAAO,EAAE,oBAAoB;SAC9B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,uBAAuB;SACjC;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,uBAAuB;SACjC;KACF;CACF,CAAA"}
1
+ {"version":3,"file":"pinterest-capi-custom-data.js","sourceRoot":"","sources":["../../../src/destinations/pinterest-conversions/pinterest-capi-custom-data.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAe;IAC3C,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,8CAA8C;IAC3D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,kGAAkG;YAC/G,IAAI,EAAE,QAAQ;SACf;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,WAAW,EACT,8HAA8H;YAChI,IAAI,EAAE,QAAQ;SACf;QACD,WAAW,EAAE;YACX,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,oCAAoC;YACjD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACf;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,0DAA0D;YACvE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oBAAoB;iBAClC;gBACD,UAAU,EAAE;oBACV,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uBAAuB;iBACrC;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+BAA+B;iBAC7C;aACF;SACF;QACD,SAAS,EAAE;YACT,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,yCAAyC;YACtD,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,QAAQ;SACf;QACD,aAAa,EAAE;YACb,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,QAAQ;SACf;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,cAAc;YACrB,WAAW,EACT,8IAA8I;YAChJ,IAAI,EAAE,QAAQ;SACf;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBACzC,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBACvC,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;aACxC;SACF;QACD,aAAa,EAAE;YACb,OAAO,EAAE,oBAAoB;SAC9B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,uBAAuB;SACjC;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,uBAAuB;SACjC;KACF;CACF,CAAA"}
@@ -26,6 +26,7 @@ export interface Payload {
26
26
  value?: number;
27
27
  content_ids?: string[];
28
28
  contents?: {
29
+ id?: number;
29
30
  item_price?: number;
30
31
  quantity?: number;
31
32
  }[];
@@ -0,0 +1,16 @@
1
+ import { RequestClient } from '@segment/actions-core';
2
+ interface SendToAWSRequest {
3
+ TDDAuthToken: string;
4
+ AdvertiserId: string;
5
+ CrmDataId: string;
6
+ SegmentName: string;
7
+ UsersFormatted: string;
8
+ DropOptions: {
9
+ PiiType: string;
10
+ MergeMode: string;
11
+ TtlInMinutes?: number;
12
+ RetentionEnabled?: boolean;
13
+ };
14
+ }
15
+ export declare const sendEventToAWS: (request: RequestClient, input: SendToAWSRequest) => Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
16
+ export {};
@@ -0,0 +1,74 @@
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.sendEventToAWS = void 0;
7
+ const uuid_1 = require("@lukeed/uuid");
8
+ const aws4_1 = __importDefault(require("aws4"));
9
+ const actions_core_1 = require("@segment/actions-core");
10
+ const sts_1 = require("../../lib/AWS/sts");
11
+ const NODE_ENV = process.env['NODE_ENV'] || `stage`;
12
+ const AWS_REGION = process.env['AWS_REGION'] || `us-west-2`;
13
+ const S3_BUCKET_NAME = `integrations-outbound-event-store-${NODE_ENV}-${AWS_REGION}`;
14
+ const ACTION_SLUG = `actions-the-trade-desk-crm`;
15
+ const sendEventToAWS = async (request, input) => {
16
+ const uuidValue = uuid_1.v4();
17
+ const userdataFilePath = `/${ACTION_SLUG}/${input.AdvertiserId}/${input.CrmDataId}/${uuidValue}.txt`;
18
+ const metadataFilePath = `/${ACTION_SLUG}/${input.AdvertiserId}/${input.CrmDataId}/meta.json`;
19
+ const metadata = JSON.stringify({
20
+ TDDAuthToken: input.TDDAuthToken,
21
+ AdvertiserId: input.AdvertiserId,
22
+ SegmentName: input.SegmentName,
23
+ CrmDataId: input.CrmDataId,
24
+ DropOptions: input.DropOptions,
25
+ RequeueCount: 0
26
+ });
27
+ const awsCredentials = await sts_1.getAWSCredentialsFromEKS(request);
28
+ await uploadToAWSS3({
29
+ request,
30
+ bucketName: S3_BUCKET_NAME,
31
+ region: AWS_REGION,
32
+ fileContentType: 'text/plain',
33
+ filePath: userdataFilePath,
34
+ fileContent: input.UsersFormatted,
35
+ awsCredentials: awsCredentials
36
+ });
37
+ return uploadToAWSS3({
38
+ request,
39
+ bucketName: S3_BUCKET_NAME,
40
+ region: AWS_REGION,
41
+ fileContentType: 'application/json',
42
+ filePath: metadataFilePath,
43
+ fileContent: metadata,
44
+ awsCredentials: awsCredentials
45
+ });
46
+ };
47
+ exports.sendEventToAWS = sendEventToAWS;
48
+ async function uploadToAWSS3(input) {
49
+ const s3UploadRequest = aws4_1.default.sign({
50
+ host: `${input.bucketName}.s3.${input.region}.amazonaws.com`,
51
+ path: input.filePath,
52
+ body: input.fileContent,
53
+ method: 'PUT',
54
+ service: 's3',
55
+ region: input.region,
56
+ headers: {
57
+ 'Content-Type': input.fileContentType,
58
+ Accept: 'application/json'
59
+ }
60
+ }, {
61
+ accessKeyId: input.awsCredentials.accessKeyId,
62
+ secretAccessKey: input.awsCredentials.secretAccessKey,
63
+ sessionToken: input.awsCredentials.sessionToken
64
+ });
65
+ if (!s3UploadRequest.headers || !s3UploadRequest.method || !s3UploadRequest.host || !s3UploadRequest.path) {
66
+ throw new actions_core_1.InvalidAuthenticationError('Unable to generate signature header for AWS S3 request.');
67
+ }
68
+ return input.request(`https://${input.bucketName}.s3.${input.region}.amazonaws.com${input.filePath}`, {
69
+ method: 'PUT',
70
+ body: s3UploadRequest.body,
71
+ headers: s3UploadRequest.headers
72
+ });
73
+ }
74
+ //# 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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"}
@@ -26,5 +26,13 @@ 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
+ interface ProcessPayloadInput {
30
+ request: RequestClient;
31
+ settings: Settings;
32
+ payloads: Payload[];
33
+ features?: Record<string, boolean>;
34
+ }
35
+ export declare const TTD_LEGACY_FLOW_FLAG_NAME = "actions-the-trade-desk-crm-legacy-flow";
36
+ export declare function processPayload(input: ProcessPayloadInput): Promise<ModifiedResponse<unknown>>;
30
37
  export declare const hash: (value: string) => string;
38
+ export {};
@@ -1,19 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hash = exports.processPayload = void 0;
3
+ exports.hash = exports.processPayload = exports.TTD_LEGACY_FLOW_FLAG_NAME = void 0;
4
4
  const actions_core_1 = require("@segment/actions-core");
5
5
  const crypto_1 = require("crypto");
6
+ const awsClient_1 = require("./awsClient");
6
7
  const API_VERSION = 'v3';
7
8
  const BASE_URL = `https://api.thetradedesk.com/${API_VERSION}`;
8
- async function processPayload(request, settings, payloads) {
9
- const TTD_MIN_RECORD_COUNT = 1500;
10
- if (payloads.length < TTD_MIN_RECORD_COUNT) {
11
- throw new actions_core_1.PayloadValidationError(`received payload count below The Trade Desk's ingestion limits. Expected: >=${TTD_MIN_RECORD_COUNT} actual: ${payloads.length}`);
9
+ const TTD_MIN_RECORD_COUNT = 1500;
10
+ exports.TTD_LEGACY_FLOW_FLAG_NAME = 'actions-the-trade-desk-crm-legacy-flow';
11
+ async function processPayload(input) {
12
+ if (input.payloads.length < TTD_MIN_RECORD_COUNT) {
13
+ throw new actions_core_1.PayloadValidationError(`received payload count below The Trade Desk's ingestion limits. Expected: >=${TTD_MIN_RECORD_COUNT} actual: ${input.payloads.length}`);
14
+ }
15
+ const crmID = await getCRMInfo(input.request, input.settings, input.payloads[0]);
16
+ const usersFormatted = extractUsers(input.payloads);
17
+ if (input.features && input.features[exports.TTD_LEGACY_FLOW_FLAG_NAME]) {
18
+ const dropEndpoint = await getCRMDataDropEndpoint(input.request, input.settings, input.payloads[0], crmID);
19
+ return uploadCRMDataToDropEndpoint(input.request, dropEndpoint, usersFormatted);
20
+ }
21
+ else {
22
+ return awsClient_1.sendEventToAWS(input.request, {
23
+ TDDAuthToken: input.settings.auth_token,
24
+ AdvertiserId: input.settings.advertiser_id,
25
+ CrmDataId: crmID,
26
+ SegmentName: input.payloads[0].name,
27
+ UsersFormatted: usersFormatted,
28
+ DropOptions: {
29
+ PiiType: input.payloads[0].pii_type,
30
+ MergeMode: input.payloads[0].merge_mode || 'Replace'
31
+ }
32
+ });
12
33
  }
13
- const crmID = await getCRMID(request, settings, payloads[0]);
14
- const users = extractUsers(payloads);
15
- const dataDropEndpoint = await getDropEndpoint(request, settings, payloads[0], crmID);
16
- return sendCRMData(request, dataDropEndpoint, users);
17
34
  }
18
35
  exports.processPayload = processPayload;
19
36
  async function getAllDataSegments(request, settings) {
@@ -41,7 +58,7 @@ async function getAllDataSegments(request, settings) {
41
58
  }
42
59
  return allDataSegments;
43
60
  }
44
- async function getCRMID(request, settings, payload) {
61
+ async function getCRMInfo(request, settings, payload) {
45
62
  let segmentId;
46
63
  const segments = await getAllDataSegments(request, settings);
47
64
  const segmentExists = segments.filter(function (segment) {
@@ -52,7 +69,7 @@ async function getCRMID(request, settings, payload) {
52
69
  if (segmentExists.length > 1) {
53
70
  throw new actions_core_1.IntegrationError('Multiple audiences found with the same name', 'INVALID_SETTINGS', 400);
54
71
  }
55
- if (segmentExists.length == 1) {
72
+ else if (segmentExists.length == 1) {
56
73
  segmentId = segmentExists[0].CrmDataId;
57
74
  }
58
75
  else {
@@ -72,20 +89,6 @@ async function getCRMID(request, settings, payload) {
72
89
  }
73
90
  return segmentId;
74
91
  }
75
- async function getDropEndpoint(request, settings, payload, crmId) {
76
- const response = await request(`${BASE_URL}/crmdata/segment/${settings.advertiser_id}/${crmId}`, {
77
- method: 'POST',
78
- headers: {
79
- 'Content-Type': 'application/json',
80
- 'TTD-Auth': settings.auth_token
81
- },
82
- json: {
83
- PiiType: payload.pii_type,
84
- MergeMode: 'Replace'
85
- }
86
- });
87
- return response.data.Url;
88
- }
89
92
  function extractUsers(payloads) {
90
93
  let users = '';
91
94
  payloads.forEach((payload) => {
@@ -103,15 +106,6 @@ function extractUsers(payloads) {
103
106
  });
104
107
  return users;
105
108
  }
106
- async function sendCRMData(request, endpoint, users) {
107
- return await request(endpoint, {
108
- method: 'PUT',
109
- headers: {
110
- 'Content-Type': 'text/plain'
111
- },
112
- body: users
113
- });
114
- }
115
109
  function normalizeEmail(email) {
116
110
  email = email.trim().toLowerCase();
117
111
  if (email.endsWith('@gmail.com')) {
@@ -132,4 +126,27 @@ const hash = (value) => {
132
126
  return hash.digest('base64');
133
127
  };
134
128
  exports.hash = hash;
129
+ async function getCRMDataDropEndpoint(request, settings, payload, crmId) {
130
+ const response = await request(`${BASE_URL}/crmdata/segment/${settings.advertiser_id}/${crmId}`, {
131
+ method: 'POST',
132
+ headers: {
133
+ 'Content-Type': 'application/json',
134
+ 'TTD-Auth': settings.auth_token
135
+ },
136
+ json: {
137
+ PiiType: payload.pii_type,
138
+ MergeMode: payload.merge_mode || 'Replace'
139
+ }
140
+ });
141
+ return response.data.Url;
142
+ }
143
+ async function uploadCRMDataToDropEndpoint(request, endpoint, users) {
144
+ return await request(endpoint, {
145
+ method: 'PUT',
146
+ headers: {
147
+ 'Content-Type': 'text/plain'
148
+ },
149
+ body: users
150
+ });
151
+ }
135
152
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/functions.ts"],"names":[],"mappings":"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"}
@@ -6,3 +6,4 @@ export declare const email: InputField;
6
6
  export declare const event_name: InputField;
7
7
  export declare const enable_batching: InputField;
8
8
  export declare const batch_size: InputField;
9
+ export declare const merge_mode: InputField;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.batch_size = exports.enable_batching = exports.event_name = exports.email = exports.pii_type = exports.region = exports.name = void 0;
3
+ exports.merge_mode = exports.batch_size = exports.enable_batching = exports.event_name = exports.email = exports.pii_type = exports.region = exports.name = void 0;
4
4
  exports.name = {
5
5
  label: 'Segment Name',
6
6
  description: 'The name of The Trade Desk CRM Data Segment you want to sync. If the audience name does not exist Segment will create one.',
@@ -53,4 +53,21 @@ exports.batch_size = {
53
53
  required: false,
54
54
  default: 100000
55
55
  };
56
+ exports.merge_mode = {
57
+ label: 'Merge Mode',
58
+ description: 'The merge mode to use when syncing data to The Trade Desk CRM Segment.',
59
+ type: 'string',
60
+ choices: [
61
+ {
62
+ label: 'Add',
63
+ value: 'Add'
64
+ },
65
+ {
66
+ label: 'Replace',
67
+ value: 'Replace'
68
+ }
69
+ ],
70
+ default: 'Replace',
71
+ required: false
72
+ };
56
73
  //# sourceMappingURL=properties.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,IAAI,GAAe;IAC9B,KAAK,EAAE,cAAc;IACrB,WAAW,EACT,4HAA4H;IAC9H,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,MAAM,GAAe;IAChC,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,6EAA6E;IAC1F,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,QAAQ,GAAe;IAClC,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QAClC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAC1D;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,KAAK,GAAe;IAC/B,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,wBAAwB;KAClC;CACF,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;KACnB;CACF,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,4DAA4D;IACzE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qFAAqF;IAClG,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,MAAM;CAChB,CAAA"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/the-trade-desk-crm/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,IAAI,GAAe;IAC9B,KAAK,EAAE,cAAc;IACrB,WAAW,EACT,4HAA4H;IAC9H,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,MAAM,GAAe;IAChC,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,6EAA6E;IAC1F,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,QAAQ,GAAe;IAClC,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QAClC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAC1D;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,KAAK,GAAe;IAC/B,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,wBAAwB;KAClC;CACF,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;KACnB;CACF,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,4DAA4D;IACzE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,qFAAqF;IAClG,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,MAAM;CAChB,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP;YACE,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACb;QACD;YACE,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;SACjB;KACF;IACD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,KAAK;CAChB,CAAA"}
@@ -3,6 +3,7 @@ export interface Payload {
3
3
  region: string;
4
4
  pii_type: string;
5
5
  email?: string;
6
+ merge_mode?: string;
6
7
  enable_batching?: boolean;
7
8
  event_name?: string;
8
9
  batch_size?: number;
@@ -11,15 +11,26 @@ const action = {
11
11
  region: { ...properties_1.region },
12
12
  pii_type: { ...properties_1.pii_type },
13
13
  email: { ...properties_1.email },
14
+ merge_mode: { ...properties_1.merge_mode },
14
15
  enable_batching: { ...properties_1.enable_batching },
15
16
  event_name: { ...properties_1.event_name },
16
17
  batch_size: { ...properties_1.batch_size }
17
18
  },
18
- perform: async (request, { settings, payload }) => {
19
- return functions_1.processPayload(request, settings, [payload]);
19
+ perform: async (request, { settings, payload, features }) => {
20
+ return functions_1.processPayload({
21
+ request,
22
+ settings,
23
+ payloads: [payload],
24
+ features
25
+ });
20
26
  },
21
- performBatch: async (request, { settings, payload }) => {
22
- return functions_1.processPayload(request, settings, payload);
27
+ performBatch: async (request, { settings, payload, features }) => {
28
+ return functions_1.processPayload({
29
+ request,
30
+ settings,
31
+ payloads: payload,
32
+ features
33
+ });
23
34
  }
24
35
  };
25
36
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/the-trade-desk-crm/syncAudience/index.ts"],"names":[],"mappings":";;AAGA,8CAAsG;AACtG,4CAA6C;AAE7C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EAAE,4CAA4C;IACzD,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,GAAG,iBAAI,EAAE;QACjB,MAAM,EAAE,EAAE,GAAG,mBAAM,EAAE;QACrB,QAAQ,EAAE,EAAE,GAAG,qBAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;KAC9B;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,0BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,OAAO,0BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/the-trade-desk-crm/syncAudience/index.ts"],"names":[],"mappings":";;AAGA,8CAAkH;AAClH,4CAA6C;AAE7C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EAAE,4CAA4C;IACzD,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,GAAG,iBAAI,EAAE;QACjB,MAAM,EAAE,EAAE,GAAG,mBAAM,EAAE;QACrB,QAAQ,EAAE,EAAE,GAAG,qBAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;KAC9B;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1D,OAAO,0BAAc,CAAC;YACpB,OAAO;YACP,QAAQ;YACR,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/D,OAAO,0BAAc,CAAC;YACpB,OAAO;YACP,QAAQ;YACR,QAAQ,EAAE,OAAO;YACjB,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { RequestClient } from '@segment/actions-core';
2
+ export declare type AWSCredentials = {
3
+ accessKeyId: string;
4
+ secretAccessKey: string;
5
+ sessionToken: string;
6
+ };
7
+ export declare function getAWSCredentialsFromEKS(request: RequestClient): Promise<AWSCredentials>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAWSCredentialsFromEKS = void 0;
4
+ const fs_1 = require("fs");
5
+ const awsCredentialsCache = {
6
+ expires: 0,
7
+ credentials: { accessKeyId: '', secretAccessKey: '', sessionToken: '' }
8
+ };
9
+ function getToken() {
10
+ const tokenFilepath = process.env['AWS_WEB_IDENTITY_TOKEN_FILE'] || '/var/run/secrets/kubernetes.io/serviceaccount/token';
11
+ return fs_1.readFileSync(tokenFilepath, 'utf-8');
12
+ }
13
+ async function getAWSRoleARNFromK8sAPI(request, K8sToken) {
14
+ const K8sApiResponse = await request('https://kubernetes.default.svc/api/v1/namespaces/default/serviceaccounts/pod-service-account', {
15
+ headers: {
16
+ Authorization: `Bearer ${K8sToken}`
17
+ }
18
+ });
19
+ const roleArn = K8sApiResponse.data?.metadata?.annotations?.['eks.amazonaws.com/role-arn'];
20
+ if (!roleArn) {
21
+ throw new Error('Unable to retrieve AWS Role ARN from Kubernetes API.');
22
+ }
23
+ return roleArn;
24
+ }
25
+ async function getCredentialsFromSTS(request, awsRoleARN, token) {
26
+ const stsResponse = await request(`https://sts.us-west-2.amazonaws.com/?` +
27
+ `Action=AssumeRoleWithWebIdentity` +
28
+ `&DurationSeconds=3600` +
29
+ `&RoleSessionName=integrations-monoservice` +
30
+ `&RoleArn=${awsRoleARN}` +
31
+ `&WebIdentityToken=${token}` +
32
+ `&Version=2011-06-15`, {
33
+ method: 'GET',
34
+ headers: {
35
+ 'User-Agent': 'segment/integrations-monoservice',
36
+ Accept: 'application/json'
37
+ }
38
+ });
39
+ return {
40
+ accessKeyId: stsResponse.data.AssumeRoleWithWebIdentityResponse.AssumeRoleWithWebIdentityResult.Credentials.AccessKeyId,
41
+ secretAccessKey: stsResponse.data.AssumeRoleWithWebIdentityResponse.AssumeRoleWithWebIdentityResult.Credentials.SecretAccessKey,
42
+ sessionToken: stsResponse.data.AssumeRoleWithWebIdentityResponse.AssumeRoleWithWebIdentityResult.Credentials.SessionToken
43
+ };
44
+ }
45
+ async function getAWSCredentialsFromEKS(request) {
46
+ if (awsCredentialsCache.expires > Date.now()) {
47
+ return awsCredentialsCache.credentials;
48
+ }
49
+ const token = getToken();
50
+ const awsRoleARN = process.env['AWS_ROLE_ARN'] || (await getAWSRoleARNFromK8sAPI(request, token));
51
+ const credentials = await getCredentialsFromSTS(request, awsRoleARN, token);
52
+ awsCredentialsCache.expires = Date.now() + 3300000;
53
+ awsCredentialsCache.credentials = credentials;
54
+ return credentials;
55
+ }
56
+ exports.getAWSCredentialsFromEKS = getAWSCredentialsFromEKS;
57
+ //# sourceMappingURL=sts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sts.js","sourceRoot":"","sources":["../../../src/lib/AWS/sts.ts"],"names":[],"mappings":";;;AAAA,2BAAiC;AA6CjC,MAAM,mBAAmB,GAAwB;IAC/C,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;CACxE,CAAA;AAED,SAAS,QAAQ;IACf,MAAM,aAAa,GACjB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,qDAAqD,CAAA;IACrG,OAAO,iBAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC;AAGD,KAAK,UAAU,uBAAuB,CAAC,OAAsB,EAAE,QAAgB;IAC7E,MAAM,cAAc,GAAG,MAAM,OAAO,CAClC,8FAA8F,EAC9F;QACE,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,QAAQ,EAAE;SACpC;KACF,CACF,CAAA;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,4BAA4B,CAAC,CAAA;IAE1F,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;KACxE;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAsB,EACtB,UAAkB,EAClB,KAAa;IAEb,MAAM,WAAW,GAAG,MAAM,OAAO,CAC/B,uCAAuC;QACrC,kCAAkC;QAClC,uBAAuB;QACvB,2CAA2C;QAC3C,YAAY,UAAU,EAAE;QACxB,qBAAqB,KAAK,EAAE;QAC5B,qBAAqB,EACvB;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,YAAY,EAAE,kCAAkC;YAChD,MAAM,EAAE,kBAAkB;SAC3B;KACF,CACF,CAAA;IAED,OAAO;QACL,WAAW,EACT,WAAW,CAAC,IAAI,CAAC,iCAAiC,CAAC,+BAA+B,CAAC,WAAW,CAAC,WAAW;QAC5G,eAAe,EACb,WAAW,CAAC,IAAI,CAAC,iCAAiC,CAAC,+BAA+B,CAAC,WAAW,CAAC,eAAe;QAChH,YAAY,EACV,WAAW,CAAC,IAAI,CAAC,iCAAiC,CAAC,+BAA+B,CAAC,WAAW,CAAC,YAAY;KAC9G,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAAC,OAAsB;IAGnE,IAAI,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;QAC5C,OAAO,mBAAmB,CAAC,WAAW,CAAA;KACvC;IAGD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IAGxB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjG,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IAI3E,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAA;IAClD,mBAAmB,CAAC,WAAW,GAAG,WAAW,CAAA;IAE7C,OAAO,WAAW,CAAA;AACpB,CAAC;AArBD,4DAqBC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@segment/action-destinations",
3
3
  "description": "Destination Actions engine and definitions.",
4
- "version": "3.196.0",
4
+ "version": "3.198.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -77,5 +77,5 @@
77
77
  "__tests__/__helpers__/"
78
78
  ]
79
79
  },
80
- "gitHead": "16e5016fefd358c37f159bc9513422473dc7355c"
80
+ "gitHead": "da244746ac1e91b6370e5a37b5c918f829199db1"
81
81
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEntered/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
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 };
@@ -1 +0,0 @@
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"}
@@ -1,7 +0,0 @@
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 };
@@ -1 +0,0 @@
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"}