{"_id":"@arms/rum-electron","_rev":"13-3be2fd93868d4f41fdfc248eebfff1cf","name":"@arms/rum-electron","dist-tags":{"latest":"0.0.9","beta":"0.0.8-beta.4"},"versions":{"0.0.1":{"name":"@arms/rum-electron","version":"0.0.1","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.1","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"fb992b4c50d39dcd0272e346c81d4a85d5645fe1","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.1.tgz","fileCount":9,"integrity":"sha512-JiB6SUl/6inFYKgstEgpLzwWcCaO1+7Jcdp4GK7o5yF1We0hAdErQn3yHZgWUM6DHWXARyrU5dwXOSUFHwplCA==","signatures":[{"sig":"MEUCIQDkXDKiwdNmq4L/jI4U6dVBkzx7J00XqKEouoHG3Mt38AIgFOV1zILvboiTAQMuDzWIOASAuwm1RfJitSl6OseQCHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3782926},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":"./dist/preload.cjs"},"gitHead":"de02a964a32dbf6065b5285433042f4ba678cfa0","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","prepublishOnly":"npm run build","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.2","description":"ARMS RUM SDK for Electron (monitoring layer; implementation pending)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@arms/rum-core":"^0.1.4","@arms/rum-browser":"^0.1.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0"},"peerDependencies":{"electron":">=28.0.0"},"peerDependenciesMeta":{"electron":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.1_1778147728229_0.8685990286422502","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@arms/rum-electron","version":"0.0.2","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.2","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"7d17b613d758c39c1613112c005295a9dfe2c1d5","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.2.tgz","fileCount":9,"integrity":"sha512-Aj7qCad/evi/Rt/7MWHaVT0ej2gLycUsu5b57Fu53xg1a2m312ISG4DBFVnnCZbfA1yI1JK2V8bz4gz/0XcvUw==","signatures":[{"sig":"MEQCIBHRVDAKpAJ7fvNoiypB2ReeTcSdSYxnHi+ZoywmfsEZAiA8N3VN0asxdPE3LSJOTwDvQwMRlxC3ag5mHsH6/3WPDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3790069},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":"./dist/preload.cjs"},"gitHead":"5c6b2a7e91f13f7e565d48211aa8f10f71384220","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","prepublishOnly":"PROD=true npm run build","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.2","description":"ARMS RUM SDK for Electron (monitoring layer; implementation pending)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@arms/rum-core":"0.1.4","@arms/rum-browser":"0.1.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0"},"peerDependencies":{"electron":">=28.0.0"},"peerDependenciesMeta":{"electron":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.2_1778489397958_0.5918796155216526","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@arms/rum-electron","version":"0.0.3","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.3","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"c017c2430ace8674d2e77b9c60694d60f8d10d6c","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.3.tgz","fileCount":9,"integrity":"sha512-ieiMhVQNpkSEv3tgwfQZqhvy8p9cyhl3B7AS4j+8kikDcriNOA5xE0d8JwpItzfOm7kfeYqGbZYwZMF45EDl4Q==","signatures":[{"sig":"MEQCIAbZdbrr2R2uFgtK1sE4ulBtD8Pz45aZd5UyliBLrLptAiAPKgGsu4e4Y7W+7fJDjc50hwUHX943He8VxMfNMBO+Jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3814685},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":"./dist/preload.cjs"},"gitHead":"d472fec87e50b4bceb552800da99a8e7510bf1e1","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","prepublishOnly":"PROD=true npm run build","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.2","description":"ARMS RUM SDK for Electron (monitoring layer; implementation pending)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@arms/rum-core":"0.1.4","@arms/rum-browser":"0.1.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"electron":{"optional":true},"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.3_1779362442368_0.3915045922510889","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@arms/rum-electron","version":"0.0.4","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.4","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"98302b3e390d050cd5596a47c88f39e12486de24","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.4.tgz","fileCount":9,"integrity":"sha512-7pVT/ZbLcbzkIyGStre00H5QkTZwFu/tYXQLhcNsd2+572o09ZowmnErIRVSiOcNJN1aykjLJdDH5S90pVnF/A==","signatures":[{"sig":"MEUCIQCOvjBPchPH/AyEkFDOMbu/0kL+nmUfyPTBrkb+gbBVzwIgeviDj6myxlKc9gri4akg63VYgHX22CKB11NxNjEVlto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3835145},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":"./dist/preload.cjs"},"gitHead":"19efb7b001b22b9bcbb042c70f1728a37d62e7e5","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","prepublishOnly":"PROD=true npm run build","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.2","description":"ARMS RUM SDK for Electron (monitoring layer; implementation pending)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@arms/rum-core":"0.1.4","@arms/rum-browser":"0.1.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"electron":{"optional":true},"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.4_1780480618713_0.1883477909174358","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@arms/rum-electron","version":"0.0.5","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.5","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"ca4453f6c6f20fd7e20463154840d47ccfbd0468","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.5.tgz","fileCount":13,"integrity":"sha512-Sk1gpyjXE5EsBYrotmiuosUmGdfgoUpn1hMQu8IRX7iqNuuPorrulWAMDN07ZgZSR19mONID42/3hzuX1CIJ1A==","signatures":[{"sig":"MEYCIQD875qanN2CzbLYsglWk9TOXNnDK49gHTPbC22D1IMcawIhAN7bKCo7Z+PPqRERH+Ju6qu6i9iMzzhAVR3rlAsAVBYZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3891273},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"}},"gitHead":"0e5b3dc61671c70e4c26f85e9ee7b1c5357cc6f1","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","start":"npm run build && npm run dev -w @arms/rum-electron-demo","release":"npm run release:check && npm publish --ignore-scripts","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","release:check":"npx tsx scripts/release-check.ts","prepublishOnly":"PROD=true npm run build","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.8","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@arms/rum-core":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0","@playwright/test":"^1.49.0","@arms/rum-browser":"0.1.11"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.5_1783495706339_0.7313046521470254","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@arms/rum-electron","version":"0.0.6","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.6","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"1ee9d974560f427d11cf5cc4070cfe534a31cbb9","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.6.tgz","fileCount":13,"integrity":"sha512-qvkZ+yoQQfGYNdC+LOGoX3IL9+JVFY0GV8kowBirWQaSPcOnXDwfCTK1e/RlzawFl2sU+bEkL/E4MjrkpwLctg==","signatures":[{"sig":"MEYCIQDfaE6nz4O7lxZ8f64AVxpRIXt7p4/8j4FazcRiYY84AwIhAMTNmplnOQcmz2dAjXSdYu1nCiqYR7NjBbCoG9kCbOVa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3891613},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"}},"gitHead":"d91d2098d316280ad81d947b5c2be9b177b4f91d","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","start":"npm run build && npm run dev -w @arms/rum-electron-demo","release":"npm run release:check && npm publish --ignore-scripts","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","release:check":"npx tsx scripts/release-check.ts","prepublishOnly":"PROD=true npm run build","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.8","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@arms/rum-core":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0","@playwright/test":"^1.49.0","@arms/rum-browser":"0.1.11"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.6_1783931532894_0.10502723952875903","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@arms/rum-electron","version":"0.0.7","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.7","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"3a9e75512c89877233404a1093f48e8faba60a4a","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.7.tgz","fileCount":13,"integrity":"sha512-1gThd6oWkzkK+6YPF/LOQal82c6VAXhRwdSpNXONKqFJOYtQLaLxHT5OR/iafAaIot8ePU85c+2+A8tGZ2WZ7A==","signatures":[{"sig":"MEUCIC6G/56Z7tb9PWAg4bj5dfl7tkQN4a/0WSCptz4DK59aAiEAxt3cAYB5ivxFfszCJpCwnFsoEYlZ+cBQn9IwmNA3vRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3895745},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"}},"gitHead":"bd25cb9755aee4042255b28782329aa85883e30b","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","start":"npm run build && npm run dev -w @arms/rum-electron-demo","release":"npm run release:check && npm publish --ignore-scripts","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","release:check":"npx tsx scripts/release-check.ts","prepublishOnly":"PROD=true npm run build","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.8","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@arms/rum-core":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0","@playwright/test":"^1.49.0","@arms/rum-browser":"0.1.11"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.7_1784095577924_0.6679208896201847","host":"s3://npm-registry-packages-npm-production"}},"0.0.8-beta.0":{"name":"@arms/rum-electron","version":"0.0.8-beta.0","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.8-beta.0","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"59aa135a9dea5675a5a570130e4998d68b968895","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.8-beta.0.tgz","fileCount":13,"integrity":"sha512-RIhb3bbHl3dMs39XT5h71HCdN6SpHoNjN7GfwN4sthbsV1N6d3OqMn7MFQIMBIoAGsfCR1jvXKXT4I6ZRADnFQ==","signatures":[{"sig":"MEUCIBEZyCpTe5xLNq0W4UzuHczyGfoatPznO3xVt+Kj/1sFAiEA0K1Z0D/6l0uPfBN/v1bmQ24EoWMJ+BS5RdjbDUI6mFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3907438},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"}},"gitHead":"9c3189d7543589b6b3ee16c774c2df6cb6113da6","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","start":"npm run build && npm run dev -w @arms/rum-electron-demo","release":"npm run release:check && npm publish --ignore-scripts","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","release:check":"npx tsx scripts/release-check.ts","prepublishOnly":"PROD=true npm run build","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"9.6.7","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","directories":{},"_nodeVersion":"20.3.1","dependencies":{"@arms/rum-core":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0","@playwright/test":"^1.49.0","@arms/rum-browser":"0.1.11"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.8-beta.0_1785129708450_0.670794092608404","host":"s3://npm-registry-packages-npm-production"}},"0.0.8-beta.1":{"name":"@arms/rum-electron","version":"0.0.8-beta.1","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.8-beta.1","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"96cc6fa1bf59ceda153e2243d794d5177441344b","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.8-beta.1.tgz","fileCount":13,"integrity":"sha512-f9GF6S/KUhUU+K6eBanZRGj9gsUL34Bu/gfPzNlETW0bQhhUexA5n8YYWIayuz47iDDbsTr99UJbq2Q3a9ARoA==","signatures":[{"sig":"MEUCIQDeYhJL/N9DcGHf9Yw2FIScbc/1/vFyYLuznLg6ZHlMCwIgT8nhnmZDVGHN5f2f50sawJ9w0BchHuMINX+BXCfh+a8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3908206},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"}},"gitHead":"57b9323a03dca3395edad55bec6567f1d510e339","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","start":"npm run build && npm run dev -w @arms/rum-electron-demo","release":"npm run release:check && npm publish --ignore-scripts","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","release:check":"npx tsx scripts/release-check.ts","prepublishOnly":"PROD=true npm run build","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"9.6.7","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","directories":{},"_nodeVersion":"20.3.1","dependencies":{"@arms/rum-core":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0","@playwright/test":"^1.49.0","@arms/rum-browser":"0.1.11"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.8-beta.1_1785297138500_0.39690436132214835","host":"s3://npm-registry-packages-npm-production"}},"0.0.8-beta.2":{"name":"@arms/rum-electron","version":"0.0.8-beta.2","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.8-beta.2","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"b0f3809ab6f68e264bfbd8cc2571f78367ef7277","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.8-beta.2.tgz","fileCount":13,"integrity":"sha512-pZuN7wdBMj7wbMWtwoqgb0PsbcJLOl1n5EUgiLj+SMMHvfT+EQzCPzA46H64RP2TsjGUphgho9PRjmlLN3E1Lg==","signatures":[{"sig":"MEUCIAF2XXjD2rTlDhUGIg+ewA9rHvTt2LXjknqL9bMFF42/AiEA+qqdpMvgH5eKkJryMYUVPioL71ZnLxQXYitoeQurftg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3931951},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"}},"gitHead":"5d59b5834ba3faf0bee8fc600a4525b1a2853c3a","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","start":"npm run build && npm run dev -w @arms/rum-electron-demo","release":"npm run release:check && npm publish --ignore-scripts","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","release:check":"npx tsx scripts/release-check.ts","prepublishOnly":"PROD=true npm run build","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.8","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@arms/rum-core":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0","@playwright/test":"^1.49.0","@arms/rum-browser":"0.1.11"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.8-beta.2_1785741474522_0.8164562956667241","host":"s3://npm-registry-packages-npm-production"}},"0.0.8-beta.3":{"name":"@arms/rum-electron","version":"0.0.8-beta.3","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.8-beta.3","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"518f4fcbb0a2941a6b91346e2f170b515e4ad8e8","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.8-beta.3.tgz","fileCount":13,"integrity":"sha512-8X4kVl8bTQKfQ8q4MJbbkcuIhwLymRT6hfS7MRxP5STp9t3kRzNscPRHLUmxh39D+pziuofJzRNlSSmjextWJA==","signatures":[{"sig":"MEYCIQCGgG5x0zP7WkK15fBck/E6vKbd2DItHAyvfDQpJt2KPAIhAOOGaX68bTTsfH88VxQkn2dQImoZa3+Xv4LYOGXbLTaF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4560811},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"}},"gitHead":"e7fe3f4117e0c8bb04f6f6124104caba4ae41708","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","start":"npm run build && npm run dev -w @arms/rum-electron-demo","release":"npm run release:check && npm publish --ignore-scripts","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","release:check":"npx tsx scripts/release-check.ts","prepublishOnly":"PROD=true npm run build","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.8","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@arms/rum-core":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0","@playwright/test":"^1.49.0","@arms/rum-browser":"0.1.11"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.8-beta.3_1785835973218_0.8613834009909032","host":"s3://npm-registry-packages-npm-production"}},"0.0.8-beta.4":{"name":"@arms/rum-electron","version":"0.0.8-beta.4","keywords":["electron","rum","arms","monitoring","apm"],"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","_id":"@arms/rum-electron@0.0.8-beta.4","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"dist":{"shasum":"e7310cf102af7f409773537d362f5544dc9c5371","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.8-beta.4.tgz","fileCount":13,"integrity":"sha512-OUkHE7csgkCP97pu5nGhkwnDpCtiEjY2pgqJaMzhGaf4wBacW5U2YdDkj2azV7VJgs4xYPhoB+ZUV+0brP56SQ==","signatures":[{"sig":"MEUCIGkphDTeMLCfW6ApQotOm4/+wBZPYMuNs6CFGairM4eKAiEAjKxSwhpcSdPWLfKPchDQchOmJRcXKdIinyi2n6yIbe0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4570441},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"}},"gitHead":"f2a562fb78be4a0af753a0312034f18118514943","scripts":{"dev":"npm run build && npm run dev -w @arms/rum-electron-demo","test":"vitest run","build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","start":"npm run build && npm run dev -w @arms/rum-electron-demo","release":"npm run release:check && npm publish --ignore-scripts","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","build:wasm":"npx tsx scripts/build-minidump-processor.ts","test:watch":"vitest","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","release:check":"npx tsx scripts/release-check.ts","prepublishOnly":"PROD=true npm run build","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo"},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"workspaces":["examples/electron-react","examples/electron-base"],"_npmVersion":"10.9.8","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@arms/rum-core":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.3","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","vite-plugin-dts":"^4.3.0","@playwright/test":"^1.49.0","@arms/rum-browser":"0.1.11"},"peerDependencies":{"electron":">=28.0.0","@trpc/server":"*"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rum-electron_0.0.8-beta.4_1785911345735_0.0790820825431402","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@arms/rum-electron","version":"0.0.9","description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./preload":{"types":"./dist/preload.d.ts","default":"./dist/preload.cjs"},"./browser":{"import":{"types":"./dist/browser.d.ts","default":"./dist/browser.mjs"},"require":{"types":"./dist/browser.d.ts","default":"./dist/browser.js"}}},"scripts":{"build":"rm -rf dist && vite build --config vite.config.preload.ts && vite build --config vite.config.browser.ts && vite build --config vite.config.worker.ts && vite build && cp src/preload/preload.d.ts dist/preload.d.ts && rm -f dist/anr-watchdog-worker.js dist/anr-watchdog-worker.js.map","build:wasm":"npx tsx scripts/build-minidump-processor.ts","prepublishOnly":"PROD=true npm run build","release:check":"npx tsx scripts/release-check.ts","release":"npm run release:check && npm publish --ignore-scripts","test":"vitest run","test:watch":"vitest","start":"npm run build && npm run dev -w @arms/rum-electron-demo","dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:dev":"npm run build && npm run dev -w @arms/rum-electron-demo","example:react:build":"npm run build && npm run build -w @arms/rum-electron-demo","example:react:verify-llm":"npm run verify-llm -w @arms/rum-electron-demo","example:base:dev":"npm run build && npm run dev -w @arms/rum-electron-example-base","test:e2e":"npm run build && npm run build -w @arms/rum-electron-demo && playwright test --config e2e/playwright.config.ts","test:e2e:ui":"playwright test --config e2e/playwright.config.ts --ui","test:e2e:debug":"playwright test --config e2e/playwright.config.ts --debug"},"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"keywords":["electron","rum","arms","monitoring","apm"],"license":"MIT","publishConfig":{"access":"public"},"engines":{"node":">=18.0.0"},"peerDependencies":{"@trpc/server":"*","electron":">=28.0.0"},"peerDependenciesMeta":{"@trpc/server":{"optional":true}},"dependencies":{"@arms/rum-core":"0.1.7"},"devDependencies":{"@arms/rum-browser":"0.1.11","@playwright/test":"^1.49.0","@types/node":"^22.10.0","rollup":"^4.28.0","typescript":"^5.7.2","vite":"^6.0.3","vite-plugin-dts":"^4.3.0","vitest":"^2.1.8"},"workspaces":["examples/electron-react","examples/electron-base"],"_id":"@arms/rum-electron@0.0.9","gitHead":"1eb4e8970a5d1aaf70a96b8c1b13dc79fd28ae0f","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-m1kC//dCvBbFRGEtENNNV5KzjwwJVQPor3rU0EumF8WP+KZOhndX3p4obBNw32MuBnFxHvO8yowgcjBJ7Td1iQ==","shasum":"8994328aa3a67b4baea11faf080af1777038a184","tarball":"https://registry.npmjs.org/@arms/rum-electron/-/rum-electron-0.0.9.tgz","fileCount":13,"unpackedSize":3984141,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDoJYy0T7zMhiO1+24zgk+I6ejVyM00YHNvsFhwbTSgYAIhAIVotnQa+smwem15A3CPlG4SkYYEFMSqQ+JFrj6ewISX"}]},"_npmUser":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"directories":{},"maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rum-electron_0.0.9_1788179064197_0.8194174889612023"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T09:55:28.139Z","modified":"2026-08-31T12:24:24.569Z","0.0.1":"2026-05-07T09:55:28.417Z","0.0.2":"2026-05-11T08:49:58.145Z","0.0.3":"2026-05-21T11:20:42.669Z","0.0.4":"2026-06-03T09:56:58.871Z","0.0.5":"2026-07-08T07:28:26.912Z","0.0.6":"2026-07-13T08:32:13.080Z","0.0.7":"2026-07-15T06:06:18.124Z","0.0.8-beta.0":"2026-07-27T05:21:48.618Z","0.0.8-beta.1":"2026-07-29T03:52:18.730Z","0.0.8-beta.2":"2026-08-03T07:17:54.687Z","0.0.8-beta.3":"2026-08-04T09:32:53.428Z","0.0.8-beta.4":"2026-08-05T06:29:05.938Z","0.0.9":"2026-08-31T12:24:24.356Z"},"author":{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},"license":"MIT","keywords":["electron","rum","arms","monitoring","apm"],"description":"ARMS RUM SDK for Electron – real user monitoring for main & renderer processes","maintainers":[{"name":"fengsir","email":"fengsir@live.com"},{"name":"yunjin4","email":"xiashujin.xsj@alibaba-inc.com"},{"name":"guangli.fj","email":"guangli.fj@alibaba-inc.com"},{"name":"yangling1996","email":"yl260087@alibaba-inc.com"},{"name":"yunyi-alibaba","email":"ly403664@alibaba-inc.com"},{"name":"alibaba_rum_harmony","email":"yanglanxin.ylx@alibaba-inc.com"}],"readme":"# @arms/rum-electron\n\n阿里云 ARMS 用户体验监控 Electron SDK。一次主进程 `init()` 即覆盖主进程与渲染进程：自动采集异常、原生崩溃、HTTP/tRPC、应用启动指标、页面 PV、性能、Web Vitals 等数据，由主进程统一上报。\n\n## 核心特性\n\n- **零配置自动注入**：主进程 `init()` 后，所有 `BrowserWindow` 自动注入 Browser SDK 与 IPC Bridge，渲染进程零改造\n- **统一上报通道**：渲染进程事件经 `arms:rum-bridge` IPC 通道回流至主进程，由主进程统一组织与上报\n- **主进程监控全覆盖**：\n  - 未捕获异常、未处理 Promise 拒绝、`console.error` 拦截\n  - 原生崩溃（集成 WASM `minidump-processor`，解析 `.dmp` 获取完整堆栈与模块）\n  - 应用启动指标（`app ready` 耗时、进程数、主进程 CPU/内存）\n  - HTTP 请求自动采集：`globalThis.fetch` 与 `http`/`https` 模块双层 patch（覆盖 **axios 默认 adapter**、got、node-fetch 等），自动产出 `type='api'` 资源事件，附带 DNS/TCP/TLS/TTFB/下载等细分耗时\n  - tRPC server 端 procedure 调用（`type='rpc'`），通过 `armsRum.instrumentTRPC()` 一行接入\n- **内存与 OOM 监控**：运行时内存水位 + OOM 专项（`RendererOOM` / `MainProcessOOM` 回溯补报 / 双链路去重）+ memory-eviction（`MemoryEviction`，不计崩溃率）+ V8 堆高水位预警（`V8HeapNearOOM`）\n- **渲染进程自动注入**：PV、性能、Web Vitals、白屏、API、长任务等\n- **分布式链路追踪**：内置 `tracing` 配置，支持 W3C tracecontext / B3 / B3 multi / Jaeger / SW8；主进程 fetch、http/https 模块与 tRPC procedure 共享同一份决策\n- **远程配置**：支持 ARMS 控制台下发配置，动态调整采样率、采集器开关等\n\n## 安装\n\n```bash\nnpm install @arms/rum-electron\n```\n\n| 依赖 | 版本要求 | 说明 |\n|------|----------|------|\n| `electron` | `>= 28.0.0` | `peerDependency`（必装），由项目自行安装 |\n| `@trpc/server` | `*` | 仅在使用 `instrumentTRPC()` 时由业务侧安装（optional peer） |\n\n> 运行环境要求 **Node >= 18**、Electron >= 28。需要 Electron 28+ 是因为 SDK 使用 `session.registerPreloadScript()`（v28 新增），低版本会自动回退到 `session.setPreloads()`。\n\n## 快速接入\n\n### 1. 主进程顶层 `import` 并 `init()`\n\n**SDK 必须在 `app.ready` 之前被 `import`**——`src/index.ts` 顶层会调用 `protocol.registerSchemesAsPrivileged()` 注册 `rum-event` 协议（占位用，预留给后续降级通道，不影响功能）。\n\n```typescript\n// main/index.ts —— 文件顶部\nimport armsRum from '@arms/rum-electron';\nimport { app } from 'electron';\n\narmsRum.init({\n  endpoint: '<your-endpoint>',  // 控制台「用户体验监控 > 应用列表」创建应用后获取\n  env: 'prod',                  // 'prod' | 'gray' | 'pre' | 'daily' | 'local'\n  version: '1.0.0',\n});\n\napp.whenReady().then(() => {\n  // 创建 BrowserWindow 等\n});\n```\n\n### 2. 渲染进程零改造\n\n默认 `autoInject: true`：SDK 监听 `web-contents-created`，在每个 `BrowserWindow` 的 `dom-ready` 时机注入 Browser SDK 脚本与 IPC Bridge。渲染进程**既不需要** `import` SDK，**也不需要**修改 preload。\n\n### 3.（可选）验证数据\n\n```typescript\narmsRum.init({\n  endpoint: '<your-endpoint>',\n  beforeReport(bundle) {\n    console.log('[RUM]', bundle);\n    return bundle;     // 返回 falsy（如 undefined）会丢弃整个 bundle 不上报；需保留数据必须 return bundle\n  },\n});\n```\n\n### 4.（可选）自定义 partition\n\n`BrowserWindow` 使用了自定义 `partition`（如 `'persist:main'`）时，必须显式声明，否则该 partition 下的窗口不会注入 IPC Bridge：\n\n```typescript\n// 方式一：init 时声明（单 partition 推荐）\nawait armsRum.init({\n  endpoint: '<your-endpoint>',\n  partition: 'persist:main',\n});\n\n// 方式二：init 之后动态注册（多 partition 场景）\nawait armsRum.init({ endpoint: '<your-endpoint>' });\nawait armsRum.registerSession('persist:other');\n```\n\n### 5.（可选）启用 tRPC 监控\n\n主进程使用 tRPC 定义 server router 时（如 `electron-trpc`），用 `armsRum.instrumentTRPC()` 包一层 `t`，所有 procedure 自动带监控 middleware：\n\n```typescript\nimport { initTRPC } from '@trpc/server';\nimport armsRum from '@arms/rum-electron';\n\nconst t = armsRum.instrumentTRPC(initTRPC.create());\n\nexport const appRouter = t.router({\n  greeting: t.procedure.input(...).query(...),\n});\n```\n\n详见 [`docs/接入Electron应用.md`](./docs/接入Electron应用.md) 中的 tRPC 监控章节。\n\n> 主进程作为 tRPC client 调用云端 HTTP 服务时**无需额外接入**：底层 fetch 或 http/https 请求会被 `ApiCollector` 自动采集为 `type='api'` 事件。\n\n## 配置一览\n\n`init(config)` 接收 `IElectronConfig`，继承自 `@arms/rum-core` 的 `IConfiguration`。下表为常用字段，完整版见 [`docs/Electron SDK配置参考.md`](./docs/Electron%20SDK配置参考.md)。\n\n### 基础\n\n| 字段 | 类型 | 必填 | 默认值 | 说明 |\n|------|------|------|--------|------|\n| `endpoint` | `string` | 是 | — | ARMS 数据上报地址 |\n| `enable` | `boolean` | 否 | `true` | 关闭后所有采集器与上报均不工作 |\n| `env` | `'prod' \\| 'gray' \\| 'pre' \\| 'daily' \\| 'local'` | 否 | — | 应用环境标识 |\n| `version` | `string` | 否 | — | 应用版本号 |\n| `app` | `object` | 否 | — | 应用扩展信息（`name` / `channel` / `framework` 等） |\n| `user` | `object` | 否 | — | 用户信息（`id` / `name` / `tags`） |\n\n### Electron 专属\n\n| 字段 | 类型 | 默认值 | 说明 |\n|------|------|--------|------|\n| `autoInject` | `boolean` | `true` | 是否自动向 `BrowserWindow` 注入 Browser SDK |\n| `partition` | `string` | — | 自定义 session partition；与 `BrowserWindow.webPreferences.partition` 对应 |\n| `spaMode` | `false \\| true \\| 'auto' \\| 'hash' \\| 'history'` | `false` | SPA 路由追踪模式 |\n| `tracing` | `boolean \\| ITracingOption` | — | 分布式链路追踪（主进程 fetch + tRPC procedure 共用） |\n| `evaluateApi` | `(request, response, error?) => Promise<IApiBaseAttr>` | — | 自定义 API/RPC payload 解析，返回值经 `reviseApiAttr` 裁剪后合并 |\n| `parseViewName` | `(url: string) => string` | — | 自定义页面 name 解析（兜底用 SpaMode 解析 URL） |\n| `parseResourceName` | `(url: string) => string` | — | 自定义资源 name 解析；默认取 URL pathname |\n| `beforeReport` | `(bundle) => any` | — | 上报前回调，可改写 bundle |\n| `browserCollectors` | `Record<string, boolean \\| ICollectorConfig>` | 全部启用 | 渲染进程 Browser SDK 采集器开关（仅 `autoInject` 模式生效） |\n| `properties` | `Record<string, number \\| string>` | — | 全局自定义属性，附加到所有上报事件 |\n\n### 主进程采集器（collectors）\n\n```typescript\narmsRum.init({\n  endpoint: '<your-endpoint>',\n  collectors: {\n    crash: false,            // 关闭崩溃采集\n    consoleError: false,     // 关闭 console.error 拦截\n    api: {\n      enable: true,\n      filters: [/\\.internal\\.example\\.com/],   // 命中即不上报\n    },\n    rpc: {\n      enable: true,\n      filters: [/^internal\\./],                // 按 procedure path 跳过\n    },\n    memory: {\n      enable: true,                            // 默认关闭，需显式开启；OOM / eviction / 堆预警均随此总开关\n      interval: 1_800_000,                     // 窗口聚合上报间隔 ms，默认 30min（最小值同样为 30min）\n      onLaunch: true,                          // app ready 时发出启动基线事件\n      onInterval: true,                        // 启用窗口聚合周期采集\n      onCrash: true,                           // render/child-process-gone 时立即 flush\n      onQuit: true,                            // before-quit 时立即 flush\n      onOom: true,                             // OOM 事件分发 + 主进程 OOM 回溯补报（默认 true；eviction 不受其控制）\n      crashReasons: [                          // crash flush 触发 reason 白名单（默认 6 项）\n        'crashed', 'oom', 'memory-eviction',\n        'abnormal-exit', 'launch-failed', 'integrity-failure',\n      ],\n      heapWarning: {                           // 渲染进程 V8 堆高水位预警（near_oom），默认全开\n        enable: true,                          // 默认 true\n        threshold: 0.85,                       // 堆使用率阈值 (0,1)，默认 0.85\n        consecutiveCount: 3,                   // 连续超阈采样次数，默认 3\n        sampleInterval: 10_000,                // 采样间隔 ms（下限 1s），默认 10s\n      },\n    },\n    anr: {\n      enable: true,                            // 默认关闭，需显式开启\n      anrThreshold: 5000,                      // ANR 阈值 ms（3000–30000）\n      captureStackTrace: true,                 // 渲染进程调用栈采集（Electron >= 34 需 Feature Flag；低版本自动走 CDP 采集）\n      main: true,\n      renderer: true,\n    },\n  },\n});\n```\n\n| 采集器 | 默认 | 说明 |\n|--------|------|------|\n| `jsError` | `true` | 主进程未捕获异常 + 未处理 Promise 拒绝 |\n| `consoleError` | `true` | `console.error` 拦截上报 |\n| `crash` | `true` | 原生崩溃采集（依赖 `crashReporter`） |\n| `application` | `true` | 应用启动指标 |\n| `memory` | `false` | 内存监控总开关：运行时内存水位（10s 后台采样 / 30min 窗口聚合 + crash/quit 触发；事件附 `context` 公用环境快照）+ OOM 专项 + memory-eviction + V8 堆高水位预警，详见下文「内存与 OOM 监控」 |\n| `api` | `true` | 主进程 HTTP 请求采集：`globalThis.fetch` + `http`/`https` 模块 patch，覆盖 axios 默认 adapter 等（`type='api'`，附细分耗时字段） |\n| `rpc` | `true` | tRPC server middleware（配合 `instrumentTRPC`，`type='rpc'`） |\n| `anr` | `false` | 应用未响应监控（主进程 worker + V8 Inspector 采集调用栈，降级为 setTimeout 探针；渲染进程心跳超时，Electron >= 34 经官方 API、低版本经 CDP 采集渲染进程调用栈） |\n\n### ANR 监控\n\n`AnrCollector` 检测主进程与渲染进程的事件循环长时间阻塞（Application Not Responding），作为 `EXCEPTION` 事件上报：`exception.type='anr'`，`exception.source='main_anr'`（主进程）或 `'renderer_anr'`（渲染进程）。\n\n- **主进程**：独立 `worker_threads` watchdog 通过 IPC 心跳检测主线程阻塞，阻塞时经 V8 Inspector（`connectToMainThread` + `Debugger.pause`）采集主线程调用栈（`snapshots.timing='on-block'`，`snapshots.stack_source='inspector_worker'`）；worker 不可用或 Inspector 超时时自动降级为 `setTimeout` 探针漂移检测，此路径无调用栈、仅 post-block 进程快照（`snapshots.timing='post-block'`）。\n- **渲染进程**：主进程作为外部观察者，监测渲染进程经 preload 定时器发送的 IPC 心跳超时；超时后采集调用栈（`snapshots.timing='on-detect'`）——Electron >= 34 经 `webContents.mainFrame.collectJavaScriptCallStack()`（`snapshots.stack_source='collectJavaScriptCallStack'`）；Electron < 34 自动降级为 CDP 采集：SDK 预先 `webContents.debugger.attach` + `Debugger.enable`，ANR 时发送 `Debugger.pause` 打断阻塞主线程获取栈帧（`snapshots.stack_source='cdp_debugger'`）。\n\n> ℹ️ **渲染进程心跳机制**：心跳由 SDK preload 脚本内的 `setInterval` 自主驱动，与渲染进程主线程共用同一事件循环——主线程被同步阻塞时心跳随之停发，从而被主进程 watchdog 判定为 ANR。无需主进程 `executeJavaScript` 注入。\n- **防抖与限流**：同源同窗口 120s 内最多 1 条；全局 30min 内最多 5 条；ANR 触发后 5s 恢复静默窗；被抑制次数记入 `snapshots.suppressed_count`。\n- **`caused_by`**（仅主进程，启发式推断）：系统可用内存 < 15% → `memory_pressure`；主进程 CPU > 80% → `cpu_saturation`；否则 `event_loop_blocked`。\n\n> ⚠️ **渲染进程调用栈采集（Electron >= 34）需用户设置 Feature Flag**：在 `app.ready` 之前、`import` SDK 之前调用\n> `app.commandLine.appendSwitch('enable-features', 'DocumentPolicyIncludeJSCallStacksInCrashReports')`。\n> SDK 自动注入 `Document-Policy: include-js-call-stacks-in-crash-reports` 响应头；未设置 flag 时渲染进程 ANR 仍会上报，但 `stack` 为空。\n>\n> **Electron < 34（低至 28）自动降级为 CDP 采集**，无需 Feature Flag 与 Document-Policy；若该窗口的调试会话已被 DevTools 扩展/业务代码经 `webContents.debugger` 占用，则降级为无栈事件（仅 warn 一次）。\n>\n> 已知限制：Electron 每个 session 每 event 仅允许一个 `onHeadersReceived` listener，SDK 注入会覆盖既有 listener；需保留自定义 listener 时设 `autoInjectDocumentPolicy: false`。\n\n### 内存与 OOM 监控\n\n`MemoryCollector`（`collectors.memory`，默认关闭，需显式开启）除运行时内存水位（启动基线 / 30min 窗口聚合 / crash / quit 多触发时机，后台采样固定 10s）外，还提供四类异常事件，均以 EXCEPTION 上报：\n\n| 事件 | type / subtype / name | 语义 |\n|------|----------------------|------|\n| 渲染进程 OOM | `crash` / `oom` / `RendererOOM` | 判定三判据（满足其一）：`render-process-gone` 的 `reason='oom'`；`killed` 且 `exitCode=134`；`killed` 且系统可用内存 ≤ 10%。immediate 分发，附带崩溃时刻全进程内存现场与 `crashed_url` |\n| 主进程 OOM 回溯 | `crash` / `oom` / `MainProcessOOM` | 主进程死亡无法实时上报，下次启动回溯补报；仅当上次启动异常退出且有高水位佐证（工作集 ≥ 70% 或系统可用内存 ≤ 10%）才补报，断电 / 强杀等无佐证场景自动降噪不发 |\n| memory-eviction | `memory` / `eviction` / `MemoryEviction` | 渲染进程被系统因整机内存压力回收：应用整体存活，**不计入崩溃率**，可进异常列表告警；仅随 memory 总开关，与 `onOom` / `onCrash` 互不影响；同时 APPLICATION 内存指标照发（双链路） |\n| V8 堆高水位预警 | `memory` / `near_oom` / `V8HeapNearOOM` | `heapUsed / heap_size_limit` 超过阈值（默认 0.85）连续 3 个采样周期（默认每 10s）触发，5min 冷却，immediate 单发；与 OOM 构成「预警 → 真死」漏斗，不计入崩溃率 |\n\n- **`onOom`**（默认 `true`）：控制 OOM 事件分发与主进程 OOM 回溯补报；eviction 不受其控制。\n- **`heapWarning`** 配置入口为 `collectors.memory.heapWarning`（`enable` 默认 `true`、`threshold` 默认 `0.85`、`consecutiveCount` 默认 `3`、`sampleInterval` 默认 `10s`，下限 `1s`）；`autoInject: false` 手动注入模式下需在渲染侧 browser 初始化配置 `collectors.heapWarning` 启用。\n- **独立限流**：OOM 桶 30min 内最多 5 条、eviction 桶 30min 内最多 2 条，独立分桶计数，防多窗口连续异常风暴。\n- **`system_memory` 条件附带**：仅 OOM 与 eviction 事件在应用占用系统内存 ≥ 30% 或系统可用内存 ≤ 15% 时于 `snapshots` 附带 `system_memory` 键，其余场景省略；near_oom 不附带。\n- **Electron 42+ 双链路去重**：同一渲染进程 V8 堆 OOM，运行时链路与 crashReporter / minidump 链路经跨会话登记表去重（60s 容差）；minidump 链路未命中登记表（运行时漏报）时补发 OOM 归因的 crash 事件（`subtype='oom'`、`name='RendererOOM'`，吸收 crashpad 注解中的 JS 调用栈），避免漏采。\n- **崩溃率口径**：`type='crash'` 且 `name != 'NonFatalCrash'` 计入崩溃率；`type='memory'` 不计入；子进程（GPU / utility）崩溃不计入崩溃率，仅内存留痕。\n\n### 渲染进程采集器（browserCollectors）\n\n`autoInject: true` 时控制注入到渲染进程的 Browser SDK 采集器：\n\n| 采集器 | 说明 |\n|--------|------|\n| `perf` | 页面加载性能 |\n| `webvitals` | Web Vitals（LCP / FID / CLS） |\n| `exception` | 未捕获异常 + Promise 拒绝 |\n| `whiteScreen` | 白屏检测 |\n| `api` | XHR / Fetch HTTP 请求 |\n| `staticResource` | 静态资源加载 |\n| `click` / `action` | 用户交互 |\n| `longTask` | 长任务（>50ms） |\n\n```typescript\narmsRum.init({\n  endpoint: '<your-endpoint>',\n  browserCollectors: {\n    longTask: false,\n    whiteScreen: false,\n    api: { enable: true },\n  },\n});\n```\n\n### 链路追踪（tracing）\n\n```typescript\narmsRum.init({\n  endpoint: '<your-endpoint>',\n  tracing: {\n    enable: true,\n    sample: 10,                                    // 10% 采样（取值 0–100）\n    propagatorTypes: ['tracecontext', 'b3'],\n    allowedUrls: [/^https:\\/\\/api\\.example\\.com/], // 仅向白名单注入追踪头\n  },\n});\n```\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `enable` | `boolean` | 是否启用链路追踪 |\n| `sample` | `number` | 采样率，取值 **0–100**（默认 100） |\n| `propagatorTypes` | `Array<'tracecontext' \\| 'b3' \\| 'b3multi' \\| 'jaeger' \\| 'sw8'>` | 传播协议 |\n| `allowedUrls` | `Array<MatchOption \\| TraceOption>` | 命中规则的 URL/path 才会注入追踪头；未配置时默认全量命中 |\n| `tracestate` / `baggage` | `boolean` | 是否携带 W3C tracestate / baggage |\n\n主进程 fetch 与 http/https 模块请求（`ApiCollector`）、tRPC procedure（`RpcCollector`）共用同一份 `tracing` 决策，自动在 outbound 请求注入 `traceparent` 等头。\n\n### evaluateApi：把 payload 写入 snapshots\n\n`evaluateApi` 用于把请求/响应内容写入事件。**SDK 不会自动采集 payload**——业务侧按需提取并经返回值 `snapshots` 上报，SDK 自动经 `reviseApiAttr` 裁剪至 5KB：\n\n```typescript\narmsRum.init({\n  endpoint: '<your-endpoint>',\n  async evaluateApi(request, response, error) {\n    const snapshot: Record<string, unknown> = {};\n    if (request && typeof request === 'object' && 'input' in request) {\n      snapshot.input = (request as { input?: unknown }).input;\n    }\n    if (response && typeof response === 'object' && 'data' in response) {\n      snapshot.output = (response as { data?: unknown }).data;\n    }\n    return {\n      success: error ? 0 : 1,\n      snapshots: JSON.stringify(snapshot),\n    };\n  },\n});\n```\n\n> 字段约定：`snapshots` 留给 SDK / `evaluateApi` 写采集元数据，`properties` 保留给用户业务标签。回调有 50ms 超时硬限，超时后回退到原始事件。\n\n### 离线队列（offlineQueue）\n\n上报失败（网络异常 / 超时 / HTTP 非 2xx）时，事件自动持久化到磁盘（`{userData}/rum-electron-store/offline-queue/`），应用重启或网络恢复后自动重发：\n\n```typescript\narmsRum.init({\n  endpoint: '<your-endpoint>',\n  offlineQueue: {\n    enable: true,        // 默认 true\n    maxAgeDays: 30,      // 最大保留天数，默认 30\n    maxQueueSize: 200,   // 最大条数，默认 200，超限淘汰最旧\n  },\n});\n```\n\n## 运行时 API\n\n```typescript\n// 修改单个字段\narmsRum.setConfig('enable', false);\n\n// 批量修改\narmsRum.setConfig({ env: 'staging', version: '1.1.0' });\n\n// 读取当前完整配置\nconst config = armsRum.getConfig();\n\n// 为额外的 partition 注册 preload（init 之后调用）\nawait armsRum.registerSession('persist:other');\n\n// 一行接入 tRPC server 监控（需 @trpc/server）\nconst t = armsRum.instrumentTRPC(initTRPC.create());\n```\n\n### 渲染进程门面 `window.ArmsRum`\n\npreload 脚本会在渲染进程暴露 `window.ArmsRum` 门面（不依赖 `autoInject`，preload 已加载即可用），提供 `sendCustom` / `sendView` / `sendException` / `sendResource` 四个方法，payload 经 IPC 转发至主进程，复用主进程校验与组装逻辑：\n\n```typescript\n// renderer（任意页面脚本）\nwindow.ArmsRum?.sendCustom({ type: 'biz', name: 'checkout_click', value: 1 });\nwindow.ArmsRum?.sendException(new Error('checkout failed'));\n```\n\n- 不依赖 Browser SDK 注入时机，页面早期即可调用；`autoInject: false` 手动注入模式下同样可用\n- 兼容 `contextIsolation` 开启 / 关闭两种场景（双注入兼容）\n- SDK `init()` 之前的调用会被静默丢弃\n- `sendView` 的视图 URL 由 SDK 自动采集当前页面地址，payload 中的 `url` 字段会被忽略\n\n## 注意事项\n\n1. **`init()` 必须在 `app.ready` 之前调用**，且 SDK 模块本身必须更早被 `import`——`src/index.ts` 顶层调用 `protocol.registerSchemesAsPrivileged()`，错过 `ready` 之前的窗口会导致协议注册失败并触发 Electron 警告。\n2. **Electron 版本 `>= 28`**：SDK 优先使用 `session.registerPreloadScript()`（v28 新增），低版本自动降级到 `session.setPreloads()`。\n3. **不要覆盖 SDK 注册的 preload**：若应用层调用 `session.setPreloads()` 覆盖全部 preload，渲染进程事件将无法回流。建议使用追加方式。\n4. **`autoInject: true` 模式下禁止在渲染进程手动 `import '@arms/rum-electron/browser'`**：会导致重复初始化与事件双采。\n5. **自定义 partition 必须显式声明**：未声明的 partition 下的窗口里 `window.ArmsEventBridge` 为 `undefined`，RUM 数据无法上报。\n6. **`evaluateApi` 内禁止同步阻塞**：回调有 50ms 超时硬限，超时后回退到原始事件不抛错。\n7. **tRPC 监控仅采 server 端**：主进程作为 tRPC client 调用云端 HTTP 时由 `ApiCollector` 在 fetch / http 模块层自动采集为 `type='api'`，不需要再包 link。\n8. **主进程原生 ESM 可用**：无打包器直接 `import` SDK 产物（如 `dist/index.mjs`）时 `@arms/rum-core` 模块解析正常（0.0.9 修复了此场景下的解析崩溃）。\n","readmeFilename":"README.md"}