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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,78 +1,313 @@
1
1
  import { catchUserErrors } from '../../tools/catchUserErrors'
2
- import { display } from '../../tools/display'
2
+ import { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display'
3
3
  import type { RawTelemetryConfiguration } from '../telemetry'
4
- import { ExperimentalFeature, addExperimentalFeatures } from '../../tools/experimentalFeatures'
5
- import type { Duration } from '../../tools/utils/timeUtils'
6
- import { ONE_SECOND } from '../../tools/utils/timeUtils'
7
4
  import { isPercentage } from '../../tools/utils/numberUtils'
8
- import { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils'
9
5
  import { objectHasValue } from '../../tools/utils/objectUtils'
10
- import { assign } from '../../tools/utils/polyfills'
11
6
  import { selectSessionStoreStrategyType } from '../session/sessionStore'
12
7
  import type { SessionStoreStrategyType } from '../session/storeStrategies/sessionStoreStrategy'
8
+ import { TrackingConsent } from '../trackingConsent'
9
+ import type { SessionPersistence } from '../session/sessionConstants'
10
+ import type { MatchOption } from '../../tools/matchOption'
11
+ import { isAllowedTrackingOrigins } from '../allowedTrackingOrigins'
12
+ import type { Site } from '../intakeSites'
13
+ import { isWorkerEnvironment } from '../../tools/globalObject'
13
14
  import type { TransportConfiguration } from './transportConfiguration'
14
15
  import { computeTransportConfiguration } from './transportConfiguration'
15
16
 
17
+ /**
18
+ * Default privacy level for the browser SDK.
19
+ *
20
+ * [Replay Privacy Options](https://docs.datadoghq.com/real_user_monitoring/session_replay/browser/privacy_options) for further information.
21
+ */
16
22
  export const DefaultPrivacyLevel = {
17
23
  ALLOW: 'allow',
18
24
  MASK: 'mask',
19
25
  MASK_USER_INPUT: 'mask-user-input',
26
+ MASK_UNLESS_ALLOWLISTED: 'mask-unless-allowlisted',
20
27
  } as const
21
28
  export type DefaultPrivacyLevel = (typeof DefaultPrivacyLevel)[keyof typeof DefaultPrivacyLevel]
22
29
 
30
+ /**
31
+ * Trace context injection option.
32
+ *
33
+ * See [Connect RUM and Traces](https://docs.datadoghq.com/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
34
+ */
35
+ export const TraceContextInjection = {
36
+ ALL: 'all',
37
+ SAMPLED: 'sampled',
38
+ } as const
39
+
40
+ /**
41
+ * Trace context injection option.
42
+ *
43
+ * See [Connect RUM and Traces](https://docs.datadoghq.com/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
44
+ *
45
+ */
46
+ export type TraceContextInjection = (typeof TraceContextInjection)[keyof typeof TraceContextInjection]
47
+
23
48
  export interface InitConfiguration {
24
- // global options
49
+ /**
50
+ * The client token for Datadog. Required for authenticating your application with Datadog.
51
+ *
52
+ * @category Authentication
53
+ */
25
54
  clientToken: string
55
+
56
+ /**
57
+ * A callback function that can be used to modify events before they are sent to Datadog.
58
+ *
59
+ * @category Data Collection
60
+ */
26
61
  beforeSend?: GenericBeforeSendCallback | undefined
62
+
27
63
  /**
28
- * @deprecated use sessionSampleRate instead
64
+ * The percentage of sessions tracked. A value between 0 and 100.
65
+ *
66
+ * @category Data Collection
67
+ * @defaultValue 100
29
68
  */
30
- sampleRate?: number | undefined
31
69
  sessionSampleRate?: number | undefined
70
+
71
+ /**
72
+ * The percentage of telemetry events sent. A value between 0 and 100.
73
+ *
74
+ * @category Data Collection
75
+ * @defaultValue 20
76
+ */
32
77
  telemetrySampleRate?: number | undefined
78
+
79
+ /**
80
+ * Initialization fails silently if the RUM Browser SDK is already initialized on the page.
81
+ *
82
+ * @defaultValue false
83
+ */
33
84
  silentMultipleInit?: boolean | undefined
34
- trackResources?: boolean | undefined
35
- trackLongTasks?: boolean | undefined
85
+
86
+ /**
87
+ * Which storage strategy to use for persisting sessions. Can be either 'cookie' or 'local-storage'.
88
+ *
89
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
90
+ *
91
+ * @category Session Persistence
92
+ * @defaultValue "cookie"
93
+ */
94
+ sessionPersistence?: SessionPersistence | undefined
95
+
96
+ /**
97
+ * Allows the use of localStorage when cookies cannot be set. This enables the RUM Browser SDK to run in environments that do not provide cookie support.
98
+ *
99
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
100
+ * See [Monitor Electron Applications Using the Browser SDK](https://docs.datadoghq.com/real_user_monitoring/guide/monitor-electron-applications-using-browser-sdk) for further information.
101
+ *
102
+ * @category Session Persistence
103
+ * @deprecated use `sessionPersistence: local-storage` where you want to use localStorage instead
104
+ */
105
+ allowFallbackToLocalStorage?: boolean | undefined
106
+
107
+ /**
108
+ * Allow listening to DOM events dispatched programmatically ([untrusted events](https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted)). Enabling this option can be useful if you heavily rely on programmatic events, such as in an automated UI test environment.
109
+ *
110
+ * @defaultValue false
111
+ */
112
+ allowUntrustedEvents?: boolean | undefined
113
+
114
+ /**
115
+ * Store global context and user context in localStorage to preserve them along the user navigation.
116
+ * See [Contexts life cycle](https://docs.datadoghq.com/real_user_monitoring/browser/advanced_configuration/?tab=npm#contexts-life-cycle) for further information.
117
+ *
118
+ * @defaultValue false
119
+ */
120
+ storeContextsAcrossPages?: boolean | undefined
121
+
122
+ /**
123
+ * Set the initial user tracking consent state.
124
+ * See [User tracking consent](https://docs.datadoghq.com/real_user_monitoring/browser/advanced_configuration/?tab=npm#user-tracking-consent) for further information.
125
+ *
126
+ * @category Privacy
127
+ * @defaultValue granted
128
+ */
129
+ trackingConsent?: TrackingConsent | undefined
130
+
131
+ /**
132
+ * List of origins where the SDK is allowed to run when used in a browser extension context.
133
+ * Matches urls against the extensions origin.
134
+ * If not provided and the SDK is running in a browser extension, the SDK will not run.
135
+ */
136
+ allowedTrackingOrigins?: MatchOption[] | undefined
36
137
 
37
138
  // transport options
38
- proxy?: string | undefined
39
139
  /**
40
- * @deprecated use `proxy` instead
140
+ * Optional proxy URL, for example: https://www.proxy.com/path.
141
+ * See [Proxy Your Browser RUM Data](https://docs.datadoghq.com/real_user_monitoring/guide/proxy-rum-data) for further information.
142
+ *
143
+ * @category Transport
41
144
  */
42
- proxyUrl?: string | undefined
43
- site?: string | undefined
145
+ proxy?: string | ProxyFn | undefined
146
+
147
+ /**
148
+ * The Datadog [site](https://docs.datadoghq.com/getting_started/site) parameter of your organization.
149
+ *
150
+ * @category Transport
151
+ * @defaultValue datadoghq.com
152
+ */
153
+ site?: Site | undefined
44
154
 
45
155
  // tag and context options
46
- service: string | undefined
47
- env: string | undefined
48
- version: string | undefined
156
+ /**
157
+ * The service name for your application. Follows the [tag syntax requirements](https://docs.datadoghq.com/getting_started/tagging/#define-tags).
158
+ *
159
+ * @category Data Collection
160
+ */
161
+ service?: string | undefined | null
162
+
163
+ /**
164
+ * The application’s environment, for example: prod, pre-prod, and staging. Follows the [tag syntax requirements](https://docs.datadoghq.com/getting_started/tagging/#define-tags).
165
+ *
166
+ * @category Data Collection
167
+ */
168
+ env?: string | undefined | null
169
+
170
+ /**
171
+ * The application’s version, for example: 1.2.3, 6c44da20, and 2020.02.13. Follows the [tag syntax requirements](https://docs.datadoghq.com/getting_started/tagging/#define-tags).
172
+ *
173
+ * @category Data Collection
174
+ */
175
+ version?: string | undefined | null
49
176
 
50
177
  // cookie options
51
- useCrossSiteSessionCookie?: boolean | undefined
178
+ /**
179
+ * Use a partitioned secure cross-site session cookie. This allows the RUM Browser SDK to run when the site is loaded from another one (iframe). Implies `useSecureSessionCookie`.
180
+ *
181
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
182
+ *
183
+ * @category Session Persistence
184
+ * @defaultValue false
185
+ */
186
+ usePartitionedCrossSiteSessionCookie?: boolean | undefined
187
+
188
+ /**
189
+ * Use a secure session cookie. This disables RUM events sent on insecure (non-HTTPS) connections.
190
+ *
191
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
192
+ *
193
+ * @category Session Persistence
194
+ * @defaultValue false
195
+ */
52
196
  useSecureSessionCookie?: boolean | undefined
197
+
198
+ /**
199
+ * Preserve the session across subdomains for the same site.
200
+ *
201
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
202
+ *
203
+ * @category Session Persistence
204
+ * @defaultValue false
205
+ */
53
206
  trackSessionAcrossSubdomains?: boolean | undefined
54
207
 
55
- // alternate storage option
56
- allowFallbackToLocalStorage?: boolean | undefined
208
+ /**
209
+ * Track anonymous user for the same site and extend cookie expiration date
210
+ *
211
+ * @category Data Collection
212
+ * @defaultValue true
213
+ */
214
+ trackAnonymousUser?: boolean | undefined
215
+
216
+ /**
217
+ * Encode cookie options in the cookie value. This can be used as a mitigation for microssession issues.
218
+ * ⚠️ This is a beta feature and may be changed or removed in the future.
219
+ *
220
+ * @category Beta
221
+ * @defaultValue false
222
+ */
223
+ betaEncodeCookieOptions?: boolean | undefined
57
224
 
58
225
  // internal options
226
+ /**
227
+ * [Internal option] Enable experimental features
228
+ *
229
+ * @internal
230
+ */
59
231
  enableExperimentalFeatures?: string[] | undefined
232
+
233
+ /**
234
+ * [Internal option] Configure the dual shipping to another datacenter
235
+ *
236
+ * @internal
237
+ */
60
238
  replica?: ReplicaUserConfiguration | undefined
239
+
240
+ /**
241
+ * [Internal option] Set the datacenter from where the data is dual shipped
242
+ *
243
+ * @internal
244
+ */
61
245
  datacenter?: string
246
+
247
+ /**
248
+ * [Internal option] Datadog internal analytics subdomain
249
+ *
250
+ * @internal
251
+ */
252
+ // TODO next major: remove this option and replace usages by proxyFn
62
253
  internalAnalyticsSubdomain?: string
63
254
 
255
+ /**
256
+ * [Internal option] The percentage of telemetry configuration sent. A value between 0 and 100.
257
+ *
258
+ * @internal
259
+ * @defaultValue 5
260
+ */
64
261
  telemetryConfigurationSampleRate?: number
65
262
 
263
+ /**
264
+ * [Internal option] The percentage of telemetry usage sent. A value between 0 and 100.
265
+ *
266
+ * @internal
267
+ * @defaultValue 5
268
+ */
269
+ telemetryUsageSampleRate?: number
270
+
271
+ /**
272
+ * [Internal option] Additional configuration for the SDK.
273
+ *
274
+ * @internal
275
+ */
276
+ source?: 'browser' | 'flutter' | 'unity' | undefined
277
+
278
+ /**
279
+ * [Internal option] Additional configuration for the SDK.
280
+ *
281
+ * @internal
282
+ */
283
+ sdkVersion?: string | undefined
284
+
285
+ /**
286
+ * [Internal option] Additional configuration for the SDK.
287
+ *
288
+ * @internal
289
+ */
290
+ variant?: string | undefined
291
+
66
292
  apiVersion: string
67
293
  organizationIdentifier: string
68
- insecureHTTP: boolean
294
+ insecureHTTP: boolean | undefined
69
295
  }
70
296
 
71
297
  // This type is only used to build the core configuration. Logs and RUM SDKs are using a proper type
72
298
  // for this option.
73
299
  type GenericBeforeSendCallback = (event: any, context?: any) => unknown
74
300
 
75
- interface ReplicaUserConfiguration {
301
+ /**
302
+ * path: /api/vX/product
303
+ * parameters: xxx=yyy&zzz=aaa
304
+ */
305
+ export type ProxyFn = (options: { path: string; parameters: string }) => string
306
+
307
+ /**
308
+ * @internal
309
+ */
310
+ export interface ReplicaUserConfiguration {
76
311
  applicationId?: string
77
312
  clientToken: string
78
313
  }
@@ -84,108 +319,144 @@ export interface Configuration extends TransportConfiguration {
84
319
  sessionSampleRate: number
85
320
  telemetrySampleRate: number
86
321
  telemetryConfigurationSampleRate: number
87
- service: string | undefined
322
+ telemetryUsageSampleRate: number
323
+ service?: string | undefined
324
+ version?: string | undefined
325
+ env?: string | undefined
88
326
  silentMultipleInit: boolean
327
+ allowUntrustedEvents: boolean
328
+ trackingConsent: TrackingConsent
329
+ storeContextsAcrossPages: boolean
330
+ trackAnonymousUser?: boolean
331
+ betaEncodeCookieOptions: boolean
332
+
333
+ // internal
334
+ sdkVersion: string | undefined
335
+ source: 'browser' | 'flutter' | 'unity'
336
+ variant: string | undefined
337
+ apiVersion: string
338
+ organizationIdentifier: string
339
+ insecureHTTP: boolean | undefined
340
+ }
341
+
342
+ function isString(tag: unknown, tagName: string): tag is string | undefined | null {
343
+ if (tag !== undefined && tag !== null && typeof tag !== 'string') {
344
+ display.error(`${tagName} must be defined as a string`)
345
+ return false
346
+ }
347
+ return true
348
+ }
89
349
 
90
- // Event limits
91
- eventRateLimiterThreshold: number // Limit the maximum number of actions, errors and logs per minutes
92
- maxTelemetryEventsPerPage: number
350
+ function isDatadogSite(site: unknown) {
351
+ if (site && typeof site === 'string' && !/(datadog|ddog|datad0g|dd0g)/.test(site)) {
352
+ display.error(`Site should be a valid Datadog site. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/site/.`)
353
+ return false
354
+ }
355
+ return true
356
+ }
93
357
 
94
- // Batch configuration
95
- batchBytesLimit: number
96
- flushTimeout: Duration
97
- batchMessagesLimit: number
98
- messageBytesLimit: number
358
+ export function isSampleRate(sampleRate: unknown, name: string) {
359
+ if (sampleRate !== undefined && !isPercentage(sampleRate)) {
360
+ display.error(`${name} Sample Rate should be a number between 0 and 100`)
361
+ return false
362
+ }
363
+ return true
99
364
  }
100
365
 
101
- export function validateAndBuildConfiguration(initConfiguration: InitConfiguration): Configuration | undefined {
366
+ export function validateAndBuildConfiguration(
367
+ initConfiguration: InitConfiguration,
368
+ errorStack?: string
369
+ ): Configuration | undefined {
102
370
  if (!initConfiguration || !initConfiguration.clientToken) {
103
371
  display.error('Client Token is not configured, we will not send any data.')
104
372
  return
105
373
  }
106
374
 
107
- const sessionSampleRate = initConfiguration.sessionSampleRate ?? initConfiguration.sampleRate
108
- if (sessionSampleRate !== undefined && !isPercentage(sessionSampleRate)) {
109
- display.error('Session Sample Rate should be a number between 0 and 100')
375
+ if (
376
+ initConfiguration.allowedTrackingOrigins !== undefined &&
377
+ !Array.isArray(initConfiguration.allowedTrackingOrigins)
378
+ ) {
379
+ display.error('Allowed Tracking Origins must be an array')
110
380
  return
111
381
  }
112
382
 
113
- if (initConfiguration.telemetrySampleRate !== undefined && !isPercentage(initConfiguration.telemetrySampleRate)) {
114
- display.error('Telemetry Sample Rate should be a number between 0 and 100')
383
+ if (
384
+ !isDatadogSite(initConfiguration.site) ||
385
+ !isSampleRate(initConfiguration.sessionSampleRate, 'Session') ||
386
+ !isSampleRate(initConfiguration.telemetrySampleRate, 'Telemetry') ||
387
+ !isSampleRate(initConfiguration.telemetryConfigurationSampleRate, 'Telemetry Configuration') ||
388
+ !isSampleRate(initConfiguration.telemetryUsageSampleRate, 'Telemetry Usage') ||
389
+ !isString(initConfiguration.version, 'Version') ||
390
+ !isString(initConfiguration.env, 'Env') ||
391
+ !isString(initConfiguration.service, 'Service') ||
392
+ !isAllowedTrackingOrigins(initConfiguration, errorStack ?? '')
393
+ ) {
115
394
  return
116
395
  }
117
396
 
118
397
  if (
119
- initConfiguration.telemetryConfigurationSampleRate !== undefined &&
120
- !isPercentage(initConfiguration.telemetryConfigurationSampleRate)
398
+ initConfiguration.trackingConsent !== undefined &&
399
+ !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)
121
400
  ) {
122
- display.error('Telemetry Configuration Sample Rate should be a number between 0 and 100')
401
+ display.error('Tracking Consent should be either "granted" or "not-granted"')
123
402
  return
124
403
  }
125
404
 
126
- // Set the experimental feature flags as early as possible, so we can use them in most places
127
- if (Array.isArray(initConfiguration.enableExperimentalFeatures)) {
128
- addExperimentalFeatures(
129
- initConfiguration.enableExperimentalFeatures.filter((flag): flag is ExperimentalFeature =>
130
- objectHasValue(ExperimentalFeature, flag)
131
- )
132
- )
133
- }
405
+ return {
406
+ beforeSend:
407
+ initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),
408
+ sessionStoreStrategyType: isWorkerEnvironment ? undefined : selectSessionStoreStrategyType(initConfiguration),
409
+ sessionSampleRate: initConfiguration.sessionSampleRate ?? 100,
410
+ telemetrySampleRate: initConfiguration.telemetrySampleRate ?? 20,
411
+ telemetryConfigurationSampleRate: initConfiguration.telemetryConfigurationSampleRate ?? 5,
412
+ telemetryUsageSampleRate: initConfiguration.telemetryUsageSampleRate ?? 5,
413
+ service: initConfiguration.service ?? undefined,
414
+ env: initConfiguration.env ?? undefined,
415
+ version: initConfiguration.version ?? undefined,
416
+ datacenter: initConfiguration.datacenter ?? undefined,
417
+ silentMultipleInit: !!initConfiguration.silentMultipleInit,
418
+ allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,
419
+ trackingConsent: initConfiguration.trackingConsent ?? TrackingConsent.GRANTED,
420
+ trackAnonymousUser: initConfiguration.trackAnonymousUser ?? true,
421
+ storeContextsAcrossPages: !!initConfiguration.storeContextsAcrossPages,
422
+ betaEncodeCookieOptions: !!initConfiguration.betaEncodeCookieOptions,
423
+
424
+ /**
425
+ * The source of the SDK, used for support plugins purposes.
426
+ */
427
+ variant: initConfiguration.variant,
428
+ sdkVersion: initConfiguration.sdkVersion,
134
429
 
135
- return assign(
136
- {
137
- beforeSend:
138
- initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),
139
- sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),
140
- sessionSampleRate: sessionSampleRate ?? 100,
141
- telemetrySampleRate: initConfiguration.telemetrySampleRate ?? 20,
142
- telemetryConfigurationSampleRate: initConfiguration.telemetryConfigurationSampleRate ?? 5,
143
- service: initConfiguration.service,
144
- silentMultipleInit: !!initConfiguration.silentMultipleInit,
145
-
146
- /**
147
- * beacon payload max queue size implementation is 64kb
148
- * ensure that we leave room for logs, rum and potential other users
149
- */
150
- batchBytesLimit: 16 * ONE_KIBI_BYTE,
151
-
152
- eventRateLimiterThreshold: 3000,
153
- maxTelemetryEventsPerPage: 15,
154
-
155
- /**
156
- * flush automatically, aim to be lower than ALB connection timeout
157
- * to maximize connection reuse.
158
- */
159
- flushTimeout: (30 * ONE_SECOND) as Duration,
160
-
161
- /**
162
- * Logs intake limit
163
- */
164
- batchMessagesLimit: 50,
165
- messageBytesLimit: 256 * ONE_KIBI_BYTE,
166
-
167
- apiVersion: initConfiguration.apiVersion ?? 'v1',
168
- organizationIdentifier: initConfiguration.organizationIdentifier,
169
- insecureHTTP: initConfiguration.insecureHTTP,
170
- },
171
- computeTransportConfiguration(initConfiguration)
172
- )
430
+ apiVersion: initConfiguration.apiVersion ?? 'v1',
431
+ organizationIdentifier: initConfiguration.organizationIdentifier,
432
+ insecureHTTP: initConfiguration.insecureHTTP,
433
+
434
+ ...computeTransportConfiguration(initConfiguration),
435
+ }
173
436
  }
174
437
 
175
- export function serializeConfiguration(initConfiguration: InitConfiguration): Partial<RawTelemetryConfiguration> {
176
- const proxy = initConfiguration.proxy ?? initConfiguration.proxyUrl
438
+ export function serializeConfiguration(initConfiguration: InitConfiguration) {
177
439
  return {
178
- session_sample_rate: initConfiguration.sessionSampleRate ?? initConfiguration.sampleRate,
440
+ session_sample_rate: initConfiguration.sessionSampleRate,
179
441
  telemetry_sample_rate: initConfiguration.telemetrySampleRate,
180
442
  telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,
443
+ telemetry_usage_sample_rate: initConfiguration.telemetryUsageSampleRate,
181
444
  use_before_send: !!initConfiguration.beforeSend,
182
- use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,
445
+ use_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,
183
446
  use_secure_session_cookie: initConfiguration.useSecureSessionCookie,
184
- use_proxy: proxy !== undefined ? !!proxy : undefined,
447
+ use_proxy: !!initConfiguration.proxy,
185
448
  silent_multiple_init: initConfiguration.silentMultipleInit,
186
449
  track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,
187
- track_resources: initConfiguration.trackResources,
188
- track_long_task: initConfiguration.trackLongTasks,
450
+ track_anonymous_user: initConfiguration.trackAnonymousUser,
451
+ session_persistence: initConfiguration.sessionPersistence,
189
452
  allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,
190
- }
453
+ store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,
454
+ allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,
455
+ tracking_consent: initConfiguration.trackingConsent,
456
+ use_allowed_tracking_origins: Array.isArray(initConfiguration.allowedTrackingOrigins),
457
+ beta_encode_cookie_options: initConfiguration.betaEncodeCookieOptions,
458
+ source: initConfiguration.source,
459
+ sdk_version: initConfiguration.sdkVersion,
460
+ variant: initConfiguration.variant,
461
+ } satisfies RawTelemetryConfiguration
191
462
  }