@pratham.raval/browser-core 6.22.3

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 (710) hide show
  1. package/README.md +3 -0
  2. package/cjs/boot/displayAlreadyInitializedError.d.ts +2 -0
  3. package/cjs/boot/displayAlreadyInitializedError.js +10 -0
  4. package/cjs/boot/displayAlreadyInitializedError.js.map +1 -0
  5. package/cjs/boot/init.d.ts +14 -0
  6. package/cjs/boot/init.js +39 -0
  7. package/cjs/boot/init.js.map +1 -0
  8. package/cjs/browser/addEventListener.d.ts +87 -0
  9. package/cjs/browser/addEventListener.js +55 -0
  10. package/cjs/browser/addEventListener.js.map +1 -0
  11. package/cjs/browser/browser.types.d.ts +51 -0
  12. package/cjs/browser/browser.types.js +6 -0
  13. package/cjs/browser/browser.types.js.map +1 -0
  14. package/cjs/browser/cookie.d.ts +18 -0
  15. package/cjs/browser/cookie.js +101 -0
  16. package/cjs/browser/cookie.js.map +1 -0
  17. package/cjs/browser/fetchObservable.d.ts +25 -0
  18. package/cjs/browser/fetchObservable.js +79 -0
  19. package/cjs/browser/fetchObservable.js.map +1 -0
  20. package/cjs/browser/pageMayExitObservable.d.ts +14 -0
  21. package/cjs/browser/pageMayExitObservable.js +45 -0
  22. package/cjs/browser/pageMayExitObservable.js.map +1 -0
  23. package/cjs/browser/runOnReadyState.d.ts +5 -0
  24. package/cjs/browser/runOnReadyState.js +20 -0
  25. package/cjs/browser/runOnReadyState.js.map +1 -0
  26. package/cjs/browser/xhrObservable.d.ts +23 -0
  27. package/cjs/browser/xhrObservable.js +83 -0
  28. package/cjs/browser/xhrObservable.js.map +1 -0
  29. package/cjs/domain/allowedTrackingOrigins.d.ts +4 -0
  30. package/cjs/domain/allowedTrackingOrigins.js +25 -0
  31. package/cjs/domain/allowedTrackingOrigins.js.map +1 -0
  32. package/cjs/domain/bufferedData.d.ts +14 -0
  33. package/cjs/domain/bufferedData.js +22 -0
  34. package/cjs/domain/bufferedData.js.map +1 -0
  35. package/cjs/domain/configuration/configuration.d.ts +303 -0
  36. package/cjs/domain/configuration/configuration.js +152 -0
  37. package/cjs/domain/configuration/configuration.js.map +1 -0
  38. package/cjs/domain/configuration/endpointBuilder.d.ts +12 -0
  39. package/cjs/domain/configuration/endpointBuilder.js +78 -0
  40. package/cjs/domain/configuration/endpointBuilder.js.map +1 -0
  41. package/cjs/domain/configuration/index.d.ts +5 -0
  42. package/cjs/domain/configuration/index.js +16 -0
  43. package/cjs/domain/configuration/index.js.map +1 -0
  44. package/cjs/domain/configuration/transportConfiguration.d.ts +20 -0
  45. package/cjs/domain/configuration/transportConfiguration.js +54 -0
  46. package/cjs/domain/configuration/transportConfiguration.js.map +1 -0
  47. package/cjs/domain/connectivity/connectivity.d.ts +14 -0
  48. package/cjs/domain/connectivity/connectivity.js +14 -0
  49. package/cjs/domain/connectivity/connectivity.js.map +1 -0
  50. package/cjs/domain/connectivity/index.d.ts +1 -0
  51. package/cjs/domain/connectivity/index.js +18 -0
  52. package/cjs/domain/connectivity/index.js.map +1 -0
  53. package/cjs/domain/console/consoleObservable.d.ts +21 -0
  54. package/cjs/domain/console/consoleObservable.js +84 -0
  55. package/cjs/domain/console/consoleObservable.js.map +1 -0
  56. package/cjs/domain/context/contextConstants.d.ts +21 -0
  57. package/cjs/domain/context/contextConstants.js +18 -0
  58. package/cjs/domain/context/contextConstants.js.map +1 -0
  59. package/cjs/domain/context/contextManager.d.ts +19 -0
  60. package/cjs/domain/context/contextManager.js +60 -0
  61. package/cjs/domain/context/contextManager.js.map +1 -0
  62. package/cjs/domain/context/contextUtils.d.ts +5 -0
  63. package/cjs/domain/context/contextUtils.js +16 -0
  64. package/cjs/domain/context/contextUtils.js.map +1 -0
  65. package/cjs/domain/context/defineContextMethod.d.ts +6 -0
  66. package/cjs/domain/context/defineContextMethod.js +21 -0
  67. package/cjs/domain/context/defineContextMethod.js.map +1 -0
  68. package/cjs/domain/context/storeContextManager.d.ts +6 -0
  69. package/cjs/domain/context/storeContextManager.js +40 -0
  70. package/cjs/domain/context/storeContextManager.js.map +1 -0
  71. package/cjs/domain/contexts/accountContext.d.ts +26 -0
  72. package/cjs/domain/contexts/accountContext.js +33 -0
  73. package/cjs/domain/contexts/accountContext.js.map +1 -0
  74. package/cjs/domain/contexts/globalContext.d.ts +18 -0
  75. package/cjs/domain/contexts/globalContext.js +21 -0
  76. package/cjs/domain/contexts/globalContext.js.map +1 -0
  77. package/cjs/domain/contexts/rumInternalContext.type.d.ts +14 -0
  78. package/cjs/domain/contexts/rumInternalContext.type.js +3 -0
  79. package/cjs/domain/contexts/rumInternalContext.type.js.map +1 -0
  80. package/cjs/domain/contexts/userContext.d.ts +29 -0
  81. package/cjs/domain/contexts/userContext.js +45 -0
  82. package/cjs/domain/contexts/userContext.js.map +1 -0
  83. package/cjs/domain/deflate/deflate.types.d.ts +40 -0
  84. package/cjs/domain/deflate/deflate.types.js +3 -0
  85. package/cjs/domain/deflate/deflate.types.js.map +1 -0
  86. package/cjs/domain/deflate/index.d.ts +1 -0
  87. package/cjs/domain/deflate/index.js +18 -0
  88. package/cjs/domain/deflate/index.js.map +1 -0
  89. package/cjs/domain/error/error.d.ts +23 -0
  90. package/cjs/domain/error/error.js +74 -0
  91. package/cjs/domain/error/error.js.map +1 -0
  92. package/cjs/domain/error/error.types.d.ts +47 -0
  93. package/cjs/domain/error/error.types.js +13 -0
  94. package/cjs/domain/error/error.types.js.map +1 -0
  95. package/cjs/domain/error/trackRuntimeError.d.ts +11 -0
  96. package/cjs/domain/error/trackRuntimeError.js +48 -0
  97. package/cjs/domain/error/trackRuntimeError.js.map +1 -0
  98. package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +5 -0
  99. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +39 -0
  100. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -0
  101. package/cjs/domain/extension/extensionUtils.d.ts +10 -0
  102. package/cjs/domain/extension/extensionUtils.js +30 -0
  103. package/cjs/domain/extension/extensionUtils.js.map +1 -0
  104. package/cjs/domain/intakeSites.d.ts +8 -0
  105. package/cjs/domain/intakeSites.js +11 -0
  106. package/cjs/domain/intakeSites.js.map +1 -0
  107. package/cjs/domain/report/browser.types.d.ts +34 -0
  108. package/cjs/domain/report/browser.types.js +3 -0
  109. package/cjs/domain/report/browser.types.js.map +1 -0
  110. package/cjs/domain/report/reportObservable.d.ts +14 -0
  111. package/cjs/domain/report/reportObservable.js +99 -0
  112. package/cjs/domain/report/reportObservable.js.map +1 -0
  113. package/cjs/domain/resourceUtils.d.ts +18 -0
  114. package/cjs/domain/resourceUtils.js +20 -0
  115. package/cjs/domain/resourceUtils.js.map +1 -0
  116. package/cjs/domain/session/oldCookiesMigration.d.ts +11 -0
  117. package/cjs/domain/session/oldCookiesMigration.js +40 -0
  118. package/cjs/domain/session/oldCookiesMigration.js.map +1 -0
  119. package/cjs/domain/session/sessionConstants.d.ts +15 -0
  120. package/cjs/domain/session/sessionConstants.js +16 -0
  121. package/cjs/domain/session/sessionConstants.js.map +1 -0
  122. package/cjs/domain/session/sessionManager.d.ts +28 -0
  123. package/cjs/domain/session/sessionManager.js +185 -0
  124. package/cjs/domain/session/sessionManager.js.map +1 -0
  125. package/cjs/domain/session/sessionState.d.ts +16 -0
  126. package/cjs/domain/session/sessionState.js +76 -0
  127. package/cjs/domain/session/sessionState.js.map +1 -0
  128. package/cjs/domain/session/sessionStateValidation.d.ts +3 -0
  129. package/cjs/domain/session/sessionStateValidation.js +11 -0
  130. package/cjs/domain/session/sessionStateValidation.js.map +1 -0
  131. package/cjs/domain/session/sessionStore.d.ts +38 -0
  132. package/cjs/domain/session/sessionStore.js +181 -0
  133. package/cjs/domain/session/sessionStore.js.map +1 -0
  134. package/cjs/domain/session/sessionStoreOperations.d.ts +12 -0
  135. package/cjs/domain/session/sessionStoreOperations.js +119 -0
  136. package/cjs/domain/session/sessionStoreOperations.js.map +1 -0
  137. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +8 -0
  138. package/cjs/domain/session/storeStrategies/sessionInCookie.js +56 -0
  139. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
  140. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +4 -0
  141. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +41 -0
  142. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -0
  143. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -0
  144. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +5 -0
  145. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -0
  146. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +12 -0
  147. package/cjs/domain/synthetics/syntheticsWorkerValues.js +31 -0
  148. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -0
  149. package/cjs/domain/tags.d.ts +6 -0
  150. package/cjs/domain/tags.js +67 -0
  151. package/cjs/domain/tags.js.map +1 -0
  152. package/cjs/domain/telemetry/index.d.ts +4 -0
  153. package/cjs/domain/telemetry/index.js +28 -0
  154. package/cjs/domain/telemetry/index.js.map +1 -0
  155. package/cjs/domain/telemetry/rawTelemetryEvent.types.d.ts +18 -0
  156. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +9 -0
  157. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -0
  158. package/cjs/domain/telemetry/telemetry.d.ts +56 -0
  159. package/cjs/domain/telemetry/telemetry.js +248 -0
  160. package/cjs/domain/telemetry/telemetry.js.map +1 -0
  161. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +858 -0
  162. package/cjs/domain/telemetry/telemetryEvent.types.js +7 -0
  163. package/cjs/domain/telemetry/telemetryEvent.types.js.map +1 -0
  164. package/cjs/domain/trackingConsent.d.ts +13 -0
  165. package/cjs/domain/trackingConsent.js +28 -0
  166. package/cjs/domain/trackingConsent.js.map +1 -0
  167. package/cjs/index.d.ts +100 -0
  168. package/cjs/index.js +193 -0
  169. package/cjs/index.js.map +1 -0
  170. package/cjs/tools/abstractHooks.d.ts +24 -0
  171. package/cjs/tools/abstractHooks.js +41 -0
  172. package/cjs/tools/abstractHooks.js.map +1 -0
  173. package/cjs/tools/abstractLifeCycle.d.ts +23 -0
  174. package/cjs/tools/abstractLifeCycle.js +28 -0
  175. package/cjs/tools/abstractLifeCycle.js.map +1 -0
  176. package/cjs/tools/boundedBuffer.d.ts +16 -0
  177. package/cjs/tools/boundedBuffer.js +32 -0
  178. package/cjs/tools/boundedBuffer.js.map +1 -0
  179. package/cjs/tools/catchUserErrors.d.ts +1 -0
  180. package/cjs/tools/catchUserErrors.js +15 -0
  181. package/cjs/tools/catchUserErrors.js.map +1 -0
  182. package/cjs/tools/display.d.ts +38 -0
  183. package/cjs/tools/display.js +44 -0
  184. package/cjs/tools/display.js.map +1 -0
  185. package/cjs/tools/encoder.d.ts +54 -0
  186. package/cjs/tools/encoder.js +40 -0
  187. package/cjs/tools/encoder.js.map +1 -0
  188. package/cjs/tools/experimentalFeatures.d.ts +20 -0
  189. package/cjs/tools/experimentalFeatures.js +49 -0
  190. package/cjs/tools/experimentalFeatures.js.map +1 -0
  191. package/cjs/tools/getZoneJsOriginalValue.d.ts +19 -0
  192. package/cjs/tools/getZoneJsOriginalValue.js +29 -0
  193. package/cjs/tools/getZoneJsOriginalValue.js.map +1 -0
  194. package/cjs/tools/globalObject.d.ts +19 -0
  195. package/cjs/tools/globalObject.js +44 -0
  196. package/cjs/tools/globalObject.js.map +1 -0
  197. package/cjs/tools/instrumentMethod.d.ts +75 -0
  198. package/cjs/tools/instrumentMethod.js +118 -0
  199. package/cjs/tools/instrumentMethod.js.map +1 -0
  200. package/cjs/tools/matchOption.d.ts +8 -0
  201. package/cjs/tools/matchOption.js +35 -0
  202. package/cjs/tools/matchOption.js.map +1 -0
  203. package/cjs/tools/mergeInto.d.ts +25 -0
  204. package/cjs/tools/mergeInto.js +98 -0
  205. package/cjs/tools/mergeInto.js.map +1 -0
  206. package/cjs/tools/monitor.d.ts +9 -0
  207. package/cjs/tools/monitor.js +62 -0
  208. package/cjs/tools/monitor.js.map +1 -0
  209. package/cjs/tools/observable.d.ts +30 -0
  210. package/cjs/tools/observable.js +89 -0
  211. package/cjs/tools/observable.js.map +1 -0
  212. package/cjs/tools/queueMicrotask.d.ts +1 -0
  213. package/cjs/tools/queueMicrotask.js +17 -0
  214. package/cjs/tools/queueMicrotask.js.map +1 -0
  215. package/cjs/tools/readBytesFromStream.d.ts +11 -0
  216. package/cjs/tools/readBytesFromStream.js +63 -0
  217. package/cjs/tools/readBytesFromStream.js.map +1 -0
  218. package/cjs/tools/requestIdleCallback.d.ts +12 -0
  219. package/cjs/tools/requestIdleCallback.js +35 -0
  220. package/cjs/tools/requestIdleCallback.js.map +1 -0
  221. package/cjs/tools/sendToExtension.d.ts +3 -0
  222. package/cjs/tools/sendToExtension.js +11 -0
  223. package/cjs/tools/sendToExtension.js.map +1 -0
  224. package/cjs/tools/serialisation/context.d.ts +9 -0
  225. package/cjs/tools/serialisation/context.js +3 -0
  226. package/cjs/tools/serialisation/context.js.map +1 -0
  227. package/cjs/tools/serialisation/jsonStringify.d.ts +13 -0
  228. package/cjs/tools/serialisation/jsonStringify.js +48 -0
  229. package/cjs/tools/serialisation/jsonStringify.js.map +1 -0
  230. package/cjs/tools/serialisation/sanitize.d.ts +18 -0
  231. package/cjs/tools/serialisation/sanitize.js +188 -0
  232. package/cjs/tools/serialisation/sanitize.js.map +1 -0
  233. package/cjs/tools/stackTrace/computeStackTrace.d.ts +25 -0
  234. package/cjs/tools/stackTrace/computeStackTrace.js +187 -0
  235. package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -0
  236. package/cjs/tools/stackTrace/handlingStack.d.ts +10 -0
  237. package/cjs/tools/stackTrace/handlingStack.js +46 -0
  238. package/cjs/tools/stackTrace/handlingStack.js.map +1 -0
  239. package/cjs/tools/taskQueue.d.ts +15 -0
  240. package/cjs/tools/taskQueue.js +54 -0
  241. package/cjs/tools/taskQueue.js.map +1 -0
  242. package/cjs/tools/timer.d.ts +5 -0
  243. package/cjs/tools/timer.js +22 -0
  244. package/cjs/tools/timer.js.map +1 -0
  245. package/cjs/tools/utils/arrayUtils.d.ts +3 -0
  246. package/cjs/tools/utils/arrayUtils.js +20 -0
  247. package/cjs/tools/utils/arrayUtils.js.map +1 -0
  248. package/cjs/tools/utils/browserDetection.d.ts +8 -0
  249. package/cjs/tools/utils/browserDetection.js +33 -0
  250. package/cjs/tools/utils/browserDetection.js.map +1 -0
  251. package/cjs/tools/utils/byteUtils.d.ts +8 -0
  252. package/cjs/tools/utils/byteUtils.js +30 -0
  253. package/cjs/tools/utils/byteUtils.js.map +1 -0
  254. package/cjs/tools/utils/functionUtils.d.ts +8 -0
  255. package/cjs/tools/utils/functionUtils.js +43 -0
  256. package/cjs/tools/utils/functionUtils.js.map +1 -0
  257. package/cjs/tools/utils/numberUtils.d.ts +9 -0
  258. package/cjs/tools/utils/numberUtils.js +24 -0
  259. package/cjs/tools/utils/numberUtils.js.map +1 -0
  260. package/cjs/tools/utils/objectUtils.d.ts +10 -0
  261. package/cjs/tools/utils/objectUtils.js +23 -0
  262. package/cjs/tools/utils/objectUtils.js.map +1 -0
  263. package/cjs/tools/utils/polyfills.d.ts +7 -0
  264. package/cjs/tools/utils/polyfills.js +23 -0
  265. package/cjs/tools/utils/polyfills.js.map +1 -0
  266. package/cjs/tools/utils/responseUtils.d.ts +2 -0
  267. package/cjs/tools/utils/responseUtils.js +17 -0
  268. package/cjs/tools/utils/responseUtils.js.map +1 -0
  269. package/cjs/tools/utils/stringUtils.d.ts +8 -0
  270. package/cjs/tools/utils/stringUtils.js +55 -0
  271. package/cjs/tools/utils/stringUtils.js.map +1 -0
  272. package/cjs/tools/utils/timeUtils.d.ts +53 -0
  273. package/cjs/tools/utils/timeUtils.js +101 -0
  274. package/cjs/tools/utils/timeUtils.js.map +1 -0
  275. package/cjs/tools/utils/timezone.d.ts +1 -0
  276. package/cjs/tools/utils/timezone.js +13 -0
  277. package/cjs/tools/utils/timezone.js.map +1 -0
  278. package/cjs/tools/utils/typeUtils.d.ts +4 -0
  279. package/cjs/tools/utils/typeUtils.js +16 -0
  280. package/cjs/tools/utils/typeUtils.js.map +1 -0
  281. package/cjs/tools/utils/urlPolyfill.d.ts +5 -0
  282. package/cjs/tools/utils/urlPolyfill.js +59 -0
  283. package/cjs/tools/utils/urlPolyfill.js.map +1 -0
  284. package/cjs/tools/valueHistory.d.ts +27 -0
  285. package/cjs/tools/valueHistory.js +104 -0
  286. package/cjs/tools/valueHistory.js.map +1 -0
  287. package/cjs/transport/batch.d.ts +16 -0
  288. package/cjs/transport/batch.js +108 -0
  289. package/cjs/transport/batch.js.map +1 -0
  290. package/cjs/transport/eventBridge.d.ts +21 -0
  291. package/cjs/transport/eventBridge.js +46 -0
  292. package/cjs/transport/eventBridge.js.map +1 -0
  293. package/cjs/transport/flushController.d.ts +58 -0
  294. package/cjs/transport/flushController.js +109 -0
  295. package/cjs/transport/flushController.js.map +1 -0
  296. package/cjs/transport/httpRequest.d.ts +51 -0
  297. package/cjs/transport/httpRequest.js +80 -0
  298. package/cjs/transport/httpRequest.js.map +1 -0
  299. package/cjs/transport/index.d.ts +7 -0
  300. package/cjs/transport/index.js +14 -0
  301. package/cjs/transport/index.js.map +1 -0
  302. package/cjs/transport/sendWithRetryStrategy.d.ts +41 -0
  303. package/cjs/transport/sendWithRetryStrategy.js +163 -0
  304. package/cjs/transport/sendWithRetryStrategy.js.map +1 -0
  305. package/esm/boot/displayAlreadyInitializedError.d.ts +2 -0
  306. package/esm/boot/displayAlreadyInitializedError.js +7 -0
  307. package/esm/boot/displayAlreadyInitializedError.js.map +1 -0
  308. package/esm/boot/init.d.ts +14 -0
  309. package/esm/boot/init.js +35 -0
  310. package/esm/boot/init.js.map +1 -0
  311. package/esm/browser/addEventListener.d.ts +87 -0
  312. package/esm/browser/addEventListener.js +51 -0
  313. package/esm/browser/addEventListener.js.map +1 -0
  314. package/esm/browser/browser.types.d.ts +51 -0
  315. package/esm/browser/browser.types.js +5 -0
  316. package/esm/browser/browser.types.js.map +1 -0
  317. package/esm/browser/cookie.d.ts +18 -0
  318. package/esm/browser/cookie.js +91 -0
  319. package/esm/browser/cookie.js.map +1 -0
  320. package/esm/browser/fetchObservable.d.ts +25 -0
  321. package/esm/browser/fetchObservable.js +75 -0
  322. package/esm/browser/fetchObservable.js.map +1 -0
  323. package/esm/browser/pageMayExitObservable.d.ts +14 -0
  324. package/esm/browser/pageMayExitObservable.js +40 -0
  325. package/esm/browser/pageMayExitObservable.js.map +1 -0
  326. package/esm/browser/runOnReadyState.d.ts +5 -0
  327. package/esm/browser/runOnReadyState.js +16 -0
  328. package/esm/browser/runOnReadyState.js.map +1 -0
  329. package/esm/browser/xhrObservable.d.ts +23 -0
  330. package/esm/browser/xhrObservable.js +80 -0
  331. package/esm/browser/xhrObservable.js.map +1 -0
  332. package/esm/domain/allowedTrackingOrigins.d.ts +4 -0
  333. package/esm/domain/allowedTrackingOrigins.js +21 -0
  334. package/esm/domain/allowedTrackingOrigins.js.map +1 -0
  335. package/esm/domain/bufferedData.d.ts +14 -0
  336. package/esm/domain/bufferedData.js +19 -0
  337. package/esm/domain/bufferedData.js.map +1 -0
  338. package/esm/domain/configuration/configuration.d.ts +303 -0
  339. package/esm/domain/configuration/configuration.js +146 -0
  340. package/esm/domain/configuration/configuration.js.map +1 -0
  341. package/esm/domain/configuration/endpointBuilder.d.ts +12 -0
  342. package/esm/domain/configuration/endpointBuilder.js +74 -0
  343. package/esm/domain/configuration/endpointBuilder.js.map +1 -0
  344. package/esm/domain/configuration/index.d.ts +5 -0
  345. package/esm/domain/configuration/index.js +4 -0
  346. package/esm/domain/configuration/index.js.map +1 -0
  347. package/esm/domain/configuration/transportConfiguration.d.ts +20 -0
  348. package/esm/domain/configuration/transportConfiguration.js +50 -0
  349. package/esm/domain/configuration/transportConfiguration.js.map +1 -0
  350. package/esm/domain/connectivity/connectivity.d.ts +14 -0
  351. package/esm/domain/connectivity/connectivity.js +11 -0
  352. package/esm/domain/connectivity/connectivity.js.map +1 -0
  353. package/esm/domain/connectivity/index.d.ts +1 -0
  354. package/esm/domain/connectivity/index.js +2 -0
  355. package/esm/domain/connectivity/index.js.map +1 -0
  356. package/esm/domain/console/consoleObservable.d.ts +21 -0
  357. package/esm/domain/console/consoleObservable.js +80 -0
  358. package/esm/domain/console/consoleObservable.js.map +1 -0
  359. package/esm/domain/context/contextConstants.d.ts +21 -0
  360. package/esm/domain/context/contextConstants.js +15 -0
  361. package/esm/domain/context/contextConstants.js.map +1 -0
  362. package/esm/domain/context/contextManager.d.ts +19 -0
  363. package/esm/domain/context/contextManager.js +57 -0
  364. package/esm/domain/context/contextManager.js.map +1 -0
  365. package/esm/domain/context/contextUtils.d.ts +5 -0
  366. package/esm/domain/context/contextUtils.js +13 -0
  367. package/esm/domain/context/contextUtils.js.map +1 -0
  368. package/esm/domain/context/defineContextMethod.d.ts +6 -0
  369. package/esm/domain/context/defineContextMethod.js +17 -0
  370. package/esm/domain/context/defineContextMethod.js.map +1 -0
  371. package/esm/domain/context/storeContextManager.d.ts +6 -0
  372. package/esm/domain/context/storeContextManager.js +35 -0
  373. package/esm/domain/context/storeContextManager.js.map +1 -0
  374. package/esm/domain/contexts/accountContext.d.ts +26 -0
  375. package/esm/domain/contexts/accountContext.js +29 -0
  376. package/esm/domain/contexts/accountContext.js.map +1 -0
  377. package/esm/domain/contexts/globalContext.d.ts +18 -0
  378. package/esm/domain/contexts/globalContext.js +17 -0
  379. package/esm/domain/contexts/globalContext.js.map +1 -0
  380. package/esm/domain/contexts/rumInternalContext.type.d.ts +14 -0
  381. package/esm/domain/contexts/rumInternalContext.type.js +2 -0
  382. package/esm/domain/contexts/rumInternalContext.type.js.map +1 -0
  383. package/esm/domain/contexts/userContext.d.ts +29 -0
  384. package/esm/domain/contexts/userContext.js +41 -0
  385. package/esm/domain/contexts/userContext.js.map +1 -0
  386. package/esm/domain/deflate/deflate.types.d.ts +40 -0
  387. package/esm/domain/deflate/deflate.types.js +2 -0
  388. package/esm/domain/deflate/deflate.types.js.map +1 -0
  389. package/esm/domain/deflate/index.d.ts +1 -0
  390. package/esm/domain/deflate/index.js +2 -0
  391. package/esm/domain/deflate/index.js.map +1 -0
  392. package/esm/domain/error/error.d.ts +23 -0
  393. package/esm/domain/error/error.js +65 -0
  394. package/esm/domain/error/error.js.map +1 -0
  395. package/esm/domain/error/error.types.d.ts +47 -0
  396. package/esm/domain/error/error.types.js +10 -0
  397. package/esm/domain/error/error.types.js.map +1 -0
  398. package/esm/domain/error/trackRuntimeError.d.ts +11 -0
  399. package/esm/domain/error/trackRuntimeError.js +43 -0
  400. package/esm/domain/error/trackRuntimeError.js.map +1 -0
  401. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +5 -0
  402. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +36 -0
  403. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -0
  404. package/esm/domain/extension/extensionUtils.d.ts +10 -0
  405. package/esm/domain/extension/extensionUtils.js +25 -0
  406. package/esm/domain/extension/extensionUtils.js.map +1 -0
  407. package/esm/domain/intakeSites.d.ts +8 -0
  408. package/esm/domain/intakeSites.js +8 -0
  409. package/esm/domain/intakeSites.js.map +1 -0
  410. package/esm/domain/report/browser.types.d.ts +34 -0
  411. package/esm/domain/report/browser.types.js +2 -0
  412. package/esm/domain/report/browser.types.js.map +1 -0
  413. package/esm/domain/report/reportObservable.d.ts +14 -0
  414. package/esm/domain/report/reportObservable.js +95 -0
  415. package/esm/domain/report/reportObservable.js.map +1 -0
  416. package/esm/domain/resourceUtils.d.ts +18 -0
  417. package/esm/domain/resourceUtils.js +17 -0
  418. package/esm/domain/resourceUtils.js.map +1 -0
  419. package/esm/domain/session/oldCookiesMigration.d.ts +11 -0
  420. package/esm/domain/session/oldCookiesMigration.js +36 -0
  421. package/esm/domain/session/oldCookiesMigration.js.map +1 -0
  422. package/esm/domain/session/sessionConstants.d.ts +15 -0
  423. package/esm/domain/session/sessionConstants.js +13 -0
  424. package/esm/domain/session/sessionConstants.js.map +1 -0
  425. package/esm/domain/session/sessionManager.d.ts +28 -0
  426. package/esm/domain/session/sessionManager.js +180 -0
  427. package/esm/domain/session/sessionManager.js.map +1 -0
  428. package/esm/domain/session/sessionState.d.ts +16 -0
  429. package/esm/domain/session/sessionState.js +66 -0
  430. package/esm/domain/session/sessionState.js.map +1 -0
  431. package/esm/domain/session/sessionStateValidation.d.ts +3 -0
  432. package/esm/domain/session/sessionStateValidation.js +7 -0
  433. package/esm/domain/session/sessionStateValidation.js.map +1 -0
  434. package/esm/domain/session/sessionStore.d.ts +38 -0
  435. package/esm/domain/session/sessionStore.js +175 -0
  436. package/esm/domain/session/sessionStore.js.map +1 -0
  437. package/esm/domain/session/sessionStoreOperations.d.ts +12 -0
  438. package/esm/domain/session/sessionStoreOperations.js +114 -0
  439. package/esm/domain/session/sessionStoreOperations.js.map +1 -0
  440. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +8 -0
  441. package/esm/domain/session/storeStrategies/sessionInCookie.js +50 -0
  442. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
  443. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +4 -0
  444. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +37 -0
  445. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -0
  446. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -0
  447. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +2 -0
  448. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -0
  449. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +12 -0
  450. package/esm/domain/synthetics/syntheticsWorkerValues.js +24 -0
  451. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +1 -0
  452. package/esm/domain/tags.d.ts +6 -0
  453. package/esm/domain/tags.js +60 -0
  454. package/esm/domain/tags.js.map +1 -0
  455. package/esm/domain/telemetry/index.d.ts +4 -0
  456. package/esm/domain/telemetry/index.js +3 -0
  457. package/esm/domain/telemetry/index.js.map +1 -0
  458. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +18 -0
  459. package/esm/domain/telemetry/rawTelemetryEvent.types.js +6 -0
  460. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +1 -0
  461. package/esm/domain/telemetry/telemetry.d.ts +56 -0
  462. package/esm/domain/telemetry/telemetry.js +235 -0
  463. package/esm/domain/telemetry/telemetry.js.map +1 -0
  464. package/esm/domain/telemetry/telemetryEvent.types.d.ts +858 -0
  465. package/esm/domain/telemetry/telemetryEvent.types.js +6 -0
  466. package/esm/domain/telemetry/telemetryEvent.types.js.map +1 -0
  467. package/esm/domain/trackingConsent.d.ts +13 -0
  468. package/esm/domain/trackingConsent.js +24 -0
  469. package/esm/domain/trackingConsent.js.map +1 -0
  470. package/esm/index.d.ts +100 -0
  471. package/esm/index.js +76 -0
  472. package/esm/index.js.map +1 -0
  473. package/esm/tools/abstractHooks.d.ts +24 -0
  474. package/esm/tools/abstractHooks.js +37 -0
  475. package/esm/tools/abstractHooks.js.map +1 -0
  476. package/esm/tools/abstractLifeCycle.d.ts +23 -0
  477. package/esm/tools/abstractLifeCycle.js +24 -0
  478. package/esm/tools/abstractLifeCycle.js.map +1 -0
  479. package/esm/tools/boundedBuffer.d.ts +16 -0
  480. package/esm/tools/boundedBuffer.js +29 -0
  481. package/esm/tools/boundedBuffer.js.map +1 -0
  482. package/esm/tools/catchUserErrors.d.ts +1 -0
  483. package/esm/tools/catchUserErrors.js +12 -0
  484. package/esm/tools/catchUserErrors.js.map +1 -0
  485. package/esm/tools/display.d.ts +38 -0
  486. package/esm/tools/display.js +41 -0
  487. package/esm/tools/display.js.map +1 -0
  488. package/esm/tools/encoder.d.ts +54 -0
  489. package/esm/tools/encoder.js +37 -0
  490. package/esm/tools/encoder.js.map +1 -0
  491. package/esm/tools/experimentalFeatures.d.ts +20 -0
  492. package/esm/tools/experimentalFeatures.js +41 -0
  493. package/esm/tools/experimentalFeatures.js.map +1 -0
  494. package/esm/tools/getZoneJsOriginalValue.d.ts +19 -0
  495. package/esm/tools/getZoneJsOriginalValue.js +26 -0
  496. package/esm/tools/getZoneJsOriginalValue.js.map +1 -0
  497. package/esm/tools/globalObject.d.ts +19 -0
  498. package/esm/tools/globalObject.js +40 -0
  499. package/esm/tools/globalObject.js.map +1 -0
  500. package/esm/tools/instrumentMethod.d.ts +75 -0
  501. package/esm/tools/instrumentMethod.js +114 -0
  502. package/esm/tools/instrumentMethod.js.map +1 -0
  503. package/esm/tools/matchOption.d.ts +8 -0
  504. package/esm/tools/matchOption.js +31 -0
  505. package/esm/tools/matchOption.js.map +1 -0
  506. package/esm/tools/mergeInto.d.ts +25 -0
  507. package/esm/tools/mergeInto.js +93 -0
  508. package/esm/tools/mergeInto.js.map +1 -0
  509. package/esm/tools/monitor.d.ts +9 -0
  510. package/esm/tools/monitor.js +52 -0
  511. package/esm/tools/monitor.js.map +1 -0
  512. package/esm/tools/observable.d.ts +30 -0
  513. package/esm/tools/observable.js +83 -0
  514. package/esm/tools/observable.js.map +1 -0
  515. package/esm/tools/queueMicrotask.d.ts +1 -0
  516. package/esm/tools/queueMicrotask.js +14 -0
  517. package/esm/tools/queueMicrotask.js.map +1 -0
  518. package/esm/tools/readBytesFromStream.d.ts +11 -0
  519. package/esm/tools/readBytesFromStream.js +60 -0
  520. package/esm/tools/readBytesFromStream.js.map +1 -0
  521. package/esm/tools/requestIdleCallback.d.ts +12 -0
  522. package/esm/tools/requestIdleCallback.js +30 -0
  523. package/esm/tools/requestIdleCallback.js.map +1 -0
  524. package/esm/tools/sendToExtension.d.ts +3 -0
  525. package/esm/tools/sendToExtension.js +8 -0
  526. package/esm/tools/sendToExtension.js.map +1 -0
  527. package/esm/tools/serialisation/context.d.ts +9 -0
  528. package/esm/tools/serialisation/context.js +2 -0
  529. package/esm/tools/serialisation/context.js.map +1 -0
  530. package/esm/tools/serialisation/jsonStringify.d.ts +13 -0
  531. package/esm/tools/serialisation/jsonStringify.js +44 -0
  532. package/esm/tools/serialisation/jsonStringify.js.map +1 -0
  533. package/esm/tools/serialisation/sanitize.d.ts +18 -0
  534. package/esm/tools/serialisation/sanitize.js +185 -0
  535. package/esm/tools/serialisation/sanitize.js.map +1 -0
  536. package/esm/tools/stackTrace/computeStackTrace.d.ts +25 -0
  537. package/esm/tools/stackTrace/computeStackTrace.js +183 -0
  538. package/esm/tools/stackTrace/computeStackTrace.js.map +1 -0
  539. package/esm/tools/stackTrace/handlingStack.d.ts +10 -0
  540. package/esm/tools/stackTrace/handlingStack.js +41 -0
  541. package/esm/tools/stackTrace/handlingStack.js.map +1 -0
  542. package/esm/tools/taskQueue.d.ts +15 -0
  543. package/esm/tools/taskQueue.js +50 -0
  544. package/esm/tools/taskQueue.js.map +1 -0
  545. package/esm/tools/timer.d.ts +5 -0
  546. package/esm/tools/timer.js +16 -0
  547. package/esm/tools/timer.js.map +1 -0
  548. package/esm/tools/utils/arrayUtils.d.ts +3 -0
  549. package/esm/tools/utils/arrayUtils.js +15 -0
  550. package/esm/tools/utils/arrayUtils.js.map +1 -0
  551. package/esm/tools/utils/browserDetection.d.ts +8 -0
  552. package/esm/tools/utils/browserDetection.js +28 -0
  553. package/esm/tools/utils/browserDetection.js.map +1 -0
  554. package/esm/tools/utils/byteUtils.d.ts +8 -0
  555. package/esm/tools/utils/byteUtils.js +25 -0
  556. package/esm/tools/utils/byteUtils.js.map +1 -0
  557. package/esm/tools/utils/functionUtils.d.ts +8 -0
  558. package/esm/tools/utils/functionUtils.js +39 -0
  559. package/esm/tools/utils/functionUtils.js.map +1 -0
  560. package/esm/tools/utils/numberUtils.d.ts +9 -0
  561. package/esm/tools/utils/numberUtils.js +18 -0
  562. package/esm/tools/utils/numberUtils.js.map +1 -0
  563. package/esm/tools/utils/objectUtils.d.ts +10 -0
  564. package/esm/tools/utils/objectUtils.js +17 -0
  565. package/esm/tools/utils/objectUtils.js.map +1 -0
  566. package/esm/tools/utils/polyfills.d.ts +7 -0
  567. package/esm/tools/utils/polyfills.js +18 -0
  568. package/esm/tools/utils/polyfills.js.map +1 -0
  569. package/esm/tools/utils/responseUtils.d.ts +2 -0
  570. package/esm/tools/utils/responseUtils.js +13 -0
  571. package/esm/tools/utils/responseUtils.js.map +1 -0
  572. package/esm/tools/utils/stringUtils.d.ts +8 -0
  573. package/esm/tools/utils/stringUtils.js +49 -0
  574. package/esm/tools/utils/stringUtils.js.map +1 -0
  575. package/esm/tools/utils/timeUtils.d.ts +53 -0
  576. package/esm/tools/utils/timeUtils.js +84 -0
  577. package/esm/tools/utils/timeUtils.js.map +1 -0
  578. package/esm/tools/utils/timezone.d.ts +1 -0
  579. package/esm/tools/utils/timezone.js +10 -0
  580. package/esm/tools/utils/timezone.js.map +1 -0
  581. package/esm/tools/utils/typeUtils.d.ts +4 -0
  582. package/esm/tools/utils/typeUtils.js +13 -0
  583. package/esm/tools/utils/typeUtils.js.map +1 -0
  584. package/esm/tools/utils/urlPolyfill.d.ts +5 -0
  585. package/esm/tools/utils/urlPolyfill.js +52 -0
  586. package/esm/tools/utils/urlPolyfill.js.map +1 -0
  587. package/esm/tools/valueHistory.d.ts +27 -0
  588. package/esm/tools/valueHistory.js +100 -0
  589. package/esm/tools/valueHistory.js.map +1 -0
  590. package/esm/transport/batch.d.ts +16 -0
  591. package/esm/transport/batch.js +105 -0
  592. package/esm/transport/batch.js.map +1 -0
  593. package/esm/transport/eventBridge.d.ts +21 -0
  594. package/esm/transport/eventBridge.js +41 -0
  595. package/esm/transport/eventBridge.js.map +1 -0
  596. package/esm/transport/flushController.d.ts +58 -0
  597. package/esm/transport/flushController.js +106 -0
  598. package/esm/transport/flushController.js.map +1 -0
  599. package/esm/transport/httpRequest.d.ts +51 -0
  600. package/esm/transport/httpRequest.js +75 -0
  601. package/esm/transport/httpRequest.js.map +1 -0
  602. package/esm/transport/index.d.ts +7 -0
  603. package/esm/transport/index.js +5 -0
  604. package/esm/transport/index.js.map +1 -0
  605. package/esm/transport/sendWithRetryStrategy.d.ts +41 -0
  606. package/esm/transport/sendWithRetryStrategy.js +158 -0
  607. package/esm/transport/sendWithRetryStrategy.js.map +1 -0
  608. package/package.json +31 -0
  609. package/src/boot/displayAlreadyInitializedError.ts +8 -0
  610. package/src/boot/init.ts +55 -0
  611. package/src/browser/addEventListener.ts +145 -0
  612. package/src/browser/browser.types.ts +82 -0
  613. package/src/browser/cookie.ts +107 -0
  614. package/src/browser/fetchObservable.ts +127 -0
  615. package/src/browser/pageMayExitObservable.ts +56 -0
  616. package/src/browser/runOnReadyState.ts +25 -0
  617. package/src/browser/xhrObservable.ts +130 -0
  618. package/src/domain/allowedTrackingOrigins.ts +30 -0
  619. package/src/domain/bufferedData.ts +32 -0
  620. package/src/domain/configuration/configuration.ts +472 -0
  621. package/src/domain/configuration/endpointBuilder.ts +119 -0
  622. package/src/domain/configuration/index.ts +11 -0
  623. package/src/domain/configuration/transportConfiguration.ts +78 -0
  624. package/src/domain/connectivity/connectivity.ts +31 -0
  625. package/src/domain/connectivity/index.ts +1 -0
  626. package/src/domain/console/consoleObservable.ts +118 -0
  627. package/src/domain/context/contextConstants.ts +27 -0
  628. package/src/domain/context/contextManager.ts +85 -0
  629. package/src/domain/context/contextUtils.ts +14 -0
  630. package/src/domain/context/defineContextMethod.ts +31 -0
  631. package/src/domain/context/storeContextManager.ts +55 -0
  632. package/src/domain/contexts/accountContext.ts +47 -0
  633. package/src/domain/contexts/globalContext.ts +30 -0
  634. package/src/domain/contexts/rumInternalContext.type.ts +15 -0
  635. package/src/domain/contexts/userContext.ts +64 -0
  636. package/src/domain/deflate/deflate.types.ts +57 -0
  637. package/src/domain/deflate/index.ts +1 -0
  638. package/src/domain/error/error.ts +103 -0
  639. package/src/domain/error/error.types.ts +64 -0
  640. package/src/domain/error/trackRuntimeError.ts +50 -0
  641. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +46 -0
  642. package/src/domain/extension/extensionUtils.ts +28 -0
  643. package/src/domain/intakeSites.ts +17 -0
  644. package/src/domain/report/browser.types.ts +38 -0
  645. package/src/domain/report/reportObservable.ts +133 -0
  646. package/src/domain/resourceUtils.ts +21 -0
  647. package/src/domain/session/README.md +193 -0
  648. package/src/domain/session/oldCookiesMigration.ts +42 -0
  649. package/src/domain/session/sessionConstants.ts +19 -0
  650. package/src/domain/session/sessionManager.ts +244 -0
  651. package/src/domain/session/sessionState.ts +88 -0
  652. package/src/domain/session/sessionStateValidation.ts +9 -0
  653. package/src/domain/session/sessionStore.ts +244 -0
  654. package/src/domain/session/sessionStoreOperations.ts +131 -0
  655. package/src/domain/session/storeStrategies/sessionInCookie.ts +85 -0
  656. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +44 -0
  657. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +16 -0
  658. package/src/domain/synthetics/syntheticsWorkerValues.ts +38 -0
  659. package/src/domain/tags.ts +76 -0
  660. package/src/domain/telemetry/index.ts +22 -0
  661. package/src/domain/telemetry/rawTelemetryEvent.types.ts +22 -0
  662. package/src/domain/telemetry/telemetry.ts +345 -0
  663. package/src/domain/telemetry/telemetryEvent.types.ts +899 -0
  664. package/src/domain/trackingConsent.ts +34 -0
  665. package/src/index.ts +164 -0
  666. package/src/tools/abstractHooks.ts +72 -0
  667. package/src/tools/abstractLifeCycle.ts +46 -0
  668. package/src/tools/boundedBuffer.ts +45 -0
  669. package/src/tools/catchUserErrors.ts +11 -0
  670. package/src/tools/display.ts +56 -0
  671. package/src/tools/encoder.ts +103 -0
  672. package/src/tools/experimentalFeatures.ts +51 -0
  673. package/src/tools/getZoneJsOriginalValue.ts +38 -0
  674. package/src/tools/globalObject.ts +51 -0
  675. package/src/tools/instrumentMethod.ts +170 -0
  676. package/src/tools/matchOption.ts +31 -0
  677. package/src/tools/mergeInto.ts +177 -0
  678. package/src/tools/monitor.ts +72 -0
  679. package/src/tools/observable.ts +104 -0
  680. package/src/tools/queueMicrotask.ts +13 -0
  681. package/src/tools/readBytesFromStream.ts +77 -0
  682. package/src/tools/requestIdleCallback.ts +40 -0
  683. package/src/tools/sendToExtension.ts +14 -0
  684. package/src/tools/serialisation/context.ts +11 -0
  685. package/src/tools/serialisation/jsonStringify.ts +53 -0
  686. package/src/tools/serialisation/sanitize.ts +273 -0
  687. package/src/tools/stackTrace/computeStackTrace.ts +250 -0
  688. package/src/tools/stackTrace/handlingStack.ts +48 -0
  689. package/src/tools/taskQueue.ts +63 -0
  690. package/src/tools/timer.ts +21 -0
  691. package/src/tools/utils/arrayUtils.ts +15 -0
  692. package/src/tools/utils/browserDetection.ts +39 -0
  693. package/src/tools/utils/byteUtils.ts +35 -0
  694. package/src/tools/utils/functionUtils.ts +45 -0
  695. package/src/tools/utils/numberUtils.ts +20 -0
  696. package/src/tools/utils/objectUtils.ts +19 -0
  697. package/src/tools/utils/polyfills.ts +23 -0
  698. package/src/tools/utils/responseUtils.ts +12 -0
  699. package/src/tools/utils/stringUtils.ts +52 -0
  700. package/src/tools/utils/timeUtils.ts +117 -0
  701. package/src/tools/utils/timezone.ts +9 -0
  702. package/src/tools/utils/typeUtils.ts +12 -0
  703. package/src/tools/utils/urlPolyfill.ts +56 -0
  704. package/src/tools/valueHistory.ts +151 -0
  705. package/src/transport/batch.ts +144 -0
  706. package/src/transport/eventBridge.ts +61 -0
  707. package/src/transport/flushController.ts +144 -0
  708. package/src/transport/httpRequest.ts +164 -0
  709. package/src/transport/index.ts +7 -0
  710. package/src/transport/sendWithRetryStrategy.ts +222 -0
@@ -0,0 +1,20 @@
1
+ /**
2
+ * LIMITATION:
3
+ * For NPM setup, this feature flag singleton is shared between RUM and Logs product.
4
+ * This means that an experimental flag set on the RUM product will be set on the Logs product.
5
+ * So keep in mind that in certain configurations, your experimental feature flag may affect other products.
6
+ *
7
+ * FORMAT:
8
+ * All feature flags should be snake_cased
9
+ */
10
+ export declare enum ExperimentalFeature {
11
+ TRACK_INTAKE_REQUESTS = "track_intake_requests",
12
+ USE_TREE_WALKER_FOR_ACTION_NAME = "use_tree_walker_for_action_name",
13
+ FEATURE_OPERATION_VITAL = "feature_operation_vital",
14
+ SHORT_SESSION_INVESTIGATION = "short_session_investigation"
15
+ }
16
+ export declare function initFeatureFlags(enableExperimentalFeatures: string[] | undefined): void;
17
+ export declare function addExperimentalFeatures(enabledFeatures: ExperimentalFeature[]): void;
18
+ export declare function isExperimentalFeatureEnabled(featureName: ExperimentalFeature): boolean;
19
+ export declare function resetExperimentalFeatures(): void;
20
+ export declare function getExperimentalFeatures(): Set<ExperimentalFeature>;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * LIMITATION:
3
+ * For NPM setup, this feature flag singleton is shared between RUM and Logs product.
4
+ * This means that an experimental flag set on the RUM product will be set on the Logs product.
5
+ * So keep in mind that in certain configurations, your experimental feature flag may affect other products.
6
+ *
7
+ * FORMAT:
8
+ * All feature flags should be snake_cased
9
+ */
10
+ // We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary
11
+ // string is an expected feature flag
12
+ import { objectHasValue } from './utils/objectUtils';
13
+ // eslint-disable-next-line no-restricted-syntax
14
+ export var ExperimentalFeature;
15
+ (function (ExperimentalFeature) {
16
+ ExperimentalFeature["TRACK_INTAKE_REQUESTS"] = "track_intake_requests";
17
+ ExperimentalFeature["USE_TREE_WALKER_FOR_ACTION_NAME"] = "use_tree_walker_for_action_name";
18
+ ExperimentalFeature["FEATURE_OPERATION_VITAL"] = "feature_operation_vital";
19
+ ExperimentalFeature["SHORT_SESSION_INVESTIGATION"] = "short_session_investigation";
20
+ })(ExperimentalFeature || (ExperimentalFeature = {}));
21
+ const enabledExperimentalFeatures = new Set();
22
+ export function initFeatureFlags(enableExperimentalFeatures) {
23
+ if (Array.isArray(enableExperimentalFeatures)) {
24
+ addExperimentalFeatures(enableExperimentalFeatures.filter((flag) => objectHasValue(ExperimentalFeature, flag)));
25
+ }
26
+ }
27
+ export function addExperimentalFeatures(enabledFeatures) {
28
+ enabledFeatures.forEach((flag) => {
29
+ enabledExperimentalFeatures.add(flag);
30
+ });
31
+ }
32
+ export function isExperimentalFeatureEnabled(featureName) {
33
+ return enabledExperimentalFeatures.has(featureName);
34
+ }
35
+ export function resetExperimentalFeatures() {
36
+ enabledExperimentalFeatures.clear();
37
+ }
38
+ export function getExperimentalFeatures() {
39
+ return enabledExperimentalFeatures;
40
+ }
41
+ //# sourceMappingURL=experimentalFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experimentalFeatures.js","sourceRoot":"","sources":["../../src/tools/experimentalFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oGAAoG;AACpG,qCAAqC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,gDAAgD;AAChD,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,sEAA+C,CAAA;IAC/C,0FAAmE,CAAA;IACnE,0EAAmD,CAAA;IACnD,kFAA2D,CAAA;AAC7D,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AAED,MAAM,2BAA2B,GAA6B,IAAI,GAAG,EAAE,CAAA;AAEvE,MAAM,UAAU,gBAAgB,CAAC,0BAAgD;IAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC9C,uBAAuB,CACrB,0BAA0B,CAAC,MAAM,CAAC,CAAC,IAAI,EAA+B,EAAE,CACtE,cAAc,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAC1C,CACF,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,eAAsC;IAC5E,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,WAAgC;IAC3E,OAAO,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,2BAA2B,CAAC,KAAK,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,2BAA2B,CAAA;AACpC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface BrowserWindowWithZoneJs extends Window {
2
+ Zone?: {
3
+ __symbol__?: (name: string) => string;
4
+ };
5
+ }
6
+ /**
7
+ * Gets the original value for a DOM API that was potentially patched by Zone.js.
8
+ *
9
+ * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original
10
+ * value of the patched functions/constructors/methods in a hidden property prefixed by
11
+ * __zone_symbol__.
12
+ *
13
+ * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to
14
+ * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to
15
+ * use the original DOM API instead of the one patched by Zone.js.
16
+ *
17
+ * [1]: https://github.com/angular/angular/tree/main/packages/zone.js
18
+ */
19
+ export declare function getZoneJsOriginalValue<Target, Name extends keyof Target & string>(target: Target, name: Name): Target[Name];
@@ -0,0 +1,26 @@
1
+ import { getGlobalObject } from './globalObject';
2
+ /**
3
+ * Gets the original value for a DOM API that was potentially patched by Zone.js.
4
+ *
5
+ * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original
6
+ * value of the patched functions/constructors/methods in a hidden property prefixed by
7
+ * __zone_symbol__.
8
+ *
9
+ * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to
10
+ * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to
11
+ * use the original DOM API instead of the one patched by Zone.js.
12
+ *
13
+ * [1]: https://github.com/angular/angular/tree/main/packages/zone.js
14
+ */
15
+ export function getZoneJsOriginalValue(target, name) {
16
+ const browserWindow = getGlobalObject();
17
+ let original;
18
+ if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {
19
+ original = target[browserWindow.Zone.__symbol__(name)];
20
+ }
21
+ if (!original) {
22
+ original = target[name];
23
+ }
24
+ return original;
25
+ }
26
+ //# sourceMappingURL=getZoneJsOriginalValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getZoneJsOriginalValue.js","sourceRoot":"","sources":["../../src/tools/getZoneJsOriginalValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAWhD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,IAAU;IAEV,MAAM,aAAa,GAAG,eAAe,EAA2B,CAAA;IAChE,IAAI,QAAkC,CAAA;IACtC,IAAI,aAAa,CAAC,IAAI,IAAI,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9E,QAAQ,GAAI,MAAc,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * inspired by https://mathiasbynens.be/notes/globalthis
3
+ */
4
+ interface WorkerGlobalScope {
5
+ empty: never;
6
+ }
7
+ type Without<T, U> = {
8
+ [P in Exclude<keyof T, keyof U>]?: never;
9
+ };
10
+ type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
11
+ export type GlobalObject = XOR<Window, WorkerGlobalScope>;
12
+ export declare function getGlobalObject<T = typeof globalThis>(): T;
13
+ /**
14
+ * Cached reference to the global object so it can be imported and re-used without
15
+ * re-evaluating the heavyweight fallback logic in `getGlobalObject()`.
16
+ */
17
+ export declare const globalObject: (Without<Window, WorkerGlobalScope> & WorkerGlobalScope) | (Without<WorkerGlobalScope, Window> & Window);
18
+ export declare const isWorkerEnvironment: boolean;
19
+ export {};
@@ -0,0 +1,40 @@
1
+ /**
2
+ * inspired by https://mathiasbynens.be/notes/globalthis
3
+ */
4
+ export function getGlobalObject() {
5
+ if (typeof globalThis === 'object') {
6
+ return globalThis;
7
+ }
8
+ Object.defineProperty(Object.prototype, '_dd_temp_', {
9
+ get() {
10
+ return this;
11
+ },
12
+ configurable: true,
13
+ });
14
+ // @ts-ignore _dd_temp is defined using defineProperty
15
+ let globalObject = _dd_temp_;
16
+ // @ts-ignore _dd_temp is defined using defineProperty
17
+ delete Object.prototype._dd_temp_;
18
+ if (typeof globalObject !== 'object') {
19
+ // on safari _dd_temp_ is available on window but not globally
20
+ // fallback on other browser globals check
21
+ if (typeof self === 'object') {
22
+ globalObject = self;
23
+ }
24
+ else if (typeof window === 'object') {
25
+ globalObject = window;
26
+ }
27
+ else {
28
+ globalObject = {};
29
+ }
30
+ }
31
+ return globalObject;
32
+ }
33
+ /**
34
+ * Cached reference to the global object so it can be imported and re-used without
35
+ * re-evaluating the heavyweight fallback logic in `getGlobalObject()`.
36
+ */
37
+ // eslint-disable-next-line local-rules/disallow-side-effects
38
+ export const globalObject = getGlobalObject();
39
+ export const isWorkerEnvironment = 'WorkerGlobalScope' in globalObject;
40
+ //# sourceMappingURL=globalObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalObject.js","sourceRoot":"","sources":["../../src/tools/globalObject.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,UAAU,eAAe;IAC7B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,UAA0B,CAAA;IACnC,CAAC;IACD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE;QACnD,GAAG;YACD,OAAO,IAAc,CAAA;QACvB,CAAC;QACD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAA;IACF,sDAAsD;IACtD,IAAI,YAAY,GAAY,SAAS,CAAA;IACrC,sDAAsD;IACtD,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAA;IACjC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,8DAA8D;QAC9D,0CAA0C;QAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,YAAY,GAAG,IAAI,CAAA;QACrB,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,YAAY,GAAG,MAAM,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,YAAiB,CAAA;AAC1B,CAAC;AAED;;;GAGG;AACH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,EAAgB,CAAA;AAE3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,IAAI,YAAY,CAAA"}
@@ -0,0 +1,75 @@
1
+ import { noop } from './utils/functionUtils';
2
+ /**
3
+ * Object passed to the callback of an instrumented method call. See `instrumentMethod` for more
4
+ * info.
5
+ */
6
+ export interface InstrumentedMethodCall<TARGET extends {
7
+ [key: string]: any;
8
+ }, METHOD extends keyof TARGET> {
9
+ /**
10
+ * The target object on which the method was called.
11
+ */
12
+ target: TARGET;
13
+ /**
14
+ * The parameters with which the method was called.
15
+ *
16
+ * Note: if needed, parameters can be mutated by the instrumentation
17
+ */
18
+ parameters: Parameters<TARGET[METHOD]>;
19
+ /**
20
+ * Registers a callback that will be called after the original method is called, with the method
21
+ * result passed as argument.
22
+ */
23
+ onPostCall: (callback: PostCallCallback<TARGET, METHOD>) => void;
24
+ /**
25
+ * The stack trace of the method call.
26
+ */
27
+ handlingStack?: string;
28
+ }
29
+ type PostCallCallback<TARGET extends {
30
+ [key: string]: any;
31
+ }, METHOD extends keyof TARGET> = (result: ReturnType<TARGET[METHOD]>) => void;
32
+ /**
33
+ * Instruments a method on a object, calling the given callback before the original method is
34
+ * invoked. The callback receives an object with information about the method call.
35
+ *
36
+ * This function makes sure that we are "good citizens" regarding third party instrumentations: when
37
+ * removing the instrumentation, the original method is usually restored, but if a third party
38
+ * instrumentation was set after ours, we keep it in place and just replace our instrumentation with
39
+ * a noop.
40
+ *
41
+ * Note: it is generally better to instrument methods that are "owned" by the object instead of ones
42
+ * that are inherited from the prototype chain. Example:
43
+ * * do: `instrumentMethod(Array.prototype, 'push', ...)`
44
+ * * don't: `instrumentMethod([], 'push', ...)`
45
+ *
46
+ * This method is also used to set event handler properties (ex: window.onerror = ...), as it has
47
+ * the same requirements as instrumenting a method:
48
+ * * if the event handler is already set by a third party, we need to call it and not just blindly
49
+ * override it.
50
+ * * if the event handler is set by a third party after us, we need to keep it in place when
51
+ * removing ours.
52
+ *
53
+ * @example
54
+ *
55
+ * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {
56
+ * console.log('Before calling fetch on', target, 'with parameters', parameters)
57
+ *
58
+ * onPostCall((result) => {
59
+ * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)
60
+ * })
61
+ * })
62
+ */
63
+ export declare function instrumentMethod<TARGET extends {
64
+ [key: string]: any;
65
+ }, METHOD extends keyof TARGET & string>(targetPrototype: TARGET, method: METHOD, onPreCall: (this: null, callInfos: InstrumentedMethodCall<TARGET, METHOD>) => void, { computeHandlingStack }?: {
66
+ computeHandlingStack?: boolean;
67
+ }): {
68
+ stop: typeof noop;
69
+ };
70
+ export declare function instrumentSetter<TARGET extends {
71
+ [key: string]: any;
72
+ }, PROPERTY extends keyof TARGET>(targetPrototype: TARGET, property: PROPERTY, after: (target: TARGET, value: TARGET[PROPERTY]) => void): {
73
+ stop: typeof noop;
74
+ };
75
+ export {};
@@ -0,0 +1,114 @@
1
+ import { setTimeout } from './timer';
2
+ import { callMonitored } from './monitor';
3
+ import { noop } from './utils/functionUtils';
4
+ import { createHandlingStack } from './stackTrace/handlingStack';
5
+ /**
6
+ * Instruments a method on a object, calling the given callback before the original method is
7
+ * invoked. The callback receives an object with information about the method call.
8
+ *
9
+ * This function makes sure that we are "good citizens" regarding third party instrumentations: when
10
+ * removing the instrumentation, the original method is usually restored, but if a third party
11
+ * instrumentation was set after ours, we keep it in place and just replace our instrumentation with
12
+ * a noop.
13
+ *
14
+ * Note: it is generally better to instrument methods that are "owned" by the object instead of ones
15
+ * that are inherited from the prototype chain. Example:
16
+ * * do: `instrumentMethod(Array.prototype, 'push', ...)`
17
+ * * don't: `instrumentMethod([], 'push', ...)`
18
+ *
19
+ * This method is also used to set event handler properties (ex: window.onerror = ...), as it has
20
+ * the same requirements as instrumenting a method:
21
+ * * if the event handler is already set by a third party, we need to call it and not just blindly
22
+ * override it.
23
+ * * if the event handler is set by a third party after us, we need to keep it in place when
24
+ * removing ours.
25
+ *
26
+ * @example
27
+ *
28
+ * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {
29
+ * console.log('Before calling fetch on', target, 'with parameters', parameters)
30
+ *
31
+ * onPostCall((result) => {
32
+ * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)
33
+ * })
34
+ * })
35
+ */
36
+ export function instrumentMethod(targetPrototype, method, onPreCall, { computeHandlingStack } = {}) {
37
+ let original = targetPrototype[method];
38
+ if (typeof original !== 'function') {
39
+ if (method in targetPrototype && method.startsWith('on')) {
40
+ original = noop;
41
+ }
42
+ else {
43
+ return { stop: noop };
44
+ }
45
+ }
46
+ let stopped = false;
47
+ const instrumentation = function () {
48
+ if (stopped) {
49
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
50
+ return original.apply(this, arguments);
51
+ }
52
+ const parameters = Array.from(arguments);
53
+ let postCallCallback;
54
+ callMonitored(onPreCall, null, [
55
+ {
56
+ target: this,
57
+ parameters,
58
+ onPostCall: (callback) => {
59
+ postCallCallback = callback;
60
+ },
61
+ handlingStack: computeHandlingStack ? createHandlingStack('instrumented method') : undefined,
62
+ },
63
+ ]);
64
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
65
+ const result = original.apply(this, parameters);
66
+ if (postCallCallback) {
67
+ callMonitored(postCallCallback, null, [result]);
68
+ }
69
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
70
+ return result;
71
+ };
72
+ targetPrototype[method] = instrumentation;
73
+ return {
74
+ stop: () => {
75
+ stopped = true;
76
+ // If the instrumentation has been removed by a third party, keep the last one
77
+ if (targetPrototype[method] === instrumentation) {
78
+ targetPrototype[method] = original;
79
+ }
80
+ },
81
+ };
82
+ }
83
+ export function instrumentSetter(targetPrototype, property, after) {
84
+ const originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);
85
+ if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {
86
+ return { stop: noop };
87
+ }
88
+ const stoppedInstrumentation = noop;
89
+ let instrumentation = (target, value) => {
90
+ // put hooked setter into event loop to avoid of set latency
91
+ setTimeout(() => {
92
+ if (instrumentation !== stoppedInstrumentation) {
93
+ after(target, value);
94
+ }
95
+ }, 0);
96
+ };
97
+ const instrumentationWrapper = function (value) {
98
+ originalDescriptor.set.call(this, value);
99
+ instrumentation(this, value);
100
+ };
101
+ Object.defineProperty(targetPrototype, property, {
102
+ set: instrumentationWrapper,
103
+ });
104
+ return {
105
+ stop: () => {
106
+ var _a;
107
+ if (((_a = Object.getOwnPropertyDescriptor(targetPrototype, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {
108
+ Object.defineProperty(targetPrototype, property, originalDescriptor);
109
+ }
110
+ instrumentation = stoppedInstrumentation;
111
+ },
112
+ };
113
+ }
114
+ //# sourceMappingURL=instrumentMethod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentMethod.js","sourceRoot":"","sources":["../../src/tools/instrumentMethod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type MatchOption = string | RegExp | ((value: string) => boolean);
2
+ export declare function isMatchOption(item: unknown): item is MatchOption;
3
+ /**
4
+ * Returns true if value can be matched by at least one of the provided MatchOptions.
5
+ * When comparing strings, setting useStartsWith to true will compare the value with the start of
6
+ * the option, instead of requiring an exact match.
7
+ */
8
+ export declare function matchList(list: MatchOption[], value: string, useStartsWith?: boolean): boolean;
@@ -0,0 +1,31 @@
1
+ import { display } from './display';
2
+ import { getType } from './utils/typeUtils';
3
+ export function isMatchOption(item) {
4
+ const itemType = getType(item);
5
+ return itemType === 'string' || itemType === 'function' || item instanceof RegExp;
6
+ }
7
+ /**
8
+ * Returns true if value can be matched by at least one of the provided MatchOptions.
9
+ * When comparing strings, setting useStartsWith to true will compare the value with the start of
10
+ * the option, instead of requiring an exact match.
11
+ */
12
+ export function matchList(list, value, useStartsWith = false) {
13
+ return list.some((item) => {
14
+ try {
15
+ if (typeof item === 'function') {
16
+ return item(value);
17
+ }
18
+ else if (item instanceof RegExp) {
19
+ return item.test(value);
20
+ }
21
+ else if (typeof item === 'string') {
22
+ return useStartsWith ? value.startsWith(item) : item === value;
23
+ }
24
+ }
25
+ catch (e) {
26
+ display.error(e);
27
+ }
28
+ return false;
29
+ });
30
+ }
31
+ //# sourceMappingURL=matchOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchOption.js","sourceRoot":"","sources":["../../src/tools/matchOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAI3C,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,UAAU,IAAI,IAAI,YAAY,MAAM,CAAA;AACnF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAmB,EAAE,KAAa,EAAE,aAAa,GAAG,KAAK;IACjF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;iBAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAA;YAChE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ type Merged<TDestination, TSource> = TSource extends undefined ? TDestination : TDestination extends undefined ? TSource : TSource extends any[] ? TDestination extends any[] ? TDestination & TSource : TSource : TSource extends object ? TDestination extends object ? TDestination extends any[] ? TSource : TDestination & TSource : TSource : TSource;
2
+ /**
3
+ * Iterate over source and affect its sub values into destination, recursively.
4
+ * If the source and destination can't be merged, return source.
5
+ */
6
+ export declare function mergeInto<D, S>(destination: D, source: S, circularReferenceChecker?: CircularReferenceChecker): Merged<D, S>;
7
+ /**
8
+ * A simplistic implementation of a deep clone algorithm.
9
+ * Caveats:
10
+ * - It doesn't maintain prototype chains - don't use with instances of custom classes.
11
+ * - It doesn't handle Map and Set
12
+ */
13
+ export declare function deepClone<T>(value: T): T;
14
+ type Combined<A, B> = A extends null ? B : B extends null ? A : Merged<A, B>;
15
+ export declare function combine<A, B>(a: A, b: B): Combined<A, B>;
16
+ export declare function combine<A, B, C>(a: A, b: B, c: C): Combined<Combined<A, B>, C>;
17
+ export declare function combine<A, B, C, D>(a: A, b: B, c: C, d: D): Combined<Combined<Combined<A, B>, C>, D>;
18
+ export declare function combine<A, B, C, D, E>(a: A, b: B, c: C, d: D, e: E): Combined<Combined<Combined<Combined<A, B>, C>, D>, E>;
19
+ export declare function combine<A, B, C, D, E, F>(a: A, b: B, c: C, d: D, e: E, f: F): Combined<Combined<Combined<Combined<Combined<A, B>, C>, D>, E>, F>;
20
+ export declare function combine<A, B, C, D, E, F, G>(a: A, b: B, c: C, d: D, e: E, f: F, g: G): Combined<Combined<Combined<Combined<Combined<Combined<A, B>, C>, D>, E>, F>, G>;
21
+ export declare function combine<A, B, C, D, E, F, G, H>(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): Combined<Combined<Combined<Combined<Combined<Combined<Combined<A, B>, C>, D>, E>, F>, G>, H>;
22
+ interface CircularReferenceChecker {
23
+ hasAlreadyBeenSeen(value: any): boolean;
24
+ }
25
+ export {};
@@ -0,0 +1,93 @@
1
+ import { getType } from './utils/typeUtils';
2
+ /**
3
+ * Iterate over source and affect its sub values into destination, recursively.
4
+ * If the source and destination can't be merged, return source.
5
+ */
6
+ export function mergeInto(destination, source, circularReferenceChecker = createCircularReferenceChecker()) {
7
+ // ignore the source if it is undefined
8
+ if (source === undefined) {
9
+ return destination;
10
+ }
11
+ if (typeof source !== 'object' || source === null) {
12
+ // primitive values - just return source
13
+ return source;
14
+ }
15
+ else if (source instanceof Date) {
16
+ return new Date(source.getTime());
17
+ }
18
+ else if (source instanceof RegExp) {
19
+ const flags = source.flags ||
20
+ // old browsers compatibility
21
+ [
22
+ source.global ? 'g' : '',
23
+ source.ignoreCase ? 'i' : '',
24
+ source.multiline ? 'm' : '',
25
+ source.sticky ? 'y' : '',
26
+ source.unicode ? 'u' : '',
27
+ ].join('');
28
+ return new RegExp(source.source, flags);
29
+ }
30
+ if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {
31
+ // remove circular references
32
+ return undefined;
33
+ }
34
+ else if (Array.isArray(source)) {
35
+ const merged = Array.isArray(destination) ? destination : [];
36
+ for (let i = 0; i < source.length; ++i) {
37
+ merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker);
38
+ }
39
+ return merged;
40
+ }
41
+ const merged = getType(destination) === 'object' ? destination : {};
42
+ for (const key in source) {
43
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
44
+ merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);
45
+ }
46
+ }
47
+ return merged;
48
+ }
49
+ /**
50
+ * A simplistic implementation of a deep clone algorithm.
51
+ * Caveats:
52
+ * - It doesn't maintain prototype chains - don't use with instances of custom classes.
53
+ * - It doesn't handle Map and Set
54
+ */
55
+ export function deepClone(value) {
56
+ return mergeInto(undefined, value);
57
+ }
58
+ export function combine(...sources) {
59
+ let destination;
60
+ for (const source of sources) {
61
+ // Ignore any undefined or null sources.
62
+ if (source === undefined || source === null) {
63
+ continue;
64
+ }
65
+ destination = mergeInto(destination, source);
66
+ }
67
+ return destination;
68
+ }
69
+ function createCircularReferenceChecker() {
70
+ if (typeof WeakSet !== 'undefined') {
71
+ const set = new WeakSet();
72
+ return {
73
+ hasAlreadyBeenSeen(value) {
74
+ const has = set.has(value);
75
+ if (!has) {
76
+ set.add(value);
77
+ }
78
+ return has;
79
+ },
80
+ };
81
+ }
82
+ const array = [];
83
+ return {
84
+ hasAlreadyBeenSeen(value) {
85
+ const has = array.indexOf(value) >= 0;
86
+ if (!has) {
87
+ array.push(value);
88
+ }
89
+ return has;
90
+ },
91
+ };
92
+ }
93
+ //# sourceMappingURL=mergeInto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeInto.js","sourceRoot":"","sources":["../../src/tools/mergeInto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare function startMonitorErrorCollection(newOnMonitorErrorCollected: (error: unknown) => void): void;
2
+ export declare function setDebugMode(newDebugMode: boolean): void;
3
+ export declare function resetMonitor(): void;
4
+ export declare function monitored<T extends (...params: any[]) => unknown>(_: any, __: string, descriptor: TypedPropertyDescriptor<T>): void;
5
+ export declare function monitor<T extends (...args: any[]) => any>(fn: T): T;
6
+ export declare function callMonitored<T extends (...args: any[]) => any>(fn: T, context: ThisParameterType<T>, args: Parameters<T>): ReturnType<T> | undefined;
7
+ export declare function callMonitored<T extends (this: void) => any>(fn: T): ReturnType<T> | undefined;
8
+ export declare function monitorError(e: unknown): void;
9
+ export declare function displayIfDebugEnabled(...args: any[]): void;
@@ -0,0 +1,52 @@
1
+ import { display } from './display';
2
+ let onMonitorErrorCollected;
3
+ let debugMode = false;
4
+ export function startMonitorErrorCollection(newOnMonitorErrorCollected) {
5
+ onMonitorErrorCollected = newOnMonitorErrorCollected;
6
+ }
7
+ export function setDebugMode(newDebugMode) {
8
+ debugMode = newDebugMode;
9
+ }
10
+ export function resetMonitor() {
11
+ onMonitorErrorCollected = undefined;
12
+ debugMode = false;
13
+ }
14
+ export function monitored(_, __, descriptor) {
15
+ const originalMethod = descriptor.value;
16
+ descriptor.value = function (...args) {
17
+ const decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;
18
+ return decorated.apply(this, args);
19
+ };
20
+ }
21
+ export function monitor(fn) {
22
+ return function () {
23
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
24
+ return callMonitored(fn, this, arguments);
25
+ }; // consider output type has input type
26
+ }
27
+ export function callMonitored(fn, context, args) {
28
+ try {
29
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
30
+ return fn.apply(context, args);
31
+ }
32
+ catch (e) {
33
+ monitorError(e);
34
+ }
35
+ }
36
+ export function monitorError(e) {
37
+ displayIfDebugEnabled(e);
38
+ if (onMonitorErrorCollected) {
39
+ try {
40
+ onMonitorErrorCollected(e);
41
+ }
42
+ catch (e) {
43
+ displayIfDebugEnabled(e);
44
+ }
45
+ }
46
+ }
47
+ export function displayIfDebugEnabled(...args) {
48
+ if (debugMode) {
49
+ display.error('[MONITOR]', ...args);
50
+ }
51
+ }
52
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,IAAI,uBAA+D,CAAA;AACnE,IAAI,SAAS,GAAG,KAAK,CAAA;AAErB,MAAM,UAAU,2BAA2B,CAAC,0BAAoD;IAC9F,uBAAuB,GAAG,0BAA0B,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,YAAqB;IAChD,SAAS,GAAG,YAAY,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,uBAAuB,GAAG,SAAS,CAAA;IACnC,SAAS,GAAG,KAAK,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,CAAM,EACN,EAAU,EACV,UAAsC;IAEtC,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAA;IACxC,UAAU,CAAC,KAAK,GAAG,UAAqB,GAAG,IAAmB;QAC5D,MAAM,SAAS,GAAG,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;QACpF,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAkB,CAAA;IACrD,CAAM,CAAA;AACR,CAAC;AAED,MAAM,UAAU,OAAO,CAAoC,EAAK;IAC9D,OAAO;QACL,+DAA+D;QAC/D,OAAO,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,SAAqC,CAAC,CAAA;IACvE,CAAiB,CAAA,CAAC,sCAAsC;AAC1D,CAAC;AAQD,MAAM,UAAU,aAAa,CAC3B,EAAK,EACL,OAAa,EACb,IAAU;IAEV,IAAI,CAAC;QACH,+DAA+D;QAC/D,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,YAAY,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,qBAAqB,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,uBAAuB,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,uBAAuB,CAAC,CAAC,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAG,IAAW;IAClD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAA;IACrC,CAAC;AACH,CAAC"}