@slicemachine/manager 0.17.8-beta.5 → 0.17.8-beta.6

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 (347) hide show
  1. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.cjs +91 -0
  2. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.cjs.map +1 -0
  3. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.js +91 -0
  4. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.js.map +1 -0
  5. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/constants.cjs +17 -0
  6. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/constants.cjs.map +1 -0
  7. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/constants.js +17 -0
  8. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/constants.js.map +1 -0
  9. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.cjs +190 -0
  10. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.cjs.map +1 -0
  11. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.js +190 -0
  12. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.js.map +1 -0
  13. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.cjs +90 -0
  14. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.cjs.map +1 -0
  15. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.js +90 -0
  16. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.js.map +1 -0
  17. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.cjs +64 -0
  18. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.cjs.map +1 -0
  19. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.js +64 -0
  20. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.js.map +1 -0
  21. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/messages.cjs +17 -0
  22. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/messages.cjs.map +1 -0
  23. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/messages.js +17 -0
  24. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/messages.js.map +1 -0
  25. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.cjs +323 -0
  26. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.cjs.map +1 -0
  27. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js +323 -0
  28. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js.map +1 -0
  29. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.cjs +55 -0
  30. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.cjs.map +1 -0
  31. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.js +55 -0
  32. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.js.map +1 -0
  33. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.cjs +251 -0
  34. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.cjs.map +1 -0
  35. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.js +251 -0
  36. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.js.map +1 -0
  37. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.cjs +103 -0
  38. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.cjs.map +1 -0
  39. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.js +103 -0
  40. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.js.map +1 -0
  41. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.cjs +15 -0
  42. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.cjs.map +1 -0
  43. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.js +15 -0
  44. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.js.map +1 -0
  45. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.cjs +126 -0
  46. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.cjs.map +1 -0
  47. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js +126 -0
  48. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js.map +1 -0
  49. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.cjs +34 -0
  50. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.cjs.map +1 -0
  51. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.js +34 -0
  52. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.js.map +1 -0
  53. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.cjs +14 -0
  54. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.cjs.map +1 -0
  55. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.js +14 -0
  56. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.js.map +1 -0
  57. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.cjs +9 -0
  58. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.cjs.map +1 -0
  59. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.js +9 -0
  60. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.js.map +1 -0
  61. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.cjs +25 -0
  62. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.cjs.map +1 -0
  63. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.js +25 -0
  64. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.js.map +1 -0
  65. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.cjs +58 -0
  66. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.cjs.map +1 -0
  67. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js +58 -0
  68. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js.map +1 -0
  69. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.cjs +21 -0
  70. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.cjs.map +1 -0
  71. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.js +21 -0
  72. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.js.map +1 -0
  73. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/index.cjs +23 -0
  74. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/index.cjs.map +1 -0
  75. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/index.js +24 -0
  76. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/index.js.map +1 -0
  77. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.cjs +81 -0
  78. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.cjs.map +1 -0
  79. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.js +81 -0
  80. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.js.map +1 -0
  81. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.cjs +37 -0
  82. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.cjs.map +1 -0
  83. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.js +37 -0
  84. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.js.map +1 -0
  85. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.cjs +85 -0
  86. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.cjs.map +1 -0
  87. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js +67 -0
  88. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js.map +1 -0
  89. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/version.cjs +5 -0
  90. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/version.cjs.map +1 -0
  91. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/version.js +5 -0
  92. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/version.js.map +1 -0
  93. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.cjs +30 -0
  94. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.cjs.map +1 -0
  95. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.js +33 -0
  96. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.js.map +1 -0
  97. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/index.cjs +41 -0
  98. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/index.cjs.map +1 -0
  99. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/index.js +17 -0
  100. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/index.js.map +1 -0
  101. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/logger.cjs +11 -0
  102. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/logger.cjs.map +1 -0
  103. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/logger.js +12 -0
  104. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/logger.js.map +1 -0
  105. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/plugin.cjs +9 -0
  106. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/plugin.cjs.map +1 -0
  107. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/plugin.js +10 -0
  108. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/plugin.js.map +1 -0
  109. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/server-zone.cjs +9 -0
  110. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/server-zone.cjs.map +1 -0
  111. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/server-zone.js +10 -0
  112. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/server-zone.js.map +1 -0
  113. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/status.cjs +15 -0
  114. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/status.cjs.map +1 -0
  115. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/status.js +16 -0
  116. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/status.js.map +1 -0
  117. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/transport.cjs +9 -0
  118. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/transport.cjs.map +1 -0
  119. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/transport.js +10 -0
  120. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/transport.js.map +1 -0
  121. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.cjs +1247 -0
  122. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.cjs.map +1 -0
  123. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js +1247 -0
  124. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js.map +1 -0
  125. package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.cjs +7 -0
  126. package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.cjs.map +1 -0
  127. package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.js +8 -0
  128. package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.js.map +1 -0
  129. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.cjs +29 -0
  130. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.cjs.map +1 -0
  131. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js +30 -0
  132. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js.map +1 -0
  133. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.cjs +92 -0
  134. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.cjs.map +1 -0
  135. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js +91 -0
  136. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js.map +1 -0
  137. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.cjs +25 -0
  138. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.cjs.map +1 -0
  139. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js +26 -0
  140. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js.map +1 -0
  141. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.cjs +84 -0
  142. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.cjs.map +1 -0
  143. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.js +85 -0
  144. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.js.map +1 -0
  145. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.cjs +37 -0
  146. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.cjs.map +1 -0
  147. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.js +38 -0
  148. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.js.map +1 -0
  149. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.cjs +61 -0
  150. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.cjs.map +1 -0
  151. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.js +60 -0
  152. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.js.map +1 -0
  153. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.cjs +87 -0
  154. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.cjs.map +1 -0
  155. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.js +88 -0
  156. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.js.map +1 -0
  157. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.cjs +204 -0
  158. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.cjs.map +1 -0
  159. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.js +205 -0
  160. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.js.map +1 -0
  161. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.cjs +82 -0
  162. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.cjs.map +1 -0
  163. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.js +83 -0
  164. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.js.map +1 -0
  165. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.cjs +121 -0
  166. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.cjs.map +1 -0
  167. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.js +122 -0
  168. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.js.map +1 -0
  169. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.cjs +166 -0
  170. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.cjs.map +1 -0
  171. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.js +167 -0
  172. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.js.map +1 -0
  173. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.cjs +105 -0
  174. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.cjs.map +1 -0
  175. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js +106 -0
  176. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js.map +1 -0
  177. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.cjs +38 -0
  178. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.cjs.map +1 -0
  179. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.js +39 -0
  180. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.js.map +1 -0
  181. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.cjs +51 -0
  182. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.cjs.map +1 -0
  183. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.js +52 -0
  184. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.js.map +1 -0
  185. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.cjs +92 -0
  186. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.cjs.map +1 -0
  187. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.js +93 -0
  188. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.js.map +1 -0
  189. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.cjs +18 -0
  190. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.cjs.map +1 -0
  191. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.js +19 -0
  192. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.js.map +1 -0
  193. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.cjs +20 -0
  194. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.cjs.map +1 -0
  195. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.js +21 -0
  196. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.js.map +1 -0
  197. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.cjs +13 -0
  198. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.cjs.map +1 -0
  199. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.js +14 -0
  200. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.js.map +1 -0
  201. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.cjs +44 -0
  202. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.cjs.map +1 -0
  203. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.js +45 -0
  204. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.js.map +1 -0
  205. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.cjs +39 -0
  206. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.cjs.map +1 -0
  207. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.js +38 -0
  208. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.js.map +1 -0
  209. package/dist/_node_modules/cross-spawn/index.cjs +1 -1
  210. package/dist/_node_modules/cross-spawn/index.js +1 -1
  211. package/dist/_node_modules/execa/_node_modules/get-stream/index.cjs +1 -1
  212. package/dist/_node_modules/execa/_node_modules/get-stream/index.js +1 -1
  213. package/dist/_node_modules/path-key/index.cjs +1 -1
  214. package/dist/_node_modules/path-key/index.js +1 -1
  215. package/dist/_node_modules/signal-exit/index.cjs +1 -1
  216. package/dist/_node_modules/signal-exit/index.js +1 -1
  217. package/dist/_node_modules/tslib/tslib.es6.cjs +206 -0
  218. package/dist/_node_modules/tslib/tslib.es6.cjs.map +1 -0
  219. package/dist/_node_modules/tslib/tslib.es6.js +207 -0
  220. package/dist/_node_modules/tslib/tslib.es6.js.map +1 -0
  221. package/dist/_virtual/_commonjsHelpers.cjs +30 -0
  222. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -1
  223. package/dist/_virtual/_commonjsHelpers.js +30 -0
  224. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  225. package/dist/_virtual/assignment-filter.cjs +5 -0
  226. package/dist/_virtual/assignment-filter.cjs.map +1 -0
  227. package/dist/_virtual/assignment-filter.js +5 -0
  228. package/dist/_virtual/assignment-filter.js.map +1 -0
  229. package/dist/_virtual/assignment-service.cjs +5 -0
  230. package/dist/_virtual/assignment-service.cjs.map +1 -0
  231. package/dist/_virtual/assignment-service.js +5 -0
  232. package/dist/_virtual/assignment-service.js.map +1 -0
  233. package/dist/_virtual/assignment.cjs +5 -0
  234. package/dist/_virtual/assignment.cjs.map +1 -0
  235. package/dist/_virtual/assignment.js +5 -0
  236. package/dist/_virtual/assignment.js.map +1 -0
  237. package/dist/_virtual/backoff.cjs +5 -0
  238. package/dist/_virtual/backoff.cjs.map +1 -0
  239. package/dist/_virtual/backoff.js +5 -0
  240. package/dist/_virtual/backoff.js.map +1 -0
  241. package/dist/_virtual/cache.cjs +5 -0
  242. package/dist/_virtual/cache.cjs.map +1 -0
  243. package/dist/_virtual/cache.js +5 -0
  244. package/dist/_virtual/cache.js.map +1 -0
  245. package/dist/_virtual/cache2.cjs +5 -0
  246. package/dist/_virtual/cache2.cjs.map +1 -0
  247. package/dist/_virtual/cache2.js +5 -0
  248. package/dist/_virtual/cache2.js.map +1 -0
  249. package/dist/_virtual/client.cjs +5 -0
  250. package/dist/_virtual/client.cjs.map +1 -0
  251. package/dist/_virtual/client.js +5 -0
  252. package/dist/_virtual/client.js.map +1 -0
  253. package/dist/_virtual/client2.cjs +5 -0
  254. package/dist/_virtual/client2.cjs.map +1 -0
  255. package/dist/_virtual/client2.js +5 -0
  256. package/dist/_virtual/client2.js.map +1 -0
  257. package/dist/_virtual/config.cjs +5 -0
  258. package/dist/_virtual/config.cjs.map +1 -0
  259. package/dist/_virtual/config.js +5 -0
  260. package/dist/_virtual/config.js.map +1 -0
  261. package/dist/_virtual/cookie.cjs +5 -0
  262. package/dist/_virtual/cookie.cjs.map +1 -0
  263. package/dist/_virtual/cookie.js +5 -0
  264. package/dist/_virtual/cookie.js.map +1 -0
  265. package/dist/_virtual/experiment-core.esm.cjs +6 -0
  266. package/dist/_virtual/experiment-core.esm.cjs.map +1 -0
  267. package/dist/_virtual/experiment-core.esm.js +7 -0
  268. package/dist/_virtual/experiment-core.esm.js.map +1 -0
  269. package/dist/_virtual/factory.cjs +5 -0
  270. package/dist/_virtual/factory.cjs.map +1 -0
  271. package/dist/_virtual/factory.js +5 -0
  272. package/dist/_virtual/factory.js.map +1 -0
  273. package/dist/_virtual/fetcher.cjs +5 -0
  274. package/dist/_virtual/fetcher.cjs.map +1 -0
  275. package/dist/_virtual/fetcher.js +5 -0
  276. package/dist/_virtual/fetcher.js.map +1 -0
  277. package/dist/_virtual/hash.cjs +5 -0
  278. package/dist/_virtual/hash.cjs.map +1 -0
  279. package/dist/_virtual/hash.js +5 -0
  280. package/dist/_virtual/hash.js.map +1 -0
  281. package/dist/_virtual/http.cjs +5 -0
  282. package/dist/_virtual/http.cjs.map +1 -0
  283. package/dist/_virtual/http.js +5 -0
  284. package/dist/_virtual/http.js.map +1 -0
  285. package/dist/_virtual/index.cjs +2 -2
  286. package/dist/_virtual/index.js +2 -2
  287. package/dist/_virtual/index2.cjs +4 -3
  288. package/dist/_virtual/index2.cjs.map +1 -1
  289. package/dist/_virtual/index2.js +4 -2
  290. package/dist/_virtual/index2.js.map +1 -1
  291. package/dist/_virtual/index3.cjs +2 -2
  292. package/dist/_virtual/index3.js +2 -2
  293. package/dist/_virtual/index4.cjs +2 -2
  294. package/dist/_virtual/index4.js +2 -2
  295. package/dist/_virtual/index5.cjs +5 -0
  296. package/dist/_virtual/index5.cjs.map +1 -0
  297. package/dist/_virtual/index5.js +5 -0
  298. package/dist/_virtual/index5.js.map +1 -0
  299. package/dist/_virtual/index6.cjs +5 -0
  300. package/dist/_virtual/index6.cjs.map +1 -0
  301. package/dist/_virtual/index6.js +5 -0
  302. package/dist/_virtual/index6.js.map +1 -0
  303. package/dist/_virtual/logger.cjs +5 -0
  304. package/dist/_virtual/logger.cjs.map +1 -0
  305. package/dist/_virtual/logger.js +5 -0
  306. package/dist/_virtual/logger.js.map +1 -0
  307. package/dist/_virtual/poller.cjs +5 -0
  308. package/dist/_virtual/poller.cjs.map +1 -0
  309. package/dist/_virtual/poller.js +5 -0
  310. package/dist/_virtual/poller.js.map +1 -0
  311. package/dist/_virtual/time.cjs +5 -0
  312. package/dist/_virtual/time.cjs.map +1 -0
  313. package/dist/_virtual/time.js +5 -0
  314. package/dist/_virtual/time.js.map +1 -0
  315. package/dist/_virtual/user.cjs +5 -0
  316. package/dist/_virtual/user.cjs.map +1 -0
  317. package/dist/_virtual/user.js +5 -0
  318. package/dist/_virtual/user.js.map +1 -0
  319. package/dist/_virtual/variant.cjs +5 -0
  320. package/dist/_virtual/variant.cjs.map +1 -0
  321. package/dist/_virtual/variant.js +5 -0
  322. package/dist/_virtual/variant.js.map +1 -0
  323. package/dist/_virtual/version.cjs +5 -0
  324. package/dist/_virtual/version.cjs.map +1 -0
  325. package/dist/_virtual/version.js +5 -0
  326. package/dist/_virtual/version.js.map +1 -0
  327. package/dist/constants/API_TOKENS.cjs +8 -2
  328. package/dist/constants/API_TOKENS.cjs.map +1 -1
  329. package/dist/constants/API_TOKENS.d.ts +1 -0
  330. package/dist/constants/API_TOKENS.js +8 -2
  331. package/dist/constants/API_TOKENS.js.map +1 -1
  332. package/dist/index.d.ts +1 -0
  333. package/dist/managers/telemetry/TelemetryManager.cjs +28 -0
  334. package/dist/managers/telemetry/TelemetryManager.cjs.map +1 -1
  335. package/dist/managers/telemetry/TelemetryManager.d.ts +4 -0
  336. package/dist/managers/telemetry/TelemetryManager.js +28 -0
  337. package/dist/managers/telemetry/TelemetryManager.js.map +1 -1
  338. package/dist/managers/telemetry/types.cjs +8 -2
  339. package/dist/managers/telemetry/types.cjs.map +1 -1
  340. package/dist/managers/telemetry/types.d.ts +11 -2
  341. package/dist/managers/telemetry/types.js +8 -2
  342. package/dist/managers/telemetry/types.js.map +1 -1
  343. package/package.json +3 -2
  344. package/src/constants/API_TOKENS.ts +9 -2
  345. package/src/index.ts +2 -0
  346. package/src/managers/telemetry/TelemetryManager.ts +42 -1
  347. package/src/managers/telemetry/types.ts +27 -1
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const tslib_es6 = require("../../../../../tslib/tslib.es6.cjs");
4
+ const messages = require("../messages.cjs");
5
+ const constants = require("../constants.cjs");
6
+ const chunk = require("../utils/chunk.cjs");
7
+ const resultBuilder = require("../utils/result-builder.cjs");
8
+ const config = require("../config.cjs");
9
+ const plugin = require("../../../../analytics-types/lib/esm/plugin.cjs");
10
+ const status = require("../../../../analytics-types/lib/esm/status.cjs");
11
+ function getErrorMessage(error) {
12
+ if (error instanceof Error)
13
+ return error.message;
14
+ return String(error);
15
+ }
16
+ function getResponseBodyString(res) {
17
+ var responseBodyString = "";
18
+ try {
19
+ if ("body" in res) {
20
+ responseBodyString = JSON.stringify(res.body);
21
+ }
22
+ } catch (_a) {
23
+ }
24
+ return responseBodyString;
25
+ }
26
+ var Destination = (
27
+ /** @class */
28
+ function() {
29
+ function Destination2() {
30
+ this.name = "amplitude";
31
+ this.type = plugin.PluginType.DESTINATION;
32
+ this.retryTimeout = 1e3;
33
+ this.throttleTimeout = 3e4;
34
+ this.storageKey = "";
35
+ this.scheduled = null;
36
+ this.queue = [];
37
+ }
38
+ Destination2.prototype.setup = function(config2) {
39
+ var _a;
40
+ return tslib_es6.__awaiter(this, void 0, void 0, function() {
41
+ var unsent;
42
+ var _this = this;
43
+ return tslib_es6.__generator(this, function(_b) {
44
+ switch (_b.label) {
45
+ case 0:
46
+ this.config = config2;
47
+ this.storageKey = "".concat(constants.STORAGE_PREFIX, "_").concat(this.config.apiKey.substring(0, 10));
48
+ return [4, (_a = this.config.storageProvider) === null || _a === void 0 ? void 0 : _a.get(this.storageKey)];
49
+ case 1:
50
+ unsent = _b.sent();
51
+ this.saveEvents();
52
+ if (unsent && unsent.length > 0) {
53
+ void Promise.all(unsent.map(function(event) {
54
+ return _this.execute(event);
55
+ })).catch();
56
+ }
57
+ return [2, Promise.resolve(void 0)];
58
+ }
59
+ });
60
+ });
61
+ };
62
+ Destination2.prototype.execute = function(event) {
63
+ var _this = this;
64
+ return new Promise(function(resolve) {
65
+ var context = {
66
+ event,
67
+ attempts: 0,
68
+ callback: function(result) {
69
+ return resolve(result);
70
+ },
71
+ timeout: 0
72
+ };
73
+ void _this.addToQueue(context);
74
+ });
75
+ };
76
+ Destination2.prototype.addToQueue = function() {
77
+ var _this = this;
78
+ var list = [];
79
+ for (var _i = 0; _i < arguments.length; _i++) {
80
+ list[_i] = arguments[_i];
81
+ }
82
+ var tryable = list.filter(function(context) {
83
+ if (context.attempts < _this.config.flushMaxRetries) {
84
+ context.attempts += 1;
85
+ return true;
86
+ }
87
+ void _this.fulfillRequest([context], 500, messages.MAX_RETRIES_EXCEEDED_MESSAGE);
88
+ return false;
89
+ });
90
+ tryable.forEach(function(context) {
91
+ _this.queue = _this.queue.concat(context);
92
+ if (context.timeout === 0) {
93
+ _this.schedule(_this.config.flushIntervalMillis);
94
+ return;
95
+ }
96
+ setTimeout(function() {
97
+ context.timeout = 0;
98
+ _this.schedule(0);
99
+ }, context.timeout);
100
+ });
101
+ this.saveEvents();
102
+ };
103
+ Destination2.prototype.schedule = function(timeout) {
104
+ var _this = this;
105
+ if (this.scheduled)
106
+ return;
107
+ this.scheduled = setTimeout(function() {
108
+ void _this.flush(true).then(function() {
109
+ if (_this.queue.length > 0) {
110
+ _this.schedule(timeout);
111
+ }
112
+ });
113
+ }, timeout);
114
+ };
115
+ Destination2.prototype.flush = function(useRetry) {
116
+ if (useRetry === void 0) {
117
+ useRetry = false;
118
+ }
119
+ return tslib_es6.__awaiter(this, void 0, void 0, function() {
120
+ var list, later, batches;
121
+ var _this = this;
122
+ return tslib_es6.__generator(this, function(_a) {
123
+ switch (_a.label) {
124
+ case 0:
125
+ list = [];
126
+ later = [];
127
+ this.queue.forEach(function(context) {
128
+ return context.timeout === 0 ? list.push(context) : later.push(context);
129
+ });
130
+ this.queue = later;
131
+ if (this.scheduled) {
132
+ clearTimeout(this.scheduled);
133
+ this.scheduled = null;
134
+ }
135
+ batches = chunk.chunk(list, this.config.flushQueueSize);
136
+ return [4, Promise.all(batches.map(function(batch) {
137
+ return _this.send(batch, useRetry);
138
+ }))];
139
+ case 1:
140
+ _a.sent();
141
+ return [
142
+ 2
143
+ /*return*/
144
+ ];
145
+ }
146
+ });
147
+ });
148
+ };
149
+ Destination2.prototype.send = function(list, useRetry) {
150
+ if (useRetry === void 0) {
151
+ useRetry = true;
152
+ }
153
+ return tslib_es6.__awaiter(this, void 0, void 0, function() {
154
+ var payload, serverUrl, res, e_1, errorMessage;
155
+ return tslib_es6.__generator(this, function(_a) {
156
+ switch (_a.label) {
157
+ case 0:
158
+ if (!this.config.apiKey) {
159
+ return [2, this.fulfillRequest(list, 400, messages.MISSING_API_KEY_MESSAGE)];
160
+ }
161
+ payload = {
162
+ api_key: this.config.apiKey,
163
+ events: list.map(function(context) {
164
+ var _a2 = context.event;
165
+ _a2.extra;
166
+ var eventWithoutExtra = tslib_es6.__rest(_a2, ["extra"]);
167
+ return eventWithoutExtra;
168
+ }),
169
+ options: {
170
+ min_id_length: this.config.minIdLength
171
+ }
172
+ };
173
+ _a.label = 1;
174
+ case 1:
175
+ _a.trys.push([1, 3, , 4]);
176
+ serverUrl = config.createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch).serverUrl;
177
+ return [4, this.config.transportProvider.send(serverUrl, payload)];
178
+ case 2:
179
+ res = _a.sent();
180
+ if (res === null) {
181
+ this.fulfillRequest(list, 0, messages.UNEXPECTED_ERROR_MESSAGE);
182
+ return [
183
+ 2
184
+ /*return*/
185
+ ];
186
+ }
187
+ if (!useRetry) {
188
+ if ("body" in res) {
189
+ this.fulfillRequest(list, res.statusCode, "".concat(res.status, ": ").concat(getResponseBodyString(res)));
190
+ } else {
191
+ this.fulfillRequest(list, res.statusCode, res.status);
192
+ }
193
+ return [
194
+ 2
195
+ /*return*/
196
+ ];
197
+ }
198
+ this.handleResponse(res, list);
199
+ return [3, 4];
200
+ case 3:
201
+ e_1 = _a.sent();
202
+ this.config.loggerProvider.error(e_1);
203
+ errorMessage = getErrorMessage(e_1);
204
+ this.fulfillRequest(list, 0, errorMessage);
205
+ return [3, 4];
206
+ case 4:
207
+ return [
208
+ 2
209
+ /*return*/
210
+ ];
211
+ }
212
+ });
213
+ });
214
+ };
215
+ Destination2.prototype.handleResponse = function(res, list) {
216
+ var status$1 = res.status;
217
+ switch (status$1) {
218
+ case status.Status.Success: {
219
+ this.handleSuccessResponse(res, list);
220
+ break;
221
+ }
222
+ case status.Status.Invalid: {
223
+ this.handleInvalidResponse(res, list);
224
+ break;
225
+ }
226
+ case status.Status.PayloadTooLarge: {
227
+ this.handlePayloadTooLargeResponse(res, list);
228
+ break;
229
+ }
230
+ case status.Status.RateLimit: {
231
+ this.handleRateLimitResponse(res, list);
232
+ break;
233
+ }
234
+ default: {
235
+ this.config.loggerProvider.warn(`{code: 0, error: "Status '`.concat(status$1, "' provided for ").concat(list.length, ' events"}'));
236
+ this.handleOtherResponse(list);
237
+ break;
238
+ }
239
+ }
240
+ };
241
+ Destination2.prototype.handleSuccessResponse = function(res, list) {
242
+ this.fulfillRequest(list, res.statusCode, messages.SUCCESS_MESSAGE);
243
+ };
244
+ Destination2.prototype.handleInvalidResponse = function(res, list) {
245
+ var _this = this;
246
+ if (res.body.missingField || res.body.error.startsWith(messages.INVALID_API_KEY)) {
247
+ this.fulfillRequest(list, res.statusCode, res.body.error);
248
+ return;
249
+ }
250
+ var dropIndex = tslib_es6.__spreadArray(tslib_es6.__spreadArray(tslib_es6.__spreadArray(tslib_es6.__spreadArray([], tslib_es6.__read(Object.values(res.body.eventsWithInvalidFields)), false), tslib_es6.__read(Object.values(res.body.eventsWithMissingFields)), false), tslib_es6.__read(Object.values(res.body.eventsWithInvalidIdLengths)), false), tslib_es6.__read(res.body.silencedEvents), false).flat();
251
+ var dropIndexSet = new Set(dropIndex);
252
+ var retry = list.filter(function(context, index) {
253
+ if (dropIndexSet.has(index)) {
254
+ _this.fulfillRequest([context], res.statusCode, res.body.error);
255
+ return;
256
+ }
257
+ return true;
258
+ });
259
+ if (retry.length > 0) {
260
+ this.config.loggerProvider.warn(getResponseBodyString(res));
261
+ }
262
+ this.addToQueue.apply(this, tslib_es6.__spreadArray([], tslib_es6.__read(retry), false));
263
+ };
264
+ Destination2.prototype.handlePayloadTooLargeResponse = function(res, list) {
265
+ if (list.length === 1) {
266
+ this.fulfillRequest(list, res.statusCode, res.body.error);
267
+ return;
268
+ }
269
+ this.config.loggerProvider.warn(getResponseBodyString(res));
270
+ this.config.flushQueueSize /= 2;
271
+ this.addToQueue.apply(this, tslib_es6.__spreadArray([], tslib_es6.__read(list), false));
272
+ };
273
+ Destination2.prototype.handleRateLimitResponse = function(res, list) {
274
+ var _this = this;
275
+ var dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);
276
+ var dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);
277
+ var throttledIndex = res.body.throttledEvents;
278
+ var dropUserIdsSet = new Set(dropUserIds);
279
+ var dropDeviceIdsSet = new Set(dropDeviceIds);
280
+ var throttledIndexSet = new Set(throttledIndex);
281
+ var retry = list.filter(function(context, index) {
282
+ if (context.event.user_id && dropUserIdsSet.has(context.event.user_id) || context.event.device_id && dropDeviceIdsSet.has(context.event.device_id)) {
283
+ _this.fulfillRequest([context], res.statusCode, res.body.error);
284
+ return;
285
+ }
286
+ if (throttledIndexSet.has(index)) {
287
+ context.timeout = _this.throttleTimeout;
288
+ }
289
+ return true;
290
+ });
291
+ if (retry.length > 0) {
292
+ this.config.loggerProvider.warn(getResponseBodyString(res));
293
+ }
294
+ this.addToQueue.apply(this, tslib_es6.__spreadArray([], tslib_es6.__read(retry), false));
295
+ };
296
+ Destination2.prototype.handleOtherResponse = function(list) {
297
+ var _this = this;
298
+ this.addToQueue.apply(this, tslib_es6.__spreadArray([], tslib_es6.__read(list.map(function(context) {
299
+ context.timeout = context.attempts * _this.retryTimeout;
300
+ return context;
301
+ })), false));
302
+ };
303
+ Destination2.prototype.fulfillRequest = function(list, code, message) {
304
+ this.saveEvents();
305
+ list.forEach(function(context) {
306
+ return context.callback(resultBuilder.buildResult(context.event, code, message));
307
+ });
308
+ };
309
+ Destination2.prototype.saveEvents = function() {
310
+ if (!this.config.storageProvider) {
311
+ return;
312
+ }
313
+ var events = Array.from(this.queue.map(function(context) {
314
+ return context.event;
315
+ }));
316
+ void this.config.storageProvider.set(this.storageKey, events);
317
+ };
318
+ return Destination2;
319
+ }()
320
+ );
321
+ exports.Destination = Destination;
322
+ exports.getResponseBodyString = getResponseBodyString;
323
+ //# sourceMappingURL=destination.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination.cjs","sources":["../../../../../../../../../node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js"],"sourcesContent":["import { __awaiter, __generator, __read, __rest, __spreadArray } from \"tslib\";\nimport { PluginType, Status, } from '@amplitude/analytics-types';\nimport { INVALID_API_KEY, MAX_RETRIES_EXCEEDED_MESSAGE, MISSING_API_KEY_MESSAGE, SUCCESS_MESSAGE, UNEXPECTED_ERROR_MESSAGE, } from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig } from '../config';\nfunction getErrorMessage(error) {\n if (error instanceof Error)\n return error.message;\n return String(error);\n}\nexport function getResponseBodyString(res) {\n var responseBodyString = '';\n try {\n if ('body' in res) {\n responseBodyString = JSON.stringify(res.body);\n }\n }\n catch (_a) {\n // to avoid crash, but don't care about the error, add comment to avoid empty block lint error\n }\n return responseBodyString;\n}\nvar Destination = /** @class */ (function () {\n function Destination() {\n this.name = 'amplitude';\n this.type = PluginType.DESTINATION;\n this.retryTimeout = 1000;\n this.throttleTimeout = 30000;\n this.storageKey = '';\n this.scheduled = null;\n this.queue = [];\n }\n Destination.prototype.setup = function (config) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var unsent;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.config = config;\n this.storageKey = \"\".concat(STORAGE_PREFIX, \"_\").concat(this.config.apiKey.substring(0, 10));\n return [4 /*yield*/, ((_a = this.config.storageProvider) === null || _a === void 0 ? void 0 : _a.get(this.storageKey))];\n case 1:\n unsent = _b.sent();\n this.saveEvents(); // sets storage to '[]'\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map(function (event) { return _this.execute(event); })).catch();\n }\n return [2 /*return*/, Promise.resolve(undefined)];\n }\n });\n });\n };\n Destination.prototype.execute = function (event) {\n var _this = this;\n return new Promise(function (resolve) {\n var context = {\n event: event,\n attempts: 0,\n callback: function (result) { return resolve(result); },\n timeout: 0,\n };\n void _this.addToQueue(context);\n });\n };\n Destination.prototype.addToQueue = function () {\n var _this = this;\n var list = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n list[_i] = arguments[_i];\n }\n var tryable = list.filter(function (context) {\n if (context.attempts < _this.config.flushMaxRetries) {\n context.attempts += 1;\n return true;\n }\n void _this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n tryable.forEach(function (context) {\n _this.queue = _this.queue.concat(context);\n if (context.timeout === 0) {\n _this.schedule(_this.config.flushIntervalMillis);\n return;\n }\n setTimeout(function () {\n context.timeout = 0;\n _this.schedule(0);\n }, context.timeout);\n });\n this.saveEvents();\n };\n Destination.prototype.schedule = function (timeout) {\n var _this = this;\n if (this.scheduled)\n return;\n this.scheduled = setTimeout(function () {\n void _this.flush(true).then(function () {\n if (_this.queue.length > 0) {\n _this.schedule(timeout);\n }\n });\n }, timeout);\n };\n Destination.prototype.flush = function (useRetry) {\n if (useRetry === void 0) { useRetry = false; }\n return __awaiter(this, void 0, void 0, function () {\n var list, later, batches;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n list = [];\n later = [];\n this.queue.forEach(function (context) { return (context.timeout === 0 ? list.push(context) : later.push(context)); });\n this.queue = later;\n if (this.scheduled) {\n clearTimeout(this.scheduled);\n this.scheduled = null;\n }\n batches = chunk(list, this.config.flushQueueSize);\n return [4 /*yield*/, Promise.all(batches.map(function (batch) { return _this.send(batch, useRetry); }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n Destination.prototype.send = function (list, useRetry) {\n if (useRetry === void 0) { useRetry = true; }\n return __awaiter(this, void 0, void 0, function () {\n var payload, serverUrl, res, e_1, errorMessage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.config.apiKey) {\n return [2 /*return*/, this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE)];\n }\n payload = {\n api_key: this.config.apiKey,\n events: list.map(function (context) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _a = context.event, extra = _a.extra, eventWithoutExtra = __rest(_a, [\"extra\"]);\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n };\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n serverUrl = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch).serverUrl;\n return [4 /*yield*/, this.config.transportProvider.send(serverUrl, payload)];\n case 2:\n res = _a.sent();\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return [2 /*return*/];\n }\n if (!useRetry) {\n if ('body' in res) {\n this.fulfillRequest(list, res.statusCode, \"\".concat(res.status, \": \").concat(getResponseBodyString(res)));\n }\n else {\n this.fulfillRequest(list, res.statusCode, res.status);\n }\n return [2 /*return*/];\n }\n this.handleResponse(res, list);\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n this.config.loggerProvider.error(e_1);\n errorMessage = getErrorMessage(e_1);\n this.fulfillRequest(list, 0, errorMessage);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n Destination.prototype.handleResponse = function (res, list) {\n var status = res.status;\n switch (status) {\n case Status.Success: {\n this.handleSuccessResponse(res, list);\n break;\n }\n case Status.Invalid: {\n this.handleInvalidResponse(res, list);\n break;\n }\n case Status.PayloadTooLarge: {\n this.handlePayloadTooLargeResponse(res, list);\n break;\n }\n case Status.RateLimit: {\n this.handleRateLimitResponse(res, list);\n break;\n }\n default: {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(\"{code: 0, error: \\\"Status '\".concat(status, \"' provided for \").concat(list.length, \" events\\\"}\"));\n this.handleOtherResponse(list);\n break;\n }\n }\n };\n Destination.prototype.handleSuccessResponse = function (res, list) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n };\n Destination.prototype.handleInvalidResponse = function (res, list) {\n var _this = this;\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n var dropIndex = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(Object.values(res.body.eventsWithInvalidFields)), false), __read(Object.values(res.body.eventsWithMissingFields)), false), __read(Object.values(res.body.eventsWithInvalidIdLengths)), false), __read(res.body.silencedEvents), false).flat();\n var dropIndexSet = new Set(dropIndex);\n var retry = list.filter(function (context, index) {\n if (dropIndexSet.has(index)) {\n _this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n this.addToQueue.apply(this, __spreadArray([], __read(retry), false));\n };\n Destination.prototype.handlePayloadTooLargeResponse = function (res, list) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n this.config.flushQueueSize /= 2;\n this.addToQueue.apply(this, __spreadArray([], __read(list), false));\n };\n Destination.prototype.handleRateLimitResponse = function (res, list) {\n var _this = this;\n var dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n var dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n var throttledIndex = res.body.throttledEvents;\n var dropUserIdsSet = new Set(dropUserIds);\n var dropDeviceIdsSet = new Set(dropDeviceIds);\n var throttledIndexSet = new Set(throttledIndex);\n var retry = list.filter(function (context, index) {\n if ((context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))) {\n _this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = _this.throttleTimeout;\n }\n return true;\n });\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n this.addToQueue.apply(this, __spreadArray([], __read(retry), false));\n };\n Destination.prototype.handleOtherResponse = function (list) {\n var _this = this;\n this.addToQueue.apply(this, __spreadArray([], __read(list.map(function (context) {\n context.timeout = context.attempts * _this.retryTimeout;\n return context;\n })), false));\n };\n Destination.prototype.fulfillRequest = function (list, code, message) {\n this.saveEvents();\n list.forEach(function (context) { return context.callback(buildResult(context.event, code, message)); });\n };\n /**\n * Saves events to storage\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n */\n Destination.prototype.saveEvents = function () {\n if (!this.config.storageProvider) {\n return;\n }\n var events = Array.from(this.queue.map(function (context) { return context.event; }));\n void this.config.storageProvider.set(this.storageKey, events);\n };\n return Destination;\n}());\nexport { Destination };\n//# sourceMappingURL=destination.js.map"],"names":["Destination","PluginType","config","__awaiter","__generator","STORAGE_PREFIX","MAX_RETRIES_EXCEEDED_MESSAGE","chunk","MISSING_API_KEY_MESSAGE","_a","__rest","createServerConfig","UNEXPECTED_ERROR_MESSAGE","status","Status","SUCCESS_MESSAGE","INVALID_API_KEY","__spreadArray","__read","buildResult"],"mappings":";;;;;;;;;;AAOA,SAAS,gBAAgB,OAAO;AAC5B,MAAI,iBAAiB;AACjB,WAAO,MAAM;AACjB,SAAO,OAAO,KAAK;AACvB;AACO,SAAS,sBAAsB,KAAK;AACvC,MAAI,qBAAqB;AACzB,MAAI;AACA,QAAI,UAAU,KAAK;AACf,2BAAqB,KAAK,UAAU,IAAI,IAAI;AAAA,IAC/C;AAAA,EACJ,SACM,IAAP;AAAA,EAEC;AACD,SAAO;AACX;AACG,IAAC;AAAA;AAAA,EAA6B,WAAY;AACzC,aAASA,eAAc;AACnB,WAAK,OAAO;AACZ,WAAK,OAAOC,OAAU,WAAC;AACvB,WAAK,eAAe;AACpB,WAAK,kBAAkB;AACvB,WAAK,aAAa;AAClB,WAAK,YAAY;AACjB,WAAK,QAAQ;IAChB;AACD,IAAAD,aAAY,UAAU,QAAQ,SAAUE,SAAQ;AAC5C,UAAI;AACJ,aAAOC,UAAS,UAAC,MAAM,QAAQ,QAAQ,WAAY;AAC/C,YAAI;AACJ,YAAI,QAAQ;AACZ,eAAOC,UAAW,YAAC,MAAM,SAAU,IAAI;AACnC,kBAAQ,GAAG,OAAK;AAAA,YACZ,KAAK;AACD,mBAAK,SAASF;AACd,mBAAK,aAAa,GAAG,OAAOG,UAAc,gBAAE,GAAG,EAAE,OAAO,KAAK,OAAO,OAAO,UAAU,GAAG,EAAE,CAAC;AAC3F,qBAAO,CAAC,IAAe,KAAK,KAAK,OAAO,qBAAqB,QAAQ,OAAO,SAAS,SAAS,GAAG,IAAI,KAAK,UAAU;YACxH,KAAK;AACD,uBAAS,GAAG;AACZ,mBAAK,WAAU;AACf,kBAAI,UAAU,OAAO,SAAS,GAAG;AAC7B,qBAAK,QAAQ,IAAI,OAAO,IAAI,SAAU,OAAO;AAAE,yBAAO,MAAM,QAAQ,KAAK;AAAA,gBAAI,CAAA,CAAC,EAAE,MAAK;AAAA,cACxF;AACD,qBAAO,CAAC,GAAc,QAAQ,QAAQ,MAAS,CAAC;AAAA,UACvD;AAAA,QACjB,CAAa;AAAA,MACb,CAAS;AAAA,IACT;AACI,IAAAL,aAAY,UAAU,UAAU,SAAU,OAAO;AAC7C,UAAI,QAAQ;AACZ,aAAO,IAAI,QAAQ,SAAU,SAAS;AAClC,YAAI,UAAU;AAAA,UACV;AAAA,UACA,UAAU;AAAA,UACV,UAAU,SAAU,QAAQ;AAAE,mBAAO,QAAQ,MAAM;AAAA,UAAI;AAAA,UACvD,SAAS;AAAA,QACzB;AACY,aAAK,MAAM,WAAW,OAAO;AAAA,MACzC,CAAS;AAAA,IACT;AACI,IAAAA,aAAY,UAAU,aAAa,WAAY;AAC3C,UAAI,QAAQ;AACZ,UAAI,OAAO,CAAA;AACX,eAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC1C,aAAK,EAAE,IAAI,UAAU,EAAE;AAAA,MAC1B;AACD,UAAI,UAAU,KAAK,OAAO,SAAU,SAAS;AACzC,YAAI,QAAQ,WAAW,MAAM,OAAO,iBAAiB;AACjD,kBAAQ,YAAY;AACpB,iBAAO;AAAA,QACV;AACD,aAAK,MAAM,eAAe,CAAC,OAAO,GAAG,KAAKM,SAAAA,4BAA4B;AACtE,eAAO;AAAA,MACnB,CAAS;AACD,cAAQ,QAAQ,SAAU,SAAS;AAC/B,cAAM,QAAQ,MAAM,MAAM,OAAO,OAAO;AACxC,YAAI,QAAQ,YAAY,GAAG;AACvB,gBAAM,SAAS,MAAM,OAAO,mBAAmB;AAC/C;AAAA,QACH;AACD,mBAAW,WAAY;AACnB,kBAAQ,UAAU;AAClB,gBAAM,SAAS,CAAC;AAAA,QAChC,GAAe,QAAQ,OAAO;AAAA,MAC9B,CAAS;AACD,WAAK,WAAU;AAAA,IACvB;AACI,IAAAN,aAAY,UAAU,WAAW,SAAU,SAAS;AAChD,UAAI,QAAQ;AACZ,UAAI,KAAK;AACL;AACJ,WAAK,YAAY,WAAW,WAAY;AACpC,aAAK,MAAM,MAAM,IAAI,EAAE,KAAK,WAAY;AACpC,cAAI,MAAM,MAAM,SAAS,GAAG;AACxB,kBAAM,SAAS,OAAO;AAAA,UACzB;AAAA,QACjB,CAAa;AAAA,MACJ,GAAE,OAAO;AAAA,IAClB;AACI,IAAAA,aAAY,UAAU,QAAQ,SAAU,UAAU;AAC9C,UAAI,aAAa,QAAQ;AAAE,mBAAW;AAAA,MAAQ;AAC9C,aAAOG,UAAS,UAAC,MAAM,QAAQ,QAAQ,WAAY;AAC/C,YAAI,MAAM,OAAO;AACjB,YAAI,QAAQ;AACZ,eAAOC,UAAW,YAAC,MAAM,SAAU,IAAI;AACnC,kBAAQ,GAAG,OAAK;AAAA,YACZ,KAAK;AACD,qBAAO,CAAA;AACP,sBAAQ,CAAA;AACR,mBAAK,MAAM,QAAQ,SAAU,SAAS;AAAE,uBAAQ,QAAQ,YAAY,IAAI,KAAK,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO;AAAA,cAAG,CAAE;AACpH,mBAAK,QAAQ;AACb,kBAAI,KAAK,WAAW;AAChB,6BAAa,KAAK,SAAS;AAC3B,qBAAK,YAAY;AAAA,cACpB;AACD,wBAAUG,MAAK,MAAC,MAAM,KAAK,OAAO,cAAc;AAChD,qBAAO,CAAC,GAAa,QAAQ,IAAI,QAAQ,IAAI,SAAU,OAAO;AAAE,uBAAO,MAAM,KAAK,OAAO,QAAQ;AAAA,cAAE,CAAE,CAAC,CAAC;AAAA,YAC3G,KAAK;AACD,iBAAG,KAAI;AACP,qBAAO;AAAA,gBAAC;AAAA;AAAA,cAAC;AAAA,UAChB;AAAA,QACjB,CAAa;AAAA,MACb,CAAS;AAAA,IACT;AACI,IAAAP,aAAY,UAAU,OAAO,SAAU,MAAM,UAAU;AACnD,UAAI,aAAa,QAAQ;AAAE,mBAAW;AAAA,MAAO;AAC7C,aAAOG,UAAS,UAAC,MAAM,QAAQ,QAAQ,WAAY;AAC/C,YAAI,SAAS,WAAW,KAAK,KAAK;AAClC,eAAOC,UAAW,YAAC,MAAM,SAAU,IAAI;AACnC,kBAAQ,GAAG,OAAK;AAAA,YACZ,KAAK;AACD,kBAAI,CAAC,KAAK,OAAO,QAAQ;AACrB,uBAAO,CAAC,GAAc,KAAK,eAAe,MAAM,KAAKI,SAAuB,uBAAA,CAAC;AAAA,cAChF;AACD,wBAAU;AAAA,gBACN,SAAS,KAAK,OAAO;AAAA,gBACrB,QAAQ,KAAK,IAAI,SAAU,SAAS;AAE7B,sBAACC,MAAK,QAAQ;AAAe,kBAAAA,IAAG;AAAO,sBAAA,oBAAoBC,UAAM,OAACD,KAAI,CAAC,OAAO,CAAC;AAClF,yBAAO;AAAA,gBACvC,CAA6B;AAAA,gBACD,SAAS;AAAA,kBACL,eAAe,KAAK,OAAO;AAAA,gBAC9B;AAAA,cAC7B;AACwB,iBAAG,QAAQ;AAAA,YACf,KAAK;AACD,iBAAG,KAAK,KAAK,CAAC,GAAG,GAAC,EAAI,CAAC,CAAC;AACxB,0BAAYE,OAAAA,mBAAmB,KAAK,OAAO,WAAW,KAAK,OAAO,YAAY,KAAK,OAAO,QAAQ,EAAE;AACpG,qBAAO,CAAC,GAAa,KAAK,OAAO,kBAAkB,KAAK,WAAW,OAAO,CAAC;AAAA,YAC/E,KAAK;AACD,oBAAM,GAAG;AACT,kBAAI,QAAQ,MAAM;AACd,qBAAK,eAAe,MAAM,GAAGC,SAAwB,wBAAA;AACrD,uBAAO;AAAA,kBAAC;AAAA;AAAA,gBAAC;AAAA,cACZ;AACD,kBAAI,CAAC,UAAU;AACX,oBAAI,UAAU,KAAK;AACf,uBAAK,eAAe,MAAM,IAAI,YAAY,GAAG,OAAO,IAAI,QAAQ,IAAI,EAAE,OAAO,sBAAsB,GAAG,CAAC,CAAC;AAAA,gBAC3G,OACI;AACD,uBAAK,eAAe,MAAM,IAAI,YAAY,IAAI,MAAM;AAAA,gBACvD;AACD,uBAAO;AAAA,kBAAC;AAAA;AAAA,gBAAC;AAAA,cACZ;AACD,mBAAK,eAAe,KAAK,IAAI;AAC7B,qBAAO,CAAC,GAAa,CAAC;AAAA,YAC1B,KAAK;AACD,oBAAM,GAAG;AACT,mBAAK,OAAO,eAAe,MAAM,GAAG;AACpC,6BAAe,gBAAgB,GAAG;AAClC,mBAAK,eAAe,MAAM,GAAG,YAAY;AACzC,qBAAO,CAAC,GAAa,CAAC;AAAA,YAC1B,KAAK;AAAG,qBAAO;AAAA,gBAAC;AAAA;AAAA;UACnB;AAAA,QACjB,CAAa;AAAA,MACb,CAAS;AAAA,IACT;AACI,IAAAZ,aAAY,UAAU,iBAAiB,SAAU,KAAK,MAAM;AACxD,UAAIa,WAAS,IAAI;AACjB,cAAQA,UAAM;AAAA,QACV,KAAKC,OAAAA,OAAO,SAAS;AACjB,eAAK,sBAAsB,KAAK,IAAI;AACpC;AAAA,QACH;AAAA,QACD,KAAKA,OAAAA,OAAO,SAAS;AACjB,eAAK,sBAAsB,KAAK,IAAI;AACpC;AAAA,QACH;AAAA,QACD,KAAKA,OAAAA,OAAO,iBAAiB;AACzB,eAAK,8BAA8B,KAAK,IAAI;AAC5C;AAAA,QACH;AAAA,QACD,KAAKA,OAAAA,OAAO,WAAW;AACnB,eAAK,wBAAwB,KAAK,IAAI;AACtC;AAAA,QACH;AAAA,QACD,SAAS;AAEL,eAAK,OAAO,eAAe,KAAK,6BAA8B,OAAOD,UAAQ,iBAAiB,EAAE,OAAO,KAAK,QAAQ,WAAY,CAAC;AACjI,eAAK,oBAAoB,IAAI;AAC7B;AAAA,QACH;AAAA,MACJ;AAAA,IACT;AACI,IAAAb,aAAY,UAAU,wBAAwB,SAAU,KAAK,MAAM;AAC/D,WAAK,eAAe,MAAM,IAAI,YAAYe,SAAe,eAAA;AAAA,IACjE;AACI,IAAAf,aAAY,UAAU,wBAAwB,SAAU,KAAK,MAAM;AAC/D,UAAI,QAAQ;AACZ,UAAI,IAAI,KAAK,gBAAgB,IAAI,KAAK,MAAM,WAAWgB,SAAAA,eAAe,GAAG;AACrE,aAAK,eAAe,MAAM,IAAI,YAAY,IAAI,KAAK,KAAK;AACxD;AAAA,MACH;AACD,UAAI,YAAYC,UAAa,cAACA,wBAAcA,UAAAA,cAAcA,UAAAA,cAAc,CAAE,GAAEC,UAAM,OAAC,OAAO,OAAO,IAAI,KAAK,uBAAuB,CAAC,GAAG,KAAK,GAAGA,iBAAO,OAAO,OAAO,IAAI,KAAK,uBAAuB,CAAC,GAAG,KAAK,GAAGA,UAAM,OAAC,OAAO,OAAO,IAAI,KAAK,0BAA0B,CAAC,GAAG,KAAK,GAAGA,UAAM,OAAC,IAAI,KAAK,cAAc,GAAG,KAAK,EAAE;AAC1T,UAAI,eAAe,IAAI,IAAI,SAAS;AACpC,UAAI,QAAQ,KAAK,OAAO,SAAU,SAAS,OAAO;AAC9C,YAAI,aAAa,IAAI,KAAK,GAAG;AACzB,gBAAM,eAAe,CAAC,OAAO,GAAG,IAAI,YAAY,IAAI,KAAK,KAAK;AAC9D;AAAA,QACH;AACD,eAAO;AAAA,MACnB,CAAS;AACD,UAAI,MAAM,SAAS,GAAG;AAElB,aAAK,OAAO,eAAe,KAAK,sBAAsB,GAAG,CAAC;AAAA,MAC7D;AACD,WAAK,WAAW,MAAM,MAAMD,UAAa,cAAC,IAAIC,UAAAA,OAAO,KAAK,GAAG,KAAK,CAAC;AAAA,IAC3E;AACI,IAAAlB,aAAY,UAAU,gCAAgC,SAAU,KAAK,MAAM;AACvE,UAAI,KAAK,WAAW,GAAG;AACnB,aAAK,eAAe,MAAM,IAAI,YAAY,IAAI,KAAK,KAAK;AACxD;AAAA,MACH;AAED,WAAK,OAAO,eAAe,KAAK,sBAAsB,GAAG,CAAC;AAC1D,WAAK,OAAO,kBAAkB;AAC9B,WAAK,WAAW,MAAM,MAAMiB,UAAa,cAAC,IAAIC,UAAAA,OAAO,IAAI,GAAG,KAAK,CAAC;AAAA,IAC1E;AACI,IAAAlB,aAAY,UAAU,0BAA0B,SAAU,KAAK,MAAM;AACjE,UAAI,QAAQ;AACZ,UAAI,cAAc,OAAO,KAAK,IAAI,KAAK,uBAAuB;AAC9D,UAAI,gBAAgB,OAAO,KAAK,IAAI,KAAK,yBAAyB;AAClE,UAAI,iBAAiB,IAAI,KAAK;AAC9B,UAAI,iBAAiB,IAAI,IAAI,WAAW;AACxC,UAAI,mBAAmB,IAAI,IAAI,aAAa;AAC5C,UAAI,oBAAoB,IAAI,IAAI,cAAc;AAC9C,UAAI,QAAQ,KAAK,OAAO,SAAU,SAAS,OAAO;AAC9C,YAAK,QAAQ,MAAM,WAAW,eAAe,IAAI,QAAQ,MAAM,OAAO,KACjE,QAAQ,MAAM,aAAa,iBAAiB,IAAI,QAAQ,MAAM,SAAS,GAAI;AAC5E,gBAAM,eAAe,CAAC,OAAO,GAAG,IAAI,YAAY,IAAI,KAAK,KAAK;AAC9D;AAAA,QACH;AACD,YAAI,kBAAkB,IAAI,KAAK,GAAG;AAC9B,kBAAQ,UAAU,MAAM;AAAA,QAC3B;AACD,eAAO;AAAA,MACnB,CAAS;AACD,UAAI,MAAM,SAAS,GAAG;AAElB,aAAK,OAAO,eAAe,KAAK,sBAAsB,GAAG,CAAC;AAAA,MAC7D;AACD,WAAK,WAAW,MAAM,MAAMiB,UAAa,cAAC,IAAIC,UAAAA,OAAO,KAAK,GAAG,KAAK,CAAC;AAAA,IAC3E;AACI,IAAAlB,aAAY,UAAU,sBAAsB,SAAU,MAAM;AACxD,UAAI,QAAQ;AACZ,WAAK,WAAW,MAAM,MAAMiB,UAAa,cAAC,IAAIC,UAAAA,OAAO,KAAK,IAAI,SAAU,SAAS;AAC7E,gBAAQ,UAAU,QAAQ,WAAW,MAAM;AAC3C,eAAO;AAAA,MACnB,CAAS,CAAC,GAAG,KAAK,CAAC;AAAA,IACnB;AACI,IAAAlB,aAAY,UAAU,iBAAiB,SAAU,MAAM,MAAM,SAAS;AAClE,WAAK,WAAU;AACf,WAAK,QAAQ,SAAU,SAAS;AAAE,eAAO,QAAQ,SAASmB,cAAW,YAAC,QAAQ,OAAO,MAAM,OAAO,CAAC;AAAA,MAAI,CAAA;AAAA,IAC/G;AAOI,IAAAnB,aAAY,UAAU,aAAa,WAAY;AAC3C,UAAI,CAAC,KAAK,OAAO,iBAAiB;AAC9B;AAAA,MACH;AACD,UAAI,SAAS,MAAM,KAAK,KAAK,MAAM,IAAI,SAAU,SAAS;AAAE,eAAO,QAAQ;AAAA,MAAM,CAAE,CAAC;AACpF,WAAK,KAAK,OAAO,gBAAgB,IAAI,KAAK,YAAY,MAAM;AAAA,IACpE;AACI,WAAOA;AAAA,EACX,EAAG;AAAA;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,323 @@
1
+ import { __awaiter, __generator, __rest, __spreadArray, __read } from "../../../../../tslib/tslib.es6.js";
2
+ import { MAX_RETRIES_EXCEEDED_MESSAGE, UNEXPECTED_ERROR_MESSAGE, MISSING_API_KEY_MESSAGE, SUCCESS_MESSAGE, INVALID_API_KEY } from "../messages.js";
3
+ import { STORAGE_PREFIX } from "../constants.js";
4
+ import { chunk } from "../utils/chunk.js";
5
+ import { buildResult } from "../utils/result-builder.js";
6
+ import { createServerConfig } from "../config.js";
7
+ import { PluginType } from "../../../../analytics-types/lib/esm/plugin.js";
8
+ import { Status } from "../../../../analytics-types/lib/esm/status.js";
9
+ function getErrorMessage(error) {
10
+ if (error instanceof Error)
11
+ return error.message;
12
+ return String(error);
13
+ }
14
+ function getResponseBodyString(res) {
15
+ var responseBodyString = "";
16
+ try {
17
+ if ("body" in res) {
18
+ responseBodyString = JSON.stringify(res.body);
19
+ }
20
+ } catch (_a) {
21
+ }
22
+ return responseBodyString;
23
+ }
24
+ var Destination = (
25
+ /** @class */
26
+ function() {
27
+ function Destination2() {
28
+ this.name = "amplitude";
29
+ this.type = PluginType.DESTINATION;
30
+ this.retryTimeout = 1e3;
31
+ this.throttleTimeout = 3e4;
32
+ this.storageKey = "";
33
+ this.scheduled = null;
34
+ this.queue = [];
35
+ }
36
+ Destination2.prototype.setup = function(config) {
37
+ var _a;
38
+ return __awaiter(this, void 0, void 0, function() {
39
+ var unsent;
40
+ var _this = this;
41
+ return __generator(this, function(_b) {
42
+ switch (_b.label) {
43
+ case 0:
44
+ this.config = config;
45
+ this.storageKey = "".concat(STORAGE_PREFIX, "_").concat(this.config.apiKey.substring(0, 10));
46
+ return [4, (_a = this.config.storageProvider) === null || _a === void 0 ? void 0 : _a.get(this.storageKey)];
47
+ case 1:
48
+ unsent = _b.sent();
49
+ this.saveEvents();
50
+ if (unsent && unsent.length > 0) {
51
+ void Promise.all(unsent.map(function(event) {
52
+ return _this.execute(event);
53
+ })).catch();
54
+ }
55
+ return [2, Promise.resolve(void 0)];
56
+ }
57
+ });
58
+ });
59
+ };
60
+ Destination2.prototype.execute = function(event) {
61
+ var _this = this;
62
+ return new Promise(function(resolve) {
63
+ var context = {
64
+ event,
65
+ attempts: 0,
66
+ callback: function(result) {
67
+ return resolve(result);
68
+ },
69
+ timeout: 0
70
+ };
71
+ void _this.addToQueue(context);
72
+ });
73
+ };
74
+ Destination2.prototype.addToQueue = function() {
75
+ var _this = this;
76
+ var list = [];
77
+ for (var _i = 0; _i < arguments.length; _i++) {
78
+ list[_i] = arguments[_i];
79
+ }
80
+ var tryable = list.filter(function(context) {
81
+ if (context.attempts < _this.config.flushMaxRetries) {
82
+ context.attempts += 1;
83
+ return true;
84
+ }
85
+ void _this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);
86
+ return false;
87
+ });
88
+ tryable.forEach(function(context) {
89
+ _this.queue = _this.queue.concat(context);
90
+ if (context.timeout === 0) {
91
+ _this.schedule(_this.config.flushIntervalMillis);
92
+ return;
93
+ }
94
+ setTimeout(function() {
95
+ context.timeout = 0;
96
+ _this.schedule(0);
97
+ }, context.timeout);
98
+ });
99
+ this.saveEvents();
100
+ };
101
+ Destination2.prototype.schedule = function(timeout) {
102
+ var _this = this;
103
+ if (this.scheduled)
104
+ return;
105
+ this.scheduled = setTimeout(function() {
106
+ void _this.flush(true).then(function() {
107
+ if (_this.queue.length > 0) {
108
+ _this.schedule(timeout);
109
+ }
110
+ });
111
+ }, timeout);
112
+ };
113
+ Destination2.prototype.flush = function(useRetry) {
114
+ if (useRetry === void 0) {
115
+ useRetry = false;
116
+ }
117
+ return __awaiter(this, void 0, void 0, function() {
118
+ var list, later, batches;
119
+ var _this = this;
120
+ return __generator(this, function(_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ list = [];
124
+ later = [];
125
+ this.queue.forEach(function(context) {
126
+ return context.timeout === 0 ? list.push(context) : later.push(context);
127
+ });
128
+ this.queue = later;
129
+ if (this.scheduled) {
130
+ clearTimeout(this.scheduled);
131
+ this.scheduled = null;
132
+ }
133
+ batches = chunk(list, this.config.flushQueueSize);
134
+ return [4, Promise.all(batches.map(function(batch) {
135
+ return _this.send(batch, useRetry);
136
+ }))];
137
+ case 1:
138
+ _a.sent();
139
+ return [
140
+ 2
141
+ /*return*/
142
+ ];
143
+ }
144
+ });
145
+ });
146
+ };
147
+ Destination2.prototype.send = function(list, useRetry) {
148
+ if (useRetry === void 0) {
149
+ useRetry = true;
150
+ }
151
+ return __awaiter(this, void 0, void 0, function() {
152
+ var payload, serverUrl, res, e_1, errorMessage;
153
+ return __generator(this, function(_a) {
154
+ switch (_a.label) {
155
+ case 0:
156
+ if (!this.config.apiKey) {
157
+ return [2, this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE)];
158
+ }
159
+ payload = {
160
+ api_key: this.config.apiKey,
161
+ events: list.map(function(context) {
162
+ var _a2 = context.event;
163
+ _a2.extra;
164
+ var eventWithoutExtra = __rest(_a2, ["extra"]);
165
+ return eventWithoutExtra;
166
+ }),
167
+ options: {
168
+ min_id_length: this.config.minIdLength
169
+ }
170
+ };
171
+ _a.label = 1;
172
+ case 1:
173
+ _a.trys.push([1, 3, , 4]);
174
+ serverUrl = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch).serverUrl;
175
+ return [4, this.config.transportProvider.send(serverUrl, payload)];
176
+ case 2:
177
+ res = _a.sent();
178
+ if (res === null) {
179
+ this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);
180
+ return [
181
+ 2
182
+ /*return*/
183
+ ];
184
+ }
185
+ if (!useRetry) {
186
+ if ("body" in res) {
187
+ this.fulfillRequest(list, res.statusCode, "".concat(res.status, ": ").concat(getResponseBodyString(res)));
188
+ } else {
189
+ this.fulfillRequest(list, res.statusCode, res.status);
190
+ }
191
+ return [
192
+ 2
193
+ /*return*/
194
+ ];
195
+ }
196
+ this.handleResponse(res, list);
197
+ return [3, 4];
198
+ case 3:
199
+ e_1 = _a.sent();
200
+ this.config.loggerProvider.error(e_1);
201
+ errorMessage = getErrorMessage(e_1);
202
+ this.fulfillRequest(list, 0, errorMessage);
203
+ return [3, 4];
204
+ case 4:
205
+ return [
206
+ 2
207
+ /*return*/
208
+ ];
209
+ }
210
+ });
211
+ });
212
+ };
213
+ Destination2.prototype.handleResponse = function(res, list) {
214
+ var status = res.status;
215
+ switch (status) {
216
+ case Status.Success: {
217
+ this.handleSuccessResponse(res, list);
218
+ break;
219
+ }
220
+ case Status.Invalid: {
221
+ this.handleInvalidResponse(res, list);
222
+ break;
223
+ }
224
+ case Status.PayloadTooLarge: {
225
+ this.handlePayloadTooLargeResponse(res, list);
226
+ break;
227
+ }
228
+ case Status.RateLimit: {
229
+ this.handleRateLimitResponse(res, list);
230
+ break;
231
+ }
232
+ default: {
233
+ this.config.loggerProvider.warn(`{code: 0, error: "Status '`.concat(status, "' provided for ").concat(list.length, ' events"}'));
234
+ this.handleOtherResponse(list);
235
+ break;
236
+ }
237
+ }
238
+ };
239
+ Destination2.prototype.handleSuccessResponse = function(res, list) {
240
+ this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);
241
+ };
242
+ Destination2.prototype.handleInvalidResponse = function(res, list) {
243
+ var _this = this;
244
+ if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {
245
+ this.fulfillRequest(list, res.statusCode, res.body.error);
246
+ return;
247
+ }
248
+ var dropIndex = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(Object.values(res.body.eventsWithInvalidFields)), false), __read(Object.values(res.body.eventsWithMissingFields)), false), __read(Object.values(res.body.eventsWithInvalidIdLengths)), false), __read(res.body.silencedEvents), false).flat();
249
+ var dropIndexSet = new Set(dropIndex);
250
+ var retry = list.filter(function(context, index) {
251
+ if (dropIndexSet.has(index)) {
252
+ _this.fulfillRequest([context], res.statusCode, res.body.error);
253
+ return;
254
+ }
255
+ return true;
256
+ });
257
+ if (retry.length > 0) {
258
+ this.config.loggerProvider.warn(getResponseBodyString(res));
259
+ }
260
+ this.addToQueue.apply(this, __spreadArray([], __read(retry), false));
261
+ };
262
+ Destination2.prototype.handlePayloadTooLargeResponse = function(res, list) {
263
+ if (list.length === 1) {
264
+ this.fulfillRequest(list, res.statusCode, res.body.error);
265
+ return;
266
+ }
267
+ this.config.loggerProvider.warn(getResponseBodyString(res));
268
+ this.config.flushQueueSize /= 2;
269
+ this.addToQueue.apply(this, __spreadArray([], __read(list), false));
270
+ };
271
+ Destination2.prototype.handleRateLimitResponse = function(res, list) {
272
+ var _this = this;
273
+ var dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);
274
+ var dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);
275
+ var throttledIndex = res.body.throttledEvents;
276
+ var dropUserIdsSet = new Set(dropUserIds);
277
+ var dropDeviceIdsSet = new Set(dropDeviceIds);
278
+ var throttledIndexSet = new Set(throttledIndex);
279
+ var retry = list.filter(function(context, index) {
280
+ if (context.event.user_id && dropUserIdsSet.has(context.event.user_id) || context.event.device_id && dropDeviceIdsSet.has(context.event.device_id)) {
281
+ _this.fulfillRequest([context], res.statusCode, res.body.error);
282
+ return;
283
+ }
284
+ if (throttledIndexSet.has(index)) {
285
+ context.timeout = _this.throttleTimeout;
286
+ }
287
+ return true;
288
+ });
289
+ if (retry.length > 0) {
290
+ this.config.loggerProvider.warn(getResponseBodyString(res));
291
+ }
292
+ this.addToQueue.apply(this, __spreadArray([], __read(retry), false));
293
+ };
294
+ Destination2.prototype.handleOtherResponse = function(list) {
295
+ var _this = this;
296
+ this.addToQueue.apply(this, __spreadArray([], __read(list.map(function(context) {
297
+ context.timeout = context.attempts * _this.retryTimeout;
298
+ return context;
299
+ })), false));
300
+ };
301
+ Destination2.prototype.fulfillRequest = function(list, code, message) {
302
+ this.saveEvents();
303
+ list.forEach(function(context) {
304
+ return context.callback(buildResult(context.event, code, message));
305
+ });
306
+ };
307
+ Destination2.prototype.saveEvents = function() {
308
+ if (!this.config.storageProvider) {
309
+ return;
310
+ }
311
+ var events = Array.from(this.queue.map(function(context) {
312
+ return context.event;
313
+ }));
314
+ void this.config.storageProvider.set(this.storageKey, events);
315
+ };
316
+ return Destination2;
317
+ }()
318
+ );
319
+ export {
320
+ Destination,
321
+ getResponseBodyString
322
+ };
323
+ //# sourceMappingURL=destination.js.map