@segment/action-destinations 3.323.1-hadron.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 (264) 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.map +1 -0
  10. package/dist/destinations/accoil-analytics/identify/index.js +73 -0
  11. package/dist/destinations/accoil-analytics/identify/index.js.map +1 -0
  12. package/dist/destinations/accoil-analytics/index.js +25 -26
  13. package/dist/destinations/accoil-analytics/index.js.map +1 -1
  14. package/dist/destinations/accoil-analytics/page/generated-types.d.ts +5 -0
  15. package/dist/destinations/accoil-analytics/page/generated-types.js.map +1 -0
  16. package/dist/destinations/accoil-analytics/page/index.js +38 -0
  17. package/dist/destinations/accoil-analytics/page/index.js.map +1 -0
  18. package/dist/destinations/accoil-analytics/screen/generated-types.d.ts +5 -0
  19. package/dist/destinations/accoil-analytics/screen/generated-types.js.map +1 -0
  20. package/dist/destinations/accoil-analytics/screen/index.js +38 -0
  21. package/dist/destinations/accoil-analytics/screen/index.js.map +1 -0
  22. package/dist/destinations/accoil-analytics/track/generated-types.d.ts +5 -0
  23. package/dist/destinations/accoil-analytics/track/generated-types.js.map +1 -0
  24. package/dist/destinations/accoil-analytics/track/index.js +39 -0
  25. package/dist/destinations/accoil-analytics/track/index.js.map +1 -0
  26. package/dist/destinations/accoil-analytics/utils.d.ts +6 -0
  27. package/dist/destinations/accoil-analytics/utils.js +14 -0
  28. package/dist/destinations/accoil-analytics/utils.js.map +1 -0
  29. package/dist/destinations/adobe-target/adobeTarget_operations.js +3 -2
  30. package/dist/destinations/adobe-target/adobeTarget_operations.js.map +1 -1
  31. package/dist/destinations/braze/createAlias2/generated-types.js.map +1 -0
  32. package/dist/destinations/braze/createAlias2/index.d.ts +5 -0
  33. package/dist/destinations/braze/createAlias2/index.js +53 -0
  34. package/dist/destinations/braze/createAlias2/index.js.map +1 -0
  35. package/dist/destinations/braze/identifyUser2/generated-types.js.map +1 -0
  36. package/dist/destinations/braze/identifyUser2/index.d.ts +5 -0
  37. package/dist/destinations/braze/identifyUser2/index.js +70 -0
  38. package/dist/destinations/braze/identifyUser2/index.js.map +1 -0
  39. package/dist/destinations/braze/index.js +11 -1
  40. package/dist/destinations/braze/index.js.map +1 -1
  41. package/dist/destinations/braze/trackEvent2/index.js +2 -2
  42. package/dist/destinations/braze/updateUserProfile2/generated-types.d.ts +52 -0
  43. package/dist/destinations/braze/updateUserProfile2/generated-types.js.map +1 -0
  44. package/dist/destinations/braze/updateUserProfile2/index.d.ts +5 -0
  45. package/dist/destinations/braze/updateUserProfile2/index.js +303 -0
  46. package/dist/destinations/braze/updateUserProfile2/index.js.map +1 -0
  47. package/dist/destinations/braze/utils.d.ts +6 -6
  48. package/dist/destinations/braze/utils.js +36 -12
  49. package/dist/destinations/braze/utils.js.map +1 -1
  50. package/dist/destinations/contentstack/index.js +1 -1
  51. package/dist/destinations/contentstack/index.js.map +1 -1
  52. package/dist/destinations/first-party-dv360/functions.d.ts +1 -0
  53. package/dist/destinations/first-party-dv360/functions.js +3 -2
  54. package/dist/destinations/first-party-dv360/functions.js.map +1 -1
  55. package/dist/destinations/first-party-dv360/generated-types.d.ts +1 -0
  56. package/dist/destinations/first-party-dv360/index.js +8 -0
  57. package/dist/destinations/first-party-dv360/index.js.map +1 -1
  58. package/dist/destinations/index.js +3 -0
  59. package/dist/destinations/index.js.map +1 -1
  60. package/dist/destinations/klaviyo/generated-types.d.ts +3 -0
  61. package/dist/destinations/klaviyo/index.d.ts +2 -2
  62. package/dist/destinations/klaviyo/index.js +12 -1
  63. package/dist/destinations/klaviyo/index.js.map +1 -1
  64. package/dist/destinations/nextdoor-capi/generated-types.d.ts +1 -0
  65. package/dist/destinations/nextdoor-capi/index.js +6 -0
  66. package/dist/destinations/nextdoor-capi/index.js.map +1 -1
  67. package/dist/destinations/nextdoor-capi/sendConversion/generated-types.d.ts +0 -1
  68. package/dist/destinations/nextdoor-capi/sendConversion/index.js +2 -15
  69. package/dist/destinations/nextdoor-capi/sendConversion/index.js.map +1 -1
  70. package/dist/destinations/postscript/const.d.ts +2 -0
  71. package/dist/destinations/postscript/const.js +6 -0
  72. package/dist/destinations/postscript/const.js.map +1 -0
  73. package/dist/destinations/postscript/generated-types.d.ts +3 -0
  74. package/dist/destinations/postscript/generated-types.js +3 -0
  75. package/dist/destinations/postscript/generated-types.js.map +1 -0
  76. package/dist/destinations/postscript/index.js +42 -0
  77. package/dist/destinations/postscript/index.js.map +1 -0
  78. package/dist/destinations/postscript/syncAudiences/generated-types.d.ts +10 -0
  79. package/dist/destinations/postscript/syncAudiences/generated-types.js +3 -0
  80. package/dist/destinations/postscript/syncAudiences/generated-types.js.map +1 -0
  81. package/dist/destinations/postscript/syncAudiences/index.d.ts +5 -0
  82. package/dist/destinations/postscript/syncAudiences/index.js +138 -0
  83. package/dist/destinations/postscript/syncAudiences/index.js.map +1 -0
  84. package/dist/destinations/postscript/types.d.ts +10 -0
  85. package/dist/destinations/{braze/identifyUserV2.types.js → postscript/types.js} +2 -1
  86. package/dist/destinations/postscript/types.js.map +1 -0
  87. package/dist/destinations/recombee/addBookmark/generated-types.d.ts +9 -0
  88. package/dist/destinations/recombee/addBookmark/generated-types.js +3 -0
  89. package/dist/destinations/recombee/addBookmark/generated-types.js.map +1 -0
  90. package/dist/destinations/recombee/addBookmark/index.d.ts +5 -0
  91. package/dist/destinations/recombee/addBookmark/index.js +55 -0
  92. package/dist/destinations/recombee/addBookmark/index.js.map +1 -0
  93. package/dist/destinations/recombee/addCartAddition/generated-types.d.ts +13 -0
  94. package/dist/destinations/recombee/addCartAddition/generated-types.js +3 -0
  95. package/dist/destinations/recombee/addCartAddition/generated-types.js.map +1 -0
  96. package/dist/destinations/recombee/addCartAddition/index.d.ts +5 -0
  97. package/dist/destinations/recombee/addCartAddition/index.js +99 -0
  98. package/dist/destinations/recombee/addCartAddition/index.js.map +1 -0
  99. package/dist/destinations/recombee/addDetailView/generated-types.d.ts +10 -0
  100. package/dist/destinations/recombee/addDetailView/generated-types.js +3 -0
  101. package/dist/destinations/recombee/addDetailView/generated-types.js.map +1 -0
  102. package/dist/destinations/recombee/addDetailView/index.d.ts +5 -0
  103. package/dist/destinations/recombee/addDetailView/index.js +60 -0
  104. package/dist/destinations/recombee/addDetailView/index.js.map +1 -0
  105. package/dist/destinations/recombee/addPurchase/generated-types.d.ts +14 -0
  106. package/dist/destinations/recombee/addPurchase/generated-types.js +3 -0
  107. package/dist/destinations/recombee/addPurchase/generated-types.js.map +1 -0
  108. package/dist/destinations/recombee/addPurchase/index.d.ts +5 -0
  109. package/dist/destinations/recombee/addPurchase/index.js +107 -0
  110. package/dist/destinations/recombee/addPurchase/index.js.map +1 -0
  111. package/dist/destinations/recombee/addRating/generated-types.d.ts +10 -0
  112. package/dist/destinations/recombee/addRating/generated-types.js +3 -0
  113. package/dist/destinations/recombee/addRating/generated-types.js.map +1 -0
  114. package/dist/destinations/recombee/addRating/index.d.ts +5 -0
  115. package/dist/destinations/recombee/addRating/index.js +61 -0
  116. package/dist/destinations/recombee/addRating/index.js.map +1 -0
  117. package/dist/destinations/recombee/commonFields.d.ts +32 -0
  118. package/dist/destinations/recombee/commonFields.js +43 -0
  119. package/dist/destinations/recombee/commonFields.js.map +1 -0
  120. package/dist/destinations/recombee/deleteBookmark/generated-types.d.ts +5 -0
  121. package/dist/destinations/recombee/deleteBookmark/generated-types.js +3 -0
  122. package/dist/destinations/recombee/deleteBookmark/generated-types.js.map +1 -0
  123. package/dist/destinations/recombee/deleteBookmark/index.d.ts +5 -0
  124. package/dist/destinations/recombee/deleteBookmark/index.js +52 -0
  125. package/dist/destinations/recombee/deleteBookmark/index.js.map +1 -0
  126. package/dist/destinations/recombee/deleteCartAddition/generated-types.d.ts +5 -0
  127. package/dist/destinations/recombee/deleteCartAddition/generated-types.js +3 -0
  128. package/dist/destinations/recombee/deleteCartAddition/generated-types.js.map +1 -0
  129. package/dist/destinations/recombee/deleteCartAddition/index.d.ts +5 -0
  130. package/dist/destinations/recombee/deleteCartAddition/index.js +52 -0
  131. package/dist/destinations/recombee/deleteCartAddition/index.js.map +1 -0
  132. package/dist/destinations/recombee/generated-types.d.ts +6 -0
  133. package/dist/destinations/recombee/generated-types.js +3 -0
  134. package/dist/destinations/recombee/generated-types.js.map +1 -0
  135. package/dist/destinations/recombee/index.d.ts +4 -0
  136. package/dist/destinations/recombee/index.js +223 -0
  137. package/dist/destinations/recombee/index.js.map +1 -0
  138. package/dist/destinations/recombee/mergeUsers/generated-types.d.ts +4 -0
  139. package/dist/destinations/recombee/mergeUsers/generated-types.js +3 -0
  140. package/dist/destinations/recombee/mergeUsers/generated-types.js.map +1 -0
  141. package/dist/destinations/recombee/mergeUsers/index.d.ts +5 -0
  142. package/dist/destinations/recombee/mergeUsers/index.js +34 -0
  143. package/dist/destinations/recombee/mergeUsers/index.js.map +1 -0
  144. package/dist/destinations/recombee/recombeeApiClient.d.ts +120 -0
  145. package/dist/destinations/recombee/recombeeApiClient.js +138 -0
  146. package/dist/destinations/recombee/recombeeApiClient.js.map +1 -0
  147. package/dist/destinations/recombee/setViewPortion/generated-types.d.ts +11 -0
  148. package/dist/destinations/recombee/setViewPortion/generated-types.js +3 -0
  149. package/dist/destinations/recombee/setViewPortion/generated-types.js.map +1 -0
  150. package/dist/destinations/recombee/setViewPortion/index.d.ts +5 -0
  151. package/dist/destinations/recombee/setViewPortion/index.js +68 -0
  152. package/dist/destinations/recombee/setViewPortion/index.js.map +1 -0
  153. package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.d.ts +14 -0
  154. package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.js +3 -0
  155. package/dist/destinations/recombee/setViewPortionFromWatchTime/generated-types.js.map +1 -0
  156. package/dist/destinations/recombee/setViewPortionFromWatchTime/index.d.ts +5 -0
  157. package/dist/destinations/recombee/setViewPortionFromWatchTime/index.js +96 -0
  158. package/dist/destinations/recombee/setViewPortionFromWatchTime/index.js.map +1 -0
  159. package/dist/destinations/reddit-audiences/const.d.ts +2 -0
  160. package/dist/destinations/reddit-audiences/const.js +6 -0
  161. package/dist/destinations/reddit-audiences/const.js.map +1 -0
  162. package/dist/destinations/reddit-audiences/generated-types.d.ts +6 -0
  163. package/dist/destinations/reddit-audiences/generated-types.js +3 -0
  164. package/dist/destinations/reddit-audiences/generated-types.js.map +1 -0
  165. package/dist/destinations/reddit-audiences/index.d.ts +4 -0
  166. package/dist/destinations/reddit-audiences/index.js +83 -0
  167. package/dist/destinations/reddit-audiences/index.js.map +1 -0
  168. package/dist/destinations/reddit-audiences/syncAudience/functions.d.ts +3 -0
  169. package/dist/destinations/reddit-audiences/syncAudience/functions.js +105 -0
  170. package/dist/destinations/reddit-audiences/syncAudience/functions.js.map +1 -0
  171. package/dist/destinations/reddit-audiences/syncAudience/generated-types.d.ts +13 -0
  172. package/dist/destinations/reddit-audiences/syncAudience/generated-types.js +3 -0
  173. package/dist/destinations/reddit-audiences/syncAudience/generated-types.js.map +1 -0
  174. package/dist/destinations/reddit-audiences/syncAudience/index.d.ts +5 -0
  175. package/dist/destinations/reddit-audiences/syncAudience/index.js +114 -0
  176. package/dist/destinations/reddit-audiences/syncAudience/index.js.map +1 -0
  177. package/dist/destinations/reddit-audiences/syncAudience/types.d.ts +33 -0
  178. package/dist/destinations/reddit-audiences/syncAudience/types.js.map +1 -0
  179. package/dist/destinations/reddit-audiences/types.d.ts +18 -0
  180. package/dist/destinations/{s3/syncToS3.types.js → reddit-audiences/types.js} +1 -1
  181. package/dist/destinations/reddit-audiences/types.js.map +1 -0
  182. package/dist/destinations/reddit-conversions-api/utils.js +2 -2
  183. package/dist/destinations/reddit-conversions-api/utils.js.map +1 -1
  184. package/dist/destinations/s3/fields.js +1 -1
  185. package/dist/destinations/s3/fields.js.map +1 -1
  186. package/dist/destinations/s3/functions.js.map +1 -1
  187. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js +3 -3
  188. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js.map +1 -1
  189. package/dist/destinations/stackadapt-audiences/forwardProfile/functions.js +1 -1
  190. package/dist/destinations/stackadapt-audiences/forwardProfile/functions.js.map +1 -1
  191. package/package.json +4 -4
  192. package/dist/destinations/accoil-analytics/postToAccoil/generated-types.d.ts +0 -5
  193. package/dist/destinations/accoil-analytics/postToAccoil/generated-types.js.map +0 -1
  194. package/dist/destinations/accoil-analytics/postToAccoil/index.js +0 -28
  195. package/dist/destinations/accoil-analytics/postToAccoil/index.js.map +0 -1
  196. package/dist/destinations/braze/createAliasV2.types.js +0 -3
  197. package/dist/destinations/braze/createAliasV2.types.js.map +0 -1
  198. package/dist/destinations/braze/identifyUserV2.types.js.map +0 -1
  199. package/dist/destinations/campaign-manager-360/common-fields.d.ts +0 -3
  200. package/dist/destinations/campaign-manager-360/common-fields.js +0 -306
  201. package/dist/destinations/campaign-manager-360/common-fields.js.map +0 -1
  202. package/dist/destinations/campaign-manager-360/conversionAdjustmentUpload/generated-types.d.ts +0 -45
  203. package/dist/destinations/campaign-manager-360/conversionAdjustmentUpload/generated-types.js.map +0 -1
  204. package/dist/destinations/campaign-manager-360/conversionAdjustmentUpload/index.js +0 -86
  205. package/dist/destinations/campaign-manager-360/conversionAdjustmentUpload/index.js.map +0 -1
  206. package/dist/destinations/campaign-manager-360/conversionUpload/generated-types.d.ts +0 -50
  207. package/dist/destinations/campaign-manager-360/conversionUpload/generated-types.js.map +0 -1
  208. package/dist/destinations/campaign-manager-360/conversionUpload/index.js +0 -131
  209. package/dist/destinations/campaign-manager-360/conversionUpload/index.js.map +0 -1
  210. package/dist/destinations/campaign-manager-360/generated-types.d.ts +0 -5
  211. package/dist/destinations/campaign-manager-360/generated-types.js.map +0 -1
  212. package/dist/destinations/campaign-manager-360/index.js +0 -63
  213. package/dist/destinations/campaign-manager-360/index.js.map +0 -1
  214. package/dist/destinations/campaign-manager-360/types.d.ts +0 -116
  215. package/dist/destinations/campaign-manager-360/types.js +0 -23
  216. package/dist/destinations/campaign-manager-360/types.js.map +0 -1
  217. package/dist/destinations/campaign-manager-360/utils.d.ts +0 -21
  218. package/dist/destinations/campaign-manager-360/utils.js +0 -175
  219. package/dist/destinations/campaign-manager-360/utils.js.map +0 -1
  220. package/dist/destinations/first-party-dv360/addToAudContactInfo/generated-types.d.ts +0 -9
  221. package/dist/destinations/first-party-dv360/addToAudContactInfo/generated-types.js.map +0 -1
  222. package/dist/destinations/first-party-dv360/addToAudContactInfo/index.d.ts +0 -5
  223. package/dist/destinations/first-party-dv360/addToAudContactInfo/index.js +0 -32
  224. package/dist/destinations/first-party-dv360/addToAudContactInfo/index.js.map +0 -1
  225. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/generated-types.d.ts +0 -4
  226. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/generated-types.js.map +0 -1
  227. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/index.d.ts +0 -5
  228. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/index.js +0 -27
  229. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/index.js.map +0 -1
  230. package/dist/destinations/first-party-dv360/addToList.types.d.ts +0 -9
  231. package/dist/destinations/first-party-dv360/addToList.types.js +0 -3
  232. package/dist/destinations/first-party-dv360/addToList.types.js.map +0 -1
  233. package/dist/destinations/first-party-dv360/properties.d.ts +0 -9
  234. package/dist/destinations/first-party-dv360/properties.js +0 -69
  235. package/dist/destinations/first-party-dv360/properties.js.map +0 -1
  236. package/dist/destinations/s3/syncAudienceToS3/generated-types.d.ts +0 -53
  237. package/dist/destinations/s3/syncAudienceToS3/generated-types.js.map +0 -1
  238. package/dist/destinations/s3/syncAudienceToS3/index.js +0 -22
  239. package/dist/destinations/s3/syncAudienceToS3/index.js.map +0 -1
  240. package/dist/destinations/s3/syncEventsToS3/generated-types.d.ts +0 -44
  241. package/dist/destinations/s3/syncEventsToS3/generated-types.js.map +0 -1
  242. package/dist/destinations/s3/syncEventsToS3/index.js +0 -19
  243. package/dist/destinations/s3/syncEventsToS3/index.js.map +0 -1
  244. package/dist/destinations/s3/syncToS3.types.d.ts +0 -44
  245. package/dist/destinations/s3/syncToS3.types.js.map +0 -1
  246. package/dist/destinations/webhook-extensible/types.d.ts +0 -6
  247. package/dist/destinations/webhook-extensible/types.js.map +0 -1
  248. /package/dist/destinations/accoil-analytics/{postToAccoil → group}/generated-types.js +0 -0
  249. /package/dist/destinations/accoil-analytics/{postToAccoil → group}/index.d.ts +0 -0
  250. /package/dist/destinations/{campaign-manager-360/conversionAdjustmentUpload → accoil-analytics/identify}/generated-types.js +0 -0
  251. /package/dist/destinations/{campaign-manager-360/conversionAdjustmentUpload → accoil-analytics/identify}/index.d.ts +0 -0
  252. /package/dist/destinations/{campaign-manager-360/conversionUpload → accoil-analytics/page}/generated-types.js +0 -0
  253. /package/dist/destinations/{campaign-manager-360/conversionUpload → accoil-analytics/page}/index.d.ts +0 -0
  254. /package/dist/destinations/{campaign-manager-360 → accoil-analytics/screen}/generated-types.js +0 -0
  255. /package/dist/destinations/{s3/syncAudienceToS3 → accoil-analytics/screen}/index.d.ts +0 -0
  256. /package/dist/destinations/{first-party-dv360/addToAudContactInfo → accoil-analytics/track}/generated-types.js +0 -0
  257. /package/dist/destinations/{s3/syncEventsToS3 → accoil-analytics/track}/index.d.ts +0 -0
  258. /package/dist/destinations/braze/{createAliasV2.types.d.ts → createAlias2/generated-types.d.ts} +0 -0
  259. /package/dist/destinations/{first-party-dv360/addToAudMobileDeviceId → braze/createAlias2}/generated-types.js +0 -0
  260. /package/dist/destinations/braze/{identifyUserV2.types.d.ts → identifyUser2/generated-types.d.ts} +0 -0
  261. /package/dist/destinations/{s3/syncAudienceToS3 → braze/identifyUser2}/generated-types.js +0 -0
  262. /package/dist/destinations/{s3/syncEventsToS3 → braze/updateUserProfile2}/generated-types.js +0 -0
  263. /package/dist/destinations/{campaign-manager-360 → postscript}/index.d.ts +0 -0
  264. /package/dist/destinations/{webhook-extensible → reddit-audiences/syncAudience}/types.js +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":";;;AAAA,wDAAiF;AAEjF,mCAAmC;AAEnC,IAAK,cAMJ;AAND,WAAK,cAAc;IACjB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,iCAAe,CAAA;IACf,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;AACnB,CAAC,EANI,cAAc,KAAd,cAAc,QAMlB;AAyFD,MAAe,OAAO;IACpB,YAAmB,MAAc,EAAS,MAAkB,EAAS,IAAY;QAA9D,WAAM,GAAN,MAAM,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAY;QAAS,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CACtF;AAED,MAAa,KAAM,SAAQ,OAAoB;IAC7C,YAAY,QAAiC;QAC3C,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IACxC,CAAC;CACF;AAJD,sBAIC;AAED,MAAa,WAAY,SAAQ,OAA0B;IACzD,YAAY,MAAyB;QACnC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;IAClE,CAAC;CACF;AAJD,kCAIC;AAED,MAAa,eAAgB,SAAQ,OAA8B;IACjE,YAAY,MAA6B;QACvC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACtE,CAAC;CACF;AAJD,0CAIC;AAED,MAAa,aAAc,SAAQ,OAA4B;IAC7D,YAAY,MAA2B;QACrC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;IACpE,CAAC;CACF;AAJD,sCAIC;AAED,MAAa,WAAY,SAAQ,OAA0B;IACzD,YAAY,MAAyB;QACnC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;IAClE,CAAC;CACF;AAJD,kCAIC;AAED,MAAa,SAAU,SAAQ,OAAwB;IACrD,YAAY,MAAuB;QACjC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IAChE,CAAC;CACF;AAJD,8BAIC;AAED,MAAa,cAAe,SAAQ,OAA6B;IAC/D,YAAY,MAA4B;QACtC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACrE,CAAC;CACF;AAJD,wCAIC;AAED,SAAS,YAAY,CAAC,eAAuB,EAAE,MAAoB;IACjE,MAAM,GAAG,GAAG,IAAI,eAAe,YAAY,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,CAAA;IAClF,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;QAClC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;YACnC,OAAO,GAAG,GAAG,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAA;SAClE;QACD,OAAO,GAAG,GAAG,cAAc,MAAM,CAAC,SAAS,EAAE,CAAA;KAC9C;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAa,cAAe,SAAQ,OAAqB;IACvD,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,CAAC;CACF;AAJD,wCAIC;AAED,MAAa,kBAAmB,SAAQ,OAAqB;IAC3D,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAA;IAChE,CAAC;CACF;AAJD,gDAIC;AAED,MAAa,UAAW,SAAQ,OAAW;IACzC,YAAY,YAAoB,EAAE,YAAoB;QACpD,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,YAAY,UAAU,YAAY,qBAAqB,CAAC,CAAA;IACrF,CAAC;CACF;AAJD,gCAIC;AAED,MAAa,UAAW,SAAQ,OAAW;IACzC,YAAY,MAAc;QACxB,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,MAAM,GAAG,CAAC,CAAA;IAC1C,CAAC;CACF;AAJD,gCAIC;AAED,MAAa,iBAAiB;IAC5B,YAAoB,QAAkB,EAAU,OAAsB;QAAlD,aAAQ,GAAR,QAAQ,CAAU;QAAU,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAE1E,KAAK,CAAC,IAAI,CAAmD,OAAU;QACrE,MAAM,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;SACrC,CAAC,CAAA;QACF,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YACtE,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;SAC7B;aAAM;YACL,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;SAC7B;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,cAAc,CAAC,MAAM,EAAE;YAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACzB,MAAM,IAAI,yCAA0B,CAAC,wDAAwD,CAAC,CAAA;aAC/F;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;SAC5B;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,cAAc,CAAC,OAAO,CAAA;QACrE,OAAO,QAAQ,MAAM,eAAe,CAAA;IACtC,CAAC;IAEO,OAAO,CAAC,IAAY;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAA;QAEnB,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAA;QAC/C,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;QAE1G,MAAM,IAAI,GAAG,mBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAChG,GAAG,IAAI,aAAa,GAAG,IAAI,CAAA;QAC3B,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAzCD,8CAyCC"}
@@ -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"}