@multiplayer-app/session-recorder-common 1.0.0 → 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.
- package/dist/esm/SessionRecorderIdGenerator.js +1 -1
- package/dist/esm/SessionRecorderIdGenerator.js.map +1 -1
- package/dist/esm/SessionRecorderJsonTraceSerializer.d.ts.map +1 -1
- package/dist/esm/SessionRecorderJsonTraceSerializer.js +75 -7
- package/dist/esm/SessionRecorderJsonTraceSerializer.js.map +1 -1
- package/dist/esm/SessionRecorderTraceIdRatioBasedSampler.js +1 -1
- package/dist/esm/SessionRecorderTraceIdRatioBasedSampler.js.map +1 -1
- package/dist/esm/{constants.base.d.ts → constants/constants.base.d.ts} +14 -0
- package/dist/esm/constants/constants.base.d.ts.map +1 -0
- package/dist/esm/{constants.base.js → constants/constants.base.js} +14 -0
- package/dist/esm/constants/constants.base.js.map +1 -0
- package/dist/esm/constants/constants.browser.d.ts.map +1 -0
- package/dist/esm/constants/constants.browser.js.map +1 -0
- package/dist/esm/constants/constants.node.d.ts.map +1 -0
- package/dist/esm/constants/constants.node.js.map +1 -0
- package/dist/esm/exporters/SessionRecorderBrowserTraceExporter.d.ts +31 -0
- package/dist/esm/exporters/SessionRecorderBrowserTraceExporter.d.ts.map +1 -0
- package/dist/esm/exporters/SessionRecorderBrowserTraceExporter.js +220 -0
- package/dist/esm/exporters/SessionRecorderBrowserTraceExporter.js.map +1 -0
- package/dist/esm/exporters/SessionRecorderGrpcLogsExporter.d.ts +22 -0
- package/dist/esm/exporters/SessionRecorderGrpcLogsExporter.d.ts.map +1 -0
- package/dist/esm/exporters/SessionRecorderGrpcLogsExporter.js +51 -0
- package/dist/esm/exporters/SessionRecorderGrpcLogsExporter.js.map +1 -0
- package/dist/esm/exporters/SessionRecorderGrpcTraceExporter.d.ts +22 -0
- package/dist/esm/exporters/SessionRecorderGrpcTraceExporter.d.ts.map +1 -0
- package/dist/esm/exporters/SessionRecorderGrpcTraceExporter.js +48 -0
- package/dist/esm/exporters/SessionRecorderGrpcTraceExporter.js.map +1 -0
- package/dist/esm/exporters/SessionRecorderHttpLogsExporter.d.ts +20 -0
- package/dist/esm/exporters/SessionRecorderHttpLogsExporter.d.ts.map +1 -0
- package/dist/esm/exporters/SessionRecorderHttpLogsExporter.js +50 -0
- package/dist/esm/exporters/SessionRecorderHttpLogsExporter.js.map +1 -0
- package/dist/esm/exporters/SessionRecorderHttpTraceExporter.d.ts +25 -0
- package/dist/esm/exporters/SessionRecorderHttpTraceExporter.d.ts.map +1 -0
- package/dist/esm/exporters/SessionRecorderHttpTraceExporter.js +56 -0
- package/dist/esm/exporters/SessionRecorderHttpTraceExporter.js.map +1 -0
- package/dist/esm/exporters/SessionRecorderLogsExporterWrapper.d.ts +13 -0
- package/dist/esm/exporters/SessionRecorderLogsExporterWrapper.d.ts.map +1 -0
- package/dist/esm/exporters/SessionRecorderLogsExporterWrapper.js +25 -0
- package/dist/esm/exporters/SessionRecorderLogsExporterWrapper.js.map +1 -0
- package/dist/esm/exporters/SessionRecorderTraceExporterWrapper.d.ts +13 -0
- package/dist/esm/exporters/SessionRecorderTraceExporterWrapper.d.ts.map +1 -0
- package/dist/esm/exporters/SessionRecorderTraceExporterWrapper.js +24 -0
- package/dist/esm/exporters/SessionRecorderTraceExporterWrapper.js.map +1 -0
- package/dist/esm/exporters/index-browser.d.ts +2 -0
- package/dist/esm/exporters/index-browser.d.ts.map +1 -0
- package/dist/esm/exporters/index-browser.js +2 -0
- package/dist/esm/exporters/index-browser.js.map +1 -0
- package/dist/esm/exporters/index-node.d.ts +7 -0
- package/dist/esm/exporters/index-node.d.ts.map +1 -0
- package/dist/esm/exporters/index-node.js +7 -0
- package/dist/esm/exporters/index-node.js.map +1 -0
- package/dist/esm/exporters/index.d.ts +8 -0
- package/dist/esm/exporters/index.d.ts.map +1 -0
- package/dist/esm/exporters/index.js +8 -0
- package/dist/esm/exporters/index.js.map +1 -0
- package/dist/esm/index-browser.d.ts +2 -2
- package/dist/esm/index-browser.d.ts.map +1 -1
- package/dist/esm/index-browser.js +2 -2
- package/dist/esm/index-browser.js.map +1 -1
- package/dist/esm/index-node.d.ts +3 -2
- package/dist/esm/index-node.d.ts.map +1 -1
- package/dist/esm/index-node.js +3 -2
- package/dist/esm/index-node.js.map +1 -1
- package/dist/esm/index.d.ts +3 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -0
- package/dist/esm/{SessionRecorderHttpInstrumentationHooksNode.js → instrumentations/SessionRecorderHttpInstrumentationHooksNode.js} +3 -3
- package/dist/esm/instrumentations/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -0
- package/dist/esm/instrumentations/index-node.d.ts +2 -0
- package/dist/esm/instrumentations/index-node.d.ts.map +1 -0
- package/dist/esm/instrumentations/index-node.js +2 -0
- package/dist/esm/instrumentations/index-node.js.map +1 -0
- package/dist/esm/sdk/mask.js +1 -1
- package/dist/esm/sdk/mask.js.map +1 -1
- package/dist/esm/sdk/save-continuous-deb-session.js +1 -1
- package/dist/esm/sdk/save-continuous-deb-session.js.map +1 -1
- package/dist/esm/sdk/set-attribute.js +1 -1
- package/dist/esm/sdk/set-attribute.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esnext/SessionRecorderIdGenerator.js +1 -1
- package/dist/esnext/SessionRecorderIdGenerator.js.map +1 -1
- package/dist/esnext/SessionRecorderJsonTraceSerializer.d.ts.map +1 -1
- package/dist/esnext/SessionRecorderJsonTraceSerializer.js +47 -7
- package/dist/esnext/SessionRecorderJsonTraceSerializer.js.map +1 -1
- package/dist/esnext/SessionRecorderTraceIdRatioBasedSampler.js +1 -1
- package/dist/esnext/SessionRecorderTraceIdRatioBasedSampler.js.map +1 -1
- package/dist/{src → esnext/constants}/constants.base.d.ts +14 -0
- package/dist/esnext/constants/constants.base.d.ts.map +1 -0
- package/dist/esnext/{constants.base.js → constants/constants.base.js} +14 -0
- package/dist/esnext/constants/constants.base.js.map +1 -0
- package/dist/esnext/constants/constants.browser.d.ts.map +1 -0
- package/dist/esnext/constants/constants.browser.js.map +1 -0
- package/dist/esnext/constants/constants.node.d.ts.map +1 -0
- package/dist/esnext/constants/constants.node.js.map +1 -0
- package/dist/esnext/exporters/SessionRecorderBrowserTraceExporter.d.ts +31 -0
- package/dist/esnext/exporters/SessionRecorderBrowserTraceExporter.d.ts.map +1 -0
- package/dist/esnext/exporters/SessionRecorderBrowserTraceExporter.js +159 -0
- package/dist/esnext/exporters/SessionRecorderBrowserTraceExporter.js.map +1 -0
- package/dist/esnext/exporters/SessionRecorderGrpcLogsExporter.d.ts +22 -0
- package/dist/esnext/exporters/SessionRecorderGrpcLogsExporter.d.ts.map +1 -0
- package/dist/esnext/exporters/SessionRecorderGrpcLogsExporter.js +33 -0
- package/dist/esnext/exporters/SessionRecorderGrpcLogsExporter.js.map +1 -0
- package/dist/esnext/exporters/SessionRecorderGrpcTraceExporter.d.ts +22 -0
- package/dist/esnext/exporters/SessionRecorderGrpcTraceExporter.d.ts.map +1 -0
- package/dist/esnext/exporters/SessionRecorderGrpcTraceExporter.js +30 -0
- package/dist/esnext/exporters/SessionRecorderGrpcTraceExporter.js.map +1 -0
- package/dist/esnext/exporters/SessionRecorderHttpLogsExporter.d.ts +20 -0
- package/dist/esnext/exporters/SessionRecorderHttpLogsExporter.d.ts.map +1 -0
- package/dist/esnext/exporters/SessionRecorderHttpLogsExporter.js +32 -0
- package/dist/esnext/exporters/SessionRecorderHttpLogsExporter.js.map +1 -0
- package/dist/esnext/exporters/SessionRecorderHttpTraceExporter.d.ts +25 -0
- package/dist/esnext/exporters/SessionRecorderHttpTraceExporter.d.ts.map +1 -0
- package/dist/esnext/exporters/SessionRecorderHttpTraceExporter.js +38 -0
- package/dist/esnext/exporters/SessionRecorderHttpTraceExporter.js.map +1 -0
- package/dist/esnext/exporters/SessionRecorderLogsExporterWrapper.d.ts +13 -0
- package/dist/esnext/exporters/SessionRecorderLogsExporterWrapper.d.ts.map +1 -0
- package/dist/esnext/exporters/SessionRecorderLogsExporterWrapper.js +23 -0
- package/dist/esnext/exporters/SessionRecorderLogsExporterWrapper.js.map +1 -0
- package/dist/esnext/exporters/SessionRecorderTraceExporterWrapper.d.ts +13 -0
- package/dist/esnext/exporters/SessionRecorderTraceExporterWrapper.d.ts.map +1 -0
- package/dist/esnext/exporters/SessionRecorderTraceExporterWrapper.js +22 -0
- package/dist/esnext/exporters/SessionRecorderTraceExporterWrapper.js.map +1 -0
- package/dist/esnext/exporters/index-browser.d.ts +2 -0
- package/dist/esnext/exporters/index-browser.d.ts.map +1 -0
- package/dist/esnext/exporters/index-browser.js +2 -0
- package/dist/esnext/exporters/index-browser.js.map +1 -0
- package/dist/esnext/exporters/index-node.d.ts +7 -0
- package/dist/esnext/exporters/index-node.d.ts.map +1 -0
- package/dist/esnext/exporters/index-node.js +7 -0
- package/dist/esnext/exporters/index-node.js.map +1 -0
- package/dist/esnext/exporters/index.d.ts +8 -0
- package/dist/esnext/exporters/index.d.ts.map +1 -0
- package/dist/esnext/exporters/index.js +8 -0
- package/dist/esnext/exporters/index.js.map +1 -0
- package/dist/esnext/index-browser.d.ts +2 -2
- package/dist/esnext/index-browser.d.ts.map +1 -1
- package/dist/esnext/index-browser.js +2 -2
- package/dist/esnext/index-browser.js.map +1 -1
- package/dist/esnext/index-node.d.ts +3 -2
- package/dist/esnext/index-node.d.ts.map +1 -1
- package/dist/esnext/index-node.js +3 -2
- package/dist/esnext/index-node.js.map +1 -1
- package/dist/esnext/index.d.ts +3 -4
- package/dist/esnext/index.d.ts.map +1 -1
- package/dist/esnext/index.js +3 -4
- package/dist/esnext/index.js.map +1 -1
- package/dist/esnext/instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -0
- package/dist/esnext/{SessionRecorderHttpInstrumentationHooksNode.js → instrumentations/SessionRecorderHttpInstrumentationHooksNode.js} +3 -3
- package/dist/esnext/instrumentations/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -0
- package/dist/esnext/instrumentations/index-node.d.ts +2 -0
- package/dist/esnext/instrumentations/index-node.d.ts.map +1 -0
- package/dist/esnext/instrumentations/index-node.js +2 -0
- package/dist/esnext/instrumentations/index-node.js.map +1 -0
- package/dist/esnext/sdk/mask.js +1 -1
- package/dist/esnext/sdk/mask.js.map +1 -1
- package/dist/esnext/sdk/save-continuous-deb-session.js +1 -1
- package/dist/esnext/sdk/save-continuous-deb-session.js.map +1 -1
- package/dist/esnext/sdk/set-attribute.js +1 -1
- package/dist/esnext/sdk/set-attribute.js.map +1 -1
- package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -1
- package/dist/src/SessionRecorderIdGenerator.js +1 -1
- package/dist/src/SessionRecorderIdGenerator.js.map +1 -1
- package/dist/src/SessionRecorderJsonTraceSerializer.d.ts.map +1 -1
- package/dist/src/SessionRecorderJsonTraceSerializer.js +47 -7
- package/dist/src/SessionRecorderJsonTraceSerializer.js.map +1 -1
- package/dist/src/SessionRecorderTraceIdRatioBasedSampler.js +1 -1
- package/dist/src/SessionRecorderTraceIdRatioBasedSampler.js.map +1 -1
- package/dist/{esnext → src/constants}/constants.base.d.ts +14 -0
- package/dist/src/constants/constants.base.d.ts.map +1 -0
- package/dist/src/{constants.base.js → constants/constants.base.js} +15 -1
- package/dist/src/constants/constants.base.js.map +1 -0
- package/dist/src/constants/constants.browser.d.ts.map +1 -0
- package/dist/src/constants/constants.browser.js.map +1 -0
- package/dist/src/constants/constants.node.d.ts.map +1 -0
- package/dist/src/constants/constants.node.js.map +1 -0
- package/dist/src/exporters/SessionRecorderBrowserTraceExporter.d.ts +31 -0
- package/dist/src/exporters/SessionRecorderBrowserTraceExporter.d.ts.map +1 -0
- package/dist/src/exporters/SessionRecorderBrowserTraceExporter.js +163 -0
- package/dist/src/exporters/SessionRecorderBrowserTraceExporter.js.map +1 -0
- package/dist/src/exporters/SessionRecorderGrpcLogsExporter.d.ts +22 -0
- package/dist/src/exporters/SessionRecorderGrpcLogsExporter.d.ts.map +1 -0
- package/dist/src/exporters/SessionRecorderGrpcLogsExporter.js +37 -0
- package/dist/src/exporters/SessionRecorderGrpcLogsExporter.js.map +1 -0
- package/dist/src/exporters/SessionRecorderGrpcTraceExporter.d.ts +22 -0
- package/dist/src/exporters/SessionRecorderGrpcTraceExporter.d.ts.map +1 -0
- package/dist/src/exporters/SessionRecorderGrpcTraceExporter.js +34 -0
- package/dist/src/exporters/SessionRecorderGrpcTraceExporter.js.map +1 -0
- package/dist/src/exporters/SessionRecorderHttpLogsExporter.d.ts +20 -0
- package/dist/src/exporters/SessionRecorderHttpLogsExporter.d.ts.map +1 -0
- package/dist/src/exporters/SessionRecorderHttpLogsExporter.js +36 -0
- package/dist/src/exporters/SessionRecorderHttpLogsExporter.js.map +1 -0
- package/dist/src/exporters/SessionRecorderHttpTraceExporter.d.ts +25 -0
- package/dist/src/exporters/SessionRecorderHttpTraceExporter.d.ts.map +1 -0
- package/dist/src/exporters/SessionRecorderHttpTraceExporter.js +42 -0
- package/dist/src/exporters/SessionRecorderHttpTraceExporter.js.map +1 -0
- package/dist/src/exporters/SessionRecorderLogsExporterWrapper.d.ts +13 -0
- package/dist/src/exporters/SessionRecorderLogsExporterWrapper.d.ts.map +1 -0
- package/dist/src/exporters/SessionRecorderLogsExporterWrapper.js +27 -0
- package/dist/src/exporters/SessionRecorderLogsExporterWrapper.js.map +1 -0
- package/dist/src/exporters/SessionRecorderTraceExporterWrapper.d.ts +13 -0
- package/dist/src/exporters/SessionRecorderTraceExporterWrapper.d.ts.map +1 -0
- package/dist/src/exporters/SessionRecorderTraceExporterWrapper.js +26 -0
- package/dist/src/exporters/SessionRecorderTraceExporterWrapper.js.map +1 -0
- package/dist/src/exporters/index-browser.d.ts +2 -0
- package/dist/src/exporters/index-browser.d.ts.map +1 -0
- package/dist/src/exporters/index-browser.js +18 -0
- package/dist/src/exporters/index-browser.js.map +1 -0
- package/dist/src/exporters/index-node.d.ts +7 -0
- package/dist/src/exporters/index-node.d.ts.map +1 -0
- package/dist/src/exporters/index-node.js +23 -0
- package/dist/src/exporters/index-node.js.map +1 -0
- package/dist/src/exporters/index.d.ts +8 -0
- package/dist/src/exporters/index.d.ts.map +1 -0
- package/dist/src/exporters/index.js +24 -0
- package/dist/src/exporters/index.js.map +1 -0
- package/dist/src/index-browser.d.ts +2 -2
- package/dist/src/index-browser.d.ts.map +1 -1
- package/dist/src/index-browser.js +3 -4
- package/dist/src/index-browser.js.map +1 -1
- package/dist/src/index-node.d.ts +3 -2
- package/dist/src/index-node.d.ts.map +1 -1
- package/dist/src/index-node.js +3 -2
- package/dist/src/index-node.js.map +1 -1
- package/dist/src/index.d.ts +3 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -8
- package/dist/src/index.js.map +1 -1
- package/dist/src/instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -0
- package/dist/src/{SessionRecorderHttpInstrumentationHooksNode.js → instrumentations/SessionRecorderHttpInstrumentationHooksNode.js} +3 -3
- package/dist/src/instrumentations/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -0
- package/dist/src/instrumentations/index-node.d.ts +2 -0
- package/dist/src/instrumentations/index-node.d.ts.map +1 -0
- package/dist/src/instrumentations/index-node.js +18 -0
- package/dist/src/instrumentations/index-node.js.map +1 -0
- package/dist/src/sdk/mask.js +1 -1
- package/dist/src/sdk/mask.js.map +1 -1
- package/dist/src/sdk/save-continuous-deb-session.js +1 -1
- package/dist/src/sdk/save-continuous-deb-session.js.map +1 -1
- package/dist/src/sdk/set-attribute.js +1 -1
- package/dist/src/sdk/set-attribute.js.map +1 -1
- package/package.json +10 -4
- package/src/SessionRecorderIdGenerator.ts +1 -1
- package/src/SessionRecorderJsonTraceSerializer.ts +48 -8
- package/src/SessionRecorderTraceIdRatioBasedSampler.ts +1 -1
- package/src/{constants.base.ts → constants/constants.base.ts} +19 -0
- package/src/exporters/SessionRecorderBrowserTraceExporter.ts +212 -0
- package/src/exporters/SessionRecorderGrpcLogsExporter.ts +52 -0
- package/src/exporters/SessionRecorderGrpcTraceExporter.ts +50 -0
- package/src/exporters/SessionRecorderHttpLogsExporter.ts +58 -0
- package/src/exporters/SessionRecorderHttpTraceExporter.ts +65 -0
- package/src/exporters/SessionRecorderLogsExporterWrapper.ts +36 -0
- package/src/exporters/SessionRecorderTraceExporterWrapper.ts +36 -0
- package/src/exporters/index-browser.ts +1 -0
- package/src/exporters/index-node.ts +6 -0
- package/src/exporters/index.ts +7 -0
- package/src/index-browser.ts +2 -2
- package/src/index-node.ts +3 -2
- package/src/index.ts +3 -4
- package/src/{SessionRecorderHttpInstrumentationHooksNode.ts → instrumentations/SessionRecorderHttpInstrumentationHooksNode.ts} +3 -3
- package/src/instrumentations/index-node.ts +1 -0
- package/src/sdk/mask.ts +1 -1
- package/src/sdk/save-continuous-deb-session.ts +1 -1
- package/src/sdk/set-attribute.ts +1 -1
- package/dist/esm/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +0 -1
- package/dist/esm/SessionRecorderHttpInstrumentationHooksNode.js.map +0 -1
- package/dist/esm/SessionRecorderHttpTraceExporterBrowser.d.ts +0 -26
- package/dist/esm/SessionRecorderHttpTraceExporterBrowser.d.ts.map +0 -1
- package/dist/esm/SessionRecorderHttpTraceExporterBrowser.js +0 -116
- package/dist/esm/SessionRecorderHttpTraceExporterBrowser.js.map +0 -1
- package/dist/esm/constants.base.d.ts.map +0 -1
- package/dist/esm/constants.base.js.map +0 -1
- package/dist/esm/constants.browser.d.ts.map +0 -1
- package/dist/esm/constants.browser.js.map +0 -1
- package/dist/esm/constants.node.d.ts.map +0 -1
- package/dist/esm/constants.node.js.map +0 -1
- package/dist/esnext/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +0 -1
- package/dist/esnext/SessionRecorderHttpInstrumentationHooksNode.js.map +0 -1
- package/dist/esnext/SessionRecorderHttpTraceExporterBrowser.d.ts +0 -26
- package/dist/esnext/SessionRecorderHttpTraceExporterBrowser.d.ts.map +0 -1
- package/dist/esnext/SessionRecorderHttpTraceExporterBrowser.js +0 -82
- package/dist/esnext/SessionRecorderHttpTraceExporterBrowser.js.map +0 -1
- package/dist/esnext/constants.base.d.ts.map +0 -1
- package/dist/esnext/constants.base.js.map +0 -1
- package/dist/esnext/constants.browser.d.ts.map +0 -1
- package/dist/esnext/constants.browser.js.map +0 -1
- package/dist/esnext/constants.node.d.ts.map +0 -1
- package/dist/esnext/constants.node.js.map +0 -1
- package/dist/src/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +0 -1
- package/dist/src/SessionRecorderHttpInstrumentationHooksNode.js.map +0 -1
- package/dist/src/SessionRecorderHttpTraceExporterBrowser.d.ts +0 -26
- package/dist/src/SessionRecorderHttpTraceExporterBrowser.d.ts.map +0 -1
- package/dist/src/SessionRecorderHttpTraceExporterBrowser.js +0 -86
- package/dist/src/SessionRecorderHttpTraceExporterBrowser.js.map +0 -1
- package/dist/src/constants.base.d.ts.map +0 -1
- package/dist/src/constants.base.js.map +0 -1
- package/dist/src/constants.browser.d.ts.map +0 -1
- package/dist/src/constants.browser.js.map +0 -1
- package/dist/src/constants.node.d.ts.map +0 -1
- package/dist/src/constants.node.js.map +0 -1
- package/src/SessionRecorderHttpTraceExporterBrowser.ts +0 -123
- /package/dist/esm/{constants.browser.d.ts → constants/constants.browser.d.ts} +0 -0
- /package/dist/esm/{constants.browser.js → constants/constants.browser.js} +0 -0
- /package/dist/esm/{constants.node.d.ts → constants/constants.node.d.ts} +0 -0
- /package/dist/esm/{constants.node.js → constants/constants.node.js} +0 -0
- /package/dist/esm/{SessionRecorderHttpInstrumentationHooksNode.d.ts → instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts} +0 -0
- /package/dist/esnext/{constants.browser.d.ts → constants/constants.browser.d.ts} +0 -0
- /package/dist/esnext/{constants.browser.js → constants/constants.browser.js} +0 -0
- /package/dist/esnext/{constants.node.d.ts → constants/constants.node.d.ts} +0 -0
- /package/dist/esnext/{constants.node.js → constants/constants.node.js} +0 -0
- /package/dist/esnext/{SessionRecorderHttpInstrumentationHooksNode.d.ts → instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts} +0 -0
- /package/dist/src/{constants.browser.d.ts → constants/constants.browser.d.ts} +0 -0
- /package/dist/src/{constants.browser.js → constants/constants.browser.js} +0 -0
- /package/dist/src/{constants.node.d.ts → constants/constants.node.d.ts} +0 -0
- /package/dist/src/{constants.node.js → constants/constants.node.js} +0 -0
- /package/dist/src/{SessionRecorderHttpInstrumentationHooksNode.d.ts → instrumentations/SessionRecorderHttpInstrumentationHooksNode.d.ts} +0 -0
- /package/src/{constants.browser.ts → constants/constants.browser.ts} +0 -0
- /package/src/{constants.node.ts → constants/constants.node.ts} +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto'
|
|
2
|
+
import {
|
|
3
|
+
MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_GRPC_URL,
|
|
4
|
+
MULTIPLAYER_TRACE_DEBUG_PREFIX,
|
|
5
|
+
MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,
|
|
6
|
+
} from '../constants/constants.base'
|
|
7
|
+
|
|
8
|
+
export interface SessionRecorderGrpcTraceExporterConfig {
|
|
9
|
+
/** The URL to send traces to. Defaults to MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_GRPC_URL */
|
|
10
|
+
url?: string
|
|
11
|
+
/** API key for authentication. Required. */
|
|
12
|
+
apiKey: string
|
|
13
|
+
/** Timeout for gRPC requests in milliseconds. Defaults to 30000 */
|
|
14
|
+
timeoutMillis?: number
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* gRPC trace exporter for Session Recorder
|
|
19
|
+
* Exports traces via gRPC to Multiplayer's OTLP endpoint
|
|
20
|
+
* Only exports spans with trace IDs starting with Multiplayer prefixes
|
|
21
|
+
* Note: API key authentication may need to be handled at the gRPC client level
|
|
22
|
+
*/
|
|
23
|
+
export class SessionRecorderGrpcTraceExporter extends OTLPTraceExporter {
|
|
24
|
+
constructor(config: SessionRecorderGrpcTraceExporterConfig) {
|
|
25
|
+
const {
|
|
26
|
+
url = MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_GRPC_URL,
|
|
27
|
+
timeoutMillis = 30000,
|
|
28
|
+
} = config
|
|
29
|
+
|
|
30
|
+
super({
|
|
31
|
+
url,
|
|
32
|
+
timeoutMillis,
|
|
33
|
+
})
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
override export(spans: any[], resultCallback: (result: { code: number }) => void): void {
|
|
37
|
+
const filteredSpans = spans.filter(span => {
|
|
38
|
+
const traceId = span.spanContext().traceId
|
|
39
|
+
return traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX) ||
|
|
40
|
+
traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
if (filteredSpans.length === 0) {
|
|
44
|
+
resultCallback({ code: 0 })
|
|
45
|
+
return
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
super.export(filteredSpans, resultCallback)
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http'
|
|
2
|
+
import {
|
|
3
|
+
MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL,
|
|
4
|
+
MULTIPLAYER_TRACE_DEBUG_PREFIX,
|
|
5
|
+
MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,
|
|
6
|
+
} from '../constants/constants.base'
|
|
7
|
+
|
|
8
|
+
export interface SessionRecorderHttpLogsExporterConfig {
|
|
9
|
+
/** The URL to send logs to. Defaults to MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL */
|
|
10
|
+
url?: string
|
|
11
|
+
/** API key for authentication. Required. */
|
|
12
|
+
apiKey: string
|
|
13
|
+
/** Timeout for HTTP requests in milliseconds. Defaults to 30000 */
|
|
14
|
+
timeoutMillis?: number
|
|
15
|
+
/** Whether to keep the connection alive. Defaults to true */
|
|
16
|
+
keepAlive?: boolean
|
|
17
|
+
/** Maximum number of concurrent requests. Defaults to 20 */
|
|
18
|
+
concurrencyLimit?: number
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class SessionRecorderHttpLogsExporter extends OTLPLogExporter {
|
|
22
|
+
constructor(config: SessionRecorderHttpLogsExporterConfig) {
|
|
23
|
+
const {
|
|
24
|
+
url = MULTIPLAYER_OTEL_DEFAULT_LOGS_EXPORTER_HTTP_URL,
|
|
25
|
+
apiKey,
|
|
26
|
+
timeoutMillis = 30000,
|
|
27
|
+
keepAlive = true,
|
|
28
|
+
concurrencyLimit = 20,
|
|
29
|
+
} = config
|
|
30
|
+
|
|
31
|
+
super({
|
|
32
|
+
url,
|
|
33
|
+
headers: {
|
|
34
|
+
'Content-Type': 'application/x-protobuf',
|
|
35
|
+
'User-Agent': '@multiplayer-app/session-recorder-common/1.0.0',
|
|
36
|
+
'authorization': apiKey,
|
|
37
|
+
},
|
|
38
|
+
timeoutMillis,
|
|
39
|
+
keepAlive,
|
|
40
|
+
concurrencyLimit,
|
|
41
|
+
})
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
override export(logs: any[], resultCallback: (result: { code: number }) => void): void {
|
|
45
|
+
const filteredLogs = logs.filter(log => {
|
|
46
|
+
const traceId = log.spanContext?.traceId || log.traceId
|
|
47
|
+
return traceId && (traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX) ||
|
|
48
|
+
traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX))
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
if (filteredLogs.length === 0) {
|
|
52
|
+
resultCallback({ code: 0 })
|
|
53
|
+
return
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
super.export(filteredLogs, resultCallback)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'
|
|
2
|
+
import {
|
|
3
|
+
MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL,
|
|
4
|
+
MULTIPLAYER_TRACE_DEBUG_PREFIX,
|
|
5
|
+
MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,
|
|
6
|
+
} from '../constants/constants.base'
|
|
7
|
+
|
|
8
|
+
export interface SessionRecorderHttpTraceExporterConfig {
|
|
9
|
+
/** The URL to send traces to. Defaults to MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL */
|
|
10
|
+
url?: string
|
|
11
|
+
/** API key for authentication. Required. */
|
|
12
|
+
apiKey: string
|
|
13
|
+
/** Timeout for HTTP requests in milliseconds. Defaults to 30000 */
|
|
14
|
+
timeoutMillis?: number
|
|
15
|
+
/** Whether to keep the connection alive. Defaults to true */
|
|
16
|
+
keepAlive?: boolean
|
|
17
|
+
/** Maximum number of concurrent requests. Defaults to 20 */
|
|
18
|
+
concurrencyLimit?: number
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* HTTP trace exporter for Session Recorder
|
|
23
|
+
* Exports traces via HTTP to Multiplayer's OTLP endpoint
|
|
24
|
+
* Only exports spans with trace IDs starting with Multiplayer prefixes
|
|
25
|
+
*/
|
|
26
|
+
export class SessionRecorderHttpTraceExporter extends OTLPTraceExporter {
|
|
27
|
+
constructor(config: SessionRecorderHttpTraceExporterConfig) {
|
|
28
|
+
const {
|
|
29
|
+
url = MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL,
|
|
30
|
+
apiKey,
|
|
31
|
+
timeoutMillis = 30000,
|
|
32
|
+
keepAlive = true,
|
|
33
|
+
concurrencyLimit = 20,
|
|
34
|
+
} = config
|
|
35
|
+
|
|
36
|
+
super({
|
|
37
|
+
url,
|
|
38
|
+
headers: {
|
|
39
|
+
'Content-Type': 'application/x-protobuf',
|
|
40
|
+
'User-Agent': '@multiplayer-app/session-recorder-common/1.0.0',
|
|
41
|
+
'authorization': apiKey,
|
|
42
|
+
},
|
|
43
|
+
timeoutMillis,
|
|
44
|
+
keepAlive,
|
|
45
|
+
concurrencyLimit,
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
override export(spans: any[], resultCallback: (result: { code: number }) => void): void {
|
|
50
|
+
// Filter spans to only include those with Multiplayer trace prefixes
|
|
51
|
+
const filteredSpans = spans.filter(span => {
|
|
52
|
+
const traceId = span.spanContext().traceId
|
|
53
|
+
return traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX) ||
|
|
54
|
+
traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
// Only proceed if there are filtered spans
|
|
58
|
+
if (filteredSpans.length === 0) {
|
|
59
|
+
resultCallback({ code: 0 })
|
|
60
|
+
return
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
super.export(filteredSpans, resultCallback)
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { SdkLogRecord, LogRecordExporter } from '@opentelemetry/sdk-logs'
|
|
2
|
+
import {
|
|
3
|
+
MULTIPLAYER_TRACE_DEBUG_PREFIX,
|
|
4
|
+
MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,
|
|
5
|
+
} from '../constants/constants.base'
|
|
6
|
+
|
|
7
|
+
export interface SessionRecorderLogsExporterWrapperConfig {
|
|
8
|
+
exporter: LogRecordExporter
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class SessionRecorderLogsExporterWrapper implements LogRecordExporter {
|
|
12
|
+
private readonly exporter: LogRecordExporter
|
|
13
|
+
|
|
14
|
+
constructor(config: SessionRecorderLogsExporterWrapperConfig) {
|
|
15
|
+
this.exporter = config.exporter
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export(logs: SdkLogRecord[], resultCallback: (result: { code: number }) => void): void {
|
|
19
|
+
const filteredLogs = logs.filter(log => {
|
|
20
|
+
const traceId = log.spanContext?.traceId
|
|
21
|
+
return !traceId || (!traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX) &&
|
|
22
|
+
!traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX))
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
if (filteredLogs.length === 0) {
|
|
26
|
+
resultCallback({ code: 0 })
|
|
27
|
+
return
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
this.exporter.export(filteredLogs, resultCallback)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
shutdown(): Promise<void> {
|
|
34
|
+
return this.exporter.shutdown()
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base'
|
|
2
|
+
import {
|
|
3
|
+
MULTIPLAYER_TRACE_DEBUG_PREFIX,
|
|
4
|
+
MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX,
|
|
5
|
+
} from '../constants/constants.base'
|
|
6
|
+
|
|
7
|
+
export interface SessionRecorderTraceExporterWrapperConfig {
|
|
8
|
+
exporter: SpanExporter
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class SessionRecorderTraceExporterWrapper implements SpanExporter {
|
|
12
|
+
private readonly exporter: SpanExporter
|
|
13
|
+
|
|
14
|
+
constructor(config: SessionRecorderTraceExporterWrapperConfig) {
|
|
15
|
+
this.exporter = config.exporter
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export(spans: ReadableSpan[], resultCallback: (result: { code: number }) => void): void {
|
|
19
|
+
const filteredSpans = spans.filter(span => {
|
|
20
|
+
const traceId = span.spanContext().traceId
|
|
21
|
+
return !traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX) &&
|
|
22
|
+
!traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX)
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
if (filteredSpans.length === 0) {
|
|
26
|
+
resultCallback({ code: 0 })
|
|
27
|
+
return
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
this.exporter.export(filteredSpans, resultCallback)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
shutdown(): Promise<void> {
|
|
34
|
+
return this.exporter.shutdown()
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SessionRecorderBrowserTraceExporter'
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './SessionRecorderHttpTraceExporter'
|
|
2
|
+
export * from './SessionRecorderHttpLogsExporter'
|
|
3
|
+
export * from './SessionRecorderGrpcTraceExporter'
|
|
4
|
+
export * from './SessionRecorderGrpcLogsExporter'
|
|
5
|
+
export * from './SessionRecorderTraceExporterWrapper'
|
|
6
|
+
export * from './SessionRecorderLogsExporterWrapper'
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './SessionRecorderHttpTraceExporter'
|
|
2
|
+
export * from './SessionRecorderHttpLogsExporter'
|
|
3
|
+
export * from './SessionRecorderGrpcTraceExporter'
|
|
4
|
+
export * from './SessionRecorderGrpcLogsExporter'
|
|
5
|
+
export * from './SessionRecorderBrowserTraceExporter'
|
|
6
|
+
export * from './SessionRecorderTraceExporterWrapper'
|
|
7
|
+
export * from './SessionRecorderLogsExporterWrapper'
|
package/src/index-browser.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './constants.browser'
|
|
2
|
-
export { SessionRecorderHttpTraceExporterBrowser } from './SessionRecorderHttpTraceExporterBrowser'
|
|
1
|
+
export * from './constants/constants.browser'
|
|
3
2
|
export { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'
|
|
4
3
|
export { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'
|
|
5
4
|
export { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'
|
|
6
5
|
export * as SessionRecorderSdk from './sdk'
|
|
7
6
|
export * from './type'
|
|
7
|
+
export * from './exporters/index-browser'
|
package/src/index-node.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export * from './constants.node'
|
|
2
|
-
export { SessionRecorderHttpInstrumentationHooksNode } from './SessionRecorderHttpInstrumentationHooksNode'
|
|
1
|
+
export * from './constants/constants.node'
|
|
2
|
+
export { SessionRecorderHttpInstrumentationHooksNode } from './instrumentations/SessionRecorderHttpInstrumentationHooksNode'
|
|
3
3
|
export { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'
|
|
4
4
|
export { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'
|
|
5
5
|
export { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'
|
|
6
6
|
export * as SessionRecorderSdk from './sdk'
|
|
7
7
|
export * from './type'
|
|
8
|
+
export * from './exporters/index-node'
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
export * from './constants.node'
|
|
2
|
-
export { SessionRecorderHttpTraceExporterBrowser } from './SessionRecorderHttpTraceExporterBrowser'
|
|
3
|
-
export { SessionRecorderHttpInstrumentationHooksNode } from './SessionRecorderHttpInstrumentationHooksNode'
|
|
1
|
+
export * from './constants/constants.node'
|
|
4
2
|
export { SessionRecorderIdGenerator } from './SessionRecorderIdGenerator'
|
|
5
|
-
export { SessionRecorderJsonTraceSerializer } from './SessionRecorderJsonTraceSerializer'
|
|
6
3
|
export { SessionRecorderTraceIdRatioBasedSampler } from './SessionRecorderTraceIdRatioBasedSampler'
|
|
7
4
|
export * as SessionRecorderSdk from './sdk'
|
|
8
5
|
export * from './type'
|
|
6
|
+
export * from './exporters'
|
|
7
|
+
export * from './instrumentations/index-node'
|
|
@@ -14,16 +14,16 @@ import {
|
|
|
14
14
|
ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,
|
|
15
15
|
MULTIPLAYER_TRACE_DEBUG_PREFIX,
|
|
16
16
|
MULTIPLAYER_TRACE_DOC_PREFIX,
|
|
17
|
-
} from '
|
|
17
|
+
} from '../constants/constants.node'
|
|
18
18
|
import {
|
|
19
19
|
mask,
|
|
20
20
|
schemify,
|
|
21
21
|
isGzip,
|
|
22
|
-
} from '
|
|
22
|
+
} from '../sdk'
|
|
23
23
|
import {
|
|
24
24
|
sensitiveFields,
|
|
25
25
|
sensitiveHeaders,
|
|
26
|
-
} from '
|
|
26
|
+
} from '../sdk/mask'
|
|
27
27
|
|
|
28
28
|
interface HttpResponseHookOptions {
|
|
29
29
|
maxPayloadSizeBytes?: number
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SessionRecorderHttpInstrumentationHooksNode'
|
package/src/sdk/mask.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { context, trace } from '@opentelemetry/api'
|
|
|
2
2
|
import {
|
|
3
3
|
ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE,
|
|
4
4
|
ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON,
|
|
5
|
-
} from '../constants.base'
|
|
5
|
+
} from '../constants/constants.base'
|
|
6
6
|
/**
|
|
7
7
|
* @description Set auto save attribute to span
|
|
8
8
|
* @param {String} reason
|
package/src/sdk/set-attribute.ts
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
ATTR_MULTIPLAYER_GRPC_REQUEST_MESSAGE,
|
|
14
14
|
ATTR_MULTIPLAYER_GRPC_RESPONSE_MESSAGE,
|
|
15
15
|
ATTR_MULTIPLAYER_MESSAGING_MESSAGE_BODY,
|
|
16
|
-
} from '../constants.base'
|
|
16
|
+
} from '../constants/constants.base'
|
|
17
17
|
import mask, { sensitiveFields, sensitiveHeaders } from './mask'
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -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\n // @ts-ignore\n oldWrite.apply(_response, restArgs)\n }\n }\n\n\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\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":"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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"]}
|
|
@@ -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,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 +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,2BAA2B,GAAG,wBAAwB,CAAA;AAEnE,MAAM,CAAC,IAAM,gCAAgC,GAAG,6BAA6B,CAAA;AAE7E,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_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"]}
|
|
@@ -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"}
|