{"_id":"@opentelemetry/browser-instrumentation","_rev":"14-a1c877c97a348da7077099034e79e27d","name":"@opentelemetry/browser-instrumentation","dist-tags":{"latest":"0.8.1"},"versions":{"0.1.0":{"name":"@opentelemetry/browser-instrumentation","version":"0.1.0","keywords":["opentelemetry","browser","web","instrumentation","navigation-timing","user-action","web-vitals"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.1.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"4623ed14b34c463308657bb828448408a564fc64","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.1.0.tgz","fileCount":28,"integrity":"sha512-txRV707bIdP7rmzyLrsBw2131aa27HIq5YZFAPiXhmmWRpa97tObfwMpv5Nqlv+U1912bBgD7RzdwzqIUw4elA==","signatures":[{"sig":"MEYCIQCu+J69HH/1QP/KroEr2ybxCIC5lTjDTogAD8F9mJmO9AIhAKMayJ/UsK7+HGUaSJMc6L11YQA1pGEbbnvfi7D9kNxG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69879},"type":"module","exports":{"./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"80443fbd44728604f7f43bc97f345d23ff8ff541","scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.6.4","description":"OpenTelemetry browser instrumentations.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"web-vitals":"^5.1.0","@opentelemetry/api-logs":"^0.213.0","@opentelemetry/instrumentation":"^0.213.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/web-utils":"*","@opentelemetry/test-utils":"*"},"peerDependencies":{"@opentelemetry/api":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.1.0_1773335546008_0.12091938959564819","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@opentelemetry/browser-instrumentation","version":"0.2.0","keywords":["opentelemetry","browser","web","instrumentation","navigation-timing","user-action","web-vitals"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.2.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"e330aab5a8a1d1007beb92534a7c11374d79a94b","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.2.0.tgz","fileCount":31,"integrity":"sha512-652B337C6CqlJ9VBwMGGnnK5uobRYDGSl32sM+Iw+UzAWxa0N5iTmV878ceBOF67SzBS1oFWPZ5MNp+3cOrTpQ==","signatures":[{"sig":"MEUCIAn98Ff/PRGVNDTmilt3D7eqHDlc5J5O5B2mmFIE0mklAiEAo5yYxdu+LD3PdII9LWWyBRcW3DBwFKlPqPI92aOxiLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84583},"type":"module","exports":{"./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"416ff8918863ca090dbced1fffed4f2ecf240612","imports":{"#instrumentation-utils":"./src/utils/index.ts","#instrumentation-test-utils":"./src/test-utils/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.9.0","description":"OpenTelemetry browser instrumentations.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"web-vitals":"^5.1.0","@opentelemetry/api-logs":"^0.213.0","@opentelemetry/instrumentation":"^0.213.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/sdk-logs":"^0.213.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.2.0_1773944603867_0.4833932828161205","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@opentelemetry/browser-instrumentation","version":"0.3.0","keywords":["opentelemetry","browser","web","instrumentation","navigation-timing","user-action","web-vitals","resource-timing"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.3.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"a1c034a6c528d9b1a35a4ca784797e1d3b829430","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.3.0.tgz","fileCount":41,"integrity":"sha512-jAz85R0BR1dV7DV3fVSCg1OeZ8qGQaOwu5adVMWd5+VJkT8QvXoMQ+Tymat3sATG/o2L930piu/llc/nVbbP+g==","signatures":[{"sig":"MEUCIBxenzVgUdKdYXiZ4Pi4OdmeoEIO9Q+EQ3UEFzPL1pyIAiEAqi9BtZuKXWRoIRMXlY3YK0amldyNxGIhaJRsnU0HGgw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126303},"type":"module","exports":{"./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"7b3549a08356a31624c76f58ba23c834759ce0a8","imports":{"#instrumentation-utils":"./src/utils/index.ts","#instrumentation-test-utils":"./src/test-utils/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.11.0","description":"OpenTelemetry browser instrumentations.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"web-vitals":"^5.2.0","@opentelemetry/api-logs":"^0.215.0","@opentelemetry/instrumentation":"^0.215.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/sdk-logs":"^0.215.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.3.0_1776994262315_0.5396157909851618","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@opentelemetry/browser-instrumentation","version":"0.4.0","keywords":["opentelemetry","browser","web","instrumentation","console","navigation-timing","user-action","web-vitals","resource-timing","navigation"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.4.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"a47b61287866a5edc61bdabdd8d5ba518ee11947","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.4.0.tgz","fileCount":60,"integrity":"sha512-FbYHUmy0MgShZstBJk1Y/DfKyUwQEm9LT4CoGPlqr2xF40OchZsi+XFVZcRwZFoXEtKSw6ZRme+4NYHUYOhVhg==","signatures":[{"sig":"MEQCIGdZZDbw6TMFjcFyndp7H+aO0jGoPvBJ+FoiQOhlqQMcAiAlXNJY6aYqSeV21Je9IykRcmMWZlg4shIlCCICp1qRPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":169250},"type":"module","exports":{"./experimental/console":"./dist/console/index.js","./experimental/navigation":"./dist/navigation/index.js","./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"aa9c52036e3ee2e6a9f402926e07f30a7d0f5084","imports":{"#instrumentation-utils":"./src/utils/index.ts","#instrumentation-test-utils":"./src/test-utils/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.11.0","description":"OpenTelemetry browser instrumentations.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"web-vitals":"^5.2.0","@opentelemetry/api-logs":"^0.216.0","@opentelemetry/instrumentation":"^0.216.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/sdk-logs":"0.216.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.4.0_1777582389749_0.5254680853604068","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@opentelemetry/browser-instrumentation","version":"0.5.0","keywords":["opentelemetry","browser","web","instrumentation","console","errors","navigation","navigation-timing","resource-timing","user-action","web-vitals"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.5.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"overbalance","email":"overbalancedev@proton.me"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"b4ec55b439f3f4abc158a579b3a66682cf3a5225","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.5.0.tgz","fileCount":66,"integrity":"sha512-XIl+U7XyGSWp3LPhTj0o4krWrWwN0qj0KtvA1shT8jInbpQVhbzWZsDbqYSbrvjsBE3sK1L6AS6+ZXPmG7fyWg==","signatures":[{"sig":"MEUCIQDlVXHoqGeG/J/BQ5+xugZQeMqnopj64vSFle9RRyXCQgIgEjmuoQJNIO6nSaO0PxMBlcPxGGnJm95F31EafzCQCAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180125},"type":"module","exports":{"./experimental/errors":"./dist/errors/index.js","./experimental/console":"./dist/console/index.js","./experimental/navigation":"./dist/navigation/index.js","./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"26b0fe3e1daeb876a1dbcc8d963505397b4a1cdd","imports":{"#utils":"./src/utils/index.ts","#utils/test":"./src/utils/test/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.11.0","description":"OpenTelemetry browser instrumentations.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"web-vitals":"^5.2.0","@opentelemetry/api-logs":"^0.217.0","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/semantic-conventions":"^1.40.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/sdk-logs":"0.217.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.5.0_1778190350028_0.9492867316271449","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@opentelemetry/browser-instrumentation","version":"0.5.1","keywords":["opentelemetry","browser","web","instrumentation","console","errors","navigation","navigation-timing","resource-timing","user-action","web-vitals"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.5.1","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"overbalance","email":"overbalancedev@proton.me"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"8dc805a588ca975026258e31696f9af8a0bc2adc","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.5.1.tgz","fileCount":65,"integrity":"sha512-V7u+mZ95yRbmusZwLeC0gqM7Flltc0PyYAztUuX3/2qCqqr/uiZ64CKlNmmcYx1vGQDUr/iIQqjMvTJAHH6npg==","signatures":[{"sig":"MEUCIHId24aq81Xe5zCJ0NGHjw1qR9AcfZrRd+NhyRX8RnMpAiEA7M+HQsvhp3KPSNEHWHd+VOYUQC8lRroQdeoDI0H6zW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177441},"type":"module","exports":{"./experimental/errors":"./dist/errors/index.js","./experimental/console":"./dist/console/index.js","./experimental/navigation":"./dist/navigation/index.js","./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"b4e600b2fda00ad9b04de45456a32559bbbbe2db","imports":{"#utils":"./src/utils/index.ts","#utils/test":"./src/utils/test/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.11.0","description":"OpenTelemetry browser instrumentations.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"web-vitals":"^5.2.0","@opentelemetry/core":"^2.7.1","@opentelemetry/api-logs":"^0.217.0","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/semantic-conventions":"^1.40.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/sdk-logs":"0.217.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.5.1_1778622627815_0.9931759887872709","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@opentelemetry/browser-instrumentation","version":"0.5.2","keywords":["opentelemetry","browser","web","instrumentation","console","errors","navigation","navigation-timing","resource-timing","user-action","web-vitals"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.5.2","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"overbalance","email":"overbalancedev@proton.me"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"ddcb1ba636b64bbe7534c57cbe535d9e3243ce8a","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.5.2.tgz","fileCount":65,"integrity":"sha512-CoTyQCERrzJQKkPqMBg2+6gTBt0ZfF28hzzHxRQG5xLnZfIlhd91IPPsYPzk5LWDi9vkAk6NVwZJmGjDYt2iAg==","signatures":[{"sig":"MEYCIQD0AZDrVh9deJ0IKwrhokJxy6U1PuLLbu1N4ilR7J/cqwIhAPTTBqAd7R4DmO7I8nfKixg5JCOwrudf9jDM6/miOb86","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178007},"type":"module","exports":{"./experimental/errors":"./dist/errors/index.js","./experimental/console":"./dist/console/index.js","./experimental/navigation":"./dist/navigation/index.js","./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"5a4564f19290c5680ce7aeff7b4f0b3cf9d4227f","imports":{"#utils":"./src/utils/index.ts","#utils/test":"./src/utils/test/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.12.1","description":"OpenTelemetry browser instrumentations.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"web-vitals":"^5.2.0","@opentelemetry/core":"^2.7.1","@opentelemetry/api-logs":"^0.218.0","@opentelemetry/instrumentation":"^0.218.0","@opentelemetry/semantic-conventions":"^1.41.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/sdk-logs":"0.218.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.5.2_1779167191506_0.21791751898228306","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@opentelemetry/browser-instrumentation","version":"0.6.0","keywords":["opentelemetry","browser","web","instrumentation","console","errors","navigation","navigation-timing","resource-timing","user-action","web-vitals"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.6.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"overbalance","email":"overbalancedev@proton.me"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"e1a3507d66a389795972469a7391dcdf72603e76","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.6.0.tgz","fileCount":65,"integrity":"sha512-ZYi3WaiCix1D8K6SY5y+i9zvo0lWsnd/tKKnk5PaqWLLxUhVl0gud8G79RJZ3NApDZvQ57PAvNC7povMHIj7jw==","signatures":[{"sig":"MEYCIQCRS0gvLWXZgRdkgEO43a2aUPgDvISU6aq+wRn8DsJyngIhANUSjTgeXiOHs0KUXZMMWjvyf5gcONa8RdjcQY/C9j+X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180865},"type":"module","exports":{"./experimental/errors":"./dist/errors/index.js","./experimental/console":"./dist/console/index.js","./experimental/navigation":"./dist/navigation/index.js","./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"43c61f44499ea09090e5737bd30ef193c9c9a76b","imports":{"#utils":"./src/utils/index.ts","#utils/test":"./src/utils/test/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.16.0","description":"OpenTelemetry browser instrumentations.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"web-vitals":"^5.3.0","@opentelemetry/core":"^2.9.0","@opentelemetry/api-logs":"^0.220.0","@opentelemetry/instrumentation":"^0.220.0","@opentelemetry/semantic-conventions":"^1.43.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/sdk-logs":"0.220.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.6.0_1783964674470_0.9318353371393342","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@opentelemetry/browser-instrumentation","version":"0.7.0","keywords":["opentelemetry","browser","web","instrumentation","console","errors","navigation","navigation-timing","resource-timing","user-action","web-vitals"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.7.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"overbalance","email":"overbalancedev@proton.me"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"0d91cf8c925c10fa6a58c2c9febfc0f2e1f0be8d","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.7.0.tgz","fileCount":65,"integrity":"sha512-kzsEU5CmB4bFAga42MMZ8Hjc9c6v4LAy0dBW67hKtyM9qSmzwUfvqhGYl351ywoKdUWF0COphrICfFm8ClU3uA==","signatures":[{"sig":"MEUCIEyPhtqrqKLYIOkVK8phw8KYz9HN9mbvz5GXazdt0OfdAiEAr3iFJkh4m9681a5MfpIOFYSIUcAtrTtKFUZXtGuD+Po=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":183139},"type":"module","exports":{"./experimental/errors":"./dist/errors/index.js","./experimental/console":"./dist/console/index.js","./experimental/navigation":"./dist/navigation/index.js","./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"9e65ab172ad6d4ecf98bb9159e88e7c6ed050b6c","imports":{"#utils":"./src/utils/index.ts","#utils/test":"./src/utils/test/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.16.0","description":"OpenTelemetry browser instrumentations.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"web-vitals":"^5.3.0","@opentelemetry/core":"^2.10.0","@opentelemetry/api-logs":"^0.221.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@opentelemetry/sdk-logs":"0.221.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.7.0_1785432011870_0.6094838299934948","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@opentelemetry/browser-instrumentation","version":"0.8.0","keywords":["opentelemetry","browser","web","instrumentation","console","errors","navigation","navigation-timing","resource-timing","user-action","web-vitals","fetch","xhr"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/browser-instrumentation@0.8.0","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"overbalance","email":"overbalancedev@proton.me"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"dist":{"shasum":"e7eb7debc5c9409f0518a115b69f3705526b7608","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.8.0.tgz","fileCount":89,"integrity":"sha512-+yDkGl5+2sWLyzWhf3kDS4YwJRIEJ67s7hYuC4nv8AavQmwZoK6LDZ7EabT+rhGAUxny4EC7SRAWqk6epGq+Lw==","signatures":[{"sig":"MEQCIFUDR7DdWxSavzQHX2kE7yyg+Zi5o4UBn+oV8ysO7VBEAiAxSC32FiWL4FqFNc/tH3daWZM769bNZOcX7IxHo6pMyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":277599},"type":"module","exports":{"./experimental/xhr":"./dist/xhr/index.js","./experimental/fetch":"./dist/fetch/index.js","./experimental/errors":"./dist/errors/index.js","./experimental/console":"./dist/console/index.js","./experimental/navigation":"./dist/navigation/index.js","./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js"},"gitHead":"6acede8f474c15056f24d9f979375ac7279c152a","imports":{"#utils":"./src/utils/index.ts","#utils/test":"./src/utils/test/index.ts"},"scripts":{"test":"vitest run","build":"tsdown","watch":"tsdown --watch --no-clean","test:watch":"vitest","check-types":"tsc","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","type":"git","directory":"packages/instrumentation"},"_npmVersion":"11.16.0","description":"OpenTelemetry browser instrumentations.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"web-vitals":"^6.1.1","@opentelemetry/api-logs":"^0.221.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.15.0","@opentelemetry/core":"2.10.0","@opentelemetry/sdk-logs":"0.221.0","@opentelemetry/propagator-b3":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0"},"peerDependencies":{"@opentelemetry/api":"^1.9.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-instrumentation_0.8.0_1787863105950_0.024729334905763567","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@opentelemetry/browser-instrumentation","version":"0.8.1","description":"OpenTelemetry browser instrumentations.","keywords":["opentelemetry","browser","web","instrumentation","console","errors","navigation","navigation-timing","resource-timing","user-action","web-vitals","fetch","xhr"],"homepage":"https://github.com/open-telemetry/opentelemetry-browser","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"license":"Apache-2.0","author":{"name":"OpenTelemetry Authors"},"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","directory":"packages/instrumentation"},"type":"module","imports":{"#utils":"./src/utils/index.ts","#utils/test":"./src/utils/test/index.ts"},"exports":{"./experimental/console":"./dist/console/index.js","./experimental/errors":"./dist/errors/index.js","./experimental/navigation":"./dist/navigation/index.js","./experimental/navigation-timing":"./dist/navigation-timing/index.js","./experimental/resource-timing":"./dist/resource-timing/index.js","./experimental/user-action":"./dist/user-action/index.js","./experimental/web-vitals":"./dist/web-vitals/index.js","./experimental/fetch":"./dist/fetch/index.js","./experimental/xhr":"./dist/xhr/index.js"},"sideEffects":false,"scripts":{"build":"tsdown","watch":"tsdown --watch --no-clean","check-types":"tsc","msw:init":"msw init public --save","test":"vitest run","test:watch":"vitest","test:coverage":"vitest --coverage"},"dependencies":{"@opentelemetry/api-logs":"^0.222.0","@opentelemetry/instrumentation":"^0.222.0","@opentelemetry/semantic-conventions":"^1.43.0","web-vitals":"^6.2.1"},"peerDependencies":{"@opentelemetry/api":"^1.9.1"},"devDependencies":{"@opentelemetry/core":"2.11.0","@opentelemetry/propagator-b3":"2.11.0","@opentelemetry/sdk-logs":"0.222.0","@opentelemetry/sdk-trace-base":"2.11.0","msw":"2.15.0"},"publishConfig":{"access":"public"},"msw":{"workerDirectory":["public"]},"gitHead":"634524e285bd977b5efe06b7dd78b4b23e14ec9d","_id":"@opentelemetry/browser-instrumentation@0.8.1","_nodeVersion":"26.3.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-2NY7s+O6cFxz9kvxD9IiyVRTSODmTvlzGFJCNLWkTPDR/jopY/WFf3QE6/nnTKFiDSzMjdOL8f1VdcRWvuIfAA==","shasum":"cfdabd8f352d94d6adfa26569c032618ceab669c","tarball":"https://registry.npmjs.org/@opentelemetry/browser-instrumentation/-/browser-instrumentation-0.8.1.tgz","fileCount":89,"unpackedSize":276930,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opentelemetry%2fbrowser-instrumentation@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCk9dEUGO6P3FltCRK30sbCG3DEY4RHHOE5pBbSaEQuigIhALwU3+CgYF1s1Bpjwuw29yoF55Nntc7YoHPeH65GH/XB"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64511c04-d2cc-471b-9e90-24e588bd8769"}},"directories":{},"maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"overbalance","email":"overbalancedev@proton.me"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browser-instrumentation_0.8.1_1788935401365_0.3573671087712884"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-12T17:12:25.904Z","modified":"2026-09-09T06:30:01.856Z","0.1.0":"2026-03-12T17:12:26.159Z","0.2.0":"2026-03-19T18:23:24.015Z","0.3.0":"2026-04-24T01:31:02.447Z","0.4.0":"2026-04-30T20:53:09.897Z","0.5.0":"2026-05-07T21:45:50.191Z","0.5.1":"2026-05-12T21:50:27.972Z","0.5.2":"2026-05-19T05:06:31.659Z","0.6.0":"2026-07-13T17:44:34.626Z","0.7.0":"2026-07-30T17:20:12.037Z","0.8.0":"2026-08-27T20:38:26.081Z","0.8.1":"2026-09-09T06:30:01.511Z"},"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-browser/issues"},"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","homepage":"https://github.com/open-telemetry/opentelemetry-browser","keywords":["opentelemetry","browser","web","instrumentation","console","errors","navigation","navigation-timing","resource-timing","user-action","web-vitals","fetch","xhr"],"repository":{"type":"git","url":"git+https://github.com/open-telemetry/opentelemetry-browser.git","directory":"packages/instrumentation"},"description":"OpenTelemetry browser instrumentations.","maintainers":[{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"pichlermarc","email":"marc.pichler@dynatrace.com"},{"name":"overbalance","email":"overbalancedev@proton.me"},{"name":"npmjs-account","email":"npmjs-account@opentelemetry.io"},{"name":"trentm","email":"trentm@gmail.com"},{"name":"martinkuba","email":"martin@martinkuba.com"}],"readme":"# @opentelemetry/browser-instrumentation\n\n[![NPM Published Version][npm-img]][npm-url]\n[![Apache License][license-image]][license-image]\n\nOpenTelemetry browser instrumentations, available as subpath exports under `./experimental/*`.\n\n## Installation\n\n```bash\nnpm install @opentelemetry/browser-instrumentation\n```\n\n## Instrumentations\n\n- [Navigation](#navigation) — automatic instrumentation for browser navigations (initial load and SPA route changes)\n- [Navigation Timing](#navigation-timing) — automatic instrumentation for navigation timing\n- [Resource Timing](#resource-timing) — automatic instrumentation for resource timing\n- [User Action](#user-action) — automatic instrumentation for user actions (clicks)\n- [Web Vitals](#web-vitals) — automatic instrumentation for Core Web Vitals\n- [Console](#console) — automatic instrumentation for console API calls (log, warn, error, info, debug)\n- [Errors](#errors) — automatic instrumentation for unhandled errors and promise rejections\n- [Fetch](#fetch) — automatic instrumentation for request using the `fetch` API\n\n## Usage\n\n```typescript\nimport { logs } from '@opentelemetry/api-logs';\nimport {\n  ConsoleLogRecordExporter,\n  LoggerProvider,\n  SimpleLogRecordProcessor,\n} from '@opentelemetry/sdk-logs';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { ErrorsInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/errors';\nimport { NavigationInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/navigation';\nimport { NavigationTimingInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/navigation-timing';\nimport { ResourceTimingInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/resource-timing';\nimport { UserActionInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/user-action';\nimport { WebVitalsInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/web-vitals';\n\nconst logProvider = new LoggerProvider({\n  processors: [\n    new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()),\n  ],\n});\nlogs.setGlobalLoggerProvider(logProvider);\n\nregisterInstrumentations({\n  instrumentations: [\n    new ErrorsInstrumentation(),\n    new NavigationInstrumentation(),\n    new NavigationTimingInstrumentation(),\n    new ResourceTimingInstrumentation(),\n    new UserActionInstrumentation(),\n    new WebVitalsInstrumentation(),\n  ],\n});\n```\n\n---\n\n### Navigation\n\n```typescript\nimport { NavigationInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/navigation';\n```\n\nEmits a `browser.navigation` event for the initial page load (hard navigation) and for subsequent in-page navigations (soft navigations), including `history.pushState`, `history.replaceState`, `popstate`, and hash changes. When enabled via config, the [Navigation API](https://developer.mozilla.org/en-US/docs/Web/API/Navigation_API) is used in preference to patching `history`.\n\n#### Configuration\n\n```typescript\nimport {\n  NavigationInstrumentation,\n  defaultSanitizeUrl,\n} from '@opentelemetry/browser-instrumentation/experimental/navigation';\n\nnew NavigationInstrumentation({\n  // Use window.navigation (Navigation API) when available instead of\n  // patching history.pushState / history.replaceState. Default: false.\n  useNavigationApiIfAvailable: true,\n\n  // Rewrite the captured URL before it is emitted. Useful for stripping\n  // path segments, query parameters, or tokens that should not be exported.\n  sanitizeUrl: (url) => defaultSanitizeUrl(url),\n\n  // Mutate the log record before it is emitted (e.g. attach custom attributes).\n  applyCustomLogRecordData: (logRecord) => {\n    logRecord.attributes = {\n      ...logRecord.attributes,\n      'app.route.id': '...',\n    };\n  },\n});\n```\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `useNavigationApiIfAvailable` | `boolean` | `false` | When `true`, subscribes to the Navigation API (`currententrychange`) instead of patching `history.pushState` / `history.replaceState`. Falls back to history patching when the Navigation API is unavailable. |\n| `sanitizeUrl` | `(url: string) => string` | — | Called before the URL is written to `url.full`. |\n| `applyCustomLogRecordData` | `(logRecord: LogRecord) => void` | — | Hook to modify log records before they are emitted. Errors thrown from this hook are caught and logged via the instrumentation diag logger. |\n\n`defaultSanitizeUrl` is exported for composition — it redacts `user:password@` credentials and a set of common sensitive query parameters (`api_key`, `token`, `password`, etc.).\n\n#### Captured Attributes\n\nEach `browser.navigation` event includes:\n\n| Attribute | Description |\n|-----------|-------------|\n| `url.full` | The destination URL (after `sanitizeUrl` if configured). |\n| `browser.navigation.same_document` | `true` for SPA route changes; `false` for full-page loads. |\n| `browser.navigation.hash_change` | `true` when the navigation only adds or changes the URL fragment. |\n| `browser.navigation.type` | One of `push`, `replace`, `reload`, `traverse` (omitted for the initial hard navigation). |\n\n---\n\n### Navigation Timing\n\n```typescript\nimport { NavigationTimingInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/navigation-timing';\n```\n\nProvides automatic instrumentation for [Navigation Timing](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming) in web applications.\n\n---\n\n### Resource Timing\n\n```typescript\nimport { ResourceTimingInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/resource-timing';\n```\n\nProvides automatic instrumentation for [Resource Timing](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming) in web applications, capturing performance metrics for all resources loaded by the browser (scripts, stylesheets, images, fonts, XHR/fetch requests, etc.).\n\n- Uses `requestIdleCallback` to avoid blocking the main thread (with automatic `setTimeout` fallback for Safari)\n- Processes resources in configurable batches\n- Captures historical resources loaded before instrumentation was enabled via buffered mode\n- Flushes pending entries on visibility change to prevent data loss\n\n#### Configuration\n\n```typescript\nnew ResourceTimingInstrumentation({\n  // Process 100 resources per batch (default: 50)\n  batchSize: 100,\n\n  // Wait max 2 seconds for idle time before forcing processing (default: 1000)\n  forceProcessingAfter: 2000,\n\n  // Spend max 100ms processing per idle callback (default: 50)\n  maxProcessingTime: 100,\n\n  // Maximum queue size before forcing immediate flush (default: 1000)\n  maxQueueSize: 2000,\n});\n```\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `batchSize` | `number` | `50` | Number of resources to process per batch. |\n| `forceProcessingAfter` | `number` | `1000` | Maximum time (ms) to wait for an idle callback before forcing processing. |\n| `maxProcessingTime` | `number` | `50` | Maximum time (ms) to spend processing resources per idle callback. |\n| `maxQueueSize` | `number` | `1000` | Maximum number of resources to queue before forcing immediate flush. |\n\n#### Captured Data\n\nEach resource timing event includes:\n\n- **URL** and **Initiator Type** (script, css, img, xmlhttprequest, fetch, etc.)\n- **Duration** — total resource load time\n- **Timing Phases** — DNS lookup, TCP connection, TLS handshake, request, response\n- **Size Metrics** — transfer size, encoded size, decoded size\n- **Protocol** — HTTP version (h1, h2, h3)\n- **Redirect Info** — redirect timing if applicable\n- **Service Worker** — worker start time if intercepted\n- **Render Blocking** — whether the resource blocked rendering (Chromium only)\n\n---\n\n### User Action\n\n```typescript\nimport { UserActionInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/user-action';\n```\n\nProvides automatic instrumentation for user actions in web applications.\n\nCompatible with OpenTelemetry JS API and SDK `1.0+`.\n\n#### Configuration\n\nBy default the instrumentation captures `click` events. You can configure which events to capture by passing an options object:\n\n```typescript\nnew UserActionInstrumentation({\n  // Array of actions to automatically capture. Default: ['click'].\n  autoCapturedActions: [],\n\n  // Mutate the log record before it is emitted (e.g. attach custom attributes).\n  applyCustomLogRecordData: (logRecord) => {\n    logRecord.attributes = {\n      ...logRecord.attributes,\n      'app.user.role': 'admin',\n    };\n  },\n});\n```\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `autoCapturedActions` | `AutoCapturedUserAction[]` | `['click']` | Array of actions to automatically capture. |\n| `applyCustomLogRecordData` | `(logRecord: LogRecord) => void` | — | Hook to modify log records before they are emitted. Errors thrown from this hook are caught and logged via the instrumentation diag logger. |\n\n#### Additional Attributes\n\nData attributes with the prefix `data-otel-` on the target element will be added as additional attributes to the generated log record. For example:\n\n```html\n<button id=\"btn1\" data-otel-user-id=\"12345\" data-otel-feature=\"signup\">\n  Sign Up\n</button>\n```\n\n---\n\n### Web Vitals\n\n```typescript\nimport { WebVitalsInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/web-vitals';\n```\n\nProvides automatic instrumentation for [Core Web Vitals](https://web.dev/vitals/) using the [`web-vitals`](https://github.com/GoogleChrome/web-vitals) library.\n\n#### Configuration\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `includeRawAttribution` | `boolean` | `false` | When true, sets the log record body to the JSON-stringified `web-vitals` attribution object. |\n| `applyCustomLogRecordData` | `(logRecord: LogRecord) => void` | — | Hook to modify log records before they are emitted. |\n\n### Console\n\n```typescript\nimport { ConsoleInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/console';\n```\n\nProvides automatic instrumentation for browser console API calls. By default captures `log`, `warn`, `error`, `info`, and `debug` methods.\n\n#### Configuration\n\n```typescript\nnew ConsoleInstrumentation({\n  // Specify which console methods to capture (default: log, warn, error, info, debug)\n  logMethods: ['error', 'warn'],\n});\n```\n#### Captured Attributes\nEach `browser.console` event includes the following attributes:\n\n| Attribute | Description | Example |\n|-----------|-------------|---------|\n| `browser.console.method` | The console method that was called | `error`, `warn`, `log`, `info`, `debug` |\n\n---\n\n### Errors\n\n```typescript\nimport { ErrorsInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/errors';\n```\n\nEmits an `exception` event for every uncaught error (`window.addEventListener('error', ...)`) and unhandled promise rejection (`window.addEventListener('unhandledrejection', ...)`).\n\n#### Configuration\n\n```typescript\nnew ErrorsInstrumentation({\n  // Return extra attributes to attach to the emitted log record.\n  applyCustomAttributes: (error) => ({\n    'app.error.severity':\n      error instanceof Error && error.name === 'ValidationError'\n        ? 'warning'\n        : 'error',\n  }),\n});\n```\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `applyCustomAttributes` | `(error: Error \\| string) => Attributes` | — | Returns extra attributes to merge onto the emitted log record. Errors thrown from this hook are caught and logged via the instrumentation diag logger. |\n\n#### Captured Attributes\n\nEach `exception` event includes:\n\n| Attribute | Description |\n|-----------|-------------|\n| `exception.type` | The error's `name` (omitted when the thrown value is a string). |\n| `exception.message` | The error's `message`, or the thrown string itself. |\n| `exception.stacktrace` | The error's `stack` (omitted when the thrown value is a string). |\n\n---\n\n### Fetch\n\n```typescript\nimport { FetchInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/fetch';\n```\n\nEmits a Span for every HTTP request made using the `window.fetch` browser API. This instrumentation also propagates the context for distributed traces.\n\n#### Configuration\n\n```typescript\nnew FetchInstrumentation({\n  ignoreUrls: ['https://example.com/api'],\n  propagateTraceHeaderCorsUrls: [/domain.com\\/api.*/],\n  measureRequestSize: true,\n  applyCustomAttributesOnSpan: (span, request, result) => {\n    span.setAttribute('foo', 'bar');\n  },\n});\n```\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `ignoreUrls` | `Array<string \\| RegExp>` | — | List of URLs that we do not want its requests instrumented. You can use strings for a single match or regular expressions to match many. |\n| `propagateTraceHeaderCorsUrls` | `Array<string \\| RegExp>` | — | List of cross origin URLs to appens trace context headers. You can use strings for a single match or regular expressions to match many. |\n| `measureRequestSize` | `boolean` | — | Set it to `true` to add the request size as a Span attribute. |\n| `sanitizeUrl` | `(url: string) => string` | — | Returns the given URL with sensitive fields `REDACTED`. |\n| `requestHook` | `(span: Span, request: Request) => void` | — | Function that allows you to interact with the Span and the Request object before the request starts. |\n| `applyCustomAttributesOnSpan` | `(span: Span, request: Request, result: Response \\| FetchError) => void` | — | Function that allows you to interact with the Span once the request is finished. |\n\n#### Captured Attributes\n\nEach `fetch` Span includes:\n\n| Attribute | Description |\n|-----------|-------------|\n| `http.request.method` | The method of the request in uppercase (GET, POST, PUT, PATCH, QUERY). |\n| `http.request.method_original` | Original HTTP method sent by the client in the request line.. |\n| `url.full` | Absolute URL describing a network resource according to RFC3986 (sanitized if passing `sanitizeUrl` config option). |\n| `server.address` | The hostmane of the request's URL. |\n| `server.port` | The port of the request's URL. |\n| `http.response.status_code` | HTTP response status code. |\n| `error.type` | If request failed. Describes a class of error the operation ended with. |\n\n---\n\n### XHR (XmlHttpRequest)\n\n```typescript\nimport { XhrInstrumentation } from '@opentelemetry/browser-instrumentation/experimental/xhr';\n```\n\nEmits a Span for every HTTP request made using the `window.XmlHttpRequest` browser API. This instrumentation also propagates the context for distributed traces.\n\n#### Configuration\n\n```typescript\nnew XhrInstrumentation({\n  ignoreUrls: ['https://example.com/api'],\n  propagateTraceHeaderCorsUrls: [/domain.com\\/api.*/],\n  measureRequestSize: true,\n  applyCustomAttributesOnSpan: (span, xhr) => {\n    span.setAttribute('foo', 'bar');\n  },\n});\n```\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `ignoreUrls` | `Array<string \\| RegExp>` | — | List of URLs that we do not want its requests instrumented. You can use strings for a single match or regular expressions to match many. |\n| `propagateTraceHeaderCorsUrls` | `Array<string \\| RegExp>` | — | List of cross origin URLs to appens trace context headers. You can use strings for a single match or regular expressions to match many. |\n| `measureRequestSize` | `boolean` | — | Set it to `true` to add the request size as a Span attribute. |\n| `sanitizeUrl` | `(url: string) => string` | — | Returns the given URL with sensitive fields `REDACTED`. |\n| `applyCustomAttributesOnSpan` | `(span: Span, request: Request, result: Response \\| FetchError) => void` | — | Function that allows you to interact with the Span once the request is finished. |\n\n#### Captured Attributes\n\nEach `fetch` Span includes:\n\n| Attribute | Description |\n|-----------|-------------|\n| `http.request.method` | The method of the request in uppercase (GET, POST, PUT, PATCH, QUERY). |\n| `http.request.method_original` | Original HTTP method sent by the client in the request line.. |\n| `url.full` | Absolute URL describing a network resource according to RFC3986 (sanitized if passing `sanitizeUrl` config option). |\n| `server.address` | The hostmane of the request's URL. |\n| `server.port` | The port of the request's URL. |\n| `http.response.status_code` | HTTP response status code. |\n| `error.type` | If request failed. Describes a class of error the operation ended with. |\n\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: <https://opentelemetry.io/>\n- For more about OpenTelemetry Browser: <https://github.com/open-telemetry/opentelemetry-browser>\n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-browser/discussions/landing\n[license-url]: https://github.com/open-telemetry/opentelemetry-browser/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/browser-instrumentation\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fbrowser-instrumentation.svg\n","readmeFilename":"README.md"}