{"_id":"@busirocket/quality-config","_rev":"12-46c4ff3bc022c1e6a696ece3b96cc01c","name":"@busirocket/quality-config","dist-tags":{"latest":"0.11.0"},"versions":{"0.1.0":{"name":"@busirocket/quality-config","version":"0.1.0","license":"MIT","_id":"@busirocket/quality-config@0.1.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-env-init":"bin/baseline-env-init.mjs"},"dist":{"shasum":"c9cab062f0fa7c371bd4f5ba303f64a4b02b8e86","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.1.0.tgz","fileCount":12,"integrity":"sha512-Q/odA/eNKabZZJUpS9CMPUF4fsfCevQq7naEbyKQZkMkLQhoqLcmG3lmgtYTSMTNXMNTO9w7Zb2x4nBDD6qMgA==","signatures":[{"sig":"MEUCIQD0BU6eE9GHMqqd7TklfFhHMy6HNPbGMx1YAvwu7lR6HAIgHLv9hA9A84US21En8mpVMCdptsQ1PMLBdDkH9UOvwjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22112},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"gitHead":"71d018644eec754077c9a4001d5b2c6a8506fe00","private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"_npmVersion":"11.17.0","description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, lefthook","directories":{},"_nodeVersion":"26.5.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.18.0","devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"workspace:*"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.1.0_1785753696376_0.7972719206829484","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.2.0":{"name":"@busirocket/quality-config","version":"0.2.0","license":"MIT","_id":"@busirocket/quality-config@0.2.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-env-init":"bin/baseline-env-init.mjs"},"dist":{"shasum":"82653366c8cd1c8028af5fac2b9c929f82706273","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.2.0.tgz","fileCount":12,"integrity":"sha512-1DWgoaB6LPWzt5PDO2z6X/8Ze+mY2SAqXmo6kpny/ojHNwrMQ3i+DwQoSLqgwMQQCZzzhWOQvlsX5xYS4wWQ8g==","signatures":[{"sig":"MEUCIFb4+AcOccaPffpvcpOCsZUw3eMGjrvvqtQui70JjXEsAiEAtD08FZBgl2dZyDF4/2z5h2lbSQ9msFJKvWzuHjZpozQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22936},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, lefthook","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.5.0"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.2.0_1785756256900_0.32506023127241623","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.3.0":{"name":"@busirocket/quality-config","version":"0.3.0","license":"MIT","_id":"@busirocket/quality-config@0.3.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-env-init":"bin/baseline-env-init.mjs"},"dist":{"shasum":"9ce183029f986b76b35fed7fe76928f2a87e3389","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.3.0.tgz","fileCount":12,"integrity":"sha512-krmdqq+8SSd7SOMUMO9Cn8KcMJghmJVFne15CgATUkwmbjVM1JXphfnwn04GdOjwvXDequOTSz3RfUCdtOUG0A==","signatures":[{"sig":"MEQCIQCtqZ/ZxoX1+N2pGtL0rH7aoSPWMV+Iu/HoCcLXpc30+gIfPpmvAk2/P4dFW/0TfuqRdZN4cmNjtBpDwGrqcUeJ5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23431},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, lefthook","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.6.0"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.3.0_1785840670886_0.06301052968807741","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.4.0":{"name":"@busirocket/quality-config","version":"0.4.0","license":"MIT","_id":"@busirocket/quality-config@0.4.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-env-init":"bin/baseline-env-init.mjs"},"dist":{"shasum":"d8818f81172b8513fc55c8e23621ed3c7401c0e9","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.4.0.tgz","fileCount":12,"integrity":"sha512-pIaRi9tuiPQ17Z5fS171wSjTCnNmQ0xckXeBqBOeCSlYx11fNUeKrMnF9hJDF/2bzF8U6u7DPCFhchQoz3pYdQ==","signatures":[{"sig":"MEUCIG1u6xj4czV9kSWIdvcMj6BvJmjXVrR1t6mgwwtezR9nAiEAnJz3srlZqvi1XuhA07ee+SXEUC2tDO8cqm4B9pCFLqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25848},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, lefthook","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.6.0"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.4.0_1785875167196_0.9296352444327942","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.6.0":{"name":"@busirocket/quality-config","version":"0.6.0","license":"MIT","_id":"@busirocket/quality-config@0.6.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-dupes":"bin/baseline-dupes.mjs","baseline-env-init":"bin/baseline-env-init.mjs","baseline-deps-graph":"bin/baseline-deps-graph.mjs","baseline-type-coverage":"bin/baseline-type-coverage.mjs"},"dist":{"shasum":"a2b17d78f73929b2c21b07f96c4695ffc0087138","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.6.0.tgz","fileCount":16,"integrity":"sha512-cj3BhR8yCjIyixQsR5E/mX6eZu2/U95U9pFCuuG2bbqUkZV/njcmxeLVTK5G5y1SSphCEEdpBwEbofjiFp9Lag==","signatures":[{"sig":"MEYCIQCaRXukVUXVXuMLBL10ZsSxXY/EUou2DaDBoNI4iJt2cwIhALUCMYjQrgSJa1c4uJpPA1T8WMKL/VWTUC9zz9FbsXsW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43276},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./jscpd":"./jscpd.json","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, jscpd, lefthook","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.7.0"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.6.0_1787636796941_0.3684834480636505","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.6.1":{"name":"@busirocket/quality-config","version":"0.6.1","license":"MIT","_id":"@busirocket/quality-config@0.6.1","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-dupes":"bin/baseline-dupes.mjs","baseline-env-init":"bin/baseline-env-init.mjs","baseline-deps-graph":"bin/baseline-deps-graph.mjs","baseline-type-coverage":"bin/baseline-type-coverage.mjs"},"dist":{"shasum":"987335070c39b4b206dc992526f9bd4abb130794","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.6.1.tgz","fileCount":16,"integrity":"sha512-gRklbriQBfl9J5bJfm8E7mivS1lvJU4MDX2vwYbK/0EKHQM0Ttt+Vc1YXaMoGzQr0RqcLVa14ZIRV3SL+hPIHQ==","signatures":[{"sig":"MEUCIQCtuNDvpj2T1sjAP4TtP4osDESUM5n36gf7DZ4FPf3oGgIgVRFw3Hk5Ftdf2IswTbnLfoaH9w7W/Iwt84SuVmbymCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43762},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./jscpd":"./jscpd.json","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, jscpd, lefthook","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.7.0"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.6.1_1787641363157_0.5998367124536801","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.7.0":{"name":"@busirocket/quality-config","version":"0.7.0","license":"MIT","_id":"@busirocket/quality-config@0.7.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-dupes":"bin/baseline-dupes.mjs","baseline-env-init":"bin/baseline-env-init.mjs","baseline-deps-graph":"bin/baseline-deps-graph.mjs","baseline-type-coverage":"bin/baseline-type-coverage.mjs"},"dist":{"shasum":"9f59a99734428bb31a9b5e030440287587eefc9d","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.7.0.tgz","fileCount":16,"integrity":"sha512-Bda07SO2aADCSP/D188Ni9l9z+aMSJ9Bw5nWrOnjR/zJ3boKEjwINKd2fWhjl+6RunbHIEqhaBHt2ECe4alQ/w==","signatures":[{"sig":"MEYCIQCxVQP5p408x3zxJKy93N2r4cyNvgkJHZ2sZsXLFt++FwIhAM/ERRFmDx1S1u+3CGsn1YJc1nclPsq53lSHZwMy3uPO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45471},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./jscpd":"./jscpd.json","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, jscpd, lefthook","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.7.2"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.7.0_1787667914377_0.7636419096742657","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.8.0":{"name":"@busirocket/quality-config","version":"0.8.0","license":"MIT","_id":"@busirocket/quality-config@0.8.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-dupes":"bin/baseline-dupes.mjs","baseline-env-init":"bin/baseline-env-init.mjs","baseline-deps-graph":"bin/baseline-deps-graph.mjs","baseline-type-coverage":"bin/baseline-type-coverage.mjs"},"dist":{"shasum":"848c6cd116caaafd6d772746e3674f163c2ce25e","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.8.0.tgz","fileCount":16,"integrity":"sha512-O+rTt3ZWA0P+eXR8jBzN41wairnK+m9O4S/d6zgtuDw/MDV6haVR7cmD1P5xK/vkBoCouCzUzDZKmI0lG2iyIQ==","signatures":[{"sig":"MEYCIQCzkaCzVXj1XgAoLystKNt53T7PYJwj2OuCrC81+LyevAIhAOytKr8BAXyikG7vVckWzJJtfk/S1QijtgmCAK3IsbMg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46329},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./jscpd":"./jscpd.json","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, jscpd, lefthook","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.7.3"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.8.0_1787751150325_0.6880501624468205","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.8.1":{"name":"@busirocket/quality-config","version":"0.8.1","license":"MIT","_id":"@busirocket/quality-config@0.8.1","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-dupes":"bin/baseline-dupes.mjs","baseline-env-init":"bin/baseline-env-init.mjs","baseline-deps-graph":"bin/baseline-deps-graph.mjs","baseline-type-coverage":"bin/baseline-type-coverage.mjs"},"dist":{"shasum":"3301b25deb9afa3e3a65158ea4e9aec8dda7079c","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.8.1.tgz","fileCount":16,"integrity":"sha512-aRqHAnTwXt8c2+F2N2D3aLheczcvuHJ8YXmykQruhxk0nM2yvoazRqTy6BQzM4xOaOAF3vnlDY3bTHHtzkGoUA==","signatures":[{"sig":"MEYCIQCxMJi5YUeB8hgusViKDQ9nNNC9f7DeXAMkzcclFf5PHgIhANJHlwl3JHjMsfDfDM6iFEAaYH9NuhGp+3aeE682uFVk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46672},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./jscpd":"./jscpd.json","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, jscpd, lefthook","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.7.3"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.8.1_1787751487980_0.1537448963059047","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.10.0":{"name":"@busirocket/quality-config","version":"0.10.0","license":"MIT","_id":"@busirocket/quality-config@0.10.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-dupes":"bin/baseline-dupes.mjs","baseline-env-init":"bin/baseline-env-init.mjs","baseline-deps-graph":"bin/baseline-deps-graph.mjs","baseline-type-coverage":"bin/baseline-type-coverage.mjs"},"dist":{"shasum":"1ccc51bd421c0c2bac68703b658362ca983b2512","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.10.0.tgz","fileCount":16,"integrity":"sha512-gA47Y3HF9F21g3S7Azd1c/YPGlrs2yDm05JDMCIbioJVduRR/OB55kp1KBV8nJaVd7iX8VAHI7TbY+8e3zX64A==","signatures":[{"sig":"MEQCIDQWdqVAi+2+Y/jQ86EoYCYXNLbAPsBkJs/HaocnpzabAiB5E0xy+OFbadvmRCDSgcIOQVUkkBvRZnarfCkVn56ioQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51372},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./jscpd":"./jscpd.json","./lefthook":"./src/lefthook.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, jscpd, lefthook","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.31.0","eslint":"^10.8.0","publint":"^0.3.22","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.1.2","dependency-cruiser":"^18.1.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.7.3"},"peerDependencies":{"knip":">=6.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"dependency-cruiser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.10.0_1787766945106_0.3316793849899622","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."},"0.11.0":{"name":"@busirocket/quality-config","version":"0.11.0","license":"MIT","_id":"@busirocket/quality-config@0.11.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"bin":{"baseline-audit":"bin/baseline-audit.mjs","baseline-dupes":"bin/baseline-dupes.mjs","baseline-env-init":"bin/baseline-env-init.mjs","baseline-licenses":"bin/baseline-licenses.mjs","baseline-deps-graph":"bin/baseline-deps-graph.mjs","baseline-type-coverage":"bin/baseline-type-coverage.mjs"},"dist":{"shasum":"bb76ee08bd6cfbbb796851209155aad0a345a289","tarball":"https://registry.npmjs.org/@busirocket/quality-config/-/quality-config-0.11.0.tgz","fileCount":20,"integrity":"sha512-HdXA4L0L7aheOkGN1cXigCPRBGzOM6rWLVFYLjc51rxmzd2miwr2wqEiRKY5rh837MnUKi31VEu8B2TeEyQFpw==","signatures":[{"sig":"MEUCIQCJH3FKpGmJifoB1f7SEccp8K0AwuQtBifUXWL0uRVu9QIgHE5Y3FvVde/1sn8X6hUpgdPxxIlvV5ZFvOblO0BNvX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2fquality-config@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65629},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./knip":"./src/knip.ts","./jscpd":"./jscpd.json","./oxlint":"./oxlintrc.json","./lefthook":"./src/lefthook.ts","./commitlint":"./src/commitlint.ts","./type-coverage":"./src/type-coverage.ts","./dependency-cruiser":"./src/dependency-cruiser.ts"},"private":false,"scripts":{"fix":"pnpm run lint:fix","lint":"eslint src bin --max-warnings 0","lint:fix":"eslint src bin --fix","lint:prune":"eslint src bin --prune-suppressions","type-check":"tsc --noEmit -p tsconfig.json","lint:suppress":"eslint src bin --suppress-all","publish:check":"baseline-licenses && publint --strict && attw --pack . --profile node16 --ignore-rules cjs-resolves-to-esm internal-resolution-error"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ca1d2678-e757-4828-a29e-8d71f155e70f"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, jscpd, lefthook","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.33.0","eslint":"^10.9.1","publint":"^0.3.24","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.4.0","dependency-cruiser":"^18.2.0","eslint-plugin-regexp":"^3.2.0","@arethetypeswrong/cli":"^0.18.5","@busirocket/eslint-config":"0.8.0"},"peerDependencies":{"knip":">=6.0.0","oxlint":">=1.0.0","typescript":">=5.4.0","dependency-cruiser":">=18.0.0","@commitlint/config-conventional":">=21.0.0"},"peerDependenciesMeta":{"knip":{"optional":true},"oxlint":{"optional":true},"dependency-cruiser":{"optional":true},"@commitlint/config-conventional":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/quality-config_0.11.0_1788170028950_0.5037710113389047","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/quality-config. Install that instead."}},"time":{"created":"2026-08-03T10:41:36.191Z","modified":"2026-09-14T07:11:21.673Z","0.1.0":"2026-08-03T10:41:36.528Z","0.2.0":"2026-08-03T11:24:17.042Z","0.3.0":"2026-08-04T10:51:11.039Z","0.4.0":"2026-08-04T20:26:07.339Z","0.6.0":"2026-08-25T05:46:37.082Z","0.6.1":"2026-08-25T07:02:43.307Z","0.7.0":"2026-08-25T14:25:14.540Z","0.8.0":"2026-08-26T13:32:30.460Z","0.8.1":"2026-08-26T13:38:08.145Z","0.10.0":"2026-08-26T17:55:45.235Z","0.11.0":"2026-08-31T09:53:49.082Z"},"bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"license":"MIT","homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/quality-config#readme","repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/quality-config"},"description":"Shared configuration for cross-file quality gates: knip, dependency-cruiser, type-coverage, jscpd, lefthook","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"readme":"# @busirocket/quality-config\n\nShared configuration factories for cross-file quality gates: unused\nfiles/exports/dependencies (knip), module boundaries and dependency cycles\n(dependency-cruiser), type coverage, and the shared git hook pipeline\n(lefthook).\n\n- **Public API (semver):** see [PUBLIC_API.md](./PUBLIC_API.md).\n- **Platform decisions:**\n  [engineering-baseline/docs/platform-decisions.md](https://github.com/BusiRocket/engineering-baseline/blob/main/docs/platform-decisions.md).\n\n## Requirements\n\n- Node.js 22+\n- TypeScript 5.4+\n- `knip` and `dependency-cruiser` as needed per gate (optional peers, listed in\n  `package.json`)\n\n## Install\n\n```bash\npnpm add -D @busirocket/quality-config@^0.1.0 typescript\n```\n\nAdd `knip` and/or `dependency-cruiser` for the gates you use.\n\n## Usage\n\n| Import subpath                                  | Use case                                  |\n| ----------------------------------------------- | ----------------------------------------- |\n| `@busirocket/quality-config`                    | All factories and constants, re-exported  |\n| `@busirocket/quality-config/knip`               | Unused files/exports/dependencies gate    |\n| `@busirocket/quality-config/dependency-cruiser` | Module boundary and dependency-cycle gate |\n| `@busirocket/quality-config/type-coverage`      | Minimum non-`any` type coverage threshold |\n| `@busirocket/quality-config/lefthook`           | Shared git hook pipeline                  |\n\n### `baseline-env-init`\n\nSeeds a gitignored `.env` from the committed `.env.example`, so a freshly cloned\nproject boots on the documented example values instead of failing its startup\nenv validation. Bundlers inline `VITE_*`/`NEXT_PUBLIC_*` values at build time,\nso without this a project with no `.env` builds a bundle that throws before it\nrenders and reports a blank page rather than a useful error.\n\n```json\n{\n  \"scripts\": {\n    \"prepare\": \"lefthook install && baseline-env-init\"\n  }\n}\n```\n\nIdempotent: an existing `.env` is never overwritten, and a project with no\n`.env.example` is a no-op. It never writes a value into version control - `.env`\nstays gitignored, `.env.example` stays the only committed copy.\n\n### `baseline-dupes`\n\nRuns the cross-file duplication gate against this package's canonical\n`jscpd.json`, so no project has to commit a copy of it.\n\n```json\n{\n  \"scripts\": {\n    \"dupes\": \"baseline-dupes .\"\n  }\n}\n```\n\nTakes the paths to scan (a bare `baseline-dupes` scans `.`); every other\nargument is forwarded to jscpd in the order given and wins over the config file,\nso `baseline-dupes . --min-tokens 120` works. Pass the path explicitly when you\npass flags - the runner does not try to tell a path from a flag's value.\n\nTo keep the shared ignores and add your own, use `--also-ignore`:\n\n```json\n{\n  \"scripts\": {\n    \"dupes\": \"baseline-dupes . --also-ignore \\\"**/src/types/supabase/**\\\"\"\n  }\n}\n```\n\njscpd's own `--ignore` **replaces** the config's list rather than merging into\nit (measured: a config that also ignored `**/cargo-baseline/**` scanned 61 files\nand found 1 clone; adding an unrelated `--ignore` took it to 109 files and 4\nclones). Without `--also-ignore`, a project with one generated directory to\nexclude would have to restate every shared pattern in its own script, which is\nthe duplication this runner exists to remove. `--also-ignore` merges through a\ngenerated config that is deleted again on the way out; it extends your own\n`--config` when you pass one. jscpd 5.x is a Rust binary that reads JSON only -\nit has no JS config loader - which is why this gate ships as a config file plus\na runner rather than as a factory like `createKnipConfig`. Point another tool at\nthe same file through `@busirocket/quality-config/jscpd`.\n\n`jscpd` itself stays a devDependency of the consuming project: the runner\ninvokes it, it does not vendor it.\n\n## Related\n\n- **Lint / TS configs:** `@busirocket/eslint-config`, `@busirocket/tsconfig`.\n","readmeFilename":""}