@openobserve/browser-core 0.2.11-rc1 → 0.2.12-beta.1

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 (626) hide show
  1. package/package.json +6 -5
  2. package/src/boot/displayAlreadyInitializedError.ts +8 -0
  3. package/src/boot/init.ts +29 -15
  4. package/src/browser/addEventListener.ts +13 -10
  5. package/src/browser/{types.ts → browser.types.ts} +42 -0
  6. package/src/browser/cookie.ts +49 -14
  7. package/src/browser/fetchObservable.ts +80 -21
  8. package/src/browser/{pageExitObservable.ts → pageMayExitObservable.ts} +11 -22
  9. package/src/browser/runOnReadyState.ts +14 -4
  10. package/src/browser/xhrObservable.ts +17 -4
  11. package/src/domain/allowedTrackingOrigins.ts +30 -0
  12. package/src/domain/bufferedData.ts +32 -0
  13. package/src/domain/configuration/configuration.ts +352 -83
  14. package/src/domain/configuration/endpointBuilder.ts +29 -32
  15. package/src/domain/configuration/index.ts +6 -5
  16. package/src/domain/configuration/transportConfiguration.ts +42 -35
  17. package/src/domain/connectivity/connectivity.ts +5 -1
  18. package/src/domain/console/consoleObservable.ts +57 -21
  19. package/src/domain/context/contextConstants.ts +22 -0
  20. package/src/domain/context/contextManager.ts +48 -11
  21. package/src/domain/context/contextUtils.ts +14 -0
  22. package/src/domain/context/defineContextMethod.ts +31 -0
  23. package/src/domain/context/storeContextManager.ts +7 -3
  24. package/src/domain/contexts/accountContext.ts +47 -0
  25. package/src/domain/contexts/globalContext.ts +30 -0
  26. package/src/domain/contexts/rumInternalContext.type.ts +15 -0
  27. package/src/domain/contexts/userContext.ts +64 -0
  28. package/src/domain/deflate/{types.ts → deflate.types.ts} +6 -4
  29. package/src/domain/deflate/index.ts +1 -1
  30. package/src/domain/error/error.ts +28 -84
  31. package/src/domain/error/error.types.ts +10 -2
  32. package/src/domain/error/trackRuntimeError.ts +29 -32
  33. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +5 -2
  34. package/src/domain/extension/extensionUtils.ts +28 -0
  35. package/src/domain/intakeSites.ts +18 -0
  36. package/src/domain/report/reportObservable.ts +35 -30
  37. package/src/domain/resourceUtils.ts +20 -16
  38. package/src/domain/session/README.md +193 -0
  39. package/src/domain/session/oldCookiesMigration.ts +2 -2
  40. package/src/domain/session/sessionConstants.ts +16 -1
  41. package/src/domain/session/sessionManager.ts +179 -15
  42. package/src/domain/session/sessionState.ts +49 -17
  43. package/src/domain/session/sessionStateValidation.ts +9 -0
  44. package/src/domain/session/sessionStore.ts +118 -55
  45. package/src/domain/session/sessionStoreOperations.ts +47 -20
  46. package/src/domain/session/storeStrategies/sessionInCookie.ts +105 -26
  47. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +10 -8
  48. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +5 -2
  49. package/src/domain/synthetics/syntheticsWorkerValues.ts +13 -2
  50. package/src/domain/tags.ts +76 -0
  51. package/src/domain/telemetry/index.ts +12 -4
  52. package/src/domain/telemetry/rawTelemetryEvent.types.ts +6 -3
  53. package/src/domain/telemetry/telemetry.ts +235 -106
  54. package/src/domain/telemetry/telemetryEvent.types.ts +514 -5
  55. package/src/domain/trackingConsent.ts +34 -0
  56. package/src/index.ts +90 -59
  57. package/src/tools/abstractHooks.ts +72 -0
  58. package/src/tools/abstractLifeCycle.ts +1 -0
  59. package/src/tools/boundedBuffer.ts +36 -8
  60. package/src/tools/display.ts +4 -0
  61. package/src/tools/encoder.ts +3 -2
  62. package/src/tools/experimentalFeatures.ts +18 -7
  63. package/src/tools/getZoneJsOriginalValue.ts +1 -1
  64. package/src/tools/{getGlobalObject.ts → globalObject.ts} +20 -0
  65. package/src/tools/instrumentMethod.ts +58 -41
  66. package/src/tools/matchOption.ts +1 -2
  67. package/src/tools/monitor.ts +11 -7
  68. package/src/tools/observable.ts +78 -12
  69. package/src/tools/queueMicrotask.ts +13 -0
  70. package/src/tools/readBytesFromStream.ts +24 -64
  71. package/src/tools/requestIdleCallback.ts +40 -0
  72. package/src/tools/sendToExtension.ts +3 -1
  73. package/src/tools/serialisation/context.ts +4 -1
  74. package/src/tools/serialisation/sanitize.ts +32 -14
  75. package/src/{domain/error → tools/stackTrace}/computeStackTrace.ts +72 -8
  76. package/src/tools/stackTrace/handlingStack.ts +48 -0
  77. package/src/tools/taskQueue.ts +63 -0
  78. package/src/tools/timer.ts +1 -1
  79. package/src/tools/utils/arrayUtils.ts +11 -3
  80. package/src/tools/utils/browserDetection.ts +0 -9
  81. package/src/tools/utils/byteUtils.ts +13 -2
  82. package/src/tools/utils/functionUtils.ts +0 -2
  83. package/src/tools/utils/numberUtils.ts +2 -1
  84. package/src/tools/utils/objectUtils.ts +1 -3
  85. package/src/tools/utils/polyfills.ts +6 -107
  86. package/src/tools/utils/responseUtils.ts +1 -1
  87. package/src/tools/utils/stringUtils.ts +34 -2
  88. package/src/tools/utils/timeUtils.ts +18 -13
  89. package/src/tools/utils/timezone.ts +9 -0
  90. package/src/tools/utils/urlPolyfill.ts +29 -59
  91. package/src/tools/valueHistory.ts +66 -35
  92. package/src/transport/batch.ts +77 -80
  93. package/src/transport/eventBridge.ts +24 -5
  94. package/src/transport/flushController.ts +27 -21
  95. package/src/transport/httpRequest.ts +92 -71
  96. package/src/transport/index.ts +7 -4
  97. package/src/transport/sendWithRetryStrategy.ts +55 -36
  98. package/cjs/boot/init.d.ts +0 -5
  99. package/cjs/boot/init.js +0 -36
  100. package/cjs/boot/init.js.map +0 -1
  101. package/cjs/browser/addEventListener.d.ts +0 -84
  102. package/cjs/browser/addEventListener.js +0 -94
  103. package/cjs/browser/addEventListener.js.map +0 -1
  104. package/cjs/browser/cookie.d.ts +0 -17
  105. package/cjs/browser/cookie.js +0 -86
  106. package/cjs/browser/cookie.js.map +0 -1
  107. package/cjs/browser/fetchObservable.d.ts +0 -23
  108. package/cjs/browser/fetchObservable.js +0 -69
  109. package/cjs/browser/fetchObservable.js.map +0 -1
  110. package/cjs/browser/pageExitObservable.d.ts +0 -14
  111. package/cjs/browser/pageExitObservable.js +0 -57
  112. package/cjs/browser/pageExitObservable.js.map +0 -1
  113. package/cjs/browser/runOnReadyState.d.ts +0 -2
  114. package/cjs/browser/runOnReadyState.js +0 -15
  115. package/cjs/browser/runOnReadyState.js.map +0 -1
  116. package/cjs/browser/types.d.ts +0 -19
  117. package/cjs/browser/types.js +0 -6
  118. package/cjs/browser/types.js.map +0 -1
  119. package/cjs/browser/xhrObservable.d.ts +0 -21
  120. package/cjs/browser/xhrObservable.js +0 -85
  121. package/cjs/browser/xhrObservable.js.map +0 -1
  122. package/cjs/domain/configuration/configuration.d.ts +0 -72
  123. package/cjs/domain/configuration/configuration.js +0 -94
  124. package/cjs/domain/configuration/configuration.js.map +0 -1
  125. package/cjs/domain/configuration/endpointBuilder.d.ts +0 -10
  126. package/cjs/domain/configuration/endpointBuilder.js +0 -84
  127. package/cjs/domain/configuration/endpointBuilder.js.map +0 -1
  128. package/cjs/domain/configuration/index.d.ts +0 -4
  129. package/cjs/domain/configuration/index.js +0 -27
  130. package/cjs/domain/configuration/index.js.map +0 -1
  131. package/cjs/domain/configuration/intakeSites.d.ts +0 -5
  132. package/cjs/domain/configuration/intakeSites.js +0 -9
  133. package/cjs/domain/configuration/intakeSites.js.map +0 -1
  134. package/cjs/domain/configuration/tags.d.ts +0 -4
  135. package/cjs/domain/configuration/tags.js +0 -39
  136. package/cjs/domain/configuration/tags.js.map +0 -1
  137. package/cjs/domain/configuration/transportConfiguration.d.ts +0 -16
  138. package/cjs/domain/configuration/transportConfiguration.js +0 -42
  139. package/cjs/domain/configuration/transportConfiguration.js.map +0 -1
  140. package/cjs/domain/connectivity/connectivity.d.ts +0 -13
  141. package/cjs/domain/connectivity/connectivity.js +0 -14
  142. package/cjs/domain/connectivity/connectivity.js.map +0 -1
  143. package/cjs/domain/connectivity/index.d.ts +0 -1
  144. package/cjs/domain/connectivity/index.js +0 -18
  145. package/cjs/domain/connectivity/index.js.map +0 -1
  146. package/cjs/domain/console/consoleObservable.d.ts +0 -11
  147. package/cjs/domain/console/consoleObservable.js +0 -72
  148. package/cjs/domain/console/consoleObservable.js.map +0 -1
  149. package/cjs/domain/context/contextConstants.d.ts +0 -5
  150. package/cjs/domain/context/contextConstants.js +0 -3
  151. package/cjs/domain/context/contextConstants.js.map +0 -1
  152. package/cjs/domain/context/contextManager.d.ts +0 -12
  153. package/cjs/domain/context/contextManager.js +0 -43
  154. package/cjs/domain/context/contextManager.js.map +0 -1
  155. package/cjs/domain/context/customerDataTracker.d.ts +0 -45
  156. package/cjs/domain/context/customerDataTracker.js +0 -107
  157. package/cjs/domain/context/customerDataTracker.js.map +0 -1
  158. package/cjs/domain/context/storeContextManager.d.ts +0 -6
  159. package/cjs/domain/context/storeContextManager.js +0 -38
  160. package/cjs/domain/context/storeContextManager.js.map +0 -1
  161. package/cjs/domain/deflate/types.d.ts +0 -0
  162. package/cjs/domain/deflate/types.js +0 -3
  163. package/cjs/domain/deflate/types.js.map +0 -1
  164. package/cjs/domain/error/computeStackTrace.d.ts +0 -33
  165. package/cjs/domain/error/computeStackTrace.js +0 -142
  166. package/cjs/domain/error/computeStackTrace.js.map +0 -1
  167. package/cjs/domain/error/error.d.ts +0 -28
  168. package/cjs/domain/error/error.js +0 -131
  169. package/cjs/domain/error/error.js.map +0 -1
  170. package/cjs/domain/error/error.types.d.ts +0 -40
  171. package/cjs/domain/error/error.types.js +0 -13
  172. package/cjs/domain/error/error.types.js.map +0 -1
  173. package/cjs/domain/error/trackRuntimeError.d.ts +0 -13
  174. package/cjs/domain/error/trackRuntimeError.js +0 -54
  175. package/cjs/domain/error/trackRuntimeError.js.map +0 -1
  176. package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
  177. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +0 -40
  178. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
  179. package/cjs/domain/report/browser.types.d.ts +0 -34
  180. package/cjs/domain/report/browser.types.js +0 -3
  181. package/cjs/domain/report/browser.types.js.map +0 -1
  182. package/cjs/domain/report/reportObservable.d.ts +0 -17
  183. package/cjs/domain/report/reportObservable.js +0 -94
  184. package/cjs/domain/report/reportObservable.js.map +0 -1
  185. package/cjs/domain/resourceUtils.d.ts +0 -16
  186. package/cjs/domain/resourceUtils.js +0 -3
  187. package/cjs/domain/resourceUtils.js.map +0 -1
  188. package/cjs/domain/session/oldCookiesMigration.d.ts +0 -11
  189. package/cjs/domain/session/oldCookiesMigration.js +0 -40
  190. package/cjs/domain/session/oldCookiesMigration.js.map +0 -1
  191. package/cjs/domain/session/sessionConstants.d.ts +0 -2
  192. package/cjs/domain/session/sessionConstants.js +0 -7
  193. package/cjs/domain/session/sessionConstants.js.map +0 -1
  194. package/cjs/domain/session/sessionManager.d.ts +0 -20
  195. package/cjs/domain/session/sessionManager.js +0 -65
  196. package/cjs/domain/session/sessionManager.js.map +0 -1
  197. package/cjs/domain/session/sessionState.d.ts +0 -11
  198. package/cjs/domain/session/sessionState.js +0 -45
  199. package/cjs/domain/session/sessionState.js.map +0 -1
  200. package/cjs/domain/session/sessionStore.d.ts +0 -34
  201. package/cjs/domain/session/sessionStore.js +0 -144
  202. package/cjs/domain/session/sessionStore.js.map +0 -1
  203. package/cjs/domain/session/sessionStoreOperations.d.ts +0 -10
  204. package/cjs/domain/session/sessionStoreOperations.js +0 -96
  205. package/cjs/domain/session/sessionStoreOperations.js.map +0 -1
  206. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +0 -6
  207. package/cjs/domain/session/storeStrategies/sessionInCookie.js +0 -59
  208. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
  209. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -3
  210. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +0 -41
  211. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
  212. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -15
  213. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +0 -5
  214. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
  215. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +0 -11
  216. package/cjs/domain/synthetics/syntheticsWorkerValues.js +0 -22
  217. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
  218. package/cjs/domain/telemetry/index.d.ts +0 -3
  219. package/cjs/domain/telemetry/index.js +0 -28
  220. package/cjs/domain/telemetry/index.js.map +0 -1
  221. package/cjs/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -15
  222. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +0 -8
  223. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
  224. package/cjs/domain/telemetry/telemetry.d.ts +0 -116
  225. package/cjs/domain/telemetry/telemetry.js +0 -157
  226. package/cjs/domain/telemetry/telemetry.js.map +0 -1
  227. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +0 -391
  228. package/cjs/domain/telemetry/telemetryEvent.types.js +0 -7
  229. package/cjs/domain/telemetry/telemetryEvent.types.js.map +0 -1
  230. package/cjs/domain/user/index.d.ts +0 -2
  231. package/cjs/domain/user/index.js +0 -19
  232. package/cjs/domain/user/index.js.map +0 -1
  233. package/cjs/domain/user/user.d.ts +0 -12
  234. package/cjs/domain/user/user.js +0 -35
  235. package/cjs/domain/user/user.js.map +0 -1
  236. package/cjs/domain/user/user.types.d.ts +0 -6
  237. package/cjs/domain/user/user.types.js +0 -3
  238. package/cjs/domain/user/user.types.js.map +0 -1
  239. package/cjs/tools/abstractLifeCycle.d.ts +0 -23
  240. package/cjs/tools/abstractLifeCycle.js +0 -29
  241. package/cjs/tools/abstractLifeCycle.js.map +0 -1
  242. package/cjs/tools/boundedBuffer.d.ts +0 -5
  243. package/cjs/tools/boundedBuffer.js +0 -22
  244. package/cjs/tools/boundedBuffer.js.map +0 -1
  245. package/cjs/tools/catchUserErrors.d.ts +0 -1
  246. package/cjs/tools/catchUserErrors.js +0 -20
  247. package/cjs/tools/catchUserErrors.js.map +0 -1
  248. package/cjs/tools/display.d.ts +0 -35
  249. package/cjs/tools/display.js +0 -41
  250. package/cjs/tools/display.js.map +0 -1
  251. package/cjs/tools/encoder.d.ts +0 -53
  252. package/cjs/tools/encoder.js +0 -41
  253. package/cjs/tools/encoder.js.map +0 -1
  254. package/cjs/tools/experimentalFeatures.d.ts +0 -22
  255. package/cjs/tools/experimentalFeatures.js +0 -45
  256. package/cjs/tools/experimentalFeatures.js.map +0 -1
  257. package/cjs/tools/getGlobalObject.d.ts +0 -4
  258. package/cjs/tools/getGlobalObject.js +0 -37
  259. package/cjs/tools/getGlobalObject.js.map +0 -1
  260. package/cjs/tools/getZoneJsOriginalValue.d.ts +0 -19
  261. package/cjs/tools/getZoneJsOriginalValue.js +0 -30
  262. package/cjs/tools/getZoneJsOriginalValue.js.map +0 -1
  263. package/cjs/tools/instrumentMethod.d.ts +0 -59
  264. package/cjs/tools/instrumentMethod.js +0 -106
  265. package/cjs/tools/instrumentMethod.js.map +0 -1
  266. package/cjs/tools/matchOption.d.ts +0 -8
  267. package/cjs/tools/matchOption.js +0 -38
  268. package/cjs/tools/matchOption.js.map +0 -1
  269. package/cjs/tools/mergeInto.d.ts +0 -25
  270. package/cjs/tools/mergeInto.js +0 -105
  271. package/cjs/tools/mergeInto.js.map +0 -1
  272. package/cjs/tools/monitor.d.ts +0 -8
  273. package/cjs/tools/monitor.js +0 -76
  274. package/cjs/tools/monitor.js.map +0 -1
  275. package/cjs/tools/observable.d.ts +0 -12
  276. package/cjs/tools/observable.js +0 -43
  277. package/cjs/tools/observable.js.map +0 -1
  278. package/cjs/tools/readBytesFromStream.d.ts +0 -11
  279. package/cjs/tools/readBytesFromStream.js +0 -64
  280. package/cjs/tools/readBytesFromStream.js.map +0 -1
  281. package/cjs/tools/sendToExtension.d.ts +0 -3
  282. package/cjs/tools/sendToExtension.js +0 -11
  283. package/cjs/tools/sendToExtension.js.map +0 -1
  284. package/cjs/tools/serialisation/context.d.ts +0 -6
  285. package/cjs/tools/serialisation/context.js +0 -3
  286. package/cjs/tools/serialisation/context.js.map +0 -1
  287. package/cjs/tools/serialisation/jsonStringify.d.ts +0 -13
  288. package/cjs/tools/serialisation/jsonStringify.js +0 -49
  289. package/cjs/tools/serialisation/jsonStringify.js.map +0 -1
  290. package/cjs/tools/serialisation/sanitize.d.ts +0 -18
  291. package/cjs/tools/serialisation/sanitize.js +0 -185
  292. package/cjs/tools/serialisation/sanitize.js.map +0 -1
  293. package/cjs/tools/timer.d.ts +0 -5
  294. package/cjs/tools/timer.js +0 -23
  295. package/cjs/tools/timer.js.map +0 -1
  296. package/cjs/tools/utils/arrayUtils.d.ts +0 -1
  297. package/cjs/tools/utils/arrayUtils.js +0 -11
  298. package/cjs/tools/utils/arrayUtils.js.map +0 -1
  299. package/cjs/tools/utils/browserDetection.d.ts +0 -10
  300. package/cjs/tools/utils/browserDetection.js +0 -42
  301. package/cjs/tools/utils/browserDetection.js.map +0 -1
  302. package/cjs/tools/utils/byteUtils.d.ts +0 -4
  303. package/cjs/tools/utils/byteUtils.js +0 -31
  304. package/cjs/tools/utils/byteUtils.js.map +0 -1
  305. package/cjs/tools/utils/functionUtils.d.ts +0 -9
  306. package/cjs/tools/utils/functionUtils.js +0 -48
  307. package/cjs/tools/utils/functionUtils.js.map +0 -1
  308. package/cjs/tools/utils/numberUtils.d.ts +0 -8
  309. package/cjs/tools/utils/numberUtils.js +0 -24
  310. package/cjs/tools/utils/numberUtils.js.map +0 -1
  311. package/cjs/tools/utils/objectUtils.d.ts +0 -10
  312. package/cjs/tools/utils/objectUtils.js +0 -26
  313. package/cjs/tools/utils/objectUtils.js.map +0 -1
  314. package/cjs/tools/utils/polyfills.d.ts +0 -24
  315. package/cjs/tools/utils/polyfills.js +0 -110
  316. package/cjs/tools/utils/polyfills.js.map +0 -1
  317. package/cjs/tools/utils/responseUtils.d.ts +0 -2
  318. package/cjs/tools/utils/responseUtils.js +0 -18
  319. package/cjs/tools/utils/responseUtils.js.map +0 -1
  320. package/cjs/tools/utils/stringUtils.d.ts +0 -8
  321. package/cjs/tools/utils/stringUtils.js +0 -59
  322. package/cjs/tools/utils/stringUtils.js.map +0 -1
  323. package/cjs/tools/utils/timeUtils.d.ts +0 -57
  324. package/cjs/tools/utils/timeUtils.js +0 -99
  325. package/cjs/tools/utils/timeUtils.js.map +0 -1
  326. package/cjs/tools/utils/typeUtils.d.ts +0 -4
  327. package/cjs/tools/utils/typeUtils.js +0 -17
  328. package/cjs/tools/utils/typeUtils.js.map +0 -1
  329. package/cjs/tools/utils/urlPolyfill.d.ts +0 -14
  330. package/cjs/tools/utils/urlPolyfill.js +0 -92
  331. package/cjs/tools/utils/urlPolyfill.js.map +0 -1
  332. package/cjs/tools/valueHistory.d.ts +0 -50
  333. package/cjs/tools/valueHistory.js +0 -106
  334. package/cjs/tools/valueHistory.js.map +0 -1
  335. package/cjs/transport/batch.d.ts +0 -21
  336. package/cjs/transport/batch.js +0 -123
  337. package/cjs/transport/batch.js.map +0 -1
  338. package/cjs/transport/eventBridge.d.ts +0 -12
  339. package/cjs/transport/eventBridge.js +0 -34
  340. package/cjs/transport/eventBridge.js.map +0 -1
  341. package/cjs/transport/flushController.d.ts +0 -58
  342. package/cjs/transport/flushController.js +0 -112
  343. package/cjs/transport/flushController.js.map +0 -1
  344. package/cjs/transport/httpRequest.d.ts +0 -38
  345. package/cjs/transport/httpRequest.js +0 -95
  346. package/cjs/transport/httpRequest.js.map +0 -1
  347. package/cjs/transport/index.d.ts +0 -4
  348. package/cjs/transport/index.js +0 -13
  349. package/cjs/transport/index.js.map +0 -1
  350. package/cjs/transport/sendWithRetryStrategy.d.ts +0 -39
  351. package/cjs/transport/sendWithRetryStrategy.js +0 -151
  352. package/cjs/transport/sendWithRetryStrategy.js.map +0 -1
  353. package/cjs/transport/startBatchWithReplica.d.ts +0 -20
  354. package/cjs/transport/startBatchWithReplica.js +0 -42
  355. package/cjs/transport/startBatchWithReplica.js.map +0 -1
  356. package/esm/boot/init.d.ts +0 -5
  357. package/esm/boot/init.js +0 -31
  358. package/esm/boot/init.js.map +0 -1
  359. package/esm/browser/addEventListener.d.ts +0 -84
  360. package/esm/browser/addEventListener.js +0 -89
  361. package/esm/browser/addEventListener.js.map +0 -1
  362. package/esm/browser/cookie.d.ts +0 -17
  363. package/esm/browser/cookie.js +0 -76
  364. package/esm/browser/cookie.js.map +0 -1
  365. package/esm/browser/fetchObservable.d.ts +0 -23
  366. package/esm/browser/fetchObservable.js +0 -65
  367. package/esm/browser/fetchObservable.js.map +0 -1
  368. package/esm/browser/pageExitObservable.d.ts +0 -14
  369. package/esm/browser/pageExitObservable.js +0 -52
  370. package/esm/browser/pageExitObservable.js.map +0 -1
  371. package/esm/browser/runOnReadyState.d.ts +0 -2
  372. package/esm/browser/runOnReadyState.js +0 -11
  373. package/esm/browser/runOnReadyState.js.map +0 -1
  374. package/esm/browser/types.d.ts +0 -19
  375. package/esm/browser/types.js +0 -5
  376. package/esm/browser/types.js.map +0 -1
  377. package/esm/browser/xhrObservable.d.ts +0 -21
  378. package/esm/browser/xhrObservable.js +0 -81
  379. package/esm/browser/xhrObservable.js.map +0 -1
  380. package/esm/domain/configuration/configuration.d.ts +0 -72
  381. package/esm/domain/configuration/configuration.js +0 -89
  382. package/esm/domain/configuration/configuration.js.map +0 -1
  383. package/esm/domain/configuration/endpointBuilder.d.ts +0 -10
  384. package/esm/domain/configuration/endpointBuilder.js +0 -80
  385. package/esm/domain/configuration/endpointBuilder.js.map +0 -1
  386. package/esm/domain/configuration/index.d.ts +0 -4
  387. package/esm/domain/configuration/index.js +0 -5
  388. package/esm/domain/configuration/index.js.map +0 -1
  389. package/esm/domain/configuration/intakeSites.d.ts +0 -5
  390. package/esm/domain/configuration/intakeSites.js +0 -6
  391. package/esm/domain/configuration/intakeSites.js.map +0 -1
  392. package/esm/domain/configuration/tags.d.ts +0 -4
  393. package/esm/domain/configuration/tags.js +0 -34
  394. package/esm/domain/configuration/tags.js.map +0 -1
  395. package/esm/domain/configuration/transportConfiguration.d.ts +0 -16
  396. package/esm/domain/configuration/transportConfiguration.js +0 -38
  397. package/esm/domain/configuration/transportConfiguration.js.map +0 -1
  398. package/esm/domain/connectivity/connectivity.d.ts +0 -13
  399. package/esm/domain/connectivity/connectivity.js +0 -10
  400. package/esm/domain/connectivity/connectivity.js.map +0 -1
  401. package/esm/domain/connectivity/index.d.ts +0 -1
  402. package/esm/domain/connectivity/index.js +0 -2
  403. package/esm/domain/connectivity/index.js.map +0 -1
  404. package/esm/domain/console/consoleObservable.d.ts +0 -11
  405. package/esm/domain/console/consoleObservable.js +0 -67
  406. package/esm/domain/console/consoleObservable.js.map +0 -1
  407. package/esm/domain/context/contextConstants.d.ts +0 -5
  408. package/esm/domain/context/contextConstants.js +0 -2
  409. package/esm/domain/context/contextConstants.js.map +0 -1
  410. package/esm/domain/context/contextManager.d.ts +0 -12
  411. package/esm/domain/context/contextManager.js +0 -39
  412. package/esm/domain/context/contextManager.js.map +0 -1
  413. package/esm/domain/context/customerDataTracker.d.ts +0 -45
  414. package/esm/domain/context/customerDataTracker.js +0 -102
  415. package/esm/domain/context/customerDataTracker.js.map +0 -1
  416. package/esm/domain/context/storeContextManager.d.ts +0 -6
  417. package/esm/domain/context/storeContextManager.js +0 -32
  418. package/esm/domain/context/storeContextManager.js.map +0 -1
  419. package/esm/domain/deflate/index.d.ts +0 -1
  420. package/esm/domain/deflate/index.js +0 -2
  421. package/esm/domain/deflate/index.js.map +0 -1
  422. package/esm/domain/deflate/types.d.ts +0 -38
  423. package/esm/domain/deflate/types.js +0 -2
  424. package/esm/domain/deflate/types.js.map +0 -1
  425. package/esm/domain/error/computeStackTrace.d.ts +0 -33
  426. package/esm/domain/error/computeStackTrace.js +0 -137
  427. package/esm/domain/error/computeStackTrace.js.map +0 -1
  428. package/esm/domain/error/error.d.ts +0 -28
  429. package/esm/domain/error/error.js +0 -121
  430. package/esm/domain/error/error.js.map +0 -1
  431. package/esm/domain/error/error.types.d.ts +0 -40
  432. package/esm/domain/error/error.types.js +0 -10
  433. package/esm/domain/error/error.types.js.map +0 -1
  434. package/esm/domain/error/trackRuntimeError.d.ts +0 -13
  435. package/esm/domain/error/trackRuntimeError.js +0 -48
  436. package/esm/domain/error/trackRuntimeError.js.map +0 -1
  437. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
  438. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +0 -36
  439. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
  440. package/esm/domain/report/browser.types.d.ts +0 -34
  441. package/esm/domain/report/browser.types.js +0 -2
  442. package/esm/domain/report/browser.types.js.map +0 -1
  443. package/esm/domain/report/reportObservable.d.ts +0 -17
  444. package/esm/domain/report/reportObservable.js +0 -90
  445. package/esm/domain/report/reportObservable.js.map +0 -1
  446. package/esm/domain/resourceUtils.d.ts +0 -16
  447. package/esm/domain/resourceUtils.js +0 -2
  448. package/esm/domain/resourceUtils.js.map +0 -1
  449. package/esm/domain/session/oldCookiesMigration.d.ts +0 -11
  450. package/esm/domain/session/oldCookiesMigration.js +0 -36
  451. package/esm/domain/session/oldCookiesMigration.js.map +0 -1
  452. package/esm/domain/session/sessionConstants.d.ts +0 -2
  453. package/esm/domain/session/sessionConstants.js +0 -4
  454. package/esm/domain/session/sessionConstants.js.map +0 -1
  455. package/esm/domain/session/sessionManager.d.ts +0 -20
  456. package/esm/domain/session/sessionManager.js +0 -60
  457. package/esm/domain/session/sessionManager.js.map +0 -1
  458. package/esm/domain/session/sessionState.d.ts +0 -11
  459. package/esm/domain/session/sessionState.js +0 -38
  460. package/esm/domain/session/sessionState.js.map +0 -1
  461. package/esm/domain/session/sessionStore.d.ts +0 -34
  462. package/esm/domain/session/sessionStore.js +0 -139
  463. package/esm/domain/session/sessionStore.js.map +0 -1
  464. package/esm/domain/session/sessionStoreOperations.d.ts +0 -10
  465. package/esm/domain/session/sessionStoreOperations.js +0 -92
  466. package/esm/domain/session/sessionStoreOperations.js.map +0 -1
  467. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +0 -6
  468. package/esm/domain/session/storeStrategies/sessionInCookie.js +0 -53
  469. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
  470. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -3
  471. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +0 -36
  472. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
  473. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -15
  474. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +0 -2
  475. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
  476. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +0 -11
  477. package/esm/domain/synthetics/syntheticsWorkerValues.js +0 -16
  478. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
  479. package/esm/domain/telemetry/index.d.ts +0 -3
  480. package/esm/domain/telemetry/index.js +0 -4
  481. package/esm/domain/telemetry/index.js.map +0 -1
  482. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -15
  483. package/esm/domain/telemetry/rawTelemetryEvent.types.js +0 -5
  484. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
  485. package/esm/domain/telemetry/telemetry.d.ts +0 -116
  486. package/esm/domain/telemetry/telemetry.js +0 -145
  487. package/esm/domain/telemetry/telemetry.js.map +0 -1
  488. package/esm/domain/telemetry/telemetryEvent.types.d.ts +0 -391
  489. package/esm/domain/telemetry/telemetryEvent.types.js +0 -6
  490. package/esm/domain/telemetry/telemetryEvent.types.js.map +0 -1
  491. package/esm/domain/user/index.d.ts +0 -2
  492. package/esm/domain/user/index.js +0 -3
  493. package/esm/domain/user/index.js.map +0 -1
  494. package/esm/domain/user/user.d.ts +0 -12
  495. package/esm/domain/user/user.js +0 -30
  496. package/esm/domain/user/user.js.map +0 -1
  497. package/esm/domain/user/user.types.d.ts +0 -6
  498. package/esm/domain/user/user.types.js +0 -2
  499. package/esm/domain/user/user.types.js.map +0 -1
  500. package/esm/index.d.ts +0 -67
  501. package/esm/index.js +0 -64
  502. package/esm/index.js.map +0 -1
  503. package/esm/tools/abstractLifeCycle.d.ts +0 -23
  504. package/esm/tools/abstractLifeCycle.js +0 -26
  505. package/esm/tools/abstractLifeCycle.js.map +0 -1
  506. package/esm/tools/boundedBuffer.d.ts +0 -5
  507. package/esm/tools/boundedBuffer.js +0 -19
  508. package/esm/tools/boundedBuffer.js.map +0 -1
  509. package/esm/tools/catchUserErrors.d.ts +0 -1
  510. package/esm/tools/catchUserErrors.js +0 -16
  511. package/esm/tools/catchUserErrors.js.map +0 -1
  512. package/esm/tools/display.d.ts +0 -35
  513. package/esm/tools/display.js +0 -38
  514. package/esm/tools/display.js.map +0 -1
  515. package/esm/tools/encoder.d.ts +0 -53
  516. package/esm/tools/encoder.js +0 -37
  517. package/esm/tools/encoder.js.map +0 -1
  518. package/esm/tools/experimentalFeatures.d.ts +0 -22
  519. package/esm/tools/experimentalFeatures.js +0 -38
  520. package/esm/tools/experimentalFeatures.js.map +0 -1
  521. package/esm/tools/getGlobalObject.d.ts +0 -4
  522. package/esm/tools/getGlobalObject.js +0 -33
  523. package/esm/tools/getGlobalObject.js.map +0 -1
  524. package/esm/tools/getZoneJsOriginalValue.d.ts +0 -19
  525. package/esm/tools/getZoneJsOriginalValue.js +0 -26
  526. package/esm/tools/getZoneJsOriginalValue.js.map +0 -1
  527. package/esm/tools/instrumentMethod.d.ts +0 -59
  528. package/esm/tools/instrumentMethod.js +0 -101
  529. package/esm/tools/instrumentMethod.js.map +0 -1
  530. package/esm/tools/matchOption.d.ts +0 -8
  531. package/esm/tools/matchOption.js +0 -33
  532. package/esm/tools/matchOption.js.map +0 -1
  533. package/esm/tools/mergeInto.d.ts +0 -25
  534. package/esm/tools/mergeInto.js +0 -99
  535. package/esm/tools/mergeInto.js.map +0 -1
  536. package/esm/tools/monitor.d.ts +0 -8
  537. package/esm/tools/monitor.js +0 -66
  538. package/esm/tools/monitor.js.map +0 -1
  539. package/esm/tools/observable.d.ts +0 -12
  540. package/esm/tools/observable.js +0 -39
  541. package/esm/tools/observable.js.map +0 -1
  542. package/esm/tools/readBytesFromStream.d.ts +0 -11
  543. package/esm/tools/readBytesFromStream.js +0 -60
  544. package/esm/tools/readBytesFromStream.js.map +0 -1
  545. package/esm/tools/sendToExtension.d.ts +0 -3
  546. package/esm/tools/sendToExtension.js +0 -7
  547. package/esm/tools/sendToExtension.js.map +0 -1
  548. package/esm/tools/serialisation/context.d.ts +0 -6
  549. package/esm/tools/serialisation/context.js +0 -2
  550. package/esm/tools/serialisation/context.js.map +0 -1
  551. package/esm/tools/serialisation/jsonStringify.d.ts +0 -13
  552. package/esm/tools/serialisation/jsonStringify.js +0 -44
  553. package/esm/tools/serialisation/jsonStringify.js.map +0 -1
  554. package/esm/tools/serialisation/sanitize.d.ts +0 -18
  555. package/esm/tools/serialisation/sanitize.js +0 -181
  556. package/esm/tools/serialisation/sanitize.js.map +0 -1
  557. package/esm/tools/timer.d.ts +0 -5
  558. package/esm/tools/timer.js +0 -16
  559. package/esm/tools/timer.js.map +0 -1
  560. package/esm/tools/utils/arrayUtils.d.ts +0 -1
  561. package/esm/tools/utils/arrayUtils.js +0 -7
  562. package/esm/tools/utils/arrayUtils.js.map +0 -1
  563. package/esm/tools/utils/browserDetection.d.ts +0 -10
  564. package/esm/tools/utils/browserDetection.js +0 -35
  565. package/esm/tools/utils/browserDetection.js.map +0 -1
  566. package/esm/tools/utils/byteUtils.d.ts +0 -4
  567. package/esm/tools/utils/byteUtils.js +0 -26
  568. package/esm/tools/utils/byteUtils.js.map +0 -1
  569. package/esm/tools/utils/functionUtils.d.ts +0 -9
  570. package/esm/tools/utils/functionUtils.js +0 -43
  571. package/esm/tools/utils/functionUtils.js.map +0 -1
  572. package/esm/tools/utils/numberUtils.d.ts +0 -8
  573. package/esm/tools/utils/numberUtils.js +0 -17
  574. package/esm/tools/utils/numberUtils.js.map +0 -1
  575. package/esm/tools/utils/objectUtils.d.ts +0 -10
  576. package/esm/tools/utils/objectUtils.js +0 -19
  577. package/esm/tools/utils/objectUtils.js.map +0 -1
  578. package/esm/tools/utils/polyfills.d.ts +0 -24
  579. package/esm/tools/utils/polyfills.js +0 -95
  580. package/esm/tools/utils/polyfills.js.map +0 -1
  581. package/esm/tools/utils/responseUtils.d.ts +0 -2
  582. package/esm/tools/utils/responseUtils.js +0 -13
  583. package/esm/tools/utils/responseUtils.js.map +0 -1
  584. package/esm/tools/utils/stringUtils.d.ts +0 -8
  585. package/esm/tools/utils/stringUtils.js +0 -52
  586. package/esm/tools/utils/stringUtils.js.map +0 -1
  587. package/esm/tools/utils/timeUtils.d.ts +0 -57
  588. package/esm/tools/utils/timeUtils.js +0 -82
  589. package/esm/tools/utils/timeUtils.js.map +0 -1
  590. package/esm/tools/utils/typeUtils.d.ts +0 -4
  591. package/esm/tools/utils/typeUtils.js +0 -13
  592. package/esm/tools/utils/typeUtils.js.map +0 -1
  593. package/esm/tools/utils/urlPolyfill.d.ts +0 -14
  594. package/esm/tools/utils/urlPolyfill.js +0 -80
  595. package/esm/tools/utils/urlPolyfill.js.map +0 -1
  596. package/esm/tools/valueHistory.d.ts +0 -50
  597. package/esm/tools/valueHistory.js +0 -103
  598. package/esm/tools/valueHistory.js.map +0 -1
  599. package/esm/transport/batch.d.ts +0 -21
  600. package/esm/transport/batch.js +0 -120
  601. package/esm/transport/batch.js.map +0 -1
  602. package/esm/transport/eventBridge.d.ts +0 -12
  603. package/esm/transport/eventBridge.js +0 -29
  604. package/esm/transport/eventBridge.js.map +0 -1
  605. package/esm/transport/flushController.d.ts +0 -58
  606. package/esm/transport/flushController.js +0 -108
  607. package/esm/transport/flushController.js.map +0 -1
  608. package/esm/transport/httpRequest.d.ts +0 -38
  609. package/esm/transport/httpRequest.js +0 -89
  610. package/esm/transport/httpRequest.js.map +0 -1
  611. package/esm/transport/index.d.ts +0 -4
  612. package/esm/transport/index.js +0 -5
  613. package/esm/transport/index.js.map +0 -1
  614. package/esm/transport/sendWithRetryStrategy.d.ts +0 -39
  615. package/esm/transport/sendWithRetryStrategy.js +0 -146
  616. package/esm/transport/sendWithRetryStrategy.js.map +0 -1
  617. package/esm/transport/startBatchWithReplica.d.ts +0 -20
  618. package/esm/transport/startBatchWithReplica.js +0 -38
  619. package/esm/transport/startBatchWithReplica.js.map +0 -1
  620. package/src/domain/configuration/intakeSites.ts +0 -5
  621. package/src/domain/configuration/tags.ts +0 -43
  622. package/src/domain/context/customerDataTracker.ts +0 -134
  623. package/src/domain/user/index.ts +0 -2
  624. package/src/domain/user/user.ts +0 -33
  625. package/src/domain/user/user.types.ts +0 -6
  626. package/src/transport/startBatchWithReplica.ts +0 -68
@@ -5,11 +5,12 @@ import { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils'
5
5
  import { isServerError } from '../tools/utils/responseUtils'
6
6
  import type { RawError } from '../domain/error/error.types'
7
7
  import { ErrorSource } from '../domain/error/error.types'
8
- import type { Payload, HttpResponse } from './httpRequest'
8
+ import type { Observable } from '../tools/observable'
9
+ import type { Payload, HttpRequestEvent, HttpResponse, BandwidthStats } from './httpRequest'
9
10
 
10
11
  export const MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE
11
12
  export const MAX_ONGOING_REQUESTS = 32
12
- export const MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE
13
+ export const MAX_QUEUE_BYTES_COUNT = 20 * ONE_MEBI_BYTE
13
14
  export const MAX_BACKOFF_TIME = ONE_MINUTE
14
15
  export const INITIAL_BACKOFF_TIME = ONE_SECOND
15
16
 
@@ -24,69 +25,77 @@ const enum RetryReason {
24
25
  AFTER_RESUME,
25
26
  }
26
27
 
27
- export interface RetryState {
28
+ export interface RetryState<Body extends Payload> {
28
29
  transportStatus: TransportStatus
29
30
  currentBackoffTime: number
30
31
  bandwidthMonitor: ReturnType<typeof newBandwidthMonitor>
31
- queuedPayloads: ReturnType<typeof newPayloadQueue>
32
+ queuedPayloads: ReturnType<typeof newPayloadQueue<Body>>
32
33
  queueFullReported: boolean
33
34
  }
34
35
 
35
- type SendStrategy = (payload: Payload, onResponse: (r: HttpResponse) => void) => void
36
+ type SendStrategy<Body extends Payload> = (payload: Body, onResponse: (r: HttpResponse) => void) => void
36
37
 
37
- export function sendWithRetryStrategy(
38
- payload: Payload,
39
- state: RetryState,
40
- sendStrategy: SendStrategy,
38
+ export function sendWithRetryStrategy<Body extends Payload>(
39
+ payload: Body,
40
+ state: RetryState<Body>,
41
+ sendStrategy: SendStrategy<Body>,
41
42
  trackType: TrackType,
42
- reportError: (error: RawError) => void
43
+ reportError: (error: RawError) => void,
44
+ requestObservable: Observable<HttpRequestEvent<Body>>
43
45
  ) {
44
46
  if (
45
47
  state.transportStatus === TransportStatus.UP &&
46
48
  state.queuedPayloads.size() === 0 &&
47
49
  state.bandwidthMonitor.canHandle(payload)
48
50
  ) {
49
- send(payload, state, sendStrategy, {
50
- onSuccess: () => retryQueuedPayloads(RetryReason.AFTER_SUCCESS, state, sendStrategy, trackType, reportError),
51
+ send(payload, state, sendStrategy, requestObservable, {
52
+ onSuccess: () =>
53
+ retryQueuedPayloads(RetryReason.AFTER_SUCCESS, state, sendStrategy, trackType, reportError, requestObservable),
51
54
  onFailure: () => {
52
- state.queuedPayloads.enqueue(payload)
53
- scheduleRetry(state, sendStrategy, trackType, reportError)
55
+ if (!state.queuedPayloads.enqueue(payload)) {
56
+ requestObservable.notify({ type: 'queue-full', bandwidth: state.bandwidthMonitor.stats(), payload })
57
+ }
58
+ scheduleRetry(state, sendStrategy, trackType, reportError, requestObservable)
54
59
  },
55
60
  })
56
61
  } else {
57
- state.queuedPayloads.enqueue(payload)
62
+ if (!state.queuedPayloads.enqueue(payload)) {
63
+ requestObservable.notify({ type: 'queue-full', bandwidth: state.bandwidthMonitor.stats(), payload })
64
+ }
58
65
  }
59
66
  }
60
67
 
61
- function scheduleRetry(
62
- state: RetryState,
63
- sendStrategy: SendStrategy,
68
+ function scheduleRetry<Body extends Payload>(
69
+ state: RetryState<Body>,
70
+ sendStrategy: SendStrategy<Body>,
64
71
  trackType: TrackType,
65
- reportError: (error: RawError) => void
72
+ reportError: (error: RawError) => void,
73
+ requestObservable: Observable<HttpRequestEvent<Body>>
66
74
  ) {
67
75
  if (state.transportStatus !== TransportStatus.DOWN) {
68
76
  return
69
77
  }
70
78
  setTimeout(() => {
71
79
  const payload = state.queuedPayloads.first()
72
- send(payload, state, sendStrategy, {
80
+ send(payload, state, sendStrategy, requestObservable, {
73
81
  onSuccess: () => {
74
82
  state.queuedPayloads.dequeue()
75
83
  state.currentBackoffTime = INITIAL_BACKOFF_TIME
76
- retryQueuedPayloads(RetryReason.AFTER_RESUME, state, sendStrategy, trackType, reportError)
84
+ retryQueuedPayloads(RetryReason.AFTER_RESUME, state, sendStrategy, trackType, reportError, requestObservable)
77
85
  },
78
86
  onFailure: () => {
79
87
  state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2)
80
- scheduleRetry(state, sendStrategy, trackType, reportError)
88
+ scheduleRetry(state, sendStrategy, trackType, reportError, requestObservable)
81
89
  },
82
90
  })
83
91
  }, state.currentBackoffTime)
84
92
  }
85
93
 
86
- function send(
87
- payload: Payload,
88
- state: RetryState,
89
- sendStrategy: SendStrategy,
94
+ function send<Body extends Payload>(
95
+ payload: Body,
96
+ state: RetryState<Body>,
97
+ sendStrategy: SendStrategy<Body>,
98
+ requestObservable: Observable<HttpRequestEvent<Body>>,
90
99
  { onSuccess, onFailure }: { onSuccess: () => void; onFailure: () => void }
91
100
  ) {
92
101
  state.bandwidthMonitor.add(payload)
@@ -94,6 +103,7 @@ function send(
94
103
  state.bandwidthMonitor.remove(payload)
95
104
  if (!shouldRetryRequest(response)) {
96
105
  state.transportStatus = TransportStatus.UP
106
+ requestObservable.notify({ type: 'success', bandwidth: state.bandwidthMonitor.stats(), payload })
97
107
  onSuccess()
98
108
  } else {
99
109
  // do not consider transport down if another ongoing request could succeed
@@ -103,17 +113,19 @@ function send(
103
113
  count: payload.retry ? payload.retry.count + 1 : 1,
104
114
  lastFailureStatus: response.status,
105
115
  }
116
+ requestObservable.notify({ type: 'failure', bandwidth: state.bandwidthMonitor.stats(), payload })
106
117
  onFailure()
107
118
  }
108
119
  })
109
120
  }
110
121
 
111
- function retryQueuedPayloads(
122
+ function retryQueuedPayloads<Body extends Payload>(
112
123
  reason: RetryReason,
113
- state: RetryState,
114
- sendStrategy: SendStrategy,
124
+ state: RetryState<Body>,
125
+ sendStrategy: SendStrategy<Body>,
115
126
  trackType: TrackType,
116
- reportError: (error: RawError) => void
127
+ reportError: (error: RawError) => void,
128
+ requestObservable: Observable<HttpRequestEvent<Body>>
117
129
  ) {
118
130
  if (reason === RetryReason.AFTER_SUCCESS && state.queuedPayloads.isFull() && !state.queueFullReported) {
119
131
  reportError({
@@ -126,7 +138,7 @@ function retryQueuedPayloads(
126
138
  const previousQueue = state.queuedPayloads
127
139
  state.queuedPayloads = newPayloadQueue()
128
140
  while (previousQueue.size() > 0) {
129
- sendWithRetryStrategy(previousQueue.dequeue()!, state, sendStrategy, trackType, reportError)
141
+ sendWithRetryStrategy(previousQueue.dequeue()!, state, sendStrategy, trackType, reportError, requestObservable)
130
142
  }
131
143
  }
132
144
 
@@ -140,7 +152,7 @@ function shouldRetryRequest(response: HttpResponse) {
140
152
  )
141
153
  }
142
154
 
143
- export function newRetryState(): RetryState {
155
+ export function newRetryState<Body extends Payload>(): RetryState<Body> {
144
156
  return {
145
157
  transportStatus: TransportStatus.UP,
146
158
  currentBackoffTime: INITIAL_BACKOFF_TIME,
@@ -150,16 +162,17 @@ export function newRetryState(): RetryState {
150
162
  }
151
163
  }
152
164
 
153
- function newPayloadQueue() {
154
- const queue: Payload[] = []
165
+ function newPayloadQueue<Body extends Payload>() {
166
+ const queue: Body[] = []
155
167
  return {
156
168
  bytesCount: 0,
157
- enqueue(payload: Payload) {
169
+ enqueue(payload: Body) {
158
170
  if (this.isFull()) {
159
- return
171
+ return false
160
172
  }
161
173
  queue.push(payload)
162
174
  this.bytesCount += payload.bytesCount
175
+ return true
163
176
  },
164
177
  first() {
165
178
  return queue[0]
@@ -199,5 +212,11 @@ function newBandwidthMonitor() {
199
212
  this.ongoingRequestCount -= 1
200
213
  this.ongoingByteCount -= payload.bytesCount
201
214
  },
215
+ stats(): BandwidthStats {
216
+ return {
217
+ ongoingByteCount: this.ongoingByteCount,
218
+ ongoingRequestCount: this.ongoingRequestCount,
219
+ }
220
+ },
202
221
  }
203
222
  }
@@ -1,5 +0,0 @@
1
- export declare function makePublicApi<T>(stub: T): T & {
2
- onReady(callback: () => void): void;
3
- version: string;
4
- };
5
- export declare function defineGlobal<Global, Name extends keyof Global>(global: Global, name: Name, api: Global[Name]): void;
package/cjs/boot/init.js DELETED
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineGlobal = exports.makePublicApi = void 0;
4
- var catchUserErrors_1 = require("../tools/catchUserErrors");
5
- var monitor_1 = require("../tools/monitor");
6
- var polyfills_1 = require("../tools/utils/polyfills");
7
- function makePublicApi(stub) {
8
- var publicApi = (0, polyfills_1.assign)({
9
- version: __BUILD_ENV__SDK_VERSION__,
10
- // This API method is intentionally not monitored, since the only thing executed is the
11
- // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and
12
- // we don't want to interfere with the user uncaught exceptions.
13
- onReady: function (callback) {
14
- callback();
15
- },
16
- }, stub);
17
- // Add a "hidden" property to set debug mode. We define it that way to hide it
18
- // as much as possible but of course it's not a real protection.
19
- Object.defineProperty(publicApi, '_setDebug', {
20
- get: function () {
21
- return monitor_1.setDebugMode;
22
- },
23
- enumerable: false,
24
- });
25
- return publicApi;
26
- }
27
- exports.makePublicApi = makePublicApi;
28
- function defineGlobal(global, name, api) {
29
- var existingGlobalVariable = global[name];
30
- global[name] = api;
31
- if (existingGlobalVariable && existingGlobalVariable.q) {
32
- existingGlobalVariable.q.forEach(function (fn) { return (0, catchUserErrors_1.catchUserErrors)(fn, 'onReady callback threw an error:')(); });
33
- }
34
- }
35
- exports.defineGlobal = defineGlobal;
36
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/boot/init.ts"],"names":[],"mappings":";;;AAAA,4DAA0D;AAC1D,4CAA+C;AAC/C,sDAAiD;AAKjD,SAAgB,aAAa,CAAI,IAAO;IACtC,IAAM,SAAS,GAAG,IAAA,kBAAM,EACtB;QACE,OAAO,EAAE,0BAA0B;QAEnC,uFAAuF;QACvF,8FAA8F;QAC9F,gEAAgE;QAChE,OAAO,YAAC,QAAoB;YAC1B,QAAQ,EAAE,CAAA;QACZ,CAAC;KACF,EACD,IAAI,CACL,CAAA;IAED,8EAA8E;IAC9E,gEAAgE;IAChE,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE;QAC5C,GAAG;YACD,OAAO,sBAAY,CAAA;QACrB,CAAC;QACD,UAAU,EAAE,KAAK;KAClB,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC;AAzBD,sCAyBC;AAED,SAAgB,YAAY,CAAoC,MAAc,EAAE,IAAU,EAAE,GAAiB;IAC3G,IAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAA0C,CAAA;IACpF,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IAClB,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,CAAC,EAAE,CAAC;QACvD,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,IAAK,OAAA,IAAA,iCAAe,EAAC,EAAE,EAAE,kCAAkC,CAAC,EAAE,EAAzD,CAAyD,CAAC,CAAA;IACrG,CAAC;AACH,CAAC;AAND,oCAMC"}
@@ -1,84 +0,0 @@
1
- import type { Configuration } from '../domain/configuration';
2
- import type { VisualViewport, VisualViewportEventMap } from './types';
3
- export type TrustableEvent<E extends Event = Event> = E & {
4
- __ddIsTrusted?: boolean;
5
- };
6
- export declare enum DOM_EVENT {
7
- BEFORE_UNLOAD = "beforeunload",
8
- CLICK = "click",
9
- DBL_CLICK = "dblclick",
10
- KEY_DOWN = "keydown",
11
- LOAD = "load",
12
- POP_STATE = "popstate",
13
- SCROLL = "scroll",
14
- TOUCH_START = "touchstart",
15
- TOUCH_END = "touchend",
16
- TOUCH_MOVE = "touchmove",
17
- VISIBILITY_CHANGE = "visibilitychange",
18
- PAGE_SHOW = "pageshow",
19
- FREEZE = "freeze",
20
- RESUME = "resume",
21
- DOM_CONTENT_LOADED = "DOMContentLoaded",
22
- POINTER_DOWN = "pointerdown",
23
- POINTER_UP = "pointerup",
24
- POINTER_CANCEL = "pointercancel",
25
- HASH_CHANGE = "hashchange",
26
- PAGE_HIDE = "pagehide",
27
- MOUSE_DOWN = "mousedown",
28
- MOUSE_UP = "mouseup",
29
- MOUSE_MOVE = "mousemove",
30
- FOCUS = "focus",
31
- BLUR = "blur",
32
- CONTEXT_MENU = "contextmenu",
33
- RESIZE = "resize",
34
- CHANGE = "change",
35
- INPUT = "input",
36
- PLAY = "play",
37
- PAUSE = "pause",
38
- SECURITY_POLICY_VIOLATION = "securitypolicyviolation",
39
- SELECTION_CHANGE = "selectionchange",
40
- STORAGE = "storage"
41
- }
42
- interface AddEventListenerOptions {
43
- once?: boolean;
44
- capture?: boolean;
45
- passive?: boolean;
46
- }
47
- type EventMapFor<T> = T extends Window ? WindowEventMap & {
48
- freeze: Event;
49
- resume: Event;
50
- visibilitychange: Event;
51
- } : T extends Document ? DocumentEventMap : T extends HTMLElement ? HTMLElementEventMap : T extends VisualViewport ? VisualViewportEventMap : T extends ShadowRoot ? GlobalEventHandlersEventMap : T extends XMLHttpRequest ? XMLHttpRequestEventMap : T extends Performance ? PerformanceEventMap : T extends Worker ? WorkerEventMap : Record<never, never>;
52
- /**
53
- * Add an event listener to an event target object (Window, Element, mock object...). This provides
54
- * a few conveniences compared to using `element.addEventListener` directly:
55
- *
56
- * * supports IE11 by: using an option object only if needed and emulating the `once` option
57
- *
58
- * * wraps the listener with a `monitor` function
59
- *
60
- * * returns a `stop` function to remove the listener
61
- */
62
- export declare function addEventListener<Target extends EventTarget, EventName extends keyof EventMapFor<Target> & string>(configuration: Configuration, eventTarget: Target, eventName: EventName, listener: (event: EventMapFor<Target>[EventName] & {
63
- type: EventName;
64
- }) => void, options?: AddEventListenerOptions): {
65
- stop: () => void;
66
- };
67
- /**
68
- * Add event listeners to an event target object (Window, Element, mock object...). This provides
69
- * a few conveniences compared to using `element.addEventListener` directly:
70
- *
71
- * * supports IE11 by: using an option object only if needed and emulating the `once` option
72
- *
73
- * * wraps the listener with a `monitor` function
74
- *
75
- * * returns a `stop` function to remove the listener
76
- *
77
- * * with `once: true`, the listener will be called at most once, even if different events are listened
78
- */
79
- export declare function addEventListeners<Target extends EventTarget, EventName extends keyof EventMapFor<Target> & string>(configuration: Configuration, eventTarget: Target, eventNames: EventName[], listener: (event: EventMapFor<Target>[EventName] & {
80
- type: EventName;
81
- }) => void, { once, capture, passive }?: AddEventListenerOptions): {
82
- stop: () => void;
83
- };
84
- export {};
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addEventListeners = exports.addEventListener = exports.DOM_EVENT = void 0;
4
- var monitor_1 = require("../tools/monitor");
5
- var getZoneJsOriginalValue_1 = require("../tools/getZoneJsOriginalValue");
6
- // We want to use a real enum (i.e. not a const enum) here, to be able to iterate over it to automatically add _ddIsTrusted in e2e tests
7
- // eslint-disable-next-line no-restricted-syntax
8
- var DOM_EVENT;
9
- (function (DOM_EVENT) {
10
- DOM_EVENT["BEFORE_UNLOAD"] = "beforeunload";
11
- DOM_EVENT["CLICK"] = "click";
12
- DOM_EVENT["DBL_CLICK"] = "dblclick";
13
- DOM_EVENT["KEY_DOWN"] = "keydown";
14
- DOM_EVENT["LOAD"] = "load";
15
- DOM_EVENT["POP_STATE"] = "popstate";
16
- DOM_EVENT["SCROLL"] = "scroll";
17
- DOM_EVENT["TOUCH_START"] = "touchstart";
18
- DOM_EVENT["TOUCH_END"] = "touchend";
19
- DOM_EVENT["TOUCH_MOVE"] = "touchmove";
20
- DOM_EVENT["VISIBILITY_CHANGE"] = "visibilitychange";
21
- DOM_EVENT["PAGE_SHOW"] = "pageshow";
22
- DOM_EVENT["FREEZE"] = "freeze";
23
- DOM_EVENT["RESUME"] = "resume";
24
- DOM_EVENT["DOM_CONTENT_LOADED"] = "DOMContentLoaded";
25
- DOM_EVENT["POINTER_DOWN"] = "pointerdown";
26
- DOM_EVENT["POINTER_UP"] = "pointerup";
27
- DOM_EVENT["POINTER_CANCEL"] = "pointercancel";
28
- DOM_EVENT["HASH_CHANGE"] = "hashchange";
29
- DOM_EVENT["PAGE_HIDE"] = "pagehide";
30
- DOM_EVENT["MOUSE_DOWN"] = "mousedown";
31
- DOM_EVENT["MOUSE_UP"] = "mouseup";
32
- DOM_EVENT["MOUSE_MOVE"] = "mousemove";
33
- DOM_EVENT["FOCUS"] = "focus";
34
- DOM_EVENT["BLUR"] = "blur";
35
- DOM_EVENT["CONTEXT_MENU"] = "contextmenu";
36
- DOM_EVENT["RESIZE"] = "resize";
37
- DOM_EVENT["CHANGE"] = "change";
38
- DOM_EVENT["INPUT"] = "input";
39
- DOM_EVENT["PLAY"] = "play";
40
- DOM_EVENT["PAUSE"] = "pause";
41
- DOM_EVENT["SECURITY_POLICY_VIOLATION"] = "securitypolicyviolation";
42
- DOM_EVENT["SELECTION_CHANGE"] = "selectionchange";
43
- DOM_EVENT["STORAGE"] = "storage";
44
- })(DOM_EVENT || (exports.DOM_EVENT = DOM_EVENT = {}));
45
- /**
46
- * Add an event listener to an event target object (Window, Element, mock object...). This provides
47
- * a few conveniences compared to using `element.addEventListener` directly:
48
- *
49
- * * supports IE11 by: using an option object only if needed and emulating the `once` option
50
- *
51
- * * wraps the listener with a `monitor` function
52
- *
53
- * * returns a `stop` function to remove the listener
54
- */
55
- function addEventListener(configuration, eventTarget, eventName, listener, options) {
56
- return addEventListeners(configuration, eventTarget, [eventName], listener, options);
57
- }
58
- exports.addEventListener = addEventListener;
59
- /**
60
- * Add event listeners to an event target object (Window, Element, mock object...). This provides
61
- * a few conveniences compared to using `element.addEventListener` directly:
62
- *
63
- * * supports IE11 by: using an option object only if needed and emulating the `once` option
64
- *
65
- * * wraps the listener with a `monitor` function
66
- *
67
- * * returns a `stop` function to remove the listener
68
- *
69
- * * with `once: true`, the listener will be called at most once, even if different events are listened
70
- */
71
- function addEventListeners(configuration, eventTarget, eventNames, listener, _a) {
72
- var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;
73
- var listenerWithMonitor = (0, monitor_1.monitor)(function (event) {
74
- if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {
75
- return;
76
- }
77
- if (once) {
78
- stop();
79
- }
80
- listener(event);
81
- });
82
- var options = passive ? { capture: capture, passive: passive } : capture;
83
- var add = (0, getZoneJsOriginalValue_1.getZoneJsOriginalValue)(eventTarget, 'addEventListener');
84
- eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, listenerWithMonitor, options); });
85
- function stop() {
86
- var remove = (0, getZoneJsOriginalValue_1.getZoneJsOriginalValue)(eventTarget, 'removeEventListener');
87
- eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, listenerWithMonitor, options); });
88
- }
89
- return {
90
- stop: stop,
91
- };
92
- }
93
- exports.addEventListeners = addEventListeners;
94
- //# sourceMappingURL=addEventListener.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addEventListener.js","sourceRoot":"","sources":["../../src/browser/addEventListener.ts"],"names":[],"mappings":";;;AAAA,4CAA0C;AAC1C,0EAAwE;AAMxE,wIAAwI;AACxI,gDAAgD;AAChD,IAAY,SAmCX;AAnCD,WAAY,SAAS;IACnB,2CAA8B,CAAA;IAC9B,4BAAe,CAAA;IACf,mCAAsB,CAAA;IACtB,iCAAoB,CAAA;IACpB,0BAAa,CAAA;IACb,mCAAsB,CAAA;IACtB,8BAAiB,CAAA;IACjB,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,qCAAwB,CAAA;IACxB,mDAAsC,CAAA;IACtC,mCAAsB,CAAA;IACtB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,oDAAuC,CAAA;IACvC,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;IACxB,6CAAgC,CAAA;IAChC,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,qCAAwB,CAAA;IACxB,iCAAoB,CAAA;IACpB,qCAAwB,CAAA;IACxB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,yCAA4B,CAAA;IAC5B,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,kEAAqD,CAAA;IACrD,iDAAoC,CAAA;IACpC,gCAAmB,CAAA;AACrB,CAAC,EAnCW,SAAS,yBAAT,SAAS,QAmCpB;AAmCD;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAC9B,aAA4B,EAC5B,WAAmB,EACnB,SAAoB,EACpB,QAA+E,EAC/E,OAAiC;IAEjC,OAAO,iBAAiB,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AACtF,CAAC;AARD,4CAQC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,iBAAiB,CAC/B,aAA4B,EAC5B,WAAmB,EACnB,UAAuB,EACvB,QAA+E,EAC/E,EAAwD;QAAxD,qBAAsD,EAAE,KAAA,EAAtD,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,OAAO,aAAA;IAExB,IAAM,mBAAmB,GAAG,IAAA,iBAAO,EAAC,UAAC,KAAqB;QACxD,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;YACpF,OAAM;QACR,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAA;QACR,CAAC;QACD,QAAQ,CAAC,KAAwE,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;IAEF,IAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,SAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IAExD,IAAM,GAAG,GAAG,IAAA,+CAAsB,EAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;IACnE,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS,IAAK,OAAA,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAA9D,CAA8D,CAAC,CAAA;IAEjG,SAAS,IAAI;QACX,IAAM,MAAM,GAAG,IAAA,+CAAsB,EAAC,WAAW,EAAE,qBAAqB,CAAC,CAAA;QACzE,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAjE,CAAiE,CAAC,CAAA;IACtG,CAAC;IAED,OAAO;QACL,IAAI,MAAA;KACL,CAAA;AACH,CAAC;AA9BD,8CA8BC"}
@@ -1,17 +0,0 @@
1
- export interface CookieOptions {
2
- secure?: boolean;
3
- crossSite?: boolean;
4
- partitioned?: boolean;
5
- domain?: string;
6
- }
7
- export declare function setCookie(name: string, value: string, expireDelay: number, options?: CookieOptions): void;
8
- export declare function getCookie(name: string): string | undefined;
9
- /**
10
- * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)
11
- * to avoid accessing document.cookie multiple times.
12
- */
13
- export declare function getInitCookie(name: string): string | undefined;
14
- export declare function resetInitCookies(): void;
15
- export declare function deleteCookie(name: string, options?: CookieOptions): void;
16
- export declare function areCookiesAuthorized(options: CookieOptions): boolean;
17
- export declare function getCurrentSite(): string;
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCurrentSite = exports.areCookiesAuthorized = exports.deleteCookie = exports.resetInitCookies = exports.getInitCookie = exports.getCookie = exports.setCookie = void 0;
4
- var display_1 = require("../tools/display");
5
- var timeUtils_1 = require("../tools/utils/timeUtils");
6
- var stringUtils_1 = require("../tools/utils/stringUtils");
7
- function setCookie(name, value, expireDelay, options) {
8
- var date = new Date();
9
- date.setTime(date.getTime() + expireDelay);
10
- var expires = "expires=".concat(date.toUTCString());
11
- var sameSite = options && options.crossSite ? 'none' : 'strict';
12
- var domain = options && options.domain ? ";domain=".concat(options.domain) : '';
13
- var secure = options && options.secure ? ';secure' : '';
14
- var partitioned = options && options.partitioned ? ';partitioned' : '';
15
- document.cookie = "".concat(name, "=").concat(value, ";").concat(expires, ";path=/;samesite=").concat(sameSite).concat(domain).concat(secure).concat(partitioned);
16
- }
17
- exports.setCookie = setCookie;
18
- function getCookie(name) {
19
- return (0, stringUtils_1.findCommaSeparatedValue)(document.cookie, name);
20
- }
21
- exports.getCookie = getCookie;
22
- var initCookieParsed;
23
- /**
24
- * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)
25
- * to avoid accessing document.cookie multiple times.
26
- */
27
- function getInitCookie(name) {
28
- if (!initCookieParsed) {
29
- initCookieParsed = (0, stringUtils_1.findCommaSeparatedValues)(document.cookie);
30
- }
31
- return initCookieParsed.get(name);
32
- }
33
- exports.getInitCookie = getInitCookie;
34
- function resetInitCookies() {
35
- initCookieParsed = undefined;
36
- }
37
- exports.resetInitCookies = resetInitCookies;
38
- function deleteCookie(name, options) {
39
- setCookie(name, '', 0, options);
40
- }
41
- exports.deleteCookie = deleteCookie;
42
- function areCookiesAuthorized(options) {
43
- if (document.cookie === undefined || document.cookie === null) {
44
- return false;
45
- }
46
- try {
47
- // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
48
- // the test cookie lifetime
49
- var testCookieName = "oo_cookie_test_".concat((0, stringUtils_1.generateUUID)());
50
- var testCookieValue = 'test';
51
- setCookie(testCookieName, testCookieValue, timeUtils_1.ONE_MINUTE, options);
52
- var isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;
53
- deleteCookie(testCookieName, options);
54
- return isCookieCorrectlySet;
55
- }
56
- catch (error) {
57
- display_1.display.error(error);
58
- return false;
59
- }
60
- }
61
- exports.areCookiesAuthorized = areCookiesAuthorized;
62
- /**
63
- * No API to retrieve it, number of levels for subdomain and suffix are unknown
64
- * strategy: find the minimal domain on which cookies are allowed to be set
65
- * https://web.dev/same-site-same-origin/#site
66
- */
67
- var getCurrentSiteCache;
68
- function getCurrentSite() {
69
- if (getCurrentSiteCache === undefined) {
70
- // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
71
- // the test cookie lifetime
72
- var testCookieName = "oo_site_test_".concat((0, stringUtils_1.generateUUID)());
73
- var testCookieValue = 'test';
74
- var domainLevels = window.location.hostname.split('.');
75
- var candidateDomain = domainLevels.pop();
76
- while (domainLevels.length && !getCookie(testCookieName)) {
77
- candidateDomain = "".concat(domainLevels.pop(), ".").concat(candidateDomain);
78
- setCookie(testCookieName, testCookieValue, timeUtils_1.ONE_SECOND, { domain: candidateDomain });
79
- }
80
- deleteCookie(testCookieName, { domain: candidateDomain });
81
- getCurrentSiteCache = candidateDomain;
82
- }
83
- return getCurrentSiteCache;
84
- }
85
- exports.getCurrentSite = getCurrentSite;
86
- //# sourceMappingURL=cookie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../src/browser/cookie.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { Observable } from '../tools/observable';
2
- import type { ClocksState } from '../tools/utils/timeUtils';
3
- interface FetchContextBase {
4
- method: string;
5
- startClocks: ClocksState;
6
- input: unknown;
7
- init?: RequestInit;
8
- url: string;
9
- }
10
- export interface FetchStartContext extends FetchContextBase {
11
- state: 'start';
12
- }
13
- export interface FetchResolveContext extends FetchContextBase {
14
- state: 'resolve';
15
- status: number;
16
- response?: Response;
17
- responseType?: string;
18
- isAborted: boolean;
19
- error?: Error;
20
- }
21
- export type FetchContext = FetchStartContext | FetchResolveContext;
22
- export declare function initFetchObservable(): Observable<FetchContext>;
23
- export {};
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initFetchObservable = void 0;
4
- var instrumentMethod_1 = require("../tools/instrumentMethod");
5
- var monitor_1 = require("../tools/monitor");
6
- var observable_1 = require("../tools/observable");
7
- var timeUtils_1 = require("../tools/utils/timeUtils");
8
- var urlPolyfill_1 = require("../tools/utils/urlPolyfill");
9
- var fetchObservable;
10
- function initFetchObservable() {
11
- if (!fetchObservable) {
12
- fetchObservable = createFetchObservable();
13
- }
14
- return fetchObservable;
15
- }
16
- exports.initFetchObservable = initFetchObservable;
17
- function createFetchObservable() {
18
- return new observable_1.Observable(function (observable) {
19
- if (!window.fetch) {
20
- return;
21
- }
22
- var stop = (0, instrumentMethod_1.instrumentMethod)(window, 'fetch', function (call) { return beforeSend(call, observable); }).stop;
23
- return stop;
24
- });
25
- }
26
- function beforeSend(_a, observable) {
27
- var parameters = _a.parameters, onPostCall = _a.onPostCall;
28
- var input = parameters[0], init = parameters[1];
29
- var methodFromParams = init && init.method;
30
- if (methodFromParams === undefined && input instanceof Request) {
31
- methodFromParams = input.method;
32
- }
33
- var method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET';
34
- var url = input instanceof Request ? input.url : (0, urlPolyfill_1.normalizeUrl)(String(input));
35
- var startClocks = (0, timeUtils_1.clocksNow)();
36
- var context = {
37
- state: 'start',
38
- init: init,
39
- input: input,
40
- method: method,
41
- startClocks: startClocks,
42
- url: url,
43
- };
44
- observable.notify(context);
45
- // Those properties can be changed by observable subscribers
46
- parameters[0] = context.input;
47
- parameters[1] = context.init;
48
- onPostCall(function (responsePromise) { return afterSend(observable, responsePromise, context); });
49
- }
50
- function afterSend(observable, responsePromise, startContext) {
51
- var reportFetch = function (response) {
52
- var context = startContext;
53
- context.state = 'resolve';
54
- if ('stack' in response || response instanceof Error) {
55
- context.status = 0;
56
- context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;
57
- context.error = response;
58
- }
59
- else if ('status' in response) {
60
- context.response = response;
61
- context.responseType = response.type;
62
- context.status = response.status;
63
- context.isAborted = false;
64
- }
65
- observable.notify(context);
66
- };
67
- responsePromise.then((0, monitor_1.monitor)(reportFetch), (0, monitor_1.monitor)(reportFetch));
68
- }
69
- //# sourceMappingURL=fetchObservable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchObservable.js","sourceRoot":"","sources":["../../src/browser/fetchObservable.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { Observable } from '../tools/observable';
2
- import type { Configuration } from '../domain/configuration';
3
- export declare const PageExitReason: {
4
- readonly HIDDEN: "visibility_hidden";
5
- readonly UNLOADING: "before_unload";
6
- readonly PAGEHIDE: "page_hide";
7
- readonly FROZEN: "page_frozen";
8
- };
9
- export type PageExitReason = (typeof PageExitReason)[keyof typeof PageExitReason];
10
- export interface PageExitEvent {
11
- reason: PageExitReason;
12
- }
13
- export declare function createPageExitObservable(configuration: Configuration): Observable<PageExitEvent>;
14
- export declare function isPageExitReason(reason: string | undefined): reason is PageExitReason;