{"_id":"logbeacon","_rev":"51-de56ff4280fa09befa7353bb97cb364d","name":"logbeacon","dist-tags":{"dev":"1.3.1-dev.1","beta":"1.5.4-beta.1","latest":"1.7.2"},"versions":{"0.9.9":{"name":"logbeacon","version":"0.9.9","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@0.9.9","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"d3ae2b3e3550406558e1004e68932f9a9d174c0d","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-0.9.9.tgz","fileCount":24,"integrity":"sha512-7yltNjUaZ96lGdwxt1tfQK3Ii0JTCD9/9tn2qfAzPenNdL2XAi88wX3ExHRURcNkAzjvgH4Y//VeSs1QPqytHQ==","signatures":[{"sig":"MEYCIQCn/M7Q/DKlTfUpNoxpjrQVKuKfQoaD3T1BqvaLt4CWpQIhAPTbmaRh96VC1QJduMacS0VVitDBN/nouR3+WCWikirV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1353791},"type":"module","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"gitHead":"3b0ef47e59ec84f07e263b847e5a6acacd5c37fa","scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_0.9.9_1748591719046_0.2870354916729847","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"logbeacon","version":"1.0.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.0.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"aa0cbc62e65d028a80deb464b3e5e1e4857d81c7","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.0.1.tgz","fileCount":25,"integrity":"sha512-Ob8BRo/c+niREauhJa30kCaDKZNm/L6QO0s5wYakJ8BYEFlm390qeix5A7mardDInPhllhqUadaxLn/HfvMmbQ==","signatures":[{"sig":"MEYCIQCqckmrdWAY89/Gh4dQYrE0OlSGh6UwWffTkur0j3rKdQIhAKvQc4Sy6Q9McW6uPP0FGM48+eL2daUQDNPXuqD6YHLs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1381979},"type":"module","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"gitHead":"c8dcabeddcc03e60898636add2aa30a3da750750","scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.0.1_1749976959865_0.058204413354867146","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"logbeacon","version":"1.0.2","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.0.2","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"495f2dff1f9b06a4db38aa466e58f91d2ea1685f","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.0.2.tgz","fileCount":25,"integrity":"sha512-R65nk8YL9rF3cwRSofV3gtv6t7DuVdlTpCsdBLlUnTsKJu33xdNG8eXhJYeD49tQc27Adx4t0n9En/onqKCvHg==","signatures":[{"sig":"MEYCIQDxU/VoOCunFQM3a8n1q/I+AJjT0KZyJ43jutI5gBxszAIhAIEKS4O7YLOclVc2rOrI+VNnmyYn2WuN19s+h91/0ZHW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1374221},"type":"module","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"gitHead":"8b0db7eaf50613b2be1e458d4fb53189eb996d72","scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.0.2_1750057909210_0.6818167985729822","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"logbeacon","version":"1.1.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.1.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"e7ac3342ec59eff723eedbcd70ad1572e047830f","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.1.1.tgz","fileCount":25,"integrity":"sha512-nt7lqDGkIvd5g95vDr3K2Q14LHbiNk3jqMS8dyKhPv+gvpgNAffDE+xSPYkkpmvaWSNJfc4YtRRc9oD5WDi0Bg==","signatures":[{"sig":"MEQCIEslDPdRsDY6Ib94oLrH15cGDPRnx0tis0OCs4mcxdxuAiBBouvAN18xrgNjWOXoqUd+T+i/qFa3Kg1NbpJUPH+/Hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1387655},"type":"module","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"gitHead":"ecd226c8e88d8f25fcbe4333573cdd4729bfb7a1","scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","actor":{"name":"kaibinluo","type":"user","email":"notify@kaibinluo.com"},"email":"notify@kaibinluo.com"},"repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.1.1_1750135436304_0.9767378758546792","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"logbeacon","version":"1.2.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.2.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"1e02f4263824b4c7504f0c71372093faf98ceab2","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.2.1.tgz","fileCount":25,"integrity":"sha512-Cuq1FWJGBBj/2QozmN/s2X9JkMfel/nTbX/FXe6nCSud+pyS1sEWr/wXQpjf2Ee3XmmqJCrzYqhvz9o/VDSTsw==","signatures":[{"sig":"MEQCIE0vAPHrWzUA5z2xngg/jH1pfEQn+X6h/SRmhc0EkYxfAiAkEqOkTxVztOULddZRS7D4MGA63tsDEU0FB4oakm1bsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1405494},"type":"module","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"gitHead":"77962346c0ed84b76c330102d1ca8b2181ee2f80","scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","actor":{"name":"kaibinluo","type":"user","email":"notify@kaibinluo.com"},"email":"notify@kaibinluo.com"},"repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.2.1_1751626176660_0.4869411771460659","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"logbeacon","version":"1.3.0","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.3.0","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"e1df496593f053ebad3432b0ad0419d14871433b","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.3.0.tgz","fileCount":25,"integrity":"sha512-tSuQp+cM4laFEpoMGAjI8qgGD500NLqUwqhL2CT/LGWWb9i0pTd5dSPCArudsF8G8r6jXjWa+pqkQKKBByxCxA==","signatures":[{"sig":"MEUCIQCBGz1/fHmwxkpW1JWLhzcu2GjktoX/LG2Q51RUA0kWhwIgM4qpdunpnHdeiTPVvb6moM++wLhaIJPjk9VQPbQqrWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1407283},"type":"module","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"gitHead":"50660deb754dffaa87fedc46c68f5d3b397daf49","scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.3.0_1752827802998_0.4453978403656582","host":"s3://npm-registry-packages-npm-production"}},"1.3.1-dev.1":{"name":"logbeacon","version":"1.3.1-dev.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.3.1-dev.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"00028f588c4556f0789d03239ecfc472bd1d15e6","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.3.1-dev.1.tgz","fileCount":25,"integrity":"sha512-S7Pjd7w6BueHSTXQQkO9GNa7ZdQB84XOaNEBQQeFwPqClAeDzLkKmTI2d8wMKDqr41ZGCcPJFDzBwxJdbvILZQ==","signatures":[{"sig":"MEUCIQDICrAFZWWVXx8/YJQiMvCew2eLSM8MR05lDmQzjmj6VgIgHJv4Z7+9HEMgBCyHdSFDhCzqh79zImMQS+Gq/nL6MwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1966091},"type":"module","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"gitHead":"ebb4b1d56d022c9377084a2bcbf31193e08b4db2","scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.3.1-dev.1_1752832111662_0.6150423571321524","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"logbeacon","version":"1.3.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.3.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"f8e2cb79937daef0169c6ce47b368f35ac306ba9","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.3.1.tgz","fileCount":25,"integrity":"sha512-4JoLsdSXH1U631cSph80YlajKblAF4Z6wPu2bADyfqAo3pHNIxmwoaHvMwi+djnj+yjL5fOTpxzat7xV1rqznQ==","signatures":[{"sig":"MEYCIQDkQSsQ+6pHdgVxbpDiwxKTqxQCBpkJWbGmXhAH/AQwuAIhAInvTnPBCHn/AkWdP73wNG9uDB2ZBPwOdsmSjlHiSEyB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1414413},"type":"module","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"gitHead":"ebb4b1d56d022c9377084a2bcbf31193e08b4db2","scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"23.11.0","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.3.1_1752846151625_0.5836222478365227","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"logbeacon","version":"1.3.2","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.3.2","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"1c9f1868e69b00204a739fb07026033eef554507","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.3.2.tgz","fileCount":25,"integrity":"sha512-9wbG+6bIUCREcqZB0n0/XXcJQdWUbNZB/EyPZLNJX2WO9lvWvaQS0AQX1fY58VbZ+0myileA+WLFze6Te0cRlg==","signatures":[{"sig":"MEUCIQDRNsambw9ASuHxigmml922qywH6fsYE2Z32ek1qsa6UAIge96jsXKcNVutpu/rcKIkW2cBPMXWlsSRuwhckgBD+gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1412631},"type":"module","_from":"file:logbeacon-1.3.2.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/tmp/d4db071f0ffe3f3d7c20e0311d3a860d/logbeacon-1.3.2.tgz","_integrity":"sha512-9wbG+6bIUCREcqZB0n0/XXcJQdWUbNZB/EyPZLNJX2WO9lvWvaQS0AQX1fY58VbZ+0myileA+WLFze6Te0cRlg==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.4.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.4.1","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.3.2_1753153730762_0.9819556209163682","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"logbeacon","version":"1.4.0","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.4.0","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"5b959b078604be216c8be6c0b5bd046c619d553d","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.4.0.tgz","fileCount":25,"integrity":"sha512-gghSn8kVZr2Mf4QJfgYeV9nbZTm95qI+5LPqnGJ8pZRYbygREDmRe/rEYvI3Slg+F1NLXHHGRUbuhmkQoqpv8w==","signatures":[{"sig":"MEUCIHYSTsI/vZ0FEyakegNdEZhoy3JCWWlOLy3o7xemJT7LAiEAray4+/yYpy04JbsjuhGV9tHCtQ5mGCoQQiehLPfz9s4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1412656},"type":"module","_from":"file:logbeacon-1.4.0.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/tmp/23ed6ccb54deed306b510b129f08af1b/logbeacon-1.4.0.tgz","_integrity":"sha512-gghSn8kVZr2Mf4QJfgYeV9nbZTm95qI+5LPqnGJ8pZRYbygREDmRe/rEYvI3Slg+F1NLXHHGRUbuhmkQoqpv8w==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.4.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.4.1","dependencies":{"pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.4.0_1753441546695_0.13314842529662596","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"logbeacon","version":"1.5.0","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.5.0","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"7ab28be9355d62c8eec9c30150459963d194abc7","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.5.0.tgz","fileCount":25,"integrity":"sha512-IW0wSUKbx6Si/AwPWTIj0OIY5/KKZJ50pF1N/UAs1Gr54ea9a6sWYphddvFquZKqwcEoOjYu95+4OFYkJdfbyA==","signatures":[{"sig":"MEUCIAqP7T3wLXBegfEJEwB3WpO2pE49bACX4QC/Atp23q6oAiEA+SJlNhFgyhTBQJrES3pQt00E+/OWmyBaTvBKe5bqt0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":666848},"type":"module","_from":"file:logbeacon-1.5.0.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/private/var/folders/6k/_blw54kd5ll_kpqgbq00fj4c0000gn/T/fe583fed5081cb268e88d6f160228962/logbeacon-1.5.0.tgz","_integrity":"sha512-IW0wSUKbx6Si/AwPWTIj0OIY5/KKZJ50pF1N/UAs1Gr54ea9a6sWYphddvFquZKqwcEoOjYu95+4OFYkJdfbyA==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.5.0_1754903388754_0.19214058584697424","host":"s3://npm-registry-packages-npm-production"}},"1.5.1-beta.1":{"name":"logbeacon","version":"1.5.1-beta.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.5.1-beta.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"12f970f2d3a5b948f9459c7a6ea7064e2b0dac1d","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.5.1-beta.1.tgz","fileCount":25,"integrity":"sha512-ltVntWpE3vTOiBmyKjFweBm16aI4hu0Tk4rB/uv6IesLam+ilQhJxYsix8DyceoXMdOgk6E07T/CxNldY50Lgg==","signatures":[{"sig":"MEUCIEC3BBaw45clDcAAiv5ZcXxaXIGs/SUV5azEH2cLvrGQAiEAr3uwt/ghve/UeHzrzDHqN69xy1j4cWuxRx7d3VLP36I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":647687},"type":"module","_from":"file:logbeacon-1.5.1-beta.1.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/private/var/folders/6k/_blw54kd5ll_kpqgbq00fj4c0000gn/T/b6d18b3e4e345a929649e0dfe370c93c/logbeacon-1.5.1-beta.1.tgz","_integrity":"sha512-ltVntWpE3vTOiBmyKjFweBm16aI4hu0Tk4rB/uv6IesLam+ilQhJxYsix8DyceoXMdOgk6E07T/CxNldY50Lgg==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.5.1-beta.1_1754910213471_0.4312165212257919","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"logbeacon","version":"1.5.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.5.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"a51fee5f80f262de98d90df735b4f31256baa6d6","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.5.1.tgz","fileCount":25,"integrity":"sha512-8qlXALM/sjkhjeEDA5Flvf8s+qOC8wfbIe6Uw7iuhLNo3iL0JwCwUs0KdP+o+t4UGrGTkg5t2a5u34pe/iwVVQ==","signatures":[{"sig":"MEYCIQD+KK20OVm32XjeNS1F8BJtll3g4V0J4urBbA6Ctb8ixgIhAKR5L59eyzVohY7mgKtvN3ehGlTXbvUomlMRxHwgylGl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":652154},"type":"module","_from":"file:logbeacon-1.5.1.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/tmp/a4d542105ab4c1b084af77d05cad95e2/logbeacon-1.5.1.tgz","_integrity":"sha512-8qlXALM/sjkhjeEDA5Flvf8s+qOC8wfbIe6Uw7iuhLNo3iL0JwCwUs0KdP+o+t4UGrGTkg5t2a5u34pe/iwVVQ==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.5.1","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.7.0","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.5.1_1756545960741_0.9664873329978809","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"logbeacon","version":"1.5.3","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.5.3","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"3d8b2b95375c9ee4e0ef953508f4d13a4f105e69","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.5.3.tgz","fileCount":25,"integrity":"sha512-gr9EwxjOAHDQcHAxlNQI/WMOMPZLnEbEytkk3otIdywnKKPfSljnTUbK0uRfoeyWvtKANneypi2lBtQ3KJ5wFQ==","signatures":[{"sig":"MEUCIEAmnkJqsjE9OjNEnp4KXKu2jUtbE3z5o8yCYduCANL4AiEAwM3trbOWg15ap+UcYiCNMbUguBoSFXlVM9JnQYj57zY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":652272},"type":"module","_from":"file:logbeacon-1.5.3.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/tmp/0ed486fe0e20d539fc9f9fba9c160f99/logbeacon-1.5.3.tgz","_integrity":"sha512-gr9EwxjOAHDQcHAxlNQI/WMOMPZLnEbEytkk3otIdywnKKPfSljnTUbK0uRfoeyWvtKANneypi2lBtQ3KJ5wFQ==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.5.1","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.7.0","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.5.3_1756730374933_0.9340186071830607","host":"s3://npm-registry-packages-npm-production"}},"1.5.4-beta.1":{"name":"logbeacon","version":"1.5.4-beta.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.5.4-beta.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"6d2d5f01835388bffa307bbf777648b3b3425f9c","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.5.4-beta.1.tgz","fileCount":25,"integrity":"sha512-d3GI3nWUPHyLBA1dLxkQS475tS/C4SKflwv7AyLmRlbKB746bB4vQ9YKyHvCHabVI+KYZ7yIrU4ELzd8Ul4wpg==","signatures":[{"sig":"MEYCIQCuMsC57mkAKiyR854zfYvweIy175aAG7SHWjLZBdBHpAIhAOcwFRlE/ARNgf0BXdqTfyaq0F+ByLwCQNSQsjaH0UI4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":663979},"type":"module","_from":"file:logbeacon-1.5.4-beta.1.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/private/var/folders/6k/_blw54kd5ll_kpqgbq00fj4c0000gn/T/6408525c045de12cccd18ac62c27bfdb/logbeacon-1.5.4-beta.1.tgz","_integrity":"sha512-d3GI3nWUPHyLBA1dLxkQS475tS/C4SKflwv7AyLmRlbKB746bB4vQ9YKyHvCHabVI+KYZ7yIrU4ELzd8Ul4wpg==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"10.9.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"22.14.0","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.5.4-beta.1_1756889095165_0.378369450077803","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"logbeacon","version":"1.5.5","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.5.5","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"e301cd9eae52cac57c6f3e5617d59c4b21c7646f","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.5.5.tgz","fileCount":25,"integrity":"sha512-J8vs6OwFmGNeasspn7iGZdfXt48N4cMsWCVv9Zd3DSLLdBmG9NAGboVq1gtYL+Pcg+T0QLUkM3g0NzBdjJyPuA==","signatures":[{"sig":"MEYCIQCDJU90PyrOkedU6GXxI+JfT0Mak2A7wtK4j70pL972IwIhANhgW91rYM02PcEDf3VTe1UvoEawMiMQw5qRYuyjh0Qr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":988629},"type":"module","_from":"file:logbeacon-1.5.5.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/tmp/6594388372305276969a9b4a2b330351/logbeacon-1.5.5.tgz","_integrity":"sha512-J8vs6OwFmGNeasspn7iGZdfXt48N4cMsWCVv9Zd3DSLLdBmG9NAGboVq1gtYL+Pcg+T0QLUkM3g0NzBdjJyPuA==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.5.1","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.7.0","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.5.5_1757317122979_0.4387471548629389","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"logbeacon","version":"1.5.6","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.5.6","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"a98ce4bf99b345b0511b9daa3a1b29028f1266df","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.5.6.tgz","fileCount":25,"integrity":"sha512-TZuxKVJ2lYCc5agtHG7neIhmKEeQ8lJ7Ao/3q7jwuylXXYf3TJO4s3nYckPdfQQMlII9rgRLRoRcwnWvqq8mZg==","signatures":[{"sig":"MEYCIQDJY78MiiiM1BKvjpdM0lpeZ88DrvsHJp00oWn24YdYEgIhAI6jcdKg1kKktRQtM/CILD/D/Z/ZvXOm4cED5Nbv4+qc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1000453},"type":"module","_from":"file:logbeacon-1.5.6.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/tmp/a198c20b95db00345ee7c087071988bf/logbeacon-1.5.6.tgz","_integrity":"sha512-TZuxKVJ2lYCc5agtHG7neIhmKEeQ8lJ7Ao/3q7jwuylXXYf3TJO4s3nYckPdfQQMlII9rgRLRoRcwnWvqq8mZg==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.6.0","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.8.0","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.5.6_1758539055690_0.9363467938641352","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"logbeacon","version":"1.6.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.6.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"9730206f94d1a5fe14600b5c410131c5a47b505a","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.6.1.tgz","fileCount":25,"integrity":"sha512-6LfcLUUWbEdNS+ysdFgEplGPPmNuyvJs0hYfw6G0fasEy22PBId+ls6B6TwBhmaiDuVfTzbexbDoky4vgx9ljA==","signatures":[{"sig":"MEYCIQCKfkinn6Z+n6eoWhN5N/xNOyB/n//7K+s5OzaJDcoSYgIhAOcZXkL+fO74iMvcAF8OqRGmUdvubcovSQ3zUUP+dOBK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1025448},"type":"module","_from":"file:logbeacon-1.6.1.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/tmp/d9ba9797b8a8ac9a601bd02fe60b4719/logbeacon-1.6.1.tgz","_integrity":"sha512-6LfcLUUWbEdNS+ysdFgEplGPPmNuyvJs0hYfw6G0fasEy22PBId+ls6B6TwBhmaiDuVfTzbexbDoky4vgx9ljA==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.6.1","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.11.0","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.6"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.6.1_1761720196833_0.3152176529464126","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"logbeacon","version":"1.7.0","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.7.0","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"db541844e0816e889519c04c5ebcce4c16f61fe4","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.7.0.tgz","fileCount":25,"integrity":"sha512-42Ri5r3hpb2ptl51F/l9rL+PWotgMtpvg3tcSM+9ElAdD5iLXfndfOYZQvWL/7VCKee7Nm3JXhELd3TYj6HvXg==","signatures":[{"sig":"MEUCIEKqBOb3FUpT/AkwCQb7TiZHbJaB3JMUnsVpYE1mLRIyAiEAqu41p6bOCUqGh/Icj40P+eThnFhBYK+bqwDEcNVD+fg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1027993},"type":"module","_from":"file:logbeacon-1.7.0.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"kaibinluo","email":"notify@kaibinluo.com"},"_resolved":"/tmp/554adef58e2dff57e5372dc8ec683015/logbeacon-1.7.0.tgz","_integrity":"sha512-42Ri5r3hpb2ptl51F/l9rL+PWotgMtpvg3tcSM+9ElAdD5iLXfndfOYZQvWL/7VCKee7Nm3JXhELd3TYj6HvXg==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.6.2","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.11.1","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.6"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.7.0_1763608905672_0.5730739428717022","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"logbeacon","version":"1.7.1","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"license":"MIT","_id":"logbeacon@1.7.1","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"homepage":"https://github.com/luokaibin/logs#readme","bugs":{"url":"https://github.com/luokaibin/logs/issues"},"dist":{"shasum":"c5f43ea70059081e64a91852cb9bd249bebda0e0","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.7.1.tgz","fileCount":25,"integrity":"sha512-iLlzqkpQBnjtL4YPNTj00wTW5EpLjhW5GYavgyTTQcpD37AbInED9Svx+Cblf0x+5cM4T6xNNP39Sq3q6/yLoA==","signatures":[{"sig":"MEUCIQC8PoFalBtMTGzi9OVruvXUh8UOrHEIqdXr9YmsuL3+9QIgfGFdG5PQD61S3wmiNZTJAv9P2p+RMV75UlZE69Vb99k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/logbeacon@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1031727},"type":"module","_from":"file:logbeacon-1.7.1.tgz","module":"dist/core/logs.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/types/logs.d.ts","import":"./dist/core/logs.js","default":"./dist/core/logs.js","require":"./dist/core/logs.cjs"},"./sls":{"types":"./dist/types/slsClient.d.ts","import":"./dist/sls/slsClient.js","default":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs"},"./loki":{"types":"./dist/types/lokiClient.d.ts","import":"./dist/loki/lokiClient.js","default":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs"},"./eslint":{"types":"./dist/types/eslintPlugin.d.ts","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","require":"./dist/eslint/index.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"scripts":{"dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b9b7619-7190-4737-a7e7-322ee878930d"}},"_resolved":"/tmp/6e0e0adee263ca6d61712a7c2f0c4ede/logbeacon-1.7.1.tgz","_integrity":"sha512-iLlzqkpQBnjtL4YPNTj00wTW5EpLjhW5GYavgyTTQcpD37AbInED9Svx+Cblf0x+5cM4T6xNNP39Sq3q6/yLoA==","repository":{"url":"git+https://github.com/luokaibin/logs.git","type":"git"},"_npmVersion":"11.8.0","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","directories":{},"_nodeVersion":"24.13.1","dependencies":{"idb":"^8.0.3","pbf":"^4.0.1","fflate":"^0.8.2","loglevel":"^1.9.2","ua-parser-js":"^2.0.6"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.20.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","@rollup/plugin-commonjs":"^24.0.0","rollup-plugin-obfuscator":"^1.1.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/logbeacon_1.7.1_1772431875421_0.40357803153420324","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"logbeacon","version":"1.7.2","type":"module","module":"dist/core/logs.js","description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","exports":{".":{"import":"./dist/core/logs.js","require":"./dist/core/logs.cjs","types":"./dist/types/logs.d.ts","default":"./dist/core/logs.js"},"./sls":{"import":"./dist/sls/slsClient.js","require":"./dist/sls/slsClient.cjs","default":"./dist/sls/slsClient.js","types":"./dist/types/slsClient.d.ts"},"./sls/beacon":{"import":"./dist/sls/beacon.js","default":"./dist/sls/beacon.js"},"./sls/sw":{"import":"./dist/sls/beacon-sw.js","default":"./dist/sls/beacon-sw.js"},"./loki":{"import":"./dist/loki/lokiClient.js","require":"./dist/loki/lokiClient.cjs","default":"./dist/loki/lokiClient.js","types":"./dist/types/lokiClient.d.ts"},"./loki/beacon":{"import":"./dist/loki/beacon.js","default":"./dist/loki/beacon.js"},"./loki/sw":{"import":"./dist/loki/beacon-sw.js","default":"./dist/loki/beacon-sw.js"},"./eslint":{"require":"./dist/eslint/index.js","import":"./dist/eslint/index.mjs","default":"./dist/eslint/index.mjs","types":"./dist/types/eslintPlugin.d.ts"},"./dev-tools/log-filter":{"default":"./dist/dev-tools/log-filter.js"}},"keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"repository":{"type":"git","url":"git+https://github.com/luokaibin/logs.git"},"bugs":{"url":"https://github.com/luokaibin/logs/issues"},"homepage":"https://github.com/luokaibin/logs#readme","license":"MIT","dependencies":{"fflate":"^0.8.2","idb":"^8.0.3","loglevel":"^1.9.2","pbf":"^4.0.1","ua-parser-js":"^2.0.6"},"devDependencies":{"@rollup/plugin-commonjs":"^24.0.0","@rollup/plugin-node-resolve":"^15.0.0","@rollup/plugin-terser":"^0.4.4","javascript-obfuscator":"^4.1.1","rollup":"^3.20.0","rollup-plugin-obfuscator":"^1.1.0"},"engines":{"node":">=14.0.0"},"scripts":{"build":"rollup -c rollup.config.js","dev":"rollup -c rollup.config.js -w","test":"echo \"Error: no test specified\" && exit 1","clean":"rm -rf dist","proto:compile":"pnpx pbf sls/sls.proto > sls/sls.js && pnpx pbf common/log.proto > common/log.proto.js"},"_id":"logbeacon@1.7.2","_integrity":"sha512-Uy7crRlIuoHkgtyIfr6WeTHrpvtAGzJraOwTUtcXCU/SHwj3p4hOi+RqHYJzRGVHfvoGkJcIland+aAtZJEUdw==","_resolved":"/tmp/0feece3e2bab36e993314f96e1ef0112/logbeacon-1.7.2.tgz","_from":"file:logbeacon-1.7.2.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-Uy7crRlIuoHkgtyIfr6WeTHrpvtAGzJraOwTUtcXCU/SHwj3p4hOi+RqHYJzRGVHfvoGkJcIland+aAtZJEUdw==","shasum":"b8c8fb7e54e003d0694eac56bd3362971c6f5493","tarball":"https://registry.npmjs.org/logbeacon/-/logbeacon-1.7.2.tgz","fileCount":25,"unpackedSize":1033142,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/logbeacon@1.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAaqNXXRP3OZ4CJgweW2CWbB1f42Tchj4VnDGA0ccBzEAiB6YclUaf2gzMfbqkaovlMvfbHHj5+gfeU3b6CJim92yA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b9b7619-7190-4737-a7e7-322ee878930d"}},"directories":{},"maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/logbeacon_1.7.2_1774154296085_0.034226379888460334"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-25T06:09:53.669Z","modified":"2026-03-22T04:38:16.704Z","1.0.0":"2025-05-25T06:09:53.884Z","0.9.0":"2025-05-26T02:05:50.063Z","0.9.1":"2025-05-26T11:42:42.674Z","0.9.2":"2025-05-27T02:08:31.952Z","0.9.3":"2025-05-27T03:29:47.807Z","0.9.4":"2025-05-27T08:40:27.247Z","0.9.5":"2025-05-27T09:42:52.019Z","0.9.6":"2025-05-28T03:29:06.196Z","0.9.7":"2025-05-29T09:44:42.059Z","0.9.8":"2025-05-30T07:52:01.665Z","0.9.9":"2025-05-30T07:55:19.258Z","1.0.1":"2025-06-15T08:42:40.121Z","1.0.2":"2025-06-16T07:11:49.454Z","1.1.0":"2025-06-17T03:27:27.330Z","1.1.1":"2025-06-17T04:43:56.514Z","1.2.0":"2025-07-04T10:42:32.850Z","1.2.1":"2025-07-04T10:49:36.915Z","1.3.0":"2025-07-18T08:36:43.221Z","1.3.1-dev.1":"2025-07-18T09:48:31.908Z","1.3.1":"2025-07-18T13:42:31.867Z","1.3.2":"2025-07-22T03:08:50.961Z","1.4.0":"2025-07-25T11:05:46.964Z","1.5.0":"2025-08-11T09:09:48.955Z","1.5.1-beta.1":"2025-08-11T11:03:33.765Z","1.5.1":"2025-08-30T09:26:00.963Z","1.5.2":"2025-09-01T11:42:42.437Z","1.5.3":"2025-09-01T12:39:35.163Z","1.5.4-beta.1":"2025-09-03T08:44:55.383Z","1.5.4":"2025-09-08T06:11:02.617Z","1.5.5":"2025-09-08T07:38:43.178Z","1.5.6":"2025-09-22T11:04:15.947Z","1.6.0":"2025-10-28T10:03:55.617Z","1.6.1":"2025-10-29T06:43:17.079Z","1.7.0":"2025-11-20T03:21:45.955Z","1.7.1":"2026-03-02T06:11:15.673Z","1.7.2":"2026-03-22T04:38:16.426Z"},"bugs":{"url":"https://github.com/luokaibin/logs/issues"},"license":"MIT","homepage":"https://github.com/luokaibin/logs#readme","keywords":["logbeacon","logs","logger","logging","browser","browser-logs","client-logging","service-worker","loki","grafana","sls","aliyun","error-tracking","log-aggregation","log-collection","log-shipping"],"repository":{"type":"git","url":"git+https://github.com/luokaibin/logs.git"},"description":"浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和Grafana Loki","maintainers":[{"name":"kaibinluo","email":"notify@kaibinluo.com"}],"readme":"# Logs\n\n浏览器端日志采集与上报工具，支持多种日志服务后端，包括阿里云日志服务(SLS)和 Grafana Loki。通过客户端和服务端的配合，实现日志的无缝采集和传输。\n\n## 功能特性\n\n- 💡 **多平台支持**：支持浏览器、Node.js 等多种 JavaScript 运行环境\n- 🔄 **多种日志服务**：支持阿里云日志服务(SLS)和 Grafana Loki\n- 📝 **智能的默认日志级别**：\n    - **浏览器端**：默认为 `WARN` 级别，保持控制台清洁。\n    - **服务端 (Node.js)**：默认为 `TRACE` 级别，确保捕获所有日志信息，方便开发调试及日志采集。可通过 `LOGS_LEVEL` 环境变量覆盖。\n- 🔌 **可扩展性**：模块化设计，易于扩展支持其他日志服务\n- 🚀 **高性能**：批量处理、压缩传输，减少网络开销\n- 💨 **智能去重**：自动对3秒内的重复日志进行去重，有效抑制日志风暴，降低存储和分析成本。\n- 🔍 **过滤功能**：支持关键词过滤，减少无用日志\n- 🧩 **Service Worker 支持**：通过 Service Worker 处理日志，减轻主线程负担\n- 🛠️ **开发辅助工具**：提供日志级别和关键字过滤控制面板，方便开发调试\n- 🧠 **智能序列化**：能够安全处理各类复杂数据结构（如深度嵌套对象、循环引用），并对超长数组进行智能采样（保留头、中、尾关键元素），在保留关键信息的同时有效防止日志超长被截断。\n\n## 安装\n\n```bash\nnpm install logs\n# 或\nyarn add logs\n```\n\n## 使用方法\n\n本库分为**浏览器端**和**服务端**两部分，需要配合使用才能完成日志的采集和上报。\n\n### 浏览器端使用\n\n浏览器端负责日志的记录、收集和发送到服务端接口。\n\n#### 1. 基本日志记录与级别说明\n\n**默认日志级别**:\n- **浏览器端**: `logs` 在浏览器中默认使用 `WARN` 级别 (这是 `loglevel` 库本身的默认行为)。这意味着只有 `log.warn()` 和 `log.error()` 的日志会默认显示在控制台。\n- **服务端 (Node.js)**: `logs` 在 Node.js 环境中默认使用 `TRACE` 级别。这意味着所有级别的日志 (`trace`, `debug`, `info`, `warn`, `error`) 都会被处理。此设置确保了在开发和生产环境中，默认情况下能捕获到最详细的日志，便于调试和第三方服务采集。\n\n**修改日志级别**:\n您可以在代码中随时通过 `log.setLevel()` 方法来修改当前的日志级别。此方法接受的参数为日志级别字符串 (如 `'trace'`, `'debug'`, `'info'`, `'warn'`, `'error'`, `'silent'`) 或对应的数字。\n\n```javascript\nimport log from 'logs';\n\n// 设置日志级别\nlog.setLevel('info');\n\n// 记录不同级别的日志\nlog.trace('这是 trace 级别的日志');  // 不会被记录，因为级别低于 info\nlog.debug('这是 debug 级别的日志');  // 不会被记录，因为级别低于 info\nlog.info('这是 info 级别的日志');    // 会被记录\nlog.warn('这是 warn 级别的日志');    // 会被记录\nlog.error('这是 error 级别的日志');  // 会被记录\n\n// 设置过滤关键词（简单的字符串前缀过滤）\nlog.setKeyWords('login');  // 仅显示以 'login' 开头的日志\n\n/**\n * 关于 setKeyWords 的说明：\n * \n * 1. 这是一个简单的日志过滤机制，仅检查日志的第一个参数\n * 2. 过滤条件：日志的第一个参数必须是字符串，且以设置的关键字开头\n * 3. 过滤设置保存在 localStorage 中，页面刷新后依然有效\n * 4. 限制：\n *    - 只能过滤第一个参数为字符串的日志\n *    - 只能按前缀匹配，不支持正则或其他复杂匹配\n *    - 不适用于第一个参数为对象、数组等非字符串类型的日志\n * 5. 开发环境中，建议使用提供的日志过滤控制面板来设置过滤条件\n */\n\n// 记录带有上下文信息的日志\nlog.info('用户操作', {\n  userId: '12345',\n  action: 'click',\n  component: 'button',\n  timestamp: Date.now()\n});\n```\n\n#### 2. 通过自定义事件上报日志\n\n除了直接使用 `log` 对象记录日志外，您还可以通过触发自定义事件 `logbeacon:log` 来上报日志。这种方式特别适合在以下场景中使用：\n\n- 第三方脚本需要上报日志，但无法直接导入 `logs` 模块\n- 需要在全局范围内统一处理日志上报\n- 需要与其他日志系统集成\n\n**使用方法**：\n\n```javascript\n// 触发 logbeacon:log 自定义事件\nwindow.dispatchEvent(new CustomEvent('logbeacon:log', {\n  detail: {\n    level: 'info',  // 日志级别：'trace', 'debug', 'info', 'warn', 'error'\n    logs: ['用户操作', { userId: '12345', action: 'click' }]  // 日志内容数组\n  }\n}));\n\n// 示例：上报错误日志\nwindow.dispatchEvent(new CustomEvent('logbeacon:log', {\n  detail: {\n    level: 'error',\n    logs: ['支付失败', { orderId: '67890', error: 'Insufficient balance' }]\n  }\n}));\n\n// 示例：在全局错误处理中使用\nwindow.addEventListener('error', (e) => {\n  window.dispatchEvent(new CustomEvent('logbeacon:log', {\n    detail: {\n      level: 'error',\n      logs: [e.message, e.filename, e.lineno]\n    }\n  }));\n});\n```\n\n**事件格式**：\n\n- **事件名称**：`logbeacon:log`\n- **detail 对象**：\n  - `level` (string, 必需)：日志级别，必须是 `'trace'`, `'debug'`, `'info'`, `'warn'`, `'error'` 之一\n  - `logs` (array, 必需)：日志内容数组，可以包含任意类型的数据\n\n**注意事项**：\n\n- 确保在触发事件前已经引入了 `beacon.js` 脚本\n- 如果事件格式不正确（缺少必需字段或 level 值无效），系统会在控制台输出警告信息，但不会抛出错误\n- 通过自定义事件上报的日志会自动获取当前页面的上下文信息（如 URL、UserAgent 等），与直接使用 `log` 对象记录的日志行为一致\n\n**服务端修改默认日志级别 (通过环境变量)**:\n在 Node.js 环境中，您可以通过设置 `LOGS_LEVEL` 环境变量来覆盖模块加载时设置的默认 `TRACE` 级别。支持的级别同 `loglevel` 库（`trace`, `debug`, `info`, `warn`, `error`, `silent`）。\n\n#### 3. 通过自定义事件触发缓冲区立即上报（`logbeacon:flush`）\n\n在已启用 Service Worker 的 beacon 流程中，除按大小、时间间隔或页面卸载自动上报外，还可通过自定义事件 **`logbeacon:flush`** 要求**立刻**将当前缓冲区中的日志发往服务端（内部会向 Service Worker 投递 `flush-now`，与 `page-unload` / `page-hidden` 触发的上报路径一致）。\n\n适用场景包括：\n\n- App 内嵌 WebView 中 `visibilitychange` 不稳定，需由原生经 JS Bridge 主动触发上报\n- 关键操作完成后希望立即落库，而不等待批量间隔或离开页面\n\n**使用方法**（无需 `detail` 参数）：\n\n```javascript\n// 触发一次立即上报（需已引入 beacon.js 且 SW 已就绪）\nwindow.dispatchEvent(new CustomEvent('logbeacon:flush'));\n```\n\n**说明**：\n\n- 部署须满足下文 **「集成 Service Worker」** 的要求：页面已加载 `beacon.js`，且已部署同目录下的 `beacon-sw.js`\n- 若当前缓冲区为空，`flush` 不会产生有效网络请求（行为与常规 flush 一致）\n\n#### 4. 集成 Service Worker\n\n要启用 Service Worker 处理日志，需要将相关文件复制到项目的公共目录，并在页面中引入 beacon.js 脚本：\n\n**步骤 1**: 从git仓库的dist目录复制必要的文件到项目的公共目录\n\n从git仓库的`dist`目录中，根据您使用的日志服务选择对应的子目录：\n- `dist/loki` - 用于Grafana Loki日志服务\n- `dist/sls` - 用于阿里云日志服务(SLS)\n\n将选择的目录中的`beacon.js`和`beacon-sw.js`文件复制到您项目的公共目录下的`beacon`文件夹中（例如`public/beacon/`）。\n\n> **重要提示**：\n> - 两个文件**必须**都放在名为`beacon`的目录下\n> - 文件名必须保持为`beacon.js`和`beacon-sw.js`\n> - 不要修改这些文件的内容\n\n**步骤 2**: 在页面中引入 beacon.js 脚本\n\n```jsx\n// 在 Next.js 的 layout.jsx 或其他布局文件中\nexport default function RootLayout({ children }) {\n  return (\n    <html lang=\"zh-CN\">\n      <body>\n        {children}\n        <script src=\"/beacon/beacon.js\"></script>\n      </body>\n    </html>\n  );\n}\n```\n\n> **注意**: 不需要手动注册 Service Worker，beacon.js 会自动处理注册过程。Service Worker 会自动监听页面状态变化、错误事件和未处理的 Promise 异常。\n\n#### 5. (可选) 配置日志上报地址\n\n默认情况下，日志数据会被发送到 `/api/beacon` 接口。您可以通过在引入 `beacon.js` 的 `<script>` 标签上添加 `data-beacon-url` 属性来自定义上报地址。\n\n例如，要将日志发送到 `https://your-custom-endpoint.com/logs`：\n\n```html\n<script \n  src=\"/beacon/beacon.js\" \n  data-beacon-url=\"https://your-custom-endpoint.com/logs\"\n></script>\n```\n\n> **重要提示**：服务端需要相应地在您配置的地址上创建接收日志的接口。\n\n### 服务端使用\n\n服务端负责接收浏览器发送的日志数据，并将其转发到日志服务。\n\n#### 1. 创建日志接收接口\n\n需要创建一个 `/api/beacon` 接口来接收浏览器发送的日志数据。\n\n#### 2. 阿里云日志服务 (SLS) 集成\n\n```javascript\n// src/app/api/beacon/route.ts (App Router) 或 pages/api/beacon.ts (Pages Router)\nimport { createLogClient } from 'logs/sls';\n\nconst slsClient = createLogClient(\n  'ap-southeast-1.log.aliyuncs.com',  // 服务入口\n  'YOUR_ACCESS_KEY_ID',               // 访问密钥ID\n  'YOUR_ACCESS_KEY_SECRET',           // 访问密钥密码\n  'YOUR_PROJECT_NAME',                // 项目名称\n  'YOUR_LOGSTORE_NAME'                // 日志库名称\n);\n\nexport async function POST(request) {\n  const body = await request.arrayBuffer();\n  await slsClient(new Uint8Array(body));\n  return new Response(null, { status: 204 });\n}\n```\n\n#### 3. Grafana Loki 集成\n\n```javascript\n// src/app/api/beacon/route.ts (App Router) 或 pages/api/beacon.ts (Pages Router)\nimport { createLogClient } from 'logs/loki';\n\nconst lokiClient = createLogClient(\n  'https://logs-prod-xxx.grafana.net',  // Loki 服务地址\n  'YOUR_USERNAME',                      // 用户名\n  'YOUR_API_TOKEN'                      // API Token\n);\n\nexport async function POST(request) {\n  const body = await request.arrayBuffer();\n  await lokiClient(new Uint8Array(body));\n  return new Response(null, { status: 204 });\n}\n```\n\n### Next.js 完整示例\n\n#### 1. 服务端接口实现\n\n```typescript\n// src/app/api/beacon/route.ts\nimport { NextRequest } from 'next/server';\nimport { createLogClient } from 'logs/loki';\n\n// 创建 Loki 日志客户端\nconst lokiClient = createLogClient(\n  'https://logs-prod-xxx.grafana.net',\n  'YOUR_USERNAME',\n  'YOUR_API_TOKEN'\n);\n\nexport async function POST(request: NextRequest) {\n  try {\n    // 获取请求体中的二进制数据\n    const payload = await request.arrayBuffer();\n    \n    // 发送日志数据\n    await lokiClient(new Uint8Array(payload));\n    \n    // 返回成功响应\n    return new Response(null, { status: 204 });\n  } catch (error) {\n    console.error('日志处理失败:', error);\n    return new Response('Error processing logs', { status: 500 });\n  }\n}\n```\n\n#### 2. 在页面中引入 beacon.js 脚本\n\n```jsx\n// src/app/layout.jsx 或其他布局文件\nexport default function RootLayout({ children }) {\n  return (\n    <html lang=\"zh-CN\">\n      <body>\n        {children}\n        <script src=\"/beacon/beacon.js\"></script>\n      </body>\n    </html>\n  );\n}\n```\n\n#### 5. 使用日志记录组件\n\n```tsx\n// src/components/Logger.tsx\n'use client';\n\nimport log from 'logs';\nimport { useEffect } from 'react';\n\nexport default function Logger() {\n  useEffect(() => {\n    // 设置日志级别\n    log.setLevel('info');\n    \n    // 记录日志\n    log.info('页面已加载', {\n      page: window.location.pathname,\n      timestamp: Date.now()\n    });\n    \n    // 监听组件卸载\n    return () => {\n      log.info('页面已卸载');\n    };\n  }, []);\n  \n  return null; // 这是一个无UI组件\n}\n```\n\n## 项目架构\n\n### 模块结构\n\n```\nlogs/\n├── browser/        # 浏览器端专用模块\n│   ├── beacon.js       # 日志发送客户端 (Client)\n│   └── beacon-sw.js    # 日志处理 Service Worker\n├── common/         # 公共工具和组件\n│   ├── LogAggregator.js  # 日志聚合器\n│   ├── LogProcessor.js   # 日志处理器 (去重、过滤)\n│   ├── LogStore.js       # 日志持久化 (IndexedDB)\n│   └── utils.js          # 工具函数\n├── core/           # 核心日志模块 (isomorphic)\n│   └── logs.js         # 日志主入口\n├── sls/            # 阿里云日志服务 (SLS) 集成\n│   ├── logEncoder.js   # SLS 日志格式编码器\n│   └── slsClient.js    # SLS 服务端客户端\n├── loki/           # Grafana Loki 集成\n│   ├── logEncoder.js   # Loki 日志格式编码器\n│   └── lokiClient.js   # Loki 服务端客户端\n├── types/          # TypeScript 类型定义\n└── eslint/         # ESLint 插件\n    └── index.js    # 用于检测和转换 console 调用\n```\n\n### 客户端架构\n\n客户端日志系统由三个主要部分组成：\n\n1. **核心日志模块**：提供日志打印API和日志级别控制\n2. **浏览器集成模块**：注册Service Worker并监听浏览器事件\n3. **Service Worker模块**：接收、聚合和上报日志\n\n### 日志上报策略\n\n系统采用智能上报策略，在以下情况触发日志上报：\n\n1. **定时上报**：默认每5分钟上报一次日志\n2. **数据量触发**：当缓存的日志数据量超过预设阈值（默认3MB）时立即上报\n3. **页面状态变化**：当页面隐藏或卸载时触发上报\n\n## 数据流程\n\n```mermaid\nsequenceDiagram\n    participant User as 用户代码\n    participant Core as 核心日志模块\n    participant BeaconJS as beacon.js (主线程)\n    participant LogProc as LogProcessor (主线程)\n    participant SW as Service Worker\n    participant LogAgg as LogAggregator (SW中)\n    participant API as API接口\n    participant LogClient as 日志客户端\n    participant LogService as 日志服务\n\n    User->>Core: 调用日志方法 (log.info)\n\n    alt Service Worker 已激活\n        Core->>SW: 发送消息 (postMessage)\n        SW->>LogAgg: 转发日志数据\n        LogAgg-->>LogAgg: 聚合/压缩/持久化到IndexedDB\n        \n        alt 需要发送日志 (定时/数据量/页面卸载)\n            LogAgg->>API: fetch()\n            API->>LogClient: 调用日志客户端\n            LogClient->>LogService: 上报日志\n        else 暂存日志\n            LogAgg-->>LogAgg: 将日志存入 IndexedDB\n        end\n\n    else Service Worker 未激活/异常\n        Core->>BeaconJS: 触发自定义事件 (sendLog)\n        BeaconJS->>LogProc: 监听到事件, 调用 addLog\n        LogProc-->>LogProc: 将日志存入IndexedDB (等待SW激活)\n        Note right of LogProc: 主线程仅暂存日志, 不负责上报\n    end\n```\n\n日志数据流程详解：\n\n1. **用户代码打印日志**：\n   - 用户代码调用日志方法（如 log.info/warn/error）\n   - 核心日志模块接收日志请求\n\n2. **核心模块处理**：\n   - 核心模块检测 Service Worker 是否存在\n   - 如果 Service Worker 存在，通过 postMessage 发送消息\n   - 如果 Service Worker 不存在，发送自定义事件\n\n3. **页面事件处理**：\n   - beacon.js 监听页面隐藏/显示、错误事件和 unhandledrejection 事件\n   - 事件触发时，beacon.js 同样检测 Service Worker 是否存在\n   - 根据 Service Worker 状态选择发送消息或直接处理\n\n4. **LogAggregator 处理**：\n   - 所有日志和事件最终汇聚到 LogAggregator\n   - LogAggregator 根据策略决定是暂存日志还是立即发送\n   - 触发发送的条件包括：定时上报、数据量超限、页面状态变化\n\n5. **日志上报**：\n   - 当需要发送日志时，LogAggregator 将压缩后的日志数据发送到 /api/beacon 接口\n   - API 接口调用相应的日志客户端(SLS或Loki)\n   - 日志客户端将日志上报到日志服务\n   - 最终通过日志服务的界面查看和分析日志\n\n## 日志内容\n\n系统会自动收集以下信息：\n\n| 字段       | 作用                                                         |\n| ---------- | ------------------------------------------------------------ |\n| time       | 毫秒级时间戳，日志发生的时间（注：Loki编码器会将其转换为纳秒级时间戳）|\n| level      | 日志级别；\"trace\"  \"debug\"  \"info\"  \"warn\"  \"error\"          |\n| content    | 序列化之后的日志内容                                         |\n| clientUuid | 客户端的唯一ID，存储在localStorage中                         |\n| tabId      | 浏览器标签页的唯一ID，存储在sessionStorage中，用于区分不同标签页的日志 |\n| userAgent  | 浏览器的userAgent信息，使用UAParser进行解析                  |\n| screen     | 用户的屏幕宽高                                               |\n| window     | 用户的浏览器可视窗口宽高                                     |\n| url        | 日志打印时的页面URL                                          |\n| referrer   | 页面来源 URL (`document.referrer`)                             |\n| ip         | 用户的公网IP（每天更新一次）                                 |\n| region     | 用户的地理位置（国家/地区）                                  |\n\n### 标签页标识 (tabId)\n\n系统会自动为每个浏览器标签页生成唯一的 `tabId`，用于区分不同标签页的日志：\n\n- **生成方式**：使用16位大写十六进制随机字符串\n- **存储位置**：存储在 `sessionStorage` 中\n- **生命周期**：标签页关闭后重新打开会生成新的 `tabId`\n- **用途**：当用户同时打开多个标签页时，可以通过 `tabId` 字段对日志进行分组分析\n\n**使用场景**：\n- 多标签页环境下的日志分析\n- 用户行为轨迹追踪\n- 标签页级别的错误监控\n\n**示例**：\n```javascript\n// 不同标签页的日志会有不同的 tabId\n// 标签页1的日志\n{ tabId: 'A1B2C3D4E5F67890', url: 'https://example.com/page1', ... }\n\n// 标签页2的日志  \n{ tabId: 'B2C3D4E5F6789012', url: 'https://example.com/page2', ... }\n```\n\n## 扩展基础属性\n\n系统支持扩展日志的基础属性，允许您添加自定义的上下文信息。\n\n### 使用方法\n\n在页面中设置 `window.LOGS_CONTEXT` 对象，系统会自动将这些属性合并到每条日志的基础数据中：\n\n```javascript\n// 设置扩展属性\nwindow.LOGS_CONTEXT = {\n  pageType: 'news/:id',        // 页面类型（归类后的路径）\n  userId: '12345',             // 用户ID\n  sessionId: 'abc-def-ghi',    // 会话ID\n  userRole: 'admin',           // 用户角色\n  environment: 'production'    // 环境标识\n};\n\n// 正常使用日志记录\nlog.info('用户操作', { action: 'click' });\n```\n\n### 示例效果\n\n设置扩展属性后，每条日志都会自动包含这些信息：\n\n```javascript\n// 日志数据示例\n{\n  // 系统基础属性\n  time: 1760525710873,\n  clientUuid: '...',\n  tabId: 'A1B2C3D4E5F67890',  // 标签页唯一ID\n  userAgent: '...',\n  screen: '...',\n  window: '...',\n  url: 'https://example.com/news/123',\n  referrer: '...',\n  \n  // 扩展属性\n  pageType: 'news/:id',\n  userId: '12345',\n  sessionId: 'abc-def-ghi',\n  userRole: 'admin',\n  environment: 'production'\n}\n```\n\n### 注意事项\n\n- 扩展属性会与系统基础属性合并，如果属性名冲突，扩展属性会覆盖系统属性\n- 建议使用有意义的属性名，避免与系统属性冲突\n- **扩展属性的值必须是有效的字符串**（非空字符串），非字符串值会被自动过滤掉\n- 如果不设置 `window.LOGS_CONTEXT`，系统行为与之前完全一致\n\n## ESLint 插件\n\n本库提供了 ESLint 插件，可以帮助您将代码中的 `console.xxx` 调用自动替换为 `log.xxx`，保持日志记录的一致性。\n\n### 使用方法\n\n#### 1. 在 ESLint 配置中引入插件\n\n```javascript\n// .eslintrc.js\nconst logsTransformPlugin = require('logbeacon/eslint');\n\nmodule.exports = {\n  plugins: {\n    'logs-transform': logsTransformPlugin\n  },\n  rules: {\n    'logs-transform/prefer-log-over-console': 'warn' // 或 'error'\n  }\n};\n```\n\n#### 2. 配置选项\n\n插件支持以下配置选项，所有配置项都是**可选的**：\n\n```javascript\n// .eslintrc.js\nmodule.exports = {\n  // ...\n  rules: {\n    'logs-transform/prefer-log-over-console': ['warn', {\n      // 以下所有配置项都是可选的，如果不提供将使用默认值\n      importSource: 'logbeacon',  // 导入源，默认为 'logbeacon'\n      importName: 'log',          // 导入名称，默认为 'log'\n      methodMap: {                // 方法映射，可自定义 console 方法到 log 方法的映射\n        log: 'debug',            // console.log 映射到 log.debug\n        debug: 'debug',          // console.debug 映射到 log.debug\n        info: 'info',            // console.info 映射到 log.info\n        warn: 'warn',            // console.warn 映射到 log.warn\n        error: 'error',          // console.error 映射到 log.error\n        trace: 'trace'           // console.trace 映射到 log.trace\n      }\n    }]\n  }\n};\n```\n\n**默认配置**\n\n如果不提供任何配置项，插件将使用以下默认值：\n\n```javascript\n// 默认配置\n{\n  importSource: 'logbeacon',\n  importName: 'log',\n  methodMap: {\n    log: 'debug',\n    debug: 'debug',\n    info: 'info',\n    warn: 'warn',\n    error: 'error',\n    trace: 'trace'\n  }\n}\n```\n\n#### 3. 自动修复\n\n插件支持自动修复功能，可以通过 `eslint --fix` 命令自动将代码中的 `console.xxx` 调用替换为 `log.xxx`，并自动添加必要的导入语句。\n\n```bash\nnpx eslint --fix src/\n```\n\n#### 4. 插件功能\n\n- 自动检测 `console.log`、`console.info`、`console.debug`、`console.warn`、`console.error` 和 `console.trace` 调用\n- 根据配置的映射规则替换为对应的 `log` 方法\n- 自动添加必要的导入语句\n- 支持 ESM 和 CommonJS 两种模块系统\n- 支持检测和替换解构赋值的 console 方法（如 `const { log } = console`）\n\n## 开发辅助工具\n\n为了方便开发调试，我们提供了一个日志过滤工具，可以在开发环境中使用：\n\n### 使用方法\n\n#### 1. 复制文件\n\n从 `dist/dev-tools` 目录中复制 `log-filter.js` 到您项目的公共目录下的 `beacon` 文件夹中（与 `beacon.js` 和 `beacon-sw.js` 放在同一目录）。\n\n```\n项目目录\n└── public/\n    └── beacon/\n        ├── beacon.js         # 从 dist/sls 或 dist/loki 复制\n        ├── beacon-sw.js      # 从 dist/sls 或 dist/loki 复制\n        └── log-filter.js     # 从 dist/dev-tools 复制\n```\n\n#### 2. 在页面中引入脚本\n\n```html\n<!-- 仅在开发环境中引入 -->\n<script src=\"/beacon/log-filter.js\"></script>\n```\n\n或者在 Next.js 等框架中，您可以有条件地引入：\n\n```jsx\n// 在 Next.js 的 layout.jsx 或其他布局文件中\nexport default function RootLayout({ children }) {\n  const isDev = process.env.NODE_ENV === 'development';\n  \n  return (\n    <html lang=\"zh-CN\">\n      <body>\n        {children}\n        <script src=\"/beacon/beacon.js\"></script>\n        {isDev && <script src=\"/beacon/log-filter.js\"></script>}\n      </body>\n    </html>\n  );\n}\n```\n\n#### 3. 功能说明\n\n该工具提供了一个浮动控制面板，允许您在运行时：\n\n- **调整日志级别**：选择 trace、debug、info、warn、error 或 silent 级别\n- **设置关键字过滤**：输入关键字，日志如果以关键字开头则显示，否则不显示\n- **清除过滤设置**：一键清除当前的过滤关键字\n\n所有设置都会保存在浏览器的 localStorage 中，刷新页面后依然有效。\n\n##### 关键字过滤机制说明\n\n关键字过滤是一个简单实用的开发辅助功能，它的工作原理如下：\n\n1. **过滤机制**：只检查日志的第一个参数，如果是字符串且以设置的关键字开头，则显示该日志\n2. **存储方式**：关键字设置保存在 localStorage 的 `_logFilterKeyWords` 键中\n3. **使用场景**：当您需要关注特定模块或功能的日志时，可以为这些日志添加统一前缀，然后设置该前缀作为过滤关键字\n\n**限制**：\n\n- 只能过滤第一个参数为字符串的日志\n- 只能按前缀匹配，不支持正则或其他复杂匹配\n- 不适用于第一个参数为对象、数组等非字符串类型的日志\n\n**最佳实践**：\n\n为了更好地利用这一功能，建议在代码中为相关模块的日志添加统一前缀，例如：\n\n```javascript\n// 用户模块日志\n log.info('user: 用户登录成功', { userId: '12345' });\n\n// 支付模块日志\n log.info('payment: 支付请求发送', { orderId: '67890' });\n```\n\n这样在开发调试时，可以通过设置关键字为 `user:` 或 `payment:` 来只显示特定模块的日志。\n\n> **注意**：该工具仅在开发环境（localhost 或 127.0.0.1）中显示控制面板，生产环境中不会显示。\n\n## 许可证\n\nMIT\n","readmeFilename":"README.md"}