@multiplayer-app/session-recorder-common 0.0.12 → 1.0.1-alpha.0

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 (343) hide show
  1. package/dist/esm/SessionRecorderIdGenerator.js +2 -2
  2. package/dist/esm/SessionRecorderIdGenerator.js.map +1 -1
  3. package/dist/esm/SessionRecorderJsonTraceSerializer.d.ts.map +1 -1
  4. package/dist/esm/SessionRecorderJsonTraceSerializer.js +75 -7
  5. package/dist/esm/SessionRecorderJsonTraceSerializer.js.map +1 -1
  6. package/dist/esm/SessionRecorderTraceIdRatioBasedSampler.d.ts.map +1 -1
  7. package/dist/esm/SessionRecorderTraceIdRatioBasedSampler.js +4 -4
  8. package/dist/esm/SessionRecorderTraceIdRatioBasedSampler.js.map +1 -1
  9. package/dist/esm/{constants.base.d.ts → constants/constants.base.d.ts} +16 -0
  10. package/dist/esm/constants/constants.base.d.ts.map +1 -0
  11. package/dist/esm/{constants.base.js → constants/constants.base.js} +16 -0
  12. package/dist/esm/constants/constants.base.js.map +1 -0
  13. package/dist/esm/constants/constants.browser.d.ts.map +1 -0
  14. package/dist/esm/constants/constants.browser.js.map +1 -0
  15. package/dist/esm/constants/constants.node.d.ts.map +1 -0
  16. package/dist/esm/constants/constants.node.js.map +1 -0
  17. package/dist/esm/exporters/SessionRecorderBrowserTraceExporter.d.ts +31 -0
  18. package/dist/esm/exporters/SessionRecorderBrowserTraceExporter.d.ts.map +1 -0
  19. package/dist/esm/exporters/SessionRecorderBrowserTraceExporter.js +220 -0
  20. package/dist/esm/exporters/SessionRecorderBrowserTraceExporter.js.map +1 -0
  21. package/dist/esm/exporters/SessionRecorderGrpcLogsExporter.d.ts +22 -0
  22. package/dist/esm/exporters/SessionRecorderGrpcLogsExporter.d.ts.map +1 -0
  23. package/dist/esm/exporters/SessionRecorderGrpcLogsExporter.js +51 -0
  24. package/dist/esm/exporters/SessionRecorderGrpcLogsExporter.js.map +1 -0
  25. package/dist/esm/exporters/SessionRecorderGrpcTraceExporter.d.ts +22 -0
  26. package/dist/esm/exporters/SessionRecorderGrpcTraceExporter.d.ts.map +1 -0
  27. package/dist/esm/exporters/SessionRecorderGrpcTraceExporter.js +48 -0
  28. package/dist/esm/exporters/SessionRecorderGrpcTraceExporter.js.map +1 -0
  29. package/dist/esm/exporters/SessionRecorderHttpLogsExporter.d.ts +20 -0
  30. package/dist/esm/exporters/SessionRecorderHttpLogsExporter.d.ts.map +1 -0
  31. package/dist/esm/exporters/SessionRecorderHttpLogsExporter.js +50 -0
  32. package/dist/esm/exporters/SessionRecorderHttpLogsExporter.js.map +1 -0
  33. package/dist/esm/exporters/SessionRecorderHttpTraceExporter.d.ts +25 -0
  34. package/dist/esm/exporters/SessionRecorderHttpTraceExporter.d.ts.map +1 -0
  35. package/dist/esm/exporters/SessionRecorderHttpTraceExporter.js +56 -0
  36. package/dist/esm/exporters/SessionRecorderHttpTraceExporter.js.map +1 -0
  37. package/dist/esm/exporters/SessionRecorderLogsExporterWrapper.d.ts +13 -0
  38. package/dist/esm/exporters/SessionRecorderLogsExporterWrapper.d.ts.map +1 -0
  39. package/dist/esm/exporters/SessionRecorderLogsExporterWrapper.js +25 -0
  40. package/dist/esm/exporters/SessionRecorderLogsExporterWrapper.js.map +1 -0
  41. package/dist/esm/exporters/SessionRecorderTraceExporterWrapper.d.ts +13 -0
  42. package/dist/esm/exporters/SessionRecorderTraceExporterWrapper.d.ts.map +1 -0
  43. package/dist/esm/exporters/SessionRecorderTraceExporterWrapper.js +24 -0
  44. package/dist/esm/exporters/SessionRecorderTraceExporterWrapper.js.map +1 -0
  45. package/dist/esm/exporters/index-browser.d.ts +2 -0
  46. package/dist/esm/exporters/index-browser.d.ts.map +1 -0
  47. package/dist/esm/exporters/index-browser.js +2 -0
  48. package/dist/esm/exporters/index-browser.js.map +1 -0
  49. package/dist/esm/exporters/index-node.d.ts +7 -0
  50. package/dist/esm/exporters/index-node.d.ts.map +1 -0
  51. package/dist/esm/exporters/index-node.js +7 -0
  52. package/dist/esm/exporters/index-node.js.map +1 -0
  53. package/dist/esm/exporters/index.d.ts +8 -0
  54. package/dist/esm/exporters/index.d.ts.map +1 -0
  55. package/dist/esm/exporters/index.js +8 -0
  56. package/dist/esm/exporters/index.js.map +1 -0
  57. package/dist/esm/index-browser.d.ts +2 -2
  58. package/dist/esm/index-browser.d.ts.map +1 -1
  59. package/dist/esm/index-browser.js +2 -2
  60. package/dist/esm/index-browser.js.map +1 -1
  61. package/dist/esm/index-node.d.ts +3 -2
  62. package/dist/esm/index-node.d.ts.map +1 -1
  63. package/dist/esm/index-node.js +3 -2
  64. package/dist/esm/index-node.js.map +1 -1
  65. package/dist/esm/index.d.ts +3 -4
  66. package/dist/esm/index.d.ts.map +1 -1
  67. package/dist/esm/index.js +3 -4
  68. package/dist/esm/index.js.map +1 -1
  69. package/dist/esm/instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -0
  70. package/dist/esm/{SessionRecorderHttpInstrumentationHooksNode.js → instrumentations/SessionRecorderHttpInstrumentationHooksNode.js} +3 -6
  71. package/dist/esm/instrumentations/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -0
  72. package/dist/esm/instrumentations/index-node.d.ts +2 -0
  73. package/dist/esm/instrumentations/index-node.d.ts.map +1 -0
  74. package/dist/esm/instrumentations/index-node.js +2 -0
  75. package/dist/esm/instrumentations/index-node.js.map +1 -0
  76. package/dist/esm/sdk/capture-exception.js.map +1 -1
  77. package/dist/esm/sdk/id-generator.js.map +1 -1
  78. package/dist/esm/sdk/mask.js +1 -1
  79. package/dist/esm/sdk/mask.js.map +1 -1
  80. package/dist/esm/sdk/save-continuous-deb-session.d.ts.map +1 -1
  81. package/dist/esm/sdk/save-continuous-deb-session.js +2 -2
  82. package/dist/esm/sdk/save-continuous-deb-session.js.map +1 -1
  83. package/dist/esm/sdk/schemify.d.ts.map +1 -1
  84. package/dist/esm/sdk/schemify.js +0 -1
  85. package/dist/esm/sdk/schemify.js.map +1 -1
  86. package/dist/esm/sdk/set-attribute.js +2 -2
  87. package/dist/esm/sdk/set-attribute.js.map +1 -1
  88. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  89. package/dist/esnext/SessionRecorderIdGenerator.js +2 -2
  90. package/dist/esnext/SessionRecorderIdGenerator.js.map +1 -1
  91. package/dist/esnext/SessionRecorderJsonTraceSerializer.d.ts.map +1 -1
  92. package/dist/esnext/SessionRecorderJsonTraceSerializer.js +47 -7
  93. package/dist/esnext/SessionRecorderJsonTraceSerializer.js.map +1 -1
  94. package/dist/esnext/SessionRecorderTraceIdRatioBasedSampler.d.ts.map +1 -1
  95. package/dist/esnext/SessionRecorderTraceIdRatioBasedSampler.js +4 -4
  96. package/dist/esnext/SessionRecorderTraceIdRatioBasedSampler.js.map +1 -1
  97. package/dist/{src → esnext/constants}/constants.base.d.ts +16 -0
  98. package/dist/esnext/constants/constants.base.d.ts.map +1 -0
  99. package/dist/esnext/{constants.base.js → constants/constants.base.js} +16 -0
  100. package/dist/esnext/constants/constants.base.js.map +1 -0
  101. package/dist/esnext/constants/constants.browser.d.ts.map +1 -0
  102. package/dist/esnext/constants/constants.browser.js.map +1 -0
  103. package/dist/esnext/constants/constants.node.d.ts.map +1 -0
  104. package/dist/esnext/constants/constants.node.js.map +1 -0
  105. package/dist/esnext/exporters/SessionRecorderBrowserTraceExporter.d.ts +31 -0
  106. package/dist/esnext/exporters/SessionRecorderBrowserTraceExporter.d.ts.map +1 -0
  107. package/dist/esnext/exporters/SessionRecorderBrowserTraceExporter.js +159 -0
  108. package/dist/esnext/exporters/SessionRecorderBrowserTraceExporter.js.map +1 -0
  109. package/dist/esnext/exporters/SessionRecorderGrpcLogsExporter.d.ts +22 -0
  110. package/dist/esnext/exporters/SessionRecorderGrpcLogsExporter.d.ts.map +1 -0
  111. package/dist/esnext/exporters/SessionRecorderGrpcLogsExporter.js +33 -0
  112. package/dist/esnext/exporters/SessionRecorderGrpcLogsExporter.js.map +1 -0
  113. package/dist/esnext/exporters/SessionRecorderGrpcTraceExporter.d.ts +22 -0
  114. package/dist/esnext/exporters/SessionRecorderGrpcTraceExporter.d.ts.map +1 -0
  115. package/dist/esnext/exporters/SessionRecorderGrpcTraceExporter.js +30 -0
  116. package/dist/esnext/exporters/SessionRecorderGrpcTraceExporter.js.map +1 -0
  117. package/dist/esnext/exporters/SessionRecorderHttpLogsExporter.d.ts +20 -0
  118. package/dist/esnext/exporters/SessionRecorderHttpLogsExporter.d.ts.map +1 -0
  119. package/dist/esnext/exporters/SessionRecorderHttpLogsExporter.js +32 -0
  120. package/dist/esnext/exporters/SessionRecorderHttpLogsExporter.js.map +1 -0
  121. package/dist/esnext/exporters/SessionRecorderHttpTraceExporter.d.ts +25 -0
  122. package/dist/esnext/exporters/SessionRecorderHttpTraceExporter.d.ts.map +1 -0
  123. package/dist/esnext/exporters/SessionRecorderHttpTraceExporter.js +38 -0
  124. package/dist/esnext/exporters/SessionRecorderHttpTraceExporter.js.map +1 -0
  125. package/dist/esnext/exporters/SessionRecorderLogsExporterWrapper.d.ts +13 -0
  126. package/dist/esnext/exporters/SessionRecorderLogsExporterWrapper.d.ts.map +1 -0
  127. package/dist/esnext/exporters/SessionRecorderLogsExporterWrapper.js +23 -0
  128. package/dist/esnext/exporters/SessionRecorderLogsExporterWrapper.js.map +1 -0
  129. package/dist/esnext/exporters/SessionRecorderTraceExporterWrapper.d.ts +13 -0
  130. package/dist/esnext/exporters/SessionRecorderTraceExporterWrapper.d.ts.map +1 -0
  131. package/dist/esnext/exporters/SessionRecorderTraceExporterWrapper.js +22 -0
  132. package/dist/esnext/exporters/SessionRecorderTraceExporterWrapper.js.map +1 -0
  133. package/dist/esnext/exporters/index-browser.d.ts +2 -0
  134. package/dist/esnext/exporters/index-browser.d.ts.map +1 -0
  135. package/dist/esnext/exporters/index-browser.js +2 -0
  136. package/dist/esnext/exporters/index-browser.js.map +1 -0
  137. package/dist/esnext/exporters/index-node.d.ts +7 -0
  138. package/dist/esnext/exporters/index-node.d.ts.map +1 -0
  139. package/dist/esnext/exporters/index-node.js +7 -0
  140. package/dist/esnext/exporters/index-node.js.map +1 -0
  141. package/dist/esnext/exporters/index.d.ts +8 -0
  142. package/dist/esnext/exporters/index.d.ts.map +1 -0
  143. package/dist/esnext/exporters/index.js +8 -0
  144. package/dist/esnext/exporters/index.js.map +1 -0
  145. package/dist/esnext/index-browser.d.ts +2 -2
  146. package/dist/esnext/index-browser.d.ts.map +1 -1
  147. package/dist/esnext/index-browser.js +2 -2
  148. package/dist/esnext/index-browser.js.map +1 -1
  149. package/dist/esnext/index-node.d.ts +3 -2
  150. package/dist/esnext/index-node.d.ts.map +1 -1
  151. package/dist/esnext/index-node.js +3 -2
  152. package/dist/esnext/index-node.js.map +1 -1
  153. package/dist/esnext/index.d.ts +3 -4
  154. package/dist/esnext/index.d.ts.map +1 -1
  155. package/dist/esnext/index.js +3 -4
  156. package/dist/esnext/index.js.map +1 -1
  157. package/dist/esnext/instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -0
  158. package/dist/esnext/{SessionRecorderHttpInstrumentationHooksNode.js → instrumentations/SessionRecorderHttpInstrumentationHooksNode.js} +3 -6
  159. package/dist/esnext/instrumentations/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -0
  160. package/dist/esnext/instrumentations/index-node.d.ts +2 -0
  161. package/dist/esnext/instrumentations/index-node.d.ts.map +1 -0
  162. package/dist/esnext/instrumentations/index-node.js +2 -0
  163. package/dist/esnext/instrumentations/index-node.js.map +1 -0
  164. package/dist/esnext/sdk/capture-exception.js.map +1 -1
  165. package/dist/esnext/sdk/id-generator.js.map +1 -1
  166. package/dist/esnext/sdk/mask.js +1 -1
  167. package/dist/esnext/sdk/mask.js.map +1 -1
  168. package/dist/esnext/sdk/save-continuous-deb-session.d.ts.map +1 -1
  169. package/dist/esnext/sdk/save-continuous-deb-session.js +2 -2
  170. package/dist/esnext/sdk/save-continuous-deb-session.js.map +1 -1
  171. package/dist/esnext/sdk/schemify.d.ts.map +1 -1
  172. package/dist/esnext/sdk/schemify.js +0 -1
  173. package/dist/esnext/sdk/schemify.js.map +1 -1
  174. package/dist/esnext/sdk/set-attribute.js +2 -2
  175. package/dist/esnext/sdk/set-attribute.js.map +1 -1
  176. package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -1
  177. package/dist/src/SessionRecorderIdGenerator.js +1 -1
  178. package/dist/src/SessionRecorderIdGenerator.js.map +1 -1
  179. package/dist/src/SessionRecorderJsonTraceSerializer.d.ts.map +1 -1
  180. package/dist/src/SessionRecorderJsonTraceSerializer.js +47 -7
  181. package/dist/src/SessionRecorderJsonTraceSerializer.js.map +1 -1
  182. package/dist/src/SessionRecorderTraceIdRatioBasedSampler.d.ts.map +1 -1
  183. package/dist/src/SessionRecorderTraceIdRatioBasedSampler.js +4 -4
  184. package/dist/src/SessionRecorderTraceIdRatioBasedSampler.js.map +1 -1
  185. package/dist/{esnext → src/constants}/constants.base.d.ts +16 -0
  186. package/dist/src/constants/constants.base.d.ts.map +1 -0
  187. package/dist/src/{constants.base.js → constants/constants.base.js} +17 -1
  188. package/dist/src/constants/constants.base.js.map +1 -0
  189. package/dist/src/constants/constants.browser.d.ts.map +1 -0
  190. package/dist/src/constants/constants.browser.js.map +1 -0
  191. package/dist/src/constants/constants.node.d.ts.map +1 -0
  192. package/dist/src/constants/constants.node.js.map +1 -0
  193. package/dist/src/exporters/SessionRecorderBrowserTraceExporter.d.ts +31 -0
  194. package/dist/src/exporters/SessionRecorderBrowserTraceExporter.d.ts.map +1 -0
  195. package/dist/src/exporters/SessionRecorderBrowserTraceExporter.js +163 -0
  196. package/dist/src/exporters/SessionRecorderBrowserTraceExporter.js.map +1 -0
  197. package/dist/src/exporters/SessionRecorderGrpcLogsExporter.d.ts +22 -0
  198. package/dist/src/exporters/SessionRecorderGrpcLogsExporter.d.ts.map +1 -0
  199. package/dist/src/exporters/SessionRecorderGrpcLogsExporter.js +37 -0
  200. package/dist/src/exporters/SessionRecorderGrpcLogsExporter.js.map +1 -0
  201. package/dist/src/exporters/SessionRecorderGrpcTraceExporter.d.ts +22 -0
  202. package/dist/src/exporters/SessionRecorderGrpcTraceExporter.d.ts.map +1 -0
  203. package/dist/src/exporters/SessionRecorderGrpcTraceExporter.js +34 -0
  204. package/dist/src/exporters/SessionRecorderGrpcTraceExporter.js.map +1 -0
  205. package/dist/src/exporters/SessionRecorderHttpLogsExporter.d.ts +20 -0
  206. package/dist/src/exporters/SessionRecorderHttpLogsExporter.d.ts.map +1 -0
  207. package/dist/src/exporters/SessionRecorderHttpLogsExporter.js +36 -0
  208. package/dist/src/exporters/SessionRecorderHttpLogsExporter.js.map +1 -0
  209. package/dist/src/exporters/SessionRecorderHttpTraceExporter.d.ts +25 -0
  210. package/dist/src/exporters/SessionRecorderHttpTraceExporter.d.ts.map +1 -0
  211. package/dist/src/exporters/SessionRecorderHttpTraceExporter.js +42 -0
  212. package/dist/src/exporters/SessionRecorderHttpTraceExporter.js.map +1 -0
  213. package/dist/src/exporters/SessionRecorderLogsExporterWrapper.d.ts +13 -0
  214. package/dist/src/exporters/SessionRecorderLogsExporterWrapper.d.ts.map +1 -0
  215. package/dist/src/exporters/SessionRecorderLogsExporterWrapper.js +27 -0
  216. package/dist/src/exporters/SessionRecorderLogsExporterWrapper.js.map +1 -0
  217. package/dist/src/exporters/SessionRecorderTraceExporterWrapper.d.ts +13 -0
  218. package/dist/src/exporters/SessionRecorderTraceExporterWrapper.d.ts.map +1 -0
  219. package/dist/src/exporters/SessionRecorderTraceExporterWrapper.js +26 -0
  220. package/dist/src/exporters/SessionRecorderTraceExporterWrapper.js.map +1 -0
  221. package/dist/src/exporters/index-browser.d.ts +2 -0
  222. package/dist/src/exporters/index-browser.d.ts.map +1 -0
  223. package/dist/src/exporters/index-browser.js +18 -0
  224. package/dist/src/exporters/index-browser.js.map +1 -0
  225. package/dist/src/exporters/index-node.d.ts +7 -0
  226. package/dist/src/exporters/index-node.d.ts.map +1 -0
  227. package/dist/src/exporters/index-node.js +23 -0
  228. package/dist/src/exporters/index-node.js.map +1 -0
  229. package/dist/src/exporters/index.d.ts +8 -0
  230. package/dist/src/exporters/index.d.ts.map +1 -0
  231. package/dist/src/exporters/index.js +24 -0
  232. package/dist/src/exporters/index.js.map +1 -0
  233. package/dist/src/index-browser.d.ts +2 -2
  234. package/dist/src/index-browser.d.ts.map +1 -1
  235. package/dist/src/index-browser.js +3 -4
  236. package/dist/src/index-browser.js.map +1 -1
  237. package/dist/src/index-node.d.ts +3 -2
  238. package/dist/src/index-node.d.ts.map +1 -1
  239. package/dist/src/index-node.js +3 -2
  240. package/dist/src/index-node.js.map +1 -1
  241. package/dist/src/index.d.ts +3 -4
  242. package/dist/src/index.d.ts.map +1 -1
  243. package/dist/src/index.js +4 -8
  244. package/dist/src/index.js.map +1 -1
  245. package/dist/src/instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -0
  246. package/dist/src/{SessionRecorderHttpInstrumentationHooksNode.js → instrumentations/SessionRecorderHttpInstrumentationHooksNode.js} +3 -6
  247. package/dist/src/instrumentations/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -0
  248. package/dist/src/instrumentations/index-node.d.ts +2 -0
  249. package/dist/src/instrumentations/index-node.d.ts.map +1 -0
  250. package/dist/src/instrumentations/index-node.js +18 -0
  251. package/dist/src/instrumentations/index-node.js.map +1 -0
  252. package/dist/src/sdk/capture-exception.js.map +1 -1
  253. package/dist/src/sdk/id-generator.js.map +1 -1
  254. package/dist/src/sdk/mask.js +1 -1
  255. package/dist/src/sdk/mask.js.map +1 -1
  256. package/dist/src/sdk/save-continuous-deb-session.d.ts.map +1 -1
  257. package/dist/src/sdk/save-continuous-deb-session.js +2 -2
  258. package/dist/src/sdk/save-continuous-deb-session.js.map +1 -1
  259. package/dist/src/sdk/schemify.d.ts.map +1 -1
  260. package/dist/src/sdk/schemify.js +0 -1
  261. package/dist/src/sdk/schemify.js.map +1 -1
  262. package/dist/src/sdk/set-attribute.js +1 -1
  263. package/dist/src/sdk/set-attribute.js.map +1 -1
  264. package/package.json +12 -6
  265. package/src/SessionRecorderIdGenerator.ts +2 -2
  266. package/src/SessionRecorderJsonTraceSerializer.ts +48 -8
  267. package/src/SessionRecorderTraceIdRatioBasedSampler.ts +7 -4
  268. package/src/{constants.base.ts → constants/constants.base.ts} +23 -0
  269. package/src/exporters/SessionRecorderBrowserTraceExporter.ts +212 -0
  270. package/src/exporters/SessionRecorderGrpcLogsExporter.ts +52 -0
  271. package/src/exporters/SessionRecorderGrpcTraceExporter.ts +50 -0
  272. package/src/exporters/SessionRecorderHttpLogsExporter.ts +58 -0
  273. package/src/exporters/SessionRecorderHttpTraceExporter.ts +65 -0
  274. package/src/exporters/SessionRecorderLogsExporterWrapper.ts +36 -0
  275. package/src/exporters/SessionRecorderTraceExporterWrapper.ts +36 -0
  276. package/src/exporters/index-browser.ts +1 -0
  277. package/src/exporters/index-node.ts +6 -0
  278. package/src/exporters/index.ts +7 -0
  279. package/src/index-browser.ts +2 -2
  280. package/src/index-node.ts +3 -2
  281. package/src/index.ts +3 -4
  282. package/src/{SessionRecorderHttpInstrumentationHooksNode.ts → instrumentations/SessionRecorderHttpInstrumentationHooksNode.ts} +10 -10
  283. package/src/instrumentations/index-node.ts +1 -0
  284. package/src/sdk/capture-exception.ts +3 -3
  285. package/src/sdk/id-generator.ts +12 -12
  286. package/src/sdk/mask.ts +1 -1
  287. package/src/sdk/save-continuous-deb-session.ts +17 -17
  288. package/src/sdk/schemify.ts +0 -1
  289. package/src/sdk/set-attribute.ts +12 -12
  290. package/dist/esm/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +0 -1
  291. package/dist/esm/SessionRecorderHttpInstrumentationHooksNode.js.map +0 -1
  292. package/dist/esm/SessionRecorderHttpTraceExporterBrowser.d.ts +0 -26
  293. package/dist/esm/SessionRecorderHttpTraceExporterBrowser.d.ts.map +0 -1
  294. package/dist/esm/SessionRecorderHttpTraceExporterBrowser.js +0 -116
  295. package/dist/esm/SessionRecorderHttpTraceExporterBrowser.js.map +0 -1
  296. package/dist/esm/constants.base.d.ts.map +0 -1
  297. package/dist/esm/constants.base.js.map +0 -1
  298. package/dist/esm/constants.browser.d.ts.map +0 -1
  299. package/dist/esm/constants.browser.js.map +0 -1
  300. package/dist/esm/constants.node.d.ts.map +0 -1
  301. package/dist/esm/constants.node.js.map +0 -1
  302. package/dist/esnext/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +0 -1
  303. package/dist/esnext/SessionRecorderHttpInstrumentationHooksNode.js.map +0 -1
  304. package/dist/esnext/SessionRecorderHttpTraceExporterBrowser.d.ts +0 -26
  305. package/dist/esnext/SessionRecorderHttpTraceExporterBrowser.d.ts.map +0 -1
  306. package/dist/esnext/SessionRecorderHttpTraceExporterBrowser.js +0 -82
  307. package/dist/esnext/SessionRecorderHttpTraceExporterBrowser.js.map +0 -1
  308. package/dist/esnext/constants.base.d.ts.map +0 -1
  309. package/dist/esnext/constants.base.js.map +0 -1
  310. package/dist/esnext/constants.browser.d.ts.map +0 -1
  311. package/dist/esnext/constants.browser.js.map +0 -1
  312. package/dist/esnext/constants.node.d.ts.map +0 -1
  313. package/dist/esnext/constants.node.js.map +0 -1
  314. package/dist/src/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +0 -1
  315. package/dist/src/SessionRecorderHttpInstrumentationHooksNode.js.map +0 -1
  316. package/dist/src/SessionRecorderHttpTraceExporterBrowser.d.ts +0 -26
  317. package/dist/src/SessionRecorderHttpTraceExporterBrowser.d.ts.map +0 -1
  318. package/dist/src/SessionRecorderHttpTraceExporterBrowser.js +0 -86
  319. package/dist/src/SessionRecorderHttpTraceExporterBrowser.js.map +0 -1
  320. package/dist/src/constants.base.d.ts.map +0 -1
  321. package/dist/src/constants.base.js.map +0 -1
  322. package/dist/src/constants.browser.d.ts.map +0 -1
  323. package/dist/src/constants.browser.js.map +0 -1
  324. package/dist/src/constants.node.d.ts.map +0 -1
  325. package/dist/src/constants.node.js.map +0 -1
  326. package/src/SessionRecorderHttpTraceExporterBrowser.ts +0 -123
  327. /package/dist/esm/{constants.browser.d.ts → constants/constants.browser.d.ts} +0 -0
  328. /package/dist/esm/{constants.browser.js → constants/constants.browser.js} +0 -0
  329. /package/dist/esm/{constants.node.d.ts → constants/constants.node.d.ts} +0 -0
  330. /package/dist/esm/{constants.node.js → constants/constants.node.js} +0 -0
  331. /package/dist/esm/{SessionRecorderHttpInstrumentationHooksNode.d.ts → instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts} +0 -0
  332. /package/dist/esnext/{constants.browser.d.ts → constants/constants.browser.d.ts} +0 -0
  333. /package/dist/esnext/{constants.browser.js → constants/constants.browser.js} +0 -0
  334. /package/dist/esnext/{constants.node.d.ts → constants/constants.node.d.ts} +0 -0
  335. /package/dist/esnext/{constants.node.js → constants/constants.node.js} +0 -0
  336. /package/dist/esnext/{SessionRecorderHttpInstrumentationHooksNode.d.ts → instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts} +0 -0
  337. /package/dist/src/{constants.browser.d.ts → constants/constants.browser.d.ts} +0 -0
  338. /package/dist/src/{constants.browser.js → constants/constants.browser.js} +0 -0
  339. /package/dist/src/{constants.node.d.ts → constants/constants.node.d.ts} +0 -0
  340. /package/dist/src/{constants.node.js → constants/constants.node.js} +0 -0
  341. /package/dist/src/{SessionRecorderHttpInstrumentationHooksNode.d.ts → instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts} +0 -0
  342. /package/src/{constants.browser.ts → constants/constants.browser.ts} +0 -0
  343. /package/src/{constants.node.ts → constants/constants.node.ts} +0 -0
@@ -1,17 +1,17 @@
1
1
  const SHARED_CHAR_CODES_ARRAY = Array(32)
2
2
 
3
3
  export const getIdGenerator = (bytes: number) => {
4
- return function generateId() {
5
- for (let i = 0; i < bytes * 2; i++) {
6
- SHARED_CHAR_CODES_ARRAY[i] = Math.floor(Math.random() * 16) + 48
7
- // valid hex characters in the range 48-57 and 97-102
8
- if (SHARED_CHAR_CODES_ARRAY[i] >= 58) {
9
- SHARED_CHAR_CODES_ARRAY[i] += 39
10
- }
11
- }
12
- return String.fromCharCode.apply(
13
- null,
14
- SHARED_CHAR_CODES_ARRAY.slice(0, bytes * 2),
15
- )
4
+ return function generateId() {
5
+ for (let i = 0; i < bytes * 2; i++) {
6
+ SHARED_CHAR_CODES_ARRAY[i] = Math.floor(Math.random() * 16) + 48
7
+ // valid hex characters in the range 48-57 and 97-102
8
+ if (SHARED_CHAR_CODES_ARRAY[i] >= 58) {
9
+ SHARED_CHAR_CODES_ARRAY[i] += 39
10
+ }
16
11
  }
12
+ return String.fromCharCode.apply(
13
+ null,
14
+ SHARED_CHAR_CODES_ARRAY.slice(0, bytes * 2),
15
+ )
16
+ }
17
17
  }
package/src/sdk/mask.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Span } from '@opentelemetry/api'
2
- import { MASK_PLACEHOLDER } from '../constants.base'
2
+ import { MASK_PLACEHOLDER } from '../constants/constants.base'
3
3
 
4
4
  const MAX_DEPTH = 8
5
5
  export const sensitiveFields: string[] = [
@@ -1,28 +1,28 @@
1
1
  import { context, trace } from '@opentelemetry/api'
2
- import {
3
- ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE,
4
- ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON
5
- } from '../constants.base'
2
+ import {
3
+ ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE,
4
+ ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON,
5
+ } from '../constants/constants.base'
6
6
  /**
7
7
  * @description Set auto save attribute to span
8
- * @param {String} reason
8
+ * @param {String} reason
9
9
  * @returns {void}
10
10
  */
11
11
  export const saveContinuousSession = (
12
- reason?: string
12
+ reason?: string,
13
13
  ) => {
14
- const span = trace.getSpan(context.active())
14
+ const span = trace.getSpan(context.active())
15
15
 
16
- if (!span) {
17
- return
18
- // create span
19
- }
16
+ if (!span) {
17
+ return
18
+ // create span
19
+ }
20
20
 
21
- span?.setAttribute(ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE, true)
21
+ span?.setAttribute(ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE, true)
22
22
 
23
- if (reason?.length) {
24
- span?.addEvent(ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON, {
25
- reason
26
- })
27
- }
23
+ if (reason?.length) {
24
+ span?.addEvent(ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON, {
25
+ reason,
26
+ })
27
+ }
28
28
  }
@@ -1,6 +1,5 @@
1
1
  import * as _toJsonSchema from 'to-json-schema'
2
2
 
3
- // eslint-disable-next-line
4
3
  // @ts-ignore
5
4
  const toJsonSchema = _toJsonSchema?.default || _toJsonSchema
6
5
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  trace,
3
3
  AttributeValue,
4
- context
4
+ context,
5
5
  } from '@opentelemetry/api'
6
6
  import {
7
7
  ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,
@@ -12,8 +12,8 @@ import {
12
12
  ATTR_MULTIPLAYER_RPC_RESPONSE_MESSAGE,
13
13
  ATTR_MULTIPLAYER_GRPC_REQUEST_MESSAGE,
14
14
  ATTR_MULTIPLAYER_GRPC_RESPONSE_MESSAGE,
15
- ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY
16
- } from '../constants.base'
15
+ ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY,
16
+ } from '../constants/constants.base'
17
17
  import mask, { sensitiveFields, sensitiveHeaders } from './mask'
18
18
 
19
19
  /**
@@ -37,7 +37,7 @@ export const setAttribute = (key: string, value: AttributeValue) => {
37
37
  */
38
38
  export const setHttpRequestBody = (
39
39
  body: any,
40
- options: { mask: boolean } = { mask: true }
40
+ options: { mask: boolean } = { mask: true },
41
41
  ) => {
42
42
  const span = trace.getSpan(context.active())
43
43
  if (!span) return
@@ -57,7 +57,7 @@ export const setHttpRequestBody = (
57
57
  */
58
58
  export const setHttpRequestHeaders = (
59
59
  body: any,
60
- options: { mask: boolean } = { mask: true }
60
+ options: { mask: boolean } = { mask: true },
61
61
  ) => {
62
62
  const span = trace.getSpan(context.active())
63
63
  if (!span) return
@@ -77,7 +77,7 @@ export const setHttpRequestHeaders = (
77
77
  */
78
78
  export const setHttpResponseBody = (
79
79
  body: any,
80
- options: { mask: boolean } = { mask: true }
80
+ options: { mask: boolean } = { mask: true },
81
81
  ) => {
82
82
  const span = trace.getSpan(context.active())
83
83
  if (!span) return
@@ -97,7 +97,7 @@ export const setHttpResponseBody = (
97
97
  */
98
98
  export const setHttpResponseHeaders = (
99
99
  body: any,
100
- options: { mask: boolean } = { mask: true }
100
+ options: { mask: boolean } = { mask: true },
101
101
  ) => {
102
102
  const span = trace.getSpan(context.active())
103
103
  if (!span) return
@@ -117,7 +117,7 @@ export const setHttpResponseHeaders = (
117
117
  */
118
118
  export const setMessageBody = (
119
119
  body: any,
120
- options: { mask: boolean } = { mask: true }
120
+ options: { mask: boolean } = { mask: true },
121
121
  ) => {
122
122
  const span = trace.getSpan(context.active())
123
123
  if (!span) return
@@ -137,7 +137,7 @@ export const setMessageBody = (
137
137
  */
138
138
  export const setRpcRequestMessage = (
139
139
  body: any,
140
- options: { mask: boolean } = { mask: true }
140
+ options: { mask: boolean } = { mask: true },
141
141
  ) => {
142
142
  const span = trace.getSpan(context.active())
143
143
  if (!span) return
@@ -157,7 +157,7 @@ export const setRpcRequestMessage = (
157
157
  */
158
158
  export const setRpcResponseMessage = (
159
159
  body: any,
160
- options: { mask: boolean } = { mask: true }
160
+ options: { mask: boolean } = { mask: true },
161
161
  ) => {
162
162
  const span = trace.getSpan(context.active())
163
163
  if (!span) return
@@ -177,7 +177,7 @@ export const setRpcResponseMessage = (
177
177
  */
178
178
  export const setGrpcRequestMessage = (
179
179
  body: any,
180
- options: { mask: boolean } = { mask: true }
180
+ options: { mask: boolean } = { mask: true },
181
181
  ) => {
182
182
  const span = trace.getSpan(context.active())
183
183
  if (!span) return
@@ -197,7 +197,7 @@ export const setGrpcRequestMessage = (
197
197
  */
198
198
  export const setGrpcResponseMessage = (
199
199
  body: any,
200
- options: { mask: boolean } = { mask: true }
200
+ options: { mask: boolean } = { mask: true },
201
201
  ) => {
202
202
  const span = trace.getSpan(context.active())
203
203
  if (!span) return
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderHttpInstrumentationHooksNode.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderHttpInstrumentationHooksNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACd,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAqB9C,UAAU,uBAAuB;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;IACxC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;IAE3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,UAAU,sBAAsB;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;IACxC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;IAE3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AA0ED,eAAO,MAAM,2CAA2C;6BAC9B,uBAAuB,MAC5C,MAAM,IAAI,EAAE,UAAU,eAAe,GAAG,cAAc;4BAwIlC,sBAAsB,MAC1C,MAAM,IAAI,EAAE,SAAS,aAAa,GAAG,eAAe;CA+FxD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderHttpInstrumentationHooksNode.js","sourceRoot":"","sources":["../../src/SessionRecorderHttpInstrumentationHooksNode.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n IncomingMessage,\n ServerResponse,\n ClientRequest,\n} from 'http'\nimport * as zlib from 'zlib'\nimport type { Span } from '@opentelemetry/api'\nimport {\n ATTR_MULTIPLAYER_HTTP_REQUEST_BODY,\n ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS,\n MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_DOC_PREFIX\n} from './constants.node'\nimport {\n mask,\n schemify,\n isGzip,\n} from './sdk'\nimport {\n sensitiveFields,\n sensitiveHeaders\n} from './sdk/mask'\n\ninterface HttpResponseHookOptions {\n maxPayloadSizeBytes?: number\n schemifyDocSpanPayload?: boolean\n uncompressPayload?: boolean\n\n captureHeaders?: boolean\n captureBody?: boolean\n\n isMaskBodyEnabled?: boolean\n isMaskHeadersEnabled?: boolean\n\n maskBody?: (arg: any, span: Span) => any\n maskHeaders?: (arg: any, span: Span) => any\n\n maskBodyFieldsList?: string[]\n maskHeadersList?: string[]\n\n headersToInclude?: string[]\n headersToExclude?: string[]\n}\n\ninterface HttpRequestHookOptions {\n maxPayloadSizeBytes?: number\n schemifyDocSpanPayload?: boolean\n\n captureHeaders?: boolean\n captureBody?: boolean\n\n isMaskBodyEnabled?: boolean\n isMaskHeadersEnabled?: boolean\n\n maskBody?: (arg: any, span: Span) => any\n maskHeaders?: (arg: any, span: Span) => any\n\n maskBodyFieldsList?: string[]\n maskHeadersList?: string[]\n\n headersToInclude?: string[]\n headersToExclude?: string[]\n}\n\nconst setDefaultOptions = (\n options: HttpResponseHookOptions | HttpResponseHookOptions\n): Omit<HttpResponseHookOptions & HttpResponseHookOptions, 'maskBody' | 'maskHeaders'>\n & {\n maskBody: (arg: any, span: Span) => any\n maskHeaders: (arg: any, span: Span) => any\n captureHeaders: boolean,\n captureBody: boolean,\n isMaskBodyEnabled: boolean\n isMaskHeadersEnabled: boolean\n schemifyDocSpanPayload: boolean,\n uncompressPayload: boolean,\n maxPayloadSizeBytes: number\n } => {\n options.captureHeaders = 'captureHeaders' in options\n ? options.captureHeaders\n : true\n options.captureBody = 'captureBody' in options\n ? options.captureBody\n : true\n options.isMaskBodyEnabled = 'isMaskBodyEnabled' in options\n ? options.isMaskBodyEnabled\n : true\n options.isMaskHeadersEnabled = 'isMaskHeadersEnabled' in options\n ? options.isMaskHeadersEnabled\n : true\n options.schemifyDocSpanPayload = 'schemifyDocSpanPayload' in options\n ? options.schemifyDocSpanPayload\n : false\n options.uncompressPayload = 'uncompressPayload' in options\n ? options.uncompressPayload\n : true\n options.maskBody = options.maskBody || mask([\n ...(\n Array.isArray(options.maskBodyFieldsList)\n ? options.maskBodyFieldsList\n : sensitiveFields\n ),\n ...(\n Array.isArray(options.maskHeadersList)\n ? options.maskHeadersList\n : sensitiveHeaders\n ),\n ])\n options.maskHeaders = options.maskHeaders || mask([\n ...(\n Array.isArray(options.maskBodyFieldsList)\n ? options.maskBodyFieldsList\n : sensitiveFields\n ),\n ...(\n Array.isArray(options.maskHeadersList)\n ? options.maskHeadersList\n : sensitiveHeaders\n ),\n ])\n options.maxPayloadSizeBytes = options.maxPayloadSizeBytes || MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE\n\n return options as Omit<HttpResponseHookOptions & HttpResponseHookOptions, 'maskBody' | 'maskHeaders'>\n & {\n maskBody: (arg: any, span: Span) => any\n maskHeaders: (arg: any, span: Span) => any\n captureHeaders: boolean,\n captureBody: boolean,\n isMaskBodyEnabled: boolean,\n isMaskHeadersEnabled: boolean,\n schemifyDocSpanPayload: boolean,\n uncompressPayload: boolean,\n maxPayloadSizeBytes: number\n }\n}\n\nexport const SessionRecorderHttpInstrumentationHooksNode = {\n responseHook: (options: HttpResponseHookOptions = {}) =>\n (span: Span, response: IncomingMessage | ServerResponse) => {\n try {\n const _options = setDefaultOptions(options)\n\n if (!_options.captureBody && !_options.captureHeaders) {\n return\n }\n\n const _response = response as ServerResponse\n const traceId = span.spanContext().traceId\n\n if (_response.setHeader) {\n _response.setHeader('X-Trace-Id', traceId)\n }\n\n const [oldWrite, oldEnd] = [_response.write, _response.end]\n\n const chunks: Buffer[] = [];\n\n if (_options.captureBody) {\n (_response.write as unknown) = function (...restArgs: any[]) {\n chunks.push(Buffer.from(restArgs[0]))\n // eslint-disable-next-line\n // @ts-ignore\n oldWrite.apply(_response, restArgs)\n }\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n _response.end = async function (...restArgs) {\n if (_options.captureBody && restArgs[0]) {\n chunks.push(Buffer.from(restArgs[0]))\n }\n\n const responseBuffer = Buffer.concat(chunks)\n\n if (\n _options.captureBody\n && responseBuffer.byteLength > 0\n && responseBuffer.byteLength < _options.maxPayloadSizeBytes\n ) {\n let responseBody: string\n let skipResponseBodyModification = false\n\n if (isGzip(responseBuffer)) {\n if (_options.uncompressPayload) {\n const dezippedBuffer = await new Promise((resolve) => zlib\n .gunzip(responseBuffer, function (err, dezipped) {\n if (err) {\n return resolve(Buffer.from(''))\n } else {\n return resolve(dezipped)\n }\n })) as Buffer\n responseBody = dezippedBuffer.toString('utf-8')\n } else {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,\n 'gzip',\n )\n\n skipResponseBodyModification = true\n responseBody = responseBuffer.toString('hex')\n }\n } else {\n responseBody = responseBuffer.toString('utf-8')\n }\n\n if (responseBody.length) {\n responseBody = JSON.parse(JSON.stringify(responseBody))\n }\n\n if (!skipResponseBodyModification) {\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n && _options.isMaskBodyEnabled\n ) {\n responseBody = _options.maskBody(responseBody, span)\n } else if (\n traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)\n && _options.schemifyDocSpanPayload\n ) {\n responseBody = schemify(responseBody)\n } else if (typeof responseBody !== 'string') {\n responseBody = JSON.stringify(responseBody)\n }\n }\n\n if (responseBody.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,\n responseBody,\n )\n }\n }\n\n if (_options.captureHeaders) {\n let _headers = JSON.parse(JSON.stringify(_response.getHeaders() || {}))\n if (_options.isMaskHeadersEnabled) {\n _headers = _options.maskHeaders(_headers, span)\n }\n\n if (_options.headersToInclude) {\n const filteredHeaders: any = {}\n for (const headerName of _options.headersToInclude) {\n filteredHeaders[headerName] = _headers[headerName]\n }\n _headers = filteredHeaders\n }\n\n if (_options.headersToExclude?.length) {\n for (const headerName of _options.headersToExclude) {\n delete _headers[headerName]\n }\n }\n\n const stringifiedHeaders = JSON.stringify(_headers)\n\n if (stringifiedHeaders?.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS,\n stringifiedHeaders,\n )\n }\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n return oldEnd.apply(_response, restArgs)\n }\n } catch (error) {\n // eslint-disable-next-line\n console.error('An error occured in multiplayer otlp http responseHook', error)\n }\n },\n requestHook: (options: HttpRequestHookOptions = {}) =>\n (span: Span, request: ClientRequest | IncomingMessage) => {\n try {\n const _options = setDefaultOptions(options)\n\n if (!_options.captureBody && !_options.captureHeaders) {\n return\n }\n\n const traceId = span.spanContext().traceId\n const _request = request as IncomingMessage\n\n if (_options.captureHeaders) {\n let _headers = JSON.parse(JSON.stringify(_request.headers || {}))\n\n if (_options.isMaskHeadersEnabled) {\n _headers = _options.maskHeaders(_headers, span)\n }\n\n if (_options.headersToInclude) {\n const filteredHeaders: any = {}\n for (const headerName of _options.headersToInclude) {\n filteredHeaders[headerName] = _headers[headerName]\n }\n _headers = filteredHeaders\n }\n\n if (_options.headersToExclude?.length) {\n for (const headerName of _options.headersToExclude) {\n delete _headers[headerName]\n }\n }\n\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS,\n JSON.stringify(_headers),\n )\n }\n\n const contentType = _request?.headers?.['content-type']\n if (\n _options.captureBody\n && contentType?.includes('application/json')\n ) {\n let body = ''\n _request.on('data', (chunk) => {\n body += chunk\n })\n _request.on('end', () => {\n try {\n const requestBodySizeBytes = Buffer.byteLength(body, 'utf8')\n\n if (\n requestBodySizeBytes === 0\n || requestBodySizeBytes > _options.maxPayloadSizeBytes\n ) {\n return\n }\n\n let requestBody = body\n if (!requestBody) return\n\n requestBody = JSON.parse(JSON.stringify(requestBody))\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n && _options.isMaskBodyEnabled\n ) {\n requestBody = _options.maskBody(requestBody, span)\n } else if (\n traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)\n && _options.schemifyDocSpanPayload\n ) {\n requestBody = schemify(requestBody)\n } else if (typeof requestBody !== 'string') {\n requestBody = JSON.stringify(requestBody)\n }\n\n if (requestBody?.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_REQUEST_BODY,\n requestBody,\n )\n }\n } catch (err) {\n // eslint-disable-next-line\n console.error('[MULTIPLAYER-HTTP-REQ-HOOK] An error occured in multiplayer otlp http requestHook', err)\n }\n })\n }\n\n } catch (error) {\n // eslint-disable-next-line\n console.error('An error occured in multiplayer otlp http requestHook', error)\n }\n },\n}\n"]}
@@ -1,26 +0,0 @@
1
- import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
2
- import { OTLPExporterConfigBase, OTLPExporterBase } from '@opentelemetry/otlp-exporter-base';
3
- interface SessionRecorderExporterBrowserConfig extends OTLPExporterConfigBase {
4
- apiKey?: string;
5
- usePostMessageFallback?: boolean;
6
- postMessageType?: string;
7
- postMessageTargetOrigin?: string;
8
- }
9
- /**
10
- * Trace Exporters for Web with postMessage fallback
11
- */
12
- export declare class SessionRecorderHttpTraceExporterBrowser extends OTLPExporterBase<ReadableSpan[]> implements SpanExporter {
13
- private usePostMessage;
14
- private readonly postMessageType;
15
- private readonly postMessageTargetOrigin;
16
- private readonly config;
17
- constructor(config?: SessionRecorderExporterBrowserConfig);
18
- export(spans: ReadableSpan[], resultCallback: (result: {
19
- code: number;
20
- }) => void): void;
21
- private exportViaPostMessage;
22
- private _serializeSpan;
23
- getDefaultUrl(config: OTLPExporterConfigBase): string;
24
- }
25
- export {};
26
- //# sourceMappingURL=SessionRecorderHttpTraceExporterBrowser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderHttpTraceExporterBrowser.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderHttpTraceExporterBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,mCAAmC,CAAA;AAK1C,UAAU,oCACR,SAAQ,sBAAsB;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC;AAED;;GAEG;AACH,qBAAa,uCACX,SAAQ,gBAAgB,CAAC,YAAY,EAAE,CACvC,YAAW,YAAY;IAEvB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAQ;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAEjD,MAAM,GAAE,oCAAyC;IA0BpD,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI;IAkBhG,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,cAAc;IAyBtB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM;CAGtD"}
@@ -1,116 +0,0 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
16
- var __assign = (this && this.__assign) || function () {
17
- __assign = Object.assign || function(t) {
18
- for (var s, i = 1, n = arguments.length; i < n; i++) {
19
- s = arguments[i];
20
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
- t[p] = s[p];
22
- }
23
- return t;
24
- };
25
- return __assign.apply(this, arguments);
26
- };
27
- import { OTLPExporterBase, } from '@opentelemetry/otlp-exporter-base';
28
- import { createLegacyOtlpBrowserExportDelegate } from '@opentelemetry/otlp-exporter-base/browser-http';
29
- import { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer';
30
- import { MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL } from './constants.base';
31
- /**
32
- * Trace Exporters for Web with postMessage fallback
33
- */
34
- var SessionRecorderHttpTraceExporterBrowser = /** @class */ (function (_super) {
35
- __extends(SessionRecorderHttpTraceExporterBrowser, _super);
36
- function SessionRecorderHttpTraceExporterBrowser(config) {
37
- if (config === void 0) { config = {}; }
38
- var _this = this;
39
- var _config = __assign(__assign({}, config), { url: config.url || MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL, headers: __assign(__assign({}, (config.headers || {})), config.apiKey
40
- ? { Authorization: config.apiKey }
41
- : {}) });
42
- _this = _super.call(this, createLegacyOtlpBrowserExportDelegate(_config, SessionRecorderJsonTraceSerializer, 'v1/traces', { 'Content-Type': 'application/json' })) || this;
43
- _this.usePostMessage = false;
44
- _this.config = config;
45
- _this.postMessageType = config.postMessageType || 'MULTIPLAYER_SESSION_DEBUGGER_LIB';
46
- _this.postMessageTargetOrigin = config.postMessageTargetOrigin || '*';
47
- return _this;
48
- }
49
- SessionRecorderHttpTraceExporterBrowser.prototype.export = function (spans, resultCallback) {
50
- var _this = this;
51
- if (this.usePostMessage) {
52
- this.exportViaPostMessage(spans, resultCallback);
53
- return;
54
- }
55
- _super.prototype.export.call(this, spans, function (result) {
56
- if (result.code === 0) {
57
- resultCallback(result);
58
- }
59
- else if (_this.config.usePostMessageFallback) {
60
- _this.usePostMessage = true;
61
- _this.exportViaPostMessage(spans, resultCallback);
62
- }
63
- else {
64
- resultCallback(result);
65
- }
66
- });
67
- };
68
- SessionRecorderHttpTraceExporterBrowser.prototype.exportViaPostMessage = function (spans, resultCallback) {
69
- var _this = this;
70
- if (typeof window === 'undefined') {
71
- resultCallback({ code: 1 });
72
- return;
73
- }
74
- try {
75
- window.postMessage({
76
- action: 'traces',
77
- type: this.postMessageType,
78
- payload: spans.map(function (span) { return _this._serializeSpan(span); }),
79
- }, this.postMessageTargetOrigin);
80
- resultCallback({ code: 0 });
81
- }
82
- catch (e) {
83
- resultCallback({ code: 1 });
84
- }
85
- };
86
- SessionRecorderHttpTraceExporterBrowser.prototype._serializeSpan = function (span) {
87
- return {
88
- _spanContext: span.spanContext(),
89
- name: span.name,
90
- kind: span.kind,
91
- links: span.links,
92
- ended: span.ended,
93
- events: span.events,
94
- status: span.status,
95
- endTime: span.endTime,
96
- startTime: span.startTime,
97
- duration: span.duration,
98
- attributes: span.attributes,
99
- parentSpanId: span.parentSpanId,
100
- instrumentationLibrary: span.instrumentationLibrary,
101
- droppedAttributesCount: span.droppedAttributesCount,
102
- droppedEventsCount: span.droppedEventsCount,
103
- droppedLinksCount: span.droppedLinksCount,
104
- resource: {
105
- attributes: span.resource.attributes,
106
- asyncAttributesPending: span.resource.asyncAttributesPending,
107
- },
108
- };
109
- };
110
- SessionRecorderHttpTraceExporterBrowser.prototype.getDefaultUrl = function (config) {
111
- return config.url || MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL;
112
- };
113
- return SessionRecorderHttpTraceExporterBrowser;
114
- }(OTLPExporterBase));
115
- export { SessionRecorderHttpTraceExporterBrowser };
116
- //# sourceMappingURL=SessionRecorderHttpTraceExporterBrowser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderHttpTraceExporterBrowser.js","sourceRoot":"","sources":["../../src/SessionRecorderHttpTraceExporterBrowser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAEL,gBAAgB,GACjB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,qCAAqC,EAAE,MAAM,gDAAgD,CAAA;AACtG,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAA;AACzF,OAAO,EAAE,4CAA4C,EAAE,MAAM,kBAAkB,CAAA;AAU/E;;GAEG;AACH;IACU,2DAAgC;IAQxC,iDAAY,MAAiD;QAAjD,uBAAA,EAAA,WAAiD;QAA7D,iBAwBC;QAvBC,IAAM,OAAO,yBACR,MAAM,KACT,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,4CAA4C,EAC/D,OAAO,wBACF,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,GACtB,MAAM,CAAC,MAAM;gBACd,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;gBAClC,CAAC,CAAC,EAAE,IAET,CAAA;QAED,QAAA,MAAK,YACH,qCAAqC,CACnC,OAAO,EACP,kCAAkC,EAClC,WAAW,EACX,EAAE,cAAc,EAAE,kBAAkB,EAAE,CACvC,CACF,SAAA;QAxBK,oBAAc,GAAY,KAAK,CAAA;QA0BrC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,KAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,kCAAkC,CAAA;QACnF,KAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,IAAI,GAAG,CAAA;;IACtE,CAAC;IAEQ,wDAAM,GAAf,UAAgB,KAAqB,EAAE,cAAkD;QAAzF,iBAgBC;QAfC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;YAChD,OAAM;QACR,CAAC;QAED,gBAAK,CAAC,MAAM,YAAC,KAAK,EAAE,UAAC,MAAM;YACzB,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,cAAc,CAAC,MAAM,CAAC,CAAA;YACxB,CAAC;iBAAM,IAAI,KAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;gBAC9C,KAAI,CAAC,cAAc,GAAG,IAAI,CAAA;gBAC1B,KAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,MAAM,CAAC,CAAA;YACxB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,sEAAoB,GAA5B,UAA6B,KAAqB,EAAE,cAAkD;QAAtG,iBAmBC;QAlBC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3B,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,CAChB;gBACE,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,IAAI,CAAC,eAAe;gBAC1B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAzB,CAAyB,CAAC;aACtD,EACD,IAAI,CAAC,uBAAuB,CAC7B,CAAA;YACD,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAEO,gEAAc,GAAtB,UAAuB,IAAkB;QACvC,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;gBACpC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB;aAC7D;SACF,CAAA;IACH,CAAC;IAED,+DAAa,GAAb,UAAc,MAA8B;QAC1C,OAAO,MAAM,CAAC,GAAG,IAAI,4CAA4C,CAAA;IACnE,CAAC;IACH,8CAAC;AAAD,CAAC,AAtGD,CACU,gBAAgB,GAqGzB","sourcesContent":["import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base'\nimport {\n OTLPExporterConfigBase,\n OTLPExporterBase,\n} from '@opentelemetry/otlp-exporter-base'\nimport { createLegacyOtlpBrowserExportDelegate } from '@opentelemetry/otlp-exporter-base/browser-http'\nimport { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'\nimport { MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL } from './constants.base'\n\ninterface SessionRecorderExporterBrowserConfig\n extends OTLPExporterConfigBase {\n apiKey?: string\n usePostMessageFallback?: boolean\n postMessageType?: string\n postMessageTargetOrigin?: string\n}\n\n/**\n * Trace Exporters for Web with postMessage fallback\n */\nexport class SessionRecorderHttpTraceExporterBrowser\n extends OTLPExporterBase<ReadableSpan[]>\n implements SpanExporter {\n\n private usePostMessage: boolean = false\n private readonly postMessageType: string\n private readonly postMessageTargetOrigin: string\n private readonly config: SessionRecorderExporterBrowserConfig\n\n constructor(config: SessionRecorderExporterBrowserConfig = {}) {\n const _config = {\n ...config,\n url: config.url || MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL,\n headers: {\n ...(config.headers || {}),\n ...config.apiKey\n ? { Authorization: config.apiKey }\n : {},\n },\n }\n\n super(\n createLegacyOtlpBrowserExportDelegate(\n _config,\n SessionRecorderJsonTraceSerializer,\n 'v1/traces',\n { 'Content-Type': 'application/json' },\n ),\n )\n\n this.config = config\n this.postMessageType = config.postMessageType || 'MULTIPLAYER_SESSION_DEBUGGER_LIB'\n this.postMessageTargetOrigin = config.postMessageTargetOrigin || '*'\n }\n\n override export(spans: ReadableSpan[], resultCallback: (result: { code: number }) => void): void {\n if (this.usePostMessage) {\n this.exportViaPostMessage(spans, resultCallback)\n return\n }\n\n super.export(spans, (result) => {\n if (result.code === 0) {\n resultCallback(result)\n } else if (this.config.usePostMessageFallback) {\n this.usePostMessage = true\n this.exportViaPostMessage(spans, resultCallback)\n } else {\n resultCallback(result)\n }\n })\n }\n\n private exportViaPostMessage(spans: ReadableSpan[], resultCallback: (result: { code: number }) => void): void {\n if (typeof window === 'undefined') {\n resultCallback({ code: 1 })\n return\n }\n\n try {\n window.postMessage(\n {\n action: 'traces',\n type: this.postMessageType,\n payload: spans.map(span => this._serializeSpan(span)),\n },\n this.postMessageTargetOrigin,\n )\n resultCallback({ code: 0 })\n } catch (e) {\n resultCallback({ code: 1 })\n }\n }\n\n private _serializeSpan(span: ReadableSpan): any {\n return {\n _spanContext: span.spanContext(),\n name: span.name,\n kind: span.kind,\n links: span.links,\n ended: span.ended,\n events: span.events,\n status: span.status,\n endTime: span.endTime,\n startTime: span.startTime,\n duration: span.duration,\n attributes: span.attributes,\n parentSpanId: span.parentSpanId,\n instrumentationLibrary: span.instrumentationLibrary,\n droppedAttributesCount: span.droppedAttributesCount,\n droppedEventsCount: span.droppedEventsCount,\n droppedLinksCount: span.droppedLinksCount,\n resource: {\n attributes: span.resource.attributes,\n asyncAttributesPending: span.resource.asyncAttributesPending,\n },\n }\n }\n\n getDefaultUrl(config: OTLPExporterConfigBase): string {\n return config.url || MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.base.d.ts","sourceRoot":"","sources":["../../src/constants.base.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,WAAW,CAAA;AAEpD,eAAO,MAAM,8BAA8B,WAAW,CAAA;AAEtD,eAAO,MAAM,yCAAyC,WAAW,CAAA;AAEjE,eAAO,MAAM,+CAA+C,KAAK,CAAA;AAEjE,eAAO,MAAM,4CAA4C,0CAA0C,CAAA;AAEnG,eAAO,MAAM,0CAA0C,wCAAwC,CAAA;AAE/F,eAAO,MAAM,4BAA4B,iBAAiB,CAAA;AAE1D,eAAO,MAAM,6BAA6B,6BAA6B,CAAA;AAEvE,eAAO,MAAM,2BAA2B,2BAA2B,CAAA;AAEnE,eAAO,MAAM,4BAA4B,4BAA4B,CAAA;AAErE,eAAO,MAAM,6CAA6C,kCAAkC,CAAA;AAE5F,eAAO,MAAM,oDAAoD,yCAAyC,CAAA;AAE1G,eAAO,MAAM,8BAA8B,8BAA8B,CAAA;AAEzE,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,eAAO,MAAM,+BAA+B,+BAA+B,CAAA;AAE3E,eAAO,MAAM,2BAA2B,2BAA2B,CAAA;AAEnE,eAAO,MAAM,kCAAkC,kCAAkC,CAAA;AAEjF,eAAO,MAAM,mCAAmC,mCAAmC,CAAA;AAEnF,eAAO,MAAM,qCAAqC,qCAAqC,CAAA;AAEvF,eAAO,MAAM,sCAAsC,sCAAsC,CAAA;AAEzF,eAAO,MAAM,4CAA4C,4CAA4C,CAAA;AAErG,eAAO,MAAM,oCAAoC,oCAAoC,CAAA;AAErF,eAAO,MAAM,6CAA6C,6CAA6C,CAAA;AAEvG,eAAO,MAAM,qCAAqC,qCAAqC,CAAA;AAEvF,eAAO,MAAM,qCAAqC,yCAAyC,CAAA;AAE3F,eAAO,MAAM,8CAA8C,6CAA6C,CAAA;AAExG,eAAO,MAAM,sCAAsC,0CAA0C,CAAA;AAE7F,eAAO,MAAM,uCAAuC,uCAAuC,CAAA;AAE3F,eAAO,MAAM,gDAAgD,gDAAgD,CAAA;AAE7G,eAAO,MAAM,yCAAyC,yCAAyC,CAAA;AAE/F,eAAO,MAAM,gBAAgB,iBAAiB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.base.js","sourceRoot":"","sources":["../../src/constants.base.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,4BAA4B,GAAG,QAAQ,CAAA;AAEpD,MAAM,CAAC,IAAM,8BAA8B,GAAG,QAAQ,CAAA;AAEtD,MAAM,CAAC,IAAM,yCAAyC,GAAG,QAAQ,CAAA;AAEjE,MAAM,CAAC,IAAM,+CAA+C,GAAG,EAAE,CAAA;AAEjE,MAAM,CAAC,IAAM,4CAA4C,GAAG,uCAAuC,CAAA;AAEnG,MAAM,CAAC,IAAM,0CAA0C,GAAG,qCAAqC,CAAA;AAE/F,MAAM,CAAC,IAAM,4BAA4B,GAAG,cAAc,CAAA;AAE1D,MAAM,CAAC,IAAM,6BAA6B,GAAG,0BAA0B,CAAA;AAEvE,MAAM,CAAC,IAAM,2BAA2B,GAAG,wBAAwB,CAAA;AAEnE,MAAM,CAAC,IAAM,4BAA4B,GAAG,yBAAyB,CAAA;AAErE,MAAM,CAAC,IAAM,6CAA6C,GAAG,+BAA+B,CAAA;AAE5F,MAAM,CAAC,IAAM,oDAAoD,GAAG,sCAAsC,CAAA;AAE1G,MAAM,CAAC,IAAM,8BAA8B,GAAG,2BAA2B,CAAA;AAEzE,MAAM,CAAC,IAAM,0BAA0B,GAAG,uBAAuB,CAAA;AAEjE,MAAM,CAAC,IAAM,+BAA+B,GAAG,4BAA4B,CAAA;AAE3E,MAAM,CAAC,IAAM,2BAA2B,GAAG,wBAAwB,CAAA;AAEnE,MAAM,CAAC,IAAM,kCAAkC,GAAG,+BAA+B,CAAA;AAEjF,MAAM,CAAC,IAAM,mCAAmC,GAAG,gCAAgC,CAAA;AAEnF,MAAM,CAAC,IAAM,qCAAqC,GAAG,kCAAkC,CAAA;AAEvF,MAAM,CAAC,IAAM,sCAAsC,GAAG,mCAAmC,CAAA;AAEzF,MAAM,CAAC,IAAM,4CAA4C,GAAG,yCAAyC,CAAA;AAErG,MAAM,CAAC,IAAM,oCAAoC,GAAG,iCAAiC,CAAA;AAErF,MAAM,CAAC,IAAM,6CAA6C,GAAG,0CAA0C,CAAA;AAEvG,MAAM,CAAC,IAAM,qCAAqC,GAAG,kCAAkC,CAAA;AAEvF,MAAM,CAAC,IAAM,qCAAqC,GAAG,sCAAsC,CAAA;AAE3F,MAAM,CAAC,IAAM,8CAA8C,GAAG,0CAA0C,CAAA;AAExG,MAAM,CAAC,IAAM,sCAAsC,GAAG,uCAAuC,CAAA;AAE7F,MAAM,CAAC,IAAM,uCAAuC,GAAG,oCAAoC,CAAA;AAE3F,MAAM,CAAC,IAAM,gDAAgD,GAAG,6CAA6C,CAAA;AAE7G,MAAM,CAAC,IAAM,yCAAyC,GAAG,sCAAsC,CAAA;AAE/F,MAAM,CAAC,IAAM,gBAAgB,GAAG,cAAc,CAAA","sourcesContent":["export const MULTIPLAYER_TRACE_DOC_PREFIX = 'd0cd0c'\n\nexport const MULTIPLAYER_TRACE_DEBUG_PREFIX = 'debdeb'\n\nexport const MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX = 'cdbcdb'\n\nexport const MULTIPLAYER_TRACE_DEBUG_SESSION_SHORT_ID_LENGTH = 16\n\nexport const MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL = 'https://api.multiplayer.app/v1/traces'\n\nexport const MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_URL = 'https://api.multiplayer.app/v1/logs'\n\nexport const MULTIPLAYER_ATTRIBUTE_PREFIX = 'multiplayer.'\n\nexport const ATTR_MULTIPLAYER_WORKSPACE_ID = 'multiplayer.workspace.id'\n\nexport const ATTR_MULTIPLAYER_PROJECT_ID = 'multiplayer.project.id'\n\nexport const ATTR_MULTIPLAYER_PLATFORM_ID = 'multiplayer.platform.id'\n\nexport const ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE = 'multiplayer.session.auto-save'\n\nexport const ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON = 'multiplayer.session.auto-save.reason'\n\nexport const ATTR_MULTIPLAYER_PLATFORM_NAME = 'multiplayer.platform.name'\n\nexport const ATTR_MULTIPLAYER_CLIENT_ID = 'multiplayer.client.id'\n\nexport const ATTR_MULTIPLAYER_INTEGRATION_ID = 'multiplayer.integration.id'\n\nexport const ATTR_MULTIPLAYER_SESSION_ID = 'multiplayer.session.id'\n\nexport const ATTR_MULTIPLAYER_HTTP_REQUEST_BODY = 'multiplayer.http.request.body'\n\nexport const ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY = 'multiplayer.http.response.body'\n\nexport const ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS = 'multiplayer.http.request.headers'\n\nexport const ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS = 'multiplayer.http.response.headers'\n\nexport const ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING = 'multiplayer.http.response.body.encoding'\n\nexport const ATTR_MULTIPLAYER_RPC_REQUEST_MESSAGE = 'multiplayer.rpc.request.message'\n\nexport const ATTR_MULTIPLAYER_RPC_REQUEST_MESSAGE_ENCODING = 'multiplayer.rpc.request.message.encoding'\n\nexport const ATTR_MULTIPLAYER_RPC_RESPONSE_MESSAGE = 'multiplayer.rpc.response.message'\n\nexport const ATTR_MULTIPLAYER_GRPC_REQUEST_MESSAGE = 'multiplayer.rpc.grpc.request.message'\n\nexport const ATTR_MULTIPLAYER_GRPC_REQUEST_MESSAGE_ENCODING = 'multiplayer.rpc.request.message.encoding'\n\nexport const ATTR_MULTIPLAYER_GRPC_RESPONSE_MESSAGE = 'multiplayer.rpc.grpc.response.message'\n\nexport const ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY = 'multiplayer.messaging.message.body'\n\nexport const ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY_ENCODING = 'multiplayer.messaging.message.body.encoding'\n\nexport const ATTR_MULTIPLAYER_SESSION_RECORDER_VERSION = 'multiplayer.session-recorder.version'\n\nexport const MASK_PLACEHOLDER = '***MASKED***'\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.browser.d.ts","sourceRoot":"","sources":["../../src/constants.browser.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.browser.js","sourceRoot":"","sources":["../../src/constants.browser.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA","sourcesContent":["export * from './constants.base'\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.node.d.ts","sourceRoot":"","sources":["../../src/constants.node.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAEhC,eAAO,MAAM,0CAA0C,QAE7C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.node.js","sourceRoot":"","sources":["../../src/constants.node.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAEhC,MAAM,CAAC,IAAM,0CAA0C,GAAG,OAAO,CAAC,GAAG,CAAC,0CAA0C;IAC9G,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC;IAChE,CAAC,CAAC,MAAM,CAAA","sourcesContent":["export * from './constants.base'\n\nexport const MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE = process.env.MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE\n ? Number(process.env.MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE)\n : 500000\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderHttpInstrumentationHooksNode.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderHttpInstrumentationHooksNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACd,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAqB9C,UAAU,uBAAuB;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;IACxC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;IAE3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,UAAU,sBAAsB;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;IACxC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;IAE3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AA0ED,eAAO,MAAM,2CAA2C;6BAC9B,uBAAuB,MAC5C,MAAM,IAAI,EAAE,UAAU,eAAe,GAAG,cAAc;4BAwIlC,sBAAsB,MAC1C,MAAM,IAAI,EAAE,SAAS,aAAa,GAAG,eAAe;CA+FxD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderHttpInstrumentationHooksNode.js","sourceRoot":"","sources":["../../src/SessionRecorderHttpInstrumentationHooksNode.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n IncomingMessage,\n ServerResponse,\n ClientRequest,\n} from 'http'\nimport * as zlib from 'zlib'\nimport type { Span } from '@opentelemetry/api'\nimport {\n ATTR_MULTIPLAYER_HTTP_REQUEST_BODY,\n ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS,\n MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_DOC_PREFIX\n} from './constants.node'\nimport {\n mask,\n schemify,\n isGzip,\n} from './sdk'\nimport {\n sensitiveFields,\n sensitiveHeaders\n} from './sdk/mask'\n\ninterface HttpResponseHookOptions {\n maxPayloadSizeBytes?: number\n schemifyDocSpanPayload?: boolean\n uncompressPayload?: boolean\n\n captureHeaders?: boolean\n captureBody?: boolean\n\n isMaskBodyEnabled?: boolean\n isMaskHeadersEnabled?: boolean\n\n maskBody?: (arg: any, span: Span) => any\n maskHeaders?: (arg: any, span: Span) => any\n\n maskBodyFieldsList?: string[]\n maskHeadersList?: string[]\n\n headersToInclude?: string[]\n headersToExclude?: string[]\n}\n\ninterface HttpRequestHookOptions {\n maxPayloadSizeBytes?: number\n schemifyDocSpanPayload?: boolean\n\n captureHeaders?: boolean\n captureBody?: boolean\n\n isMaskBodyEnabled?: boolean\n isMaskHeadersEnabled?: boolean\n\n maskBody?: (arg: any, span: Span) => any\n maskHeaders?: (arg: any, span: Span) => any\n\n maskBodyFieldsList?: string[]\n maskHeadersList?: string[]\n\n headersToInclude?: string[]\n headersToExclude?: string[]\n}\n\nconst setDefaultOptions = (\n options: HttpResponseHookOptions | HttpResponseHookOptions\n): Omit<HttpResponseHookOptions & HttpResponseHookOptions, 'maskBody' | 'maskHeaders'>\n & {\n maskBody: (arg: any, span: Span) => any\n maskHeaders: (arg: any, span: Span) => any\n captureHeaders: boolean,\n captureBody: boolean,\n isMaskBodyEnabled: boolean\n isMaskHeadersEnabled: boolean\n schemifyDocSpanPayload: boolean,\n uncompressPayload: boolean,\n maxPayloadSizeBytes: number\n } => {\n options.captureHeaders = 'captureHeaders' in options\n ? options.captureHeaders\n : true\n options.captureBody = 'captureBody' in options\n ? options.captureBody\n : true\n options.isMaskBodyEnabled = 'isMaskBodyEnabled' in options\n ? options.isMaskBodyEnabled\n : true\n options.isMaskHeadersEnabled = 'isMaskHeadersEnabled' in options\n ? options.isMaskHeadersEnabled\n : true\n options.schemifyDocSpanPayload = 'schemifyDocSpanPayload' in options\n ? options.schemifyDocSpanPayload\n : false\n options.uncompressPayload = 'uncompressPayload' in options\n ? options.uncompressPayload\n : true\n options.maskBody = options.maskBody || mask([\n ...(\n Array.isArray(options.maskBodyFieldsList)\n ? options.maskBodyFieldsList\n : sensitiveFields\n ),\n ...(\n Array.isArray(options.maskHeadersList)\n ? options.maskHeadersList\n : sensitiveHeaders\n ),\n ])\n options.maskHeaders = options.maskHeaders || mask([\n ...(\n Array.isArray(options.maskBodyFieldsList)\n ? options.maskBodyFieldsList\n : sensitiveFields\n ),\n ...(\n Array.isArray(options.maskHeadersList)\n ? options.maskHeadersList\n : sensitiveHeaders\n ),\n ])\n options.maxPayloadSizeBytes = options.maxPayloadSizeBytes || MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE\n\n return options as Omit<HttpResponseHookOptions & HttpResponseHookOptions, 'maskBody' | 'maskHeaders'>\n & {\n maskBody: (arg: any, span: Span) => any\n maskHeaders: (arg: any, span: Span) => any\n captureHeaders: boolean,\n captureBody: boolean,\n isMaskBodyEnabled: boolean,\n isMaskHeadersEnabled: boolean,\n schemifyDocSpanPayload: boolean,\n uncompressPayload: boolean,\n maxPayloadSizeBytes: number\n }\n}\n\nexport const SessionRecorderHttpInstrumentationHooksNode = {\n responseHook: (options: HttpResponseHookOptions = {}) =>\n (span: Span, response: IncomingMessage | ServerResponse) => {\n try {\n const _options = setDefaultOptions(options)\n\n if (!_options.captureBody && !_options.captureHeaders) {\n return\n }\n\n const _response = response as ServerResponse\n const traceId = span.spanContext().traceId\n\n if (_response.setHeader) {\n _response.setHeader('X-Trace-Id', traceId)\n }\n\n const [oldWrite, oldEnd] = [_response.write, _response.end]\n\n const chunks: Buffer[] = [];\n\n if (_options.captureBody) {\n (_response.write as unknown) = function (...restArgs: any[]) {\n chunks.push(Buffer.from(restArgs[0]))\n // eslint-disable-next-line\n // @ts-ignore\n oldWrite.apply(_response, restArgs)\n }\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n _response.end = async function (...restArgs) {\n if (_options.captureBody && restArgs[0]) {\n chunks.push(Buffer.from(restArgs[0]))\n }\n\n const responseBuffer = Buffer.concat(chunks)\n\n if (\n _options.captureBody\n && responseBuffer.byteLength > 0\n && responseBuffer.byteLength < _options.maxPayloadSizeBytes\n ) {\n let responseBody: string\n let skipResponseBodyModification = false\n\n if (isGzip(responseBuffer)) {\n if (_options.uncompressPayload) {\n const dezippedBuffer = await new Promise((resolve) => zlib\n .gunzip(responseBuffer, function (err, dezipped) {\n if (err) {\n return resolve(Buffer.from(''))\n } else {\n return resolve(dezipped)\n }\n })) as Buffer\n responseBody = dezippedBuffer.toString('utf-8')\n } else {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,\n 'gzip',\n )\n\n skipResponseBodyModification = true\n responseBody = responseBuffer.toString('hex')\n }\n } else {\n responseBody = responseBuffer.toString('utf-8')\n }\n\n if (responseBody.length) {\n responseBody = JSON.parse(JSON.stringify(responseBody))\n }\n\n if (!skipResponseBodyModification) {\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n && _options.isMaskBodyEnabled\n ) {\n responseBody = _options.maskBody(responseBody, span)\n } else if (\n traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)\n && _options.schemifyDocSpanPayload\n ) {\n responseBody = schemify(responseBody)\n } else if (typeof responseBody !== 'string') {\n responseBody = JSON.stringify(responseBody)\n }\n }\n\n if (responseBody.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,\n responseBody,\n )\n }\n }\n\n if (_options.captureHeaders) {\n let _headers = JSON.parse(JSON.stringify(_response.getHeaders() || {}))\n if (_options.isMaskHeadersEnabled) {\n _headers = _options.maskHeaders(_headers, span)\n }\n\n if (_options.headersToInclude) {\n const filteredHeaders: any = {}\n for (const headerName of _options.headersToInclude) {\n filteredHeaders[headerName] = _headers[headerName]\n }\n _headers = filteredHeaders\n }\n\n if (_options.headersToExclude?.length) {\n for (const headerName of _options.headersToExclude) {\n delete _headers[headerName]\n }\n }\n\n const stringifiedHeaders = JSON.stringify(_headers)\n\n if (stringifiedHeaders?.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS,\n stringifiedHeaders,\n )\n }\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n return oldEnd.apply(_response, restArgs)\n }\n } catch (error) {\n // eslint-disable-next-line\n console.error('An error occured in multiplayer otlp http responseHook', error)\n }\n },\n requestHook: (options: HttpRequestHookOptions = {}) =>\n (span: Span, request: ClientRequest | IncomingMessage) => {\n try {\n const _options = setDefaultOptions(options)\n\n if (!_options.captureBody && !_options.captureHeaders) {\n return\n }\n\n const traceId = span.spanContext().traceId\n const _request = request as IncomingMessage\n\n if (_options.captureHeaders) {\n let _headers = JSON.parse(JSON.stringify(_request.headers || {}))\n\n if (_options.isMaskHeadersEnabled) {\n _headers = _options.maskHeaders(_headers, span)\n }\n\n if (_options.headersToInclude) {\n const filteredHeaders: any = {}\n for (const headerName of _options.headersToInclude) {\n filteredHeaders[headerName] = _headers[headerName]\n }\n _headers = filteredHeaders\n }\n\n if (_options.headersToExclude?.length) {\n for (const headerName of _options.headersToExclude) {\n delete _headers[headerName]\n }\n }\n\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS,\n JSON.stringify(_headers),\n )\n }\n\n const contentType = _request?.headers?.['content-type']\n if (\n _options.captureBody\n && contentType?.includes('application/json')\n ) {\n let body = ''\n _request.on('data', (chunk) => {\n body += chunk\n })\n _request.on('end', () => {\n try {\n const requestBodySizeBytes = Buffer.byteLength(body, 'utf8')\n\n if (\n requestBodySizeBytes === 0\n || requestBodySizeBytes > _options.maxPayloadSizeBytes\n ) {\n return\n }\n\n let requestBody = body\n if (!requestBody) return\n\n requestBody = JSON.parse(JSON.stringify(requestBody))\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n && _options.isMaskBodyEnabled\n ) {\n requestBody = _options.maskBody(requestBody, span)\n } else if (\n traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)\n && _options.schemifyDocSpanPayload\n ) {\n requestBody = schemify(requestBody)\n } else if (typeof requestBody !== 'string') {\n requestBody = JSON.stringify(requestBody)\n }\n\n if (requestBody?.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_REQUEST_BODY,\n requestBody,\n )\n }\n } catch (err) {\n // eslint-disable-next-line\n console.error('[MULTIPLAYER-HTTP-REQ-HOOK] An error occured in multiplayer otlp http requestHook', err)\n }\n })\n }\n\n } catch (error) {\n // eslint-disable-next-line\n console.error('An error occured in multiplayer otlp http requestHook', error)\n }\n },\n}\n"]}
@@ -1,26 +0,0 @@
1
- import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
2
- import { OTLPExporterConfigBase, OTLPExporterBase } from '@opentelemetry/otlp-exporter-base';
3
- interface SessionRecorderExporterBrowserConfig extends OTLPExporterConfigBase {
4
- apiKey?: string;
5
- usePostMessageFallback?: boolean;
6
- postMessageType?: string;
7
- postMessageTargetOrigin?: string;
8
- }
9
- /**
10
- * Trace Exporters for Web with postMessage fallback
11
- */
12
- export declare class SessionRecorderHttpTraceExporterBrowser extends OTLPExporterBase<ReadableSpan[]> implements SpanExporter {
13
- private usePostMessage;
14
- private readonly postMessageType;
15
- private readonly postMessageTargetOrigin;
16
- private readonly config;
17
- constructor(config?: SessionRecorderExporterBrowserConfig);
18
- export(spans: ReadableSpan[], resultCallback: (result: {
19
- code: number;
20
- }) => void): void;
21
- private exportViaPostMessage;
22
- private _serializeSpan;
23
- getDefaultUrl(config: OTLPExporterConfigBase): string;
24
- }
25
- export {};
26
- //# sourceMappingURL=SessionRecorderHttpTraceExporterBrowser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderHttpTraceExporterBrowser.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderHttpTraceExporterBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,mCAAmC,CAAA;AAK1C,UAAU,oCACR,SAAQ,sBAAsB;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC;AAED;;GAEG;AACH,qBAAa,uCACX,SAAQ,gBAAgB,CAAC,YAAY,EAAE,CACvC,YAAW,YAAY;IAEvB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAQ;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAEjD,MAAM,GAAE,oCAAyC;IA0BpD,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI;IAkBhG,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,cAAc;IAyBtB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM;CAGtD"}
@@ -1,82 +0,0 @@
1
- import { OTLPExporterBase, } from '@opentelemetry/otlp-exporter-base';
2
- import { createLegacyOtlpBrowserExportDelegate } from '@opentelemetry/otlp-exporter-base/browser-http';
3
- import { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer';
4
- import { MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL } from './constants.base';
5
- /**
6
- * Trace Exporters for Web with postMessage fallback
7
- */
8
- export class SessionRecorderHttpTraceExporterBrowser extends OTLPExporterBase {
9
- constructor(config = {}) {
10
- const _config = Object.assign(Object.assign({}, config), { url: config.url || MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL, headers: Object.assign(Object.assign({}, (config.headers || {})), config.apiKey
11
- ? { Authorization: config.apiKey }
12
- : {}) });
13
- super(createLegacyOtlpBrowserExportDelegate(_config, SessionRecorderJsonTraceSerializer, 'v1/traces', { 'Content-Type': 'application/json' }));
14
- this.usePostMessage = false;
15
- this.config = config;
16
- this.postMessageType = config.postMessageType || 'MULTIPLAYER_SESSION_DEBUGGER_LIB';
17
- this.postMessageTargetOrigin = config.postMessageTargetOrigin || '*';
18
- }
19
- export(spans, resultCallback) {
20
- if (this.usePostMessage) {
21
- this.exportViaPostMessage(spans, resultCallback);
22
- return;
23
- }
24
- super.export(spans, (result) => {
25
- if (result.code === 0) {
26
- resultCallback(result);
27
- }
28
- else if (this.config.usePostMessageFallback) {
29
- this.usePostMessage = true;
30
- this.exportViaPostMessage(spans, resultCallback);
31
- }
32
- else {
33
- resultCallback(result);
34
- }
35
- });
36
- }
37
- exportViaPostMessage(spans, resultCallback) {
38
- if (typeof window === 'undefined') {
39
- resultCallback({ code: 1 });
40
- return;
41
- }
42
- try {
43
- window.postMessage({
44
- action: 'traces',
45
- type: this.postMessageType,
46
- payload: spans.map(span => this._serializeSpan(span)),
47
- }, this.postMessageTargetOrigin);
48
- resultCallback({ code: 0 });
49
- }
50
- catch (e) {
51
- resultCallback({ code: 1 });
52
- }
53
- }
54
- _serializeSpan(span) {
55
- return {
56
- _spanContext: span.spanContext(),
57
- name: span.name,
58
- kind: span.kind,
59
- links: span.links,
60
- ended: span.ended,
61
- events: span.events,
62
- status: span.status,
63
- endTime: span.endTime,
64
- startTime: span.startTime,
65
- duration: span.duration,
66
- attributes: span.attributes,
67
- parentSpanId: span.parentSpanId,
68
- instrumentationLibrary: span.instrumentationLibrary,
69
- droppedAttributesCount: span.droppedAttributesCount,
70
- droppedEventsCount: span.droppedEventsCount,
71
- droppedLinksCount: span.droppedLinksCount,
72
- resource: {
73
- attributes: span.resource.attributes,
74
- asyncAttributesPending: span.resource.asyncAttributesPending,
75
- },
76
- };
77
- }
78
- getDefaultUrl(config) {
79
- return config.url || MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL;
80
- }
81
- }
82
- //# sourceMappingURL=SessionRecorderHttpTraceExporterBrowser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderHttpTraceExporterBrowser.js","sourceRoot":"","sources":["../../src/SessionRecorderHttpTraceExporterBrowser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base'\nimport {\n OTLPExporterConfigBase,\n OTLPExporterBase,\n} from '@opentelemetry/otlp-exporter-base'\nimport { createLegacyOtlpBrowserExportDelegate } from '@opentelemetry/otlp-exporter-base/browser-http'\nimport { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'\nimport { MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL } from './constants.base'\n\ninterface SessionRecorderExporterBrowserConfig\n extends OTLPExporterConfigBase {\n apiKey?: string\n usePostMessageFallback?: boolean\n postMessageType?: string\n postMessageTargetOrigin?: string\n}\n\n/**\n * Trace Exporters for Web with postMessage fallback\n */\nexport class SessionRecorderHttpTraceExporterBrowser\n extends OTLPExporterBase<ReadableSpan[]>\n implements SpanExporter {\n\n private usePostMessage: boolean = false\n private readonly postMessageType: string\n private readonly postMessageTargetOrigin: string\n private readonly config: SessionRecorderExporterBrowserConfig\n\n constructor(config: SessionRecorderExporterBrowserConfig = {}) {\n const _config = {\n ...config,\n url: config.url || MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL,\n headers: {\n ...(config.headers || {}),\n ...config.apiKey\n ? { Authorization: config.apiKey }\n : {},\n },\n }\n\n super(\n createLegacyOtlpBrowserExportDelegate(\n _config,\n SessionRecorderJsonTraceSerializer,\n 'v1/traces',\n { 'Content-Type': 'application/json' },\n ),\n )\n\n this.config = config\n this.postMessageType = config.postMessageType || 'MULTIPLAYER_SESSION_DEBUGGER_LIB'\n this.postMessageTargetOrigin = config.postMessageTargetOrigin || '*'\n }\n\n override export(spans: ReadableSpan[], resultCallback: (result: { code: number }) => void): void {\n if (this.usePostMessage) {\n this.exportViaPostMessage(spans, resultCallback)\n return\n }\n\n super.export(spans, (result) => {\n if (result.code === 0) {\n resultCallback(result)\n } else if (this.config.usePostMessageFallback) {\n this.usePostMessage = true\n this.exportViaPostMessage(spans, resultCallback)\n } else {\n resultCallback(result)\n }\n })\n }\n\n private exportViaPostMessage(spans: ReadableSpan[], resultCallback: (result: { code: number }) => void): void {\n if (typeof window === 'undefined') {\n resultCallback({ code: 1 })\n return\n }\n\n try {\n window.postMessage(\n {\n action: 'traces',\n type: this.postMessageType,\n payload: spans.map(span => this._serializeSpan(span)),\n },\n this.postMessageTargetOrigin,\n )\n resultCallback({ code: 0 })\n } catch (e) {\n resultCallback({ code: 1 })\n }\n }\n\n private _serializeSpan(span: ReadableSpan): any {\n return {\n _spanContext: span.spanContext(),\n name: span.name,\n kind: span.kind,\n links: span.links,\n ended: span.ended,\n events: span.events,\n status: span.status,\n endTime: span.endTime,\n startTime: span.startTime,\n duration: span.duration,\n attributes: span.attributes,\n parentSpanId: span.parentSpanId,\n instrumentationLibrary: span.instrumentationLibrary,\n droppedAttributesCount: span.droppedAttributesCount,\n droppedEventsCount: span.droppedEventsCount,\n droppedLinksCount: span.droppedLinksCount,\n resource: {\n attributes: span.resource.attributes,\n asyncAttributesPending: span.resource.asyncAttributesPending,\n },\n }\n }\n\n getDefaultUrl(config: OTLPExporterConfigBase): string {\n return config.url || MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL\n }\n}\n"]}