@segment/action-destinations 3.327.0 → 3.329.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 (85) hide show
  1. package/dist/destinations/accoil-analytics/group/generated-types.d.ts +2 -0
  2. package/dist/destinations/accoil-analytics/group/index.js +14 -0
  3. package/dist/destinations/accoil-analytics/group/index.js.map +1 -1
  4. package/dist/destinations/braze/trackEvent2/index.js +1 -1
  5. package/dist/destinations/braze/trackEvent2/index.js.map +1 -1
  6. package/dist/destinations/braze/trackPurchase2/index.js +1 -1
  7. package/dist/destinations/braze/trackPurchase2/index.js.map +1 -1
  8. package/dist/destinations/braze/updateUserProfile2/index.js +1 -1
  9. package/dist/destinations/braze/updateUserProfile2/index.js.map +1 -1
  10. package/dist/destinations/braze/utils.d.ts +19 -6
  11. package/dist/destinations/braze/utils.js +156 -32
  12. package/dist/destinations/braze/utils.js.map +1 -1
  13. package/dist/destinations/facebook-conversions-api/addToCart/generated-types.d.ts +3 -0
  14. package/dist/destinations/facebook-conversions-api/addToCart2/generated-types.d.ts +3 -0
  15. package/dist/destinations/facebook-conversions-api/custom/generated-types.d.ts +3 -0
  16. package/dist/destinations/facebook-conversions-api/custom2/generated-types.d.ts +3 -0
  17. package/dist/destinations/facebook-conversions-api/fb-capi-app-data.js +20 -2
  18. package/dist/destinations/facebook-conversions-api/fb-capi-app-data.js.map +1 -1
  19. package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js +6 -0
  20. package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js.map +1 -1
  21. package/dist/destinations/facebook-conversions-api/initiateCheckout/generated-types.d.ts +3 -0
  22. package/dist/destinations/facebook-conversions-api/initiateCheckout2/generated-types.d.ts +3 -0
  23. package/dist/destinations/facebook-conversions-api/pageView/generated-types.d.ts +3 -0
  24. package/dist/destinations/facebook-conversions-api/pageView2/generated-types.d.ts +3 -0
  25. package/dist/destinations/facebook-conversions-api/purchase/generated-types.d.ts +3 -0
  26. package/dist/destinations/facebook-conversions-api/purchase2/generated-types.d.ts +3 -0
  27. package/dist/destinations/facebook-conversions-api/search/generated-types.d.ts +3 -0
  28. package/dist/destinations/facebook-conversions-api/search2/generated-types.d.ts +3 -0
  29. package/dist/destinations/facebook-conversions-api/viewContent/generated-types.d.ts +3 -0
  30. package/dist/destinations/facebook-conversions-api/viewContent2/generated-types.d.ts +3 -0
  31. package/dist/destinations/google-enhanced-conversions/userList/index.js +1 -1
  32. package/dist/destinations/google-enhanced-conversions/userList/index.js.map +1 -1
  33. package/dist/destinations/index.js +2 -0
  34. package/dist/destinations/index.js.map +1 -1
  35. package/dist/destinations/optimizely-web/generated-types.d.ts +5 -0
  36. package/dist/destinations/optimizely-web/generated-types.js +3 -0
  37. package/dist/destinations/optimizely-web/generated-types.js.map +1 -0
  38. package/dist/destinations/optimizely-web/index.d.ts +4 -0
  39. package/dist/destinations/optimizely-web/index.js +49 -0
  40. package/dist/destinations/optimizely-web/index.js.map +1 -0
  41. package/dist/destinations/optimizely-web/trackEvent/client.d.ts +11 -0
  42. package/dist/destinations/optimizely-web/trackEvent/client.js +61 -0
  43. package/dist/destinations/optimizely-web/trackEvent/client.js.map +1 -0
  44. package/dist/destinations/optimizely-web/trackEvent/constants.d.ts +3 -0
  45. package/dist/destinations/optimizely-web/trackEvent/constants.js +7 -0
  46. package/dist/destinations/optimizely-web/trackEvent/constants.js.map +1 -0
  47. package/dist/destinations/optimizely-web/trackEvent/fields.d.ts +2 -0
  48. package/dist/destinations/optimizely-web/trackEvent/fields.js +193 -0
  49. package/dist/destinations/optimizely-web/trackEvent/fields.js.map +1 -0
  50. package/dist/destinations/optimizely-web/trackEvent/generated-types.d.ts +26 -0
  51. package/dist/destinations/optimizely-web/trackEvent/generated-types.js +3 -0
  52. package/dist/destinations/optimizely-web/trackEvent/generated-types.js.map +1 -0
  53. package/dist/destinations/optimizely-web/trackEvent/index.d.ts +5 -0
  54. package/dist/destinations/optimizely-web/trackEvent/index.js +15 -0
  55. package/dist/destinations/optimizely-web/trackEvent/index.js.map +1 -0
  56. package/dist/destinations/optimizely-web/trackEvent/types.d.ts +59 -0
  57. package/dist/destinations/optimizely-web/trackEvent/types.js +3 -0
  58. package/dist/destinations/optimizely-web/trackEvent/types.js.map +1 -0
  59. package/dist/destinations/optimizely-web/trackEvent/utils.d.ts +25 -0
  60. package/dist/destinations/optimizely-web/trackEvent/utils.js +156 -0
  61. package/dist/destinations/optimizely-web/trackEvent/utils.js.map +1 -0
  62. package/dist/destinations/s3/fields.js +9 -1
  63. package/dist/destinations/s3/fields.js.map +1 -1
  64. package/dist/destinations/s3/functions.d.ts +1 -1
  65. package/dist/destinations/s3/functions.js +13 -5
  66. package/dist/destinations/s3/functions.js.map +1 -1
  67. package/dist/destinations/s3/index.js +6 -0
  68. package/dist/destinations/s3/index.js.map +1 -1
  69. package/dist/destinations/s3/syncToS3/generated-types.d.ts +1 -0
  70. package/dist/destinations/snap-audiences/generated-types.d.ts +8 -0
  71. package/dist/destinations/snap-audiences/generated-types.js +3 -0
  72. package/dist/destinations/snap-audiences/generated-types.js.map +1 -0
  73. package/dist/destinations/snap-audiences/index.d.ts +4 -0
  74. package/dist/destinations/snap-audiences/index.js +139 -0
  75. package/dist/destinations/snap-audiences/index.js.map +1 -0
  76. package/dist/destinations/snap-audiences/syncAudience/generated-types.d.ts +12 -0
  77. package/dist/destinations/snap-audiences/syncAudience/generated-types.js +3 -0
  78. package/dist/destinations/snap-audiences/syncAudience/generated-types.js.map +1 -0
  79. package/dist/destinations/snap-audiences/syncAudience/index.d.ts +5 -0
  80. package/dist/destinations/snap-audiences/syncAudience/index.js +156 -0
  81. package/dist/destinations/snap-audiences/syncAudience/index.js.map +1 -0
  82. package/dist/destinations/snap-audiences/syncAudience/utils.d.ts +8 -0
  83. package/dist/destinations/snap-audiences/syncAudience/utils.js +73 -0
  84. package/dist/destinations/snap-audiences/syncAudience/utils.js.map +1 -0
  85. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/s3/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/s3/functions.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ 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 syncToS3_1 = __importDefault(require("./syncToS3"));
7
8
  const destination = {
8
9
  name: 'AWS S3 (Actions)',
@@ -38,6 +39,11 @@ const destination = {
38
39
  }
39
40
  }
40
41
  },
42
+ extendRequest() {
43
+ return {
44
+ timeout: Math.max(60000, actions_core_1.DEFAULT_REQUEST_TIMEOUT)
45
+ };
46
+ },
41
47
  actions: {
42
48
  syncToS3: syncToS3_1.default
43
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/s3/index.ts"],"names":[],"mappings":";;;;;AAEA,0DAAiC;AAEjC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,oCAAoC;IAEjD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,sGAAsG;gBACxG,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,4DAA4D;gBACzE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EACT,mLAAmL;gBACrL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,0FAA0F;gBACvG,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAR,kBAAQ;KACT;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/s3/index.ts"],"names":[],"mappings":";;;;;AAEA,wDAA+D;AAC/D,0DAAiC;AAEjC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,oCAAoC;IAEjD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,sGAAsG;gBACxG,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,4DAA4D;gBACzE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EACT,mLAAmL;gBACrL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,0FAA0F;gBACvG,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,aAAa;QACX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAM,EAAE,sCAAuB,CAAC;SACnD,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,QAAQ,EAAR,kBAAQ;KACT;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -25,6 +25,7 @@ export interface Payload {
25
25
  [k: string]: unknown;
26
26
  };
27
27
  audience_action_column_name?: string;
28
+ batch_size_column_name?: string;
28
29
  traits_or_props?: {
29
30
  [k: string]: unknown;
30
31
  };
@@ -0,0 +1,8 @@
1
+ export interface Settings {
2
+ ad_account_id: string;
3
+ }
4
+ export interface AudienceSettings {
5
+ customAudienceName?: string;
6
+ description?: string;
7
+ retention_in_days?: number;
8
+ }
@@ -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/snap-audiences/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { AudienceDestinationDefinition } from '@segment/actions-core';
2
+ import type { Settings, AudienceSettings } from './generated-types';
3
+ declare const destination: AudienceDestinationDefinition<Settings, AudienceSettings>;
4
+ export default destination;
@@ -0,0 +1,139 @@
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
+ const actions_core_1 = require("@segment/actions-core");
7
+ const syncAudience_1 = __importDefault(require("./syncAudience"));
8
+ const ACCESS_TOKEN_URL = 'https://accounts.snapchat.com/login/oauth2/access_token';
9
+ const destination = {
10
+ name: 'Snap Audiences (Actions)',
11
+ slug: 'actions-snap-audiences',
12
+ mode: 'cloud',
13
+ authentication: {
14
+ scheme: 'oauth2',
15
+ fields: {
16
+ ad_account_id: {
17
+ label: 'Ad Account ID',
18
+ description: 'The ID of the Snap Ad Account',
19
+ required: true,
20
+ type: 'string'
21
+ }
22
+ },
23
+ refreshAccessToken: async (request, { auth }) => {
24
+ const res = await request(ACCESS_TOKEN_URL, {
25
+ method: 'POST',
26
+ body: new URLSearchParams({
27
+ refresh_token: auth.refreshToken,
28
+ client_id: auth.clientId,
29
+ client_secret: auth.clientSecret,
30
+ grant_type: 'refresh_token'
31
+ })
32
+ });
33
+ return { accessToken: res.data.access_token };
34
+ }
35
+ },
36
+ extendRequest({ auth }) {
37
+ return {
38
+ headers: {
39
+ authorization: `Bearer ${auth?.accessToken}`
40
+ }
41
+ };
42
+ },
43
+ presets: [
44
+ {
45
+ name: 'Sync Audience with Email',
46
+ subscribe: 'type = "track" and context.traits.email exists',
47
+ partnerAction: 'syncAudience',
48
+ mapping: {
49
+ schema_type: 'EMAIL_SHA256'
50
+ },
51
+ type: 'automatic'
52
+ },
53
+ {
54
+ name: 'Sync Audience with Phone',
55
+ subscribe: 'type = "track" and properties.phone exists',
56
+ partnerAction: 'syncAudience',
57
+ mapping: {
58
+ schema_type: 'PHONE_SHA256'
59
+ },
60
+ type: 'automatic'
61
+ },
62
+ {
63
+ name: 'Sync Audience with Mobile AD ID',
64
+ subscribe: 'type = "track" and context.device.advertisingId exists',
65
+ partnerAction: 'syncAudience',
66
+ mapping: {
67
+ schema_type: 'MOBILE_AD_ID_SHA256'
68
+ },
69
+ type: 'automatic'
70
+ }
71
+ ],
72
+ audienceFields: {
73
+ customAudienceName: {
74
+ type: 'string',
75
+ label: 'Audience Name',
76
+ description: 'Name for the audience that will be created in Snap. Defaults to the snake_cased Segment audience name if left blank.',
77
+ default: '',
78
+ required: false
79
+ },
80
+ description: {
81
+ type: 'string',
82
+ label: 'Audience Description',
83
+ description: 'Description of for the audience that will be created in Snap.',
84
+ default: '',
85
+ required: false
86
+ },
87
+ retention_in_days: {
88
+ type: 'number',
89
+ label: 'Retention in days',
90
+ description: '# of days to retain audience members. (Default retention is lifetime represented as 9999)',
91
+ default: 9999,
92
+ required: false
93
+ }
94
+ },
95
+ audienceConfig: {
96
+ mode: {
97
+ type: 'synced',
98
+ full_audience_sync: false
99
+ },
100
+ async createAudience(request, createAudienceInput) {
101
+ const audienceName = createAudienceInput.audienceName;
102
+ const ad_account_id = createAudienceInput.settings.ad_account_id;
103
+ const { customAudienceName, description, retention_in_days } = createAudienceInput.audienceSettings || {};
104
+ if (!audienceName) {
105
+ throw new actions_core_1.IntegrationError('Missing audience name value', 'MISSING_REQUIRED_FIELD', 400);
106
+ }
107
+ const response = await request(`https://adsapi.snapchat.com/v1/adaccounts/${ad_account_id}/segments`, {
108
+ method: 'POST',
109
+ json: {
110
+ segments: [
111
+ {
112
+ name: customAudienceName !== '' ? customAudienceName : audienceName,
113
+ source_type: 'FIRST_PARTY',
114
+ ad_account_id,
115
+ description,
116
+ retention_in_days
117
+ }
118
+ ]
119
+ }
120
+ });
121
+ const data = await response.json();
122
+ const snapAudienceId = data.segments[0].segment.id;
123
+ return { externalId: snapAudienceId };
124
+ },
125
+ getAudience: async (request, { externalId }) => {
126
+ const response = await request(`https://adsapi.snapchat.com/v1/segments/${externalId}`, {
127
+ method: 'GET'
128
+ });
129
+ const data = await response.json();
130
+ const snapAudienceId = data.segments[0].segment.id;
131
+ return { externalId: snapAudienceId };
132
+ }
133
+ },
134
+ actions: {
135
+ syncAudience: syncAudience_1.default
136
+ }
137
+ };
138
+ exports.default = destination;
139
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/snap-audiences/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface Payload {
2
+ external_audience_id: string;
3
+ audienceKey: string;
4
+ props: {
5
+ [k: string]: unknown;
6
+ };
7
+ schema_type: string;
8
+ phone?: string;
9
+ email?: string;
10
+ advertising_id?: string;
11
+ enable_batching: boolean;
12
+ }
@@ -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/snap-audiences/syncAudience/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { 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;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const utils_1 = require("./utils");
5
+ const action = {
6
+ title: 'Sync Audience',
7
+ description: 'Sync Segment Engage Audiences to Snap',
8
+ defaultSubscription: 'type = "track"',
9
+ fields: {
10
+ external_audience_id: {
11
+ type: 'string',
12
+ label: 'External Audience ID',
13
+ description: 'Unique Audience Identifier returned by the createAudience() function call.',
14
+ required: true,
15
+ unsafe_hidden: true,
16
+ default: {
17
+ '@path': '$.context.personas.external_audience_id'
18
+ }
19
+ },
20
+ audienceKey: {
21
+ type: 'string',
22
+ label: 'Audience Key',
23
+ description: 'Audience key.',
24
+ required: true,
25
+ unsafe_hidden: true,
26
+ default: {
27
+ '@path': '$.context.personas.computation_key'
28
+ }
29
+ },
30
+ props: {
31
+ label: 'Properties object',
32
+ description: 'A computed object for track events.',
33
+ type: 'object',
34
+ required: true,
35
+ unsafe_hidden: true,
36
+ default: { '@path': '$.properties' }
37
+ },
38
+ schema_type: {
39
+ type: 'string',
40
+ choices: [
41
+ { value: 'MOBILE_AD_ID_SHA256', label: 'Mobile ID' },
42
+ { value: 'PHONE_SHA256', label: 'Phone' },
43
+ { value: 'EMAIL_SHA256', label: 'Email' }
44
+ ],
45
+ label: 'External ID Type',
46
+ required: true,
47
+ description: 'Choose the type of identifier to use when adding users to Snap.',
48
+ default: 'EMAIL_SHA256',
49
+ disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment']
50
+ },
51
+ phone: {
52
+ label: 'Phone',
53
+ description: "If using phone as the identifier, an additional setup step is required when connecting the Destination to the Audience. Please ensure that 'phone' is configured as an additional identifier in the Audience settings tab.",
54
+ type: 'string',
55
+ required: false,
56
+ default: { '@path': '$.properties.phone' },
57
+ depends_on: {
58
+ match: 'all',
59
+ conditions: [
60
+ {
61
+ fieldKey: 'schema_type',
62
+ operator: 'is',
63
+ value: 'PHONE_SHA256'
64
+ }
65
+ ]
66
+ }
67
+ },
68
+ email: {
69
+ label: 'Email',
70
+ description: "The user's email address.",
71
+ type: 'string',
72
+ format: 'email',
73
+ required: false,
74
+ default: { '@path': '$.context.traits.email' },
75
+ depends_on: {
76
+ match: 'all',
77
+ conditions: [
78
+ {
79
+ fieldKey: 'schema_type',
80
+ operator: 'is',
81
+ value: 'EMAIL_SHA256'
82
+ }
83
+ ]
84
+ }
85
+ },
86
+ advertising_id: {
87
+ label: 'Mobile Advertising ID',
88
+ description: "If using Mobile Ad ID as the identifier, an additional setup step is required when connecting the Destination to the Audience. Please ensure that 'ios.idfa' and 'android.idfa' are configured as an additional identifier in the Audience settings tab.",
89
+ type: 'string',
90
+ required: false,
91
+ default: {
92
+ '@path': '$.context.device.advertisingId'
93
+ },
94
+ depends_on: {
95
+ match: 'all',
96
+ conditions: [
97
+ {
98
+ fieldKey: 'schema_type',
99
+ operator: 'is',
100
+ value: 'MOBILE_AD_ID_SHA256'
101
+ }
102
+ ]
103
+ }
104
+ },
105
+ enable_batching: {
106
+ label: 'Enable Batching',
107
+ description: 'When enabled, events will be batched before being sent to Snap.',
108
+ type: 'boolean',
109
+ required: true,
110
+ default: true
111
+ }
112
+ },
113
+ perform: async (request, { payload }) => {
114
+ return processPayload(request, [payload]);
115
+ },
116
+ performBatch: async (request, { payload }) => {
117
+ return processPayload(request, payload);
118
+ }
119
+ };
120
+ exports.default = action;
121
+ const processPayload = async (request, payload) => {
122
+ const { external_audience_id, schema_type } = payload[0];
123
+ const { enteredAudience, exitedAudience } = utils_1.sortPayload(payload);
124
+ if (enteredAudience.length === 0 && exitedAudience.length === 0) {
125
+ throw new actions_core_1.PayloadValidationError(`No ${utils_1.validationError(schema_type)} identifier present in payload(s)`);
126
+ }
127
+ const requests = [];
128
+ if (enteredAudience.length > 0) {
129
+ requests.push(request(`https://adsapi.snapchat.com/v1/segments/${external_audience_id}/users`, {
130
+ method: 'post',
131
+ json: {
132
+ users: [
133
+ {
134
+ schema: [`${schema_type}`],
135
+ data: enteredAudience
136
+ }
137
+ ]
138
+ }
139
+ }));
140
+ }
141
+ if (exitedAudience.length > 0) {
142
+ requests.push(request(`https://adsapi.snapchat.com/v1/segments/${external_audience_id}/users`, {
143
+ method: 'delete',
144
+ json: {
145
+ users: [
146
+ {
147
+ schema: [`${schema_type}`],
148
+ data: exitedAudience
149
+ }
150
+ ]
151
+ }
152
+ }));
153
+ }
154
+ return await Promise.all(requests);
155
+ };
156
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/snap-audiences/syncAudience/index.ts"],"names":[],"mappings":";;AACA,wDAA8D;AAG9D,mCAAsD;AAEtD,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,uCAAuC;IACpD,mBAAmB,EAAE,gBAAgB;IACrC,MAAM,EAAE;QACN,oBAAoB,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,4EAA4E;YACzF,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,OAAO,EAAE,yCAAyC;aACnD;SACF;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,OAAO,EAAE,oCAAoC;aAC9C;SACF;QACD,KAAK,EAAE;YACL,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,qCAAqC;YAClD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;SACrC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW,EAAE;gBACpD,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;gBACzC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;aAC1C;YACD,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,iEAAiE;YAC9E,OAAO,EAAE,cAAc;YACvB,oBAAoB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;SACpF;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,WAAW,EACT,4NAA4N;YAC9N,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;YAC1C,UAAU,EAAE;gBACV,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE;oBACV;wBACE,QAAQ,EAAE,aAAa;wBACvB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,cAAc;qBACtB;iBACF;aACF;SACF;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE;YAC9C,UAAU,EAAE;gBACV,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE;oBACV;wBACE,QAAQ,EAAE,aAAa;wBACvB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,cAAc;qBACtB;iBACF;aACF;SACF;QACD,cAAc,EAAE;YACd,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACT,0PAA0P;YAC5P,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE;gBACP,OAAO,EAAE,gCAAgC;aAC1C;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE;oBACV;wBACE,QAAQ,EAAE,aAAa;wBACvB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,qBAAqB;qBAC7B;iBACF;aACF;SACF;QACD,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,iEAAiE;YAC9E,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,OAAO,cAAc,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3C,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3C,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA;AAErB,MAAM,cAAc,GAAG,KAAK,EAAE,OAAsB,EAAE,OAAkB,EAAE,EAAE;IAC1E,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,mBAAW,CAAC,OAAO,CAAC,CAAA;IAEhE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/D,MAAM,IAAI,qCAAsB,CAAC,MAAM,uBAAe,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAA;KACxG;IAED,MAAM,QAAQ,GAAG,EAAE,CAAA;IAEnB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,2CAA2C,oBAAoB,QAAQ,EAAE;YAC/E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL;wBACE,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC;wBAC1B,IAAI,EAAE,eAAe;qBACtB;iBACF;aACF;SACF,CAAC,CACH,CAAA;KACF;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,2CAA2C,oBAAoB,QAAQ,EAAE;YAC/E,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL;wBACE,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC;wBAC1B,IAAI,EAAE,cAAc;qBACrB;iBACF;aACF;SACF,CAAC,CACH,CAAA;KACF;IAED,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACpC,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { Payload } from './generated-types';
2
+ export declare const sortPayload: (payload: Payload[]) => {
3
+ enteredAudience: string[][];
4
+ exitedAudience: string[][];
5
+ };
6
+ export declare const validationError: (schema_type: string) => string;
7
+ export declare const normalizeAndHash: (identifier: string) => string;
8
+ export declare const normalizeAndHashPhone: (phone: string) => string;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeAndHashPhone = exports.normalizeAndHash = exports.validationError = exports.sortPayload = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const sortPayload = (payload) => {
6
+ return payload.reduce((acc, payloadItem) => {
7
+ const audienceEntered = payloadItem.props[payloadItem.audienceKey];
8
+ const externalId = validateAndExtractIdentifier(payloadItem.schema_type, payloadItem.email, payloadItem.phone, payloadItem.advertising_id);
9
+ if (externalId) {
10
+ if (audienceEntered) {
11
+ acc.enteredAudience.push([externalId]);
12
+ }
13
+ else {
14
+ acc.exitedAudience.push([externalId]);
15
+ }
16
+ }
17
+ return acc;
18
+ }, { enteredAudience: [], exitedAudience: [] });
19
+ };
20
+ exports.sortPayload = sortPayload;
21
+ const validationError = (schema_type) => {
22
+ switch (schema_type) {
23
+ case 'MOBILE_AD_ID_SHA256':
24
+ return 'Mobile Advertising ID';
25
+ case 'EMAIL_SHA256':
26
+ return 'Email';
27
+ case 'PHONE_SHA256':
28
+ return 'Phone number';
29
+ default:
30
+ return 'Identifier';
31
+ }
32
+ };
33
+ exports.validationError = validationError;
34
+ const validateAndExtractIdentifier = (schemaType, email, phone, mobileAdId) => {
35
+ if (schemaType === 'EMAIL_SHA256' && email) {
36
+ return exports.normalizeAndHash(email);
37
+ }
38
+ if (schemaType === 'MOBILE_AD_ID_SHA256' && mobileAdId) {
39
+ return exports.normalizeAndHash(mobileAdId);
40
+ }
41
+ if (schemaType === 'PHONE_SHA256' && phone) {
42
+ return exports.normalizeAndHashPhone(phone);
43
+ }
44
+ return null;
45
+ };
46
+ const hash = (value) => {
47
+ const hash = crypto_1.createHash('sha256');
48
+ hash.update(value);
49
+ return hash.digest('hex');
50
+ };
51
+ const isHashed = (identifier) => new RegExp(/[0-9abcdef]{64}/gi).test(identifier);
52
+ const normalizeAndHash = (identifier) => {
53
+ if (isHashed(identifier))
54
+ return identifier;
55
+ const hashedIdentifier = hash(identifier.trim().toLowerCase());
56
+ return hashedIdentifier;
57
+ };
58
+ exports.normalizeAndHash = normalizeAndHash;
59
+ const normalizeAndHashPhone = (phone) => {
60
+ if (isHashed(phone))
61
+ return phone;
62
+ let normalizedPhone = phone.replace(/[\s()+-]/g, '');
63
+ if (normalizedPhone.startsWith('00')) {
64
+ normalizedPhone = normalizedPhone.substring(2);
65
+ }
66
+ if (normalizedPhone.startsWith('0')) {
67
+ normalizedPhone = normalizedPhone.substring(1);
68
+ }
69
+ const hashedPhone = hash(normalizedPhone);
70
+ return hashedPhone;
71
+ };
72
+ exports.normalizeAndHashPhone = normalizeAndHashPhone;
73
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/destinations/snap-audiences/syncAudience/utils.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.327.0",
4
+ "version": "3.329.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -88,5 +88,5 @@
88
88
  "__tests__/__helpers__/"
89
89
  ]
90
90
  },
91
- "gitHead": "d7a9a2a1fa8a0d26d5f0228d34fb80c6da0a55ed"
91
+ "gitHead": "7251cfbc02a7f498dcddf20881b7cc6935d6a9c2"
92
92
  }