{"_id":"@0xdoublesharp/doublcov","_rev":"13-c518609a14fad7652f5fc6f564abbd98","name":"@0xdoublesharp/doublcov","dist-tags":{"latest":"0.4.4"},"versions":{"0.0.0":{"name":"@0xdoublesharp/doublcov","version":"0.0.0","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.0.0","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/index.js"},"dist":{"shasum":"9dc8ad99fb13c7bae55eab99780b897887fac670","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.0.0.tgz","fileCount":21,"integrity":"sha512-oDBqWmLFwzHTAuzdl3ejh5u3Ri/qDqlOZEUrcer4pWotbnqB06JyuHshKPK+rmGUiiBQVVnMZj3zx1T4U+VNpw==","signatures":[{"sig":"MEQCIFeIjS/KhKPD/pP3C02U/XJE7UU8U3FWz7szx2Vkc502AiBMmJFsdLpCrqNDHIAFS/ez5+QN5cvrmMOmtGvPzR6alg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8245943},"type":"module","_from":"file:0xdoublesharp-doublcov-0.0.0.tgz","engines":{"node":">=22"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs"},"_npmUser":{"name":"doublesharp","email":"jsilver@doublesharp.com"},"_resolved":"/private/var/folders/cp/46g8xl4s7j162v11pw1cb8940000gn/T/2a7b69dc180013724d47ee52257bf57a/0xdoublesharp-doublcov-0.0.0.tgz","_integrity":"sha512-oDBqWmLFwzHTAuzdl3ejh5u3Ri/qDqlOZEUrcer4pWotbnqB06JyuHshKPK+rmGUiiBQVVnMZj3zx1T4U+VNpw==","repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.6.2","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"22.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@0xdoublesharp/doublcov-core":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.0.0_1777104689119_0.6136268638802338","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@0xdoublesharp/doublcov","version":"0.0.1","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.0.1","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/index.js"},"dist":{"shasum":"c477a6277c36f233e95aa956ae21be0fba1204e6","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.0.1.tgz","fileCount":21,"integrity":"sha512-YyWojKxgyv+Bow+vmRoPhmjvPDRzfRYlECdZF1FDaczimUKNccttK3VlqMYSojoK3L34Z0/MTUewLpych+yZ1Q==","signatures":[{"sig":"MEUCIQD4OBCjHo6SoeZvWiwj64UDFVbQuKM8xC1J8OPbLNndEQIgHUBEF0yPxndOl3j5cQKocUoGKsKjle9JuHuhj8pl8M0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8247265},"type":"module","_from":"file:0xdoublesharp-doublcov-0.0.1.tgz","engines":{"node":">=22"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs"},"_npmUser":{"name":"doublesharp","email":"jsilver@doublesharp.com"},"_resolved":"/private/var/folders/cp/46g8xl4s7j162v11pw1cb8940000gn/T/7a5ed6f7a9b5962abade102d312d1c71/0xdoublesharp-doublcov-0.0.1.tgz","_integrity":"sha512-YyWojKxgyv+Bow+vmRoPhmjvPDRzfRYlECdZF1FDaczimUKNccttK3VlqMYSojoK3L34Z0/MTUewLpych+yZ1Q==","repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.6.2","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"22.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@0xdoublesharp/doublcov-core":"0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.0.1_1777104843586_0.42278251719490867","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@0xdoublesharp/doublcov","version":"0.1.0","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.1.0","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/index.js"},"dist":{"shasum":"a963794f0265e1f3712dc205585afb05ecc6bc81","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.1.0.tgz","fileCount":21,"integrity":"sha512-Abvqnab9btqGRmVs8K5C6uO7txitnN0G1GqheDcaczlTA1Jjmxw+49o7qG4OefJ7JgF/1TXFzTqdiEN/x3Nk2Q==","signatures":[{"sig":"MEQCIDaJSxxEYQEdY5eM0QfHUHDnsNJR/zOre/ap21xVFrRBAiBODEG6nC2E2GXjc4kAn85Uaz8I6oLOfUtNktIBgrhpVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8258287},"type":"module","engines":{"node":">=22"},"gitHead":"3ef2f55e177cdbca43aab6dca2577f71d2f0aa0a","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.1.0_1777106606621_0.3347175049142277","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@0xdoublesharp/doublcov","version":"0.2.0","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.2.0","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/index.js"},"dist":{"shasum":"84f2a7e932cdf29ea55187a407a9f4d43f4cac43","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.2.0.tgz","fileCount":21,"integrity":"sha512-QeDWxMyim7QPHtu4SWVmBDCZjzblaciq9Tv9T36etbgTZb+/e4xtnr015oLuHUpomiX8di1tDLJ7SHqpaJsmuA==","signatures":[{"sig":"MEYCIQCVl6btO+M0UZSiHCHYyTt+B2W6ZXZOqAmxVot41ZqZowIhAKXAOlF6vzb3BjcGCC8pdoT/rx+k/VEQu4ofveNrh0Nk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8259352},"type":"module","engines":{"node":">=22"},"gitHead":"b7be134036920232ac52346dcb3e3203d2667372","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.2.0_1777110362101_0.5340607095280121","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@0xdoublesharp/doublcov","version":"0.2.1","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.2.1","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/index.js"},"dist":{"shasum":"bd2a73a32ae977fa0078a3b8a996153634701286","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.2.1.tgz","fileCount":21,"integrity":"sha512-J+C76mnXOVCvw8MylONDYgyOyxKkqXic71SobVZ3JDJFJIIayZtIrMNfRLBDQSBgEJrICF+oro2Yvb3JE34CmA==","signatures":[{"sig":"MEYCIQCDhxbtWHpxYupgaTnck8lx3txGHemGBjewlEvO1Unz3QIhAMkOoy2z47MSAJ+BNgSNqR485XV5t61GMUCRMO/mtx+B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8346232},"type":"module","engines":{"node":">=22"},"gitHead":"85da4c7b802921f070f08e6a7aea506d162405cc","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.2.1_1777150155143_0.39090754316259146","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@0xdoublesharp/doublcov","version":"0.3.0","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.3.0","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/index.js"},"dist":{"shasum":"b2c616b1983632a1cb54855a2deb1f68946345ae","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.3.0.tgz","fileCount":21,"integrity":"sha512-KTfXv6ywart/aaytQR5YTH5m7fYiResk4cEIDjjd0ApXGpsKhY0Z7l0gZUCF3KtaY3WNGZ5nRCkeZ0lJni2Ijg==","signatures":[{"sig":"MEQCIFr2DuCWOoE9xOIG2F6imBcFx7vNCQmi+j/ok6BwGul1AiBlJ8FRwyLkZJTECPhyaRf0sWh3EkFUYCBwQnSol9RBFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8388048},"type":"module","engines":{"node":">=22"},"gitHead":"e51241cd4ad3359edff2411600ed2b35ddb6573c","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.3.0_1777156253882_0.5353045093852375","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@0xdoublesharp/doublcov","version":"0.3.1","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.3.1","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/index.js"},"dist":{"shasum":"1f13ed5b93c017d0d11d50a0b1c78ab7b609f549","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.3.1.tgz","fileCount":21,"integrity":"sha512-sO0Xl9v0kpCDA9hjO2+Wu2urkIExH6zCK/qVkQmCYAY6yK6SdmaEifRPBNG5nr0Zv3lRRArNQynFDT9ry7dGTg==","signatures":[{"sig":"MEQCIEjkyhfF4fo2kZdz6pe9XRcvBPVQUSamc13DWvtrlV5QAiACgM1FARI2R1G/CRZUFTO2yG0nJKrlFLoB0Cj6OOLmtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8399568},"type":"module","engines":{"node":">=22"},"gitHead":"1a71ed2e70b1679fc0d6bc832777f9d44b446d84","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.3.1_1777157835941_0.6689941334564826","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@0xdoublesharp/doublcov","version":"0.3.2","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.3.2","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/index.js"},"dist":{"shasum":"6c6884d4a5299921e37483e04c20e892574c8eff","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.3.2.tgz","fileCount":21,"integrity":"sha512-jb0W2e0bFflYJj9sWME2s72GWC0QvzFXEptIokfEOXqEu+wRMUAySF9ELAIvwDgeGBhFYFaFRqvC01yZbIw10g==","signatures":[{"sig":"MEUCIQDzwa8tAUDJN4SwGITKLPIoC2VyUbw3Kgjyw1LUtVEZDAIgfFPQu34LeKFiZDLZryARwzrkhe8GkOQhJJtRz3i+ajI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8401220},"type":"module","engines":{"node":">=22"},"gitHead":"881f7049f10e34f4959a2543fb2396c3108e1d99","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.3.2_1777158433716_0.5063006326019139","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@0xdoublesharp/doublcov","version":"0.4.0","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.4.0","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/bin.js"},"dist":{"shasum":"b710b005af01bf6a1f43c8c1ba44c637a663b76b","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.4.0.tgz","fileCount":29,"integrity":"sha512-dXuH46eVtOaIu30/KrOTCQhoE/8gVqCpRHnzO6jwEDoKDlKyw3gszrbYspMtDgXZWh8A5kHGeJ9X8+obvvfugg==","signatures":[{"sig":"MEUCIEeL+qIHcuJMD9UyhArR4Gpxj11kRedGsO9zd54dcBkDAiEAtxhP3JxA9S4KSBAzxJgN4ancUCxzmLGlz5969i52PaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8744792},"type":"module","engines":{"node":">=22"},"gitHead":"a4e44f0e8409660a50d58f61c3207d4e225383b4","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","test:fuzz":"vitest run test/fuzz.test.ts","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@vitest/coverage-v8":"^4.1.5","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.4.0_1777191298575_0.5190089183072686","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@0xdoublesharp/doublcov","version":"0.4.1","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.4.1","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/bin.js"},"dist":{"shasum":"8ea651ebe0f0533d0c65a15d9a0351c10f7e8b8e","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.4.1.tgz","fileCount":29,"integrity":"sha512-P1wWNsojnQ+9dqcIjUi1zUchJpbZmefdRD4A9m9l+IguNojI1hQg9earQOUyn9Oe1ola6spatq1War0BKte+RQ==","signatures":[{"sig":"MEYCIQDNeCPs4uQAafnH0ILrnGKU+otdVD97gagitgQ3oO+6EgIhALvRbNYeTPitbG9GHTmRV/c70eoePR6f5HyHTwTan+YW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8744888},"type":"module","engines":{"node":">=22"},"gitHead":"e265e348f5cd8e8fa80247adba288fa6c331d8db","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","test:fuzz":"vitest run test/fuzz.test.ts","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@vitest/coverage-v8":"^4.1.5","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.4.1_1777192512305_0.046011037005192934","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@0xdoublesharp/doublcov","version":"0.4.2","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.4.2","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/bin.js"},"dist":{"shasum":"5b2944628b4e3c7b230f36b8577431dcf7704e5e","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.4.2.tgz","fileCount":30,"integrity":"sha512-zZABf2x+KkJTTaXbyAkuYlxpPpgT2Vl31tP9VP1jGcZlSdeDu89T5rr5TsbMUgUsJWleNjdPV+i5e5fXTNlaDA==","signatures":[{"sig":"MEUCIQDwLoyTynZ0hFqWpez6IKel9NxIvWUyKfbm7y/WKq+19AIgK2tbIvakNIiohvDlxraLDP49bCkruGgj+hkLWAL1luo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9309525},"type":"module","engines":{"node":">=22"},"gitHead":"fa1ca41bb6848bf781adec1140ca388d1d4ee553","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","test:fuzz":"vitest run test/fuzz.test.ts","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@vitest/coverage-v8":"^4.1.5","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.4.2_1777233960233_0.5088736755167285","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@0xdoublesharp/doublcov","version":"0.4.3","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"author":{"name":"0xdoublesharp"},"license":"MIT","_id":"@0xdoublesharp/doublcov@0.4.3","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"homepage":"https://github.com/doublesharp/doublcov#readme","bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"bin":{"doublcov":"dist/bin.js"},"dist":{"shasum":"32ced97c771c83ec3d58144aa123e74f983e9521","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.4.3.tgz","fileCount":30,"integrity":"sha512-cTZF+I3l8zeo9a1gSsbmj7OzO8i/ycWuWZgB3uy4kgdXb4DR94mbb/Do7nnVsUIqbsVeWn7abzHonk+VdTO9uw==","signatures":[{"sig":"MEUCIQDfrUNel1wd9/OMGBFV51ZvWQMfjkz8RGjwk35HnbFIZwIgO88+xbMZQhW+V65TQQ6tygh7BADOAo8jiOuuKfaeda0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9316779},"type":"module","engines":{"node":">=22"},"gitHead":"a02da9da30158e2f8bb7ed9ebf87404496aa8f3b","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","test:fuzz":"vitest run test/fuzz.test.ts","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.13.0","description":"Find what's missing with static LCOV coverage reports","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.18","@vitest/coverage-v8":"^4.1.5","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/doublcov_0.4.3_1777273557188_0.98468957548721","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"_id":"@0xdoublesharp/doublcov@0.4.4","bin":{"doublcov":"dist/bin.js"},"bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"dist":{"shasum":"e377259459429ea8fba127ff8a2edbba6fc11cf4","tarball":"https://registry.npmjs.org/@0xdoublesharp/doublcov/-/doublcov-0.4.4.tgz","fileCount":30,"integrity":"sha512-W694m5Kx0rCNmgCZHwN85/WhSW6ZDOPOnRKpBijL/xfZqTGjC7GCFcaG7BR9c2pgGvG7lBOZn1ttHbznScJKVg==","signatures":[{"sig":"MEUCIQCDUywekbPTRcyoffP1Ivw5pM5a8YlIjdkpTRgQHIe2ZQIgYAPZafuoQBXuj64+TsaQLm7C08HH2ATFMFAoads9IW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID4PHL46Z8A2dphUA4gXIGW/q7FgywKIDWgUA1uxlzByAiEAvUBBkNMHtosxVao3ZIuitYJJwyJ5zQOq50BRZmNNwn4="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xdoublesharp%2fdoublcov@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9733655},"name":"@0xdoublesharp/doublcov","type":"module","author":{"name":"0xdoublesharp"},"engines":{"node":">=22"},"gitHead":"e583cd266597101b5be852d47600ba9ab6b731e8","license":"MIT","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json --emitDeclarationOnly && node ../../scripts/build-cli.mjs","clean":"rm -rf dist *.tsbuildinfo","test:fuzz":"vitest run test/fuzz.test.ts","typecheck":"tsc -p tsconfig.json --noEmit","bundle:web":"node ../../scripts/copy-web-assets.mjs","prepublishOnly":"pnpm -w run verify:publish"},"version":"0.4.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0b027c68-9e91-41ca-8044-de8b4006e60c"}},"homepage":"https://github.com/doublesharp/doublcov#readme","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"_npmVersion":"12.0.2","description":"Find what's missing with static LCOV coverage reports","directories":{},"maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","esbuild":"latest","publint":"^0.3.24","@vitest/coverage-v8":"^5.0.0","@0xdoublesharp/doublcov-core":"workspace:*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/doublcov_0.4.4_1789192577161_0.334952901376397"}}},"time":{"created":"2026-04-25T08:11:28.680Z","modified":"2026-09-12T05:56:17.765Z","0.0.0":"2026-04-25T08:11:29.363Z","0.0.1":"2026-04-25T08:14:03.815Z","0.1.0":"2026-04-25T08:43:26.821Z","0.2.0":"2026-04-25T09:46:02.284Z","0.2.1":"2026-04-25T20:49:15.360Z","0.3.0":"2026-04-25T22:30:54.081Z","0.3.1":"2026-04-25T22:57:16.182Z","0.3.2":"2026-04-25T23:07:13.886Z","0.4.0":"2026-04-26T08:14:58.766Z","0.4.1":"2026-04-26T08:35:12.563Z","0.4.2":"2026-04-26T20:06:00.539Z","0.4.3":"2026-04-27T07:05:57.370Z","0.4.4":"2026-09-12T05:56:17.332Z"},"bugs":{"url":"https://github.com/doublesharp/doublcov/issues"},"author":{"name":"0xdoublesharp"},"license":"MIT","homepage":"https://github.com/doublesharp/doublcov#readme","keywords":["doublcov","foundry","forge","hardhat","vite","solidity","typescript","javascript","python","rust","c","cpp","coverage","lcov","static-report"],"repository":{"url":"git+https://github.com/doublesharp/doublcov.git","type":"git","directory":"packages/cli"},"description":"Find what's missing with static LCOV coverage reports","maintainers":[{"name":"doublesharp","email":"jsilver@doublesharp.com"}],"readme":"<div align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/doublesharp/doublcov/main/docs/doublcov.png\" alt=\"Doublcov report mark\" width=\"132\">\n  <h1>@0xdoublesharp/doublcov</h1>\n  <p><strong>Find what's missing in LCOV coverage.</strong></p>\n  <p>\n    Static, self-contained coverage reports with source browsing, uncovered navigation,\n    history, diagnostics, syntax highlighting, themes, and declarative UI hooks.\n  </p>\n  <p>\n    <a href=\"https://www.npmjs.com/package/@0xdoublesharp/doublcov\"><img alt=\"npm\" src=\"https://img.shields.io/npm/v/@0xdoublesharp/doublcov?color=2ea043\"></a>\n    <a href=\"https://github.com/doublesharp/doublcov/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://img.shields.io/github/actions/workflow/status/doublesharp/doublcov/ci.yml?branch=main&label=ci\"></a>\n    <a href=\"https://github.com/doublesharp/doublcov/blob/main/LICENSE\"><img alt=\"License: MIT\" src=\"https://img.shields.io/badge/license-MIT-blue\"></a>\n  </p>\n</div>\n\nBuild from an existing `lcov.info` file or run one of the built-in coverage builders first:\n\n```bash\nnpx @0xdoublesharp/doublcov build --lcov lcov.info --sources src\n```\n\n## What You Get\n\n- A portable static report directory you can upload to CI artifacts or any static host.\n- Built-in builders for Foundry, Hardhat, Vitest, Jest, Node/V8, pytest, Rust coverage tools, and gcov/lcov.\n- Source-level navigation for uncovered lines, branch/function totals, parser diagnostics, and historical coverage.\n- A GitHub Action, npm package, standalone binaries, and Docker image for different project shapes.\n\n## Install\n\n```bash\nnpm install --save-dev @0xdoublesharp/doublcov\n```\n\nor:\n\n```bash\npnpm add -D @0xdoublesharp/doublcov\n```\n\nRun without installing:\n\n```bash\nnpx @0xdoublesharp/doublcov build\n```\n\nor:\n\n```bash\npnpm dlx @0xdoublesharp/doublcov build\n```\n\nThe executable is:\n\n```bash\ndoublcov\n```\n\n## Commands\n\nBuild from existing LCOV:\n\n```bash\ndoublcov build \\\n  --lcov lcov.info \\\n  --sources src\n```\n\nRun a builder and then build the report:\n\n```bash\ndoublcov foundry -- --exclude-tests --ir-minimum\ndoublcov hardhat\ndoublcov vite\ndoublcov jest\ndoublcov v8\ndoublcov pytest\ndoublcov cargo-llvm-cov\ndoublcov cargo-tarpaulin\ndoublcov lcov-capture\n```\n\nLocal builds open the generated `index.html` automatically. Open an existing report directory:\n\n```bash\ndoublcov open coverage/report\n```\n\nFor large projects or hosted reports, generate split static assets:\n\n```bash\ndoublcov build --mode static --no-open\ndoublcov open coverage/report\n```\n\n`standalone` mode is the local default and writes a self-contained `index.html` that can be opened from disk. `static` mode is the CI default and writes `index.html`, assets, and lazy-loaded JSON files for GitHub Pages and other static hosts. `doublcov open` detects the report type: standalone reports open directly, and static reports are served on an available local port. Static preview runs in the foreground and stops automatically after 30 minutes unless extended from the browser.\n\nGeneric `build` defaults:\n\n- LCOV path: `lcov.info`\n- source path: `src`\n- output directory: `coverage/report`\n- history file: `.doublcov/history.json`\n\nBuilder commands also read ecosystem config and place the report next to the resolved LCOV file when `--out` is not set.\n\n## Supported Builders\n\n- `foundry` / `forge`: runs `forge coverage --report lcov`\n- `hardhat`: runs `npx hardhat coverage`\n- `vite` / `vitest`: runs `npx vitest run --coverage --coverage.reporter=lcov`\n- `jest`: runs `npx jest --coverage --coverageReporters=lcov`\n- `c8` / `v8` / `node` / `node-test`: runs `npx c8 --reporter=lcov node --test`\n- `pytest` / `python` / `coverage.py`: runs `python -m pytest --cov --cov-report=lcov:<path>`\n- `cargo-llvm-cov` / `llvm-cov` / `rust`: runs `cargo llvm-cov --lcov --output-path <path>`\n- `cargo-tarpaulin` / `tarpaulin`: runs `cargo tarpaulin --out Lcov`\n- `lcov-capture` / `lcov` / `gcov` / `c` / `cpp`: runs `lcov --capture` for gcov-style C/C++ coverage data\n\nFor tools that always write `lcov.info` inside a report directory, `--lcov` must point to a path ending in `lcov.info`.\n\nPass arguments to the underlying builder after `--`:\n\n```bash\ndoublcov forge -- --exclude-tests --ir-minimum\ndoublcov vite -- --runInBand\ndoublcov pytest -- tests/unit\ndoublcov cargo-llvm-cov -- --workspace\n```\n\nBuilder integrations are built into this CLI. Adding a new builder requires a code change in the repository.\n\n## Solidity\n\nFoundry:\n\n```json\n{\n  \"scripts\": {\n    \"coverage\": \"doublcov forge -- --exclude-tests --ir-minimum\",\n    \"coverage:ci\": \"doublcov forge --no-open -- --exclude-tests --ir-minimum\"\n  }\n}\n```\n\nHardhat:\n\n```json\n{\n  \"scripts\": {\n    \"coverage\": \"doublcov hardhat\",\n    \"coverage:ci\": \"doublcov hardhat --no-open\"\n  }\n}\n```\n\nFrom existing Hardhat LCOV:\n\n```bash\nnpx hardhat coverage\ndoublcov build \\\n  --lcov coverage/lcov.info \\\n  --sources contracts \\\n  --out coverage/report\n```\n\n## JavaScript And TypeScript\n\n```bash\ndoublcov vite\ndoublcov jest\ndoublcov v8\n```\n\n`v8` uses `c8` around Node's built-in test runner. Or build from existing LCOV:\n\n```bash\ndoublcov build \\\n  --lcov coverage/lcov.info \\\n  --sources src \\\n  --extensions ts,tsx,js,jsx,mts,cts,mjs,cjs,vue\n```\n\n## Python, Rust, C, And C++\n\n```bash\ndoublcov pytest\ndoublcov cargo-llvm-cov\ndoublcov cargo-tarpaulin\ndoublcov lcov-capture -- --rc branch_coverage=1\n```\n\nThese builders assume the ecosystem coverage tool is installed in the project or environment: `pytest-cov` for Python, `cargo-llvm-cov` or `cargo-tarpaulin` for Rust, and `lcov` plus compiler-generated gcov data for C/C++.\n\n## Diagnostics\n\nAttach parser-tagged diagnostics:\n\n```bash\ndoublcov build \\\n  --diagnostic foundry-debug:coverage.debug \\\n  --diagnostic foundry-bytecode:coverage.bytecode\n```\n\nFoundry aliases:\n\n```bash\ndoublcov forge --debug coverage.debug --bytecode coverage.bytecode\n```\n\n## Themes And UI Hooks\n\nAttach declarative report customization:\n\n```bash\ndoublcov build \\\n  --customization doublcov.config.json \\\n  --theme ci-dark\n```\n\nCustomization JSON can set `\"open\"` to control whether the generated `index.html` opens after `build` or builder commands. It can also set `lcov`, `out`, `sources`, `extensions`, `history`, and `name` defaults, plus themes and declarative UI hook metadata for `report:header`, `report:summary`, `file:toolbar`, and `sidebar:panel`.\n\nThe CLI automatically loads `doublcov.config.json` from the current working directory when it exists. Use `--customization <path>` to override the path. An explicitly supplied customization path must exist.\n\nLocal builds open by default. CI and the GitHub Action default to `--mode static --no-open`. Use `--mode`, `--open`, or `--no-open` to override that behavior for one run.\n\nBuilder command defaults resolve from CLI flags first, then `doublcov.config.json`, then project config such as `package.json`, `foundry.toml`, Hardhat source paths, Jest/Vitest/c8 config, `.solcover.js`, or `pyproject.toml`. When no report output is configured, Doublcov writes the report to a `report` directory next to the resolved LCOV file.\n\n## Output Hosting\n\nStandalone reports can be opened directly from disk. Static reports are better for large projects and can be uploaded to GitHub Pages, GitLab Pages, Netlify, Vercel, Cloudflare Pages, object storage, or CI artifacts.\n\n## GitHub Action\n\nFor non-Node projects, use the repository action to download the standalone binary in CI:\n\n```yaml\n- uses: doublesharp/doublcov@v0\n  with:\n    command: build\n    args: --lcov coverage/lcov.info --sources src --out coverage/report\n```\n\nUse the moving major action ref for compatible action updates. Omit `version`\nto download the latest GitHub Release binary, or set `version: v0.4.4` to pin\nthe downloaded CLI binary for reproducible CI.\nThe action passes `--no-open` by default. Add `--open` to `args` only when the workflow intentionally has a browser-capable environment.\n\n## Distribution\n\nnpm is the primary distribution channel for the CLI. Tagged GitHub Releases publish standalone binaries and checksums, the root GitHub Action wraps those binaries for any-language CI, and the Docker image is published for containerized workflows.\n\nAdditional docs:\n\n- [Configuration](https://github.com/doublesharp/doublcov/blob/main/docs/CONFIGURATION.md)\n- [CI and hosting](https://github.com/doublesharp/doublcov/blob/main/docs/CI.md)\n- [Releasing](https://github.com/doublesharp/doublcov/blob/main/docs/RELEASING.md)\n- [Extending Doublcov](https://github.com/doublesharp/doublcov/blob/main/docs/EXTENDING.md)\n","readmeFilename":"README.md"}