@segment/action-destinations 3.50.1-alpha.3 → 3.50.1

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.
@@ -5,88 +5,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const actions_core_1 = require("@segment/actions-core");
7
7
  const reportWebEvent_1 = __importDefault(require("./reportWebEvent"));
8
- const tiktokDefaultValues = (fields, preset) => {
9
- let contents = {};
10
- const inner_contents = {
11
- price: {
12
- '@path': '$.price'
13
- },
14
- quantity: {
15
- '@path': '$.quantity'
16
- },
17
- content_type: {
18
- '@path': '$.category'
19
- },
20
- content_id: {
21
- '@path': '$.product_id'
22
- }
23
- };
24
- if (['AddToCart', 'AddToWishlist', 'Search', 'ViewContent'].includes(preset)) {
25
- contents = {
26
- '@arrayPath': [
27
- '$.properties',
28
- {
29
- ...inner_contents
30
- }
31
- ]
32
- };
33
- }
34
- else if (['AddPaymentInfo', 'InitiateCheckout', 'PlaceAnOrder'].includes(preset)) {
35
- contents = {
36
- '@arrayPath': [
37
- '$.properties.products',
38
- {
39
- ...inner_contents
40
- }
41
- ]
42
- };
43
- }
44
- return { ...actions_core_1.defaultValues(fields), contents: contents };
45
- };
46
8
  const presets = [
47
9
  {
48
- name: 'View Content',
49
- subscribe: 'type="page"',
50
- partnerAction: 'reportWebEvent',
51
- mapping: {
52
- ...tiktokDefaultValues(reportWebEvent_1.default.fields, 'ViewContent'),
53
- event: 'ViewContent'
54
- }
55
- },
56
- {
57
- name: 'Search',
58
- subscribe: 'event = "Products Searched"',
59
- partnerAction: 'reportWebEvent',
60
- mapping: {
61
- ...tiktokDefaultValues(reportWebEvent_1.default.fields, 'Search'),
62
- event: 'Search'
63
- }
64
- },
65
- {
66
- name: 'Add to Wishlist',
67
- subscribe: 'event = "Product Added to Wishlist"',
10
+ name: 'Initiate Checkout',
11
+ subscribe: 'event = "Checkout Started"',
68
12
  partnerAction: 'reportWebEvent',
69
13
  mapping: {
70
- ...tiktokDefaultValues(reportWebEvent_1.default.fields, 'AddToWishlist'),
71
- event: 'AddToWishlist'
14
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
15
+ event: 'IntiateCheckout'
72
16
  }
73
17
  },
74
18
  {
75
- name: 'Add to Cart',
76
- subscribe: 'event = "Product Added"',
19
+ name: 'View Content',
20
+ subscribe: 'type="page"',
77
21
  partnerAction: 'reportWebEvent',
78
22
  mapping: {
79
- ...tiktokDefaultValues(reportWebEvent_1.default.fields, 'AddToCart'),
80
- event: 'AddToCart'
23
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
24
+ event: 'ViewContent'
81
25
  }
82
26
  },
83
27
  {
84
- name: 'Initiate Checkout',
85
- subscribe: 'event = "Checkout Started"',
28
+ name: 'Products Searched',
29
+ subscribe: 'event = "Products Searched"',
86
30
  partnerAction: 'reportWebEvent',
87
31
  mapping: {
88
- ...tiktokDefaultValues(reportWebEvent_1.default.fields, 'InitiateCheckout'),
89
- event: 'InitiateCheckout'
32
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
33
+ event: 'Search'
90
34
  }
91
35
  },
92
36
  {
@@ -94,17 +38,17 @@ const presets = [
94
38
  subscribe: 'event = "Payment Info Entered"',
95
39
  partnerAction: 'reportWebEvent',
96
40
  mapping: {
97
- ...tiktokDefaultValues(reportWebEvent_1.default.fields, 'AddPaymentInfo'),
41
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
98
42
  event: 'AddPaymentInfo'
99
43
  }
100
44
  },
101
45
  {
102
- name: 'Place an Order',
46
+ name: 'Order Completed',
103
47
  subscribe: 'event = "Order Completed"',
104
48
  partnerAction: 'reportWebEvent',
105
49
  mapping: {
106
- ...tiktokDefaultValues(reportWebEvent_1.default.fields, 'PlaceAnOrder'),
107
- event: 'PlaceAnOrder'
50
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
51
+ event: 'PlaceOrder'
108
52
  }
109
53
  }
110
54
  ];
@@ -117,14 +61,14 @@ const destination = {
117
61
  fields: {
118
62
  accessToken: {
119
63
  label: 'Access Token',
120
- description: 'Your TikTok Access Token. Please see TikToks [Events API documentation](https://ads.tiktok.com/marketing_api/docs?id=1701890979375106) for information on how to generate an access token via the TikTok Ads Manager or API.',
64
+ description: "TikTok Long Term Access Token. You can generate this from the TikTok Marketing API portal. Please follow TikTok's [Authorization guide](https://ads.tiktok.com/athena/docs/index.html?plat_id=-1&doc_id=100010&id=100681&key=e98b971a296ae45d8e35a22fba032d1c06f5973de9aab73ce07b82f230cf3afd) for more info.",
121
65
  type: 'string',
122
66
  required: true
123
67
  },
124
68
  pixel_code: {
125
69
  label: 'Pixel Code',
126
70
  type: 'string',
127
- description: 'Your TikTok Pixel ID. Please see TikTok’s [Events API documentation](https://ads.tiktok.com/marketing_api/docs?id=1701890979375106) for information on how to find this value.',
71
+ description: 'An ID for your pixel. Required to send events to the TikTok pixel.',
128
72
  required: true
129
73
  }
130
74
  },
@@ -133,7 +77,7 @@ const destination = {
133
77
  method: 'post',
134
78
  json: {
135
79
  pixel_code: settings.pixel_code,
136
- event: 'Test Event',
80
+ event: "Test Event",
137
81
  timestamp: '',
138
82
  context: {}
139
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-conversions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-conversions/index.ts"],"names":[],"mappings":";;;;;AACA,wDAAqD;AAGrD,sEAA6C;AAG7C,MAAM,OAAO,GAAqC;IAChD;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE,4BAA4B;QACvC,aAAa,EAAE,gBAAgB;QAC/B,OAAO,EAAE;YACP,GAAG,4BAAa,CAAC,wBAAc,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,iBAAiB;SACzB;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,aAAa;QACxB,aAAa,EAAE,gBAAgB;QAC/B,OAAO,EAAE;YACP,GAAG,4BAAa,CAAC,wBAAc,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,aAAa;SACrB;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE,6BAA6B;QACxC,aAAa,EAAE,gBAAgB;QAC/B,OAAO,EAAE;YACP,GAAG,4BAAa,CAAC,wBAAc,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,QAAQ;SAChB;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,gCAAgC;QAC3C,aAAa,EAAE,gBAAgB;QAC/B,OAAO,EAAE;YACP,GAAG,4BAAa,CAAC,wBAAc,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,gBAAgB;SACxB;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,2BAA2B;QACtC,aAAa,EAAE,gBAAgB;QAC/B,OAAO,EAAE;YACP,GAAG,4BAAa,CAAC,wBAAc,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,YAAY;SACpB;KACF;CACF,CAAA;AAED,MAAM,WAAW,GAAoC;IAInD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,WAAW,EAAE;gBACX,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,+SAA+S;gBACjT,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oEAAoE;gBACjF,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAG5C,OAAO,OAAO,CAAC,4DAA4D,EAAE;gBAC3E,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,EAAE;iBACZ;aACF,CAAC,CAAA;QACJ,CAAC;KACF;IACD,aAAa,CAAC,EAAE,QAAQ,EAAE;QACxB,OAAO;YACL,OAAO,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,WAAW,EAAE;SAClD,CAAA;IACH,CAAC;IACD,OAAO;IACP,OAAO,EAAE;QACP,cAAc,EAAd,wBAAc;KACf;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -1,3 +1,3 @@
1
- export declare function formatEmail(email: string | undefined): string | undefined;
2
- export declare function formatUserId(userId: string | undefined): string | undefined;
3
- export declare function formatPhone(phone: string | undefined): string | undefined;
1
+ export declare function formatEmail(email: string): string;
2
+ export declare function formatUserId(userId: string): string;
3
+ export declare function formatPhone(phone?: string): string;
@@ -3,22 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatPhone = exports.formatUserId = exports.formatEmail = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  function formatEmail(email) {
6
- if (email) {
7
- return hashAndEncode(email.toLowerCase());
8
- }
9
- return undefined;
6
+ return hashAndEncode(email.toLowerCase());
10
7
  }
11
8
  exports.formatEmail = formatEmail;
12
9
  function formatUserId(userId) {
13
- if (userId) {
14
- return hashAndEncode(userId.toLowerCase().trim());
15
- }
16
- return undefined;
10
+ return hashAndEncode(userId.toLowerCase().trim());
17
11
  }
18
12
  exports.formatUserId = formatUserId;
19
13
  function formatPhone(phone) {
20
14
  if (!phone)
21
- return undefined;
15
+ return '';
22
16
  const validatedPhone = phone.match(/[0-9]{0,14}/g);
23
17
  if (validatedPhone === null) {
24
18
  throw new Error(`${phone} is not a valid E.164 phone number.`);
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-conversions/reportWebEvent/formatter.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAKnC,SAAgB,WAAW,CAAC,KAAyB;IACnD,IAAI,KAAK,EAAE;QACT,OAAO,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;KAC1C;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AALD,kCAKC;AAOD,SAAgB,YAAY,CAAC,MAA0B;IACrD,IAAI,MAAM,EAAE;QACV,OAAO,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;KAClD;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AALD,oCAKC;AAOD,SAAgB,WAAW,CAAC,KAAyB;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAE5B,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAClD,IAAI,cAAc,KAAK,IAAI,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAA;KAC/D;IAED,IAAI,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAA;IAEvD,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAChD,OAAO,aAAa,CAAC,cAAc,CAAC,CAAA;AACtC,CAAC;AAZD,kCAYC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,mBAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-conversions/reportWebEvent/formatter.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAKnC,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AAC3C,CAAC;AAFD,kCAEC;AAOD,SAAgB,YAAY,CAAC,MAAc;IACzC,OAAO,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AACnD,CAAC;AAFD,oCAEC;AAOD,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAClD,IAAI,cAAc,KAAK,IAAI,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAA;KAC/D;IAED,IAAI,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAA;IAEvD,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAChD,OAAO,aAAa,CAAC,cAAc,CAAC,CAAA;AACtC,CAAC;AAZD,kCAYC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,mBAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC"}
@@ -1,23 +1,13 @@
1
1
  export interface Payload {
2
- event: string;
2
+ event?: string;
3
3
  event_id?: string;
4
4
  timestamp?: string;
5
+ type?: string;
6
+ properties?: {
7
+ [k: string]: unknown;
8
+ };
5
9
  phone_number?: string;
6
10
  email?: string;
7
- external_id?: string;
11
+ external_id: string;
8
12
  ttclid?: string;
9
- url?: string;
10
- referrer?: string;
11
- ip?: string;
12
- user_agent?: string;
13
- contents?: {
14
- price?: number;
15
- quantity?: number;
16
- content_type?: string;
17
- content_id?: string;
18
- }[];
19
- currency?: string;
20
- value?: number;
21
- description?: string;
22
- query?: string;
23
13
  }
@@ -8,8 +8,10 @@ const action = {
8
8
  event: {
9
9
  label: 'Event Name',
10
10
  type: 'string',
11
- required: true,
12
- description: 'Conversion event name. Please refer to the "Supported Web Events" section on in TikTok’s [Events API documentation](https://ads.tiktok.com/marketing_api/docs?id=1701890979375106) for accepted event names.'
11
+ description: 'Conversion event name. Please refer to the "Supported Web Events" section on this [page](https://ads.tiktok.com/marketing_api/docs?id=1701890979375106) for accepted event names.',
12
+ default: {
13
+ '@path': '$.event'
14
+ }
13
15
  },
14
16
  event_id: {
15
17
  label: 'Event ID',
@@ -22,14 +24,25 @@ const action = {
22
24
  timestamp: {
23
25
  label: 'Event Timestamp',
24
26
  type: 'string',
25
- description: 'Timestamp that the event took place, in ISO 8601 format.',
27
+ description: 'Timestamp that the event took place, in ISO 8601 format.'
28
+ },
29
+ type: {
30
+ label: 'Segment Event Type',
31
+ description: 'The Segment event type, e.g. "page".',
32
+ type: 'string',
26
33
  default: {
27
- '@path': '$.timestamp'
34
+ '@path': '$.type'
28
35
  }
29
36
  },
37
+ properties: {
38
+ label: 'Properties associated with the event',
39
+ description: 'Additional properties such as content info, description, and currency.',
40
+ type: 'object',
41
+ required: false
42
+ },
30
43
  phone_number: {
31
44
  label: 'Phone Number',
32
- description: 'Phone number of the user who triggered the conversion event, in E.164 standard format, e.g. +14150000000. Segment will hash this value before sending to TikTok.',
45
+ description: 'Phone number of the user who triggered the conversion event, in E.164 standard format, e.g. +14150000000.',
33
46
  type: 'string',
34
47
  default: {
35
48
  '@if': {
@@ -41,7 +54,7 @@ const action = {
41
54
  },
42
55
  email: {
43
56
  label: 'Email',
44
- description: 'Email address of the user who triggered the conversion event. Segment will hash this value before sending to TikTok.',
57
+ description: 'Email address of the user who triggered the conversion event.',
45
58
  type: 'string',
46
59
  format: 'email',
47
60
  default: {
@@ -54,8 +67,9 @@ const action = {
54
67
  },
55
68
  external_id: {
56
69
  label: 'External ID',
57
- description: 'Uniquely identifies the user who triggered the conversion event. Segment will hash this value before sending to TikTok.',
70
+ description: 'Uniquely identifies the user who triggered the conversion event.',
58
71
  type: 'string',
72
+ required: true,
59
73
  default: {
60
74
  '@if': {
61
75
  exists: { '@path': '$.userId' },
@@ -75,105 +89,15 @@ const action = {
75
89
  else: { '@path': '$.traits.ttclid' }
76
90
  }
77
91
  }
78
- },
79
- url: {
80
- label: 'Page URL',
81
- type: 'string',
82
- description: 'The page URL where the conversion event took place.',
83
- default: {
84
- '@path': '$.context.page.url'
85
- }
86
- },
87
- referrer: {
88
- label: 'Page Referrer',
89
- type: 'string',
90
- description: 'The page referrer.',
91
- default: {
92
- '@path': '$.context.page.referrer'
93
- }
94
- },
95
- ip: {
96
- label: 'IP Address',
97
- type: 'string',
98
- description: 'IP address of the browser.',
99
- default: {
100
- '@path': '$.context.ip'
101
- }
102
- },
103
- user_agent: {
104
- label: 'User Agent',
105
- type: 'string',
106
- description: 'User agent from the user’s device.',
107
- default: {
108
- '@path': '$.context.userAgent'
109
- }
110
- },
111
- contents: {
112
- label: 'Contents',
113
- type: 'object',
114
- multiple: true,
115
- description: 'Related items in a web event.',
116
- properties: {
117
- price: {
118
- label: 'Price',
119
- description: 'Price of the item.',
120
- type: 'number'
121
- },
122
- quantity: {
123
- label: 'Quantity',
124
- description: 'Number of items.',
125
- type: 'number'
126
- },
127
- content_type: {
128
- label: 'Content Type',
129
- description: 'Type of the product item.',
130
- type: 'string'
131
- },
132
- content_id: {
133
- label: 'Content ID',
134
- description: 'ID of the product item.',
135
- type: 'string'
136
- }
137
- }
138
- },
139
- currency: {
140
- label: 'Currency',
141
- type: 'string',
142
- description: 'Currency for the value specified as ISO 4217 code.',
143
- default: {
144
- '@path': '$.properties.currency'
145
- }
146
- },
147
- value: {
148
- label: 'Value',
149
- type: 'number',
150
- description: 'Value of the order or items sold.',
151
- default: {
152
- '@if': {
153
- exists: { '@path': '$.properties.value' },
154
- then: { '@path': '$.properties.value' },
155
- else: { '@path': '$.properties.revenue' }
156
- }
157
- }
158
- },
159
- description: {
160
- label: 'Description',
161
- type: 'string',
162
- description: 'A string description of the web event.'
163
- },
164
- query: {
165
- label: 'Query',
166
- type: 'string',
167
- description: 'The text string that was searched for.',
168
- default: {
169
- '@path': '$.properties.query'
170
- }
171
92
  }
172
93
  },
173
94
  perform: (request, { payload, settings }) => {
95
+ const eventId = payload.event_id
96
+ ? payload.event_id.toString() + '_' + (Math.random() + 1).toString(36).substring(7)
97
+ : '';
174
98
  const userData = {
175
99
  hashedExternalId: formatter_1.formatUserId(payload.external_id),
176
- hashedEmail: formatter_1.formatEmail(payload.email),
100
+ hashedEmail: formatter_1.formatEmail(payload.email || ''),
177
101
  hashedPhoneNumber: formatter_1.formatPhone(payload.phone_number)
178
102
  };
179
103
  return request('https://business-api.tiktok.com/open_api/v1.2/pixel/track/', {
@@ -181,7 +105,7 @@ const action = {
181
105
  json: {
182
106
  pixel_code: settings.pixel_code,
183
107
  event: payload.event,
184
- event_id: payload.event_id ? payload.event_id + '_seg' : undefined,
108
+ event_id: eventId,
185
109
  timestamp: payload.timestamp,
186
110
  context: {
187
111
  user: {
@@ -191,20 +115,7 @@ const action = {
191
115
  },
192
116
  ad: {
193
117
  callback: payload.ttclid
194
- },
195
- page: {
196
- url: payload.url,
197
- referrer: payload.referrer
198
- },
199
- ip: payload.ip,
200
- user_agent: payload.user_agent
201
- },
202
- properties: {
203
- contents: payload.contents,
204
- currency: payload.currency,
205
- value: payload.value,
206
- description: payload.description,
207
- query: payload.query
118
+ }
208
119
  }
209
120
  }
210
121
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-conversions/reportWebEvent/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-conversions/reportWebEvent/index.ts"],"names":[],"mappings":"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"}
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.50.1-alpha.3",
4
+ "version": "3.50.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -38,8 +38,8 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@amplitude/ua-parser-js": "^0.7.25",
41
- "@segment/actions-core": "^3.22.1-alpha.3",
42
- "@segment/actions-shared": "^1.3.1-alpha.3",
41
+ "@segment/actions-core": "^3.22.0",
42
+ "@segment/actions-shared": "^1.3.0",
43
43
  "cheerio": "^1.0.0-rc.10",
44
44
  "dayjs": "^1.10.7",
45
45
  "escape-goat": "^3",
@@ -62,5 +62,5 @@
62
62
  "<rootDir>/test/setup-after-env.ts"
63
63
  ]
64
64
  },
65
- "gitHead": "5852addf626da5bb17b2d93e1dac2b5ef87b2266"
65
+ "gitHead": "2e968e4ce2eac0399f9a792c519aec889a57d568"
66
66
  }