@segment/action-destinations 3.421.1-staging-007a4a4c2.0 → 3.421.1-staging-aa90b3e96.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 (21) hide show
  1. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js +0 -3
  2. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js.map +1 -1
  3. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.d.ts +1 -2
  4. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.js +0 -33
  5. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.js.map +1 -1
  6. package/dist/destinations/ms-bing-ads-audiences/fields.d.ts +9 -0
  7. package/dist/destinations/ms-bing-ads-audiences/fields.js +80 -0
  8. package/dist/destinations/ms-bing-ads-audiences/fields.js.map +1 -0
  9. package/dist/destinations/ms-bing-ads-audiences/generated-types.d.ts +3 -0
  10. package/dist/destinations/ms-bing-ads-audiences/index.d.ts +1 -1
  11. package/dist/destinations/ms-bing-ads-audiences/index.js +82 -3
  12. package/dist/destinations/ms-bing-ads-audiences/index.js.map +1 -1
  13. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/generated-types.d.ts +7 -0
  14. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.d.ts +1 -1
  15. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.js +50 -7
  16. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.js.map +1 -1
  17. package/dist/destinations/ms-bing-ads-audiences/types.d.ts +19 -10
  18. package/dist/destinations/ms-bing-ads-audiences/utils.d.ts +9 -0
  19. package/dist/destinations/ms-bing-ads-audiences/utils.js +107 -0
  20. package/dist/destinations/ms-bing-ads-audiences/utils.js.map +1 -0
  21. package/package.json +4 -4
@@ -113,9 +113,6 @@ async function processData(input, subscriptionMetadata) {
113
113
  if (input.payloads[0].s3_aws_bucket_name && !(0, s3_1.isValidS3BucketName)(input.payloads[0].s3_aws_bucket_name)) {
114
114
  throw new actions_core_1.PayloadValidationError(`Invalid S3 bucket name: "${input.payloads[0].s3_aws_bucket_name}". Bucket names cannot contain '/' characters, must be lowercase, and follow AWS naming conventions.`);
115
115
  }
116
- if (!(input.features && input.features[properties_1.LIVERAMP_LEGACY_FLOW_FLAG_NAME] === true)) {
117
- await (0, s3_1.validateS3Permissions)(input.payloads[0], input.request);
118
- }
119
116
  input.payloads[0].s3_aws_bucket_path = (0, s3_1.normalizeS3Path)(input.payloads[0].s3_aws_bucket_path);
120
117
  if (input.payloads[0].s3_aws_bucket_path && !(0, s3_1.isValidS3Path)(input.payloads[0].s3_aws_bucket_path)) {
121
118
  throw new actions_core_1.PayloadValidationError(`Invalid S3 bucket path. It must be a valid S3 object key, avoid leading/trailing slashes and forbidden characters (e.g., \\ { } ^ [ ] % \` " < > # | ~). Use a relative path like "folder1/folder2".`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredS3/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredS3/index.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,4 @@ declare function uploadS3(payload: Payload, filename: string, fileContent: Buffe
5
5
  declare function isValidS3Path(key: string): boolean;
6
6
  declare function normalizeS3Path(path?: string): string | undefined;
7
7
  declare function isValidS3BucketName(bucketName: string): boolean;
8
- declare function validateS3Permissions(payload: Payload, request: <Data = unknown>(url: string, options?: RequestOptions) => Promise<ModifiedResponse<Data>>): Promise<void>;
9
- export { validateS3, uploadS3, isValidS3Path, normalizeS3Path, isValidS3BucketName, validateS3Permissions };
8
+ export { validateS3, uploadS3, isValidS3Path, normalizeS3Path, isValidS3BucketName };
@@ -8,7 +8,6 @@ exports.uploadS3 = uploadS3;
8
8
  exports.isValidS3Path = isValidS3Path;
9
9
  exports.normalizeS3Path = normalizeS3Path;
10
10
  exports.isValidS3BucketName = isValidS3BucketName;
11
- exports.validateS3Permissions = validateS3Permissions;
12
11
  const s3_1 = __importDefault(require("../../../lib/AWS/s3"));
13
12
  const actions_core_1 = require("@segment/actions-core");
14
13
  function validateS3(payload) {
@@ -91,36 +90,4 @@ function isValidS3BucketName(bucketName) {
91
90
  }
92
91
  return true;
93
92
  }
94
- async function validateS3Permissions(payload, request) {
95
- if (!payload.s3_aws_access_key ||
96
- !payload.s3_aws_secret_key ||
97
- !payload.s3_aws_bucket_name ||
98
- !payload.s3_aws_region) {
99
- throw new actions_core_1.PayloadValidationError('Missing required S3 credentials.');
100
- }
101
- try {
102
- const method = 'HEAD';
103
- const opts = await (0, s3_1.default)(payload.s3_aws_bucket_name, payload.s3_aws_region, '', method, '', payload.s3_aws_access_key, payload.s3_aws_secret_key);
104
- if (!opts.headers || !opts.method || !opts.host) {
105
- throw new actions_core_1.InvalidAuthenticationError('Unable to generate signature header for AWS S3 permission check.');
106
- }
107
- await request(`https://${opts.host}`, {
108
- headers: opts.headers,
109
- method
110
- });
111
- }
112
- catch (error) {
113
- const status = error?.response?.status || error?.status;
114
- if (status === 403 || status === 401) {
115
- throw new actions_core_1.InvalidAuthenticationError(`AWS IAM credentials are invalid or do not have permission to access S3 bucket "${payload.s3_aws_bucket_name}". Please verify your access key, secret key, and bucket permissions.`);
116
- }
117
- if (status === 404) {
118
- throw new actions_core_1.InvalidAuthenticationError(`S3 bucket "${payload.s3_aws_bucket_name}" does not exist or is not accessible with the provided credentials.`);
119
- }
120
- if (status === 400) {
121
- throw new actions_core_1.InvalidAuthenticationError(`Bad request when accessing S3 bucket "${payload.s3_aws_bucket_name}". Please verify your AWS region and bucket configuration.`);
122
- }
123
- throw error;
124
- }
125
- }
126
93
  //# sourceMappingURL=s3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredS3/s3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredS3/s3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { InputField } from '@segment/actions-core/destination-kit/types';
2
+ export declare const audience_id: InputField;
3
+ export declare const identifier_type: InputField;
4
+ export declare const email: InputField;
5
+ export declare const crm_id: InputField;
6
+ export declare const operation: InputField;
7
+ export declare const enable_batching: InputField;
8
+ export declare const batch_size: InputField;
9
+ export declare const batch_keys: InputField;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.batch_keys = exports.batch_size = exports.enable_batching = exports.operation = exports.crm_id = exports.email = exports.identifier_type = exports.audience_id = void 0;
4
+ exports.audience_id = {
5
+ label: 'Audience ID',
6
+ description: 'The ID of the audience to which you want to add or remove users.',
7
+ type: 'string',
8
+ required: true,
9
+ default: {
10
+ '@path': '$.context.personas.external_audience_id'
11
+ },
12
+ unsafe_hidden: true
13
+ };
14
+ exports.identifier_type = {
15
+ label: 'Identifier Type',
16
+ description: 'The type of identifier you are using to sync users.',
17
+ type: 'string',
18
+ required: true,
19
+ default: 'Email',
20
+ choices: [
21
+ { label: 'Email', value: 'Email' },
22
+ { label: 'CRM ID', value: 'CRM' }
23
+ ]
24
+ };
25
+ exports.email = {
26
+ label: 'Email',
27
+ description: 'The email address of the user to add or remove from the audience.',
28
+ type: 'string',
29
+ required: false,
30
+ default: {
31
+ '@path': '$.traits.email'
32
+ },
33
+ category: 'hashedPII',
34
+ format: 'email'
35
+ };
36
+ exports.crm_id = {
37
+ label: 'CRM ID',
38
+ description: 'The CRM ID of the user to add or remove from the audience.',
39
+ type: 'string',
40
+ required: false,
41
+ default: {
42
+ '@path': '$.userId'
43
+ }
44
+ };
45
+ exports.operation = {
46
+ label: 'Operation',
47
+ description: 'The operation to perform on the audience.',
48
+ type: 'string',
49
+ required: true,
50
+ default: 'Add',
51
+ choices: [
52
+ { label: 'Add', value: 'Add' },
53
+ { label: 'Remove', value: 'Remove' }
54
+ ]
55
+ };
56
+ exports.enable_batching = {
57
+ label: 'Enable Batching',
58
+ description: 'Enable batching of user syncs to optimize performance. When enabled, user syncs will be sent in batches based on the specified batch size.',
59
+ type: 'boolean',
60
+ required: true,
61
+ default: true
62
+ };
63
+ exports.batch_size = {
64
+ label: 'Batch Size',
65
+ description: 'The number of user syncs to include in each batch when batching is enabled. Must be between 1 and 1000.',
66
+ type: 'number',
67
+ required: true,
68
+ default: 1000,
69
+ unsafe_hidden: true
70
+ };
71
+ exports.batch_keys = {
72
+ label: 'Batch Keys',
73
+ description: 'The keys to use for batching user syncs. Users with the same values for these keys will be grouped together in the same batch.',
74
+ type: 'string',
75
+ required: false,
76
+ default: ['identifier_type', 'audience_id', 'operation'],
77
+ unsafe_hidden: true,
78
+ multiple: true
79
+ };
80
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/destinations/ms-bing-ads-audiences/fields.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAe;IACrC,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,kEAAkE;IAC/E,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE;QACP,OAAO,EAAE,yCAAyC;KACnD;IACD,aAAa,EAAE,IAAI;CACpB,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QAClC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;KAClC;CACF,CAAA;AAEY,QAAA,KAAK,GAAe;IAC/B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,mEAAmE;IAChF,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE,gBAAgB;KAC1B;IACD,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,OAAO;CAChB,CAAA;AAEY,QAAA,MAAM,GAAe;IAChC,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,4DAA4D;IACzE,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE,UAAU;KACpB;CACF,CAAA;AAEY,QAAA,SAAS,GAAe;IACnC,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,2CAA2C;IACxD,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9B,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACrC;CACF,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,4IAA4I;IAC9I,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EACT,yGAAyG;IAC3G,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;CACpB,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EACT,gIAAgI;IAClI,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,WAAW,CAAC;IACxD,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;CACf,CAAA"}
@@ -1,2 +1,5 @@
1
1
  export interface Settings {
2
+ developerToken: string;
3
+ customerAccountId: string;
4
+ customerId: string;
2
5
  }
@@ -1,4 +1,4 @@
1
- import type { AudienceDestinationDefinition } from '@segment/actions-core';
1
+ import { AudienceDestinationDefinition } from '@segment/actions-core';
2
2
  import type { Settings } from './generated-types';
3
3
  declare const destination: AudienceDestinationDefinition<Settings>;
4
4
  export default destination;
@@ -3,19 +3,59 @@ 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 actions_core_1 = require("@segment/actions-core");
6
7
  const syncAudiences_1 = __importDefault(require("./syncAudiences"));
8
+ const constants_1 = require("./constants");
7
9
  const destination = {
8
10
  name: 'Ms Bing Ads Audiences',
9
11
  slug: 'actions-ms-bing-ads-audiences',
10
12
  mode: 'cloud',
11
13
  authentication: {
12
14
  scheme: 'oauth2',
13
- fields: {}
15
+ fields: {
16
+ developerToken: {
17
+ label: 'Developer Token',
18
+ description: 'The developer token for authenticating API requests. You can find it in the Microsoft Advertising UI under Settings → Developer Settings.',
19
+ type: 'string',
20
+ required: true
21
+ },
22
+ customerAccountId: {
23
+ label: 'Customer Account ID',
24
+ description: 'The account ID of the Microsoft Advertising account you want to manage. You can find it in the URL when viewing the account in the Microsoft Ads UI.',
25
+ type: 'string',
26
+ required: true
27
+ },
28
+ customerId: {
29
+ label: 'Customer ID',
30
+ description: 'The customer (parent) ID associated with your Microsoft Advertising account. You can also find this in the URL when viewing your account in the Microsoft Ads UI.',
31
+ type: 'string',
32
+ required: true
33
+ }
34
+ },
35
+ refreshAccessToken: async (request, { auth }) => {
36
+ const res = await request(constants_1.TOKEN_URL, {
37
+ method: 'POST',
38
+ body: new URLSearchParams({
39
+ refresh_token: auth.refreshToken,
40
+ client_id: auth.clientId,
41
+ client_secret: auth.clientSecret,
42
+ grant_type: 'refresh_token',
43
+ scope: 'https://ads.microsoft.com/msads.manage offline_access'
44
+ })
45
+ });
46
+ return {
47
+ accessToken: res?.data?.access_token,
48
+ refreshToken: res?.data?.refresh_token || auth.refreshToken
49
+ };
50
+ }
14
51
  },
15
- extendRequest({ auth }) {
52
+ extendRequest({ auth, settings }) {
16
53
  return {
17
54
  headers: {
18
- authorization: `Bearer ${auth?.accessToken}`
55
+ Authorization: `Bearer ${auth?.accessToken}`,
56
+ DeveloperToken: settings?.developerToken,
57
+ CustomerAccountId: settings?.customerAccountId,
58
+ CustomerId: settings?.customerId
19
59
  }
20
60
  };
21
61
  },
@@ -24,6 +64,45 @@ const destination = {
24
64
  mode: {
25
65
  type: 'synced',
26
66
  full_audience_sync: false
67
+ },
68
+ createAudience: async (request, createAudienceInput) => {
69
+ const audienceName = createAudienceInput?.audienceName;
70
+ if (!audienceName) {
71
+ throw new actions_core_1.PayloadValidationError('Missing audience name value');
72
+ }
73
+ const response = await request(`${constants_1.BASE_URL}/Audiences`, {
74
+ method: 'POST',
75
+ json: {
76
+ Audiences: [
77
+ {
78
+ Name: audienceName,
79
+ Type: 'CustomerList'
80
+ }
81
+ ]
82
+ }
83
+ });
84
+ if (response?.data?.PartialErrors?.length) {
85
+ const errorObj = response.data.PartialErrors[0];
86
+ if (errorObj?.ErrorCode === 'CustomerListTermsAndConditionsNotAccepted') {
87
+ throw new actions_core_1.IntegrationError("The Customer Match 'Terms And Conditions' are not yet Accepted in the Microsoft Advertising web UI. Please create a Customer List in the Microsoft Advertising UI to accept the terms.", 'TERMS_NOT_ACCEPTED', 400);
88
+ }
89
+ }
90
+ const audienceId = response?.data?.AudienceIds?.[0];
91
+ if (!audienceId) {
92
+ throw new actions_core_1.IntegrationError('Failed to create audience: No AudienceId returned', 'NO_AUDIENCE_ID', 400);
93
+ }
94
+ return { externalId: audienceId };
95
+ },
96
+ getAudience: async (request, getAudienceInput) => {
97
+ const audienceId = getAudienceInput?.externalId;
98
+ const response = await request(`${constants_1.BASE_URL}/Audiences/QueryByIds`, {
99
+ method: 'POST',
100
+ json: {
101
+ AudienceIds: [audienceId],
102
+ Type: 'CustomerList'
103
+ }
104
+ });
105
+ return { externalId: response?.data?.Audiences?.[0]?.Id };
27
106
  }
28
107
  },
29
108
  actions: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/ms-bing-ads-audiences/index.ts"],"names":[],"mappings":";;;;;AAEA,oEAA2C;AAG3C,MAAM,WAAW,GAA4C;IAC3D,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,EAAE;KAoBX;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,EAAE,WAAW,EAAE;aAC7C;SACF,CAAA;IACH,CAAC;IAED,cAAc,EAAE,EAAE;IAElB,cAAc,EAAE;QACd,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,KAAK;SAC1B;KAaF;IAQD,OAAO,EAAE;QACP,aAAa,EAAb,uBAAa;KACd;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/ms-bing-ads-audiences/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,9 @@
1
1
  export interface Payload {
2
+ audience_id: string;
3
+ identifier_type: string;
4
+ email?: string;
5
+ crm_id?: string;
6
+ operation: string;
7
+ enable_batching: boolean;
8
+ batch_size: number;
2
9
  }
@@ -1,4 +1,4 @@
1
- import type { ActionDefinition } from '@segment/actions-core';
1
+ import { ActionDefinition } from '@segment/actions-core';
2
2
  import type { Settings } from '../generated-types';
3
3
  import type { Payload } from './generated-types';
4
4
  declare const action: ActionDefinition<Settings, Payload>;
@@ -1,15 +1,58 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const actions_core_2 = require("@segment/actions-core");
5
+ const fields_1 = require("../fields");
6
+ const utils_1 = require("../utils");
3
7
  const action = {
4
8
  title: 'Sync Audiences',
5
- description: 'Sync users to Bing Ads',
6
- fields: {},
7
- perform: (request, data) => {
8
- return request('https://example.com', {
9
- method: 'post',
10
- json: data.payload
11
- });
9
+ description: 'Sync users to Microsoft Bing Ads Audiences',
10
+ fields: {
11
+ audience_id: fields_1.audience_id,
12
+ identifier_type: fields_1.identifier_type,
13
+ email: fields_1.email,
14
+ crm_id: fields_1.crm_id,
15
+ operation: fields_1.operation,
16
+ enable_batching: fields_1.enable_batching,
17
+ batch_size: fields_1.batch_size
18
+ },
19
+ perform: async (request, { payload }) => {
20
+ return await syncUser(request, [payload], false);
21
+ },
22
+ performBatch: async (request, { payload }) => {
23
+ return await syncUser(request, payload, true);
12
24
  }
13
25
  };
26
+ const syncUser = async (request, payload, isBatch) => {
27
+ const msResponse = new actions_core_2.MultiStatusResponse();
28
+ if (!Array.isArray(payload) || payload.length === 0) {
29
+ return msResponse;
30
+ }
31
+ const identifierType = payload[0]?.identifier_type;
32
+ const audienceId = payload[0]?.audience_id;
33
+ const action = payload[0]?.operation;
34
+ const listItemsMap = (0, utils_1.prepareListItems)(payload, identifierType, msResponse);
35
+ if (listItemsMap.size === 0) {
36
+ return msResponse;
37
+ }
38
+ const validItems = Array.from(listItemsMap.keys());
39
+ const preparedPayload = (0, utils_1.preparePayload)(audienceId, action, identifierType, validItems);
40
+ try {
41
+ const response = await (0, utils_1.sendDataToMicrosoftBingAds)(request, preparedPayload);
42
+ (0, utils_1.handleMultistatusResponse)(msResponse, response, validItems, listItemsMap, payload, isBatch);
43
+ }
44
+ catch (error) {
45
+ if (!isBatch) {
46
+ throw error;
47
+ }
48
+ if (error instanceof actions_core_1.HTTPError) {
49
+ await (0, utils_1.handleHttpError)(msResponse, error, listItemsMap, payload);
50
+ }
51
+ else {
52
+ throw error;
53
+ }
54
+ }
55
+ return msResponse;
56
+ };
14
57
  exports.default = action;
15
58
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/ms-bing-ads-audiences/syncAudiences/index.ts"],"names":[],"mappings":";;AAIA,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,wBAAwB;IACrC,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAEzB,OAAO,OAAO,CAAC,qBAAqB,EAAE;YACpC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,OAAO;SACnB,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/ms-bing-ads-audiences/syncAudiences/index.ts"],"names":[],"mappings":";;AAAA,wDAAkF;AAClF,wDAA2D;AAG3D,sCAA+G;AAC/G,oCAMiB;AAEjB,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,4CAA4C;IACzD,MAAM,EAAE;QACN,WAAW,EAAE,oBAAW;QACxB,eAAe,EAAE,wBAAe;QAChC,KAAK,EAAE,cAAK;QACZ,MAAM,EAAE,eAAM;QACd,SAAS,EAAE,kBAAS;QACpB,eAAe,EAAE,wBAAe;QAChC,UAAU,EAAE,mBAAU;KACvB;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3C,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA;AAeD,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAsB,EAAE,OAAkB,EAAE,OAAgB,EAAE,EAAE;IACtF,MAAM,UAAU,GAAG,IAAI,kCAAmB,EAAE,CAAA;IAE5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,eAAe,CAAA;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAA;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAA;IAGpC,MAAM,YAAY,GAAG,IAAA,wBAAgB,EAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,CAAA;IAG1E,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAA;IACnB,CAAC;IAGD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAA;IAClD,MAAM,eAAe,GAAG,IAAA,sBAAc,EAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAA;IAEtF,IAAI,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAA,kCAA0B,EAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAG3E,IAAA,iCAAyB,EAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,KAAK,YAAY,wBAAS,EAAE,CAAC;YAC/B,MAAM,IAAA,uBAAe,EAAC,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -2,19 +2,20 @@ export interface RefreshTokenResponse {
2
2
  access_token: string;
3
3
  refresh_token?: string;
4
4
  }
5
+ export interface PartialError {
6
+ FieldPath: string | null;
7
+ ErrorCode: string;
8
+ Message: string;
9
+ Code: number;
10
+ Details: string | null;
11
+ Index: number;
12
+ Type: string;
13
+ ForwardCompatibilityMap: null;
14
+ }
5
15
  export interface CreateAudienceResponse {
6
16
  data: {
7
17
  AudienceIds: string[];
8
- PartialErrors: {
9
- FieldPath: string | null;
10
- ErrorCode: string;
11
- Message: string;
12
- Code: number;
13
- Details: string | null;
14
- Index: number;
15
- Type: string;
16
- ForwardCompatibilityMap: null;
17
- }[];
18
+ PartialErrors: PartialError[];
18
19
  };
19
20
  }
20
21
  export interface GetAudienceResponse {
@@ -27,3 +28,11 @@ export interface GetAudienceResponse {
27
28
  PartialErrors: [];
28
29
  };
29
30
  }
31
+ export interface syncAudiencePayload {
32
+ CustomerListUserData: {
33
+ ActionType: string;
34
+ AudienceId: string;
35
+ CustomerListItemSubType: string;
36
+ CustomerListItems: string[];
37
+ };
38
+ }
@@ -0,0 +1,9 @@
1
+ import { Payload } from './syncAudiences/generated-types';
2
+ import { MultiStatusResponse, RequestClient, HTTPError, ModifiedResponse } from '@segment/actions-core';
3
+ import { syncAudiencePayload } from './types';
4
+ export declare const hashEmail: (item: string) => string;
5
+ export declare const prepareListItems: (payload: Payload[], identifierType: string, msResponse: MultiStatusResponse) => Map<string, number>;
6
+ export declare const preparePayload: (audienceId: string, action: string, identifierType: string, listItems: string[]) => syncAudiencePayload;
7
+ export declare const sendDataToMicrosoftBingAds: (request: RequestClient, payload: syncAudiencePayload) => Promise<ModifiedResponse<unknown>>;
8
+ export declare const handleMultistatusResponse: (msResponse: MultiStatusResponse, response: ModifiedResponse, validItems: string[], listItemsMap: Map<string, number>, payload: Payload[], isBatch: boolean) => void;
9
+ export declare const handleHttpError: (msResponse: MultiStatusResponse, error: HTTPError, listItemsMap: Map<string, number>, payload: Payload[]) => Promise<void>;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleHttpError = exports.handleMultistatusResponse = exports.sendDataToMicrosoftBingAds = exports.preparePayload = exports.prepareListItems = exports.hashEmail = void 0;
4
+ const hashing_utils_1 = require("../../lib/hashing-utils");
5
+ const actions_core_1 = require("@segment/actions-core");
6
+ const constants_1 = require("./constants");
7
+ const hashEmail = (item) => {
8
+ return (0, hashing_utils_1.processHashing)(item, 'sha256', 'hex', (value) => value.trim().toLowerCase());
9
+ };
10
+ exports.hashEmail = hashEmail;
11
+ const prepareListItems = (payload, identifierType, msResponse) => {
12
+ const listItemsMap = new Map();
13
+ payload.forEach((item, index) => {
14
+ const { email, crm_id } = item;
15
+ if (identifierType === 'Email') {
16
+ if (!email) {
17
+ msResponse.setErrorResponseAtIndex(index, {
18
+ status: 400,
19
+ errortype: actions_core_1.ErrorCodes.BAD_REQUEST,
20
+ errormessage: 'Email is required when Identifier Type is set to Email',
21
+ sent: item
22
+ });
23
+ }
24
+ else {
25
+ listItemsMap.set((0, exports.hashEmail)(email), index);
26
+ }
27
+ }
28
+ if (identifierType === 'CRM') {
29
+ if (!crm_id) {
30
+ msResponse.setErrorResponseAtIndex(index, {
31
+ status: 400,
32
+ errortype: actions_core_1.ErrorCodes.BAD_REQUEST,
33
+ errormessage: 'CRM ID is required when Identifier Type is set to CRM ID',
34
+ sent: item
35
+ });
36
+ }
37
+ else {
38
+ listItemsMap.set(crm_id, index);
39
+ }
40
+ }
41
+ });
42
+ return listItemsMap;
43
+ };
44
+ exports.prepareListItems = prepareListItems;
45
+ const preparePayload = (audienceId, action, identifierType, listItems) => {
46
+ return {
47
+ CustomerListUserData: {
48
+ ActionType: action,
49
+ AudienceId: audienceId,
50
+ CustomerListItemSubType: identifierType,
51
+ CustomerListItems: listItems
52
+ }
53
+ };
54
+ };
55
+ exports.preparePayload = preparePayload;
56
+ const sendDataToMicrosoftBingAds = async (request, payload) => {
57
+ const response = await request(`${constants_1.BASE_URL}/CustomerListUserData/Apply`, {
58
+ method: 'POST',
59
+ json: payload
60
+ });
61
+ return response;
62
+ };
63
+ exports.sendDataToMicrosoftBingAds = sendDataToMicrosoftBingAds;
64
+ const handleMultistatusResponse = (msResponse, response, validItems, listItemsMap, payload, isBatch) => {
65
+ const responseData = response?.data;
66
+ if (responseData?.PartialErrors && responseData.PartialErrors.length > 0) {
67
+ if (!isBatch) {
68
+ throw new actions_core_1.IntegrationError(responseData.PartialErrors[0].Message, 'PartialErrors', 400);
69
+ }
70
+ responseData.PartialErrors.forEach((error) => {
71
+ if (typeof error.Index === 'number' && error.Index >= 0 && error.Index < validItems.length) {
72
+ const item = validItems[error.Index];
73
+ const originalIndex = listItemsMap.get(item);
74
+ if (originalIndex !== undefined) {
75
+ msResponse.setErrorResponseAtIndex(originalIndex, {
76
+ status: error.Code || 400,
77
+ errormessage: `${error.ErrorCode ?? 'UnknownError'}: ${error.Message ?? 'No error message provided'}`,
78
+ sent: payload[originalIndex],
79
+ body: JSON.stringify(error)
80
+ });
81
+ listItemsMap.delete(item);
82
+ }
83
+ }
84
+ });
85
+ }
86
+ listItemsMap.forEach((index) => {
87
+ msResponse.setSuccessResponseAtIndex(index, {
88
+ status: 200,
89
+ sent: payload[index],
90
+ body: JSON.stringify(response?.data) || 'Success'
91
+ });
92
+ });
93
+ };
94
+ exports.handleMultistatusResponse = handleMultistatusResponse;
95
+ const handleHttpError = async (msResponse, error, listItemsMap, payload) => {
96
+ const errorResponse = await error?.response?.json();
97
+ listItemsMap.forEach((index) => {
98
+ msResponse.setErrorResponseAtIndex(index, {
99
+ status: errorResponse?.status,
100
+ errormessage: errorResponse?.message || error.message,
101
+ sent: payload[index],
102
+ body: JSON.stringify(errorResponse)
103
+ });
104
+ });
105
+ };
106
+ exports.handleHttpError = handleHttpError;
107
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/ms-bing-ads-audiences/utils.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAExD,wDAQ8B;AAC9B,2CAAsC;AAW/B,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;IAChD,OAAO,IAAA,8BAAc,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AACrF,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB;AAaM,MAAM,gBAAgB,GAAG,CAC9B,OAAkB,EAClB,cAAsB,EACtB,UAA+B,EACV,EAAE;IACvB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE9C,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAC9B,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,UAAU,CAAC,uBAAuB,CAAC,KAAK,EAAE;oBACxC,MAAM,EAAE,GAAG;oBACX,SAAS,EAAE,yBAAU,CAAC,WAAW;oBACjC,YAAY,EAAE,wDAAwD;oBACtE,IAAI,EAAE,IAAiC;iBACxC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,GAAG,CAAC,IAAA,iBAAS,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,UAAU,CAAC,uBAAuB,CAAC,KAAK,EAAE;oBACxC,MAAM,EAAE,GAAG;oBACX,SAAS,EAAE,yBAAU,CAAC,WAAW;oBACjC,YAAY,EAAE,0DAA0D;oBACxE,IAAI,EAAE,IAAiC;iBACxC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AApCY,QAAA,gBAAgB,oBAoC5B;AAWM,MAAM,cAAc,GAAG,CAC5B,UAAkB,EAClB,MAAc,EACd,cAAsB,EACtB,SAAmB,EACE,EAAE;IACvB,OAAO;QACL,oBAAoB,EAAE;YACpB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,UAAU;YACtB,uBAAuB,EAAE,cAAc;YACvC,iBAAiB,EAAE,SAAS;SAC7B;KACF,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,cAAc,kBAc1B;AASM,MAAM,0BAA0B,GAAG,KAAK,EAAE,OAAsB,EAAE,OAA4B,EAAE,EAAE;IACvG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,oBAAQ,6BAA6B,EAAE;QACvE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO;KACd,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AANY,QAAA,0BAA0B,8BAMtC;AAeM,MAAM,yBAAyB,GAAG,CACvC,UAA+B,EAC/B,QAA0B,EAC1B,UAAoB,EACpB,YAAiC,EACjC,OAAkB,EAClB,OAAgB,EACV,EAAE;IACR,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAsD,CAAA;IAErF,IAAI,YAAY,EAAE,aAAa,IAAI,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,+BAAgB,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;QACzF,CAAC;QAED,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAmB,EAAE,EAAE;YAEzD,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC3F,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACpC,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAE5C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAChC,UAAU,CAAC,uBAAuB,CAAC,aAAa,EAAE;wBAChD,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG;wBACzB,YAAY,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,cAAc,KAAK,KAAK,CAAC,OAAO,IAAI,2BAA2B,EAAE;wBACrG,IAAI,EAAE,OAAO,CAAC,aAAa,CAA8B;wBACzD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;qBAC5B,CAAC,CAAA;oBAGF,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAGD,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,UAAU,CAAC,yBAAyB,CAAC,KAAK,EAAE;YAC1C,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,OAAO,CAAC,KAAK,CAA8B;YACjD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,SAAS;SAClD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA5CY,QAAA,yBAAyB,6BA4CrC;AAYM,MAAM,eAAe,GAAG,KAAK,EAClC,UAA+B,EAC/B,KAAgB,EAChB,YAAiC,EACjC,OAAkB,EACH,EAAE;IACjB,MAAM,aAAa,GAAG,MAAM,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IACnD,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,UAAU,CAAC,uBAAuB,CAAC,KAAK,EAAE;YACxC,MAAM,EAAE,aAAa,EAAE,MAAM;YAC7B,YAAY,EAAE,aAAa,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO;YACrD,IAAI,EAAE,OAAO,CAAC,KAAK,CAA8B;YACjD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;SACpC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAfY,QAAA,eAAe,mBAe3B"}
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.421.1-staging-007a4a4c2.0",
4
+ "version": "3.421.1-staging-aa90b3e96.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -46,8 +46,8 @@
46
46
  "@aws-sdk/client-sts": "3.614.0",
47
47
  "@bufbuild/protobuf": "^2.2.3",
48
48
  "@segment/a1-notation": "^2.1.4",
49
- "@segment/actions-core": "3.159.1-staging-0127f7f06.0",
50
- "@segment/actions-shared": "1.140.1-staging-0127f7f06.0",
49
+ "@segment/actions-core": "3.159.1-staging-81dcc83e5.0",
50
+ "@segment/actions-shared": "1.140.1-staging-81dcc83e5.0",
51
51
  "@types/node": "^22.13.1",
52
52
  "ajv-formats": "^2.1.1",
53
53
  "aws4": "^1.12.0",
@@ -91,5 +91,5 @@
91
91
  "__tests__/__helpers__/"
92
92
  ]
93
93
  },
94
- "gitHead": "af87419c37161d25e36cd6a870d75e6f2f12691a"
94
+ "gitHead": "1692f34fd487c8fa2fdb9c1304ac732d501a5917"
95
95
  }