@segment/action-destinations 3.324.0 → 3.325.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 (241) hide show
  1. package/dist/destinations/accoil-analytics/common-fields.d.ts +2 -0
  2. package/dist/destinations/accoil-analytics/common-fields.js +21 -0
  3. package/dist/destinations/accoil-analytics/common-fields.js.map +1 -0
  4. package/dist/destinations/accoil-analytics/group/generated-types.d.ts +12 -0
  5. package/dist/destinations/accoil-analytics/group/generated-types.js.map +1 -0
  6. package/dist/destinations/accoil-analytics/group/index.js +72 -0
  7. package/dist/destinations/accoil-analytics/group/index.js.map +1 -0
  8. package/dist/destinations/accoil-analytics/identify/generated-types.d.ts +12 -0
  9. package/dist/destinations/accoil-analytics/identify/generated-types.js +3 -0
  10. package/dist/destinations/accoil-analytics/identify/generated-types.js.map +1 -0
  11. package/dist/destinations/accoil-analytics/identify/index.d.ts +5 -0
  12. package/dist/destinations/accoil-analytics/identify/index.js +73 -0
  13. package/dist/destinations/accoil-analytics/identify/index.js.map +1 -0
  14. package/dist/destinations/accoil-analytics/index.js +25 -26
  15. package/dist/destinations/accoil-analytics/index.js.map +1 -1
  16. package/dist/destinations/accoil-analytics/page/generated-types.d.ts +5 -0
  17. package/dist/destinations/accoil-analytics/page/generated-types.js +3 -0
  18. package/dist/destinations/accoil-analytics/page/generated-types.js.map +1 -0
  19. package/dist/destinations/accoil-analytics/page/index.d.ts +5 -0
  20. package/dist/destinations/accoil-analytics/page/index.js +38 -0
  21. package/dist/destinations/accoil-analytics/page/index.js.map +1 -0
  22. package/dist/destinations/accoil-analytics/screen/generated-types.d.ts +5 -0
  23. package/dist/destinations/accoil-analytics/screen/generated-types.js +3 -0
  24. package/dist/destinations/accoil-analytics/screen/generated-types.js.map +1 -0
  25. package/dist/destinations/accoil-analytics/screen/index.d.ts +5 -0
  26. package/dist/destinations/accoil-analytics/screen/index.js +38 -0
  27. package/dist/destinations/accoil-analytics/screen/index.js.map +1 -0
  28. package/dist/destinations/accoil-analytics/track/generated-types.d.ts +5 -0
  29. package/dist/destinations/accoil-analytics/track/generated-types.js +3 -0
  30. package/dist/destinations/accoil-analytics/track/generated-types.js.map +1 -0
  31. package/dist/destinations/accoil-analytics/track/index.d.ts +5 -0
  32. package/dist/destinations/accoil-analytics/track/index.js +39 -0
  33. package/dist/destinations/accoil-analytics/track/index.js.map +1 -0
  34. package/dist/destinations/accoil-analytics/utils.d.ts +6 -0
  35. package/dist/destinations/accoil-analytics/utils.js +14 -0
  36. package/dist/destinations/accoil-analytics/utils.js.map +1 -0
  37. package/dist/destinations/adobe-target/adobeTarget_operations.js +3 -2
  38. package/dist/destinations/adobe-target/adobeTarget_operations.js.map +1 -1
  39. package/dist/destinations/braze/createAlias2/generated-types.d.ts +5 -0
  40. package/dist/destinations/braze/createAlias2/generated-types.js +3 -0
  41. package/dist/destinations/braze/createAlias2/generated-types.js.map +1 -0
  42. package/dist/destinations/braze/createAlias2/index.d.ts +5 -0
  43. package/dist/destinations/braze/createAlias2/index.js +53 -0
  44. package/dist/destinations/braze/createAlias2/index.js.map +1 -0
  45. package/dist/destinations/braze/identifyUser2/generated-types.d.ts +8 -0
  46. package/dist/destinations/braze/identifyUser2/generated-types.js +3 -0
  47. package/dist/destinations/braze/identifyUser2/generated-types.js.map +1 -0
  48. package/dist/destinations/braze/identifyUser2/index.d.ts +5 -0
  49. package/dist/destinations/braze/identifyUser2/index.js +70 -0
  50. package/dist/destinations/braze/identifyUser2/index.js.map +1 -0
  51. package/dist/destinations/braze/index.js +11 -1
  52. package/dist/destinations/braze/index.js.map +1 -1
  53. package/dist/destinations/braze/trackEvent2/generated-types.d.ts +16 -0
  54. package/dist/destinations/braze/trackEvent2/generated-types.js +3 -0
  55. package/dist/destinations/braze/trackEvent2/generated-types.js.map +1 -0
  56. package/dist/destinations/braze/trackEvent2/index.d.ts +5 -0
  57. package/dist/destinations/braze/trackEvent2/index.js +117 -0
  58. package/dist/destinations/braze/trackEvent2/index.js.map +1 -0
  59. package/dist/destinations/braze/trackPurchase2/generated-types.d.ts +22 -0
  60. package/dist/destinations/braze/trackPurchase2/generated-types.js +3 -0
  61. package/dist/destinations/braze/trackPurchase2/generated-types.js.map +1 -0
  62. package/dist/destinations/braze/trackPurchase2/index.d.ts +5 -0
  63. package/dist/destinations/braze/trackPurchase2/index.js +135 -0
  64. package/dist/destinations/braze/trackPurchase2/index.js.map +1 -0
  65. package/dist/destinations/braze/updateUserProfile2/generated-types.d.ts +52 -0
  66. package/dist/destinations/braze/updateUserProfile2/generated-types.js +3 -0
  67. package/dist/destinations/braze/updateUserProfile2/generated-types.js.map +1 -0
  68. package/dist/destinations/braze/updateUserProfile2/index.d.ts +5 -0
  69. package/dist/destinations/braze/updateUserProfile2/index.js +303 -0
  70. package/dist/destinations/braze/updateUserProfile2/index.js.map +1 -0
  71. package/dist/destinations/braze/utils.d.ts +6 -6
  72. package/dist/destinations/braze/utils.js +36 -12
  73. package/dist/destinations/braze/utils.js.map +1 -1
  74. package/dist/destinations/contentstack/index.js +1 -1
  75. package/dist/destinations/contentstack/index.js.map +1 -1
  76. package/dist/destinations/first-party-dv360/functions.d.ts +1 -0
  77. package/dist/destinations/first-party-dv360/functions.js +3 -2
  78. package/dist/destinations/first-party-dv360/functions.js.map +1 -1
  79. package/dist/destinations/first-party-dv360/generated-types.d.ts +1 -0
  80. package/dist/destinations/first-party-dv360/index.js +8 -0
  81. package/dist/destinations/first-party-dv360/index.js.map +1 -1
  82. package/dist/destinations/hubspot/customEvent/client.d.ts +2 -2
  83. package/dist/destinations/hubspot/customEvent/client.js.map +1 -1
  84. package/dist/destinations/hubspot/customEvent/dynamic-fields.js +2 -2
  85. package/dist/destinations/hubspot/customEvent/dynamic-fields.js.map +1 -1
  86. package/dist/destinations/hubspot/customEvent/event-completion.d.ts +3 -0
  87. package/dist/destinations/hubspot/customEvent/event-completion.js +17 -0
  88. package/dist/destinations/hubspot/customEvent/event-completion.js.map +1 -0
  89. package/dist/destinations/hubspot/customEvent/index.js +36 -42
  90. package/dist/destinations/hubspot/customEvent/index.js.map +1 -1
  91. package/dist/destinations/hubspot/customEvent/types.d.ts +11 -4
  92. package/dist/destinations/hubspot/customEvent/types.js +1 -2
  93. package/dist/destinations/hubspot/customEvent/types.js.map +1 -1
  94. package/dist/destinations/hubspot/customEvent/utils.d.ts +10 -8
  95. package/dist/destinations/hubspot/customEvent/utils.js +155 -189
  96. package/dist/destinations/hubspot/customEvent/utils.js.map +1 -1
  97. package/dist/destinations/hubspot/customEvent/validation.d.ts +3 -0
  98. package/dist/destinations/hubspot/customEvent/validation.js +66 -0
  99. package/dist/destinations/hubspot/customEvent/validation.js.map +1 -0
  100. package/dist/destinations/index.js +3 -0
  101. package/dist/destinations/index.js.map +1 -1
  102. package/dist/destinations/klaviyo/generated-types.d.ts +3 -0
  103. package/dist/destinations/klaviyo/index.d.ts +2 -2
  104. package/dist/destinations/klaviyo/index.js +12 -1
  105. package/dist/destinations/klaviyo/index.js.map +1 -1
  106. package/dist/destinations/nextdoor-capi/generated-types.d.ts +1 -0
  107. package/dist/destinations/nextdoor-capi/index.js +6 -0
  108. package/dist/destinations/nextdoor-capi/index.js.map +1 -1
  109. package/dist/destinations/nextdoor-capi/sendConversion/generated-types.d.ts +0 -1
  110. package/dist/destinations/nextdoor-capi/sendConversion/index.js +2 -15
  111. package/dist/destinations/nextdoor-capi/sendConversion/index.js.map +1 -1
  112. package/dist/destinations/postscript/const.d.ts +2 -0
  113. package/dist/destinations/postscript/const.js +6 -0
  114. package/dist/destinations/postscript/const.js.map +1 -0
  115. package/dist/destinations/postscript/generated-types.d.ts +3 -0
  116. package/dist/destinations/postscript/generated-types.js +3 -0
  117. package/dist/destinations/postscript/generated-types.js.map +1 -0
  118. package/dist/destinations/postscript/index.d.ts +4 -0
  119. package/dist/destinations/postscript/index.js +42 -0
  120. package/dist/destinations/postscript/index.js.map +1 -0
  121. package/dist/destinations/postscript/syncAudiences/generated-types.d.ts +10 -0
  122. package/dist/destinations/postscript/syncAudiences/generated-types.js +3 -0
  123. package/dist/destinations/postscript/syncAudiences/generated-types.js.map +1 -0
  124. package/dist/destinations/postscript/syncAudiences/index.d.ts +5 -0
  125. package/dist/destinations/postscript/syncAudiences/index.js +138 -0
  126. package/dist/destinations/postscript/syncAudiences/index.js.map +1 -0
  127. package/dist/destinations/postscript/types.d.ts +10 -0
  128. package/dist/destinations/postscript/types.js +4 -0
  129. package/dist/destinations/postscript/types.js.map +1 -0
  130. package/dist/destinations/recombee/addBookmark/generated-types.d.ts +9 -0
  131. package/dist/destinations/recombee/addBookmark/generated-types.js +3 -0
  132. package/dist/destinations/recombee/addBookmark/generated-types.js.map +1 -0
  133. package/dist/destinations/recombee/addBookmark/index.d.ts +5 -0
  134. package/dist/destinations/recombee/addBookmark/index.js +55 -0
  135. package/dist/destinations/recombee/addBookmark/index.js.map +1 -0
  136. package/dist/destinations/recombee/addCartAddition/generated-types.d.ts +13 -0
  137. package/dist/destinations/recombee/addCartAddition/generated-types.js +3 -0
  138. package/dist/destinations/recombee/addCartAddition/generated-types.js.map +1 -0
  139. package/dist/destinations/recombee/addCartAddition/index.d.ts +5 -0
  140. package/dist/destinations/recombee/addCartAddition/index.js +99 -0
  141. package/dist/destinations/recombee/addCartAddition/index.js.map +1 -0
  142. package/dist/destinations/recombee/addDetailView/generated-types.d.ts +10 -0
  143. package/dist/destinations/recombee/addDetailView/generated-types.js +3 -0
  144. package/dist/destinations/recombee/addDetailView/generated-types.js.map +1 -0
  145. package/dist/destinations/recombee/addDetailView/index.d.ts +5 -0
  146. package/dist/destinations/recombee/addDetailView/index.js +60 -0
  147. package/dist/destinations/recombee/addDetailView/index.js.map +1 -0
  148. package/dist/destinations/recombee/addPurchase/generated-types.d.ts +14 -0
  149. package/dist/destinations/recombee/addPurchase/generated-types.js +3 -0
  150. package/dist/destinations/recombee/addPurchase/generated-types.js.map +1 -0
  151. package/dist/destinations/recombee/addPurchase/index.d.ts +5 -0
  152. package/dist/destinations/recombee/addPurchase/index.js +107 -0
  153. package/dist/destinations/recombee/addPurchase/index.js.map +1 -0
  154. package/dist/destinations/recombee/addRating/generated-types.d.ts +10 -0
  155. package/dist/destinations/recombee/addRating/generated-types.js +3 -0
  156. package/dist/destinations/recombee/addRating/generated-types.js.map +1 -0
  157. package/dist/destinations/recombee/addRating/index.d.ts +5 -0
  158. package/dist/destinations/recombee/addRating/index.js +61 -0
  159. package/dist/destinations/recombee/addRating/index.js.map +1 -0
  160. package/dist/destinations/recombee/commonFields.d.ts +32 -0
  161. package/dist/destinations/recombee/commonFields.js +43 -0
  162. package/dist/destinations/recombee/commonFields.js.map +1 -0
  163. package/dist/destinations/recombee/deleteBookmark/generated-types.d.ts +5 -0
  164. package/dist/destinations/recombee/deleteBookmark/generated-types.js +3 -0
  165. package/dist/destinations/recombee/deleteBookmark/generated-types.js.map +1 -0
  166. package/dist/destinations/recombee/deleteBookmark/index.d.ts +5 -0
  167. package/dist/destinations/recombee/deleteBookmark/index.js +52 -0
  168. package/dist/destinations/recombee/deleteBookmark/index.js.map +1 -0
  169. package/dist/destinations/recombee/deleteCartAddition/generated-types.d.ts +5 -0
  170. package/dist/destinations/recombee/deleteCartAddition/generated-types.js +3 -0
  171. package/dist/destinations/recombee/deleteCartAddition/generated-types.js.map +1 -0
  172. package/dist/destinations/recombee/deleteCartAddition/index.d.ts +5 -0
  173. package/dist/destinations/recombee/deleteCartAddition/index.js +52 -0
  174. package/dist/destinations/recombee/deleteCartAddition/index.js.map +1 -0
  175. package/dist/destinations/recombee/generated-types.d.ts +6 -0
  176. package/dist/destinations/recombee/generated-types.js +3 -0
  177. package/dist/destinations/recombee/generated-types.js.map +1 -0
  178. package/dist/destinations/recombee/index.d.ts +4 -0
  179. package/dist/destinations/recombee/index.js +223 -0
  180. package/dist/destinations/recombee/index.js.map +1 -0
  181. package/dist/destinations/recombee/mergeUsers/generated-types.d.ts +4 -0
  182. package/dist/destinations/recombee/mergeUsers/generated-types.js +3 -0
  183. package/dist/destinations/recombee/mergeUsers/generated-types.js.map +1 -0
  184. package/dist/destinations/recombee/mergeUsers/index.d.ts +5 -0
  185. package/dist/destinations/recombee/mergeUsers/index.js +34 -0
  186. package/dist/destinations/recombee/mergeUsers/index.js.map +1 -0
  187. package/dist/destinations/recombee/recombeeApiClient.d.ts +120 -0
  188. package/dist/destinations/recombee/recombeeApiClient.js +138 -0
  189. package/dist/destinations/recombee/recombeeApiClient.js.map +1 -0
  190. package/dist/destinations/recombee/setViewPortion/generated-types.d.ts +11 -0
  191. package/dist/destinations/recombee/setViewPortion/generated-types.js +3 -0
  192. package/dist/destinations/recombee/setViewPortion/generated-types.js.map +1 -0
  193. package/dist/destinations/recombee/setViewPortion/index.d.ts +5 -0
  194. package/dist/destinations/recombee/setViewPortion/index.js +68 -0
  195. package/dist/destinations/recombee/setViewPortion/index.js.map +1 -0
  196. package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.d.ts +14 -0
  197. package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.js +3 -0
  198. package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.js.map +1 -0
  199. package/dist/destinations/recombee/setViewPortionFromWatchTime/index.d.ts +5 -0
  200. package/dist/destinations/recombee/setViewPortionFromWatchTime/index.js +96 -0
  201. package/dist/destinations/recombee/setViewPortionFromWatchTime/index.js.map +1 -0
  202. package/dist/destinations/reddit-audiences/const.d.ts +2 -0
  203. package/dist/destinations/reddit-audiences/const.js +6 -0
  204. package/dist/destinations/reddit-audiences/const.js.map +1 -0
  205. package/dist/destinations/reddit-audiences/generated-types.d.ts +6 -0
  206. package/dist/destinations/reddit-audiences/generated-types.js +3 -0
  207. package/dist/destinations/reddit-audiences/generated-types.js.map +1 -0
  208. package/dist/destinations/reddit-audiences/index.d.ts +4 -0
  209. package/dist/destinations/reddit-audiences/index.js +83 -0
  210. package/dist/destinations/reddit-audiences/index.js.map +1 -0
  211. package/dist/destinations/reddit-audiences/syncAudience/functions.d.ts +3 -0
  212. package/dist/destinations/reddit-audiences/syncAudience/functions.js +105 -0
  213. package/dist/destinations/reddit-audiences/syncAudience/functions.js.map +1 -0
  214. package/dist/destinations/reddit-audiences/syncAudience/generated-types.d.ts +13 -0
  215. package/dist/destinations/reddit-audiences/syncAudience/generated-types.js +3 -0
  216. package/dist/destinations/reddit-audiences/syncAudience/generated-types.js.map +1 -0
  217. package/dist/destinations/reddit-audiences/syncAudience/index.d.ts +5 -0
  218. package/dist/destinations/reddit-audiences/syncAudience/index.js +114 -0
  219. package/dist/destinations/reddit-audiences/syncAudience/index.js.map +1 -0
  220. package/dist/destinations/reddit-audiences/syncAudience/types.d.ts +33 -0
  221. package/dist/destinations/reddit-audiences/syncAudience/types.js +3 -0
  222. package/dist/destinations/reddit-audiences/syncAudience/types.js.map +1 -0
  223. package/dist/destinations/reddit-audiences/types.d.ts +18 -0
  224. package/dist/destinations/reddit-audiences/types.js +3 -0
  225. package/dist/destinations/reddit-audiences/types.js.map +1 -0
  226. package/dist/destinations/reddit-conversions-api/utils.js +2 -2
  227. package/dist/destinations/reddit-conversions-api/utils.js.map +1 -1
  228. package/dist/destinations/s3/fields.js +1 -1
  229. package/dist/destinations/s3/fields.js.map +1 -1
  230. package/dist/destinations/s3/functions.js.map +1 -1
  231. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js +3 -3
  232. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js.map +1 -1
  233. package/dist/destinations/stackadapt-audiences/forwardProfile/functions.js +1 -1
  234. package/dist/destinations/stackadapt-audiences/forwardProfile/functions.js.map +1 -1
  235. package/package.json +5 -4
  236. package/dist/destinations/accoil-analytics/postToAccoil/generated-types.d.ts +0 -5
  237. package/dist/destinations/accoil-analytics/postToAccoil/generated-types.js.map +0 -1
  238. package/dist/destinations/accoil-analytics/postToAccoil/index.js +0 -28
  239. package/dist/destinations/accoil-analytics/postToAccoil/index.js.map +0 -1
  240. /package/dist/destinations/accoil-analytics/{postToAccoil → group}/generated-types.js +0 -0
  241. /package/dist/destinations/accoil-analytics/{postToAccoil → group}/index.d.ts +0 -0
@@ -0,0 +1,223 @@
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 recombeeApiClient_1 = require("./recombeeApiClient");
8
+ const addBookmark_1 = __importDefault(require("./addBookmark"));
9
+ const addCartAddition_1 = __importDefault(require("./addCartAddition"));
10
+ const addDetailView_1 = __importDefault(require("./addDetailView"));
11
+ const addPurchase_1 = __importDefault(require("./addPurchase"));
12
+ const addRating_1 = __importDefault(require("./addRating"));
13
+ const deleteCartAddition_1 = __importDefault(require("./deleteCartAddition"));
14
+ const mergeUsers_1 = __importDefault(require("./mergeUsers"));
15
+ const setViewPortion_1 = __importDefault(require("./setViewPortion"));
16
+ const setViewPortionFromWatchTime_1 = __importDefault(require("./setViewPortionFromWatchTime"));
17
+ const deleteBookmark_1 = __importDefault(require("./deleteBookmark"));
18
+ const commonFields_1 = require("./commonFields");
19
+ const destination = {
20
+ name: 'Recombee',
21
+ slug: 'actions-recombee',
22
+ mode: 'cloud',
23
+ authentication: {
24
+ scheme: 'custom',
25
+ fields: {
26
+ databaseId: {
27
+ label: 'Database ID',
28
+ description: 'The ID of the Recombee Database into which the interactions will be sent.',
29
+ type: 'string',
30
+ required: true
31
+ },
32
+ privateToken: {
33
+ label: 'Private Token',
34
+ description: 'The private token for the Recombee Database used.',
35
+ type: 'password',
36
+ required: true
37
+ },
38
+ databaseRegion: {
39
+ label: 'Database Region',
40
+ description: 'The Recombee cluster where your Database is located. [Learn more](https://docs.recombee.com/regions)',
41
+ type: 'string',
42
+ required: true,
43
+ format: 'hostname',
44
+ default: 'eu-west',
45
+ choices: [
46
+ { value: 'eu-west', label: 'EU' },
47
+ { value: 'ca-east', label: 'Canada (East Coast)' },
48
+ { value: 'ap-se', label: 'Australia' },
49
+ { value: 'us-west', label: 'US (West Coast)' },
50
+ { value: 'custom', label: 'Custom' }
51
+ ]
52
+ },
53
+ apiUri: {
54
+ label: 'API URI',
55
+ description: 'URI of the Recombee API that should be used. *Keep this field empty unless you are calling the Recombee cluster based in a specific region or you were assigned a custom URI by the Recombee Support team.*',
56
+ type: 'string',
57
+ required: false,
58
+ format: 'hostname',
59
+ depends_on: {
60
+ conditions: [
61
+ {
62
+ fieldKey: 'databaseRegion',
63
+ operator: 'is',
64
+ value: 'custom'
65
+ }
66
+ ]
67
+ }
68
+ }
69
+ },
70
+ testAuthentication: (request, { settings }) => {
71
+ const client = new recombeeApiClient_1.RecombeeApiClient(settings, request);
72
+ return client.send(new recombeeApiClient_1.Batch([]));
73
+ }
74
+ },
75
+ presets: [
76
+ {
77
+ name: 'Page - Viewed',
78
+ subscribe: 'type = "page"',
79
+ partnerAction: 'addDetailView',
80
+ mapping: {
81
+ ...actions_core_1.defaultValues(addDetailView_1.default.fields),
82
+ itemId: { '@path': '$.name' }
83
+ },
84
+ type: 'automatic'
85
+ },
86
+ {
87
+ name: 'Track - Ecommerce - Product Viewed',
88
+ subscribe: 'type = "track" and event = "Product Viewed"',
89
+ partnerAction: 'addDetailView',
90
+ mapping: {
91
+ ...actions_core_1.defaultValues(addDetailView_1.default.fields),
92
+ ...commonFields_1.ecommerceIdMapping
93
+ },
94
+ type: 'automatic'
95
+ },
96
+ {
97
+ name: 'Track - Ecommerce - Product Removed',
98
+ subscribe: 'type = "track" and event = "Product Removed"',
99
+ partnerAction: 'deleteCartAddition',
100
+ mapping: {
101
+ ...actions_core_1.defaultValues(deleteCartAddition_1.default.fields),
102
+ ...commonFields_1.ecommerceIdMapping
103
+ },
104
+ type: 'automatic'
105
+ },
106
+ {
107
+ name: 'Track - Ecommerce - Order Completed',
108
+ subscribe: 'type = "track" and event = "Order Completed"',
109
+ partnerAction: 'addPurchase',
110
+ mapping: actions_core_1.defaultValues(addPurchase_1.default.fields),
111
+ type: 'automatic'
112
+ },
113
+ {
114
+ name: 'Track - Ecommerce - Product Added to Wishlist',
115
+ subscribe: 'type = "track" and event = "Product Added to Wishlist"',
116
+ partnerAction: 'addBookmark',
117
+ mapping: {
118
+ ...actions_core_1.defaultValues(addBookmark_1.default.fields),
119
+ ...commonFields_1.ecommerceIdMapping
120
+ },
121
+ type: 'automatic'
122
+ },
123
+ {
124
+ name: 'Track - Ecommerce - Product Removed from Wishlist',
125
+ subscribe: 'type = "track" and event = "Product Removed from Wishlist"',
126
+ partnerAction: 'deleteBookmark',
127
+ mapping: {
128
+ ...actions_core_1.defaultValues(deleteBookmark_1.default.fields),
129
+ ...commonFields_1.ecommerceIdMapping
130
+ },
131
+ type: 'automatic'
132
+ },
133
+ {
134
+ name: 'Track - Ecommerce - Product Shared',
135
+ subscribe: 'type = "track" and event = "Product Shared"',
136
+ partnerAction: 'addBookmark',
137
+ mapping: {
138
+ ...actions_core_1.defaultValues(addBookmark_1.default.fields),
139
+ ...commonFields_1.ecommerceIdMapping
140
+ },
141
+ type: 'automatic'
142
+ },
143
+ {
144
+ name: 'Track - Video - Video Playback Started',
145
+ subscribe: 'type = "track" and event = "Video Playback Started"',
146
+ partnerAction: 'setViewPortion',
147
+ mapping: {
148
+ ...actions_core_1.defaultValues(setViewPortion_1.default.fields),
149
+ ...commonFields_1.videoIdMapping,
150
+ portion: 0
151
+ },
152
+ type: 'automatic'
153
+ },
154
+ {
155
+ name: 'Track - Video - Video Content Playing',
156
+ subscribe: 'type = "track" and event = "Video Content Playing"',
157
+ partnerAction: 'setViewPortionFromWatchTime',
158
+ mapping: {
159
+ ...actions_core_1.defaultValues(setViewPortionFromWatchTime_1.default.fields),
160
+ ...commonFields_1.videoIdMapping
161
+ },
162
+ type: 'automatic'
163
+ },
164
+ {
165
+ name: 'Track - Video - Video Playback Paused',
166
+ subscribe: 'type = "track" and event = "Video Playback Paused"',
167
+ partnerAction: 'setViewPortionFromWatchTime',
168
+ mapping: {
169
+ ...actions_core_1.defaultValues(setViewPortionFromWatchTime_1.default.fields),
170
+ itemId: { '@path': '$.properties.content_asset_id' }
171
+ },
172
+ type: 'automatic'
173
+ },
174
+ {
175
+ name: 'Track - Video - Video Playback Completed',
176
+ subscribe: 'type = "track" and event = "Video Playback Completed"',
177
+ partnerAction: 'setViewPortion',
178
+ mapping: {
179
+ ...actions_core_1.defaultValues(setViewPortion_1.default.fields),
180
+ ...commonFields_1.videoIdMapping,
181
+ portion: 1
182
+ },
183
+ type: 'automatic'
184
+ },
185
+ {
186
+ name: 'Screen - Viewed',
187
+ subscribe: 'type = "screen"',
188
+ partnerAction: 'addDetailView',
189
+ mapping: {
190
+ ...actions_core_1.defaultValues(addDetailView_1.default.fields),
191
+ itemId: { '@path': '$.name' }
192
+ },
193
+ type: 'automatic'
194
+ },
195
+ {
196
+ name: 'Alias',
197
+ subscribe: 'type = "alias"',
198
+ partnerAction: 'mergeUsers',
199
+ mapping: actions_core_1.defaultValues(mergeUsers_1.default.fields),
200
+ type: 'automatic'
201
+ }
202
+ ],
203
+ onDelete: async (request, { settings, payload }) => {
204
+ if (!payload.userId)
205
+ return;
206
+ const client = new recombeeApiClient_1.RecombeeApiClient(settings, request);
207
+ return client.send(new recombeeApiClient_1.DeleteUser(payload.userId));
208
+ },
209
+ actions: {
210
+ addBookmark: addBookmark_1.default,
211
+ addCartAddition: addCartAddition_1.default,
212
+ addDetailView: addDetailView_1.default,
213
+ addPurchase: addPurchase_1.default,
214
+ addRating: addRating_1.default,
215
+ deleteBookmark: deleteBookmark_1.default,
216
+ deleteCartAddition: deleteCartAddition_1.default,
217
+ mergeUsers: mergeUsers_1.default,
218
+ setViewPortion: setViewPortion_1.default,
219
+ setViewPortionFromWatchTime: setViewPortionFromWatchTime_1.default
220
+ }
221
+ };
222
+ exports.default = destination;
223
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/recombee/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export interface Payload {
2
+ targetUserId: string;
3
+ sourceUserId: string;
4
+ }
@@ -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/recombee/mergeUsers/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,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const recombeeApiClient_1 = require("../recombeeApiClient");
4
+ const action = {
5
+ title: 'Merge Users',
6
+ description: 'Merges interactions (purchases, ratings, bookmarks, detail views, ...) of two different users under a single user ID.',
7
+ defaultSubscription: 'type = "alias"',
8
+ fields: {
9
+ targetUserId: {
10
+ label: 'Target User ID',
11
+ description: 'The ID of the target user that will be **kept** after the merge.',
12
+ type: 'string',
13
+ required: true,
14
+ default: { '@path': '$.userId' }
15
+ },
16
+ sourceUserId: {
17
+ label: 'Source User ID',
18
+ description: 'The ID of the source user that will be **deleted** after the merge.',
19
+ type: 'string',
20
+ required: true,
21
+ default: { '@path': '$.previousId' }
22
+ }
23
+ },
24
+ perform: async (request, data) => {
25
+ const client = new recombeeApiClient_1.RecombeeApiClient(data.settings, request);
26
+ await client.send(new recombeeApiClient_1.MergeUsers(data.payload.targetUserId, data.payload.sourceUserId));
27
+ },
28
+ performBatch: async (request, data) => {
29
+ const client = new recombeeApiClient_1.RecombeeApiClient(data.settings, request);
30
+ await client.send(new recombeeApiClient_1.Batch(data.payload.map((payload) => new recombeeApiClient_1.MergeUsers(payload.targetUserId, payload.sourceUserId))));
31
+ }
32
+ };
33
+ exports.default = action;
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/recombee/mergeUsers/index.ts"],"names":[],"mappings":";;AAGA,4DAA2E;AAE3E,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,uHAAuH;IACzH,mBAAmB,EAAE,gBAAgB;IACrC,MAAM,EAAE;QACN,YAAY,EAAE;YACZ,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,kEAAkE;YAC/E,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;SACjC;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,qEAAqE;YAClF,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;SACrC;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,8BAAU,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;IACzF,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,MAAM,CAAC,IAAI,CACf,IAAI,yBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,8BAAU,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CACrG,CAAA;IACH,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,120 @@
1
+ import { RequestClient } from '@segment/actions-core';
2
+ import { Settings } from './generated-types';
3
+ declare type AddBookmarkParams = {
4
+ userId: string;
5
+ itemId: string;
6
+ timestamp?: string | number;
7
+ recommId?: string;
8
+ additionalData?: unknown;
9
+ cascadeCreate?: boolean;
10
+ };
11
+ declare type AddCartAdditionParams = {
12
+ userId: string;
13
+ itemId: string;
14
+ timestamp?: string | number;
15
+ amount?: number;
16
+ price?: number;
17
+ recommId?: string;
18
+ additionalData?: unknown;
19
+ cascadeCreate?: boolean;
20
+ };
21
+ declare type AddDetailViewParams = {
22
+ userId: string;
23
+ itemId: string;
24
+ timestamp?: string | number;
25
+ duration?: number;
26
+ recommId?: string;
27
+ additionalData?: unknown;
28
+ cascadeCreate?: boolean;
29
+ };
30
+ declare type AddPurchaseParams = {
31
+ userId: string;
32
+ itemId: string;
33
+ timestamp?: string | number;
34
+ amount?: number;
35
+ price?: number;
36
+ profit?: number;
37
+ recommId?: string;
38
+ additionalData?: unknown;
39
+ cascadeCreate?: boolean;
40
+ };
41
+ declare type AddRatingParams = {
42
+ userId: string;
43
+ itemId: string;
44
+ rating: number;
45
+ timestamp?: string | number;
46
+ recommId?: string;
47
+ additionalData?: unknown;
48
+ cascadeCreate?: boolean;
49
+ };
50
+ declare type DeleteParams = {
51
+ userId: string;
52
+ itemId: string;
53
+ timestamp?: string;
54
+ };
55
+ declare type SetViewPortionParams = {
56
+ userId: string;
57
+ itemId: string;
58
+ portion: number;
59
+ sessionId?: string;
60
+ timestamp?: string | number;
61
+ recommId?: string;
62
+ additionalData?: unknown;
63
+ cascadeCreate?: boolean;
64
+ };
65
+ declare type BatchParams = {
66
+ requests: Array<{
67
+ method: HttpMethod;
68
+ path: string;
69
+ params: AddBookmarkParams | AddCartAdditionParams | AddDetailViewParams | AddPurchaseParams | AddRatingParams | SetViewPortionParams | DeleteParams | {};
70
+ }>;
71
+ };
72
+ declare type HttpMethod = 'POST' | 'PUT' | 'DELETE';
73
+ declare abstract class Request<Params extends object> {
74
+ params: Params;
75
+ method: HttpMethod;
76
+ path: string;
77
+ constructor(params: Params, method: HttpMethod, path: string);
78
+ }
79
+ export declare class Batch extends Request<BatchParams> {
80
+ constructor(requests: BatchParams['requests']);
81
+ }
82
+ export declare class AddBookmark extends Request<AddBookmarkParams> {
83
+ constructor(params: AddBookmarkParams);
84
+ }
85
+ export declare class AddCartAddition extends Request<AddCartAdditionParams> {
86
+ constructor(params: AddCartAdditionParams);
87
+ }
88
+ export declare class AddDetailView extends Request<AddDetailViewParams> {
89
+ constructor(params: AddDetailViewParams);
90
+ }
91
+ export declare class AddPurchase extends Request<AddPurchaseParams> {
92
+ constructor(params: AddPurchaseParams);
93
+ }
94
+ export declare class AddRating extends Request<AddRatingParams> {
95
+ constructor(params: AddRatingParams);
96
+ }
97
+ export declare class SetViewPortion extends Request<SetViewPortionParams> {
98
+ constructor(params: SetViewPortionParams);
99
+ }
100
+ export declare class DeleteBookmark extends Request<DeleteParams> {
101
+ constructor(params: DeleteParams);
102
+ }
103
+ export declare class DeleteCartAddition extends Request<DeleteParams> {
104
+ constructor(params: DeleteParams);
105
+ }
106
+ export declare class MergeUsers extends Request<{}> {
107
+ constructor(targetUserId: string, sourceUserId: string);
108
+ }
109
+ export declare class DeleteUser extends Request<{}> {
110
+ constructor(userId: string);
111
+ }
112
+ export declare class RecombeeApiClient {
113
+ private settings;
114
+ private request;
115
+ constructor(settings: Settings, request: RequestClient);
116
+ send<Params extends object, T extends Request<Params>>(request: T): Promise<any>;
117
+ private getBaseUri;
118
+ private signUrl;
119
+ }
120
+ export {};
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecombeeApiClient = exports.DeleteUser = exports.MergeUsers = exports.DeleteCartAddition = exports.DeleteBookmark = exports.SetViewPortion = exports.AddRating = exports.AddPurchase = exports.AddDetailView = exports.AddCartAddition = exports.AddBookmark = exports.Batch = void 0;
4
+ const actions_core_1 = require("@segment/actions-core");
5
+ const crypto_1 = require("crypto");
6
+ var DatabaseRegion;
7
+ (function (DatabaseRegion) {
8
+ DatabaseRegion["EU_WEST"] = "eu-west";
9
+ DatabaseRegion["CA_EAST"] = "ca-east";
10
+ DatabaseRegion["AP_SE"] = "ap-se";
11
+ DatabaseRegion["US_WEST"] = "us-west";
12
+ DatabaseRegion["CUSTOM"] = "custom";
13
+ })(DatabaseRegion || (DatabaseRegion = {}));
14
+ class Request {
15
+ constructor(params, method, path) {
16
+ this.params = params;
17
+ this.method = method;
18
+ this.path = path;
19
+ }
20
+ }
21
+ class Batch extends Request {
22
+ constructor(requests) {
23
+ super({ requests }, 'POST', '/batch/');
24
+ }
25
+ }
26
+ exports.Batch = Batch;
27
+ class AddBookmark extends Request {
28
+ constructor(params) {
29
+ super({ cascadeCreate: true, ...params }, 'POST', '/bookmarks/');
30
+ }
31
+ }
32
+ exports.AddBookmark = AddBookmark;
33
+ class AddCartAddition extends Request {
34
+ constructor(params) {
35
+ super({ cascadeCreate: true, ...params }, 'POST', '/cartadditions/');
36
+ }
37
+ }
38
+ exports.AddCartAddition = AddCartAddition;
39
+ class AddDetailView extends Request {
40
+ constructor(params) {
41
+ super({ cascadeCreate: true, ...params }, 'POST', '/detailviews/');
42
+ }
43
+ }
44
+ exports.AddDetailView = AddDetailView;
45
+ class AddPurchase extends Request {
46
+ constructor(params) {
47
+ super({ cascadeCreate: true, ...params }, 'POST', '/purchases/');
48
+ }
49
+ }
50
+ exports.AddPurchase = AddPurchase;
51
+ class AddRating extends Request {
52
+ constructor(params) {
53
+ super({ cascadeCreate: true, ...params }, 'POST', '/ratings/');
54
+ }
55
+ }
56
+ exports.AddRating = AddRating;
57
+ class SetViewPortion extends Request {
58
+ constructor(params) {
59
+ super({ cascadeCreate: true, ...params }, 'POST', '/viewportions/');
60
+ }
61
+ }
62
+ exports.SetViewPortion = SetViewPortion;
63
+ function getDeleteUrl(interactionType, params) {
64
+ const url = `/${interactionType}/?userId=${params.userId}&itemId=${params.itemId}`;
65
+ if (params.timestamp !== undefined) {
66
+ if (isNaN(Number(params.timestamp))) {
67
+ return url + `&timestamp=${new Date(params.timestamp).getTime()}`;
68
+ }
69
+ return url + `&timestamp=${params.timestamp}`;
70
+ }
71
+ return url;
72
+ }
73
+ class DeleteBookmark extends Request {
74
+ constructor(params) {
75
+ super(params, 'DELETE', getDeleteUrl('bookmarks', params));
76
+ }
77
+ }
78
+ exports.DeleteBookmark = DeleteBookmark;
79
+ class DeleteCartAddition extends Request {
80
+ constructor(params) {
81
+ super(params, 'DELETE', getDeleteUrl('cartadditions', params));
82
+ }
83
+ }
84
+ exports.DeleteCartAddition = DeleteCartAddition;
85
+ class MergeUsers extends Request {
86
+ constructor(targetUserId, sourceUserId) {
87
+ super({}, 'PUT', `/users/${targetUserId}/merge/${sourceUserId}?cascadeCreate=true`);
88
+ }
89
+ }
90
+ exports.MergeUsers = MergeUsers;
91
+ class DeleteUser extends Request {
92
+ constructor(userId) {
93
+ super({}, 'DELETE', `/users/${userId}/`);
94
+ }
95
+ }
96
+ exports.DeleteUser = DeleteUser;
97
+ class RecombeeApiClient {
98
+ constructor(settings, request) {
99
+ this.settings = settings;
100
+ this.request = request;
101
+ }
102
+ async send(request) {
103
+ const url = 'https://' + this.getBaseUri() + this.signUrl(request.path);
104
+ const response = await this.request(url, {
105
+ method: request.method,
106
+ headers: {
107
+ 'Content-Type': 'application/json'
108
+ },
109
+ body: JSON.stringify(request.params)
110
+ });
111
+ if (response.headers.get('content-type')?.includes('application/json')) {
112
+ return await response.json();
113
+ }
114
+ else {
115
+ return await response.text();
116
+ }
117
+ }
118
+ getBaseUri() {
119
+ if (this.settings.databaseRegion === DatabaseRegion.CUSTOM) {
120
+ if (!this.settings.apiUri) {
121
+ throw new actions_core_1.InvalidAuthenticationError('RAPI URI is required when using custom database region');
122
+ }
123
+ return this.settings.apiUri;
124
+ }
125
+ const region = this.settings.databaseRegion || DatabaseRegion.EU_WEST;
126
+ return `rapi-${region}.recombee.com`;
127
+ }
128
+ signUrl(path) {
129
+ const hash = 'sha1';
130
+ let url = '/' + this.settings.databaseId + path;
131
+ url += (path.indexOf('?') == -1 ? '?' : '&') + 'hmac_timestamp=' + Math.floor(new Date().getTime() / 1000);
132
+ const hmac = crypto_1.createHmac(hash, this.settings.privateToken).update(Buffer.from(url)).digest('hex');
133
+ url += '&hmac_sign=' + hmac;
134
+ return url;
135
+ }
136
+ }
137
+ exports.RecombeeApiClient = RecombeeApiClient;
138
+ //# sourceMappingURL=recombeeApiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recombeeApiClient.js","sourceRoot":"","sources":["../../../src/destinations/recombee/recombeeApiClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface Payload {
2
+ userId: string;
3
+ itemId: string;
4
+ timestamp?: string;
5
+ portion: number;
6
+ sessionId?: string;
7
+ recommId?: string;
8
+ additionalData?: {
9
+ [k: string]: unknown;
10
+ };
11
+ }
@@ -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/recombee/setViewPortion/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,68 @@
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',
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 viewed portion as a number between 0 and 1.**',
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 viewed portion of the item in the interval [0.0,1.0], where 0.0 means the user viewed nothing and 1.0 means the full item was viewed. It should be the actual viewed part of the item, no matter the seeking. For example, if the user seeked immediately to half of the item and then viewed 10% of the item, the `portion` should still be `0.1`.',
45
+ type: 'number',
46
+ required: true,
47
+ default: { '@path': '$.properties.portion' }
48
+ },
49
+ sessionId: {
50
+ label: 'Session ID',
51
+ description: 'The ID of the session in which the user viewed the item.',
52
+ type: 'string',
53
+ required: false,
54
+ default: { '@path': '$.properties.session' }
55
+ },
56
+ ...commonFields_1.interactionFields('view portion')
57
+ },
58
+ perform: async (request, data) => {
59
+ const client = new recombeeApiClient_1.RecombeeApiClient(data.settings, request);
60
+ await client.send(new recombeeApiClient_1.SetViewPortion(data.payload));
61
+ },
62
+ performBatch: async (request, data) => {
63
+ const client = new recombeeApiClient_1.RecombeeApiClient(data.settings, request);
64
+ await client.send(new recombeeApiClient_1.Batch(data.payload.map((event) => new recombeeApiClient_1.SetViewPortion(event))));
65
+ }
66
+ };
67
+ exports.default = action;
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/recombee/setViewPortion/index.ts"],"names":[],"mappings":";;AAGA,4DAA+E;AAC/E,kDAAmD;AAEnD,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,wKAAwK;IAC1K,MAAM,EAAE;QACN,MAAM,EAAE;YACN,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,sDAAsD;YACnE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;iBACnC;aACF;SACF;QACD,MAAM,EAAE;YACN,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE;oBAC9C,IAAI,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE;oBAC5C,IAAI,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;iBAC3C;aACF;SACF;QACD,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,sDAAsD;YACnE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;SACpC;QACD,OAAO,EAAE;YACP,KAAK,EAAE,SAAS;YAChB,WAAW,EACT,yVAAyV;YAC3V,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE;SAC7C;QACD,SAAS,EAAE;YACT,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,0DAA0D;YACvE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE;SAC7C;QACD,GAAG,gCAAiB,CAAC,cAAc,CAAC;KACrC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,kCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kCAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}