@segment/action-destinations 3.219.0-staging.0 → 3.220.0-2309183b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/destinations/engage/twilio/utils/PhoneMessageSender.js +0 -1
  2. package/dist/destinations/engage/twilio/utils/PhoneMessageSender.js.map +1 -1
  3. package/dist/destinations/index.js +1 -2
  4. package/dist/destinations/index.js.map +1 -1
  5. package/dist/destinations/klaviyo/index.js +5 -9
  6. package/dist/destinations/klaviyo/index.js.map +1 -1
  7. package/dist/destinations/klaviyo/upsertProfile/generated-types.d.ts +1 -21
  8. package/dist/destinations/klaviyo/upsertProfile/index.js +5 -150
  9. package/dist/destinations/klaviyo/upsertProfile/index.js.map +1 -1
  10. package/dist/destinations/liveramp-audiences/audienceEnteredSFTP.types.d.ts +16 -0
  11. package/dist/destinations/{klaviyo/orderCompleted/generated-types.js → liveramp-audiences/audienceEnteredSFTP.types.js} +1 -1
  12. package/dist/destinations/liveramp-audiences/audienceEnteredSFTP.types.js.map +1 -0
  13. package/dist/destinations/segment-profiles/segment-properties.d.ts +1 -0
  14. package/dist/destinations/segment-profiles/segment-properties.js +9 -1
  15. package/dist/destinations/segment-profiles/segment-properties.js.map +1 -1
  16. package/dist/destinations/segment-profiles/sendGroup/generated-types.d.ts +1 -0
  17. package/dist/destinations/segment-profiles/sendGroup/index.js +3 -1
  18. package/dist/destinations/segment-profiles/sendGroup/index.js.map +1 -1
  19. package/dist/destinations/segment-profiles/sendIdentify/generated-types.d.ts +1 -0
  20. package/dist/destinations/segment-profiles/sendIdentify/index.js +3 -1
  21. package/dist/destinations/segment-profiles/sendIdentify/index.js.map +1 -1
  22. package/dist/destinations/segment-profiles/sendSubscription/generated-types.d.ts +1 -0
  23. package/dist/destinations/segment-profiles/sendSubscription/index.js +4 -1
  24. package/dist/destinations/segment-profiles/sendSubscription/index.js.map +1 -1
  25. package/dist/destinations/the-trade-desk-crm/functions.js +7 -1
  26. package/dist/destinations/the-trade-desk-crm/functions.js.map +1 -1
  27. package/dist/destinations/the-trade-desk-crm/index.js +1 -1
  28. package/dist/destinations/yahoo-audiences/generated-types.d.ts +2 -4
  29. package/dist/destinations/yahoo-audiences/index.js +47 -42
  30. package/dist/destinations/yahoo-audiences/index.js.map +1 -1
  31. package/dist/destinations/yahoo-audiences/types.d.ts +6 -0
  32. package/dist/destinations/yahoo-audiences/updateSegment/generated-types.d.ts +4 -5
  33. package/dist/destinations/yahoo-audiences/updateSegment/index.d.ts +2 -2
  34. package/dist/destinations/yahoo-audiences/updateSegment/index.js +54 -59
  35. package/dist/destinations/yahoo-audiences/updateSegment/index.js.map +1 -1
  36. package/dist/destinations/yahoo-audiences/utils-rt.d.ts +3 -3
  37. package/dist/destinations/yahoo-audiences/utils-rt.js +28 -20
  38. package/dist/destinations/yahoo-audiences/utils-rt.js.map +1 -1
  39. package/dist/destinations/yahoo-audiences/utils-tax.d.ts +3 -5
  40. package/dist/destinations/yahoo-audiences/utils-tax.js +28 -17
  41. package/dist/destinations/yahoo-audiences/utils-tax.js.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/destinations/klaviyo/config.d.ts +0 -1
  44. package/dist/destinations/klaviyo/config.js +0 -5
  45. package/dist/destinations/klaviyo/config.js.map +0 -1
  46. package/dist/destinations/klaviyo/orderCompleted/generated-types.d.ts +0 -22
  47. package/dist/destinations/klaviyo/orderCompleted/generated-types.js.map +0 -1
  48. package/dist/destinations/klaviyo/orderCompleted/index.d.ts +0 -5
  49. package/dist/destinations/klaviyo/orderCompleted/index.js +0 -152
  50. package/dist/destinations/klaviyo/orderCompleted/index.js.map +0 -1
  51. package/dist/destinations/klaviyo/trackEvent/generated-types.d.ts +0 -16
  52. package/dist/destinations/klaviyo/trackEvent/generated-types.js +0 -3
  53. package/dist/destinations/klaviyo/trackEvent/generated-types.js.map +0 -1
  54. package/dist/destinations/klaviyo/trackEvent/index.d.ts +0 -5
  55. package/dist/destinations/klaviyo/trackEvent/index.js +0 -118
  56. package/dist/destinations/klaviyo/trackEvent/index.js.map +0 -1
  57. package/dist/destinations/klaviyo/types.d.ts +0 -61
  58. package/dist/destinations/klaviyo/types.js +0 -8
  59. package/dist/destinations/klaviyo/types.js.map +0 -1
  60. package/dist/destinations/yahoo-audiences/createCustomerNode/generated-types.d.ts +0 -4
  61. package/dist/destinations/yahoo-audiences/createCustomerNode/generated-types.js +0 -3
  62. package/dist/destinations/yahoo-audiences/createCustomerNode/generated-types.js.map +0 -1
  63. package/dist/destinations/yahoo-audiences/createCustomerNode/index.d.ts +0 -5
  64. package/dist/destinations/yahoo-audiences/createCustomerNode/index.js +0 -33
  65. package/dist/destinations/yahoo-audiences/createCustomerNode/index.js.map +0 -1
  66. package/dist/destinations/yahoo-audiences/createSegment/generated-types.d.ts +0 -6
  67. package/dist/destinations/yahoo-audiences/createSegment/generated-types.js +0 -3
  68. package/dist/destinations/yahoo-audiences/createSegment/generated-types.js.map +0 -1
  69. package/dist/destinations/yahoo-audiences/createSegment/index.d.ts +0 -5
  70. package/dist/destinations/yahoo-audiences/createSegment/index.js +0 -45
  71. package/dist/destinations/yahoo-audiences/createSegment/index.js.map +0 -1
  72. package/dist/destinations/yahoo-audiences/utils.d.ts +0 -4
  73. package/dist/destinations/yahoo-audiences/utils.js +0 -30
  74. package/dist/destinations/yahoo-audiences/utils.js.map +0 -1
@@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const actions_core_1 = require("@segment/actions-core");
7
7
  const utils_rt_1 = require("./utils-rt");
8
8
  const updateSegment_1 = __importDefault(require("./updateSegment"));
9
- const createSegment_1 = __importDefault(require("./createSegment"));
10
- const createCustomerNode_1 = __importDefault(require("./createCustomerNode"));
11
9
  const utils_tax_1 = require("./utils-tax");
12
10
  const destination = {
13
11
  name: 'Yahoo Audiences',
14
12
  slug: 'actions-yahoo-audiences',
15
13
  mode: 'cloud',
14
+ description: 'Sync Segment Engage Audiences to Yahoo Ads',
16
15
  authentication: {
17
16
  scheme: 'oauth2',
18
17
  fields: {
@@ -22,41 +21,31 @@ const destination = {
22
21
  type: 'string',
23
22
  required: true
24
23
  },
25
- taxonomy_client_key: {
26
- label: 'Yahoo Taxonomy API client Id',
27
- description: 'Taxonomy API client Id. Required to update Yahoo taxonomy',
28
- type: 'string',
29
- required: true
30
- },
31
- taxonomy_client_secret: {
32
- label: 'Yahoo Taxonomy API client secret',
33
- description: 'Taxonomy API client secret. Required to update Yahoo taxonomy',
34
- type: 'string',
35
- required: true
36
- },
37
24
  engage_space_id: {
38
25
  label: 'Engage Space Id',
39
- description: 'Required to create customer and segment nodes in Taxonomy. Provide Engage Space Id found in Unify > Settings > API Access. This maps to the "Id" and "Name" of the top-level Customer node in Yahoo taxonomy',
26
+ description: 'Engage Space Id found in Unify > Settings > API Access',
40
27
  type: 'string',
41
28
  required: true
42
29
  },
43
30
  customer_desc: {
44
31
  label: 'Customer Description',
45
- description: 'Required to create customer node in Taxonomy. Provide a description for the Customer node in Yahoo taxonomy. This must be less then 1000 characters',
32
+ description: 'Engage space name and description',
46
33
  type: 'string',
47
34
  required: false
48
35
  }
49
36
  },
50
- testAuthentication: async (request, input) => {
37
+ testAuthentication: async (request, { settings }) => {
38
+ if (!process.env.ACTIONS_YAHOO_AUDIENCES_TAXONOMY_CLIENT_SECRET) {
39
+ throw new actions_core_1.IntegrationError('Missing Taxonomy API client secret', 'MISSING_REQUIRED_FIELD', 400);
40
+ }
41
+ if (!process.env.ACTIONS_YAHOO_AUDIENCES_TAXONOMY_CLIENT_ID) {
42
+ throw new actions_core_1.IntegrationError('Missing Taxonomy API client Id', 'MISSING_REQUIRED_FIELD', 400);
43
+ }
51
44
  const tx_creds = {
52
- tx_client_key: input.settings.taxonomy_client_key,
53
- tx_client_secret: input.settings.taxonomy_client_secret
54
- };
55
- const data = {
56
- engage_space_id: input.settings.engage_space_id,
57
- customer_desc: input.settings.customer_desc
45
+ tx_client_key: process.env.ACTIONS_YAHOO_AUDIENCES_TAXONOMY_CLIENT_ID,
46
+ tx_client_secret: process.env.ACTIONS_YAHOO_AUDIENCES_TAXONOMY_CLIENT_SECRET
58
47
  };
59
- const body_form_data = utils_tax_1.gen_customer_taxonomy_payload(input.settings, data);
48
+ const body_form_data = utils_tax_1.gen_customer_taxonomy_payload(settings);
60
49
  await utils_tax_1.update_taxonomy('', tx_creds, request, body_form_data);
61
50
  },
62
51
  refreshAccessToken: async (request, { auth }) => {
@@ -80,20 +69,27 @@ const destination = {
80
69
  audienceFields: {
81
70
  audience_id: {
82
71
  type: 'string',
83
- label: 'Advertiser ID',
84
- description: 'The advertiser ID to use when syncing audiences. Required if you wish to create or update an audience.'
72
+ label: 'Audience Id',
73
+ description: 'Segment Audience Id (aud_...)',
74
+ required: true
85
75
  },
86
76
  audience_key: {
87
- label: 'An audience id required by the destination',
88
- description: 'An audience id required by the destination',
77
+ label: 'Audience key',
78
+ description: 'Segment Audience Key',
89
79
  type: 'string',
90
80
  required: true
91
81
  },
92
- engage_space_id: {
93
- label: 'Engage Space Id',
94
- description: 'Engage Space Id',
82
+ identifier: {
83
+ label: 'User Identifier',
84
+ description: 'Specify the identifier(s) to send to Yahoo',
95
85
  type: 'string',
96
- required: true
86
+ required: true,
87
+ default: 'email',
88
+ choices: [
89
+ { value: 'email', label: 'Send email' },
90
+ { value: 'maid', label: 'Send MAID' },
91
+ { value: 'email_maid', label: 'Send email and/or MAID' }
92
+ ]
97
93
  }
98
94
  },
99
95
  audienceConfig: {
@@ -104,25 +100,36 @@ const destination = {
104
100
  async createAudience(request, createAudienceInput) {
105
101
  const audience_id = createAudienceInput.audienceSettings?.audience_id;
106
102
  const audience_key = createAudienceInput.audienceSettings?.audience_key;
107
- const engage_space_id = createAudienceInput.audienceSettings?.engage_space_id;
103
+ const engage_space_id = createAudienceInput.settings?.engage_space_id;
104
+ const identifier = createAudienceInput.audienceSettings?.identifier;
108
105
  if (!audience_id) {
109
- throw new actions_core_1.IntegrationError('Missing audience Id value', 'MISSING_REQUIRED_FIELD', 400);
106
+ throw new actions_core_1.IntegrationError('Create Audience: missing audience Id value', 'MISSING_REQUIRED_FIELD', 400);
110
107
  }
111
108
  if (!audience_key) {
112
- throw new actions_core_1.IntegrationError('Missing audience key value', 'MISSING_REQUIRED_FIELD', 400);
109
+ throw new actions_core_1.IntegrationError('Create Audience: missing audience key value', 'MISSING_REQUIRED_FIELD', 400);
113
110
  }
114
111
  if (!engage_space_id) {
115
- throw new actions_core_1.IntegrationError('Missing Engage space Id type value', 'MISSING_REQUIRED_FIELD', 400);
112
+ throw new actions_core_1.IntegrationError('Create Audience: missing Engage space Id type value', 'MISSING_REQUIRED_FIELD', 400);
113
+ }
114
+ if (!process.env.ACTIONS_YAHOO_AUDIENCES_TAXONOMY_CLIENT_SECRET) {
115
+ throw new actions_core_1.IntegrationError('Missing Taxonomy API client secret', 'MISSING_REQUIRED_FIELD', 400);
116
+ }
117
+ if (!process.env.ACTIONS_YAHOO_AUDIENCES_TAXONOMY_CLIENT_ID) {
118
+ throw new actions_core_1.IntegrationError('Missing Taxonomy API client Id', 'MISSING_REQUIRED_FIELD', 400);
119
+ }
120
+ if (!identifier) {
121
+ throw new actions_core_1.IntegrationError('Create Audience: missing Identifier type value', 'MISSING_REQUIRED_FIELD', 400);
116
122
  }
117
123
  const input = {
118
124
  segment_audience_id: audience_id,
119
125
  segment_audience_key: audience_key,
120
- engage_space_id: engage_space_id
126
+ engage_space_id: engage_space_id,
127
+ identifier: identifier
121
128
  };
122
129
  const body_form_data = utils_tax_1.gen_segment_subtaxonomy_payload(input);
123
130
  const tx_creds = {
124
- tx_client_key: createAudienceInput.settings.taxonomy_client_key,
125
- tx_client_secret: createAudienceInput.settings.taxonomy_client_secret
131
+ tx_client_key: process.env.ACTIONS_YAHOO_AUDIENCES_TAXONOMY_CLIENT_ID,
132
+ tx_client_secret: process.env.ACTIONS_YAHOO_AUDIENCES_TAXONOMY_CLIENT_SECRET
126
133
  };
127
134
  await utils_tax_1.update_taxonomy(engage_space_id, tx_creds, request, body_form_data);
128
135
  return { externalId: audience_id };
@@ -136,9 +143,7 @@ const destination = {
136
143
  }
137
144
  },
138
145
  actions: {
139
- updateSegment: updateSegment_1.default,
140
- createSegment: createSegment_1.default,
141
- createCustomerNode: createCustomerNode_1.default
146
+ updateSegment: updateSegment_1.default
142
147
  }
143
148
  };
144
149
  exports.default = destination;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/yahoo-audiences/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/yahoo-audiences/index.ts"],"names":[],"mappings":"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"}
@@ -23,3 +23,9 @@ export interface YahooPayload {
23
23
  gdpr: boolean;
24
24
  gdpr_euconsent?: string | undefined;
25
25
  }
26
+ export interface YahooSubTaxonomy {
27
+ segment_audience_id: string;
28
+ segment_audience_key: string;
29
+ engage_space_id: string;
30
+ identifier: string;
31
+ }
@@ -5,13 +5,12 @@ export interface Payload {
5
5
  [k: string]: unknown;
6
6
  };
7
7
  segment_computation_action: string;
8
- enable_batching?: boolean & string;
8
+ enable_batching?: boolean;
9
9
  batch_size?: number;
10
10
  email?: string;
11
- advertising_id: string;
12
- device_type: string;
13
- send_advertising_id: boolean;
14
- send_email: boolean;
11
+ advertising_id?: string;
12
+ device_type?: string;
13
+ identifier: string;
15
14
  gdpr_flag: boolean;
16
15
  gdpr_euconsent?: string;
17
16
  }
@@ -1,5 +1,5 @@
1
1
  import type { ActionDefinition } from '@segment/actions-core';
2
- import type { Settings } from '../generated-types';
2
+ import type { Settings, AudienceSettings } from '../generated-types';
3
3
  import type { Payload } from './generated-types';
4
- declare const action: ActionDefinition<Settings, Payload>;
4
+ declare const action: ActionDefinition<Settings, Payload, AudienceSettings>;
5
5
  export default action;
@@ -5,7 +5,7 @@ const utils_rt_1 = require("../utils-rt");
5
5
  const action = {
6
6
  title: 'Sync To Yahoo Ads Segment',
7
7
  description: 'Sync Segment Audience to Yahoo Ads Segment',
8
- defaultSubscription: 'type = "identify" or type = "track"',
8
+ defaultSubscription: 'type = "identify"',
9
9
  fields: {
10
10
  segment_audience_id: {
11
11
  label: 'Segment Audience Id',
@@ -52,60 +52,59 @@ const action = {
52
52
  enable_batching: {
53
53
  label: 'Enable Batching',
54
54
  description: 'Enable batching of requests',
55
- type: 'hidden',
56
- default: true
55
+ type: 'boolean',
56
+ default: true,
57
+ unsafe_hidden: true
57
58
  },
58
59
  batch_size: {
59
60
  label: 'Batch Size',
60
61
  description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower.',
61
62
  type: 'number',
62
63
  unsafe_hidden: true,
63
- required: false,
64
64
  default: 1000
65
65
  },
66
66
  email: {
67
67
  label: 'User Email',
68
68
  description: 'Email address of a user',
69
69
  type: 'hidden',
70
+ required: false,
70
71
  default: {
71
72
  '@if': {
72
- exists: { '@path': '$.context.traits.email' },
73
- then: { '@path': '$.context.traits.email' },
74
- else: { '@path': '$.traits.email' }
73
+ exists: { '@path': '$.traits.email' },
74
+ then: { '@path': '$.traits.email' },
75
+ else: { '@path': '$.properties.email' }
75
76
  }
76
77
  }
77
78
  },
78
79
  advertising_id: {
79
80
  label: 'User Mobile Advertising ID',
80
- description: "User's Mobile Advertising Id",
81
+ description: "User's mobile advertising Id",
81
82
  type: 'hidden',
82
83
  default: {
83
84
  '@path': '$.context.device.advertisingId'
84
85
  },
85
- required: true
86
+ required: false
86
87
  },
87
88
  device_type: {
88
89
  label: 'User Mobile Device Type',
89
- description: "The user's mobile device type",
90
+ description: "User's mobile device type",
90
91
  type: 'hidden',
91
92
  default: {
92
93
  '@path': '$.context.device.type'
93
94
  },
94
- required: true
95
- },
96
- send_advertising_id: {
97
- label: 'Send Mobile Advertising ID',
98
- description: 'Send mobile advertising ID (IDFA or Google Ad Id) to Yahoo. Segment will hash MAIDs',
99
- type: 'boolean',
100
- required: true,
101
- default: true
95
+ required: false
102
96
  },
103
- send_email: {
104
- label: 'Send User Email',
105
- description: 'Send user email to Yahoo. Segment will hash emails',
106
- type: 'boolean',
97
+ identifier: {
98
+ label: 'User Identifier',
99
+ description: 'Specify the identifier(s) to send to Yahoo',
100
+ type: 'string',
107
101
  required: true,
108
- default: true
102
+ default: 'email',
103
+ choices: [
104
+ { value: 'email', label: 'Send email' },
105
+ { value: 'maid', label: 'Send MAID' },
106
+ { value: 'email_maid', label: 'Send email and/or MAID' }
107
+ ]
109
108
  },
110
109
  gdpr_flag: {
111
110
  label: 'GDPR Flag',
@@ -121,47 +120,43 @@ const action = {
121
120
  required: false
122
121
  }
123
122
  },
124
- perform: (request, { payload, auth }) => {
123
+ perform: (request, { payload, auth, audienceSettings }) => {
125
124
  const rt_access_token = auth?.accessToken;
126
- if (rt_access_token) {
127
- throw new actions_core_1.IntegrationError('Missing authentication token', 'MISSING_REQUIRED_FIELD', 400);
125
+ if (!audienceSettings) {
126
+ throw new actions_core_1.IntegrationError('Bad Request: no audienceSettings found.', 'INVALID_REQUEST_DATA', 400);
127
+ }
128
+ const body = utils_rt_1.gen_update_segment_payload([payload], audienceSettings);
129
+ if (body.data.length > 0) {
130
+ return request('https://dataxonline.yahoo.com/online/audience/', {
131
+ method: 'POST',
132
+ json: body,
133
+ headers: {
134
+ Authorization: `Bearer ${rt_access_token}`
135
+ }
136
+ });
137
+ }
138
+ else {
139
+ throw new actions_core_1.PayloadValidationError('Email and / or Advertising Id not available in the profile(s)');
128
140
  }
129
- const body = utils_rt_1.gen_update_segment_payload([payload]);
130
- return request('https://dataxonline.yahoo.com/online/audience/', {
131
- method: 'POST',
132
- json: body,
133
- headers: {
134
- Authorization: `Bearer ${auth?.accessToken}`
135
- }
136
- })
137
- .then((response) => response.json())
138
- .then((response) => {
139
- return response;
140
- })
141
- .catch((err) => {
142
- console.log('perform: error updating segment >', err);
143
- });
144
141
  },
145
- performBatch: (request, { payload, auth }) => {
142
+ performBatch: (request, { payload, audienceSettings, auth }) => {
146
143
  const rt_access_token = auth?.accessToken;
147
- if (!rt_access_token) {
148
- throw new actions_core_1.IntegrationError('Missing authentication token', 'MISSING_REQUIRED_FIELD', 400);
144
+ if (!audienceSettings) {
145
+ throw new actions_core_1.IntegrationError('Bad Request: no audienceSettings found.', 'INVALID_REQUEST_DATA', 400);
146
+ }
147
+ const body = utils_rt_1.gen_update_segment_payload(payload, audienceSettings);
148
+ if (body.data.length > 0) {
149
+ return request('https://dataxonline.yahoo.com/online/audience/', {
150
+ method: 'POST',
151
+ json: body,
152
+ headers: {
153
+ Authorization: `Bearer ${rt_access_token}`
154
+ }
155
+ });
156
+ }
157
+ else {
158
+ throw new actions_core_1.PayloadValidationError('Email and / or Advertising Id not available in the profile(s)');
149
159
  }
150
- const body = utils_rt_1.gen_update_segment_payload(payload);
151
- return request('https://dataxonline.yahoo.com/online/audience/', {
152
- method: 'POST',
153
- json: body,
154
- headers: {
155
- Authorization: `Bearer ${rt_access_token}`
156
- }
157
- })
158
- .then((response) => response.json())
159
- .then((response) => {
160
- return response;
161
- })
162
- .catch((err) => {
163
- console.log('perform: error updating segment >', err);
164
- });
165
160
  }
166
161
  };
167
162
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/yahoo-audiences/updateSegment/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/yahoo-audiences/updateSegment/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { Payload } from './updateSegment/generated-types';
2
2
  import { YahooPayload } from './types';
3
+ import { AudienceSettings } from './generated-types';
3
4
  export declare function create_hash(input: string | undefined): string | undefined;
4
5
  export declare function generate_jwt(client_id: string, client_secret: string): string;
5
- export declare function get_id_schema(payload: Payload): {
6
+ export declare function get_id_schema(payload: Payload, audienceSettings: AudienceSettings): {
6
7
  maid: boolean;
7
8
  email: boolean;
8
9
  };
9
- export declare function check_schema(payload: Payload): void;
10
- export declare function gen_update_segment_payload(payloads: Payload[]): YahooPayload;
10
+ export declare function gen_update_segment_payload(payloads: Payload[], audienceSettings: AudienceSettings): YahooPayload;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gen_update_segment_payload = exports.check_schema = exports.get_id_schema = exports.generate_jwt = exports.create_hash = void 0;
3
+ exports.gen_update_segment_payload = exports.get_id_schema = exports.generate_jwt = exports.create_hash = void 0;
4
4
  const crypto_1 = require("crypto");
5
- const actions_core_1 = require("@segment/actions-core");
6
5
  const utils_tax_1 = require("./utils-tax");
7
6
  function create_hash(input) {
8
7
  if (input === undefined)
@@ -35,32 +34,37 @@ function generate_jwt(client_id, client_secret) {
35
34
  return jwt;
36
35
  }
37
36
  exports.generate_jwt = generate_jwt;
38
- function get_id_schema(payload) {
39
- return {
40
- maid: payload.send_advertising_id === true,
41
- email: payload.send_email === true
37
+ function get_id_schema(payload, audienceSettings) {
38
+ const schema = {
39
+ email: false,
40
+ maid: false
42
41
  };
43
- }
44
- exports.get_id_schema = get_id_schema;
45
- function check_schema(payload) {
46
- if (payload.send_email === false && payload.send_advertising_id === false) {
47
- throw new actions_core_1.IntegrationError('Either `Send Email`, or `Send Advertising ID` setting must be set to `true`.', 'INVALID_SETTINGS', 400);
42
+ let id_type;
43
+ audienceSettings.identifier ? (id_type = audienceSettings.identifier) : (id_type = payload.identifier);
44
+ if (id_type == 'email') {
45
+ schema.email = true;
46
+ }
47
+ if (id_type == 'maid') {
48
+ schema.maid = true;
48
49
  }
50
+ if (id_type == 'email_maid') {
51
+ schema.maid = true;
52
+ schema.email = true;
53
+ }
54
+ return schema;
49
55
  }
50
- exports.check_schema = check_schema;
51
- function gen_update_segment_payload(payloads) {
52
- check_schema(payloads[0]);
53
- const schema = get_id_schema(payloads[0]);
56
+ exports.get_id_schema = get_id_schema;
57
+ function gen_update_segment_payload(payloads, audienceSettings) {
58
+ const schema = get_id_schema(payloads[0], audienceSettings);
54
59
  const data = [];
55
- let exp;
56
60
  for (const event of payloads) {
57
61
  let hashed_email = '';
58
- if (schema.email === true) {
62
+ if (schema.email === true && event.email) {
59
63
  hashed_email = create_hash(event.email);
60
64
  }
61
65
  let idfa = '';
62
66
  let gpsaid = '';
63
- if (schema.maid === true) {
67
+ if (schema.maid === true && event.advertising_id) {
64
68
  switch (event.device_type) {
65
69
  case 'ios':
66
70
  idfa = event.advertising_id;
@@ -70,12 +74,16 @@ function gen_update_segment_payload(payloads) {
70
74
  break;
71
75
  }
72
76
  }
77
+ if (hashed_email == '' && idfa == '' && gpsaid == '') {
78
+ continue;
79
+ }
73
80
  const ts = Math.floor(new Date().getTime() / 1000);
74
81
  const seg_key = event.segment_audience_key;
75
- if (event.event_attributes[seg_key] == true) {
82
+ let exp;
83
+ if (event.event_attributes[seg_key] === true) {
76
84
  exp = ts + 90 * 24 * 60 * 60;
77
85
  }
78
- if (event.event_attributes[seg_key] == false) {
86
+ if (event.event_attributes[seg_key] === false) {
79
87
  exp = 0;
80
88
  }
81
89
  const seg_id = event.segment_audience_id;
@@ -1 +1 @@
1
- {"version":3,"file":"utils-rt.js","sourceRoot":"","sources":["../../../src/destinations/yahoo-audiences/utils-rt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils-rt.js","sourceRoot":"","sources":["../../../src/destinations/yahoo-audiences/utils-rt.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- import { Payload as SegmentNodePayload } from './createSegment/generated-types';
2
- import { Payload as CustomerNodePayload } from './createCustomerNode/generated-types';
3
1
  import type { Settings } from './generated-types';
4
- import { CredsObj } from './types';
2
+ import { CredsObj, YahooSubTaxonomy } from './types';
5
3
  import { RequestClient } from '@segment/actions-core';
6
- export declare function gen_customer_taxonomy_payload(settings: Settings, payload: CustomerNodePayload): string;
7
- export declare function gen_segment_subtaxonomy_payload(payload: SegmentNodePayload): string;
4
+ export declare function gen_customer_taxonomy_payload(settings: Settings): string;
5
+ export declare function gen_segment_subtaxonomy_payload(payload: YahooSubTaxonomy): string;
8
6
  export declare function gen_random_id(length: number): string;
9
7
  export declare function gen_oauth1_signature(client_key: string, client_secret: string, method: string, url: string): string;
10
8
  export declare function update_taxonomy(engage_space_id: string, tx_creds: CredsObj, request: RequestClient, body_form_data: string): Promise<any>;
@@ -2,16 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.update_taxonomy = exports.gen_oauth1_signature = exports.gen_random_id = exports.gen_segment_subtaxonomy_payload = exports.gen_customer_taxonomy_payload = void 0;
4
4
  const crypto_1 = require("crypto");
5
- function gen_customer_taxonomy_payload(settings, payload) {
5
+ const actions_core_1 = require("@segment/actions-core");
6
+ function gen_customer_taxonomy_payload(settings) {
6
7
  const data = {
7
- id: payload.engage_space_id,
8
- name: payload.engage_space_id,
9
- description: payload.customer_desc,
8
+ id: settings.engage_space_id,
9
+ name: settings.engage_space_id,
10
+ description: settings.customer_desc,
10
11
  users: {
11
12
  include: [settings.mdm_id]
12
13
  }
13
14
  };
14
- const req_body_form = `--SEGMENT-DATA\r\nContent-Disposition: form-data; name="metadata"\r\nContent-Type: application/json;charset=UTF-8\r\n\r\n{ "description" : "${payload.customer_desc}" }\r\n--SEGMENT-DATA\r\nContent-Disposition: form-data; name="data"\r\nContent-Type: application/json;charset=UTF-8\r\n\r\n${JSON.stringify(data)}\r\n--SEGMENT-DATA--`;
15
+ const req_body_form = `--SEGMENT-DATA\r\nContent-Disposition: form-data; name="metadata"\r\nContent-Type: application/json;charset=UTF-8\r\n\r\n{ "description" : "${settings.customer_desc}" }\r\n--SEGMENT-DATA\r\nContent-Disposition: form-data; name="data"\r\nContent-Type: application/json;charset=UTF-8\r\n\r\n${JSON.stringify(data)}\r\n--SEGMENT-DATA--`;
15
16
  return req_body_form;
16
17
  }
17
18
  exports.gen_customer_taxonomy_payload = gen_customer_taxonomy_payload;
@@ -21,7 +22,7 @@ function gen_segment_subtaxonomy_payload(payload) {
21
22
  name: payload.segment_audience_key,
22
23
  type: 'SEGMENT'
23
24
  };
24
- const req_body_form = `--SEGMENT-DATA\r\nContent-Disposition: form-data; name="metadata"\r\nContent-Type: application/json;charset=UTF-8\r\n\r\n{ "description" : "${payload.customer_desc}" }\r\n--SEGMENT-DATA\r\nContent-Disposition: form-data; name="data"\r\nContent-Type: application/json;charset=UTF-8\r\n\r\n${JSON.stringify(data)}\r\n--SEGMENT-DATA--`;
25
+ const req_body_form = `--SEGMENT-DATA\r\nContent-Disposition: form-data; name="metadata"\r\nContent-Type: application/json;charset=UTF-8\r\n\r\n{ "description" : "Create segment ${data.id}" }\r\n--SEGMENT-DATA\r\nContent-Disposition: form-data; name="data"\r\nContent-Type: application/json;charset=UTF-8\r\n\r\n${JSON.stringify(data)}\r\n--SEGMENT-DATA--`;
25
26
  return req_body_form;
26
27
  }
27
28
  exports.gen_segment_subtaxonomy_payload = gen_segment_subtaxonomy_payload;
@@ -48,20 +49,30 @@ function gen_oauth1_signature(client_key, client_secret, method, url) {
48
49
  }
49
50
  exports.gen_oauth1_signature = gen_oauth1_signature;
50
51
  async function update_taxonomy(engage_space_id, tx_creds, request, body_form_data) {
51
- const tx_client_secret = tx_creds.tx_client_key;
52
- const tx_client_key = tx_creds.tx_client_secret;
52
+ const tx_client_secret = tx_creds.tx_client_secret;
53
+ const tx_client_key = tx_creds.tx_client_key;
53
54
  const url = `https://datax.yahooapis.com/v1/taxonomy/append${engage_space_id.length > 0 ? '/' + engage_space_id : ''}`;
54
55
  const oauth1_auth_string = gen_oauth1_signature(tx_client_key, tx_client_secret, 'PUT', url);
55
- const add_segment_node = await request(url, {
56
- method: 'PUT',
57
- body: body_form_data,
58
- headers: {
59
- Authorization: oauth1_auth_string,
60
- 'Content-Type': 'multipart/form-data; boundary=SEGMENT-DATA'
56
+ try {
57
+ const add_segment_node = await request(url, {
58
+ method: 'PUT',
59
+ body: body_form_data,
60
+ headers: {
61
+ Authorization: oauth1_auth_string,
62
+ 'Content-Type': 'multipart/form-data; boundary=SEGMENT-DATA'
63
+ }
64
+ });
65
+ return await add_segment_node.json();
66
+ }
67
+ catch (error) {
68
+ const _error = error;
69
+ if (parseInt(_error.response.status) == 401) {
70
+ throw new actions_core_1.IntegrationError(`Error while updating taxonomy: ${JSON.stringify(_error.response.data)} ${_error.response.status}. Validate Yahoo credentials`, 'YAHOO_TAXONOMY_API_AUTH_ERR', 400);
71
+ }
72
+ else {
73
+ throw error;
61
74
  }
62
- });
63
- console.log('upd tax status:', add_segment_node.status);
64
- return await add_segment_node.json();
75
+ }
65
76
  }
66
77
  exports.update_taxonomy = update_taxonomy;
67
78
  //# sourceMappingURL=utils-tax.js.map