@openobserve/browser-core 0.2.11 → 0.2.12-beta.4

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 (628) 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 +44 -35
  5. package/src/browser/{types.ts → browser.types.ts} +42 -0
  6. package/src/browser/cookie.ts +69 -15
  7. package/src/browser/fetchObservable.ts +97 -42
  8. package/src/browser/{pageExitObservable.ts → pageMayExitObservable.ts} +11 -24
  9. package/src/browser/runOnReadyState.ts +14 -4
  10. package/src/browser/xhrObservable.ts +45 -38
  11. package/src/domain/allowedTrackingOrigins.ts +30 -0
  12. package/src/domain/bufferedData.ts +32 -0
  13. package/src/domain/configuration/configuration.ts +366 -95
  14. package/src/domain/configuration/endpointBuilder.ts +48 -64
  15. package/src/domain/configuration/index.ts +6 -4
  16. package/src/domain/configuration/transportConfiguration.ts +42 -35
  17. package/src/domain/connectivity/connectivity.ts +31 -0
  18. package/src/domain/connectivity/index.ts +1 -0
  19. package/src/domain/console/consoleObservable.ts +59 -27
  20. package/src/domain/context/contextConstants.ts +27 -0
  21. package/src/domain/context/contextManager.ts +85 -0
  22. package/src/domain/context/contextUtils.ts +14 -0
  23. package/src/domain/context/defineContextMethod.ts +31 -0
  24. package/src/domain/context/storeContextManager.ts +55 -0
  25. package/src/domain/contexts/accountContext.ts +47 -0
  26. package/src/domain/contexts/globalContext.ts +30 -0
  27. package/src/domain/contexts/rumInternalContext.type.ts +15 -0
  28. package/src/domain/contexts/userContext.ts +64 -0
  29. package/src/domain/deflate/{types.ts → deflate.types.ts} +18 -2
  30. package/src/domain/deflate/index.ts +1 -1
  31. package/src/domain/error/error.ts +28 -84
  32. package/src/domain/error/error.types.ts +21 -4
  33. package/src/domain/error/trackRuntimeError.ts +37 -8
  34. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +5 -2
  35. package/src/domain/extension/extensionUtils.ts +28 -0
  36. package/src/domain/intakeSites.ts +18 -0
  37. package/src/domain/report/browser.types.ts +12 -0
  38. package/src/domain/report/reportObservable.ts +37 -30
  39. package/src/domain/resourceUtils.ts +20 -16
  40. package/src/domain/session/README.md +193 -0
  41. package/src/domain/session/oldCookiesMigration.ts +7 -7
  42. package/src/domain/session/sessionConstants.ts +16 -1
  43. package/src/domain/session/sessionManager.ts +179 -15
  44. package/src/domain/session/sessionState.ts +49 -17
  45. package/src/domain/session/sessionStateValidation.ts +9 -0
  46. package/src/domain/session/sessionStore.ts +118 -55
  47. package/src/domain/session/sessionStoreOperations.ts +51 -32
  48. package/src/domain/session/storeStrategies/sessionInCookie.ts +113 -23
  49. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +11 -8
  50. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +6 -2
  51. package/src/domain/synthetics/syntheticsWorkerValues.ts +15 -4
  52. package/src/domain/tags.ts +76 -0
  53. package/src/domain/telemetry/index.ts +12 -4
  54. package/src/domain/telemetry/rawTelemetryEvent.types.ts +11 -3
  55. package/src/domain/telemetry/telemetry.ts +242 -98
  56. package/src/domain/telemetry/telemetryEvent.types.ts +530 -5
  57. package/src/domain/trackingConsent.ts +34 -0
  58. package/src/index.ts +92 -55
  59. package/src/tools/abstractHooks.ts +72 -0
  60. package/src/tools/abstractLifeCycle.ts +1 -0
  61. package/src/tools/boundedBuffer.ts +36 -8
  62. package/src/tools/display.ts +18 -13
  63. package/src/tools/encoder.ts +103 -0
  64. package/src/tools/experimentalFeatures.ts +18 -9
  65. package/src/tools/getZoneJsOriginalValue.ts +1 -1
  66. package/src/tools/{getGlobalObject.ts → globalObject.ts} +20 -0
  67. package/src/tools/instrumentMethod.ts +127 -66
  68. package/src/tools/matchOption.ts +1 -2
  69. package/src/tools/mergeInto.ts +16 -16
  70. package/src/tools/monitor.ts +14 -10
  71. package/src/tools/observable.ts +79 -15
  72. package/src/tools/queueMicrotask.ts +13 -0
  73. package/src/tools/readBytesFromStream.ts +24 -64
  74. package/src/tools/requestIdleCallback.ts +40 -0
  75. package/src/tools/sendToExtension.ts +3 -1
  76. package/src/tools/serialisation/context.ts +4 -1
  77. package/src/tools/serialisation/sanitize.ts +32 -14
  78. package/src/tools/stackTrace/computeStackTrace.ts +250 -0
  79. package/src/tools/stackTrace/handlingStack.ts +48 -0
  80. package/src/tools/taskQueue.ts +63 -0
  81. package/src/tools/timer.ts +1 -1
  82. package/src/tools/utils/arrayUtils.ts +11 -3
  83. package/src/tools/utils/browserDetection.ts +35 -3
  84. package/src/tools/utils/byteUtils.ts +13 -2
  85. package/src/tools/utils/functionUtils.ts +0 -2
  86. package/src/tools/utils/numberUtils.ts +2 -1
  87. package/src/tools/utils/objectUtils.ts +1 -3
  88. package/src/tools/utils/polyfills.ts +6 -110
  89. package/src/tools/utils/responseUtils.ts +1 -1
  90. package/src/tools/utils/stringUtils.ts +62 -4
  91. package/src/tools/utils/timeUtils.ts +18 -13
  92. package/src/tools/utils/timezone.ts +9 -0
  93. package/src/tools/utils/urlPolyfill.ts +29 -59
  94. package/src/tools/valueHistory.ts +66 -35
  95. package/src/transport/batch.ts +113 -61
  96. package/src/transport/eventBridge.ts +24 -5
  97. package/src/transport/flushController.ts +44 -23
  98. package/src/transport/httpRequest.ts +99 -71
  99. package/src/transport/index.ts +7 -4
  100. package/src/transport/sendWithRetryStrategy.ts +60 -41
  101. package/cjs/boot/init.d.ts +0 -5
  102. package/cjs/boot/init.js +0 -36
  103. package/cjs/boot/init.js.map +0 -1
  104. package/cjs/browser/addEventListener.d.ts +0 -76
  105. package/cjs/browser/addEventListener.js +0 -52
  106. package/cjs/browser/addEventListener.js.map +0 -1
  107. package/cjs/browser/cookie.d.ts +0 -10
  108. package/cjs/browser/cookie.js +0 -69
  109. package/cjs/browser/cookie.js.map +0 -1
  110. package/cjs/browser/fetchObservable.d.ts +0 -23
  111. package/cjs/browser/fetchObservable.js +0 -74
  112. package/cjs/browser/fetchObservable.js.map +0 -1
  113. package/cjs/browser/pageExitObservable.d.ts +0 -14
  114. package/cjs/browser/pageExitObservable.js +0 -58
  115. package/cjs/browser/pageExitObservable.js.map +0 -1
  116. package/cjs/browser/runOnReadyState.d.ts +0 -2
  117. package/cjs/browser/runOnReadyState.js +0 -15
  118. package/cjs/browser/runOnReadyState.js.map +0 -1
  119. package/cjs/browser/types.d.ts +0 -19
  120. package/cjs/browser/types.js +0 -6
  121. package/cjs/browser/types.js.map +0 -1
  122. package/cjs/browser/xhrObservable.d.ts +0 -22
  123. package/cjs/browser/xhrObservable.js +0 -93
  124. package/cjs/browser/xhrObservable.js.map +0 -1
  125. package/cjs/domain/configuration/configuration.d.ts +0 -67
  126. package/cjs/domain/configuration/configuration.js +0 -95
  127. package/cjs/domain/configuration/configuration.js.map +0 -1
  128. package/cjs/domain/configuration/endpointBuilder.d.ts +0 -14
  129. package/cjs/domain/configuration/endpointBuilder.js +0 -94
  130. package/cjs/domain/configuration/endpointBuilder.js.map +0 -1
  131. package/cjs/domain/configuration/index.d.ts +0 -3
  132. package/cjs/domain/configuration/index.js +0 -25
  133. package/cjs/domain/configuration/index.js.map +0 -1
  134. package/cjs/domain/configuration/intakeSites.d.ts +0 -5
  135. package/cjs/domain/configuration/intakeSites.js +0 -9
  136. package/cjs/domain/configuration/intakeSites.js.map +0 -1
  137. package/cjs/domain/configuration/tags.d.ts +0 -4
  138. package/cjs/domain/configuration/tags.js +0 -39
  139. package/cjs/domain/configuration/tags.js.map +0 -1
  140. package/cjs/domain/configuration/transportConfiguration.d.ts +0 -16
  141. package/cjs/domain/configuration/transportConfiguration.js +0 -42
  142. package/cjs/domain/configuration/transportConfiguration.js.map +0 -1
  143. package/cjs/domain/console/consoleObservable.d.ts +0 -11
  144. package/cjs/domain/console/consoleObservable.js +0 -75
  145. package/cjs/domain/console/consoleObservable.js.map +0 -1
  146. package/cjs/domain/deflate/index.d.ts +0 -1
  147. package/cjs/domain/deflate/index.js +0 -18
  148. package/cjs/domain/deflate/index.js.map +0 -1
  149. package/cjs/domain/deflate/types.d.ts +0 -26
  150. package/cjs/domain/deflate/types.js +0 -3
  151. package/cjs/domain/deflate/types.js.map +0 -1
  152. package/cjs/domain/error/error.d.ts +0 -28
  153. package/cjs/domain/error/error.js +0 -131
  154. package/cjs/domain/error/error.js.map +0 -1
  155. package/cjs/domain/error/error.types.d.ts +0 -40
  156. package/cjs/domain/error/error.types.js +0 -13
  157. package/cjs/domain/error/error.types.js.map +0 -1
  158. package/cjs/domain/error/trackRuntimeError.d.ts +0 -5
  159. package/cjs/domain/error/trackRuntimeError.js +0 -21
  160. package/cjs/domain/error/trackRuntimeError.js.map +0 -1
  161. package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
  162. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +0 -40
  163. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
  164. package/cjs/domain/report/browser.types.d.ts +0 -24
  165. package/cjs/domain/report/browser.types.js +0 -3
  166. package/cjs/domain/report/browser.types.js.map +0 -1
  167. package/cjs/domain/report/reportObservable.d.ts +0 -15
  168. package/cjs/domain/report/reportObservable.js +0 -94
  169. package/cjs/domain/report/reportObservable.js.map +0 -1
  170. package/cjs/domain/resourceUtils.d.ts +0 -16
  171. package/cjs/domain/resourceUtils.js +0 -3
  172. package/cjs/domain/resourceUtils.js.map +0 -1
  173. package/cjs/domain/session/oldCookiesMigration.d.ts +0 -11
  174. package/cjs/domain/session/oldCookiesMigration.js +0 -40
  175. package/cjs/domain/session/oldCookiesMigration.js.map +0 -1
  176. package/cjs/domain/session/sessionConstants.d.ts +0 -2
  177. package/cjs/domain/session/sessionConstants.js +0 -7
  178. package/cjs/domain/session/sessionConstants.js.map +0 -1
  179. package/cjs/domain/session/sessionManager.d.ts +0 -20
  180. package/cjs/domain/session/sessionManager.js +0 -65
  181. package/cjs/domain/session/sessionManager.js.map +0 -1
  182. package/cjs/domain/session/sessionState.d.ts +0 -11
  183. package/cjs/domain/session/sessionState.js +0 -45
  184. package/cjs/domain/session/sessionState.js.map +0 -1
  185. package/cjs/domain/session/sessionStore.d.ts +0 -34
  186. package/cjs/domain/session/sessionStore.js +0 -144
  187. package/cjs/domain/session/sessionStore.js.map +0 -1
  188. package/cjs/domain/session/sessionStoreOperations.d.ts +0 -15
  189. package/cjs/domain/session/sessionStoreOperations.js +0 -104
  190. package/cjs/domain/session/sessionStoreOperations.js.map +0 -1
  191. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +0 -6
  192. package/cjs/domain/session/storeStrategies/sessionInCookie.js +0 -48
  193. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
  194. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -3
  195. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +0 -40
  196. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
  197. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -14
  198. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +0 -5
  199. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
  200. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +0 -11
  201. package/cjs/domain/synthetics/syntheticsWorkerValues.js +0 -22
  202. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
  203. package/cjs/domain/telemetry/index.d.ts +0 -3
  204. package/cjs/domain/telemetry/index.js +0 -28
  205. package/cjs/domain/telemetry/index.js.map +0 -1
  206. package/cjs/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -11
  207. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +0 -8
  208. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
  209. package/cjs/domain/telemetry/telemetry.d.ts +0 -112
  210. package/cjs/domain/telemetry/telemetry.js +0 -146
  211. package/cjs/domain/telemetry/telemetry.js.map +0 -1
  212. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +0 -375
  213. package/cjs/domain/telemetry/telemetryEvent.types.js +0 -7
  214. package/cjs/domain/telemetry/telemetryEvent.types.js.map +0 -1
  215. package/cjs/domain/tracekit/computeStackTrace.d.ts +0 -5
  216. package/cjs/domain/tracekit/computeStackTrace.js +0 -118
  217. package/cjs/domain/tracekit/computeStackTrace.js.map +0 -1
  218. package/cjs/domain/tracekit/index.d.ts +0 -3
  219. package/cjs/domain/tracekit/index.js +0 -8
  220. package/cjs/domain/tracekit/index.js.map +0 -1
  221. package/cjs/domain/tracekit/tracekit.d.ts +0 -35
  222. package/cjs/domain/tracekit/tracekit.js +0 -95
  223. package/cjs/domain/tracekit/tracekit.js.map +0 -1
  224. package/cjs/domain/tracekit/types.d.ts +0 -44
  225. package/cjs/domain/tracekit/types.js +0 -3
  226. package/cjs/domain/tracekit/types.js.map +0 -1
  227. package/cjs/domain/user/index.d.ts +0 -2
  228. package/cjs/domain/user/index.js +0 -19
  229. package/cjs/domain/user/index.js.map +0 -1
  230. package/cjs/domain/user/user.d.ts +0 -12
  231. package/cjs/domain/user/user.js +0 -35
  232. package/cjs/domain/user/user.js.map +0 -1
  233. package/cjs/domain/user/user.types.d.ts +0 -6
  234. package/cjs/domain/user/user.types.js +0 -3
  235. package/cjs/domain/user/user.types.js.map +0 -1
  236. package/cjs/index.d.ts +0 -63
  237. package/cjs/index.js +0 -155
  238. package/cjs/index.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 -45
  250. package/cjs/tools/display.js.map +0 -1
  251. package/cjs/tools/experimentalFeatures.d.ts +0 -24
  252. package/cjs/tools/experimentalFeatures.js +0 -47
  253. package/cjs/tools/experimentalFeatures.js.map +0 -1
  254. package/cjs/tools/getGlobalObject.d.ts +0 -4
  255. package/cjs/tools/getGlobalObject.js +0 -37
  256. package/cjs/tools/getGlobalObject.js.map +0 -1
  257. package/cjs/tools/getZoneJsOriginalValue.d.ts +0 -19
  258. package/cjs/tools/getZoneJsOriginalValue.js +0 -30
  259. package/cjs/tools/getZoneJsOriginalValue.js.map +0 -1
  260. package/cjs/tools/instrumentMethod.d.ts +0 -19
  261. package/cjs/tools/instrumentMethod.js +0 -83
  262. package/cjs/tools/instrumentMethod.js.map +0 -1
  263. package/cjs/tools/matchOption.d.ts +0 -8
  264. package/cjs/tools/matchOption.js +0 -38
  265. package/cjs/tools/matchOption.js.map +0 -1
  266. package/cjs/tools/mergeInto.d.ts +0 -25
  267. package/cjs/tools/mergeInto.js +0 -105
  268. package/cjs/tools/mergeInto.js.map +0 -1
  269. package/cjs/tools/monitor.d.ts +0 -9
  270. package/cjs/tools/monitor.js +0 -76
  271. package/cjs/tools/monitor.js.map +0 -1
  272. package/cjs/tools/observable.d.ts +0 -12
  273. package/cjs/tools/observable.js +0 -44
  274. package/cjs/tools/observable.js.map +0 -1
  275. package/cjs/tools/readBytesFromStream.d.ts +0 -11
  276. package/cjs/tools/readBytesFromStream.js +0 -64
  277. package/cjs/tools/readBytesFromStream.js.map +0 -1
  278. package/cjs/tools/sendToExtension.d.ts +0 -3
  279. package/cjs/tools/sendToExtension.js +0 -11
  280. package/cjs/tools/sendToExtension.js.map +0 -1
  281. package/cjs/tools/serialisation/context.d.ts +0 -6
  282. package/cjs/tools/serialisation/context.js +0 -3
  283. package/cjs/tools/serialisation/context.js.map +0 -1
  284. package/cjs/tools/serialisation/contextManager.d.ts +0 -21
  285. package/cjs/tools/serialisation/contextManager.js +0 -70
  286. package/cjs/tools/serialisation/contextManager.js.map +0 -1
  287. package/cjs/tools/serialisation/heavyCustomerDataWarning.d.ts +0 -8
  288. package/cjs/tools/serialisation/heavyCustomerDataWarning.js +0 -18
  289. package/cjs/tools/serialisation/heavyCustomerDataWarning.js.map +0 -1
  290. package/cjs/tools/serialisation/jsonStringify.d.ts +0 -14
  291. package/cjs/tools/serialisation/jsonStringify.js +0 -49
  292. package/cjs/tools/serialisation/jsonStringify.js.map +0 -1
  293. package/cjs/tools/serialisation/sanitize.d.ts +0 -18
  294. package/cjs/tools/serialisation/sanitize.js +0 -185
  295. package/cjs/tools/serialisation/sanitize.js.map +0 -1
  296. package/cjs/tools/timer.d.ts +0 -5
  297. package/cjs/tools/timer.js +0 -23
  298. package/cjs/tools/timer.js.map +0 -1
  299. package/cjs/tools/utils/arrayUtils.d.ts +0 -1
  300. package/cjs/tools/utils/arrayUtils.js +0 -11
  301. package/cjs/tools/utils/arrayUtils.js.map +0 -1
  302. package/cjs/tools/utils/browserDetection.d.ts +0 -2
  303. package/cjs/tools/utils/browserDetection.js +0 -12
  304. package/cjs/tools/utils/browserDetection.js.map +0 -1
  305. package/cjs/tools/utils/byteUtils.d.ts +0 -4
  306. package/cjs/tools/utils/byteUtils.js +0 -31
  307. package/cjs/tools/utils/byteUtils.js.map +0 -1
  308. package/cjs/tools/utils/functionUtils.d.ts +0 -9
  309. package/cjs/tools/utils/functionUtils.js +0 -48
  310. package/cjs/tools/utils/functionUtils.js.map +0 -1
  311. package/cjs/tools/utils/numberUtils.d.ts +0 -8
  312. package/cjs/tools/utils/numberUtils.js +0 -24
  313. package/cjs/tools/utils/numberUtils.js.map +0 -1
  314. package/cjs/tools/utils/objectUtils.d.ts +0 -10
  315. package/cjs/tools/utils/objectUtils.js +0 -26
  316. package/cjs/tools/utils/objectUtils.js.map +0 -1
  317. package/cjs/tools/utils/polyfills.d.ts +0 -24
  318. package/cjs/tools/utils/polyfills.js +0 -110
  319. package/cjs/tools/utils/polyfills.js.map +0 -1
  320. package/cjs/tools/utils/responseUtils.d.ts +0 -2
  321. package/cjs/tools/utils/responseUtils.js +0 -18
  322. package/cjs/tools/utils/responseUtils.js.map +0 -1
  323. package/cjs/tools/utils/stringUtils.d.ts +0 -7
  324. package/cjs/tools/utils/stringUtils.js +0 -32
  325. package/cjs/tools/utils/stringUtils.js.map +0 -1
  326. package/cjs/tools/utils/timeUtils.d.ts +0 -57
  327. package/cjs/tools/utils/timeUtils.js +0 -99
  328. package/cjs/tools/utils/timeUtils.js.map +0 -1
  329. package/cjs/tools/utils/typeUtils.d.ts +0 -4
  330. package/cjs/tools/utils/typeUtils.js +0 -17
  331. package/cjs/tools/utils/typeUtils.js.map +0 -1
  332. package/cjs/tools/utils/urlPolyfill.d.ts +0 -14
  333. package/cjs/tools/utils/urlPolyfill.js +0 -92
  334. package/cjs/tools/utils/urlPolyfill.js.map +0 -1
  335. package/cjs/tools/valueHistory.d.ts +0 -50
  336. package/cjs/tools/valueHistory.js +0 -106
  337. package/cjs/tools/valueHistory.js.map +0 -1
  338. package/cjs/transport/batch.d.ts +0 -19
  339. package/cjs/transport/batch.js +0 -79
  340. package/cjs/transport/batch.js.map +0 -1
  341. package/cjs/transport/eventBridge.d.ts +0 -12
  342. package/cjs/transport/eventBridge.js +0 -34
  343. package/cjs/transport/eventBridge.js.map +0 -1
  344. package/cjs/transport/flushController.d.ts +0 -48
  345. package/cjs/transport/flushController.js +0 -97
  346. package/cjs/transport/flushController.js.map +0 -1
  347. package/cjs/transport/httpRequest.d.ts +0 -37
  348. package/cjs/transport/httpRequest.js +0 -91
  349. package/cjs/transport/httpRequest.js.map +0 -1
  350. package/cjs/transport/index.d.ts +0 -4
  351. package/cjs/transport/index.js +0 -13
  352. package/cjs/transport/index.js.map +0 -1
  353. package/cjs/transport/sendWithRetryStrategy.d.ts +0 -39
  354. package/cjs/transport/sendWithRetryStrategy.js +0 -151
  355. package/cjs/transport/sendWithRetryStrategy.js.map +0 -1
  356. package/cjs/transport/startBatchWithReplica.d.ts +0 -15
  357. package/cjs/transport/startBatchWithReplica.js +0 -37
  358. package/cjs/transport/startBatchWithReplica.js.map +0 -1
  359. package/esm/boot/init.d.ts +0 -5
  360. package/esm/boot/init.js +0 -31
  361. package/esm/boot/init.js.map +0 -1
  362. package/esm/browser/addEventListener.d.ts +0 -76
  363. package/esm/browser/addEventListener.js +0 -47
  364. package/esm/browser/addEventListener.js.map +0 -1
  365. package/esm/browser/cookie.d.ts +0 -10
  366. package/esm/browser/cookie.js +0 -61
  367. package/esm/browser/cookie.js.map +0 -1
  368. package/esm/browser/fetchObservable.d.ts +0 -23
  369. package/esm/browser/fetchObservable.js +0 -70
  370. package/esm/browser/fetchObservable.js.map +0 -1
  371. package/esm/browser/pageExitObservable.d.ts +0 -14
  372. package/esm/browser/pageExitObservable.js +0 -53
  373. package/esm/browser/pageExitObservable.js.map +0 -1
  374. package/esm/browser/runOnReadyState.d.ts +0 -2
  375. package/esm/browser/runOnReadyState.js +0 -11
  376. package/esm/browser/runOnReadyState.js.map +0 -1
  377. package/esm/browser/types.d.ts +0 -19
  378. package/esm/browser/types.js +0 -5
  379. package/esm/browser/types.js.map +0 -1
  380. package/esm/browser/xhrObservable.d.ts +0 -22
  381. package/esm/browser/xhrObservable.js +0 -89
  382. package/esm/browser/xhrObservable.js.map +0 -1
  383. package/esm/domain/configuration/configuration.d.ts +0 -67
  384. package/esm/domain/configuration/configuration.js +0 -90
  385. package/esm/domain/configuration/configuration.js.map +0 -1
  386. package/esm/domain/configuration/endpointBuilder.d.ts +0 -14
  387. package/esm/domain/configuration/endpointBuilder.js +0 -90
  388. package/esm/domain/configuration/endpointBuilder.js.map +0 -1
  389. package/esm/domain/configuration/index.d.ts +0 -3
  390. package/esm/domain/configuration/index.js +0 -4
  391. package/esm/domain/configuration/index.js.map +0 -1
  392. package/esm/domain/configuration/intakeSites.d.ts +0 -5
  393. package/esm/domain/configuration/intakeSites.js +0 -6
  394. package/esm/domain/configuration/intakeSites.js.map +0 -1
  395. package/esm/domain/configuration/tags.d.ts +0 -4
  396. package/esm/domain/configuration/tags.js +0 -34
  397. package/esm/domain/configuration/tags.js.map +0 -1
  398. package/esm/domain/configuration/transportConfiguration.d.ts +0 -16
  399. package/esm/domain/configuration/transportConfiguration.js +0 -38
  400. package/esm/domain/configuration/transportConfiguration.js.map +0 -1
  401. package/esm/domain/console/consoleObservable.d.ts +0 -11
  402. package/esm/domain/console/consoleObservable.js +0 -70
  403. package/esm/domain/console/consoleObservable.js.map +0 -1
  404. package/esm/domain/deflate/index.d.ts +0 -1
  405. package/esm/domain/deflate/index.js +0 -2
  406. package/esm/domain/deflate/index.js.map +0 -1
  407. package/esm/domain/deflate/types.d.ts +0 -26
  408. package/esm/domain/deflate/types.js +0 -2
  409. package/esm/domain/deflate/types.js.map +0 -1
  410. package/esm/domain/error/error.d.ts +0 -28
  411. package/esm/domain/error/error.js +0 -121
  412. package/esm/domain/error/error.js.map +0 -1
  413. package/esm/domain/error/error.types.d.ts +0 -40
  414. package/esm/domain/error/error.types.js +0 -10
  415. package/esm/domain/error/error.types.js.map +0 -1
  416. package/esm/domain/error/trackRuntimeError.d.ts +0 -5
  417. package/esm/domain/error/trackRuntimeError.js +0 -17
  418. package/esm/domain/error/trackRuntimeError.js.map +0 -1
  419. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
  420. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +0 -36
  421. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
  422. package/esm/domain/report/browser.types.d.ts +0 -24
  423. package/esm/domain/report/browser.types.js +0 -2
  424. package/esm/domain/report/browser.types.js.map +0 -1
  425. package/esm/domain/report/reportObservable.d.ts +0 -15
  426. package/esm/domain/report/reportObservable.js +0 -90
  427. package/esm/domain/report/reportObservable.js.map +0 -1
  428. package/esm/domain/resourceUtils.d.ts +0 -16
  429. package/esm/domain/resourceUtils.js +0 -2
  430. package/esm/domain/resourceUtils.js.map +0 -1
  431. package/esm/domain/session/oldCookiesMigration.d.ts +0 -11
  432. package/esm/domain/session/oldCookiesMigration.js +0 -36
  433. package/esm/domain/session/oldCookiesMigration.js.map +0 -1
  434. package/esm/domain/session/sessionConstants.d.ts +0 -2
  435. package/esm/domain/session/sessionConstants.js +0 -4
  436. package/esm/domain/session/sessionConstants.js.map +0 -1
  437. package/esm/domain/session/sessionManager.d.ts +0 -20
  438. package/esm/domain/session/sessionManager.js +0 -60
  439. package/esm/domain/session/sessionManager.js.map +0 -1
  440. package/esm/domain/session/sessionState.d.ts +0 -11
  441. package/esm/domain/session/sessionState.js +0 -38
  442. package/esm/domain/session/sessionState.js.map +0 -1
  443. package/esm/domain/session/sessionStore.d.ts +0 -34
  444. package/esm/domain/session/sessionStore.js +0 -139
  445. package/esm/domain/session/sessionStore.js.map +0 -1
  446. package/esm/domain/session/sessionStoreOperations.d.ts +0 -15
  447. package/esm/domain/session/sessionStoreOperations.js +0 -99
  448. package/esm/domain/session/sessionStoreOperations.js.map +0 -1
  449. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +0 -6
  450. package/esm/domain/session/storeStrategies/sessionInCookie.js +0 -42
  451. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
  452. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -3
  453. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +0 -35
  454. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
  455. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -14
  456. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +0 -2
  457. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
  458. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +0 -11
  459. package/esm/domain/synthetics/syntheticsWorkerValues.js +0 -16
  460. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
  461. package/esm/domain/telemetry/index.d.ts +0 -3
  462. package/esm/domain/telemetry/index.js +0 -4
  463. package/esm/domain/telemetry/index.js.map +0 -1
  464. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -11
  465. package/esm/domain/telemetry/rawTelemetryEvent.types.js +0 -5
  466. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
  467. package/esm/domain/telemetry/telemetry.d.ts +0 -112
  468. package/esm/domain/telemetry/telemetry.js +0 -134
  469. package/esm/domain/telemetry/telemetry.js.map +0 -1
  470. package/esm/domain/telemetry/telemetryEvent.types.d.ts +0 -375
  471. package/esm/domain/telemetry/telemetryEvent.types.js +0 -6
  472. package/esm/domain/telemetry/telemetryEvent.types.js.map +0 -1
  473. package/esm/domain/tracekit/computeStackTrace.d.ts +0 -5
  474. package/esm/domain/tracekit/computeStackTrace.js +0 -114
  475. package/esm/domain/tracekit/computeStackTrace.js.map +0 -1
  476. package/esm/domain/tracekit/index.d.ts +0 -3
  477. package/esm/domain/tracekit/index.js +0 -3
  478. package/esm/domain/tracekit/index.js.map +0 -1
  479. package/esm/domain/tracekit/tracekit.d.ts +0 -35
  480. package/esm/domain/tracekit/tracekit.js +0 -91
  481. package/esm/domain/tracekit/tracekit.js.map +0 -1
  482. package/esm/domain/tracekit/types.d.ts +0 -44
  483. package/esm/domain/tracekit/types.js +0 -2
  484. package/esm/domain/tracekit/types.js.map +0 -1
  485. package/esm/domain/user/index.d.ts +0 -2
  486. package/esm/domain/user/index.js +0 -3
  487. package/esm/domain/user/index.js.map +0 -1
  488. package/esm/domain/user/user.d.ts +0 -12
  489. package/esm/domain/user/user.js +0 -30
  490. package/esm/domain/user/user.js.map +0 -1
  491. package/esm/domain/user/user.types.d.ts +0 -6
  492. package/esm/domain/user/user.types.js +0 -2
  493. package/esm/domain/user/user.types.js.map +0 -1
  494. package/esm/index.d.ts +0 -63
  495. package/esm/index.js +0 -61
  496. package/esm/index.js.map +0 -1
  497. package/esm/tools/abstractLifeCycle.d.ts +0 -23
  498. package/esm/tools/abstractLifeCycle.js +0 -26
  499. package/esm/tools/abstractLifeCycle.js.map +0 -1
  500. package/esm/tools/boundedBuffer.d.ts +0 -5
  501. package/esm/tools/boundedBuffer.js +0 -19
  502. package/esm/tools/boundedBuffer.js.map +0 -1
  503. package/esm/tools/catchUserErrors.d.ts +0 -1
  504. package/esm/tools/catchUserErrors.js +0 -16
  505. package/esm/tools/catchUserErrors.js.map +0 -1
  506. package/esm/tools/display.d.ts +0 -35
  507. package/esm/tools/display.js +0 -41
  508. package/esm/tools/display.js.map +0 -1
  509. package/esm/tools/experimentalFeatures.d.ts +0 -24
  510. package/esm/tools/experimentalFeatures.js +0 -40
  511. package/esm/tools/experimentalFeatures.js.map +0 -1
  512. package/esm/tools/getGlobalObject.d.ts +0 -4
  513. package/esm/tools/getGlobalObject.js +0 -33
  514. package/esm/tools/getGlobalObject.js.map +0 -1
  515. package/esm/tools/getZoneJsOriginalValue.d.ts +0 -19
  516. package/esm/tools/getZoneJsOriginalValue.js +0 -26
  517. package/esm/tools/getZoneJsOriginalValue.js.map +0 -1
  518. package/esm/tools/instrumentMethod.d.ts +0 -19
  519. package/esm/tools/instrumentMethod.js +0 -77
  520. package/esm/tools/instrumentMethod.js.map +0 -1
  521. package/esm/tools/matchOption.d.ts +0 -8
  522. package/esm/tools/matchOption.js +0 -33
  523. package/esm/tools/matchOption.js.map +0 -1
  524. package/esm/tools/mergeInto.d.ts +0 -25
  525. package/esm/tools/mergeInto.js +0 -99
  526. package/esm/tools/mergeInto.js.map +0 -1
  527. package/esm/tools/monitor.d.ts +0 -9
  528. package/esm/tools/monitor.js +0 -66
  529. package/esm/tools/monitor.js.map +0 -1
  530. package/esm/tools/observable.d.ts +0 -12
  531. package/esm/tools/observable.js +0 -40
  532. package/esm/tools/observable.js.map +0 -1
  533. package/esm/tools/readBytesFromStream.d.ts +0 -11
  534. package/esm/tools/readBytesFromStream.js +0 -60
  535. package/esm/tools/readBytesFromStream.js.map +0 -1
  536. package/esm/tools/sendToExtension.d.ts +0 -3
  537. package/esm/tools/sendToExtension.js +0 -7
  538. package/esm/tools/sendToExtension.js.map +0 -1
  539. package/esm/tools/serialisation/context.d.ts +0 -6
  540. package/esm/tools/serialisation/context.js +0 -2
  541. package/esm/tools/serialisation/context.js.map +0 -1
  542. package/esm/tools/serialisation/contextManager.d.ts +0 -21
  543. package/esm/tools/serialisation/contextManager.js +0 -66
  544. package/esm/tools/serialisation/contextManager.js.map +0 -1
  545. package/esm/tools/serialisation/heavyCustomerDataWarning.d.ts +0 -8
  546. package/esm/tools/serialisation/heavyCustomerDataWarning.js +0 -14
  547. package/esm/tools/serialisation/heavyCustomerDataWarning.js.map +0 -1
  548. package/esm/tools/serialisation/jsonStringify.d.ts +0 -14
  549. package/esm/tools/serialisation/jsonStringify.js +0 -44
  550. package/esm/tools/serialisation/jsonStringify.js.map +0 -1
  551. package/esm/tools/serialisation/sanitize.d.ts +0 -18
  552. package/esm/tools/serialisation/sanitize.js +0 -181
  553. package/esm/tools/serialisation/sanitize.js.map +0 -1
  554. package/esm/tools/timer.d.ts +0 -5
  555. package/esm/tools/timer.js +0 -16
  556. package/esm/tools/timer.js.map +0 -1
  557. package/esm/tools/utils/arrayUtils.d.ts +0 -1
  558. package/esm/tools/utils/arrayUtils.js +0 -7
  559. package/esm/tools/utils/arrayUtils.js.map +0 -1
  560. package/esm/tools/utils/browserDetection.d.ts +0 -2
  561. package/esm/tools/utils/browserDetection.js +0 -7
  562. package/esm/tools/utils/browserDetection.js.map +0 -1
  563. package/esm/tools/utils/byteUtils.d.ts +0 -4
  564. package/esm/tools/utils/byteUtils.js +0 -26
  565. package/esm/tools/utils/byteUtils.js.map +0 -1
  566. package/esm/tools/utils/functionUtils.d.ts +0 -9
  567. package/esm/tools/utils/functionUtils.js +0 -43
  568. package/esm/tools/utils/functionUtils.js.map +0 -1
  569. package/esm/tools/utils/numberUtils.d.ts +0 -8
  570. package/esm/tools/utils/numberUtils.js +0 -17
  571. package/esm/tools/utils/numberUtils.js.map +0 -1
  572. package/esm/tools/utils/objectUtils.d.ts +0 -10
  573. package/esm/tools/utils/objectUtils.js +0 -19
  574. package/esm/tools/utils/objectUtils.js.map +0 -1
  575. package/esm/tools/utils/polyfills.d.ts +0 -24
  576. package/esm/tools/utils/polyfills.js +0 -95
  577. package/esm/tools/utils/polyfills.js.map +0 -1
  578. package/esm/tools/utils/responseUtils.d.ts +0 -2
  579. package/esm/tools/utils/responseUtils.js +0 -13
  580. package/esm/tools/utils/responseUtils.js.map +0 -1
  581. package/esm/tools/utils/stringUtils.d.ts +0 -7
  582. package/esm/tools/utils/stringUtils.js +0 -26
  583. package/esm/tools/utils/stringUtils.js.map +0 -1
  584. package/esm/tools/utils/timeUtils.d.ts +0 -57
  585. package/esm/tools/utils/timeUtils.js +0 -82
  586. package/esm/tools/utils/timeUtils.js.map +0 -1
  587. package/esm/tools/utils/typeUtils.d.ts +0 -4
  588. package/esm/tools/utils/typeUtils.js +0 -13
  589. package/esm/tools/utils/typeUtils.js.map +0 -1
  590. package/esm/tools/utils/urlPolyfill.d.ts +0 -14
  591. package/esm/tools/utils/urlPolyfill.js +0 -80
  592. package/esm/tools/utils/urlPolyfill.js.map +0 -1
  593. package/esm/tools/valueHistory.d.ts +0 -50
  594. package/esm/tools/valueHistory.js +0 -103
  595. package/esm/tools/valueHistory.js.map +0 -1
  596. package/esm/transport/batch.d.ts +0 -19
  597. package/esm/transport/batch.js +0 -76
  598. package/esm/transport/batch.js.map +0 -1
  599. package/esm/transport/eventBridge.d.ts +0 -12
  600. package/esm/transport/eventBridge.js +0 -29
  601. package/esm/transport/eventBridge.js.map +0 -1
  602. package/esm/transport/flushController.d.ts +0 -48
  603. package/esm/transport/flushController.js +0 -93
  604. package/esm/transport/flushController.js.map +0 -1
  605. package/esm/transport/httpRequest.d.ts +0 -37
  606. package/esm/transport/httpRequest.js +0 -85
  607. package/esm/transport/httpRequest.js.map +0 -1
  608. package/esm/transport/index.d.ts +0 -4
  609. package/esm/transport/index.js +0 -5
  610. package/esm/transport/index.js.map +0 -1
  611. package/esm/transport/sendWithRetryStrategy.d.ts +0 -39
  612. package/esm/transport/sendWithRetryStrategy.js +0 -146
  613. package/esm/transport/sendWithRetryStrategy.js.map +0 -1
  614. package/esm/transport/startBatchWithReplica.d.ts +0 -15
  615. package/esm/transport/startBatchWithReplica.js +0 -33
  616. package/esm/transport/startBatchWithReplica.js.map +0 -1
  617. package/src/domain/configuration/intakeSites.ts +0 -5
  618. package/src/domain/configuration/tags.ts +0 -43
  619. package/src/domain/tracekit/computeStackTrace.ts +0 -141
  620. package/src/domain/tracekit/index.ts +0 -3
  621. package/src/domain/tracekit/tracekit.ts +0 -96
  622. package/src/domain/tracekit/types.ts +0 -47
  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/tools/serialisation/contextManager.ts +0 -79
  627. package/src/tools/serialisation/heavyCustomerDataWarning.ts +0 -26
  628. package/src/transport/startBatchWithReplica.ts +0 -52
@@ -1,15 +1,16 @@
1
- import type { EndpointType } from '../domain/configuration'
1
+ import type { TrackType } from '../domain/configuration'
2
2
  import { setTimeout } from '../tools/timer'
3
3
  import { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils'
4
4
  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,
41
- endpointType: EndpointType,
42
- reportError: (error: RawError) => void
38
+ export function sendWithRetryStrategy<Body extends Payload>(
39
+ payload: Body,
40
+ state: RetryState<Body>,
41
+ sendStrategy: SendStrategy<Body>,
42
+ trackType: TrackType,
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, endpointType, 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, endpointType, 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,
64
- endpointType: EndpointType,
65
- reportError: (error: RawError) => void
68
+ function scheduleRetry<Body extends Payload>(
69
+ state: RetryState<Body>,
70
+ sendStrategy: SendStrategy<Body>,
71
+ trackType: TrackType,
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, endpointType, 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, endpointType, 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,21 +113,23 @@ 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,
115
- endpointType: EndpointType,
116
- reportError: (error: RawError) => void
124
+ state: RetryState<Body>,
125
+ sendStrategy: SendStrategy<Body>,
126
+ trackType: TrackType,
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({
120
- message: `Reached max ${endpointType} events size queued for upload: ${MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE}MiB`,
132
+ message: `Reached max ${trackType} events size queued for upload: ${MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE}MiB`,
121
133
  source: ErrorSource.AGENT,
122
134
  startClocks: clocksNow(),
123
135
  })
@@ -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, endpointType, 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: "0.2.11",
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;QACtD,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,IAAK,OAAA,IAAA,iCAAe,EAAC,EAAE,EAAE,kCAAkC,CAAC,EAAE,EAAzD,CAAyD,CAAC,CAAA;KACpG;AACH,CAAC;AAND,oCAMC"}
@@ -1,76 +0,0 @@
1
- import type { Configuration } from '../domain/configuration';
2
- import type { VisualViewport, VisualViewportEventMap } from './types';
3
- export declare const enum DOM_EVENT {
4
- BEFORE_UNLOAD = "beforeunload",
5
- CLICK = "click",
6
- DBL_CLICK = "dblclick",
7
- KEY_DOWN = "keydown",
8
- LOAD = "load",
9
- POP_STATE = "popstate",
10
- SCROLL = "scroll",
11
- TOUCH_START = "touchstart",
12
- TOUCH_END = "touchend",
13
- TOUCH_MOVE = "touchmove",
14
- VISIBILITY_CHANGE = "visibilitychange",
15
- PAGE_SHOW = "pageshow",
16
- FREEZE = "freeze",
17
- RESUME = "resume",
18
- DOM_CONTENT_LOADED = "DOMContentLoaded",
19
- POINTER_DOWN = "pointerdown",
20
- POINTER_UP = "pointerup",
21
- POINTER_CANCEL = "pointercancel",
22
- HASH_CHANGE = "hashchange",
23
- PAGE_HIDE = "pagehide",
24
- MOUSE_DOWN = "mousedown",
25
- MOUSE_UP = "mouseup",
26
- MOUSE_MOVE = "mousemove",
27
- FOCUS = "focus",
28
- BLUR = "blur",
29
- CONTEXT_MENU = "contextmenu",
30
- RESIZE = "resize",
31
- CHANGE = "change",
32
- INPUT = "input",
33
- PLAY = "play",
34
- PAUSE = "pause",
35
- SECURITY_POLICY_VIOLATION = "securitypolicyviolation",
36
- SELECTION_CHANGE = "selectionchange"
37
- }
38
- interface AddEventListenerOptions {
39
- once?: boolean;
40
- capture?: boolean;
41
- passive?: boolean;
42
- }
43
- type EventMapFor<T> = T extends Window ? WindowEventMap & {
44
- freeze: Event;
45
- resume: Event;
46
- visibilitychange: Event;
47
- } : 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>;
48
- /**
49
- * Add an event listener to an event target object (Window, Element, mock object...). This provides
50
- * a few conveniences compared to using `element.addEventListener` directly:
51
- *
52
- * * supports IE11 by: using an option object only if needed and emulating the `once` option
53
- *
54
- * * wraps the listener with a `monitor` function
55
- *
56
- * * returns a `stop` function to remove the listener
57
- */
58
- export declare function addEventListener<Target extends EventTarget, EventName extends keyof EventMapFor<Target> & string>(configuration: Configuration, eventTarget: Target, eventName: EventName, listener: (event: EventMapFor<Target>[EventName]) => void, options?: AddEventListenerOptions): {
59
- stop: () => void;
60
- };
61
- /**
62
- * Add event listeners to an event target object (Window, Element, mock object...). This provides
63
- * a few conveniences compared to using `element.addEventListener` directly:
64
- *
65
- * * supports IE11 by: using an option object only if needed and emulating the `once` option
66
- *
67
- * * wraps the listener with a `monitor` function
68
- *
69
- * * returns a `stop` function to remove the listener
70
- *
71
- * * with `once: true`, the listener will be called at most once, even if different events are listened
72
- */
73
- export declare function addEventListeners<Target extends EventTarget, EventName extends keyof EventMapFor<Target> & string>(_: Configuration, eventTarget: Target, eventNames: EventName[], listener: (event: EventMapFor<Target>[EventName]) => void, { once, capture, passive }?: AddEventListenerOptions): {
74
- stop: () => void;
75
- };
76
- export {};
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addEventListeners = exports.addEventListener = void 0;
4
- var monitor_1 = require("../tools/monitor");
5
- var getZoneJsOriginalValue_1 = require("../tools/getZoneJsOriginalValue");
6
- /**
7
- * Add an event listener to an event target object (Window, Element, mock object...). This provides
8
- * a few conveniences compared to using `element.addEventListener` directly:
9
- *
10
- * * supports IE11 by: using an option object only if needed and emulating the `once` option
11
- *
12
- * * wraps the listener with a `monitor` function
13
- *
14
- * * returns a `stop` function to remove the listener
15
- */
16
- function addEventListener(configuration, eventTarget, eventName, listener, options) {
17
- return addEventListeners(configuration, eventTarget, [eventName], listener, options);
18
- }
19
- exports.addEventListener = addEventListener;
20
- /**
21
- * Add event listeners to an event target object (Window, Element, mock object...). This provides
22
- * a few conveniences compared to using `element.addEventListener` directly:
23
- *
24
- * * supports IE11 by: using an option object only if needed and emulating the `once` option
25
- *
26
- * * wraps the listener with a `monitor` function
27
- *
28
- * * returns a `stop` function to remove the listener
29
- *
30
- * * with `once: true`, the listener will be called at most once, even if different events are listened
31
- */
32
- function addEventListeners(_, eventTarget, eventNames, listener, _a) {
33
- var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;
34
- var wrappedListener = (0, monitor_1.monitor)(once
35
- ? function (event) {
36
- stop();
37
- listener(event);
38
- }
39
- : listener);
40
- var options = passive ? { capture: capture, passive: passive } : capture;
41
- var add = (0, getZoneJsOriginalValue_1.getZoneJsOriginalValue)(eventTarget, 'addEventListener');
42
- eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, wrappedListener, options); });
43
- function stop() {
44
- var remove = (0, getZoneJsOriginalValue_1.getZoneJsOriginalValue)(eventTarget, 'removeEventListener');
45
- eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, wrappedListener, options); });
46
- }
47
- return {
48
- stop: stop,
49
- };
50
- }
51
- exports.addEventListeners = addEventListeners;
52
- //# 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;AAyExE;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAC9B,aAA4B,EAC5B,WAAmB,EACnB,SAAoB,EACpB,QAAyD,EACzD,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,CAAgB,EAChB,WAAmB,EACnB,UAAuB,EACvB,QAAyD,EACzD,EAAwD;QAAxD,qBAAsD,EAAE,KAAA,EAAtD,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,OAAO,aAAA;IAExB,IAAM,eAAe,GAAG,IAAA,iBAAO,EAC7B,IAAI;QACF,CAAC,CAAC,UAAC,KAAY;YACX,IAAI,EAAE,CAAA;YACN,QAAQ,CAAC,KAAuC,CAAC,CAAA;QACnD,CAAC;QACH,CAAC,CAAE,QAAmC,CACzC,CAAA;IAED,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,eAAe,EAAE,OAAO,CAAC,EAA1D,CAA0D,CAAC,CAAA;IAE7F,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,eAAe,EAAE,OAAO,CAAC,EAA7D,CAA6D,CAAC,CAAA;IAClG,CAAC;IAED,OAAO;QACL,IAAI,MAAA;KACL,CAAA;AACH,CAAC;AA7BD,8CA6BC"}
@@ -1,10 +0,0 @@
1
- export interface CookieOptions {
2
- secure?: boolean;
3
- crossSite?: boolean;
4
- domain?: string;
5
- }
6
- export declare function setCookie(name: string, value: string, expireDelay: number, options?: CookieOptions): void;
7
- export declare function getCookie(name: string): string | undefined;
8
- export declare function deleteCookie(name: string, options?: CookieOptions): void;
9
- export declare function areCookiesAuthorized(options: CookieOptions): boolean;
10
- export declare function getCurrentSite(): string;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCurrentSite = exports.areCookiesAuthorized = exports.deleteCookie = 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
- document.cookie = "".concat(name, "=").concat(value, ";").concat(expires, ";path=/;samesite=").concat(sameSite).concat(domain).concat(secure);
15
- }
16
- exports.setCookie = setCookie;
17
- function getCookie(name) {
18
- return (0, stringUtils_1.findCommaSeparatedValue)(document.cookie, name);
19
- }
20
- exports.getCookie = getCookie;
21
- function deleteCookie(name, options) {
22
- setCookie(name, '', 0, options);
23
- }
24
- exports.deleteCookie = deleteCookie;
25
- function areCookiesAuthorized(options) {
26
- if (document.cookie === undefined || document.cookie === null) {
27
- return false;
28
- }
29
- try {
30
- // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
31
- // the test cookie lifetime
32
- var testCookieName = "oo_cookie_test_".concat((0, stringUtils_1.generateUUID)());
33
- var testCookieValue = 'test';
34
- setCookie(testCookieName, testCookieValue, timeUtils_1.ONE_MINUTE, options);
35
- var isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;
36
- deleteCookie(testCookieName, options);
37
- return isCookieCorrectlySet;
38
- }
39
- catch (error) {
40
- display_1.display.error(error);
41
- return false;
42
- }
43
- }
44
- exports.areCookiesAuthorized = areCookiesAuthorized;
45
- /**
46
- * No API to retrieve it, number of levels for subdomain and suffix are unknown
47
- * strategy: find the minimal domain on which cookies are allowed to be set
48
- * https://web.dev/same-site-same-origin/#site
49
- */
50
- var getCurrentSiteCache;
51
- function getCurrentSite() {
52
- if (getCurrentSiteCache === undefined) {
53
- // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
54
- // the test cookie lifetime
55
- var testCookieName = "oo_site_test_".concat((0, stringUtils_1.generateUUID)());
56
- var testCookieValue = 'test';
57
- var domainLevels = window.location.hostname.split('.');
58
- var candidateDomain = domainLevels.pop();
59
- while (domainLevels.length && !getCookie(testCookieName)) {
60
- candidateDomain = "".concat(domainLevels.pop(), ".").concat(candidateDomain);
61
- setCookie(testCookieName, testCookieValue, timeUtils_1.ONE_SECOND, { domain: candidateDomain });
62
- }
63
- deleteCookie(testCookieName, { domain: candidateDomain });
64
- getCurrentSiteCache = candidateDomain;
65
- }
66
- return getCurrentSiteCache;
67
- }
68
- exports.getCurrentSite = getCurrentSite;
69
- //# 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,74 +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
- var observable = new observable_1.Observable(function () {
19
- if (!window.fetch) {
20
- return;
21
- }
22
- var stop = (0, instrumentMethod_1.instrumentMethod)(window, 'fetch', function (originalFetch) {
23
- return function (input, init) {
24
- var responsePromise;
25
- var context = (0, monitor_1.callMonitored)(beforeSend, null, [observable, input, init]);
26
- if (context) {
27
- responsePromise = originalFetch.call(this, context.input, context.init);
28
- (0, monitor_1.callMonitored)(afterSend, null, [observable, responsePromise, context]);
29
- }
30
- else {
31
- responsePromise = originalFetch.call(this, input, init);
32
- }
33
- return responsePromise;
34
- };
35
- }).stop;
36
- return stop;
37
- });
38
- return observable;
39
- }
40
- function beforeSend(observable, input, init) {
41
- var method = (init && init.method) || (input instanceof Request && input.method) || 'GET';
42
- var url = input instanceof Request ? input.url : (0, urlPolyfill_1.normalizeUrl)(String(input));
43
- var startClocks = (0, timeUtils_1.clocksNow)();
44
- var context = {
45
- state: 'start',
46
- init: init,
47
- input: input,
48
- method: method,
49
- startClocks: startClocks,
50
- url: url,
51
- };
52
- observable.notify(context);
53
- return context;
54
- }
55
- function afterSend(observable, responsePromise, startContext) {
56
- var reportFetch = function (response) {
57
- var context = startContext;
58
- context.state = 'resolve';
59
- if ('stack' in response || response instanceof Error) {
60
- context.status = 0;
61
- context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;
62
- context.error = response;
63
- }
64
- else if ('status' in response) {
65
- context.response = response;
66
- context.responseType = response.type;
67
- context.status = response.status;
68
- context.isAborted = false;
69
- }
70
- observable.notify(context);
71
- };
72
- responsePromise.then((0, monitor_1.monitor)(reportFetch), (0, monitor_1.monitor)(reportFetch));
73
- }
74
- //# 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;