@segment/action-destinations 3.324.0 → 3.326.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.
- package/dist/destinations/accoil-analytics/common-fields.d.ts +2 -0
- package/dist/destinations/accoil-analytics/common-fields.js +21 -0
- package/dist/destinations/accoil-analytics/common-fields.js.map +1 -0
- package/dist/destinations/accoil-analytics/group/generated-types.d.ts +12 -0
- package/dist/destinations/accoil-analytics/group/generated-types.js.map +1 -0
- package/dist/destinations/accoil-analytics/group/index.js +72 -0
- package/dist/destinations/accoil-analytics/group/index.js.map +1 -0
- package/dist/destinations/accoil-analytics/identify/generated-types.d.ts +12 -0
- package/dist/destinations/accoil-analytics/identify/generated-types.js +3 -0
- package/dist/destinations/accoil-analytics/identify/generated-types.js.map +1 -0
- package/dist/destinations/accoil-analytics/identify/index.d.ts +5 -0
- package/dist/destinations/accoil-analytics/identify/index.js +73 -0
- package/dist/destinations/accoil-analytics/identify/index.js.map +1 -0
- package/dist/destinations/accoil-analytics/index.js +25 -26
- package/dist/destinations/accoil-analytics/index.js.map +1 -1
- package/dist/destinations/accoil-analytics/page/generated-types.d.ts +5 -0
- package/dist/destinations/accoil-analytics/page/generated-types.js +3 -0
- package/dist/destinations/accoil-analytics/page/generated-types.js.map +1 -0
- package/dist/destinations/accoil-analytics/page/index.d.ts +5 -0
- package/dist/destinations/accoil-analytics/page/index.js +38 -0
- package/dist/destinations/accoil-analytics/page/index.js.map +1 -0
- package/dist/destinations/accoil-analytics/screen/generated-types.d.ts +5 -0
- package/dist/destinations/accoil-analytics/screen/generated-types.js +3 -0
- package/dist/destinations/accoil-analytics/screen/generated-types.js.map +1 -0
- package/dist/destinations/accoil-analytics/screen/index.d.ts +5 -0
- package/dist/destinations/accoil-analytics/screen/index.js +38 -0
- package/dist/destinations/accoil-analytics/screen/index.js.map +1 -0
- package/dist/destinations/accoil-analytics/track/generated-types.d.ts +5 -0
- package/dist/destinations/accoil-analytics/track/generated-types.js +3 -0
- package/dist/destinations/accoil-analytics/track/generated-types.js.map +1 -0
- package/dist/destinations/accoil-analytics/track/index.d.ts +5 -0
- package/dist/destinations/accoil-analytics/track/index.js +39 -0
- package/dist/destinations/accoil-analytics/track/index.js.map +1 -0
- package/dist/destinations/accoil-analytics/utils.d.ts +6 -0
- package/dist/destinations/accoil-analytics/utils.js +14 -0
- package/dist/destinations/accoil-analytics/utils.js.map +1 -0
- package/dist/destinations/adobe-target/adobeTarget_operations.js +3 -2
- package/dist/destinations/adobe-target/adobeTarget_operations.js.map +1 -1
- package/dist/destinations/braze/createAlias2/generated-types.d.ts +5 -0
- package/dist/destinations/braze/createAlias2/generated-types.js +3 -0
- package/dist/destinations/braze/createAlias2/generated-types.js.map +1 -0
- package/dist/destinations/braze/createAlias2/index.d.ts +5 -0
- package/dist/destinations/braze/createAlias2/index.js +53 -0
- package/dist/destinations/braze/createAlias2/index.js.map +1 -0
- package/dist/destinations/braze/identifyUser2/generated-types.d.ts +8 -0
- package/dist/destinations/braze/identifyUser2/generated-types.js +3 -0
- package/dist/destinations/braze/identifyUser2/generated-types.js.map +1 -0
- package/dist/destinations/braze/identifyUser2/index.d.ts +5 -0
- package/dist/destinations/braze/identifyUser2/index.js +70 -0
- package/dist/destinations/braze/identifyUser2/index.js.map +1 -0
- package/dist/destinations/braze/index.js +11 -1
- package/dist/destinations/braze/index.js.map +1 -1
- package/dist/destinations/braze/trackEvent2/generated-types.d.ts +16 -0
- package/dist/destinations/braze/trackEvent2/generated-types.js +3 -0
- package/dist/destinations/braze/trackEvent2/generated-types.js.map +1 -0
- package/dist/destinations/braze/trackEvent2/index.d.ts +5 -0
- package/dist/destinations/braze/trackEvent2/index.js +117 -0
- package/dist/destinations/braze/trackEvent2/index.js.map +1 -0
- package/dist/destinations/braze/trackPurchase2/generated-types.d.ts +22 -0
- package/dist/destinations/braze/trackPurchase2/generated-types.js +3 -0
- package/dist/destinations/braze/trackPurchase2/generated-types.js.map +1 -0
- package/dist/destinations/braze/trackPurchase2/index.d.ts +5 -0
- package/dist/destinations/braze/trackPurchase2/index.js +135 -0
- package/dist/destinations/braze/trackPurchase2/index.js.map +1 -0
- package/dist/destinations/braze/updateUserProfile2/generated-types.d.ts +52 -0
- package/dist/destinations/braze/updateUserProfile2/generated-types.js +3 -0
- package/dist/destinations/braze/updateUserProfile2/generated-types.js.map +1 -0
- package/dist/destinations/braze/updateUserProfile2/index.d.ts +5 -0
- package/dist/destinations/braze/updateUserProfile2/index.js +303 -0
- package/dist/destinations/braze/updateUserProfile2/index.js.map +1 -0
- package/dist/destinations/braze/utils.d.ts +6 -6
- package/dist/destinations/braze/utils.js +36 -12
- package/dist/destinations/braze/utils.js.map +1 -1
- package/dist/destinations/contentstack/index.js +1 -1
- package/dist/destinations/contentstack/index.js.map +1 -1
- package/dist/destinations/first-party-dv360/functions.d.ts +1 -0
- package/dist/destinations/first-party-dv360/functions.js +3 -2
- package/dist/destinations/first-party-dv360/functions.js.map +1 -1
- package/dist/destinations/first-party-dv360/generated-types.d.ts +1 -0
- package/dist/destinations/first-party-dv360/index.js +8 -0
- package/dist/destinations/first-party-dv360/index.js.map +1 -1
- package/dist/destinations/hubspot/customEvent/client.d.ts +2 -2
- package/dist/destinations/hubspot/customEvent/client.js.map +1 -1
- package/dist/destinations/hubspot/customEvent/dynamic-fields.js +2 -2
- package/dist/destinations/hubspot/customEvent/dynamic-fields.js.map +1 -1
- package/dist/destinations/hubspot/customEvent/event-completion.d.ts +3 -0
- package/dist/destinations/hubspot/customEvent/event-completion.js +17 -0
- package/dist/destinations/hubspot/customEvent/event-completion.js.map +1 -0
- package/dist/destinations/hubspot/customEvent/index.js +36 -42
- package/dist/destinations/hubspot/customEvent/index.js.map +1 -1
- package/dist/destinations/hubspot/customEvent/types.d.ts +11 -4
- package/dist/destinations/hubspot/customEvent/types.js +1 -2
- package/dist/destinations/hubspot/customEvent/types.js.map +1 -1
- package/dist/destinations/hubspot/customEvent/utils.d.ts +10 -8
- package/dist/destinations/hubspot/customEvent/utils.js +155 -189
- package/dist/destinations/hubspot/customEvent/utils.js.map +1 -1
- package/dist/destinations/hubspot/customEvent/validation.d.ts +3 -0
- package/dist/destinations/hubspot/customEvent/validation.js +66 -0
- package/dist/destinations/hubspot/customEvent/validation.js.map +1 -0
- package/dist/destinations/index.js +3 -0
- package/dist/destinations/index.js.map +1 -1
- package/dist/destinations/klaviyo/generated-types.d.ts +3 -0
- package/dist/destinations/klaviyo/index.d.ts +2 -2
- package/dist/destinations/klaviyo/index.js +12 -1
- package/dist/destinations/klaviyo/index.js.map +1 -1
- package/dist/destinations/nextdoor-capi/generated-types.d.ts +1 -0
- package/dist/destinations/nextdoor-capi/index.js +6 -0
- package/dist/destinations/nextdoor-capi/index.js.map +1 -1
- package/dist/destinations/nextdoor-capi/sendConversion/generated-types.d.ts +0 -1
- package/dist/destinations/nextdoor-capi/sendConversion/index.js +2 -15
- package/dist/destinations/nextdoor-capi/sendConversion/index.js.map +1 -1
- package/dist/destinations/postscript/const.d.ts +2 -0
- package/dist/destinations/postscript/const.js +6 -0
- package/dist/destinations/postscript/const.js.map +1 -0
- package/dist/destinations/postscript/generated-types.d.ts +3 -0
- package/dist/destinations/postscript/generated-types.js +3 -0
- package/dist/destinations/postscript/generated-types.js.map +1 -0
- package/dist/destinations/postscript/index.d.ts +4 -0
- package/dist/destinations/postscript/index.js +42 -0
- package/dist/destinations/postscript/index.js.map +1 -0
- package/dist/destinations/postscript/syncAudiences/generated-types.d.ts +10 -0
- package/dist/destinations/postscript/syncAudiences/generated-types.js +3 -0
- package/dist/destinations/postscript/syncAudiences/generated-types.js.map +1 -0
- package/dist/destinations/postscript/syncAudiences/index.d.ts +5 -0
- package/dist/destinations/postscript/syncAudiences/index.js +138 -0
- package/dist/destinations/postscript/syncAudiences/index.js.map +1 -0
- package/dist/destinations/postscript/types.d.ts +10 -0
- package/dist/destinations/postscript/types.js +4 -0
- package/dist/destinations/postscript/types.js.map +1 -0
- package/dist/destinations/recombee/addBookmark/generated-types.d.ts +9 -0
- package/dist/destinations/recombee/addBookmark/generated-types.js +3 -0
- package/dist/destinations/recombee/addBookmark/generated-types.js.map +1 -0
- package/dist/destinations/recombee/addBookmark/index.d.ts +5 -0
- package/dist/destinations/recombee/addBookmark/index.js +55 -0
- package/dist/destinations/recombee/addBookmark/index.js.map +1 -0
- package/dist/destinations/recombee/addCartAddition/generated-types.d.ts +13 -0
- package/dist/destinations/recombee/addCartAddition/generated-types.js +3 -0
- package/dist/destinations/recombee/addCartAddition/generated-types.js.map +1 -0
- package/dist/destinations/recombee/addCartAddition/index.d.ts +5 -0
- package/dist/destinations/recombee/addCartAddition/index.js +99 -0
- package/dist/destinations/recombee/addCartAddition/index.js.map +1 -0
- package/dist/destinations/recombee/addDetailView/generated-types.d.ts +10 -0
- package/dist/destinations/recombee/addDetailView/generated-types.js +3 -0
- package/dist/destinations/recombee/addDetailView/generated-types.js.map +1 -0
- package/dist/destinations/recombee/addDetailView/index.d.ts +5 -0
- package/dist/destinations/recombee/addDetailView/index.js +60 -0
- package/dist/destinations/recombee/addDetailView/index.js.map +1 -0
- package/dist/destinations/recombee/addPurchase/generated-types.d.ts +14 -0
- package/dist/destinations/recombee/addPurchase/generated-types.js +3 -0
- package/dist/destinations/recombee/addPurchase/generated-types.js.map +1 -0
- package/dist/destinations/recombee/addPurchase/index.d.ts +5 -0
- package/dist/destinations/recombee/addPurchase/index.js +107 -0
- package/dist/destinations/recombee/addPurchase/index.js.map +1 -0
- package/dist/destinations/recombee/addRating/generated-types.d.ts +10 -0
- package/dist/destinations/recombee/addRating/generated-types.js +3 -0
- package/dist/destinations/recombee/addRating/generated-types.js.map +1 -0
- package/dist/destinations/recombee/addRating/index.d.ts +5 -0
- package/dist/destinations/recombee/addRating/index.js +61 -0
- package/dist/destinations/recombee/addRating/index.js.map +1 -0
- package/dist/destinations/recombee/commonFields.d.ts +32 -0
- package/dist/destinations/recombee/commonFields.js +43 -0
- package/dist/destinations/recombee/commonFields.js.map +1 -0
- package/dist/destinations/recombee/deleteBookmark/generated-types.d.ts +5 -0
- package/dist/destinations/recombee/deleteBookmark/generated-types.js +3 -0
- package/dist/destinations/recombee/deleteBookmark/generated-types.js.map +1 -0
- package/dist/destinations/recombee/deleteBookmark/index.d.ts +5 -0
- package/dist/destinations/recombee/deleteBookmark/index.js +52 -0
- package/dist/destinations/recombee/deleteBookmark/index.js.map +1 -0
- package/dist/destinations/recombee/deleteCartAddition/generated-types.d.ts +5 -0
- package/dist/destinations/recombee/deleteCartAddition/generated-types.js +3 -0
- package/dist/destinations/recombee/deleteCartAddition/generated-types.js.map +1 -0
- package/dist/destinations/recombee/deleteCartAddition/index.d.ts +5 -0
- package/dist/destinations/recombee/deleteCartAddition/index.js +52 -0
- package/dist/destinations/recombee/deleteCartAddition/index.js.map +1 -0
- package/dist/destinations/recombee/generated-types.d.ts +6 -0
- package/dist/destinations/recombee/generated-types.js +3 -0
- package/dist/destinations/recombee/generated-types.js.map +1 -0
- package/dist/destinations/recombee/index.d.ts +4 -0
- package/dist/destinations/recombee/index.js +223 -0
- package/dist/destinations/recombee/index.js.map +1 -0
- package/dist/destinations/recombee/mergeUsers/generated-types.d.ts +4 -0
- package/dist/destinations/recombee/mergeUsers/generated-types.js +3 -0
- package/dist/destinations/recombee/mergeUsers/generated-types.js.map +1 -0
- package/dist/destinations/recombee/mergeUsers/index.d.ts +5 -0
- package/dist/destinations/recombee/mergeUsers/index.js +34 -0
- package/dist/destinations/recombee/mergeUsers/index.js.map +1 -0
- package/dist/destinations/recombee/recombeeApiClient.d.ts +120 -0
- package/dist/destinations/recombee/recombeeApiClient.js +138 -0
- package/dist/destinations/recombee/recombeeApiClient.js.map +1 -0
- package/dist/destinations/recombee/setViewPortion/generated-types.d.ts +11 -0
- package/dist/destinations/recombee/setViewPortion/generated-types.js +3 -0
- package/dist/destinations/recombee/setViewPortion/generated-types.js.map +1 -0
- package/dist/destinations/recombee/setViewPortion/index.d.ts +5 -0
- package/dist/destinations/recombee/setViewPortion/index.js +68 -0
- package/dist/destinations/recombee/setViewPortion/index.js.map +1 -0
- package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.d.ts +14 -0
- package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.js +3 -0
- package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.js.map +1 -0
- package/dist/destinations/recombee/setViewPortionFromWatchTime/index.d.ts +5 -0
- package/dist/destinations/recombee/setViewPortionFromWatchTime/index.js +96 -0
- package/dist/destinations/recombee/setViewPortionFromWatchTime/index.js.map +1 -0
- package/dist/destinations/reddit-audiences/const.d.ts +2 -0
- package/dist/destinations/reddit-audiences/const.js +6 -0
- package/dist/destinations/reddit-audiences/const.js.map +1 -0
- package/dist/destinations/reddit-audiences/generated-types.d.ts +6 -0
- package/dist/destinations/reddit-audiences/generated-types.js +3 -0
- package/dist/destinations/reddit-audiences/generated-types.js.map +1 -0
- package/dist/destinations/reddit-audiences/index.d.ts +4 -0
- package/dist/destinations/reddit-audiences/index.js +83 -0
- package/dist/destinations/reddit-audiences/index.js.map +1 -0
- package/dist/destinations/reddit-audiences/syncAudience/functions.d.ts +3 -0
- package/dist/destinations/reddit-audiences/syncAudience/functions.js +105 -0
- package/dist/destinations/reddit-audiences/syncAudience/functions.js.map +1 -0
- package/dist/destinations/reddit-audiences/syncAudience/generated-types.d.ts +13 -0
- package/dist/destinations/reddit-audiences/syncAudience/generated-types.js +3 -0
- package/dist/destinations/reddit-audiences/syncAudience/generated-types.js.map +1 -0
- package/dist/destinations/reddit-audiences/syncAudience/index.d.ts +5 -0
- package/dist/destinations/reddit-audiences/syncAudience/index.js +114 -0
- package/dist/destinations/reddit-audiences/syncAudience/index.js.map +1 -0
- package/dist/destinations/reddit-audiences/syncAudience/types.d.ts +33 -0
- package/dist/destinations/reddit-audiences/syncAudience/types.js +3 -0
- package/dist/destinations/reddit-audiences/syncAudience/types.js.map +1 -0
- package/dist/destinations/reddit-audiences/types.d.ts +18 -0
- package/dist/destinations/reddit-audiences/types.js +3 -0
- package/dist/destinations/reddit-audiences/types.js.map +1 -0
- package/dist/destinations/reddit-conversions-api/utils.js +2 -2
- package/dist/destinations/reddit-conversions-api/utils.js.map +1 -1
- package/dist/destinations/s3/fields.js +1 -1
- package/dist/destinations/s3/fields.js.map +1 -1
- package/dist/destinations/s3/functions.js.map +1 -1
- package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js +3 -3
- package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js.map +1 -1
- package/dist/destinations/stackadapt-audiences/forwardProfile/functions.js +1 -1
- package/dist/destinations/stackadapt-audiences/forwardProfile/functions.js.map +1 -1
- package/package.json +5 -4
- package/dist/destinations/accoil-analytics/postToAccoil/generated-types.d.ts +0 -5
- package/dist/destinations/accoil-analytics/postToAccoil/generated-types.js.map +0 -1
- package/dist/destinations/accoil-analytics/postToAccoil/index.js +0 -28
- package/dist/destinations/accoil-analytics/postToAccoil/index.js.map +0 -1
- /package/dist/destinations/accoil-analytics/{postToAccoil → group}/generated-types.js +0 -0
- /package/dist/destinations/accoil-analytics/{postToAccoil → group}/index.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/recombee/setViewPortionFromWatchTime/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const recombeeApiClient_1 = require("../recombeeApiClient");
|
|
4
|
+
const commonFields_1 = require("../commonFields");
|
|
5
|
+
const action = {
|
|
6
|
+
title: 'Set View Portion from Watch Time',
|
|
7
|
+
description: 'Sets the viewed portion of a given item (e.g. a video or article) by the given user. **Use this action when you have the watch time of the item (e.g. in seconds) instead of the portion watched.**',
|
|
8
|
+
fields: {
|
|
9
|
+
userId: {
|
|
10
|
+
label: 'User ID',
|
|
11
|
+
description: 'The ID of the user who viewed a portion of the item.',
|
|
12
|
+
type: 'string',
|
|
13
|
+
required: true,
|
|
14
|
+
default: {
|
|
15
|
+
'@if': {
|
|
16
|
+
exists: { '@path': '$.userId' },
|
|
17
|
+
then: { '@path': '$.userId' },
|
|
18
|
+
else: { '@path': '$.anonymousId' }
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
itemId: {
|
|
23
|
+
label: 'Item ID',
|
|
24
|
+
description: 'The viewed item.',
|
|
25
|
+
type: 'string',
|
|
26
|
+
required: true,
|
|
27
|
+
default: {
|
|
28
|
+
'@if': {
|
|
29
|
+
exists: { '@path': '$.properties.product_id' },
|
|
30
|
+
then: { '@path': '$.properties.product_id' },
|
|
31
|
+
else: { '@path': '$.properties.asset_id' }
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
timestamp: {
|
|
36
|
+
label: 'Timestamp',
|
|
37
|
+
description: 'The UTC timestamp of when the view portion occurred.',
|
|
38
|
+
type: 'string',
|
|
39
|
+
required: false,
|
|
40
|
+
default: { '@path': '$.timestamp' }
|
|
41
|
+
},
|
|
42
|
+
portion: {
|
|
43
|
+
label: 'Portion',
|
|
44
|
+
description: 'The portion of the item that the user viewed.',
|
|
45
|
+
type: 'object',
|
|
46
|
+
required: true,
|
|
47
|
+
properties: {
|
|
48
|
+
totalLength: {
|
|
49
|
+
label: 'Total Length',
|
|
50
|
+
description: 'The total length of the item that the user can view.',
|
|
51
|
+
type: 'number',
|
|
52
|
+
required: true
|
|
53
|
+
},
|
|
54
|
+
watchTime: {
|
|
55
|
+
label: 'Watch Time',
|
|
56
|
+
description: "The user's watched time of the item.",
|
|
57
|
+
type: 'number',
|
|
58
|
+
required: true
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
default: {
|
|
62
|
+
totalLength: { '@path': '$.properties.total_length' },
|
|
63
|
+
watchTime: { '@path': '$.properties.position' }
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
sessionId: {
|
|
67
|
+
label: 'Session ID',
|
|
68
|
+
description: 'The ID of the session in which the user viewed the item.',
|
|
69
|
+
type: 'string',
|
|
70
|
+
required: false,
|
|
71
|
+
default: { '@path': '$.properties.session' }
|
|
72
|
+
},
|
|
73
|
+
...commonFields_1.interactionFields('view portion')
|
|
74
|
+
},
|
|
75
|
+
perform: async (request, data) => {
|
|
76
|
+
const client = new recombeeApiClient_1.RecombeeApiClient(data.settings, request);
|
|
77
|
+
await client.send(payloadToViewPortion(data.payload));
|
|
78
|
+
},
|
|
79
|
+
performBatch: async (request, data) => {
|
|
80
|
+
const client = new recombeeApiClient_1.RecombeeApiClient(data.settings, request);
|
|
81
|
+
await client.send(new recombeeApiClient_1.Batch(data.payload.map(payloadToViewPortion)));
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
function payloadToViewPortion(payload) {
|
|
85
|
+
return new recombeeApiClient_1.SetViewPortion({
|
|
86
|
+
userId: payload.userId,
|
|
87
|
+
itemId: payload.itemId,
|
|
88
|
+
timestamp: payload.timestamp,
|
|
89
|
+
portion: payload.portion.watchTime / payload.portion.totalLength,
|
|
90
|
+
sessionId: payload.sessionId,
|
|
91
|
+
additionalData: payload.additionalData,
|
|
92
|
+
recommId: payload.recommId
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
exports.default = action;
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/recombee/setViewPortionFromWatchTime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/destinations/reddit-audiences/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,cAAc,CAAA;AAClC,QAAA,gBAAgB,GAAG,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/reddit-audiences/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
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 syncAudience_1 = __importDefault(require("./syncAudience"));
|
|
7
|
+
const destination = {
|
|
8
|
+
name: 'Reddit Audiences',
|
|
9
|
+
slug: 'actions-reddit-audiences',
|
|
10
|
+
mode: 'cloud',
|
|
11
|
+
authentication: {
|
|
12
|
+
scheme: 'oauth-managed',
|
|
13
|
+
fields: {
|
|
14
|
+
ad_account_id: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
label: 'Ad Account ID',
|
|
17
|
+
description: 'Unique identifier of an ad account. This can be found in the Reddit UI.',
|
|
18
|
+
required: true
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
refreshAccessToken: async (request, { auth }) => {
|
|
22
|
+
const res = await request('https://www.reddit.com/api/v1/access_token', {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
username: auth.clientId,
|
|
25
|
+
password: auth.clientSecret,
|
|
26
|
+
body: new URLSearchParams({
|
|
27
|
+
refresh_token: auth.refreshToken,
|
|
28
|
+
grant_type: 'refresh_token'
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
const responseData = res.data;
|
|
32
|
+
return { accessToken: responseData.access_token };
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
extendRequest({ auth }) {
|
|
36
|
+
return {
|
|
37
|
+
headers: {
|
|
38
|
+
'Content-Type': 'application/json',
|
|
39
|
+
authorization: `Bearer ${auth?.accessToken}`
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
audienceFields: {
|
|
44
|
+
audienceName: {
|
|
45
|
+
label: 'Audience Name',
|
|
46
|
+
description: 'An audience name to display in Reddit',
|
|
47
|
+
type: 'string',
|
|
48
|
+
required: true
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
audienceConfig: {
|
|
52
|
+
mode: {
|
|
53
|
+
type: 'synced',
|
|
54
|
+
full_audience_sync: false
|
|
55
|
+
},
|
|
56
|
+
async createAudience(request, createAudienceInput) {
|
|
57
|
+
const response = await request(`https://ads-api.reddit.com/api/v3/ad_accounts/${createAudienceInput.settings.ad_account_id}/custom_audiences`, {
|
|
58
|
+
method: 'POST',
|
|
59
|
+
headers: {
|
|
60
|
+
'Content-Type': 'application/json'
|
|
61
|
+
},
|
|
62
|
+
json: {
|
|
63
|
+
data: {
|
|
64
|
+
name: createAudienceInput.audienceName,
|
|
65
|
+
type: 'CUSTOMER_LIST'
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const jsonOutput = await response.json();
|
|
70
|
+
return { externalId: jsonOutput.data.id };
|
|
71
|
+
},
|
|
72
|
+
async getAudience(_, getAudienceInput) {
|
|
73
|
+
return {
|
|
74
|
+
externalId: getAudienceInput.externalId
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
actions: {
|
|
79
|
+
syncAudience: syncAudience_1.default
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
exports.default = destination;
|
|
83
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/reddit-audiences/index.ts"],"names":[],"mappings":";;;;;AAEA,kEAAyC;AAGzC,MAAM,WAAW,GAA8D;IAC7E,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,OAAO;IACb,cAAc,EAAE;QACd,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,yEAAyE;gBACtF,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,4CAA4C,EAAE;gBACtE,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;gBAC3B,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;oBAChC,UAAU,EAAE,eAAe;iBAC5B,CAAC;aACH,CAAC,CAAA;YACF,MAAM,YAAY,GAAG,GAAG,CAAC,IAAgC,CAAA;YACzD,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,YAAY,EAAE,CAAA;QACnD,CAAC;KACF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO;YACL,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,EAAE,WAAW,EAAE;aAC7C;SACF,CAAA;IACH,CAAC;IACD,cAAc,EAAE;QACd,YAAY,EAAE;YACZ,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,uCAAuC;YACpD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACf;KACF;IACD,cAAc,EAAE;QACd,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,KAAK;SAC1B;QACD,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB;YAC/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,iDAAiD,mBAAmB,CAAC,QAAQ,CAAC,aAAa,mBAAmB,EAC9G;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE;wBACJ,IAAI,EAAE,mBAAmB,CAAC,YAAY;wBACtC,IAAI,EAAE,eAAe;qBACtB;iBACmB;aACvB,CACF,CAAA;YACD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACxC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;QAC3C,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,gBAAgB;YACnC,OAAO;gBACL,UAAU,EAAE,gBAAgB,CAAC,UAAU;aACxC,CAAA;QACH,CAAC;KACF;IACD,OAAO,EAAE;QACP,YAAY,EAAZ,sBAAY;KACb;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.send = void 0;
|
|
4
|
+
const actions_core_1 = require("@segment/actions-core");
|
|
5
|
+
const const_1 = require("../const");
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
7
|
+
async function send(request, payloads) {
|
|
8
|
+
const audienceId = payloads[0].external_audience_id;
|
|
9
|
+
if (!audienceId) {
|
|
10
|
+
throw new actions_core_1.PayloadValidationError('External Audience ID is required.');
|
|
11
|
+
}
|
|
12
|
+
const validPayloads = cleanPayloads(payloads);
|
|
13
|
+
const addPayloads = validPayloads.filter((p) => p.traits_or_props[p.computation_key] === true);
|
|
14
|
+
const removePayloads = validPayloads.filter((p) => p.traits_or_props[p.computation_key] === false);
|
|
15
|
+
const addColumns = getColumns(addPayloads);
|
|
16
|
+
const removeColumns = getColumns(removePayloads);
|
|
17
|
+
const addJSON = {
|
|
18
|
+
data: {
|
|
19
|
+
column_order: addColumns,
|
|
20
|
+
user_data: addPayloads.map((p) => {
|
|
21
|
+
const data = [];
|
|
22
|
+
if (addColumns.includes(const_1.EMAIL_SCHEMA_NAME) && p.email) {
|
|
23
|
+
data.push(p.email ?? '');
|
|
24
|
+
}
|
|
25
|
+
if (addColumns.includes(const_1.MAID_SCHEMA_NAME)) {
|
|
26
|
+
data.push(p.androidIDFA ?? p.iosIDFA ?? '');
|
|
27
|
+
}
|
|
28
|
+
return data;
|
|
29
|
+
}),
|
|
30
|
+
action_type: 'ADD'
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
if (addJSON.data.user_data.length > 0) {
|
|
34
|
+
await updateAudience(request, addJSON, audienceId);
|
|
35
|
+
}
|
|
36
|
+
const removeJSON = {
|
|
37
|
+
data: {
|
|
38
|
+
column_order: removeColumns,
|
|
39
|
+
user_data: removePayloads.map((p) => {
|
|
40
|
+
const data = [];
|
|
41
|
+
if (removeColumns.includes(const_1.EMAIL_SCHEMA_NAME) && p.email) {
|
|
42
|
+
data.push(p.email);
|
|
43
|
+
}
|
|
44
|
+
if (removeColumns.includes(const_1.MAID_SCHEMA_NAME)) {
|
|
45
|
+
data.push(p.androidIDFA ?? p.iosIDFA ?? '');
|
|
46
|
+
}
|
|
47
|
+
return data;
|
|
48
|
+
}),
|
|
49
|
+
action_type: 'REMOVE'
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
if (removeJSON.data.user_data.length > 0) {
|
|
53
|
+
await updateAudience(request, removeJSON, audienceId);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.send = send;
|
|
57
|
+
function cleanPayloads(payloads) {
|
|
58
|
+
const p = payloads
|
|
59
|
+
.filter((payload) => payload.email || payload.iosIDFA || payload.androidIDFA)
|
|
60
|
+
.map((payload) => {
|
|
61
|
+
const copy = { ...payload };
|
|
62
|
+
if (copy.email && !ensureHashed(copy.email)) {
|
|
63
|
+
copy.email = hashEmail(copy.email);
|
|
64
|
+
}
|
|
65
|
+
if (copy.iosIDFA && !ensureHashed(copy.iosIDFA)) {
|
|
66
|
+
const hash = crypto_1.createHash('sha256');
|
|
67
|
+
hash.update(copy.iosIDFA);
|
|
68
|
+
copy.iosIDFA = hash.digest('hex');
|
|
69
|
+
}
|
|
70
|
+
if (copy.androidIDFA && !ensureHashed(copy.androidIDFA)) {
|
|
71
|
+
const hash = crypto_1.createHash('sha256');
|
|
72
|
+
hash.update(copy.androidIDFA);
|
|
73
|
+
copy.androidIDFA = hash.digest('hex');
|
|
74
|
+
}
|
|
75
|
+
return copy;
|
|
76
|
+
});
|
|
77
|
+
return p;
|
|
78
|
+
}
|
|
79
|
+
function getColumns(payloads) {
|
|
80
|
+
const hasEmail = payloads.some((payload) => !!payload.email);
|
|
81
|
+
const hasMAID = payloads.some((payload) => payload.androidIDFA || payload.iosIDFA);
|
|
82
|
+
return [...(hasEmail ? [const_1.EMAIL_SCHEMA_NAME] : []), ...(hasMAID ? [const_1.MAID_SCHEMA_NAME] : [])];
|
|
83
|
+
}
|
|
84
|
+
async function updateAudience(request, json, audienceid) {
|
|
85
|
+
return await request(`https://ads-api.reddit.com/api/v3/custom_audiences/${audienceid}/users`, {
|
|
86
|
+
method: 'PATCH',
|
|
87
|
+
json
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function ensureHashed(value) {
|
|
91
|
+
const sha256HashedRegex = /^[a-f0-9]{64}$/i;
|
|
92
|
+
return sha256HashedRegex.test(value);
|
|
93
|
+
}
|
|
94
|
+
function hashEmail(value) {
|
|
95
|
+
const email = canonicalizeEmail(value);
|
|
96
|
+
const hash = crypto_1.createHash('sha256');
|
|
97
|
+
hash.update(email);
|
|
98
|
+
return hash.digest('hex');
|
|
99
|
+
}
|
|
100
|
+
function canonicalizeEmail(value) {
|
|
101
|
+
const localPartAndDomain = value.split('@');
|
|
102
|
+
const localPart = localPartAndDomain[0].replace(/\./g, '').split('+')[0];
|
|
103
|
+
return `${localPart.toLowerCase()}@${localPartAndDomain[1].toLowerCase()}`;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/destinations/reddit-audiences/syncAudience/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface Payload {
|
|
2
|
+
segment_computation_action: string;
|
|
3
|
+
computation_key: string;
|
|
4
|
+
external_audience_id: string;
|
|
5
|
+
email?: string;
|
|
6
|
+
iosIDFA?: string;
|
|
7
|
+
androidIDFA?: string;
|
|
8
|
+
traits_or_props: {
|
|
9
|
+
[k: string]: unknown;
|
|
10
|
+
};
|
|
11
|
+
enable_batching?: boolean;
|
|
12
|
+
batch_size?: number;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/reddit-audiences/syncAudience/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const functions_1 = require("./functions");
|
|
4
|
+
const action = {
|
|
5
|
+
title: 'Sync Audience',
|
|
6
|
+
description: 'Sync a Segment Engage Audience to Reddit',
|
|
7
|
+
defaultSubscription: 'type = "identify" or type = "track"',
|
|
8
|
+
fields: {
|
|
9
|
+
segment_computation_action: {
|
|
10
|
+
label: 'Segment Computation Action',
|
|
11
|
+
description: "Segment computation class used to determine if input event is from an Engage Audience'. Value must be = 'audience'.",
|
|
12
|
+
type: 'string',
|
|
13
|
+
unsafe_hidden: true,
|
|
14
|
+
required: true,
|
|
15
|
+
default: {
|
|
16
|
+
'@path': '$.context.personas.computation_class'
|
|
17
|
+
},
|
|
18
|
+
choices: [{ label: 'audience', value: 'audience' }]
|
|
19
|
+
},
|
|
20
|
+
computation_key: {
|
|
21
|
+
label: 'Audience Computation Key',
|
|
22
|
+
description: "Segment's friendly name for the Audience",
|
|
23
|
+
type: 'string',
|
|
24
|
+
required: true,
|
|
25
|
+
default: {
|
|
26
|
+
'@path': '$.context.personas.computation_key'
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
external_audience_id: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
label: 'Audience ID',
|
|
32
|
+
description: 'Unique Audience Identifier returned by the createAudience() function call.',
|
|
33
|
+
required: true,
|
|
34
|
+
unsafe_hidden: false,
|
|
35
|
+
default: {
|
|
36
|
+
'@path': '$.context.personas.external_audience_id'
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
email: {
|
|
40
|
+
label: 'Email address',
|
|
41
|
+
description: "The user's email address",
|
|
42
|
+
type: 'string',
|
|
43
|
+
unsafe_hidden: true,
|
|
44
|
+
required: false,
|
|
45
|
+
default: {
|
|
46
|
+
'@if': {
|
|
47
|
+
exists: { '@path': '$.traits.email' },
|
|
48
|
+
then: { '@path': '$.traits.email' },
|
|
49
|
+
else: { '@path': '$.context.traits.email' }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
iosIDFA: {
|
|
54
|
+
label: 'iOS Ad ID',
|
|
55
|
+
description: 'iOS Ad ID',
|
|
56
|
+
type: 'string',
|
|
57
|
+
default: {
|
|
58
|
+
'@if': {
|
|
59
|
+
exists: { '@path': '$.traits.ios_idfa' },
|
|
60
|
+
then: { '@path': '$.traits.ios_idfa' },
|
|
61
|
+
else: { '@path': '$.context.traits.ios_idfa' }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
androidIDFA: {
|
|
66
|
+
label: 'Android Ad ID',
|
|
67
|
+
description: 'Android Ad ID',
|
|
68
|
+
type: 'string',
|
|
69
|
+
default: {
|
|
70
|
+
'@if': {
|
|
71
|
+
exists: { '@path': '$.traits.android_idfa' },
|
|
72
|
+
then: { '@path': '$.traits.android_idfa' },
|
|
73
|
+
else: { '@path': '$.context.traits.android_idfa' }
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
traits_or_props: {
|
|
78
|
+
label: 'Traits or properties object',
|
|
79
|
+
description: 'A computed object for track and identify events. This field should not need to be edited.',
|
|
80
|
+
type: 'object',
|
|
81
|
+
required: true,
|
|
82
|
+
unsafe_hidden: true,
|
|
83
|
+
default: {
|
|
84
|
+
'@if': {
|
|
85
|
+
exists: { '@path': '$.properties' },
|
|
86
|
+
then: { '@path': '$.properties' },
|
|
87
|
+
else: { '@path': '$.traits' }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
enable_batching: {
|
|
92
|
+
type: 'boolean',
|
|
93
|
+
label: 'Batch events',
|
|
94
|
+
description: 'When enabled, the action will batch events before sending them to LaunchDarkly. In most cases, batching should be enabled.',
|
|
95
|
+
required: false,
|
|
96
|
+
default: true
|
|
97
|
+
},
|
|
98
|
+
batch_size: {
|
|
99
|
+
type: 'number',
|
|
100
|
+
label: 'Max batch size',
|
|
101
|
+
description: 'The maximum number of events to batch when sending data to Reddit.',
|
|
102
|
+
required: false,
|
|
103
|
+
default: 2500
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
perform: async (request, { payload }) => {
|
|
107
|
+
return await functions_1.send(request, [payload]);
|
|
108
|
+
},
|
|
109
|
+
performBatch: async (request, { payload }) => {
|
|
110
|
+
return await functions_1.send(request, payload);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
exports.default = action;
|
|
114
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/reddit-audiences/syncAudience/index.ts"],"names":[],"mappings":";;AAGA,2CAAkC;AAElC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,0CAA0C;IACvD,mBAAmB,EAAE,qCAAqC;IAC1D,MAAM,EAAE;QACN,0BAA0B,EAAE;YAC1B,KAAK,EAAE,4BAA4B;YACnC,WAAW,EACT,qHAAqH;YACvH,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,sCAAsC;aAChD;YACD,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;SACpD;QACD,eAAe,EAAE;YACf,KAAK,EAAE,0BAA0B;YACjC,WAAW,EAAE,0CAA0C;YACvD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,oCAAoC;aAC9C;SACF;QACD,oBAAoB,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,4EAA4E;YACzF,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE;gBACP,OAAO,EAAE,yCAAyC;aACnD;SACF;QACD,KAAK,EAAE;YACL,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,0BAA0B;YACvC,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;oBACrC,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;oBACnC,IAAI,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE;iBAC5C;aACF;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;oBACxC,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;oBACtC,IAAI,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE;iBAC/C;aACF;SACF;QACD,WAAW,EAAE;YACX,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,eAAe;YAC5B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;oBAC5C,IAAI,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;oBAC1C,IAAI,EAAE,EAAE,OAAO,EAAE,+BAA+B,EAAE;iBACnD;aACF;SACF;QACD,eAAe,EAAE;YACf,KAAK,EAAE,6BAA6B;YACpC,WAAW,EAAE,2FAA2F;YACxG,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;oBACnC,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;oBACjC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;iBAC9B;aACF;SACF;QACD,eAAe,EAAE;YACf,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,cAAc;YACrB,WAAW,EACT,4HAA4H;YAC9H,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;SACd;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,oEAAoE;YACjF,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;SACd;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,OAAO,MAAM,gBAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACvC,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3C,OAAO,MAAM,gBAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
interface IDArray extends Array<string> {
|
|
2
|
+
}
|
|
3
|
+
export interface PopulateAudienceJSON {
|
|
4
|
+
data: {
|
|
5
|
+
action_type: 'ADD' | 'REMOVE';
|
|
6
|
+
column_order: string[];
|
|
7
|
+
user_data: Array<IDArray>;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export interface CreateAudienceJSON {
|
|
11
|
+
data: {
|
|
12
|
+
name: string;
|
|
13
|
+
type: 'CUSTOMER_LIST';
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface CreateAudienceResp {
|
|
17
|
+
data: {
|
|
18
|
+
name: string;
|
|
19
|
+
id: string;
|
|
20
|
+
status: "VALID";
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface CreateAudienceRespError {
|
|
24
|
+
error: {
|
|
25
|
+
code: number;
|
|
26
|
+
message: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface RedditAccessTokenRequest {
|
|
30
|
+
grant_type: string;
|
|
31
|
+
refresh_token: string;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/destinations/reddit-audiences/syncAudience/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MAID_SCHEMA_NAME, EMAIL_SCHEMA_NAME } from './const';
|
|
2
|
+
export interface CreateAudienceResp {
|
|
3
|
+
id: string;
|
|
4
|
+
}
|
|
5
|
+
export interface CreateAudienceReq {
|
|
6
|
+
data: {
|
|
7
|
+
name: string;
|
|
8
|
+
type: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface UpdateAudienceReq {
|
|
12
|
+
data: {
|
|
13
|
+
column_order: Columns;
|
|
14
|
+
user_data: string[][];
|
|
15
|
+
action_type: 'ADD' | 'REMOVE';
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare type Columns = (typeof MAID_SCHEMA_NAME | typeof EMAIL_SCHEMA_NAME)[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/destinations/reddit-audiences/types.ts"],"names":[],"mappings":""}
|
|
@@ -74,7 +74,7 @@ function getAdId(device_type, advertising_id) {
|
|
|
74
74
|
return undefined;
|
|
75
75
|
if (!advertising_id)
|
|
76
76
|
return undefined;
|
|
77
|
-
return device_type === '
|
|
77
|
+
return device_type === 'ios' ? { idfa: hash(advertising_id) } : { aaid: hash(advertising_id) };
|
|
78
78
|
}
|
|
79
79
|
function getDataProcessingOptions(dataProcessingOptions) {
|
|
80
80
|
if (!dataProcessingOptions)
|
|
@@ -110,7 +110,7 @@ function getUser(user, dataProcessingOptions, screenDimensions) {
|
|
|
110
110
|
function canonicalizeEmail(value) {
|
|
111
111
|
const localPartAndDomain = value.split('@');
|
|
112
112
|
const localPart = localPartAndDomain[0].replace(/\./g, '').split('+')[0];
|
|
113
|
-
return `${localPart}@${localPartAndDomain[1].toLowerCase()}`;
|
|
113
|
+
return `${localPart.toLowerCase()}@${localPartAndDomain[1].toLowerCase()}`;
|
|
114
114
|
}
|
|
115
115
|
const hash = (value, isEmail = false) => {
|
|
116
116
|
if (value === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/reddit-conversions-api/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/reddit-conversions-api/utils.ts"],"names":[],"mappings":";;;AAYA,mCAAmC;AAS5B,KAAK,UAAU,IAAI,CAAC,OAAsB,EAAE,QAAkB,EAAE,OAAwC;IAC7G,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnD,OAAO,OAAO,CAAC,0DAA0D,QAAQ,CAAC,aAAa,EAAE,EAAE;QACjG,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,QAAQ,CAAC,gBAAgB,EAAE,EAAE;QACjE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACvC,CAAC,CAAA;AACJ,CAAC;AAPD,oBAOC;AAED,SAAS,mBAAmB,CAAC,QAAyC,EAAE,QAAkB;IACxF,MAAM,YAAY,GAA+B,EAAE,CAAA;IAEnD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACd,GAAG,OAAO,CAAA;QAEX,MAAM,iBAAiB,GAAI,OAAuB,CAAC,iBAAiB,CAAA;QACpE,MAAM,aAAa,GAAI,OAAyB,CAAC,aAAa,CAAA;QAE9D,MAAM,WAAW,GAA6B;YAC5C,QAAQ,EAAE,QAAkB;YAC5B,UAAU,EAAE;gBAGV,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa;gBAC3D,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;aAC5C;YACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;YACzB,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,QAAQ,EAAE,aAAa,CAAC;YACpE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,uBAAuB,EAAE,iBAAiB,CAAC;SAChE,CAAA;QAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,OAAO,EAAE,SAAS;KACnB,CAAA;AACH,CAAC;AAED,SAAS,KAAK,CAAC,GAAuB;IACpC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAA;IACrE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAuB;IACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IACvD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,QAAsB;IACzC,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,SAAS,CAAA;KACjB;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACrB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAC1B,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,QAA2B,EAC3B,QAAsB,EACtB,aAA+B;IAE/B,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE;QAC5C,OAAO,SAAS,CAAA;KACjB;IAED,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACnC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC1C,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAChD,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;QAC/B,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;KACpC,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,WAAoB,EAAE,cAAuB;IAC5D,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IAClC,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAA;IACrC,OAAO,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAA;AAChG,CAAC;AAED,SAAS,wBAAwB,CAC/B,qBAAgD;IAEhD,IAAI,CAAC,qBAAqB;QAAE,OAAO,SAAS,CAAA;IAC5C,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC;QAC7C,KAAK,EAAE,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzE,MAAM,EAAE,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC;KAC5C,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,MAAe,EAAE,KAAc;IAChD,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACjE,OAAO;QACL,MAAM;QACN,KAAK;KACN,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CACd,IAAc,EACd,qBAAgD,EAChD,gBAAsC;IAEtC,IAAI,CAAC,IAAI;QAAE,OAAM;IAEjB,OAAO;QACL,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;QACjD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;QACpC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,uBAAuB,EAAE,wBAAwB,CAAC,qBAAqB,CAAC;QACxE,iBAAiB,EAAE,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAChF,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;AAC5E,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,KAAyB,EAAE,OAAO,GAAG,KAAK,EAAsB,EAAE;IAC9E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAM;IAC/B,IAAI,OAAO,EAAE;QACX,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;KACjC;IACD,MAAM,IAAI,GAAG,mBAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA"}
|