{"_id":"@dreamhorizonorg/pulse-web","_rev":"5-866f15e2fafb602c105a168ca7361365","name":"@dreamhorizonorg/pulse-web","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.1":{"name":"@dreamhorizonorg/pulse-web","version":"0.0.1","keywords":["opentelemetry","otel","rum","real-user-monitoring","observability","monitoring","web-vitals","error-tracking","session-replay","tracing","react","nextjs","browser","performance","pulse"],"author":{"url":"https://dreamhorizon.org","name":"DreamHorizon"},"license":"Apache-2.0","_id":"@dreamhorizonorg/pulse-web@0.0.1","maintainers":[{"name":"dream11-atharva","email":"atharva.kothawade@dream11.com"},{"name":"dfpv","email":"infra@dream11.com"},{"name":"princektripathi","email":"prince.tripathi@dream11.com"},{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"}],"homepage":"https://github.com/dream-horizon-org/pulse/tree/main/pulse-web-otel#readme","bugs":{"url":"https://github.com/dream-horizon-org/pulse/issues"},"dist":{"shasum":"e54f35319fa98e81cfbc0b955e0f6c32396f5264","tarball":"https://registry.npmjs.org/@dreamhorizonorg/pulse-web/-/pulse-web-0.0.1.tgz","fileCount":41,"integrity":"sha512-Rjxukhv9bej8z/pHXoxouK1pumoniVMi3l5srf3UVWBl7rAGzRf5lqr5VDni1fsWSWTlURc7cTAlkU8yATB4Qw==","signatures":[{"sig":"MEUCIQDQUakZkZ4rw2sD1AiJfKnyU3Vl3WDQeEik8ibzgNnIEwIgNRmOv3Npw8J+RKxRh86abOqOBsCW2KWeX0fEYaAFCA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3727986},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./react":{"import":{"types":"./dist/react.d.ts","default":"./dist/react.js"},"require":{"types":"./dist/react.d.cts","default":"./dist/react.cjs"}},"./next-config":{"import":{"types":"./dist/next-config.d.ts","default":"./dist/next-config.js"},"require":{"types":"./dist/next-config.d.cts","default":"./dist/next-config.cjs"}},"./package.json":"./package.json","./react/router":{"import":{"types":"./dist/react-router.d.ts","default":"./dist/react-router.js"},"require":{"types":"./dist/react-router.d.cts","default":"./dist/react-router.cjs"}}},"gitHead":"446b3434f891a84f353f0333ada4279e9b9c5ec6","scripts":{"attw":"attw --pack .","demo":"yarn workspace ecommerce-demo dev","lint":"tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsup","prepack":"yarn build","publint":"publint","test:run":"vitest run","demo:docs":"yarn workspace web-sdk-docs dev","demo:next":"yarn workspace nextjs-demo dev","demo:test":"yarn workspace ecommerce-demo e2e:report","demo:build":"yarn build && yarn workspace ecommerce-demo build","size-limit":"size-limit","demo:install":"yarn install","demo:preview":"yarn demo:build && yarn workspace ecommerce-demo preview","pack:tarball":"yarn build && npm pack","demo:docs:build":"yarn build && yarn workspace web-sdk-docs build","e2e:web-sdk-gates":"yarn workspace ecommerce-demo e2e:web-sdk-gates"},"_npmUser":{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"},"repository":{"url":"git+https://github.com/dream-horizon-org/pulse.git","type":"git","directory":"pulse-web-otel"},"workspaces":["examples/*"],"_npmVersion":"10.8.1","description":"Pulse observability SDK for web — OpenTelemetry-based RUM, sessions, errors, web vitals, network, and click instrumentation","directories":{},"resolutions":{"@types/react":"19.2.14","@types/react-dom":"19.2.3"},"sideEffects":false,"_nodeVersion":"20.16.0","dependencies":{"web-vitals":"^4.2.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.7.1","@opentelemetry/api-logs":"^0.217.0","@opentelemetry/sdk-logs":"^0.217.0","@opentelemetry/resources":"^2.7.1","@opentelemetry/sdk-metrics":"^2.7.1","@opentelemetry/sdk-trace-web":"^2.7.1","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/otlp-transformer":"^0.217.0","@opentelemetry/otlp-exporter-base":"^0.217.0","@opentelemetry/instrumentation-fetch":"^0.217.0","@opentelemetry/exporter-logs-otlp-http":"^0.217.0","@opentelemetry/exporter-trace-otlp-http":"^0.217.0","@opentelemetry/exporter-metrics-otlp-http":"^0.217.0","@opentelemetry/instrumentation-xml-http-request":"^0.217.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.3.1","devDependencies":{"next":"^15.3.1","tsup":"^8.3.0","jsdom":"^25.0.0","react":"^18.3.0","vitest":"^2.1.0","publint":"^0.3.0","react-dom":"^18.3.0","size-limit":"^11.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","react-router-dom":"^6.26.0","@vitest/coverage-v8":"^2.1.0","@testing-library/dom":"^10.4.0","@arethetypeswrong/cli":"^0.18.0","@testing-library/react":"^16.0.0","@size-limit/preset-small-lib":"^11.1.0"},"peerDependencies":{"next":">=14.0.0","react":">=18.0.0","@types/react":">=18.0.0","react-router-dom":">=6.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"@types/react":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pulse-web_0.0.1_1778501251147_0.7903065452849733","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@dreamhorizonorg/pulse-web","version":"0.0.2","keywords":["opentelemetry","otel","rum","real-user-monitoring","observability","monitoring","web-vitals","error-tracking","session-replay","tracing","react","nextjs","browser","performance","pulse"],"author":{"url":"https://dreamhorizon.org","name":"DreamHorizon"},"license":"Apache-2.0","_id":"@dreamhorizonorg/pulse-web@0.0.2","maintainers":[{"name":"dream11-atharva","email":"atharva.kothawade@dream11.com"},{"name":"dfpv","email":"infra@dream11.com"},{"name":"princektripathi","email":"prince.tripathi@dream11.com"},{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"}],"homepage":"https://github.com/dream-horizon-org/pulse/tree/main/pulse-web-otel#readme","bugs":{"url":"https://github.com/dream-horizon-org/pulse/issues"},"dist":{"shasum":"210fa0820dbd893443e29a7c9cd1e6f344b7f85d","tarball":"https://registry.npmjs.org/@dreamhorizonorg/pulse-web/-/pulse-web-0.0.2.tgz","fileCount":41,"integrity":"sha512-1SXrTsG8fydslTK0OyuFML210N0XuCb9VwfMiJ8QrijtUhqDCGHb1Pnyl808xC609NSTxWej5bWLGrP+9mBAfQ==","signatures":[{"sig":"MEUCIG3kc+tGNVKpsjVAhGxZUGGCpNSpxLpPmJQgv4kMCns1AiEApmda3R3iJKx2mr3QBppoEe0yVrTTTbAv37PzU3HNbv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3804810},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./react":{"import":{"types":"./dist/react.d.ts","default":"./dist/react.js"},"require":{"types":"./dist/react.d.cts","default":"./dist/react.cjs"}},"./next-config":{"import":{"types":"./dist/next-config.d.ts","default":"./dist/next-config.js"},"require":{"types":"./dist/next-config.d.cts","default":"./dist/next-config.cjs"}},"./package.json":"./package.json","./react/router":{"import":{"types":"./dist/react-router.d.ts","default":"./dist/react-router.js"},"require":{"types":"./dist/react-router.d.cts","default":"./dist/react-router.cjs"}}},"gitHead":"7778aab610e9b3f5328bf95f68c513592e2361e7","scripts":{"attw":"attw --pack .","demo":"yarn workspace ecommerce-demo dev","lint":"tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsup","prepack":"yarn build","publint":"publint","test:run":"vitest run","demo:docs":"yarn workspace web-sdk-docs dev","demo:next":"yarn workspace nextjs-demo dev","demo:test":"yarn workspace ecommerce-demo e2e:report","demo:build":"yarn build && yarn workspace ecommerce-demo build","size-limit":"size-limit","demo:install":"yarn install","demo:preview":"yarn demo:build && yarn workspace ecommerce-demo preview","pack:tarball":"yarn build && npm pack","demo:docs:build":"yarn build && yarn workspace web-sdk-docs build","e2e:web-sdk-gates":"yarn build && yarn workspace ecommerce-demo e2e:web-sdk-gates"},"_npmUser":{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"},"repository":{"url":"git+https://github.com/dream-horizon-org/pulse.git","type":"git","directory":"pulse-web-otel"},"workspaces":["examples/*"],"_npmVersion":"10.8.2","description":"Pulse observability SDK for web — OpenTelemetry-based RUM, sessions, errors, web vitals, network, and click instrumentation","directories":{},"resolutions":{"@types/react":"19.2.14","@types/react-dom":"19.2.3"},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"web-vitals":"^4.2.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.7.1","@opentelemetry/api-logs":"^0.217.0","@opentelemetry/sdk-logs":"^0.217.0","@opentelemetry/resources":"^2.7.1","@opentelemetry/sdk-metrics":"^2.7.1","@opentelemetry/sdk-trace-web":"^2.7.1","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/otlp-transformer":"^0.217.0","@opentelemetry/otlp-exporter-base":"^0.217.0","@opentelemetry/instrumentation-fetch":"^0.217.0","@opentelemetry/exporter-logs-otlp-http":"^0.217.0","@opentelemetry/exporter-trace-otlp-http":"^0.217.0","@opentelemetry/exporter-metrics-otlp-http":"^0.217.0","@opentelemetry/instrumentation-xml-http-request":"^0.217.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.3.1","devDependencies":{"next":"^15.3.1","tsup":"^8.3.0","jsdom":"^25.0.0","react":"^18.3.0","vitest":"^2.1.0","publint":"^0.3.0","react-dom":"^18.3.0","size-limit":"^11.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","react-router-dom":"^6.26.0","@vitest/coverage-v8":"^2.1.0","@testing-library/dom":"^10.4.0","@arethetypeswrong/cli":"^0.18.0","@testing-library/react":"^16.0.0","@size-limit/preset-small-lib":"^11.1.0"},"peerDependencies":{"next":">=14.0.0","react":">=18.0.0","@types/react":">=18.0.0","react-router-dom":">=6.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"@types/react":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pulse-web_0.0.2_1778679978723_0.5470913313670951","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@dreamhorizonorg/pulse-web","version":"0.0.3","keywords":["opentelemetry","otel","rum","real-user-monitoring","observability","monitoring","web-vitals","error-tracking","session-replay","tracing","react","nextjs","browser","performance","pulse"],"author":{"url":"https://dreamhorizon.org","name":"DreamHorizon"},"license":"Apache-2.0","_id":"@dreamhorizonorg/pulse-web@0.0.3","maintainers":[{"name":"dream11-atharva","email":"atharva.kothawade@dream11.com"},{"name":"dfpv","email":"infra@dream11.com"},{"name":"princektripathi","email":"prince.tripathi@dream11.com"},{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"}],"homepage":"https://github.com/dream-horizon-org/pulse/tree/main/pulse-web-otel#readme","bugs":{"url":"https://github.com/dream-horizon-org/pulse/issues"},"dist":{"shasum":"7bdc0916462679286e4449c253fe872903a19ccd","tarball":"https://registry.npmjs.org/@dreamhorizonorg/pulse-web/-/pulse-web-0.0.3.tgz","fileCount":45,"integrity":"sha512-GpQZrtPLkYZthn9HOhKimr3Vl7JbJKF2PqT9OOA5fbPomvN23v3PW58dmTZDYvVMU3y5ir9YAZOm7pzjGvuAhQ==","signatures":[{"sig":"MEYCIQD3zoGCkXpiQ4izyY0UdniZYNYmz3fRoDhj7tNL7oMFDgIhAOR7syevNBc+Geo7VDkhH+qChDwiZFjc1yqQY4NCHffS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3961038},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./react":{"import":{"types":"./dist/react.d.ts","default":"./dist/react.js"},"require":{"types":"./dist/react.d.cts","default":"./dist/react.cjs"}},"./next-config":{"import":{"types":"./dist/next-config.d.ts","default":"./dist/next-config.js"},"require":{"types":"./dist/next-config.d.cts","default":"./dist/next-config.cjs"}},"./package.json":"./package.json","./react/router":{"import":{"types":"./dist/react-router.d.ts","default":"./dist/react-router.js"},"require":{"types":"./dist/react-router.d.cts","default":"./dist/react-router.cjs"}}},"gitHead":"849a5b64e3829e70f22fe3c550fb23ba6f8df55c","scripts":{"attw":"attw --pack .","demo":"yarn workspace ecommerce-demo dev","lint":"tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsup","prepack":"yarn build","publint":"publint","test:run":"vitest run","demo:docs":"yarn workspace web-sdk-docs dev","demo:next":"yarn workspace nextjs-demo dev","demo:test":"yarn workspace ecommerce-demo e2e:report","demo:build":"yarn build && yarn workspace ecommerce-demo build","size-limit":"size-limit","demo:install":"yarn install","demo:preview":"yarn demo:build && yarn workspace ecommerce-demo preview","pack:tarball":"yarn build && npm pack","markdown:lint":"markdownlint-cli2 \"docs/**/*.md\" \"README.md\" \"CLAUDE.md\" \"prd/**/*.md\"","demo:docs:build":"yarn build && yarn workspace web-sdk-docs build","e2e:web-sdk-gates":"yarn build && yarn workspace ecommerce-demo e2e:web-sdk-gates","markdown:lint:fix":"markdownlint-cli2 --fix \"docs/**/*.md\" \"README.md\" \"CLAUDE.md\" \"prd/**/*.md\"","check:audit-index-sync":"cmp -s ../.claude/skills/web-otel-spec-implementation-audit/audit-index.json ../.cursor/skills/web-otel-spec-implementation-audit/audit-index.json || (echo 'audit-index.json out of sync between .claude and .cursor skills trees' && exit 1)"},"_npmUser":{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"},"repository":{"url":"git+https://github.com/dream-horizon-org/pulse.git","type":"git","directory":"pulse-web-otel"},"workspaces":["examples/*"],"_npmVersion":"10.8.2","description":"Pulse observability SDK for web — OpenTelemetry-based RUM, sessions, errors, web vitals, network, and click instrumentation","directories":{},"resolutions":{"vite":"5.4.21","@types/react":"19.2.14","@types/react-dom":"19.2.3"},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"web-vitals":"^5.2.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.7.1","@opentelemetry/api-logs":"^0.217.0","@opentelemetry/sdk-logs":"^0.217.0","@opentelemetry/resources":"^2.7.1","@opentelemetry/sdk-metrics":"^2.7.1","@opentelemetry/sdk-trace-web":"^2.7.1","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/otlp-transformer":"^0.217.0","@opentelemetry/otlp-exporter-base":"^0.217.0","@opentelemetry/instrumentation-fetch":"^0.217.0","@opentelemetry/exporter-logs-otlp-http":"^0.217.0","@opentelemetry/exporter-trace-otlp-http":"^0.217.0","@opentelemetry/exporter-metrics-otlp-http":"^0.217.0","@opentelemetry/instrumentation-xml-http-request":"^0.217.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.3.1","devDependencies":{"next":"^15.3.1","tsup":"^8.3.0","vite":"5.4.21","jsdom":"^25.0.0","react":"^18.3.0","vitest":"^2.1.0","publint":"^0.3.0","react-dom":"^18.3.0","size-limit":"^11.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","react-router-dom":"^6.26.0","markdownlint-cli2":"^0.17.2","@vitest/coverage-v8":"^2.1.0","@testing-library/dom":"^10.4.0","@arethetypeswrong/cli":"^0.18.0","@testing-library/react":"^16.0.0","@size-limit/preset-small-lib":"^11.1.0"},"peerDependencies":{"next":">=14.0.0","react":">=18.0.0","@types/react":">=18.0.0","react-router-dom":">=6.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"@types/react":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pulse-web_0.0.3_1778851509897_0.014004868798664027","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@dreamhorizonorg/pulse-web","version":"0.0.4","keywords":["opentelemetry","otel","rum","real-user-monitoring","observability","monitoring","web-vitals","error-tracking","session-replay","tracing","react","nextjs","browser","performance","pulse"],"author":{"url":"https://dreamhorizon.org","name":"DreamHorizon"},"license":"Apache-2.0","_id":"@dreamhorizonorg/pulse-web@0.0.4","maintainers":[{"name":"dream11-atharva","email":"atharva.kothawade@dream11.com"},{"name":"dfpv","email":"infra@dream11.com"},{"name":"princektripathi","email":"prince.tripathi@dream11.com"},{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"}],"homepage":"https://github.com/dream-horizon-org/pulse/tree/main/pulse-web-otel#readme","bugs":{"url":"https://github.com/dream-horizon-org/pulse/issues"},"dist":{"shasum":"49e5dcd4e562302c59bce0d1bdb6dc42c6a45b9e","tarball":"https://registry.npmjs.org/@dreamhorizonorg/pulse-web/-/pulse-web-0.0.4.tgz","fileCount":45,"integrity":"sha512-/wU2auJUkTNRWcksBOSeXogc9hbzUOoruWauXyQKsi1dY//NiruYiBW+0Uy0s5F3DVOIS/gED69lEjcOvfbmAA==","signatures":[{"sig":"MEQCIDC3kYyIQH/opWIYgcTM/I6u5x8cB4yW7ZVxiylIi4yCAiBV/yLGh+/HWT7hKBm1OWzJlQTN/7l8hVSJgAH4HRXb7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4058302},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.13.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./react":{"import":{"types":"./dist/react.d.ts","default":"./dist/react.js"},"require":{"types":"./dist/react.d.cts","default":"./dist/react.cjs"}},"./next-config":{"import":{"types":"./dist/next-config.d.ts","default":"./dist/next-config.js"},"require":{"types":"./dist/next-config.d.cts","default":"./dist/next-config.cjs"}},"./package.json":"./package.json","./react/router":{"import":{"types":"./dist/react-router.d.ts","default":"./dist/react-router.js"},"require":{"types":"./dist/react-router.d.cts","default":"./dist/react-router.cjs"}}},"gitHead":"d8c204b7d364c66f6a4b5f1f03b63ed406ecd9f3","scripts":{"attw":"attw --pack .","demo":"yarn workspace ecommerce-demo dev","lint":"tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsup","prepack":"yarn build","publint":"publint","test:run":"vitest run","demo:docs":"yarn workspace web-sdk-docs dev","demo:next":"yarn workspace nextjs-demo dev","demo:test":"yarn workspace ecommerce-demo e2e:report","demo:build":"yarn build && yarn workspace ecommerce-demo build","size-limit":"size-limit","ci:pr-checks":"bash scripts/ci-pr-checks.sh","demo:install":"yarn install","demo:preview":"yarn demo:build && yarn workspace ecommerce-demo preview","pack:tarball":"yarn build && npm pack","markdown:lint":"markdownlint-cli2 \"docs/**/*.md\" \"README.md\" \"CLAUDE.md\" \"prd/**/*.md\"","demo:docs:build":"yarn build && yarn workspace web-sdk-docs build","e2e:web-sdk-gates":"yarn build && yarn workspace ecommerce-demo e2e:web-sdk-gates","markdown:lint:fix":"markdownlint-cli2 --fix \"docs/**/*.md\" \"README.md\" \"CLAUDE.md\" \"prd/**/*.md\"","check:audit-index-sync":"cmp -s ../.claude/skills/web-otel-spec-implementation-audit/audit-index.json ../.cursor/skills/web-otel-spec-implementation-audit/audit-index.json || (echo 'audit-index.json out of sync between .claude and .cursor skills trees' && exit 1)"},"_npmUser":{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"},"repository":{"url":"git+https://github.com/dream-horizon-org/pulse.git","type":"git","directory":"pulse-web-otel"},"workspaces":["examples/*"],"_npmVersion":"10.8.2","description":"Pulse observability SDK for web — OpenTelemetry-based RUM, sessions, errors, web vitals, network, and click instrumentation","directories":{},"resolutions":{"vite":"5.4.21","@types/react":"19.2.14","@types/react-dom":"19.2.3"},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"web-vitals":"^5.2.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.7.1","@opentelemetry/api-logs":"^0.217.0","@opentelemetry/sdk-logs":"^0.217.0","@opentelemetry/resources":"^2.7.1","@opentelemetry/sdk-metrics":"^2.7.1","@opentelemetry/sdk-trace-web":"^2.7.1","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/otlp-transformer":"^0.217.0","@opentelemetry/otlp-exporter-base":"^0.217.0","@opentelemetry/instrumentation-fetch":"^0.217.0","@opentelemetry/exporter-logs-otlp-http":"^0.217.0","@opentelemetry/exporter-trace-otlp-http":"^0.217.0","@opentelemetry/exporter-metrics-otlp-http":"^0.217.0","@opentelemetry/instrumentation-xml-http-request":"^0.217.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.3.1","devDependencies":{"next":"^15.3.1","tsup":"^8.3.0","vite":"5.4.21","jsdom":"^25.0.0","react":"^18.3.0","vitest":"^2.1.0","publint":"^0.3.0","react-dom":"^18.3.0","size-limit":"^11.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","react-router-dom":"^6.26.0","markdownlint-cli2":"^0.17.2","@vitest/coverage-v8":"^2.1.0","@testing-library/dom":"^10.4.0","@arethetypeswrong/cli":"^0.18.0","@testing-library/react":"^16.0.0","@size-limit/preset-small-lib":"^11.1.0"},"peerDependencies":{"next":">=14.0.0","react":">=18.0.0","@types/react":">=18.0.0","react-router-dom":">=6.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"@types/react":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pulse-web_0.0.4_1779187496063_0.6124950681864121","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@dreamhorizonorg/pulse-web","version":"0.0.5","description":"Pulse observability SDK for web — OpenTelemetry-based RUM, sessions, errors, web vitals, network, and click instrumentation","keywords":["opentelemetry","otel","rum","real-user-monitoring","observability","monitoring","web-vitals","error-tracking","session-replay","tracing","react","nextjs","browser","performance","pulse"],"homepage":"https://github.com/dream-horizon-org/pulse/tree/main/pulse-web-otel#readme","repository":{"type":"git","url":"git+https://github.com/dream-horizon-org/pulse.git","directory":"pulse-web-otel"},"bugs":{"url":"https://github.com/dream-horizon-org/pulse/issues"},"author":{"name":"DreamHorizon","url":"https://dreamhorizon.org"},"license":"Apache-2.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"type":"module","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./react":{"import":{"types":"./dist/react.d.ts","default":"./dist/react.js"},"require":{"types":"./dist/react.d.cts","default":"./dist/react.cjs"}},"./react/router":{"import":{"types":"./dist/react-router.d.ts","default":"./dist/react-router.js"},"require":{"types":"./dist/react-router.d.cts","default":"./dist/react-router.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./next-config":{"import":{"types":"./dist/next-config.d.ts","default":"./dist/next-config.js"},"require":{"types":"./dist/next-config.d.cts","default":"./dist/next-config.cjs"}}},"workspaces":["examples/*"],"packageManager":"yarn@4.3.1","scripts":{"build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsup","test":"vitest","test:run":"vitest run","lint":"tsc --noEmit","check:audit-index-sync":"cmp -s ../.claude/skills/web-otel-spec-implementation-audit/audit-index.json ../.cursor/skills/web-otel-spec-implementation-audit/audit-index.json || (echo 'audit-index.json out of sync between .claude and .cursor skills trees' && exit 1)","markdown:lint":"markdownlint-cli2 \"docs/**/*.md\" \"README.md\" \"CLAUDE.md\" \"prd/**/*.md\"","markdown:lint:fix":"markdownlint-cli2 --fix \"docs/**/*.md\" \"README.md\" \"CLAUDE.md\" \"prd/**/*.md\"","size-limit":"size-limit","publint":"publint","attw":"attw --pack .","prepack":"yarn build","pack:tarball":"yarn build && npm pack","demo":"yarn workspace ecommerce-demo dev","demo:docs":"yarn workspace web-sdk-docs dev","demo:build":"yarn build && yarn workspace ecommerce-demo build","demo:docs:build":"yarn build && yarn workspace web-sdk-docs build","demo:preview":"yarn demo:build && yarn workspace ecommerce-demo preview","demo:install":"yarn install","demo:test":"yarn workspace ecommerce-demo e2e:report","e2e:web-sdk-gates":"yarn build && yarn workspace ecommerce-demo e2e:web-sdk-gates","ci:pr-checks":"bash scripts/ci-pr-checks.sh","demo:next":"yarn workspace nextjs-demo dev"},"dependencies":{"@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.217.0","@opentelemetry/core":"^2.7.1","@opentelemetry/exporter-logs-otlp-http":"^0.217.0","@opentelemetry/exporter-metrics-otlp-http":"^0.217.0","@opentelemetry/exporter-trace-otlp-http":"^0.217.0","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/instrumentation-fetch":"^0.217.0","@opentelemetry/instrumentation-xml-http-request":"^0.217.0","@opentelemetry/otlp-exporter-base":"^0.217.0","@opentelemetry/otlp-transformer":"^0.217.0","@opentelemetry/resources":"^2.7.1","@opentelemetry/sdk-logs":"^0.217.0","@opentelemetry/sdk-metrics":"^2.7.1","@opentelemetry/sdk-trace-web":"^2.7.1","web-vitals":"^5.2.0"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.0","@size-limit/preset-small-lib":"^11.1.0","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.0.0","@types/node":"^22.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","@vitest/coverage-v8":"^2.1.0","jsdom":"^25.0.0","markdownlint-cli2":"^0.17.2","next":"^15.3.1","publint":"^0.3.0","react":"^18.3.0","react-dom":"^18.3.0","react-router-dom":"^6.26.0","size-limit":"^11.1.0","tsup":"^8.3.0","typescript":"^5.6.0","vite":"5.4.21","vitest":"^2.1.0"},"engines":{"node":">=18.13.0"},"peerDependencies":{"@types/react":">=18.0.0","next":">=14.0.0","react":">=18.0.0","react-router-dom":">=6.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true},"next":{"optional":true},"react":{"optional":true},"react-router-dom":{"optional":true}},"resolutions":{"@types/react":"19.2.14","@types/react-dom":"19.2.3","vite":"5.4.21"},"_id":"@dreamhorizonorg/pulse-web@0.0.5","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XuUSw4vvn9zawzMmWjZQEcShi/jaNOIWrPYMAduw/lJXsUoOOclEsz6O+bt0w/8jCfGenOFWzaNHt1y2ni2v0w==","shasum":"0edede8979a043ea886ee077c7b4342190e4c059","tarball":"https://registry.npmjs.org/@dreamhorizonorg/pulse-web/-/pulse-web-0.0.5.tgz","fileCount":45,"unpackedSize":4113088,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICr2/JJf3jYXuTe6aNp7FjtM8CuTD76Rzce2ceVM+3mnAiEAxIbdkFzG2hA7iQj4PoR5OBMBh3y7a2yH2bHpXUswokQ="}]},"_npmUser":{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"},"directories":{},"maintainers":[{"name":"dream11-atharva","email":"atharva.kothawade@dream11.com"},{"name":"dfpv","email":"infra@dream11.com"},{"name":"princektripathi","email":"prince.tripathi@dream11.com"},{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pulse-web_0.0.5_1779785246561_0.7294422089485746"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-11T12:07:30.919Z","modified":"2026-05-26T08:47:26.931Z","0.0.1":"2026-05-11T12:07:31.406Z","0.0.2":"2026-05-13T13:46:18.943Z","0.0.3":"2026-05-15T13:25:10.125Z","0.0.4":"2026-05-19T10:44:56.233Z","0.0.5":"2026-05-26T08:47:26.762Z"},"bugs":{"url":"https://github.com/dream-horizon-org/pulse/issues"},"author":{"name":"DreamHorizon","url":"https://dreamhorizon.org"},"license":"Apache-2.0","homepage":"https://github.com/dream-horizon-org/pulse/tree/main/pulse-web-otel#readme","keywords":["opentelemetry","otel","rum","real-user-monitoring","observability","monitoring","web-vitals","error-tracking","session-replay","tracing","react","nextjs","browser","performance","pulse"],"repository":{"type":"git","url":"git+https://github.com/dream-horizon-org/pulse.git","directory":"pulse-web-otel"},"description":"Pulse observability SDK for web — OpenTelemetry-based RUM, sessions, errors, web vitals, network, and click instrumentation","maintainers":[{"name":"dream11-atharva","email":"atharva.kothawade@dream11.com"},{"name":"dfpv","email":"infra@dream11.com"},{"name":"princektripathi","email":"prince.tripathi@dream11.com"},{"name":"shubhamguptadream11","email":"shubham.gupta@dream11.com"}],"readme":"# @dreamhorizonorg/pulse-web\n\nOpenTelemetry-based web SDK for Pulse RUM telemetry.\n\nCaptures:\n\n- session lifecycle\n- custom events\n- non-fatal and crash signals\n- network and browser instrumentation\n- interaction spans from backend-provided interaction configs\n\n## Install\n\n```bash\nyarn add @dreamhorizonorg/pulse-web\n```\n\n## Integrating Pulse Web SDK\n\n### 1. Install\n\n```bash\nnpm install @dreamhorizonorg/pulse-web\n```\n\n### 2. Wrap your app with PulseProvider\n\n`PulseProvider` from `@dreamhorizonorg/pulse-web/react` does everything in one shot:\n\n- calls `Pulse.init` on mount\n- catches React render errors via the built-in `PulseErrorBoundary`\n- exposes the SDK via context\n\n**React (CRA / Vite):**\n\n```tsx\nimport { PulseProvider } from '@dreamhorizonorg/pulse-web/react'\nimport { PulseDataCollectionConsent } from '@dreamhorizonorg/pulse-web'\n\nconst config = {\n  apiKey: 'your-project-key',\n  serviceName: 'my-app',\n  dataCollectionState: PulseDataCollectionConsent.ALLOWED,\n}\n\n<PulseProvider config={config}>\n  <App />\n</PulseProvider>\n```\n\n**Next.js App Router:** the compiled SDK dist does not include `\"use client\"`, so `PulseProvider` cannot be imported directly from a Server Component. Create a thin wrapper first:\n\n```tsx\n// app/providers/PulseProvider.tsx\n'use client'\nimport { PulseProvider as SDKPulseProvider } from '@dreamhorizonorg/pulse-web/react'\n\nexport function PulseProvider({ config, children }: { config: any; children: React.ReactNode }) {\n  return <SDKPulseProvider config={config} shutdownOnUnmount={false}>{children}</SDKPulseProvider>\n}\n```\n\nThen use the wrapper in `layout.tsx`:\n\n```tsx\n// app/layout.tsx\nimport { PulseProvider } from './providers/PulseProvider'\nimport { PulseDataCollectionConsent } from '@dreamhorizonorg/pulse-web'\n\nconst config = {\n  apiKey: process.env.NEXT_PUBLIC_PULSE_API_KEY,\n  serviceName: 'my-app',\n  dataCollectionState: PulseDataCollectionConsent.ALLOWED,\n}\n\nexport default function RootLayout({ children }) {\n  return (\n    <html lang=\"en\">\n      <body>\n        <PulseProvider config={config}>\n          {children}\n        </PulseProvider>\n      </body>\n    </html>\n  )\n}\n```\n\nAfter mount, these signals auto-capture with zero extra work:\n\n| Signal | Trigger |\n|---|---|\n| `session.start` / `session.end` | Tab open / close |\n| `network.<status>` (e.g. `network.200`) | Every `fetch` / `XMLHttpRequest` — client span `pulse.type` from HTTP status, not the literal `http` |\n| `app.click` | User clicks anywhere |\n| `web_vital` | LCP, CLS, INP, TTFB, FCP |\n| `screen_load` | Navigation timing (incl. `tti` on initial load when available) |\n| `device.crash` | Uncaught JS errors + React render errors (via built-in `PulseErrorBoundary`) |\n\n### 3. Screen tracking (Next.js App Router only)\n\n`useRouterTracking` from `@dreamhorizonorg/pulse-web/react` requires `react-router-dom` — it won't work in Next.js. Add this null-rendering component once inside `<PulseProvider>` in `layout.tsx`:\n\n```tsx\n// app/components/PulsePageView.tsx\n'use client'\nimport { usePathname } from 'next/navigation'\nimport { useEffect } from 'react'\nimport { Pulse } from '@dreamhorizonorg/pulse-web'\n\nexport function PulsePageView() {\n  const pathname = usePathname()\n  useEffect(() => { Pulse.setScreenName(pathname) }, [pathname])\n  return null\n}\n```\n\n```tsx\n// layout.tsx — add inside <PulseProvider>\n<PulseProvider config={config}>\n  <PulsePageView />\n  {children}\n</PulseProvider>\n```\n\nFor React Router apps, import **`useRouterTracking`** or **`<PulseRouterEvents />`** from **`@dreamhorizonorg/pulse-web/react/router`** (not the bare `/react` entry — that path avoids a hard `react-router-dom` dependency for apps that do not use React Router):\n\n```tsx\nimport { useRouterTracking } from '@dreamhorizonorg/pulse-web/react/router'\nuseRouterTracking() // inside a component rendered within <BrowserRouter>\n```\n\n**Naming note — `beforeSendData`:** RUM docs often say “`beforeSend`”. Pulse\nuses the config key **`beforeSendData`** for parity with Android; inner\ncallbacks still use names like **`beforeSend`** / **`beforeSendSpan`**. See\n[`docs/instrumentations/integration/SPEC.md`](docs/instrumentations/integration/SPEC.md) §5.9.\n\n## Public API\n\n- `Pulse.init(config)`\n- `Pulse.shutdown()`\n- `Pulse.isInitialized()`\n- `Pulse.setScreenName(name)`\n- `Pulse.trackEvent(name, attrs?)`\n- `Pulse.reportException(error, attrs?)`\n- `Pulse.reportDeviceCrash(error, attrs?)`\n- `Pulse.trackNonFatal(name, attrs?)`\n\n## Interaction config contract\n\nInteraction configs are fetched from:\n\n- **Local/dev** (API keys matching `default-project*_*`): `{collector→8080}/v1/interaction-configs/` with `X-API-KEY`\n- **Prod** (any other API key): `https://pulse-otel-collector.pulse-ux.com/config/projects/{projectId}/interaction-config.json` (no `/v1/interaction-configs/` — search DevTools for `interaction-config.json`)\n\nRemote `pulse-config.json` may set `features[].interaction.sessionSampleRate` < 1 for `pulse_web_js`; interaction **spans** stay gated, but the SDK still loads interaction configs when `instrumentations.interactions` is not `enabled: false`.\n\nWeb runtime now uses backend/Android wire shape directly:\n\n- `id: number`\n- `description: string`\n- event props use `name` (not `key`)\n- operators: `EQUALS | NOTEQUALS | CONTAINS | NOTCONTAINS | STARTSWITH | ENDSWITH`\n- `globalBlacklistedEvents` is an array of event objects\n\n## Local development\n\n```bash\n# Node >= 18.13\ncorepack enable\nyarn install\n\n# Build SDK\nyarn build\n\n# Run demo apps\nyarn demo          # React ecommerce-demo → localhost:3002\nyarn demo:docs     # Vanilla web-sdk-docs → localhost:3003\n\n# Typecheck + unit tests\nyarn lint\nyarn test:run\n```\n\n## E2E (demo)\n\n```bash\n# One-time browser install\ncd examples/ecommerce-demo\nyarn playwright install --with-deps chromium firefox webkit\n\n# From SDK root\ncd ../..\nyarn workspace ecommerce-demo e2e:m2-interactions\nyarn workspace ecommerce-demo e2e:web-sdk-gates\n```\n\n## Useful docs\n\n- **PRDs (planning):** [`docs/prd/README.md`](docs/prd/README.md) — feature PRDs under `docs/prd/`; `PRD.md` in that folder symlinks to the active Ralph PRD when applicable\n- **Integration entry:** [`docs/instrumentations/integration/SPEC.md`](docs/instrumentations/integration/SPEC.md)\n- **SDK core:** [`docs/sdk-core/SPEC.md`](docs/sdk-core/SPEC.md) — topic SPECs under `docs/sdk-core/<topic>/SPEC.md` (e.g. [`data-contract/SPEC.md`](docs/sdk-core/data-contract/SPEC.md), [`architecture-and-bootstrap/SPEC.md`](docs/sdk-core/architecture-and-bootstrap/SPEC.md)); **session:** [`docs/instrumentations/session/SPEC.md`](docs/instrumentations/session/SPEC.md)\n- **Per-feature specs:** [`docs/instrumentations/`](docs/instrumentations/)\n- **Publishing (maintainers):** [`docs/publishing/SPEC.md`](docs/publishing/SPEC.md) · [`docs/publishing/QUICKSTART.md`](docs/publishing/QUICKSTART.md) · [`docs/publishing/PUBLISHING.md`](docs/publishing/PUBLISHING.md)\n","readmeFilename":"README.md"}