@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
@@ -4,7 +4,7 @@ exports.SessionRecorderIdGenerator = void 0;
4
4
  const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
5
5
  const type_1 = require("./type");
6
6
  const SessionRecorderTraceIdRatioBasedSampler_1 = require("./SessionRecorderTraceIdRatioBasedSampler");
7
- const constants_base_1 = require("./constants.base");
7
+ const constants_base_1 = require("./constants/constants.base");
8
8
  const sdk_1 = require("./sdk");
9
9
  class SessionRecorderIdGenerator extends sdk_trace_base_1.RandomIdGenerator {
10
10
  constructor({ autoDocTracesRatio = 0 } = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderIdGenerator.js","sourceRoot":"","sources":["../../src/SessionRecorderIdGenerator.ts"],"names":[],"mappings":";;;AAAA,kEAGsC;AACtC,iCAAoC;AACpC,uGAEkD;AAClD,qDAIyB;AACzB,+BAAsC;AAEtC,MAAa,0BAA2B,SAAQ,kCAAiB;IAO/D,YAAY,EAAE,kBAAkB,GAAG,CAAC,EAAE,GAAG,EAAE;QACzC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,cAAc,GAAG,IAAI,iFAAuC,CAAC,kBAAkB,CAAC,CAAA;QAErF,IAAI,CAAC,cAAc,GAAG,IAAA,oBAAc,EAAC,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,kBAAW,CAAC,KAAK,CAAA;QAEpC,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAErC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,iBAAiB,GAAW,EAAE,CAAA;gBAClC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzB,KAAK,kBAAW,CAAC,UAAU;wBACzB,iBAAiB,GAAG,0DAAyC,CAAA;wBAC7D,MAAK;oBACP;wBACE,iBAAiB,GAAG,+CAA8B,CAAA;gBACtD,CAAC;gBAED,MAAM,MAAM,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBAE3D,MAAM,cAAc,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;gBAErF,OAAO,cAAc,CAAA;YACvB,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,OAAO,GAAG,6CAA4B,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;YAC/G,CAAC;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;IACH,CAAC;IAED,YAAY,CACV,cAAsB,EACtB,cAA2B,kBAAW,CAAC,KAAK;QAE5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CACrC,SAAS,EACT,OAAO,CACR,CAAC,QAAQ,KAAK,iCAAgB,CAAC,kBAAkB,CAAA;IACpD,CAAC;CACF;AAxDD,gEAwDC","sourcesContent":["import {\n RandomIdGenerator,\n SamplingDecision,\n} from '@opentelemetry/sdk-trace-base'\nimport { SessionType } from './type'\nimport {\n SessionRecorderTraceIdRatioBasedSampler\n} from './SessionRecorderTraceIdRatioBasedSampler'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_DOC_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants.base'\nimport { getIdGenerator } from './sdk'\n\nexport class SessionRecorderIdGenerator extends RandomIdGenerator {\n sessionShortId: string\n sessionType: SessionType\n docSpanSampler: SessionRecorderTraceIdRatioBasedSampler\n\n generateLongId: () => string\n\n constructor({ autoDocTracesRatio = 0 } = {}) {\n super()\n\n this.docSpanSampler = new SessionRecorderTraceIdRatioBasedSampler(autoDocTracesRatio)\n\n this.generateLongId = getIdGenerator(16)\n this.sessionShortId = ''\n this.sessionType = SessionType.PLAIN\n\n this.generateTraceId = () => {\n const traceId = this.generateLongId()\n\n if (this.sessionShortId) {\n let sessionTypePrefix: string = ''\n switch (this.sessionType) {\n case SessionType.CONTINUOUS:\n sessionTypePrefix = MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX\n break\n default:\n sessionTypePrefix = MULTIPLAYER_TRACE_DEBUG_PREFIX\n }\n\n const prefix = `${sessionTypePrefix}${this.sessionShortId}`\n\n const sessionTraceId = `${prefix}${traceId.substring(prefix.length, traceId.length)}`\n\n return sessionTraceId\n } else if (this._isDocTrace(traceId)) {\n return `${MULTIPLAYER_TRACE_DOC_PREFIX}${traceId.slice(MULTIPLAYER_TRACE_DOC_PREFIX.length, traceId.length)}`\n }\n\n return traceId\n }\n }\n\n setSessionId(\n sessionShortId: string,\n sessionType: SessionType = SessionType.PLAIN,\n ) {\n this.sessionShortId = sessionShortId\n this.sessionType = sessionType\n }\n\n _isDocTrace(traceId: string) {\n return this.docSpanSampler.shouldSample(\n undefined,\n traceId,\n ).decision === SamplingDecision.RECORD_AND_SAMPLED\n }\n}\n"]}
1
+ {"version":3,"file":"SessionRecorderIdGenerator.js","sourceRoot":"","sources":["../../src/SessionRecorderIdGenerator.ts"],"names":[],"mappings":";;;AAAA,kEAGsC;AACtC,iCAAoC;AACpC,uGAEkD;AAClD,+DAImC;AACnC,+BAAsC;AAEtC,MAAa,0BAA2B,SAAQ,kCAAiB;IAO/D,YAAY,EAAE,kBAAkB,GAAG,CAAC,EAAE,GAAG,EAAE;QACzC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,cAAc,GAAG,IAAI,iFAAuC,CAAC,kBAAkB,CAAC,CAAA;QAErF,IAAI,CAAC,cAAc,GAAG,IAAA,oBAAc,EAAC,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,kBAAW,CAAC,KAAK,CAAA;QAEpC,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAErC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,iBAAiB,GAAW,EAAE,CAAA;gBAClC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzB,KAAK,kBAAW,CAAC,UAAU;wBACzB,iBAAiB,GAAG,0DAAyC,CAAA;wBAC7D,MAAK;oBACP;wBACE,iBAAiB,GAAG,+CAA8B,CAAA;gBACtD,CAAC;gBAED,MAAM,MAAM,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBAE3D,MAAM,cAAc,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;gBAErF,OAAO,cAAc,CAAA;YACvB,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,OAAO,GAAG,6CAA4B,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;YAC/G,CAAC;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;IACH,CAAC;IAED,YAAY,CACV,cAAsB,EACtB,cAA2B,kBAAW,CAAC,KAAK;QAE5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CACrC,SAAS,EACT,OAAO,CACR,CAAC,QAAQ,KAAK,iCAAgB,CAAC,kBAAkB,CAAA;IACpD,CAAC;CACF;AAxDD,gEAwDC","sourcesContent":["import {\n RandomIdGenerator,\n SamplingDecision,\n} from '@opentelemetry/sdk-trace-base'\nimport { SessionType } from './type'\nimport {\n SessionRecorderTraceIdRatioBasedSampler,\n} from './SessionRecorderTraceIdRatioBasedSampler'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_DOC_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants/constants.base'\nimport { getIdGenerator } from './sdk'\n\nexport class SessionRecorderIdGenerator extends RandomIdGenerator {\n sessionShortId: string\n sessionType: SessionType\n docSpanSampler: SessionRecorderTraceIdRatioBasedSampler\n\n generateLongId: () => string\n\n constructor({ autoDocTracesRatio = 0 } = {}) {\n super()\n\n this.docSpanSampler = new SessionRecorderTraceIdRatioBasedSampler(autoDocTracesRatio)\n\n this.generateLongId = getIdGenerator(16)\n this.sessionShortId = ''\n this.sessionType = SessionType.PLAIN\n\n this.generateTraceId = () => {\n const traceId = this.generateLongId()\n\n if (this.sessionShortId) {\n let sessionTypePrefix: string = ''\n switch (this.sessionType) {\n case SessionType.CONTINUOUS:\n sessionTypePrefix = MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX\n break\n default:\n sessionTypePrefix = MULTIPLAYER_TRACE_DEBUG_PREFIX\n }\n\n const prefix = `${sessionTypePrefix}${this.sessionShortId}`\n\n const sessionTraceId = `${prefix}${traceId.substring(prefix.length, traceId.length)}`\n\n return sessionTraceId\n } else if (this._isDocTrace(traceId)) {\n return `${MULTIPLAYER_TRACE_DOC_PREFIX}${traceId.slice(MULTIPLAYER_TRACE_DOC_PREFIX.length, traceId.length)}`\n }\n\n return traceId\n }\n }\n\n setSessionId(\n sessionShortId: string,\n sessionType: SessionType = SessionType.PLAIN,\n ) {\n this.sessionShortId = sessionShortId\n this.sessionType = sessionType\n }\n\n _isDocTrace(traceId: string) {\n return this.docSpanSampler.shouldSample(\n undefined,\n traceId,\n ).decision === SamplingDecision.RECORD_AND_SAMPLED\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderJsonTraceSerializer.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAE3B,WAAW,EACZ,MAAM,iCAAiC,CAAA;AAOxC,eAAO,MAAM,kCAAkC,EAAE,WAAW,CAC5D,YAAY,EAAE,EACd,2BAA2B,CA4B1B,CAAA"}
1
+ {"version":3,"file":"SessionRecorderJsonTraceSerializer.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,WAAW,EACZ,MAAM,iCAAiC,CAAA;AAMxC,eAAO,MAAM,kCAAkC,EAAE,WAAW,CAC5D,YAAY,EAAE,EACd,2BAA2B,CAsE1B,CAAA"}
@@ -1,23 +1,63 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SessionRecorderJsonTraceSerializer = void 0;
4
- const otlp_transformer_1 = require("@opentelemetry/otlp-transformer");
5
- const constants_base_1 = require("./constants.base");
4
+ const constants_base_1 = require("./constants/constants.base");
6
5
  exports.SessionRecorderJsonTraceSerializer = {
7
6
  serializeRequest: (arg) => {
8
7
  const filteredArg = arg.filter(span => {
9
8
  const traceId = span.spanContext().traceId;
10
9
  if (traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_DEBUG_PREFIX)
11
- || traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_DOC_PREFIX)
12
10
  || traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)) {
13
11
  return true;
14
12
  }
15
13
  return false;
16
14
  });
17
- const request = (0, otlp_transformer_1.createExportTraceServiceRequest)(filteredArg, {
18
- useHex: true,
19
- useLongBits: false,
20
- });
15
+ // Create a simple trace service request structure
16
+ const request = {
17
+ resourceSpans: filteredArg.map(span => ({
18
+ resource: {
19
+ attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({
20
+ key,
21
+ value: { stringValue: String(value) },
22
+ })),
23
+ },
24
+ scopeSpans: [{
25
+ spans: [{
26
+ traceId: span.spanContext().traceId,
27
+ spanId: span.spanContext().spanId,
28
+ parentSpanId: span.spanContext().spanId, // Using spanId as fallback
29
+ name: span.name,
30
+ kind: span.kind,
31
+ startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],
32
+ endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,
33
+ attributes: Object.entries(span.attributes).map(([key, value]) => ({
34
+ key,
35
+ value: { stringValue: String(value) },
36
+ })),
37
+ events: span.events.map(event => ({
38
+ timeUnixNano: event.time[0] * 1e9 + event.time[1],
39
+ name: event.name,
40
+ attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({
41
+ key,
42
+ value: { stringValue: String(value) },
43
+ })),
44
+ })),
45
+ links: span.links.map(link => ({
46
+ traceId: link.context.traceId,
47
+ spanId: link.context.spanId,
48
+ attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({
49
+ key,
50
+ value: { stringValue: String(value) },
51
+ })),
52
+ })),
53
+ status: {
54
+ code: span.status.code,
55
+ message: span.status.message || '',
56
+ },
57
+ }],
58
+ }],
59
+ })),
60
+ };
21
61
  const encoder = new TextEncoder();
22
62
  return encoder.encode(JSON.stringify(request));
23
63
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderJsonTraceSerializer.js","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":";;;AACA,sEAIwC;AACxC,qDAIyB;AAEZ,QAAA,kCAAkC,GAG3C;IACF,gBAAgB,EAAE,CAAC,GAAmB,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAA;YAE1C,IACE,OAAO,CAAC,UAAU,CAAC,+CAA8B,CAAC;mBAC/C,OAAO,CAAC,UAAU,CAAC,6CAA4B,CAAC;mBAChD,OAAO,CAAC,UAAU,CAAC,0DAAyC,CAAC,EAChE,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAA,kDAA+B,EAAC,WAAW,EAAE;YAC3D,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;SACnB,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,mBAAmB,EAAE,CAAC,GAAe,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAgC,CAAA;IACvE,CAAC;CACF,CAAA","sourcesContent":["import { ReadableSpan } from '@opentelemetry/sdk-trace-base'\nimport {\n IExportTraceServiceResponse,\n createExportTraceServiceRequest,\n ISerializer,\n} from '@opentelemetry/otlp-transformer'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_DOC_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants.base'\n\nexport const SessionRecorderJsonTraceSerializer: ISerializer<\nReadableSpan[],\nIExportTraceServiceResponse\n> = {\n serializeRequest: (arg: ReadableSpan[]) => {\n const filteredArg = arg.filter(span => {\n const traceId = span.spanContext().traceId\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n || traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)\n || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)\n ) {\n return true\n }\n\n return false\n })\n\n const request = createExportTraceServiceRequest(filteredArg, {\n useHex: true,\n useLongBits: false,\n })\n const encoder = new TextEncoder()\n return encoder.encode(JSON.stringify(request))\n },\n deserializeResponse: (arg: Uint8Array) => {\n const decoder = new TextDecoder()\n return JSON.parse(decoder.decode(arg)) as IExportTraceServiceResponse\n },\n}\n"]}
1
+ {"version":3,"file":"SessionRecorderJsonTraceSerializer.js","sourceRoot":"","sources":["../../src/SessionRecorderJsonTraceSerializer.ts"],"names":[],"mappings":";;;AAKA,+DAGmC;AAEtB,QAAA,kCAAkC,GAG3C;IACF,gBAAgB,EAAE,CAAC,GAAmB,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAA;YAE1C,IACE,OAAO,CAAC,UAAU,CAAC,+CAA8B,CAAC;mBAC/C,OAAO,CAAC,UAAU,CAAC,0DAAyC,CAAC,EAChE,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,kDAAkD;QAClD,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtC,QAAQ,EAAE;oBACR,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC1E,GAAG;wBACH,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;qBACtC,CAAC,CAAC;iBACJ;gBACD,UAAU,EAAE,CAAC;wBACX,KAAK,EAAE,CAAC;gCACN,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO;gCACnC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM;gCACjC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,2BAA2B;gCACpE,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC9D,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gCACnF,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oCACjE,GAAG;oCACH,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;iCACtC,CAAC,CAAC;gCACH,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oCAChC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oCACjD,IAAI,EAAE,KAAK,CAAC,IAAI;oCAChB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wCACxE,GAAG;wCACH,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;qCACtC,CAAC,CAAC;iCACJ,CAAC,CAAC;gCACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oCAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oCAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oCAC3B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wCACvE,GAAG;wCACH,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;qCACtC,CAAC,CAAC;iCACJ,CAAC,CAAC;gCACH,MAAM,EAAE;oCACN,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oCACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;iCACnC;6BACF,CAAC;qBACH,CAAC;aACH,CAAC,CAAC;SACJ,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,mBAAmB,EAAE,CAAC,GAAe,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAgC,CAAA;IACvE,CAAC;CACF,CAAA","sourcesContent":["import { ReadableSpan } from '@opentelemetry/sdk-trace-base'\nimport {\n IExportTraceServiceResponse,\n ISerializer,\n} from '@opentelemetry/otlp-transformer'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants/constants.base'\n\nexport const SessionRecorderJsonTraceSerializer: ISerializer<\nReadableSpan[],\nIExportTraceServiceResponse\n> = {\n serializeRequest: (arg: ReadableSpan[]) => {\n const filteredArg = arg.filter(span => {\n const traceId = span.spanContext().traceId\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)\n ) {\n return true\n }\n\n return false\n })\n\n // Create a simple trace service request structure\n const request = {\n resourceSpans: filteredArg.map(span => ({\n resource: {\n attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n },\n scopeSpans: [{\n spans: [{\n traceId: span.spanContext().traceId,\n spanId: span.spanContext().spanId,\n parentSpanId: span.spanContext().spanId, // Using spanId as fallback\n name: span.name,\n kind: span.kind,\n startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],\n endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,\n attributes: Object.entries(span.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n events: span.events.map(event => ({\n timeUnixNano: event.time[0] * 1e9 + event.time[1],\n name: event.name,\n attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n links: span.links.map(link => ({\n traceId: link.context.traceId,\n spanId: link.context.spanId,\n attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n status: {\n code: span.status.code,\n message: span.status.message || '',\n },\n }],\n }],\n })),\n }\n\n const encoder = new TextEncoder()\n return encoder.encode(JSON.stringify(request))\n },\n deserializeResponse: (arg: Uint8Array) => {\n const decoder = new TextDecoder()\n return JSON.parse(decoder.decode(arg)) as IExportTraceServiceResponse\n },\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderTraceIdRatioBasedSampler.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderTraceIdRatioBasedSampler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAEP,cAAc,EACf,MAAM,+BAA+B,CAAA;AAGtC,qBAAa,uCAAwC,YAAW,OAAO;IAGzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,WAAW,CAAQ;gBAEE,MAAM,GAAE,MAAU;IAK/C,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc;IAsB/D,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;CASpB"}
1
+ {"version":3,"file":"SessionRecorderTraceIdRatioBasedSampler.d.ts","sourceRoot":"","sources":["../../src/SessionRecorderTraceIdRatioBasedSampler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAEP,cAAc,EACf,MAAM,+BAA+B,CAAA;AAMtC,qBAAa,uCAAwC,YAAW,OAAO;IAGzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,WAAW,CAAQ;gBAEE,MAAM,GAAE,MAAU;IAK/C,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc;IAsB/D,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;CASpB"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SessionRecorderTraceIdRatioBasedSampler = void 0;
4
4
  const api_1 = require("@opentelemetry/api");
5
5
  const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
6
- const constants_base_1 = require("./constants.base");
6
+ const constants_base_1 = require("./constants/constants.base");
7
7
  class SessionRecorderTraceIdRatioBasedSampler {
8
8
  constructor(_ratio = 0) {
9
9
  this._ratio = _ratio;
@@ -11,8 +11,8 @@ class SessionRecorderTraceIdRatioBasedSampler {
11
11
  this._upperBound = Math.floor(this._ratio * 0xffffffff);
12
12
  }
13
13
  shouldSample(context, traceId) {
14
- if (this._ratio > 0
15
- && traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_DEBUG_PREFIX)) {
14
+ if (traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_DEBUG_PREFIX)
15
+ || traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)) {
16
16
  return {
17
17
  decision: sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED,
18
18
  };
@@ -25,7 +25,7 @@ class SessionRecorderTraceIdRatioBasedSampler {
25
25
  return { decision };
26
26
  }
27
27
  toString() {
28
- return `MultiplayerTraceIdRatioBasedSampler{${this._ratio}}`;
28
+ return `SessionRecorderTraceIdRatioBasedSampler{${this._ratio}}`;
29
29
  }
30
30
  _normalize(ratio) {
31
31
  if (typeof ratio !== 'number' || isNaN(ratio))
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderTraceIdRatioBasedSampler.js","sourceRoot":"","sources":["../../src/SessionRecorderTraceIdRatioBasedSampler.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AACnD,kEAIsC;AACtC,qDAAiE;AAEjE,MAAa,uCAAuC;IAGlD,YAA6B,SAAiB,CAAC;QAAlB,WAAM,GAAN,MAAM,CAAY;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAA;IACzD,CAAC;IAED,YAAY,CAAC,OAAgB,EAAE,OAAe;QAC5C,IACE,IAAI,CAAC,MAAM,GAAG,CAAC;eACZ,OAAO,CAAC,UAAU,CAAC,+CAA8B,CAAC,EACrD,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,iCAAgB,CAAC,kBAAkB;aAC9C,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,GAAqB,iCAAgB,CAAC,UAAU,CAAA;QAE5D,IACE,IAAA,oBAAc,EAAC,OAAO,CAAC;eACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,EAC/C,CAAC;YACD,QAAQ,GAAG,iCAAgB,CAAC,kBAAkB,CAAA;QAChD,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,CAAA;IACrB,CAAC;IAED,QAAQ;QACN,OAAO,uCAAuC,IAAI,CAAC,MAAM,GAAG,CAAA;IAC9D,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACvD,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAChD,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;YACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACtD,YAAY,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,YAAY,CAAA;IACrB,CAAC;CACF;AAhDD,0FAgDC","sourcesContent":["import { isValidTraceId } from '@opentelemetry/api'\nimport {\n Sampler,\n SamplingDecision,\n SamplingResult,\n} from '@opentelemetry/sdk-trace-base'\nimport { MULTIPLAYER_TRACE_DEBUG_PREFIX } from './constants.base'\n\nexport class SessionRecorderTraceIdRatioBasedSampler implements Sampler {\n private _upperBound: number\n\n constructor(private readonly _ratio: number = 0) {\n this._ratio = this._normalize(_ratio)\n this._upperBound = Math.floor(this._ratio * 0xffffffff)\n }\n\n shouldSample(context: unknown, traceId: string): SamplingResult {\n if (\n this._ratio > 0\n && traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n ) {\n return {\n decision: SamplingDecision.RECORD_AND_SAMPLED,\n }\n }\n\n let decision: SamplingDecision = SamplingDecision.NOT_RECORD\n\n if (\n isValidTraceId(traceId)\n && this._accumulate(traceId) < this._upperBound\n ) {\n decision = SamplingDecision.RECORD_AND_SAMPLED\n }\n\n return { decision }\n }\n\n toString(): string {\n return `MultiplayerTraceIdRatioBasedSampler{${this._ratio}}`\n }\n\n private _normalize(ratio: number): number {\n if (typeof ratio !== 'number' || isNaN(ratio)) return 0\n return ratio >= 1 ? 1 : ratio <= 0 ? 0 : ratio\n }\n\n private _accumulate(traceId: string): number {\n let accumulation = 0\n for (let i = 0; i < traceId.length / 8; i++) {\n const pos = i * 8\n const part = parseInt(traceId.slice(pos, pos + 8), 16)\n accumulation = (accumulation ^ part) >>> 0\n }\n return accumulation\n }\n}\n"]}
1
+ {"version":3,"file":"SessionRecorderTraceIdRatioBasedSampler.js","sourceRoot":"","sources":["../../src/SessionRecorderTraceIdRatioBasedSampler.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AACnD,kEAIsC;AACtC,+DAGmC;AAEnC,MAAa,uCAAuC;IAGlD,YAA6B,SAAiB,CAAC;QAAlB,WAAM,GAAN,MAAM,CAAY;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAA;IACzD,CAAC;IAED,YAAY,CAAC,OAAgB,EAAE,OAAe;QAC5C,IACE,OAAO,CAAC,UAAU,CAAC,+CAA8B,CAAC;eAC/C,OAAO,CAAC,UAAU,CAAC,0DAAyC,CAAC,EAChE,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,iCAAgB,CAAC,kBAAkB;aAC9C,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,GAAqB,iCAAgB,CAAC,UAAU,CAAA;QAE5D,IACE,IAAA,oBAAc,EAAC,OAAO,CAAC;eACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,EAC/C,CAAC;YACD,QAAQ,GAAG,iCAAgB,CAAC,kBAAkB,CAAA;QAChD,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,CAAA;IACrB,CAAC;IAED,QAAQ;QACN,OAAO,2CAA2C,IAAI,CAAC,MAAM,GAAG,CAAA;IAClE,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACvD,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAChD,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;YACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACtD,YAAY,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,YAAY,CAAA;IACrB,CAAC;CACF;AAhDD,0FAgDC","sourcesContent":["import { isValidTraceId } from '@opentelemetry/api'\nimport {\n Sampler,\n SamplingDecision,\n SamplingResult,\n} from '@opentelemetry/sdk-trace-base'\nimport {\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from './constants/constants.base'\n\nexport class SessionRecorderTraceIdRatioBasedSampler implements Sampler {\n private _upperBound: number\n\n constructor(private readonly _ratio: number = 0) {\n this._ratio = this._normalize(_ratio)\n this._upperBound = Math.floor(this._ratio * 0xffffffff)\n }\n\n shouldSample(context: unknown, traceId: string): SamplingResult {\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)\n ) {\n return {\n decision: SamplingDecision.RECORD_AND_SAMPLED,\n }\n }\n\n let decision: SamplingDecision = SamplingDecision.NOT_RECORD\n\n if (\n isValidTraceId(traceId)\n && this._accumulate(traceId) < this._upperBound\n ) {\n decision = SamplingDecision.RECORD_AND_SAMPLED\n }\n\n return { decision }\n }\n\n toString(): string {\n return `SessionRecorderTraceIdRatioBasedSampler{${this._ratio}}`\n }\n\n private _normalize(ratio: number): number {\n if (typeof ratio !== 'number' || isNaN(ratio)) return 0\n return ratio >= 1 ? 1 : ratio <= 0 ? 0 : ratio\n }\n\n private _accumulate(traceId: string): number {\n let accumulation = 0\n for (let i = 0; i < traceId.length / 8; i++) {\n const pos = i * 8\n const part = parseInt(traceId.slice(pos, pos + 8), 16)\n accumulation = (accumulation ^ part) >>> 0\n }\n return accumulation\n }\n}\n"]}
@@ -1,9 +1,23 @@
1
+ /**
2
+ * @deprecated
3
+ */
1
4
  export declare const MULTIPLAYER_TRACE_DOC_PREFIX = "d0cd0c";
2
5
  export declare const MULTIPLAYER_TRACE_DEBUG_PREFIX = "debdeb";
3
6
  export declare const MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX = "cdbcdb";
4
7
  export declare const MULTIPLAYER_TRACE_DEBUG_SESSION_SHORT_ID_LENGTH = 16;
8
+ /**
9
+ * @deprecated Use MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL instead
10
+ */
5
11
  export declare const MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL = "https://api.multiplayer.app/v1/traces";
12
+ /**
13
+ * @deprecated Use MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL instead
14
+ */
6
15
  export declare const MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_URL = "https://api.multiplayer.app/v1/logs";
16
+ export declare const MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL = "https://otlp.multiplayer.app/v1/traces";
17
+ export declare const MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL = "https://otlp.multiplayer.app/v1/logs";
18
+ export declare const MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_GRPC_URL = "https://otlp.multiplayer.app:4317/v1/traces";
19
+ export declare const MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL = "https://otlp.multiplayer.app:4317/v1/logs";
20
+ export declare const MULTIPLAYER_BASE_API_URL = "https://api.multiplayer.app";
7
21
  export declare const MULTIPLAYER_ATTRIBUTE_PREFIX = "multiplayer.";
8
22
  export declare const ATTR_MULTIPLAYER_WORKSPACE_ID = "multiplayer.workspace.id";
9
23
  export declare const ATTR_MULTIPLAYER_PROJECT_ID = "multiplayer.project.id";
@@ -14,6 +28,8 @@ export declare const ATTR_MULTIPLAYER_PLATFORM_NAME = "multiplayer.platform.name
14
28
  export declare const ATTR_MULTIPLAYER_CLIENT_ID = "multiplayer.client.id";
15
29
  export declare const ATTR_MULTIPLAYER_INTEGRATION_ID = "multiplayer.integration.id";
16
30
  export declare const ATTR_MULTIPLAYER_SESSION_ID = "multiplayer.session.id";
31
+ export declare const ATTR_MULTIPLAYER_HTTP_PROXY = "multiplayer.http.proxy";
32
+ export declare const ATTR_MULTIPLAYER_HTTP_PROXY_TYPE = "multiplayer.http.proxy.type";
17
33
  export declare const ATTR_MULTIPLAYER_HTTP_REQUEST_BODY = "multiplayer.http.request.body";
18
34
  export declare const ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY = "multiplayer.http.response.body";
19
35
  export declare const ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS = "multiplayer.http.request.headers";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.base.d.ts","sourceRoot":"","sources":["../../../src/constants/constants.base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,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;;GAEG;AACH,eAAO,MAAM,4CAA4C,0CAA0C,CAAA;AAEnG;;GAEG;AACH,eAAO,MAAM,0CAA0C,wCAAwC,CAAA;AAE/F,eAAO,MAAM,iDAAiD,2CAA2C,CAAA;AAEzG,eAAO,MAAM,+CAA+C,yCAAyC,CAAA;AAErG,eAAO,MAAM,iDAAiD,gDAAgD,CAAA;AAE9G,eAAO,MAAM,+CAA+C,8CAA8C,CAAA;AAE1G,eAAO,MAAM,wBAAwB,gCAAgC,CAAA;AAErE,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,2BAA2B,2BAA2B,CAAA;AAEnE,eAAO,MAAM,gCAAgC,gCAAgC,CAAA;AAE7E,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,12 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MASK_PLACEHOLDER = exports.ATTR_MULTIPLAYER_SESSION_RECORDER_VERSION = exports.ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY_ENCODING = exports.ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY = exports.ATTR_MULTIPLAYER_GRPC_RESPONSE_MESSAGE = exports.ATTR_MULTIPLAYER_GRPC_REQUEST_MESSAGE_ENCODING = exports.ATTR_MULTIPLAYER_GRPC_REQUEST_MESSAGE = exports.ATTR_MULTIPLAYER_RPC_RESPONSE_MESSAGE = exports.ATTR_MULTIPLAYER_RPC_REQUEST_MESSAGE_ENCODING = exports.ATTR_MULTIPLAYER_RPC_REQUEST_MESSAGE = exports.ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING = exports.ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS = exports.ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS = exports.ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY = exports.ATTR_MULTIPLAYER_HTTP_REQUEST_BODY = exports.ATTR_MULTIPLAYER_SESSION_ID = exports.ATTR_MULTIPLAYER_INTEGRATION_ID = exports.ATTR_MULTIPLAYER_CLIENT_ID = exports.ATTR_MULTIPLAYER_PLATFORM_NAME = exports.ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON = exports.ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE = exports.ATTR_MULTIPLAYER_PLATFORM_ID = exports.ATTR_MULTIPLAYER_PROJECT_ID = exports.ATTR_MULTIPLAYER_WORKSPACE_ID = exports.MULTIPLAYER_ATTRIBUTE_PREFIX = exports.MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_URL = exports.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL = exports.MULTIPLAYER_TRACE_DEBUG_SESSION_SHORT_ID_LENGTH = exports.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX = exports.MULTIPLAYER_TRACE_DEBUG_PREFIX = exports.MULTIPLAYER_TRACE_DOC_PREFIX = void 0;
3
+ exports.MASK_PLACEHOLDER = exports.ATTR_MULTIPLAYER_SESSION_RECORDER_VERSION = exports.ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY_ENCODING = exports.ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY = exports.ATTR_MULTIPLAYER_GRPC_RESPONSE_MESSAGE = exports.ATTR_MULTIPLAYER_GRPC_REQUEST_MESSAGE_ENCODING = exports.ATTR_MULTIPLAYER_GRPC_REQUEST_MESSAGE = exports.ATTR_MULTIPLAYER_RPC_RESPONSE_MESSAGE = exports.ATTR_MULTIPLAYER_RPC_REQUEST_MESSAGE_ENCODING = exports.ATTR_MULTIPLAYER_RPC_REQUEST_MESSAGE = exports.ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING = exports.ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS = exports.ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS = exports.ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY = exports.ATTR_MULTIPLAYER_HTTP_REQUEST_BODY = exports.ATTR_MULTIPLAYER_HTTP_PROXY_TYPE = exports.ATTR_MULTIPLAYER_HTTP_PROXY = exports.ATTR_MULTIPLAYER_SESSION_ID = exports.ATTR_MULTIPLAYER_INTEGRATION_ID = exports.ATTR_MULTIPLAYER_CLIENT_ID = exports.ATTR_MULTIPLAYER_PLATFORM_NAME = exports.ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON = exports.ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE = exports.ATTR_MULTIPLAYER_PLATFORM_ID = exports.ATTR_MULTIPLAYER_PROJECT_ID = exports.ATTR_MULTIPLAYER_WORKSPACE_ID = exports.MULTIPLAYER_ATTRIBUTE_PREFIX = exports.MULTIPLAYER_BASE_API_URL = exports.MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL = exports.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_GRPC_URL = exports.MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL = exports.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL = exports.MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_URL = exports.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL = exports.MULTIPLAYER_TRACE_DEBUG_SESSION_SHORT_ID_LENGTH = exports.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX = exports.MULTIPLAYER_TRACE_DEBUG_PREFIX = exports.MULTIPLAYER_TRACE_DOC_PREFIX = void 0;
4
+ /**
5
+ * @deprecated
6
+ */
4
7
  exports.MULTIPLAYER_TRACE_DOC_PREFIX = 'd0cd0c';
5
8
  exports.MULTIPLAYER_TRACE_DEBUG_PREFIX = 'debdeb';
6
9
  exports.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX = 'cdbcdb';
7
10
  exports.MULTIPLAYER_TRACE_DEBUG_SESSION_SHORT_ID_LENGTH = 16;
11
+ /**
12
+ * @deprecated Use MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL instead
13
+ */
8
14
  exports.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL = 'https://api.multiplayer.app/v1/traces';
15
+ /**
16
+ * @deprecated Use MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL instead
17
+ */
9
18
  exports.MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_URL = 'https://api.multiplayer.app/v1/logs';
19
+ exports.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL = 'https://otlp.multiplayer.app/v1/traces';
20
+ exports.MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL = 'https://otlp.multiplayer.app/v1/logs';
21
+ exports.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_GRPC_URL = 'https://otlp.multiplayer.app:4317/v1/traces';
22
+ exports.MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL = 'https://otlp.multiplayer.app:4317/v1/logs';
23
+ exports.MULTIPLAYER_BASE_API_URL = 'https://api.multiplayer.app';
10
24
  exports.MULTIPLAYER_ATTRIBUTE_PREFIX = 'multiplayer.';
11
25
  exports.ATTR_MULTIPLAYER_WORKSPACE_ID = 'multiplayer.workspace.id';
12
26
  exports.ATTR_MULTIPLAYER_PROJECT_ID = 'multiplayer.project.id';
@@ -17,6 +31,8 @@ exports.ATTR_MULTIPLAYER_PLATFORM_NAME = 'multiplayer.platform.name';
17
31
  exports.ATTR_MULTIPLAYER_CLIENT_ID = 'multiplayer.client.id';
18
32
  exports.ATTR_MULTIPLAYER_INTEGRATION_ID = 'multiplayer.integration.id';
19
33
  exports.ATTR_MULTIPLAYER_SESSION_ID = 'multiplayer.session.id';
34
+ exports.ATTR_MULTIPLAYER_HTTP_PROXY = 'multiplayer.http.proxy';
35
+ exports.ATTR_MULTIPLAYER_HTTP_PROXY_TYPE = 'multiplayer.http.proxy.type';
20
36
  exports.ATTR_MULTIPLAYER_HTTP_REQUEST_BODY = 'multiplayer.http.request.body';
21
37
  exports.ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY = 'multiplayer.http.response.body';
22
38
  exports.ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS = 'multiplayer.http.request.headers';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.base.js","sourceRoot":"","sources":["../../../src/constants/constants.base.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,4BAA4B,GAAG,QAAQ,CAAA;AAEvC,QAAA,8BAA8B,GAAG,QAAQ,CAAA;AAEzC,QAAA,yCAAyC,GAAG,QAAQ,CAAA;AAEpD,QAAA,+CAA+C,GAAG,EAAE,CAAA;AAEjE;;GAEG;AACU,QAAA,4CAA4C,GAAG,uCAAuC,CAAA;AAEnG;;GAEG;AACU,QAAA,0CAA0C,GAAG,qCAAqC,CAAA;AAElF,QAAA,iDAAiD,GAAG,wCAAwC,CAAA;AAE5F,QAAA,+CAA+C,GAAG,sCAAsC,CAAA;AAExF,QAAA,iDAAiD,GAAG,6CAA6C,CAAA;AAEjG,QAAA,+CAA+C,GAAG,2CAA2C,CAAA;AAE7F,QAAA,wBAAwB,GAAG,6BAA6B,CAAA;AAExD,QAAA,4BAA4B,GAAG,cAAc,CAAA;AAE7C,QAAA,6BAA6B,GAAG,0BAA0B,CAAA;AAE1D,QAAA,2BAA2B,GAAG,wBAAwB,CAAA;AAEtD,QAAA,4BAA4B,GAAG,yBAAyB,CAAA;AAExD,QAAA,6CAA6C,GAAG,+BAA+B,CAAA;AAE/E,QAAA,oDAAoD,GAAG,sCAAsC,CAAA;AAE7F,QAAA,8BAA8B,GAAG,2BAA2B,CAAA;AAE5D,QAAA,0BAA0B,GAAG,uBAAuB,CAAA;AAEpD,QAAA,+BAA+B,GAAG,4BAA4B,CAAA;AAE9D,QAAA,2BAA2B,GAAG,wBAAwB,CAAA;AAEtD,QAAA,2BAA2B,GAAG,wBAAwB,CAAA;AAEtD,QAAA,gCAAgC,GAAG,6BAA6B,CAAA;AAEhE,QAAA,kCAAkC,GAAG,+BAA+B,CAAA;AAEpE,QAAA,mCAAmC,GAAG,gCAAgC,CAAA;AAEtE,QAAA,qCAAqC,GAAG,kCAAkC,CAAA;AAE1E,QAAA,sCAAsC,GAAG,mCAAmC,CAAA;AAE5E,QAAA,4CAA4C,GAAG,yCAAyC,CAAA;AAExF,QAAA,oCAAoC,GAAG,iCAAiC,CAAA;AAExE,QAAA,6CAA6C,GAAG,0CAA0C,CAAA;AAE1F,QAAA,qCAAqC,GAAG,kCAAkC,CAAA;AAE1E,QAAA,qCAAqC,GAAG,sCAAsC,CAAA;AAE9E,QAAA,8CAA8C,GAAG,0CAA0C,CAAA;AAE3F,QAAA,sCAAsC,GAAG,uCAAuC,CAAA;AAEhF,QAAA,uCAAuC,GAAG,oCAAoC,CAAA;AAE9E,QAAA,gDAAgD,GAAG,6CAA6C,CAAA;AAEhG,QAAA,yCAAyC,GAAG,sCAAsC,CAAA;AAElF,QAAA,gBAAgB,GAAG,cAAc,CAAA","sourcesContent":["/**\n * @deprecated\n */\nexport 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\n/**\n * @deprecated Use MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL instead\n */\nexport const MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_URL = 'https://api.multiplayer.app/v1/traces'\n\n/**\n * @deprecated Use MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL instead\n */\nexport const MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_URL = 'https://api.multiplayer.app/v1/logs'\n\nexport const MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL = 'https://otlp.multiplayer.app/v1/traces'\n\nexport const MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL = 'https://otlp.multiplayer.app/v1/logs'\n\nexport const MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_GRPC_URL = 'https://otlp.multiplayer.app:4317/v1/traces'\n\nexport const MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL = 'https://otlp.multiplayer.app:4317/v1/logs'\n\nexport const MULTIPLAYER_BASE_API_URL = 'https://api.multiplayer.app'\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_PROXY = 'multiplayer.http.proxy'\n\nexport const ATTR_MULTIPLAYER_HTTP_PROXY_TYPE = 'multiplayer.http.proxy.type'\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"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.browser.d.ts","sourceRoot":"","sources":["../../../src/constants/constants.browser.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.browser.js","sourceRoot":"","sources":["../../../src/constants/constants.browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC","sourcesContent":["export * from './constants.base'\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.node.d.ts","sourceRoot":"","sources":["../../../src/constants/constants.node.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAEhC,eAAO,MAAM,0CAA0C,QAE7C,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.node.js","sourceRoot":"","sources":["../../../src/constants/constants.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAgC;AAEnB,QAAA,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"]}
@@ -0,0 +1,31 @@
1
+ import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
2
+ import { OTLPExporterConfigBase, OTLPExporterBase } from '@opentelemetry/otlp-exporter-base';
3
+ export interface SessionRecorderBrowserTraceExporterConfig extends OTLPExporterConfigBase {
4
+ /** API key for authentication. Required. */
5
+ apiKey: string;
6
+ /** Whether to use postMessage fallback for cross-origin requests */
7
+ usePostMessageFallback?: boolean;
8
+ /** PostMessage type identifier */
9
+ postMessageType?: string;
10
+ /** PostMessage target origin */
11
+ postMessageTargetOrigin?: string;
12
+ }
13
+ /**
14
+ * Browser-specific trace exporter for Session Recorder
15
+ * Exports traces via HTTP to Multiplayer's OTLP endpoint with browser-specific optimizations
16
+ * Only exports spans with trace IDs starting with Multiplayer prefixes
17
+ */
18
+ export declare class SessionRecorderBrowserTraceExporter extends OTLPExporterBase<ReadableSpan[]> implements SpanExporter {
19
+ private usePostMessage;
20
+ private readonly postMessageType;
21
+ private readonly postMessageTargetOrigin;
22
+ private readonly config;
23
+ constructor(config: SessionRecorderBrowserTraceExporterConfig);
24
+ export(spans: ReadableSpan[], resultCallback: (result: {
25
+ code: number;
26
+ }) => void): void;
27
+ shutdown(): Promise<void>;
28
+ private exportViaPostMessage;
29
+ private _serializeSpan;
30
+ }
31
+ //# sourceMappingURL=SessionRecorderBrowserTraceExporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionRecorderBrowserTraceExporter.d.ts","sourceRoot":"","sources":["../../../src/exporters/SessionRecorderBrowserTraceExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,mCAAmC,CAAA;AAU1C,MAAM,WAAW,yCACf,SAAQ,sBAAsB;IAC9B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gCAAgC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC;AAED;;;;GAIG;AACH,qBAAa,mCACX,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,CAA2C;gBAEtD,MAAM,EAAE,yCAAyC;IA2FpD,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI;IA+BvF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,cAAc;CAwBvB"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.SessionRecorderBrowserTraceExporter = void 0;
15
+ const otlp_exporter_base_1 = require("@opentelemetry/otlp-exporter-base");
16
+ const browser_http_1 = require("@opentelemetry/otlp-exporter-base/browser-http");
17
+ const constants_base_1 = require("../constants/constants.base");
18
+ /**
19
+ * Browser-specific trace exporter for Session Recorder
20
+ * Exports traces via HTTP to Multiplayer's OTLP endpoint with browser-specific optimizations
21
+ * Only exports spans with trace IDs starting with Multiplayer prefixes
22
+ */
23
+ class SessionRecorderBrowserTraceExporter extends otlp_exporter_base_1.OTLPExporterBase {
24
+ constructor(config) {
25
+ const { url = constants_base_1.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL, apiKey, headers = {}, postMessageType = 'MULTIPLAYER_SESSION_DEBUGGER_LIB', postMessageTargetOrigin = '*' } = config, restConfig = __rest(config, ["url", "apiKey", "headers", "postMessageType", "postMessageTargetOrigin"]);
26
+ const _config = Object.assign(Object.assign({}, restConfig), { url, headers: Object.assign({ 'Content-Type': 'application/x-protobuf', 'User-Agent': '@multiplayer-app/session-recorder-common/1.0.0', 'Authorization': apiKey }, headers) });
27
+ super((0, browser_http_1.createLegacyOtlpBrowserExportDelegate)(_config, {
28
+ serializeRequest: (spans) => {
29
+ // Create a simple trace service request structure
30
+ const request = {
31
+ resourceSpans: spans.map(span => ({
32
+ resource: {
33
+ attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({
34
+ key,
35
+ value: { stringValue: String(value) },
36
+ })),
37
+ },
38
+ scopeSpans: [{
39
+ spans: [{
40
+ traceId: span.spanContext().traceId,
41
+ spanId: span.spanContext().spanId,
42
+ parentSpanId: span.spanContext().spanId, // Using spanId as fallback
43
+ name: span.name,
44
+ kind: span.kind,
45
+ startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],
46
+ endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,
47
+ attributes: Object.entries(span.attributes).map(([key, value]) => ({
48
+ key,
49
+ value: { stringValue: String(value) },
50
+ })),
51
+ events: span.events.map(event => ({
52
+ timeUnixNano: event.time[0] * 1e9 + event.time[1],
53
+ name: event.name,
54
+ attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({
55
+ key,
56
+ value: { stringValue: String(value) },
57
+ })),
58
+ })),
59
+ links: span.links.map(link => ({
60
+ traceId: link.context.traceId,
61
+ spanId: link.context.spanId,
62
+ attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({
63
+ key,
64
+ value: { stringValue: String(value) },
65
+ })),
66
+ })),
67
+ status: {
68
+ code: span.status.code,
69
+ message: span.status.message || '',
70
+ },
71
+ }],
72
+ }],
73
+ })),
74
+ };
75
+ const encoder = new TextEncoder();
76
+ return encoder.encode(JSON.stringify(request));
77
+ },
78
+ deserializeResponse: (arg) => {
79
+ const decoder = new TextDecoder();
80
+ return JSON.parse(decoder.decode(arg));
81
+ },
82
+ }, 'v1/traces', { 'Content-Type': 'application/json' }));
83
+ this.usePostMessage = false;
84
+ this.config = config;
85
+ this.postMessageType = postMessageType;
86
+ this.postMessageTargetOrigin = postMessageTargetOrigin;
87
+ }
88
+ export(spans, resultCallback) {
89
+ // Filter spans to only include those with Multiplayer trace prefixes
90
+ const filteredSpans = spans.filter(span => {
91
+ const traceId = span.spanContext().traceId;
92
+ return traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_DEBUG_PREFIX) ||
93
+ traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX);
94
+ });
95
+ // Only proceed if there are filtered spans
96
+ if (filteredSpans.length === 0) {
97
+ resultCallback({ code: 0 });
98
+ return;
99
+ }
100
+ if (this.usePostMessage) {
101
+ this.exportViaPostMessage(filteredSpans, resultCallback);
102
+ return;
103
+ }
104
+ super.export(filteredSpans, (result) => {
105
+ if (result.code === 0) {
106
+ resultCallback(result);
107
+ }
108
+ else if (this.config.usePostMessageFallback) {
109
+ this.usePostMessage = true;
110
+ this.exportViaPostMessage(filteredSpans, resultCallback);
111
+ }
112
+ else {
113
+ resultCallback(result);
114
+ }
115
+ });
116
+ }
117
+ shutdown() {
118
+ return Promise.resolve();
119
+ }
120
+ exportViaPostMessage(spans, resultCallback) {
121
+ if (typeof window === 'undefined') {
122
+ resultCallback({ code: 1 });
123
+ return;
124
+ }
125
+ try {
126
+ window.postMessage({
127
+ action: 'traces',
128
+ type: this.postMessageType,
129
+ payload: spans.map(span => this._serializeSpan(span)),
130
+ }, this.postMessageTargetOrigin);
131
+ resultCallback({ code: 0 });
132
+ }
133
+ catch (e) {
134
+ resultCallback({ code: 1 });
135
+ }
136
+ }
137
+ _serializeSpan(span) {
138
+ const spanContext = span.spanContext();
139
+ return {
140
+ _spanContext: spanContext,
141
+ name: span.name,
142
+ kind: span.kind,
143
+ links: span.links,
144
+ ended: span.ended,
145
+ events: span.events,
146
+ status: span.status,
147
+ endTime: span.endTime,
148
+ startTime: span.startTime,
149
+ duration: span.duration,
150
+ attributes: span.attributes,
151
+ parentSpanId: spanContext.spanId, // Using spanId as parentSpanId is not available in newer versions
152
+ droppedAttributesCount: span.droppedAttributesCount,
153
+ droppedEventsCount: span.droppedEventsCount,
154
+ droppedLinksCount: span.droppedLinksCount,
155
+ resource: {
156
+ attributes: span.resource.attributes,
157
+ asyncAttributesPending: span.resource.asyncAttributesPending,
158
+ },
159
+ };
160
+ }
161
+ }
162
+ exports.SessionRecorderBrowserTraceExporter = SessionRecorderBrowserTraceExporter;
163
+ //# sourceMappingURL=SessionRecorderBrowserTraceExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionRecorderBrowserTraceExporter.js","sourceRoot":"","sources":["../../../src/exporters/SessionRecorderBrowserTraceExporter.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 {\n createLegacyOtlpBrowserExportDelegate,\n} from '@opentelemetry/otlp-exporter-base/browser-http'\nimport {\n MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL,\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from '../constants/constants.base'\n\nexport interface SessionRecorderBrowserTraceExporterConfig\n extends OTLPExporterConfigBase {\n /** API key for authentication. Required. */\n apiKey: string\n /** Whether to use postMessage fallback for cross-origin requests */\n usePostMessageFallback?: boolean\n /** PostMessage type identifier */\n postMessageType?: string\n /** PostMessage target origin */\n postMessageTargetOrigin?: string\n}\n\n/**\n * Browser-specific trace exporter for Session Recorder\n * Exports traces via HTTP to Multiplayer's OTLP endpoint with browser-specific optimizations\n * Only exports spans with trace IDs starting with Multiplayer prefixes\n */\nexport class SessionRecorderBrowserTraceExporter\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: SessionRecorderBrowserTraceExporterConfig\n\n constructor(config: SessionRecorderBrowserTraceExporterConfig) {\n const {\n url = MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL,\n apiKey,\n headers = {},\n postMessageType = 'MULTIPLAYER_SESSION_DEBUGGER_LIB',\n postMessageTargetOrigin = '*',\n ...restConfig\n } = config\n\n const _config = {\n ...restConfig,\n url,\n headers: {\n 'Content-Type': 'application/x-protobuf',\n 'User-Agent': '@multiplayer-app/session-recorder-common/1.0.0',\n 'Authorization': apiKey,\n ...headers,\n },\n }\n\n super(\n createLegacyOtlpBrowserExportDelegate(\n _config,\n {\n serializeRequest: (spans: ReadableSpan[]) => {\n // Create a simple trace service request structure\n const request = {\n resourceSpans: spans.map(span => ({\n resource: {\n attributes: Object.entries(span.resource.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n },\n scopeSpans: [{\n spans: [{\n traceId: span.spanContext().traceId,\n spanId: span.spanContext().spanId,\n parentSpanId: span.spanContext().spanId, // Using spanId as fallback\n name: span.name,\n kind: span.kind,\n startTimeUnixNano: span.startTime[0] * 1e9 + span.startTime[1],\n endTimeUnixNano: span.endTime ? span.endTime[0] * 1e9 + span.endTime[1] : undefined,\n attributes: Object.entries(span.attributes).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n events: span.events.map(event => ({\n timeUnixNano: event.time[0] * 1e9 + event.time[1],\n name: event.name,\n attributes: Object.entries(event.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n links: span.links.map(link => ({\n traceId: link.context.traceId,\n spanId: link.context.spanId,\n attributes: Object.entries(link.attributes || {}).map(([key, value]) => ({\n key,\n value: { stringValue: String(value) },\n })),\n })),\n status: {\n code: span.status.code,\n message: span.status.message || '',\n },\n }],\n }],\n })),\n }\n\n const encoder = new TextEncoder()\n return encoder.encode(JSON.stringify(request))\n },\n deserializeResponse: (arg: Uint8Array) => {\n const decoder = new TextDecoder()\n return JSON.parse(decoder.decode(arg))\n },\n },\n 'v1/traces',\n { 'Content-Type': 'application/json' },\n ),\n )\n\n this.config = config\n this.postMessageType = postMessageType\n this.postMessageTargetOrigin = postMessageTargetOrigin\n }\n\n override export(spans: ReadableSpan[], resultCallback: (result: { code: number }) => void): void {\n // Filter spans to only include those with Multiplayer trace prefixes\n const filteredSpans = spans.filter(span => {\n const traceId = span.spanContext().traceId\n return traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX) ||\n traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)\n })\n\n // Only proceed if there are filtered spans\n if (filteredSpans.length === 0) {\n resultCallback({ code: 0 })\n return\n }\n\n if (this.usePostMessage) {\n this.exportViaPostMessage(filteredSpans, resultCallback)\n return\n }\n\n super.export(filteredSpans, (result) => {\n if (result.code === 0) {\n resultCallback(result)\n } else if (this.config.usePostMessageFallback) {\n this.usePostMessage = true\n this.exportViaPostMessage(filteredSpans, resultCallback)\n } else {\n resultCallback(result)\n }\n })\n }\n\n override shutdown(): Promise<void> {\n return Promise.resolve()\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 const spanContext = span.spanContext()\n return {\n _spanContext: 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: spanContext.spanId, // Using spanId as parentSpanId is not available in newer versions\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"]}
@@ -0,0 +1,22 @@
1
+ import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-proto';
2
+ export interface SessionRecorderGrpcLogsExporterConfig {
3
+ /** The URL to send logs to. Defaults to MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL */
4
+ url?: string;
5
+ /** API key for authentication. Required. */
6
+ apiKey: string;
7
+ /** Timeout for gRPC requests in milliseconds. Defaults to 30000 */
8
+ timeoutMillis?: number;
9
+ }
10
+ /**
11
+ * gRPC logs exporter for Session Recorder
12
+ * Exports logs via gRPC to Multiplayer's OTLP endpoint
13
+ * Only exports logs with trace IDs starting with Multiplayer prefixes
14
+ * Note: API key authentication may need to be handled at the gRPC client level
15
+ */
16
+ export declare class SessionRecorderGrpcLogsExporter extends OTLPLogExporter {
17
+ constructor(config: SessionRecorderGrpcLogsExporterConfig);
18
+ export(logs: any[], resultCallback: (result: {
19
+ code: number;
20
+ }) => void): void;
21
+ }
22
+ //# sourceMappingURL=SessionRecorderGrpcLogsExporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionRecorderGrpcLogsExporter.d.ts","sourceRoot":"","sources":["../../../src/exporters/SessionRecorderGrpcLogsExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAOzE,MAAM,WAAW,qCAAqC;IACpD,2FAA2F;IAC3F,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;GAKG;AACH,qBAAa,+BAAgC,SAAQ,eAAe;gBACtD,MAAM,EAAE,qCAAqC;IAYhD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI;CAgBvF"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionRecorderGrpcLogsExporter = void 0;
4
+ const exporter_logs_otlp_proto_1 = require("@opentelemetry/exporter-logs-otlp-proto");
5
+ const constants_base_1 = require("../constants/constants.base");
6
+ /**
7
+ * gRPC logs exporter for Session Recorder
8
+ * Exports logs via gRPC to Multiplayer's OTLP endpoint
9
+ * Only exports logs with trace IDs starting with Multiplayer prefixes
10
+ * Note: API key authentication may need to be handled at the gRPC client level
11
+ */
12
+ class SessionRecorderGrpcLogsExporter extends exporter_logs_otlp_proto_1.OTLPLogExporter {
13
+ constructor(config) {
14
+ const { url = constants_base_1.MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL, timeoutMillis = 30000, } = config;
15
+ super({
16
+ url,
17
+ timeoutMillis,
18
+ });
19
+ }
20
+ export(logs, resultCallback) {
21
+ // Filter logs to only include those with Multiplayer trace prefixes
22
+ const filteredLogs = logs.filter(log => {
23
+ var _a;
24
+ const traceId = ((_a = log.spanContext) === null || _a === void 0 ? void 0 : _a.traceId) || log.traceId;
25
+ return traceId && (traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_DEBUG_PREFIX) ||
26
+ traceId.startsWith(constants_base_1.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX));
27
+ });
28
+ // Only proceed if there are filtered logs
29
+ if (filteredLogs.length === 0) {
30
+ resultCallback({ code: 0 });
31
+ return;
32
+ }
33
+ super.export(filteredLogs, resultCallback);
34
+ }
35
+ }
36
+ exports.SessionRecorderGrpcLogsExporter = SessionRecorderGrpcLogsExporter;
37
+ //# sourceMappingURL=SessionRecorderGrpcLogsExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionRecorderGrpcLogsExporter.js","sourceRoot":"","sources":["../../../src/exporters/SessionRecorderGrpcLogsExporter.ts"],"names":[],"mappings":";;;AAAA,sFAAyE;AACzE,gEAIoC;AAWpC;;;;;GAKG;AACH,MAAa,+BAAgC,SAAQ,0CAAe;IAClE,YAAY,MAA6C;QACvD,MAAM,EACJ,GAAG,GAAG,gEAA+C,EACrD,aAAa,GAAG,KAAK,GACtB,GAAG,MAAM,CAAA;QAEV,KAAK,CAAC;YACJ,GAAG;YACH,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;IAEQ,MAAM,CAAC,IAAW,EAAE,cAAkD;QAC7E,oEAAoE;QACpE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;;YACrC,MAAM,OAAO,GAAG,CAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,OAAO,KAAI,GAAG,CAAC,OAAO,CAAA;YACvD,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,+CAA8B,CAAC;gBACnE,OAAO,CAAC,UAAU,CAAC,0DAAyC,CAAC,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,0CAA0C;QAC1C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3B,OAAM;QACR,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IAC5C,CAAC;CACF;AA7BD,0EA6BC","sourcesContent":["import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-proto'\nimport {\n MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL,\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,\n} from '../constants/constants.base'\n\nexport interface SessionRecorderGrpcLogsExporterConfig {\n /** The URL to send logs to. Defaults to MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL */\n url?: string\n /** API key for authentication. Required. */\n apiKey: string\n /** Timeout for gRPC requests in milliseconds. Defaults to 30000 */\n timeoutMillis?: number\n}\n\n/**\n * gRPC logs exporter for Session Recorder\n * Exports logs via gRPC to Multiplayer's OTLP endpoint\n * Only exports logs with trace IDs starting with Multiplayer prefixes\n * Note: API key authentication may need to be handled at the gRPC client level\n */\nexport class SessionRecorderGrpcLogsExporter extends OTLPLogExporter {\n constructor(config: SessionRecorderGrpcLogsExporterConfig) {\n const {\n url = MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_GRPC_URL,\n timeoutMillis = 30000,\n } = config\n\n super({\n url,\n timeoutMillis,\n })\n }\n\n override export(logs: any[], resultCallback: (result: { code: number }) => void): void {\n // Filter logs to only include those with Multiplayer trace prefixes\n const filteredLogs = logs.filter(log => {\n const traceId = log.spanContext?.traceId || log.traceId\n return traceId && (traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX) ||\n traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX))\n })\n\n // Only proceed if there are filtered logs\n if (filteredLogs.length === 0) {\n resultCallback({ code: 0 })\n return\n }\n\n super.export(filteredLogs, resultCallback)\n }\n}\n"]}