{"_id":"vitest-auto-spy","_rev":"106-68b6033970d322d03cfec168bf6b946c","name":"vitest-auto-spy","dist-tags":{"latest":"5.34.0"},"versions":{"1.0.0":{"name":"vitest-auto-spy","version":"1.0.0","keywords":["vitest","angular","testing","spy","mock","auto-spy","jest-auto-spies","zoneless"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.0.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"a1ca38940ba972e7d05d90816c64a4c295d7fc52","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.0.0.tgz","fileCount":9,"integrity":"sha512-jhnuPoJufzo2X7GIOzZE7Fu/G3gcvp1kfDJxXY3t1xvXjh6tsjBCid0pDFoaveDJsvExYLs4AeHzF0VvoU4qMw==","signatures":[{"sig":"MEUCIQDgbTAYwfkPdI+0aN7qsbGPzZ4Bc6TIeoECuDT23lKFBwIgPxSLf6T0NBAHsXJCmffvtZN8GwRDfZ5rPweIac4LquM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134985},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"55066431129549990383e1fe094b650800ac6330","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.13.0","description":"Auto-spy utilities for Vitest + Angular (works with both zoneless and zone.js). Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"javascript-stringify":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jsdom":"^29.1.1","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","@vitest/coverage-v8":"^4.1.9","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@analogjs/vite-plugin-angular":"^2.2.0","@angular/platform-browser-dynamic":"^21.2.17"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.0.0_1782064728855_0.3607255850815525","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"vitest-auto-spy","version":"1.0.1","keywords":["vitest","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","auto-spy","auto-spies","jest-auto-spies","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.0.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"b3de9a9a4fee616f2ead912077d1e8ce1ec38c05","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.0.1.tgz","fileCount":9,"integrity":"sha512-gxsMr8V9kepjIuZrtatdHUVtIs19ktkLZuGu/pXiX87XEo93oyty7pGuMxzq3pkfaHnXFOVaGTvdYetMBoNkzA==","signatures":[{"sig":"MEUCIEON2YlpPfCouWNyLCy0kuDIF5eh2/pLvTguJTU/Z6v0AiEA1eF8QPNqR+vBDLqUSaMpUrr1Z5v+wfM/3rpyljyykiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":138789},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7c6349d5673adc8874ec8b89a0bd1c403de8fde2","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.17.0","description":"Auto-spy utilities for Vitest + Angular (works with both zoneless and zone.js). Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"javascript-stringify":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jsdom":"^29.1.1","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","@vitest/coverage-v8":"^4.1.9","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@analogjs/vite-plugin-angular":"^2.2.0","@angular/platform-browser-dynamic":"^21.2.17"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.0.1_1782073238468_0.6496977461108506","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"vitest-auto-spy","version":"1.1.0","keywords":["vitest","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","auto-spy","auto-spies","jest-auto-spies","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.1.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"42f6dbc520d5e55dd60df2d8be31fbed92dfb230","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.1.0.tgz","fileCount":9,"integrity":"sha512-FKLW4C+MYJfFWLJiCHZ4l9sSm9Fk9Isg86SqJbMVrUm4+WwUK8MQQo8QxLFBrEej7kSFoK02E0F28mObC7544A==","signatures":[{"sig":"MEQCIHTWNnmNBt/TWEiWlfB+Tzs+N4fiL3GHqm5DPW2Hj22NAiA3QpffDjfsPqtliWEzdcmS6q3Cn8qtDKODb7ttD241aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142169},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e13253a95c53a503a67400ca89f2b91f8be8c1ee","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.17.0","description":"Auto-spy utilities for Vitest + Angular (works with both zoneless and zone.js). Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"javascript-stringify":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.1.0_1782230790696_0.16386312224217003","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"vitest-auto-spy","version":"1.2.0","keywords":["vitest","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","auto-spy","auto-spies","jest-auto-spies","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.2.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"b63f8e40db43c009541919ccb08290d46ae80a86","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.2.0.tgz","fileCount":19,"integrity":"sha512-7GGx5BbMwusKwBXLmELo3LFgVOoeQn6/4fKgfKOnLjrh6WEsu+qO7zCM0wakV+RKZuLfqInyo5upQ48iZW6QHw==","signatures":[{"sig":"MEUCIE/H00LMssC9YdEKiJ6J7AQwPPugq5fVPGA1zIpTZ3TZAiEAspb+1OdN6xB7NDiwV/V+cHQc+v8IfxPQMtTUxnrmf2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51039},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"}},"gitHead":"b8415cbe7e5ad12d4b93d765ea7a68efdc612dfa","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.17.0","description":"Auto-spy utilities for Vitest + Angular (works with both zoneless and zone.js). Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/rxjs.js","**/rxjs.cjs"],"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.2.0_1782314231854_0.5368006238883949","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"vitest-auto-spy","version":"1.3.0","keywords":["vitest","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","auto-spy","auto-spies","jest-auto-spies","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.3.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"d5d49bb2e035239f644d0df8d69a2f4f25bba73e","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.3.0.tgz","fileCount":19,"integrity":"sha512-dnS2xawKQ/V4QC9kaJh6LtoB6eugECERKwgHHl3oIDCp1z3tLIpoSHYXtZEuoqwwWtWF4CCzvJGmlrBuVOXSlw==","signatures":[{"sig":"MEUCIQDZqhLyjBluN7ZQTsLTcRCpPzb7cQSq6LaOECxc7ss5+gIgC5pfpFesZqzpk0zOo2bt48PVhalxvgmKO6mv5VZvIVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51039},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"}},"gitHead":"ef62b2c068a0dc28f015b517dd50713e0af7f9c8","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.17.0","description":"Auto-spy utilities for Vitest + Angular (works with both zoneless and zone.js). Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/rxjs.js","**/rxjs.cjs"],"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.3.0_1782314618600_0.46094327898607257","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"vitest-auto-spy","version":"1.4.0","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.4.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"f555d4291549d77be92ec875b3699657475d5e0b","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.4.0.tgz","fileCount":46,"integrity":"sha512-GTEJvq0GoIW6UFpgB8mu4HilV8tDeAiElakWzYS2CIzDaMm0VTCjIP44wPAgWxWGd3Kd8xD1yc63KjcK54xt3A==","signatures":[{"sig":"MEQCIGibg7Lkvl3Rox8yZCCSEOCsje8rDmQagIooPp+2XJbCAiAIk50ktA+SF0qlOFIfWluYy3H3Nyqkex7O0IOyYBF1MQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117892},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"}},"gitHead":"12fdaf4b07bc12c396ab9a1895c4c8c8eeb70c26","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.17.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs"],"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.4.0_1782632539490_0.2465249161303964","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"vitest-auto-spy","version":"1.5.0","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.5.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"5386daa2303ae8338e1ef56727cdeb8aa0608d71","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.5.0.tgz","fileCount":46,"integrity":"sha512-A/ZvQyvYxQvbjrb90gWJPLHI7Sm9H0NjbMm69JaBxNLJCG1PSVkMyZu9f18cNs7vKi5Rssd3tm06FhmFsQRZ9Q==","signatures":[{"sig":"MEYCIQDIv457zW8/OZ5xhXgAZ1DxqKKgP4MaeLF1dhHFyUH55gIhAL1uXO1VGAhlbT45cax7nEc9tu8+i19Zd+Ihx+8DdMr1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117735},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"}},"gitHead":"f0639ef585583edcddc7d73607c0f3aecb21074c","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.17.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs"],"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.5.0_1782635248901_0.254933749314604","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"vitest-auto-spy","version":"1.5.1","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.5.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"4b769718d318ccd2b993362e888e396cb0e1a05a","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.5.1.tgz","fileCount":46,"integrity":"sha512-yCUgwHOJayscX8r4GQpqc2M0lHwz7ksQDo7PuFqizfmz0Jn5n2x9Jz3g8D2IslwAVCcRTnR2V2tHG3UjwXHxtw==","signatures":[{"sig":"MEUCIEq9kjf/hGOWSHs6NBxtLVZ1C1FlqvZ6FBeJyeAZNc+iAiEA+VWQPuzD5c1p/c2dkkTWWMSzAp8aX6pho9h8W1el3so=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117741},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"}},"gitHead":"b547af7edadfa509a7674b5be7a8becbf8843cf3","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.17.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs"],"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.5.1_1782711332431_0.6296152239113695","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"vitest-auto-spy","version":"1.7.0","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.7.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"3e6d3e92b016a682940a2cf0333c0852f3873768","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.7.0.tgz","fileCount":51,"integrity":"sha512-jrAcWZJDx/VwyMUJEWyC4Eg9fcsLz8tjLCmcCME+1y7tCVNvk3mNgLnKKt8ZdcT33gC+1oyyZtcnCZ+ohRj+Ug==","signatures":[{"sig":"MEUCIFhjowEaKK+UMWDpsXtgtPtjrTnc6B6FaSbZ2Ap71yIrAiEAvbPsL+L01nBeVjC3TJ/OEOYN9/kA1XrankWa0KOiQuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131786},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"c73e62fc3e71f18f3eecf05a514acb37d7a2f7e4","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.18.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.7.0_1783158402712_0.325602803287417","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"vitest-auto-spy","version":"1.8.0","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.8.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"0e2971249dc3390d833c966169aa73d487eaa66d","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.8.0.tgz","fileCount":53,"integrity":"sha512-TErdugzE0uILgQxwphf/iy1fveXRsPKAJ2MV1uv38KDQC0kyLGNmo9owX/7ysLNqdyfqtuKPEbP+RbJV6UKXhg==","signatures":[{"sig":"MEYCIQCY57wihBZkhWDnunk9n6g1sMsJlxMZg+US3Lx/KfzEJQIhAJOkSkZS/jnvjJLvcFO/pSZ3IyoH3YAMN1MvVYrnBpt1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141024},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"c00e747dbcfd57269ae688f75b5cd1cc0a1b9503","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.18.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.8.0_1784319649981_0.7197776735774508","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"vitest-auto-spy","version":"1.8.1","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.8.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"23c6ee26d3a42678efbcd7a38f72dcdf0c095bc9","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.8.1.tgz","fileCount":53,"integrity":"sha512-6DnZfgYEE9Ya6IlQtnodDxF/SCnMy38Jed5j/cVqlxJQbDkwRTtfox/s1G31kaA9pYxzgfyFsChXD1Dl9ucRgw==","signatures":[{"sig":"MEUCIHB3zCQ/uJKUpjXOwJncsg2vvRPaxDJxspVOu4DZ2iwoAiEAxFOvTeZrN5ecJequeKC8MTZUyYDI6q/x4H+Qo9bfqNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141024},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"85767ea30cce3b097206f4dbe5fb79d2b9e8655d","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.18.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.8.1_1784320117319_0.7557549675590058","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"vitest-auto-spy","version":"1.8.2","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.8.2","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"152d2b069e52062007ca2fe1eed465cf79614a8f","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.8.2.tgz","fileCount":53,"integrity":"sha512-fUmcjPlH7156m5D7zqD9Uuo3ghWnPmRwiglUvQvbyanO5A2UVQSohTgrnUw0w7s0AcT1LMUrqGQOF6Toe1xDXw==","signatures":[{"sig":"MEUCIHQNKAP4NI+lXn21DML0cGpx04LRxupwefl0PRcpuzgWAiEAyKT+FAn+nTLtb1FV4feRrEHLZ1wX3MbASkWtu0b9ObY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141024},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"7e8a7bd12cb507bad5290c3eae5bccce8bac4836","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.18.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.8.2_1784320240196_0.7380036172257045","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"vitest-auto-spy","version":"1.9.0","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.9.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"e373527f6ec2b9d5c6e89c19df179af43155e70a","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.9.0.tgz","fileCount":53,"integrity":"sha512-9HVwsI/A/x0p7kvV+uUKBfslwxOi3HOi+0oUle9TLf9C0NxCUJyu03tBF/MuUgBSzgFNLcQV+jCQGEIlyYg00Q==","signatures":[{"sig":"MEYCIQDJjJgQfoiiNhui5zPmtL4W9zaUTv7tws48ochl5V+PGQIhAPLq8CUq44ATwtt6TFcKhRQoqKruiMYzkyFd5veiV/AT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":186264},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"54782cd79b6733d3c9841cefc7e7f22f3dd708b2","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.18.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.9.0_1784362567717_0.5486987987705771","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"vitest-auto-spy","version":"1.9.1","keywords":["auto-mock","class-mock","typed-mock","auto-spy","auto-spies","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.9.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"765b0948586f88864d98c905982a24827634c781","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.9.1.tgz","fileCount":53,"integrity":"sha512-zsgCBExsBhdHT0UZ9Ew0+d1LDuJ6H1ENh0oo8VHILLCfUY4KDZMiSf8PcyLUO2117jUDaSm6C+lGv8xzho4cRg==","signatures":[{"sig":"MEYCIQC2e2YF7D7DijZUScbTQPGnKfEm9WIDjo2+MsAyr7+hdAIhAImelM4GM2Bs5x5Fxg1HHyUX1EDvsvtnpvfU6E7yD9ky","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":186274},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"1889156d6ad21402171fd55af0418faada1fce3b","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.18.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.9.1_1784363994039_0.8362013390488572","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"vitest-auto-spy","version":"1.9.2","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.9.2","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"e71e216369cf9d004f3c33619fd4434e388e4b38","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.9.2.tgz","fileCount":53,"integrity":"sha512-DVkMuUPmK9FUnE0lWov7YgnOwVK+VISKUn+M30u5LjPCyMgwERA9V3HHgpt1GAKflY5R7iRS9nNfewflYsGF+w==","signatures":[{"sig":"MEQCIDqpXSmb2UUQGsInDyJ6ZA9ma9QTna8JjLZAlxcGBmzPAiBMV/MpRj+Gbv8Q16wkMBD4y5BcqipTRjxNySyGmPzT4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":190441},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"ac15999d7c07298d96f99491372860636de38d3a","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.18.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.9.2_1784368288715_0.9776450367887961","host":"s3://npm-registry-packages-npm-production"}},"1.9.3":{"name":"vitest-auto-spy","version":"1.9.3","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.9.3","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"74f7084b48c8f2f0dc7a100de8a2ae975bd38041","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.9.3.tgz","fileCount":53,"integrity":"sha512-BDofgugovLtOZrE2ZbscW25lKRdi5ds2m1848nQMvOEJ5nUdtODT5y9sTR6srt2pQEPNmx1Vz9qVTawZbW8YYw==","signatures":[{"sig":"MEQCIGSnuISCclo4CTmxcCe21dW0489n/880djze9UhzanRMAiB+HJmWJ3S+QPQDEtd5VgvcJhS1DfEQz4hPUsljfpJI9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325294},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"93bdb875f1134ff2a2b8c8b785a3dc710d8c9e0d","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.9.3_1785612853082_0.658240889310558","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"vitest-auto-spy","version":"1.10.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@1.10.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"666d24deb6612aa779d5117f55a7e48934f77735","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-1.10.0.tgz","fileCount":53,"integrity":"sha512-CtcGej2+VP1HVUrU84OxHmWSD7kFb6kmyyelV+AdK8Ym9J/mtsZDNAFTCnM83phaf5BRhiuVuVntnReSUE+JCA==","signatures":[{"sig":"MEUCIQCwviu/nnMpy+c1JcQvaJsoSZjwYg/pGE/QOBPBsaZrrQIgNcrPh5fuiM5BhsvcbmGGd3npDH0Bu5VWMaEnhX+j9iI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352000},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","require":"./dist/bun.cjs"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","require":"./dist/vue.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","require":"./dist/rxjs.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","require":"./dist/nestjs.cjs"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","require":"./dist/svelte.cjs"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","require":"./dist/angular.cjs"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","require":"./dist/console.cjs"}},"gitHead":"98f704a4233130da57018834a8629cc4051f1c8d","scripts":{"lint":"eslint . --ext .ts","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run test","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","lint:fix":"eslint . --ext .ts --fix","typecheck":"tsc --noEmit","size:badge":"node scripts/size-badge.mjs","test:watch":"vitest","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","size:badge:check":"node scripts/size-badge.mjs --check"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/index.cjs","**/bun.js","**/bun.cjs","**/node.js","**/node.cjs","**/angular.js","**/angular.cjs","**/nestjs.js","**/nestjs.cjs","**/react.js","**/react.cjs","**/vue.js","**/vue.cjs","**/svelte.js","**/svelte.cjs","**/rxjs.js","**/rxjs.cjs","**/console.js","**/console.cjs"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_1.10.0_1787066876865_0.07123468769113761","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"vitest-auto-spy","version":"2.0.2","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@2.0.2","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"838d8871db687fda862f8686bb0bbdf26a2c5e6d","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-2.0.2.tgz","fileCount":54,"integrity":"sha512-NI0x17rxLvTnp/tfdZ/q1LCIAXEFAp1xHHkoBDhq01RKtISNEqexT9PE5y/cdnEaoll7bzAc70+Qa0BErrbD0Q==","signatures":[{"sig":"MEQCIG33isQrK1U0BLihWEN1onWvBBG8r3UJy2EoBm+wh0e+AiA06Bgv4KDtqQDyiShn+rd4B5oD90aerHcnrRlU/E0RgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":392472},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"types":"./dist/eslint-plugin.d.ts","import":"./dist/eslint-plugin.js","require":"./dist/eslint-plugin.cjs"}},"gitHead":"efc58989657912cbd4328582851854fd55bf156c","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run test && npm run test:shared-env && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && git add .claude-plugin","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_2.0.2_1787771700107_0.3443896828062709","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"vitest-auto-spy","version":"2.0.3","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@2.0.3","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"ecd38a5519cbac1027ef4940dddbdb104d8acdad","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-2.0.3.tgz","fileCount":54,"integrity":"sha512-EjI8o0s2hWsZbwfdOTCGMh1Ri3OA15Kaacl9PSxLANn7lpiS102ohk7ZAJOjpdNauEZSYHyxGYul3EF4W6DD8w==","signatures":[{"sig":"MEQCIDNc+QmILYxrjtMsbM5XlhFP0cFdQvmeVBNL8daEYtq9AiAUT/l+aU308wkpo11gnzZy89duba/xJVN6L5PA7yZGdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":392195},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"52ad6fd21b48384b33d868893f18f24e2db0e766","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run test && npm run test:shared-env && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && git add .claude-plugin","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=1.0.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_2.0.3_1787772315357_0.9476887764062218","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"vitest-auto-spy","version":"3.0.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.0.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"34d62d78b0589484263133bdb337524bd2ac7d6c","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.0.0.tgz","fileCount":54,"integrity":"sha512-nG+Ip75tfyakDIumEV9r7zxBPIT01QTKGqVCqjm5iVE1lhqNacZYk+J5OLIMGEL7lmlcn/+3D2LcZB10kE/H6w==","signatures":[{"sig":"MEYCIQDcv8XiQLUxW8KOZPMHMaaTWiwRvrZUfqlLB53pF7N42AIhAPsTGCb6p89C9OdP+BkzZZOPzbGO/B72r2UDvyZlsHf3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":392612},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"e97c2970e6ee3af829658a38ec94cf42c443783c","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run test && npm run test:shared-env && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && git add .claude-plugin","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","format:check":"prettier -c \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with NestJS/React/Vue/Svelte/Angular recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.0.0_1787773347521_0.21932483801482294","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"name":"vitest-auto-spy","version":"3.8.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.8.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"11622b743992483b948ad95d6b1ab5faf860b487","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.8.0.tgz","fileCount":58,"integrity":"sha512-UcSArZtrohG5RqgkUahidH9UAK5d6t/jBLQFgTtERx2Vla+CySNB5TaMZJqzbs/oCYGvQRmUiW1mDmKj+nFxoQ==","signatures":[{"sig":"MEUCIQCoRONkqMvEThQhawk6wtLAGrzp+ejUz2/ZK+3TH5nlHAIgPadcMbuDoOVJb5d+YlTM8XSj/ajT1SLsLD2jBmXpKkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":888617},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"f1ed0d0abbfcac04790b1ba161894288a92b3634","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.8.0_1788034617371_0.9133903092814633","host":"s3://npm-registry-packages-npm-production"}},"3.8.1":{"name":"vitest-auto-spy","version":"3.8.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.8.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"1de1b329ccc7abb46cf8bbbe70f8db132bc0f10a","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.8.1.tgz","fileCount":58,"integrity":"sha512-8DgN0ntOIuR5vF620pCETmZj5tXvUpgNA1lJPKgwzqqNuMHKn9EDk67OmjuFbXypmBvs64K6xWVOJKwxcRP2cA==","signatures":[{"sig":"MEYCIQDs0LrP10qnAeTdshs/9mzdjT4rWAMQVe7JkIAb6PWAAQIhAI/zW3yhVPmw7RdFGrKFV6eyogbbgtyrThH77t2tNCPc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":888617},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"2776e52a616e3d466851b4ec69cd56108f7b9848","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.8.1_1788036774352_0.051226682380342003","host":"s3://npm-registry-packages-npm-production"}},"3.9.0":{"name":"vitest-auto-spy","version":"3.9.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.9.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"1a946149d3b5ebe689edb40ac6446818465dcd5e","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.9.0.tgz","fileCount":56,"integrity":"sha512-Tj0oR63089U8pWob1zOR0LnfHyrmpjKE1WqkxsHSxmC+6CBCL7RxZK223dyPA2rFkXawmDR0osIQGXgOVuLziA==","signatures":[{"sig":"MEQCIFb6Al6QADbGlKJ1rK/PGMwu1JvY/a1jN5GMq4/lZRwPAiAxSayo/Pr8LSX9aR/LGlXLB5jnrqEWcHPW35XeL2c2jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1187769},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"1dc3d648e5e849372abc05c050401ebda5e326d7","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"asdalexey","email":"asdalexey@yandex.ru"},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.17.0","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.9.0_1788079555242_0.08276493428313447","host":"s3://npm-registry-packages-npm-production"}},"3.10.0":{"name":"vitest-auto-spy","version":"3.10.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.10.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"10f67ee5f257106434e8a4c563944517ba153c9c","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.10.0.tgz","fileCount":56,"integrity":"sha512-NKjNvNsh89Id+z6gUTa9hkE4W0xSEW1ffl0LfUG7iFknfQid2tsobWUoM/MFsnZmWkRFGJyTQNtFrG5vB9bYKQ==","signatures":[{"sig":"MEUCIHaifH+GCGkwMrOJrvacU0cudR1auK0Hyk+PswftWxEAAiEA9QeuJHdcL4INKMPgisWpl+MpfXGUOemP6rZlFDgGYNs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1188099},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"5c0339f610fa8394b2d00f64f9b1c3d70175dadb","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.10.0_1788084617986_0.7252525375311463","host":"s3://npm-registry-packages-npm-production"}},"3.11.0":{"name":"vitest-auto-spy","version":"3.11.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.11.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"3804f12c188cacd46546286666cc2a68b91ca408","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.11.0.tgz","fileCount":56,"integrity":"sha512-D48MqevLZe4ws/hJB1Ovs2Cx13H+m9IjWu1I7wlC0nawCj4q5yFKnqFpv9822oBeIQWaMoLDoVKMzI0LvT0tvw==","signatures":[{"sig":"MEUCIQDePeXoaGtjDAW2i3O1dhYWhekmj1E0RHChCsniPByHswIgaLxR+2BAUMmpJkdGyRequ/v3PIFH3eVXbMDEcVvV4yo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1197945},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"0aac5ae31a76e04870ff6159abf9476c4a145f25","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.11.0_1788085636001_0.8424015987319387","host":"s3://npm-registry-packages-npm-production"}},"3.12.0":{"name":"vitest-auto-spy","version":"3.12.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.12.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"0a3be2e311a3e595b8624499276213ced7b1aaf2","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.12.0.tgz","fileCount":56,"integrity":"sha512-OBnLCAKvLrNN6qury5CCGxtOrBn5IWrlyKHjL66J0KMp2GZ73FbId1VxdnKg2XXHsdZfddrB8fQYyo0JXr+CGA==","signatures":[{"sig":"MEYCIQCn9jTxwUc7t81/PVUPFl7v+87hNNDuymzbKC+o020QpwIhAKSrE2eUoul7WNkELsvFhjGF/Z/8DpspGHC8pM3eSAZx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1221911},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"ad84bd2c3d1aded5bc5a29a78405eb3408278a20","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.12.0_1788098128328_0.7489700786507762","host":"s3://npm-registry-packages-npm-production"}},"3.12.1":{"name":"vitest-auto-spy","version":"3.12.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.12.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"cd59e56956d7d4293b4029d073bfd5ccdcb4b5db","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.12.1.tgz","fileCount":56,"integrity":"sha512-9iOz1PcTdD8/zxBkwcD/rYoabiKeOzMXBLfAa3cN4TT01So6mbxdAKwBO5wt8bmWylOfhDfKXxHqgz8rGuEK8w==","signatures":[{"sig":"MEUCIQCWHAls14EWCeVHsYLbpQTuIUUSoQ/ynwfxL84xVIPdwAIgc+yIfA0euhkWX0MNURh3BVnEOHRKn63eJmtrz4alLCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1224635},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"83be55931c2a22cc0c69ac985b07bba9436cfd42","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.12.1_1788102925522_0.4714583543747213","host":"s3://npm-registry-packages-npm-production"}},"3.13.0":{"name":"vitest-auto-spy","version":"3.13.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.13.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"7779d803a306547bdfcc3f6c66128e993ee24b6e","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.13.0.tgz","fileCount":56,"integrity":"sha512-RGYuZnqgztl2OLCBZiiyxAGUrMzHJE2BUdlh2voZD+OIZuzQfpWk5Z1WcFKZfdZ1kPlIO3LypXPvA2YTUjFnoQ==","signatures":[{"sig":"MEUCIAUIN1WJmk8RTPjicYrJw75FBI+XlabZEsBx8Navj7IFAiEArMOiSmFA2Bm180glkNQJcQExN+GCY5CGw1pw6xf+2Vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1234489},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"d291d8e8425faa0c6e545c520cbbc4b1d181f89f","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.13.0_1788152797808_0.4182331630054881","host":"s3://npm-registry-packages-npm-production"}},"3.13.1":{"name":"vitest-auto-spy","version":"3.13.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.13.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"5af4288dc80a2d5d157e49e4b8a549614e972b32","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.13.1.tgz","fileCount":56,"integrity":"sha512-sHVMUqtVp/gqOgdplPVGiS8MzJdCbqqnu1Lu7XpwIy8ksEA5m0G4xjPah/tInNAIbTVGUT0VZdiHMlWk6wbkig==","signatures":[{"sig":"MEUCIDxfRx254ufCKGQbVmDJCeBBC6VL8kWdZk7BCScXDbWxAiEAwoL6aNZiuNDqQrBKhNOGPPEdq+U3i/7Tjw5SZM75mH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1245600},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}}},"gitHead":"e16870dd45c78237d9f04dab0509b4e3a0bfa10d","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.13.1_1788292704987_0.12740370095984677","host":"s3://npm-registry-packages-npm-production"}},"3.14.0":{"name":"vitest-auto-spy","version":"3.14.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.14.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"af867c72e983e4ffd4142fe71eab3d82eeb0571b","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.14.0.tgz","fileCount":65,"integrity":"sha512-fIBVCL8TcEecB0P5UGDvoadprXIP+Q4b6N8SBdpkP/sOhWo9AL3jBnbvo33dg4RSwjC0ppgAoQSQZvb+KzNsdg==","signatures":[{"sig":"MEUCIFAV4zgtsPpswcTlFqsGdiiUCmAAu6x4CLAtNBd+E5zYAiEAw2lgtdbypDp7AyEzQuSjv0/Gr9gA6btn8dbGSEB3ye4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1391294},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"08dfdab558f611e33e499bb391ae2c9937fd67a8","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.14.0_1788329031012_0.18343177502502805","host":"s3://npm-registry-packages-npm-production"}},"3.15.0":{"name":"vitest-auto-spy","version":"3.15.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.15.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"512865dbddfa782b7eae3c076abb524c0423cd6b","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.15.0.tgz","fileCount":65,"integrity":"sha512-ZU2j/Q/8MSTb0MKQcMa2l/O30xeCkJkWUaL+jR0cfbIVEudpRnMLvcTm2EsKzFQOro6yXl93bdvfaDHWJG8QZw==","signatures":[{"sig":"MEQCIBVdSd1AVmWmJ7iWDecA/fXQzCwpemg4tS8uf2Q1TyD7AiAbf3f8uelQGREWisGBO47tECLlqHbxSimUwZH+edTI7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1420748},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"5fcec0da7f889e9a7063a86d6a390c48dd8df481","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.15.0_1788353032407_0.3461814489057655","host":"s3://npm-registry-packages-npm-production"}},"3.15.1":{"name":"vitest-auto-spy","version":"3.15.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.15.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"16caeb8b0202ec1f647b62f93e384adffec974bc","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.15.1.tgz","fileCount":65,"integrity":"sha512-2APzjloBFVRN6iSe6IbaXAkgJPCCeSKQjyXaxFimV6Ca4ctE501OL68irRPwieqkWysbvzVAnMUDc6bUqnr3fg==","signatures":[{"sig":"MEYCIQD+VgwWxA+s/F5C2WDytWKrCekeeSo9y5cb12Jdw5xNogIhAPHU3/UCBPRXz1Z48XGbSOLEe9npsoRH2SNoARVZAHaN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1424542},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"e665cf1b04c29dab38bea0cedc2d337a29f55fa8","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.15.1_1788359383072_0.05458964665096944","host":"s3://npm-registry-packages-npm-production"}},"3.16.0":{"name":"vitest-auto-spy","version":"3.16.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.16.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"32e541231324304493d5163ce7f2ddebfb63652a","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.16.0.tgz","fileCount":65,"integrity":"sha512-jUvl8SWFUqDHnClfKGM6NUSlFM9/q1532mHWrUgVjiLTV+gy77IY0cBbZXjbfxM/ysS0C/lMckdh2GPOJQZQFQ==","signatures":[{"sig":"MEUCIQClmvhj86ileHgxgjpI45a7z+ocd01W4PFV0Z4xJqGxCgIgDHr+KiQjwIE/uqBI7BojP4OhUiBjaTK8GPMcheqcypQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1442099},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"aca156f47bac0e2520548f5da36a4e9d465c14f5","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.16.0_1788363193029_0.7224280606557996","host":"s3://npm-registry-packages-npm-production"}},"3.17.0":{"name":"vitest-auto-spy","version":"3.17.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.17.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"eee4eb92f5b205116bf6a175a657efc5c3616f56","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.17.0.tgz","fileCount":69,"integrity":"sha512-VFCaTXlCNY6t6ls+KZT2w9TDO4to+agavJ16KuHodva2y2KmsOIQMdoxtRYtGNHVEIEMPctk73AdMFxpyq2lLg==","signatures":[{"sig":"MEUCIQCXJmL2UgkeuN5B38SPMPspMaluXAgrYxJSpq+pYjHKigIgZJlmnVMBz8/TF/bzyZOLQzZ9GgSKtREBfYIGPnGoJxQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1488695},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"e15df888846d0656a6f88ae245eaa85758241afc","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","types:budget":"node scripts/check-type-budget.mjs","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.17.0_1788375768586_0.6853029785452256","host":"s3://npm-registry-packages-npm-production"}},"3.18.0":{"name":"vitest-auto-spy","version":"3.18.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.18.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"02b4d0803c82613973e7880b01f7667080c98ede","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.18.0.tgz","fileCount":69,"integrity":"sha512-zAvy6LtGeh6h/5mnQrO6vP5Ug2F6CtQtspvza63ZaBJm1z6U8Um45iXjFar88y6qPknwEpjZ840j3BpaOXmkzA==","signatures":[{"sig":"MEQCIDbzXkX4xFIemkmh3Danx13Zi8vUWaTRyzlNdfZbVurJAiAeBXz0Z1pDVu5RUXieYOjvK8k+MXzNZVeyBCvA28j+gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1509746},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"c3e4a6bcad552f22df8bbba65acdccecf49238e3","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","types:budget":"node scripts/check-type-budget.mjs","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.18.0_1788404251289_0.6776033228227891","host":"s3://npm-registry-packages-npm-production"}},"3.18.1":{"name":"vitest-auto-spy","version":"3.18.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@3.18.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"6b51a62fef2ad70388959457833d0bb69d54c40b","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-3.18.1.tgz","fileCount":69,"integrity":"sha512-CFfm8EDeOjuNzqUqyvap/4O2Xa/7RkndO6e9SNmvFaWnr/g8NlmMz1nFxTRmlXR+7UDNNF0b2tU0C2PnfleL4g==","signatures":[{"sig":"MEYCIQDGeMepQqFE0hE3/MIJR/3ju8ZvcTJnO9FyXXBuyMK2YAIhAIv6S/H9dZ0ksPGY7h7heU7+Ij5qNMop7FMcClxU/qV0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@3.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1509746},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"4767dc3bfcad09b7877fd9f9bb87885f87672034","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","types:budget":"node scripts/check-type-budget.mjs","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_3.18.1_1788404536349_0.7437941200548159","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"vitest-auto-spy","version":"4.0.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.0.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"062880ebbcb7fbfccab843a1b95f4f4f1f793c4e","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.0.0.tgz","fileCount":73,"integrity":"sha512-YrEEbtWytYwDEIALIufvTRdtCcBSuckIHRL+awGvELR3IR7wKZ1aZzzTl4DVnkjPIhC7/UZck9OpHvsKzjYjeg==","signatures":[{"sig":"MEUCIQDJJ3K7Cx926euA+qmNMLpyHg8DUWm8csqoYwD3hg45qgIgA8N3N8/qry/mGVurEeVnWVbSbbN5+V2o3fUiqKDyqkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1503142},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"290426d55650876c31bf291b5ec09d35c7c773a0","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","types:budget":"node scripts/check-type-budget.mjs","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.0.0_1788414252059_0.1962736370775502","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"vitest-auto-spy","version":"4.0.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.0.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"dcd221c6655c2367b28281f5d05bc2bd8fa9373c","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.0.1.tgz","fileCount":73,"integrity":"sha512-+qbH66CWCwKT8/6tJcv2rFq49gGxboTbpXM4HMbbjv4s7wlg+u5Dk3HsB8NOSA1Z4yuUlPLrNO1EAoGGLXR6fA==","signatures":[{"sig":"MEUCIQCumZtLSYHV3I/sZGjiS2Nv5nQmOdprazRIEJ/9UtJWKgIgAzW52Tw8Eo9H1WxmmhaGqVfuQQIHERxw5/YezNcz33c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1422520},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"2c28ef5952489a69dcc5223d5b73b994ca4a9089","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"vitest bench --run --config vitest.bench.config.mts","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","format:check":"prettier -c \"src/**/*.ts\"","types:budget":"node scripts/check-type-budget.mjs","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","alias:sync:check":"node scripts/sync-alias.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.0.1_1788415903094_0.7125767514977261","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"vitest-auto-spy","version":"4.1.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.1.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"4f7356fb8b26b0c90e28403d6a60e8c322ad8a98","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.1.0.tgz","fileCount":75,"integrity":"sha512-tJQZP8ThRXJ+wLDYOrDAMkKUfyU7+18DL0jdVepar8Xz1LkzCa0Mmvl8mX+pW7gqVpadHLYOtV+q6FBi9o6mUQ==","signatures":[{"sig":"MEYCIQDCrH7TLxhkg/zt9Jl0zOQmLCFM5M5qDDjPhLWO5qgzYwIhAP5YoFrFyZj9XMXWPw+WFdAu2vtJOkCkfRBRXnQYITF0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1515726},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"4c6714508e32dde382dfda6c82f581c4b50f49c5","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run typecheck && npm run lint && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:suite":"node scripts/bench-suite.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","types:budget":"node scripts/check-type-budget.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.1.0_1788471774349_0.06191467386707861","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"vitest-auto-spy","version":"4.2.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.2.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"eaa6fb4707a8a895bbd8503e359a7cd1af615d56","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.2.0.tgz","fileCount":75,"integrity":"sha512-IFGOiDM68ElA2Xy97PPVcbmT/mJePTnI74FVosSEBfvlqyzfSjkCA5eeuRW3FPz1rpgjBNNbQao71U0QXOCtLg==","signatures":[{"sig":"MEYCIQDCvLRrTAoEXkahR+++x17q8y8SP65t0zvyviIlS5KwjwIhAPh1U/tdtz8KLsiyj39/aq/vtGj/SeKNJxE1FQYPR5bi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1515733},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"6a0f723fb68adb553de3fbda737d2ea4d7ede9ec","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.2.0_1788480781337_0.9752855515726488","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"vitest-auto-spy","version":"4.3.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.3.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"f0a68b6627a518697322f1de1584a0506515b143","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.3.0.tgz","fileCount":75,"integrity":"sha512-GT2Z8RrZXg4n/TddojrFiHTwM8q99MMQL27amGvwjP4wFYWvk92vzDgbosAK/0KDDB+nz8OzjOR/G8Za0QJHmA==","signatures":[{"sig":"MEYCIQC0J2EqV1my0z5klX8RMMlG1ePPDqwYkkbb+x+QbjNdwwIhAIJHK9VbGyNaZ/qk0XLvPjioCQcQeUNpyT8Qh8IoDh/7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1606262},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"c5564535b01d505c28596ff968809116979c6d61","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.3.0_1788555451845_0.34672371012116354","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"vitest-auto-spy","version":"4.4.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.4.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"28ca86dd4d3f7ea92e33adf17d94ddde6a49670d","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.4.0.tgz","fileCount":75,"integrity":"sha512-ky7GSRmbLItXvdS7YFzNxgtVQGsi21qH7/9LUi4TEM0a+s/uDlvNuAToA0Syjyc7pdK1cebR78lHXh74pWxqJg==","signatures":[{"sig":"MEYCIQDPEeU/S77Wfyum3Zx3pxxO6aYpjZnJeVTkGF52D/qgOQIhANn0etQCpMlURzJQJaNzJflU2uqYZBNeAcdxw7NH5BUy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1615287},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"e102e20151caf7cad18052f246a0268a2d738d36","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.4.0_1788616331215_0.8371719581080179","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"vitest-auto-spy","version":"4.5.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.5.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"22448d349373bbf008607f0a8f09625ba279513b","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.5.0.tgz","fileCount":75,"integrity":"sha512-mOwSZbm02wKdxookxc7xkX9wkAlzi8BcGdjFWmnvSZwgGM8I47VIN9kHuD48Bz+WJGl8Vabha0koVyL9IyNnmw==","signatures":[{"sig":"MEUCIQDFQEKKLUK5LLxBVMWKq2lDk96Hk4d5KgMQPjlkeWQC7AIgMdt0FMkmzLt37VLGbp+T6u3ko74x0jNDqbgq2vxpimk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1619374},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"95180d091f80dfcb5a6e14944576a68103013e6d","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.5.0_1788626998891_0.12274721179248016","host":"s3://npm-registry-packages-npm-production"}},"4.5.1":{"name":"vitest-auto-spy","version":"4.5.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.5.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"b87c7707e7338ac2b6a1e3c2f2630585f51b22a6","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.5.1.tgz","fileCount":75,"integrity":"sha512-hmxYjqg+unVJmC8OVBz3R9jPCpVSMYLXl17AwhAx9BYpM71sR8jMetRD10jlqagAkwb+Q/IOuYL9xGsyCVN+gA==","signatures":[{"sig":"MEQCIHx54nKbrxOuICNheARzO/P9dUZozq0EUILYdZG6UZjyAiBiE0dSxt4IRLI2T2OLjvascjak7qc6qrfupQ9h2HRIpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1620443},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"92f69d2dbb58e0dd40b4d0d0f233144b87525019","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^4.2.5","jsdom":"^29.1.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^4.2.0","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^5.6.0","@types/node":"^20.19.43","@types/jsdom":"^30.0.0","@angular/core":"^21.0.0","@angular/build":"^21.2.16","@angular/common":"^21.2.17","reflect-metadata":"^0.2.2","@angular/compiler":"^21.2.17","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^21.2.17","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^21.2.17","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.11.6","@typescript-eslint/eslint-plugin":"^8.61.0","@angular/platform-browser-dynamic":"^21.2.17","@trivago/prettier-plugin-sort-imports":"^4.3.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.5.1_1788634299466_0.7356531956857859","host":"s3://npm-registry-packages-npm-production"}},"4.6.0":{"name":"vitest-auto-spy","version":"4.6.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.6.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"a59d68a2c974a60442c808420db917f577d6b4fe","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.6.0.tgz","fileCount":75,"integrity":"sha512-aAQXTKfEyNfhoXQD4xNwlV/eCg/4IShv2KwsY1VWSAjGY+7W4yxnmJDLmSez0j8YZ12fRQDs00zOZV6y6WTDPA==","signatures":[{"sig":"MEUCIGxr0+b3DezzU/gsrMxUGIZfaXvdYOFgrIH5a6nkfgKIAiEAohaoVRPT5ZCj098MBycibqaXqd/eRucWJOFhTfff/LI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1623915},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"78b475a9504d0ebca4d0e83d986324b2d3a215cf","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/node":"^24.13.3","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^22.1.5","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.61.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.6.0_1788685429271_0.8052779049373002","host":"s3://npm-registry-packages-npm-production"}},"4.6.1":{"name":"vitest-auto-spy","version":"4.6.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@4.6.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"bd9f96fbd02e5454e6a3c6ecabebe75bb95b8ba5","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-4.6.1.tgz","fileCount":75,"integrity":"sha512-1uV9YPvmdPO0kgktadKEpmb5b8+7TuLY17eEa+A0g82/QExG8i851CDpn/ucHRjkh9F0oNJG+xLITOYXHdAYsA==","signatures":[{"sig":"MEQCIDVuG5qW63ECJIMUJYWx7e4eSZDDDuonWN34QsTSyWRJAiAypDxK80E8dlqG/N2v88cnrer5WEmCDRct+PUwvZhxIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@4.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1625707},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"bf838324aa20ee0938289571ccc8e5ff7dd578ab","scripts":{"lint":"eslint . --ext .ts","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && git add .claude-plugin alias","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --ext .ts --fix","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^8.57.1","vitest":"^4.1.9","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/node":"^24.13.3","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","eslint-plugin-rxjs":"^5.0.3","@vitest/coverage-v8":"^4.1.9","eslint-plugin-import":"^2.32.0","@angular/compiler-cli":"^22.1.5","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.61.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.61.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.0.0","vitest":">=2.1.0","@angular/core":">=16.0.0","@angular/common":">=16.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_4.6.1_1788686471951_0.7248408811783837","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"vitest-auto-spy","version":"5.0.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.0.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"2611f83860031757779a90b1beb13509665b93ae","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.0.0.tgz","fileCount":75,"integrity":"sha512-0Z0ya0Ci1YFycUekg2JtxUzI3YjrIUgCbBPSfFUURXcdVn/Q3emuSBYN33sAgck3S16YXLyh/Cn+m8wyE//MEw==","signatures":[{"sig":"MEUCIQDYhC6iltPCBQGWOpBFsx1rRyG7ilIlc0gz/kbjmLxqYgIgcOPAwBOSMUKzJ6tS7w88zYpftZQSTyXmRY+H81K5jYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1644882},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"0395a0ec9830c0c3f0e970e24b3e42b588a3b162","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.0.0_1788758527932_0.3064382937883521","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"vitest-auto-spy","version":"5.0.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.0.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"c0854129cf6efe71e253505d792e57e83eee4ac7","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.0.1.tgz","fileCount":75,"integrity":"sha512-LZBodZoRCPsWmGpIGA3wKzpuMb+E1cac4Gv7ijldXJ7Vdu4/17lS08khmkXJrvq6xhqj+Apnb6NTpPOMCMdaAQ==","signatures":[{"sig":"MEQCIFmM0ZHNdkjAlyVQPjW8vvtGu9HNOEV91at7hQiSVRG0AiAlQsB9uQo+wI8OTVuJBLyelvcQZ4XO7I9IYnBPgS+jvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1637542},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"5d54c4c59aca56fa12bb17b3e45dc3af92e1fbf2","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:bun && npm run test:bun:angular","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun and node:test, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.0.1_1788767630529_0.6894992520921808","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"vitest-auto-spy","version":"5.1.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.1.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"b39418e314194ceb27f5c826fa9574293901ffd0","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.1.0.tgz","fileCount":78,"integrity":"sha512-9CvoqEyeo1vAPC33URglLXq7HQvTqrPFfTtRXMJIUfAsGMMmtmLGz8UD260dTJ7iudMkzd/H114YDDx+CT7mgw==","signatures":[{"sig":"MEUCIF2OBNi2MHO6Jy7RKt0spmoj99BfdH1gxJWs5iyhklA3AiEAgklxA+e8/fFUpQx4F18vQtN5rdtHuAyrZKkcpKk3LWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1654992},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"cdc5f820c667e29a6f9ea07372983c3673199fab","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.1.0_1788965722594_0.0376913439670401","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"vitest-auto-spy","version":"5.2.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.2.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"36f1c0af8f10eb81414c990b0ea875ba8d619b3a","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.2.0.tgz","fileCount":77,"integrity":"sha512-bUWNkUUfTEd+3ClNR4AEeNZu09yqtK141UYQZWAdgjH24XONAzI+dGbDNtLECrdJTnaUVVITOha+Y55DoH/yPQ==","signatures":[{"sig":"MEUCIAUA9l/Is7dkULKmO125Z1Zv2C1N3TtpQeeOrF5sgVUYAiEA8rUyoKPzTVwRNgNwDOPW549TlJCYVJRuzPvMpdDFzvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1723788},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"ea949bb5f2bad9df3708af259f1975381cd11424","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --experimental-transform-types --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.2.0_1789032520469_0.9974234984397934","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"vitest-auto-spy","version":"5.3.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.3.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"4978c8ebadd58a2b38c6d4554472c17704f2928c","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.3.0.tgz","fileCount":77,"integrity":"sha512-PUmDXMijaoecctWkMgSDnRS7JTVEuuBrpPEPX1NasmU/pz3fMtWESg/R32HDDU9nCNe07n4cupXdBOweT5vmTw==","signatures":[{"sig":"MEYCIQDUbdSEVyUia4toSepveHsk/iVAZZA3MidL/LJXa4kEKAIhAOPH0Jvy6wE1GBIcHaH4WUc3f0TckyZqYgJtZpeYR2FY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1725709},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"11897c0a3ef7d1cbcecbcb564b8921ee5e9756df","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --experimental-transform-types --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.3.0_1789039258541_0.7680727867033457","host":"s3://npm-registry-packages-npm-production"}},"5.4.0":{"name":"vitest-auto-spy","version":"5.4.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.4.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"49a0684e8193408c697f9d86b3cd3b9147d507cb","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.4.0.tgz","fileCount":77,"integrity":"sha512-rD01Mh9DZ3ubm8iTnL0A4ZsGlQh79e3ZrjucgguuA0tCSw4vnsf4HngfZ4rmqEYx8pTk8x3aMaxtTIN/khzWVA==","signatures":[{"sig":"MEYCIQDDjxBQaOddk0muvy63aA5CPMHY5ADbM9zz2fzNi3E+UwIhAPooRLzgo9rdjI9zezLUvKNeO7ezILWiL9SjyGfsw+jj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1752496},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"507a24229e74d92daddfd26312ef0780c2283849","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.4.0_1789051209119_0.5809487075103688","host":"s3://npm-registry-packages-npm-production"}},"5.5.0":{"name":"vitest-auto-spy","version":"5.5.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.5.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"c2a0f1f8e54c4839a8ac16031b8fc846bbfb2b0d","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.5.0.tgz","fileCount":77,"integrity":"sha512-23IQZ7wW/V/OtOhzcXjCszDKuxRALhMXTUG1IS09bOH44qa0keCPzq6Fo8bDayqtx2mHqR0vDik1u1z4fS244Q==","signatures":[{"sig":"MEUCIA4meox2F3huUzaLCf4AJLs5Ncsu4sciJcZcelUP3xvRAiEA4NkAboxvUb1MWjhx5D8tKCn6I7rrvLBnAZaW+bMWHJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDM+TVWyufTSQzUJHs7LKxS+vI57FlcZ1s7s9612cgCUAiEA4NEH4ciQJf8oqcMXHql9LAHL2pd2FvyEbsEJ250jyP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1822877},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"e2ed16962b6d7b9d3d4ade46c02d8eb8200f7686","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.5.0_1789102532368_0.7864695307215606","host":"s3://npm-registry-packages-npm-production"}},"5.6.0":{"name":"vitest-auto-spy","version":"5.6.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.6.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"1a464a43263dd67d3d3dd09e50323f22e34af0b1","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.6.0.tgz","fileCount":78,"integrity":"sha512-FFfORF1TX6ptqK17c/Ym0kgvEDYpIlF9r8n6dtTb3K/Qawet5i+C4CKAW6h63Zfgjv5Zay5+Mh4+tqWMCN8k2A==","signatures":[{"sig":"MEUCIEUqjIjjY9ecCnAdXpodDvMV+nHWWLh7HWVpNryKTYMHAiEA8jylFw8HINC/COrcqnBamRs0yaavQILZLSWjFnq2a6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICfnJAdlEIZZParY3q0ywwEBOOlInbdgbpM+qP43PF/9AiAom4hUnZaDshnYBn09jLahaE2/iUDWU/o/spH5wip3jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1883391},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"a37bda4b8489b58249b4d6d1bb6d49156dd2832c","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.6.0_1789113801076_0.6393360268596056","host":"s3://npm-registry-packages-npm-production"}},"5.7.0":{"name":"vitest-auto-spy","version":"5.7.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.7.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"11d5411be2d5be82ff491795ed49d545c262716c","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.7.0.tgz","fileCount":78,"integrity":"sha512-v9e25tQgVzeBotk1COUY3QyqLRbCsSVmU0mrcD0EmX8hw8J/NIHoAKwKkjw/iGkpHAxZxHuWv9yL85oLaBcijg==","signatures":[{"sig":"MEYCIQDadoG9JLgB0GYDBwRkkxryBu13rWXlKqjopUgzIeFGggIhAM48OdPaHHxIoXTHaBDuc6Fq6nBZsMYd6eqX5cTs2+qS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDzd6yBCvyOS3bCRYBgp/KbsCLKYyGFrIjTmyfhzIEpoQIhAP4Ti6SO3ZH6nzYQVBu+uCBwj7ngzpNsQyV5F25f8jEU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1905420},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"a6884c0650eb2dac892976b458db99ec2bfa02ce","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.7.0_1789126999343_0.059906992751931565","host":"s3://npm-registry-packages-npm-production"}},"5.8.0":{"name":"vitest-auto-spy","version":"5.8.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.8.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"d7dcd1724b95d7eb9a0d4256e3ed0f22c7ef81c2","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.8.0.tgz","fileCount":81,"integrity":"sha512-WWx4VejDWfLiXiaT8GnbYVAsl/M4o7jV4eOtJ20mQoVQA79nmHwJiZw8x+z53achRUFgdbEg5alN5eIB4pjVfw==","signatures":[{"sig":"MEUCIQCdKdI1eUlgHl2EJ0tVF3qf5x70avhFLJKB9Si4Qj3aHAIgebna6baw6G154e+3jpdXESEgCrb/pgNmEgYRWmh+ZIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB1gbn5+sTGBFtz8h8xomQJ0ONzo1EMGIEZe/RZ8/xycAiEArIncsvKkMaTh9dIe9LVrrzpyobfIBGoVwNijr4RmYbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2003589},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"474343869b3935cfc46a421aa0fa9f035a3b0b5c","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.8.0_1789141484588_0.40455173855071913","host":"s3://npm-registry-packages-npm-production"}},"5.9.0":{"name":"vitest-auto-spy","version":"5.9.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.9.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"4d7147fd8321a0b8ab6aa456fcf4c39e589e6096","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.9.0.tgz","fileCount":84,"integrity":"sha512-n/kdZOaIkJvV3uLjwdXuQHqvPb+ng+PzNvL/GlIgEi0+MH2bJqohFm3KTervX85vophHJ07RUw2kwTiKIToqMg==","signatures":[{"sig":"MEQCIDVnc28nQdVu5DluLY7PxSKcZdw9FgEqHPXIFS3v3cqcAiAR+a2Ar9KoOdh1a+H135SCnVMOwc2Lf2Cct9GO8bq3vQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+ylgythWyy4mERza0ScGdPrS8CRLfMyJ7A3r/+lFayQIhAMKHVhpL5ry0GqUbGEolfd8ZMYekNwInnMF8na6rR/MV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2221371},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"22a31849c83a16e9b4f42578d86b311a59e8b365","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.9.0_1789221600527_0.6958694608343188","host":"s3://npm-registry-packages-npm-production"}},"5.10.0":{"name":"vitest-auto-spy","version":"5.10.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.10.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"15e91b1e53c6dab1e16b07e6534356cbc4951ba5","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.10.0.tgz","fileCount":84,"integrity":"sha512-4NFJm9Rw+xG479e+8zrGUsznW4e/3e8zQe4r7IO2PQFk3pBkjxwr43HDiW0af68btAqkFJC5tY2jXsvgyPNf1w==","signatures":[{"sig":"MEUCIGVsbOGx8AZOSIGwE836pdvofpwbMPLV/ZYzugTB1O1XAiEA7jm0u3T2umQFeAUOZRlG1T9KcYwcDyYUqCfBJF7Rbbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBhZ2MCxU/FuGYPIN7ZU/HbtkZbsQMhd+z0iR0Pe/apAAiEA8COs13mBOb7yy5u7sBNkZjzF64KVoPukFSH3Y8LNdik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2236235},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"382d00ae11733891cdbddea9fe0f05942655594b","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.10.0_1789232807440_0.7867016134501148","host":"s3://npm-registry-packages-npm-production"}},"5.10.1":{"name":"vitest-auto-spy","version":"5.10.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.10.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"bffe49c64e15ddb37bba34e262727160e6a7e378","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.10.1.tgz","fileCount":84,"integrity":"sha512-E52dEXVJtOxZtgHf4hffq+/qiytAXOY9rlnYW5wHzNl58DDlDQ3TV5TJ03I8Z4G4EgpoG5VCQ6mUvtbyMovJHA==","signatures":[{"sig":"MEUCIQDN1YbDlQ/d9GwP8kIKjuMdLFTkciAOyFthyx7fCwda/wIgHID5Z3GrRc08lzZlImlX7nnBkwRhy9pV2qzT4zU7iHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD1qHKTWUetdtL+SSS45RY2RyKlT4rcNFqCRiBdHF42WgIgHm/aQMtBO1vrFBPs6B7XIAZs6zKPlHWELq4DxTY2cPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2239343},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"41c71cf358bf78b997e8195fe6b15e0ec76a6e1c","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.10.1_1789281311421_0.732370196943547","host":"s3://npm-registry-packages-npm-production"}},"5.11.0":{"name":"vitest-auto-spy","version":"5.11.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.11.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"5a40a038befe7e5fb1d6577c875c9862c0b70435","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.11.0.tgz","fileCount":84,"integrity":"sha512-mW8/eO9XWZ5g7USEJ+1xEK7kcSkDQxRzCj1VscfgCHDY6zygtmJUEvQ0KnlEJjEK8q8gxQSVOr7ytF25hxWeOQ==","signatures":[{"sig":"MEYCIQDKMuxIPXHvGCnXqQAFx+5EhBIWarqeYN7w7jBO9e0tzQIhAI2EmNf3Mp7aEYV1peYvpvB30r1Qhar2XZa+BEC1KGOB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDUMKB8qkpLk9vKf3CtIUfCf+SIRxed/Y/vNzJqMP1kiwIhANt+lMy//3OIeL3IDgoRjzjzmiQgDz5rjbyeFZdbdPFE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2264182},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"a9cbcdfb3f827f0a4bc1b60167ff09bdc65a6eae","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.11.0_1789295228240_0.895497534342744","host":"s3://npm-registry-packages-npm-production"}},"5.12.0":{"name":"vitest-auto-spy","version":"5.12.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.12.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"c68213ac4b8bd13e0afaf361655476d473f32662","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.12.0.tgz","fileCount":84,"integrity":"sha512-pmV6i+gHyQBCvlr4uNEiZLIm5fiCnoR2fZgJHKnbhmX7UPKqujNp0BV85juDoA194XH1vc3clfoupLhvMZDB6g==","signatures":[{"sig":"MEUCIQDgfmsTL/qivYM7FdHaOC/k9lfCjDOCnTAtHehT21U+wQIgbgjPNNyR2m9UhLp2iDOBdPwb3Aax2Qecag6bmJbV0oM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDcPjasTYH8hnzM4vsiPrOYDAXj3IwsHBajCd+fAqx/TQIgesmY1v5VVfG4fl4KgxI7k2p4Vds5dKCRAYza/JDMqPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2278803},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"ab529d98dc67afa76b646bdaab0f989fb6c518a2","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.12.0_1789310038326_0.4273098092459209","host":"s3://npm-registry-packages-npm-production"}},"5.13.0":{"name":"vitest-auto-spy","version":"5.13.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.13.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"30fe769ffe6992a4e56f053f15a05b26bafb159a","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.13.0.tgz","fileCount":84,"integrity":"sha512-cYAIykdDyLKl9XQsL8B2dmclcIbeu77GuMVn0PwXyoACzJuixmxtRUoRfC2QJNeaH3og6W9lvoP7VSIbDU7/+A==","signatures":[{"sig":"MEUCIQCUobC049RCoSjPZ2nLdBRYyK+6MXJ+InGCz8XR9iUR7gIgPi+cgsWouTtEXdIG8HDeffnYzj9p4rFvE0NSXG9NYDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH3t4amIOGhSoEFP5S0VA8t4phBAUgaTLbIs9P+4eImUAiBxRtUIifN1iz1ksKhRmvQ+ku5TrKE51hVkWWN9wIoSRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2279928},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"e5ace97f8450fd138bf5e73509531bba7f9fd451","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.13.0_1789325953648_0.0025262102730072566","host":"s3://npm-registry-packages-npm-production"}},"5.14.0":{"name":"vitest-auto-spy","version":"5.14.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.14.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"ac69a8dc5919d3229e4d7684c9339a7c8e223bf6","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.14.0.tgz","fileCount":84,"integrity":"sha512-49Ver839d9dZJ9T+myDJ5/oGR4669a603rc+bB05CMDgV1UNg3VZrPAFAGkVrdSqUdoqi0VWC1eM1Fyk+J0t7A==","signatures":[{"sig":"MEYCIQCHwgyRgcX+JC6ilLIFPAT6JSLwewg+jtBOq/IfoR79PwIhAJ90lDw/RAkSrjoxHnNJWGM2Vp6XlVM2y5RrX0/gdGZ2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCTsHmmHwv84LS3sdcXa9FJrIdgY7G8z07FFTxr5thvsgIhAJWCmCnEQ12arhX2pM4PaAB3q6X7jULlZOsvJC9aFEu7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2282275},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"69266d60e0e7682c5abc79159913e793ff2f9306","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.14.0_1789334173601_0.7219505331593192","host":"s3://npm-registry-packages-npm-production"}},"5.15.0":{"name":"vitest-auto-spy","version":"5.15.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.15.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"4fe2a1592905bf00ddc057da16d8321c5966f10a","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.15.0.tgz","fileCount":84,"integrity":"sha512-QeYqMjTy4i1KuRqXskx+iFxRd0K1MKMSJq6Nbei/u2NUD8Q9TZkDqqfjY93LwP4b1kyeT5eSZ8eo2Cqm1y2Ezg==","signatures":[{"sig":"MEUCIQCc9pmZxPJFb3opuKoXL4EKfKZCUPzAIjEM+9OqUKNjDwIgE6BVXbkzXZyA5oYFp0zoP3akwFh6oXkfsom9/ffyiz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGah9gFWbwXv32wZwjCrJmvhXE7IzPUoyVS1c3qMSm72AiEAoBMuS4yHoqHo0oKNcPA+5IHU9lKovX8d2Ds+sCY4aoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2287977},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"2bd545b01fa1a385e453ba73c492e87a4f7a965a","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.15.0_1789401746522_0.23174574039115314","host":"s3://npm-registry-packages-npm-production"}},"5.15.1":{"name":"vitest-auto-spy","version":"5.15.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.15.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"17bf4d12b39a897f61edc9d803b160d29604ffff","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.15.1.tgz","fileCount":84,"integrity":"sha512-TfkSMCmRf+qR7LthCxlJNjx0KJttVeR07DHsIgTaFcqJxHzsoN2yjhu2vkenZtPNuUhEu6uIqdMyU1dfO16fMg==","signatures":[{"sig":"MEUCIQC5Pr0xVgT3b6MPwMYNeLpMt5Vm4xII9daaAePd7Kr4zQIgQx9m4slZu2unolc1RFgPBKfWweROrALmG9qDifLmUkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC52DwcQSUBy5/5foIm9dNe9tpmRO+BwFGqS5/whwWkGAIhAKPC/DAThmNyrM/o/K2rmZdWLCS5oAFveQnDB1c74ZFV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2289628},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"6911249e9fcb87978b7e6d5828f767447d44f30d","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.15.1_1789415268394_0.1527080660814244","host":"s3://npm-registry-packages-npm-production"}},"5.16.0":{"name":"vitest-auto-spy","version":"5.16.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.16.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"29cd818756c9dd1a4e06719b83f335447d8089f3","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.16.0.tgz","fileCount":84,"integrity":"sha512-oxyWU3kTaiedXa1pMsKYzxGajfTovRlhKY0Wdz2amcw4g4eH2FiMb1wdqbTWyCT5ZzSXD8yW4gYcmZpmVimEAA==","signatures":[{"sig":"MEUCIQCQNdKheMiuixFsqD0gWUEtMkhQ6OMnnnNmrjzsvN4gmwIgIz4ju6pM2RuS+pnBgClKktlmSzTONzgCpoCfv+S90nA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCzUGPGcCjfc2eDRex58Xz8Oya7wC0jfy5UvYxwGDc2kQIgIZTGXqzyxpS8j9xXyEaGvk+uMb1sPiiegDW53eQMIyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2299243},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"fc09fc06881b6b11a182c8fcc77453a69870d5d8","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.16.0_1789623407810_0.9005481140196037","host":"s3://npm-registry-packages-npm-production"}},"5.17.0":{"name":"vitest-auto-spy","version":"5.17.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.17.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"af6f199de734a360f96b9799f9c124028a110389","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.17.0.tgz","fileCount":84,"integrity":"sha512-xR60T7BVEBpf6Fp89ngeKYOdyZRQS+KuTilSUsdLpa5I59Dz6CBZM6q29duytMaDQut7S5YzMLfK3LRWve0NPQ==","signatures":[{"sig":"MEYCIQCu//kFyIAV6nphQ41kF6TmATLrKYapzWDm77W4uof8KQIhAPudzJgxJO9HTkBwKoSLc+ysNueKOEnGUzQe1tlpKQek","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAVlIpCCCTI5PUTBwhv17kPwKLgrrDP/m4PMqrFGrcbQAiEAy2RoytQMtknUt1/SGvUlZn6LB1OW/17WjMY+ZAzsogU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2316062},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"8aea94a67ebfca1fc85d64dc3b38725867c04725","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.17.0_1789626761911_0.38066563082788574","host":"s3://npm-registry-packages-npm-production"}},"5.17.1":{"name":"vitest-auto-spy","version":"5.17.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.17.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"5e80a8866186e92778def1d52a22a0b4438a1eec","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.17.1.tgz","fileCount":84,"integrity":"sha512-jAeJGwEZFQiGF/OmJKrApZ7ZISVdx0xJM7oIC5MdU3P16ipBNnh+Y4+LMrZVOWH4JWm9lfOjK7+Is8K8AVyNNw==","signatures":[{"sig":"MEQCICXCFW8sV0Ja5GSsxzKFrJncY7HMXor6V8e+xMGAbn8RAiBU1Pr49R+CrNkqYbX6oGGJ8LpX/6yiJmyWfj5Mhz2qxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCef7UYvV8nwdhZeHzonyWspEV7nRRFKdHSOftrYc4YuQIgHh7QllQ2dMbh901NR1MXIN7jJipFVIaABw9N74txa3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2316559},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"3b3a7744f5bb4f455badf4afdbf315613cca8208","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.17.1_1789629366380_0.9405873149640913","host":"s3://npm-registry-packages-npm-production"}},"5.18.0":{"name":"vitest-auto-spy","version":"5.18.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.18.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"fddb0450d1fbe921224a25ed4e7e812ec579dde7","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.18.0.tgz","fileCount":85,"integrity":"sha512-brRSXWS3ZEYGKC9Lr1pn6TmMy9qezzRJ1FF9kyNpEK85W0AZbJDi1FS6UWbBNlwRMBRa7M+c9njzM9VOu+ATXQ==","signatures":[{"sig":"MEYCIQD8kgt41MkN1v5P+DUkzHXFqmRMLsB/BJkKzhWwXpa+oQIhAIxCm/4P3txSwFyjV77YgytMU98CzdmUL+xEG8VDseSx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQChZByxQT3X3NDxXil2FriYfiHEc8ga1sAPsg7sRj4HJgIhAKE+eRMc0HRoL17kGv/AlW+qHtlIf8tIX4M6Ye9VxeyQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2352606},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"gitHead":"a11a66e0babb80dbb9375b1cfc71a58fd53158ad","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:rstest && npm run build && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=22.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.18.0_1789660032264_0.602315958091421","host":"s3://npm-registry-packages-npm-production"}},"5.19.0":{"name":"vitest-auto-spy","version":"5.19.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.19.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"bf105b63d2fb32f26227bdc755ebd6a99abdfa67","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.19.0.tgz","fileCount":85,"integrity":"sha512-WEMtcvxXMAF5wCMmFGF/U1pGGIh/8SlUvGIAARMO4xugHine4E4hwP9JXpBxd2KAxI3u4VBlI6o1zsyY5yCBlw==","signatures":[{"sig":"MEQCIG/SG1sq3ioERW19czSZJMwgVmBk0iKgTVeBc4SNGx4XAiBt6ULwaa1fE0mUBe/CChc7HKmtdmOXh9FvXehx9C40EQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC6sVKvR7sAssOzui2D0Tex59ZzTx8zrXjtagnjZUvWLAiBwMvyMH19JyitIUxSZV6xFjZeTp7VNUyvZBTdOYFnrMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3086394},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.19.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.19.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-WEMtcvxXMAF5wCMmFGF/U1pGGIh/8SlUvGIAARMO4xugHine4E4hwP9JXpBxd2KAxI3u4VBlI6o1zsyY5yCBlw==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.19.0_1789823336158_0.27193816140762817","host":"s3://npm-registry-packages-npm-production"}},"5.20.0":{"name":"vitest-auto-spy","version":"5.20.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.20.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"380f306d3b24c2c3e52769def1db9ec91b20199c","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.20.0.tgz","fileCount":85,"integrity":"sha512-JMdeLzOzEyBkmyCnXcuaAYWHE8bF6evtoFvoNAHr01mqylj4miUBl7/gf6eVoBjlisZoD8+pMlC5SzPEDQYpFg==","signatures":[{"sig":"MEUCIH++64BduMhIgENdvHaI7njY2Ue1ANL+qih/93Z3PLzxAiEAzZsShMUthrZ3aCSEfTF4itMqZrlL5uXc1dJtxlrccYY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDPcSpQtm6P5IW8qcKdezo7xOP/fIgqnT2v5JdzFTjCuAIhAIh94JOHCZt0/s5/0OGvT5baj0yNaSgLLgILTfbHABdD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3220559},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.20.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.20.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-JMdeLzOzEyBkmyCnXcuaAYWHE8bF6evtoFvoNAHr01mqylj4miUBl7/gf6eVoBjlisZoD8+pMlC5SzPEDQYpFg==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.20.0_1789846612665_0.8095330490690051","host":"s3://npm-registry-packages-npm-production"}},"5.21.0":{"name":"vitest-auto-spy","version":"5.21.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.21.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"5a563d583e00dc608a432fdf949edd8c78973ab7","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.21.0.tgz","fileCount":96,"integrity":"sha512-QtQwt1/afNx6KK7oGr7d5d3jx0xfxwvIDNcMy1USN8T5zJXS/+rBnJsMFnDeBLntlMfcczTpp8dtp+DLgs7MXg==","signatures":[{"sig":"MEYCIQCaa74IX2gLA4zb6olrki8RDNaSzpEr5vgKR9y6rTs2dAIhAN49av9xnX/tkZ1rFoX/AhDhiW2SE+BwvGB8nhKrScJF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCCd9cJIdVeTJHDbnhujyAmUdyIf+L9fBgw+168QYXo9wIhAKrAl1ta3DjVJ3gSiWJGsUq8NcJDduyKjIRJRGIoXEf4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3247957},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.21.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.21.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-QtQwt1/afNx6KK7oGr7d5d3jx0xfxwvIDNcMy1USN8T5zJXS/+rBnJsMFnDeBLntlMfcczTpp8dtp+DLgs7MXg==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.21.0_1789887994076_0.7512266415328703","host":"s3://npm-registry-packages-npm-production"}},"5.21.1":{"name":"vitest-auto-spy","version":"5.21.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.21.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"963dba6355b67f136a6164ff5e9a0c76f2f4ca17","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.21.1.tgz","fileCount":96,"integrity":"sha512-UrrXHU+TBNERPRNVB3f2umQDuCCkGif5vexM2XYPVWs+7ksIDdQ8/hIasW2yLH2y9S9Q3zxIPwxH94JGwxablg==","signatures":[{"sig":"MEUCIQCbbXdit4G+QYZkNbdxzNJ4j/T+0npj9CmKvuJi2IUPZQIgRmSKgbsj49T3BEAZHmLYgX3ac/zQ4tfaI1lgP7+3+7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDbBwSiQgNrEHthFyqKaSuQHlz7gRvWz7I1cwVKkSxDlAIhAMOGhLSyeOGqpFofEd4tATMf4A5t57teMHd6a+sPRQK3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.21.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3248973},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.21.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.21.1.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-UrrXHU+TBNERPRNVB3f2umQDuCCkGif5vexM2XYPVWs+7ksIDdQ8/hIasW2yLH2y9S9Q3zxIPwxH94JGwxablg==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.21.1_1789913467954_0.6265535058014364","host":"s3://npm-registry-packages-npm-production"}},"5.22.0":{"name":"vitest-auto-spy","version":"5.22.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.22.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"6dd7045ee8cf505ff65f70454e47c2298a08d97e","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.22.0.tgz","fileCount":96,"integrity":"sha512-VZRG+1dLQWoRFkOWHk/PXZ3x1ztxrz2gXZywkJqy+Hi0GLOoEe2dIoT6NUdJozhrsGUFdT/kKvadfEAvQuBBQQ==","signatures":[{"sig":"MEYCIQDFYRvnpbngAOsKxeul9ArtZFhDgmxTvzR89oJGAd4JkwIhALwb1wUqELKTbyRqmVZs+ZI/+WDaEtIEYKUg64R5sCg8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC7iZjbsLQp6IFmcn7uHI7KvpU4bDUWBrp2s6ibRL1PQwIgbT05SmqZAz92hD7bNUlbJBg6VEFa9i3CFu9wKjkSli8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3282494},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.22.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.22.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-VZRG+1dLQWoRFkOWHk/PXZ3x1ztxrz2gXZywkJqy+Hi0GLOoEe2dIoT6NUdJozhrsGUFdT/kKvadfEAvQuBBQQ==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.22.0_1789934771071_0.5997905822488274","host":"s3://npm-registry-packages-npm-production"}},"5.23.0":{"name":"vitest-auto-spy","version":"5.23.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.23.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"eb2622ff74e30eaf5f8652c1597ce3a06b4a95e8","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.23.0.tgz","fileCount":96,"integrity":"sha512-g4fijHZ3Jh0mx82/CvvSVV7WF0mu8Oau3uIEXfbWmIwxAOH7UxuZ8BuZJD4BgadpQbHBZTmwy1z8sFFIINEiqg==","signatures":[{"sig":"MEUCIQDLJT/2Ell+KQZ6C08ZGAaYo4rqxsjB6o1q8eOKmW5RIQIgAMLBC3h4xVlbTD2m4fcMWE0Jbb9TrGwE2ZGOx3O21Qs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE3KIQjW5nSWx+pAs6BMroz9GXZlkLbLIHzyyKOf8eDVAiEA4IYfzihm4mMKRF1vrPckDBM8iiyKcLhmMd8JMtPrGiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3375796},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.23.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.23.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-g4fijHZ3Jh0mx82/CvvSVV7WF0mu8Oau3uIEXfbWmIwxAOH7UxuZ8BuZJD4BgadpQbHBZTmwy1z8sFFIINEiqg==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.23.0_1789976653581_0.69510697933918","host":"s3://npm-registry-packages-npm-production"}},"5.24.0":{"name":"vitest-auto-spy","version":"5.24.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.24.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"3b3af4e11a0e8010e4c0fd48285e04137046c989","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.24.0.tgz","fileCount":96,"integrity":"sha512-JRVblt2S4hOz5ldYkLD2KNPNwUDzh+RXsjU6BJZd/YMXkLqFUzN5CgViS0IZrSIK3KNmIDmaHdqPEHjoDyrrDQ==","signatures":[{"sig":"MEQCIAYvlaOZLDV1DZr9GiWGJ2Q45KLwrFBQm29TmLNmigNYAiAGyPsuOir8rexFINrXn2kiCfxsQmvPVKo4blT0Q1Nmsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBJKO1vHqT4PqjEZ/FGwgq7bVJoQRhOJAFgL7ydpyZqMAiBGqn6cxfmxVxVxafkEvu7iC4v2yakw6f1bMzJk8RVC5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3386806},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.24.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.24.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-JRVblt2S4hOz5ldYkLD2KNPNwUDzh+RXsjU6BJZd/YMXkLqFUzN5CgViS0IZrSIK3KNmIDmaHdqPEHjoDyrrDQ==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.24.0_1790105348061_0.5946763569237772","host":"s3://npm-registry-packages-npm-production"}},"5.25.0":{"name":"vitest-auto-spy","version":"5.25.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.25.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"772f7ce070cc21ef74433380a48ab6e42666219c","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.25.0.tgz","fileCount":97,"integrity":"sha512-AN3MrWettpXQTx54nkTJUQDoKMhxF2UUffVhCdcW2kJoiJ9g2TKk/RD/K0in3sMBb6Iz5qOJrF3F8pqoqT1p0w==","signatures":[{"sig":"MEQCIA7Dz7KKO1riW7bdYGu/ZA3wkDrgUoXDAgr3xnrPsQHHAiBo4uVqiQ2th3C2aTmCgfUdSSv3fkDzJxN+ugmQ2dQF4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDMLqi4b/kNbfePx3PYXLIUSM2oCPvSsBmuiZlPZ0l8oQIhAPxw32MZ6VnXoaCwVgpfOEhZQDgSMcpMDDw0BAt5Iw5g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3529076},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.25.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.25.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-AN3MrWettpXQTx54nkTJUQDoKMhxF2UUffVhCdcW2kJoiJ9g2TKk/RD/K0in3sMBb6Iz5qOJrF3F8pqoqT1p0w==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.25.0_1790151521170_0.5026046672447608","host":"s3://npm-registry-packages-npm-production"}},"5.26.0":{"name":"vitest-auto-spy","version":"5.26.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.26.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"cab1341c537f3d40a7c239f48fdb99f8c055d6c1","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.26.0.tgz","fileCount":98,"integrity":"sha512-/6ehz6R837YhA9mwspO6C8jpctlV+C+x80frdDXZYKguP0/z/ZrOPlQKaYjMdop9kgIfqQFPGAW3UQy7LWs9aA==","signatures":[{"sig":"MEQCIAtdnC1ysI77GiUzCTYs9/peu+Ulg8LwxL3XyeXVBZF7AiA+huoDMKwI4UiwAJ4v+jBxcMhFWZd58ryEgeXPJklwsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC6F261F+6nCPKatBaRKMJ3myQL2snJMyF24oFMbsBUMAiEAqxpayKStJM4haTu7UpzvwseeN/L4l4b+ikuNvpihPaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4150809},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.26.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.26.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-/6ehz6R837YhA9mwspO6C8jpctlV+C+x80frdDXZYKguP0/z/ZrOPlQKaYjMdop9kgIfqQFPGAW3UQy7LWs9aA==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.26.0_1790155445714_0.12989426222069755","host":"s3://npm-registry-packages-npm-production"}},"5.27.0":{"name":"vitest-auto-spy","version":"5.27.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.27.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"854793bf0608583c29a2289fe5e1eb4fe5dc8dd3","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.27.0.tgz","fileCount":98,"integrity":"sha512-fHs9O5/3ZRSIKMdxvgZRUmY77RujmOODHSYPODA8TZKsK4xBkxhaw7UOSwCFdW94ot7SPL2GTIjzvo/69CG5OQ==","signatures":[{"sig":"MEUCIDky/bsGuj/fOqVVjBYgFPC8/gVI/XDDCdx7pJMRTldBAiEA9v14fMcuzesoIN0r7G9yGo6imHQhnErcFQi75fWfCbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEvEvlEhAMDj63nuAJXE+TXO6WocV5Lc1J0FQUMSTTB2AiEAq1wKXrZPNhTjXChmdBdv3Tuj64v16Ur2E3ANfatitIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4155892},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.27.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.27.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-fHs9O5/3ZRSIKMdxvgZRUmY77RujmOODHSYPODA8TZKsK4xBkxhaw7UOSwCFdW94ot7SPL2GTIjzvo/69CG5OQ==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.27.0_1790169089783_0.5690832243575901","host":"s3://npm-registry-packages-npm-production"}},"5.28.0":{"name":"vitest-auto-spy","version":"5.28.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.28.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"f2caa8e1a4f492617b52365c074309b435586a34","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.28.0.tgz","fileCount":98,"integrity":"sha512-n0cklieZ9oXzkC7YLXaeY03VLw1jMgCvkmAAawsZ34d+5Z+r4pOEWzPruVKSoeSYY7B3Gwt/EdashPx+VN+WVQ==","signatures":[{"sig":"MEYCIQCPIzton1pEUgWiGjszzJOaxXbEut17X9/lUoJ6BYzBJgIhAN++nfUSLpK3ztKetfd6tyJTNCV7GRGHQYauzKD0nPC2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICobr/tzwxjOC1YmD+gxA2FN+afNyMzLyvEtrGc3V7o0AiB5EuA6nz/SLVuX6dQhMRDE41Gt8uM7cWGiUn0He4zuYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4163757},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.28.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.28.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-n0cklieZ9oXzkC7YLXaeY03VLw1jMgCvkmAAawsZ34d+5Z+r4pOEWzPruVKSoeSYY7B3Gwt/EdashPx+VN+WVQ==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.28.0_1790190478076_0.8742001221245785","host":"s3://npm-registry-packages-npm-production"}},"5.29.0":{"name":"vitest-auto-spy","version":"5.29.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.29.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"11ac6c9defef6388ccf608d2f182049effffa918","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.29.0.tgz","fileCount":98,"integrity":"sha512-pZbCfxXoS4drSLBJ81gMEgyt7ZibQJHZM/EGl39vSu+H5pE8vhslYtFaj+53FLvHgAEMcRlmrJuXpQVlqwgxSA==","signatures":[{"sig":"MEUCIGk5ftklswqeeztpTXhpjEZgWBnUeSxA7h+il1CwFlSPAiEAw9a3NrUaKlWKKa4hL8wWL6HK5S+ePQSv/IOJeGCseig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH5r2H2SBunm+Vw5EsIcQEAtPsXPEmPHGf0qLqYNiPZSAiBav9qFOV/OY3m/siesJ56mx7ziUrjuIKNQ6CO8t83IpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4178290},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.29.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.29.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-pZbCfxXoS4drSLBJ81gMEgyt7ZibQJHZM/EGl39vSu+H5pE8vhslYtFaj+53FLvHgAEMcRlmrJuXpQVlqwgxSA==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.29.0_1790235735145_0.00142709100635674","host":"s3://npm-registry-packages-npm-production"}},"5.30.0":{"name":"vitest-auto-spy","version":"5.30.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.30.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"7632904d22a632fad63a62f4f861c54a1f7734b6","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.30.0.tgz","fileCount":98,"integrity":"sha512-DXS4hSK0hPGICOMtlcugJWIVAtftZz7vJPBoTK1gRxBCVwCBWCM31TF2wmt7m//Z8ek+50cZvk/mhN5z29EcoQ==","signatures":[{"sig":"MEUCIH0uJr2AZEY9cGw0Bez+yuE2xEhtS78N2GZOG+pRz3XiAiEAiH8Cmw9Z4ILVPlV8qT49ptnJBmn3IYm2nPH3+jNhqRU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD9T/4VHAWklF+LeuHWeynp4CJslC/ON0VSpAF1/1DK3QIhAKbkuBrdanUFtKyGZsSs2NnpKHuHUhPdxBZXpMmvQGWd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4199541},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.30.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.30.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-DXS4hSK0hPGICOMtlcugJWIVAtftZz7vJPBoTK1gRxBCVwCBWCM31TF2wmt7m//Z8ek+50cZvk/mhN5z29EcoQ==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.30.0_1790311822047_0.51231200512817","host":"s3://npm-registry-packages-npm-production"}},"5.31.0":{"name":"vitest-auto-spy","version":"5.31.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.31.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"3224fcbfa2160f289f3e6cc80334e8e2c33199d7","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.31.0.tgz","fileCount":98,"integrity":"sha512-hNV2iN+Xk2pD13fGKWfDWHLJ3/Za7zSX/OJblx8kMRmOD7YahsP+Ap3gdNznbwgmUfbv1WqIPs7FgJ/5s4/GYg==","signatures":[{"sig":"MEYCIQDwj9gaGWU4ML+oPPjM2HVcfpi16/isPFHGoeYcLMJHDQIhANv4/m2OvtwXhhYSIQOzVj38W01ZwS7joKl/VCjLYKa3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGLxPMiUtXOQAB+c8aD5bkWfwrx0L9wCvdakRmQYV+WBAiEA6KY4ExiaouWdQ9WbGD5/ajL0UVISMENBMCPubp4zgVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4207288},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.31.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.31.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-hNV2iN+Xk2pD13fGKWfDWHLJ3/Za7zSX/OJblx8kMRmOD7YahsP+Ap3gdNznbwgmUfbv1WqIPs7FgJ/5s4/GYg==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.31.0_1790319872918_0.36902022739624174","host":"s3://npm-registry-packages-npm-production"}},"5.32.0":{"name":"vitest-auto-spy","version":"5.32.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.32.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"c21c80c930816b00f1857195d096ae537eb758d0","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.32.0.tgz","fileCount":99,"integrity":"sha512-LaK0Y4XYKfWfqoo2aWSlVnZdYEsUpbg3LwIUD/CZuQVbqv0sr0QluQC9owTXqvrMYy9PMF1SyOGTyY43JOWPrA==","signatures":[{"sig":"MEUCIQD6DvUm22n7MwQic1+ibig3RW3OXB1htg24QSB5jkclGQIgaZXv4qcIPVeV6XWs8AiqBh/KowjEszMyyOAkS+L0NeU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAitJMeWVUJYXh0KLtpifZxijDbyTuaO15RnS/+OpUlXAiAq3mmIy5gJ/R54lrmO3Mbpp/4EHtO7dOYeMKZyEw14Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4421449},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.32.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.32.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-LaK0Y4XYKfWfqoo2aWSlVnZdYEsUpbg3LwIUD/CZuQVbqv0sr0QluQC9owTXqvrMYy9PMF1SyOGTyY43JOWPrA==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.32.0_1790342820594_0.8557714633844091","host":"s3://npm-registry-packages-npm-production"}},"5.32.1":{"name":"vitest-auto-spy","version":"5.32.1","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.32.1","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"482c8a1fc8c95463f43f3c4d2de525ce07fbad1f","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.32.1.tgz","fileCount":99,"integrity":"sha512-9unXfQ131beI0ASmZmjIUV8HXQghliSqcR/KXoE7vilR/eCgSpYGGVYd05nNtFFsq/pqrNWNSoP5nDIkTMmnyA==","signatures":[{"sig":"MEUCIE0bVaDccRbgM6GcGknc5Plj0z2ULEm1EmFvFvfP3+QcAiEA3Lqxwa0qDAEXYxt76MBBSuLY85zK6iWX9h3IMX9aEUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCiLtdKX7Rp6yCCyJ4AU6FAeHdGhFvD9bBqS+nqKdt0/QIgGPL+2+X7rIFj2FLkzwBJqhPqWFC5m1Svu8JX13P8mxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.32.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4428422},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.32.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.32.1.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-9unXfQ131beI0ASmZmjIUV8HXQghliSqcR/KXoE7vilR/eCgSpYGGVYd05nNtFFsq/pqrNWNSoP5nDIkTMmnyA==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.32.1_1790355973919_0.9265483756134818","host":"s3://npm-registry-packages-npm-production"}},"5.32.2":{"name":"vitest-auto-spy","version":"5.32.2","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.32.2","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"b984031be0a805dc4e0e441a07b1f4bf6be521a8","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.32.2.tgz","fileCount":99,"integrity":"sha512-utNlioxHissL83pP068DjSRrvAZH3MX7CGQDECjeSoqgK6PIBcNA+eWe/qOk8ukQjvcpi45tPLPOGEP2Is639Q==","signatures":[{"sig":"MEQCIE3MK7E+3wu1YYpVkjdgbae6Bsx779KMYfHbB9HbiG8sAiB/HA1+DH8/9Ru4ngyabaAn+smLwnse1iFJ4UZFrqr0OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD0odS+8k+gKiPtywGqXIHmBaJlqCz5eulRAngwydb31QIhAJfIX777uB3Duj2tHT7CnqFbvPVtX+rMw7SeYehCADS6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.32.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4429603},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.32.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.32.2.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-utNlioxHissL83pP068DjSRrvAZH3MX7CGQDECjeSoqgK6PIBcNA+eWe/qOk8ukQjvcpi45tPLPOGEP2Is639Q==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.32.2_1790363681007_0.5043986937072109","host":"s3://npm-registry-packages-npm-production"}},"5.33.0":{"name":"vitest-auto-spy","version":"5.33.0","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","_id":"vitest-auto-spy@5.33.0","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"bin":{"vitest-auto-spy":"dist/cli.js"},"dist":{"shasum":"8f9b62d527a735bf1f077e56f0daf382514edd7a","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.33.0.tgz","fileCount":99,"integrity":"sha512-PyRn8eMmutMkAG8VvgIJ/9Vlg3Do8Wf94KcuiiONeheZUN6Bdpgqi9tnU97nqlrEkmmPjPTUbr4OEX/itYnW+A==","signatures":[{"sig":"MEUCIQDJBcSybGWiPsIIov3ci194cgpRAdhAO2TxVKj8I915fwIgS62j1qse3rN9X2griCDMMLMMQQlKJFpjaEKdsT6EdVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD96LZL78vE+XeInGUzfJMkAWq7/zeDVSoA5JTZS40i7AIgYkxK9I6gLFsiUAneYwaOUP57xrPMRjhrfgwH3jcJlDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4447521},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.33.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.33.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-PyRn8eMmutMkAG8VvgIJ/9Vlg3Do8Wf94KcuiiONeheZUN6Bdpgqi9tnU97nqlrEkmmPjPTUbr4OEX/itYnW+A==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/vitest-auto-spy_5.33.0_1790402376566_0.022211839242962217","host":"s3://npm-registry-packages-npm-production"}},"5.34.0":{"_id":"vitest-auto-spy@5.34.0","bin":{"vitest-auto-spy":"dist/cli.js"},"bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"dist":{"shasum":"dc764e88f8466713f257bffde2cebcc470bd09d9","tarball":"https://registry.npmjs.org/vitest-auto-spy/-/vitest-auto-spy-5.34.0.tgz","fileCount":99,"integrity":"sha512-oyrYOT+T7e87uxflh3Z1cU1bUVswfA0561fxNkqrpJInhDo3IkGq2NE6KOdd6fXf2cNQ7uCaAOoknqMJvLTemQ==","signatures":[{"sig":"MEUCIDslCL4qDFoez1pXJWM1BpMmI3uq5CmbtfSoq1ksDf0RAiEAl0bCPORe/QxDfAmZvwhBo6rP4W+47fKuDdnVcy4XTk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHn/fGmmyBEgUy2tP3cjrVPjKLd7CKmXFuQ7Bwj/BRnfAiAFQ+S7Q9hSDBetfnRt4G823U0V7xDZlYD3Mp0d+X/a5Q=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/vitest-auto-spy@5.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4467091},"main":"./dist/index.js","name":"vitest-auto-spy","type":"module","_from":"file:/home/runner/work/_temp/release/vitest-auto-spy-5.34.0.tgz","types":"./dist/index.d.ts","author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bun":{"types":"./dist/bun.d.ts","import":"./dist/bun.js","default":"./dist/bun.js"},"./vue":{"types":"./dist/vue.d.ts","import":"./dist/vue.js","default":"./dist/vue.js"},"./node":{"import":{"types":"./dist/node.d.ts","default":"./dist/node.js"},"require":{"types":"./dist/node.d.cts","default":"./dist/node.cjs"}},"./rxjs":{"types":"./dist/rxjs.d.ts","import":"./dist/rxjs.js","default":"./dist/rxjs.js"},"./zone":{"types":"./dist/zone.d.ts","import":"./dist/zone.js","default":"./dist/zone.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","default":"./dist/react.js"},"./setup":{"types":"./dist/setup.d.ts","import":"./dist/setup.js","default":"./dist/setup.js"},"./nestjs":{"types":"./dist/nestjs.d.ts","import":"./dist/nestjs.js","default":"./dist/nestjs.js"},"./rstest":{"types":"./dist/rstest.d.ts","import":"./dist/rstest.js","default":"./dist/rstest.js"},"./svelte":{"types":"./dist/svelte.d.ts","import":"./dist/svelte.js","default":"./dist/svelte.js"},"./angular":{"types":"./dist/angular.d.ts","import":"./dist/angular.js","default":"./dist/angular.js"},"./console":{"types":"./dist/console.d.ts","import":"./dist/console.js","default":"./dist/console.js"},"./jasmine":{"types":"./dist/jasmine.d.ts","import":"./dist/jasmine.js","default":"./dist/jasmine.js"},"./dom-stubs":{"types":"./dist/dom-stubs.d.ts","import":"./dist/dom-stubs.js","default":"./dist/dom-stubs.js"},"./bun-angular":{"types":"./dist/bun-angular.d.ts","import":"./dist/bun-angular.js","default":"./dist/bun-angular.js"},"./diagnostics":{"types":"./dist/diagnostics.d.ts","import":"./dist/diagnostics.js","default":"./dist/diagnostics.js"},"./angular-http":{"types":"./dist/angular-http.d.ts","import":"./dist/angular-http.js","default":"./dist/angular-http.js"},"./observer-spy":{"types":"./dist/observer-spy.d.ts","import":"./dist/observer-spy.js","default":"./dist/observer-spy.js"},"./package.json":"./package.json","./signal-forms":{"types":"./dist/signal-forms.d.ts","import":"./dist/signal-forms.js","default":"./dist/signal-forms.js"},"./eslint-plugin":{"import":{"types":"./dist/eslint-plugin.d.ts","default":"./dist/eslint-plugin.js"},"require":{"types":"./dist/eslint-plugin.d.cts","default":"./dist/eslint-plugin.cjs"}},"./perf-reporter":{"types":"./dist/perf-reporter.d.ts","import":"./dist/perf-reporter.js","default":"./dist/perf-reporter.js"},"./angular-router":{"types":"./dist/angular-router.d.ts","import":"./dist/angular-router.js","default":"./dist/angular-router.js"},"./jasmine-compat":{"types":"./dist/jasmine-compat.d.ts","import":"./dist/jasmine-compat.js","default":"./dist/jasmine-compat.js"},"./angular/doubles":{"types":"./dist/angular-doubles.d.ts","import":"./dist/angular-doubles.js","default":"./dist/angular-doubles.js"},"./angular/matchers":{"types":"./dist/angular-matchers.d.ts","import":"./dist/angular-matchers.js","default":"./dist/angular-matchers.js"},"./angular/diagnostics":{"types":"./dist/angular-diagnostics.d.ts","import":"./dist/angular-diagnostics.js","default":"./dist/angular-diagnostics.js"}},"license":"MIT","scripts":{"lint":"eslint .","llms":"node scripts/generate-llms-txt.mjs","test":"vitest run","bench":"node scripts/bench-self.mjs","build":"tsup && node scripts/thin-node-cts.mjs && node scripts/eslint-plugin-cts.mjs && node scripts/check-dist.mjs","check":"npm run deps:check && npm run typecheck && npm run lint && npm run format:check && npm run jscpd && npm run export-map:check && npm run llms:check && npm run docs:check && npm run ru:check && npm run plugin:sync:check && npm run skill:check && npm run alias:sync:check && npm run test:coverage && npm run test:types && npm run types:budget && npm run test:shared-env && npm run test:zone && npm run test:happy-dom && npm run test:invariants && npm run test:node && npm run test:bun && npm run test:bun:angular && npm run test:bun:isolate && npm run test:rstest && npm run build && npm run smoke:dist && npm run size:entries:check && npm run size:badge:check && npm run test:bun:preload && npm run cold-import:check","jscpd":"jscpd","format":"prettier -w \"src/**/*.ts\" \"**/*.md\"","ru:sync":"node scripts/sync-ru-pages.mjs","version":"node scripts/sync-plugin-version.mjs && node scripts/sync-alias.mjs && node scripts/generate-export-map.mjs && node scripts/stamp-changelog.mjs && git add .claude-plugin alias src/cli/checks/export-map.generated.ts CHANGELOG.md","bench:vs":"node scripts/bench-run.mjs","lint:fix":"eslint . --fix","ru:check":"node scripts/sync-ru-pages.mjs --check","test:bun":"bun test ./src/bun-tests/core.bun.test.ts ./src/bun-tests/rxjs.bun.test.ts ./src/bun-tests/jasmine.bun.test.ts","test:node":"node --import ./scripts/node-ts-resolve.mjs --test \"src/node-tests/*.node.test.ts\"","test:zone":"vitest run --config vitest.zone.config.mts","typecheck":"tsc --noEmit","alias:sync":"node scripts/sync-alias.mjs","deps:check":"node scripts/check-dep-drift.mjs","docs:check":"node scripts/check-docs-frontmatter.mjs","export-map":"node scripts/generate-export-map.mjs","llms:check":"node scripts/generate-llms-txt.mjs --check","size:badge":"node scripts/size-badge.mjs","smoke:dist":"node scripts/smoke-dist.mjs","test:types":"vitest run --config vitest.types.config.mts","test:watch":"vitest","bench:check":"node scripts/bench-check.mjs","bench:smoke":"node scripts/bench-smoke.mjs","bench:suite":"node scripts/bench-suite.mjs","cold-import":"node scripts/cold-import.mjs","plugin:sync":"node scripts/sync-plugin-version.mjs","skill:check":"node scripts/check-skill.mjs","test:rstest":"rstest run","bench:memory":"vitest run --config vitest.bench.memory.config.mts","format:check":"prettier -c \"src/**/*.ts\" \"**/*.md\"","size:entries":"node scripts/size-entries.mjs","types:budget":"node scripts/check-type-budget.mjs","bench:angular":"node bench-angular/run.mjs","bench:vs:fast":"node scripts/bench-run.mjs --fast","release:notes":"node scripts/release-notes.mjs","test:coverage":"node scripts/run-coverage.mjs run --coverage","prepublishOnly":"npm run build","test:happy-dom":"vitest run --config vitest.happy-dom.config.mts","test:invariants":"vitest run --config vitest.invariants.config.mts","test:shared-env":"vitest run --config vitest.shared-env.config.mts","typecheck:bench":"tsc --noEmit -p tsconfig.bench.json","alias:sync:check":"node scripts/sync-alias.mjs --check","bench:vs:precise":"node scripts/bench-run.mjs --precise","export-map:check":"node scripts/generate-export-map.mjs --check","size:badge:check":"node scripts/size-badge.mjs --check","test:bun:angular":"bun test --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:isolate":"bun test --isolate --preload ./src/bun-angular.ts ./src/bun-tests","test:bun:preload":"bun test --preload ./dist/bun-angular.js ./src/bun-tests","cold-import:check":"node scripts/cold-import.mjs --check","plugin:sync:check":"node scripts/sync-plugin-version.mjs --check","cold-import:update":"node scripts/cold-import.mjs --update","size:entries:check":"node scripts/size-entries.mjs --check","size:entries:update":"node scripts/size-entries.mjs --update","typecheck:bench-angular":"tsc --noEmit -p tsconfig.bench-angular.json"},"version":"5.34.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b2f1b1b2-e145-4214-bf39-e66c417665a9"}},"homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"_resolved":"/home/runner/work/_temp/release/vitest-auto-spy-5.34.0.tgz","overrides":{"@angular/build":{"vitest":"$vitest"},"@analogjs/vitest-angular":{"vitest":"$vitest"}},"_integrity":"sha512-oyrYOT+T7e87uxflh3Z1cU1bUVswfA0561fxNkqrpJInhDo3IkGq2NE6KOdd6fXf2cNQ7uCaAOoknqMJvLTemQ==","repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"_npmVersion":"11.19.1","description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","directories":{},"maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"sideEffects":["**/chunk-*.js","**/index.js","**/bun.js","**/bun-angular.js","**/node.js","**/node.cjs","**/rstest.js","src/rstest.ts","**/angular.js","**/angular-doubles.js","**/angular-matchers.js","**/angular-http.js","**/nestjs.js","**/react.js","**/vue.js","**/svelte.js","**/rxjs.js","**/console.js","**/dom-stubs.js","**/jasmine.js","**/jasmine-compat.js","**/observer-spy.js","**/setup.js","**/zone.js"],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.0","tsup":"^8.3.0","jscpd":"^5.1.2","jsdom":"^30.0.1","eslint":"^10.10.0","vitest":"^5.0.0","globals":"^17.12.0","js-yaml":"^5.4.1","zone.js":"^0.16.2","prettier":"^3.8.4","happy-dom":"^20.14.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^24.13.3","@rstest/core":"^0.11.12","@types/jsdom":"^30.0.0","@angular/core":"^22.1.5","@angular/build":"^22.1.7","@angular/forms":"22.1.5","@angular/common":"^22.1.5","@angular/router":"^22.1.5","reflect-metadata":"^0.2.2","@angular/compiler":"^22.1.5","@vitest/coverage-v8":"^5.0.0","eslint-plugin-rxjs-x":"^1.0.6","@angular/compiler-cli":"^22.1.5","eslint-plugin-import-x":"^4.17.1","@analogjs/vitest-angular":"^2.2.0","@angular/platform-browser":"^22.1.5","@typescript-eslint/parser":"^8.69.0","@vitest/coverage-istanbul":"^5.0.0","prettier-plugin-sort-json":"^4.2.0","eslint-plugin-optimize-regex":"^1.2.1","@analogjs/vite-plugin-angular":"^2.2.0","@happy-dom/global-registrator":"^20.14.0","@typescript-eslint/eslint-plugin":"^8.69.0","@trivago/prettier-plugin-sort-imports":"^6.0.2","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"rxjs":">=7.2.0","vitest":">=2.1.0","@angular/core":">=20.0.0","@angular/forms":">=20.0.0","@angular/common":">=20.0.0","@angular/router":">=20.0.0","@angular/platform-browser":">=20.0.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"vitest":{"optional":true},"@angular/core":{"optional":true},"@angular/forms":{"optional":true},"@angular/common":{"optional":true},"@angular/router":{"optional":true},"@angular/platform-browser":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vitest-auto-spy_5.34.0_1790409077547_0.2597923504807451"}}},"time":{"created":"2026-06-21T17:58:48.785Z","modified":"2026-09-26T07:51:18.076Z","1.0.0":"2026-06-21T17:58:48.971Z","1.0.1":"2026-06-21T20:20:38.625Z","1.1.0":"2026-06-23T16:06:30.847Z","1.2.0":"2026-06-24T15:17:11.998Z","1.3.0":"2026-06-24T15:23:38.743Z","1.4.0":"2026-06-28T07:42:19.625Z","1.5.0":"2026-06-28T08:27:29.018Z","1.5.1":"2026-06-29T05:35:32.569Z","1.7.0":"2026-07-04T09:46:42.871Z","1.8.0":"2026-07-17T20:20:50.126Z","1.8.1":"2026-07-17T20:28:37.473Z","1.8.2":"2026-07-17T20:30:40.360Z","1.9.0":"2026-07-18T08:16:07.856Z","1.9.1":"2026-07-18T08:39:54.180Z","1.9.2":"2026-07-18T09:51:28.850Z","1.9.3":"2026-08-01T19:34:13.224Z","1.10.0":"2026-08-18T15:27:57.011Z","1.11.0":"2026-08-26T14:27:50.761Z","1.12.0":"2026-08-26T15:24:14.986Z","2.0.2":"2026-08-26T19:15:00.296Z","2.0.3":"2026-08-26T19:25:15.529Z","3.0.0":"2026-08-26T19:42:27.745Z","3.1.0":"2026-08-28T07:06:44.949Z","3.2.0":"2026-08-28T10:40:47.526Z","3.3.0":"2026-08-29T07:39:17.305Z","3.4.0":"2026-08-29T09:18:44.425Z","3.5.0":"2026-08-29T13:54:35.753Z","3.6.0":"2026-08-29T15:58:28.431Z","3.7.0":"2026-08-29T17:09:54.745Z","3.8.0":"2026-08-29T20:16:57.543Z","3.8.1":"2026-08-29T20:52:54.538Z","3.9.0":"2026-08-30T08:45:55.403Z","3.10.0":"2026-08-30T10:10:18.125Z","3.11.0":"2026-08-30T10:27:16.156Z","3.12.0":"2026-08-30T13:55:28.484Z","3.12.1":"2026-08-30T15:15:25.673Z","3.13.0":"2026-08-31T05:06:37.960Z","3.13.1":"2026-09-01T19:58:25.148Z","3.14.0":"2026-09-02T06:03:51.162Z","3.15.0":"2026-09-02T12:43:52.543Z","3.15.1":"2026-09-02T14:29:43.274Z","3.16.0":"2026-09-02T15:33:13.162Z","3.17.0":"2026-09-02T19:02:48.756Z","3.18.0":"2026-09-03T02:57:31.446Z","3.18.1":"2026-09-03T03:02:16.569Z","4.0.0":"2026-09-03T05:44:12.202Z","4.0.1":"2026-09-03T06:11:43.235Z","4.1.0":"2026-09-03T21:42:54.498Z","4.2.0":"2026-09-04T00:13:01.607Z","4.3.0":"2026-09-04T20:57:32.003Z","4.4.0":"2026-09-05T13:52:11.399Z","4.5.0":"2026-09-05T16:49:59.023Z","4.5.1":"2026-09-05T18:51:39.616Z","4.6.0":"2026-09-06T09:03:49.470Z","4.6.1":"2026-09-06T09:21:12.102Z","5.0.0":"2026-09-07T05:22:08.105Z","5.0.1":"2026-09-07T07:53:50.680Z","5.1.0":"2026-09-09T14:55:22.739Z","5.2.0":"2026-09-10T09:28:40.634Z","5.3.0":"2026-09-10T11:20:58.683Z","5.4.0":"2026-09-10T14:40:09.244Z","5.5.0":"2026-09-11T04:55:32.500Z","5.6.0":"2026-09-11T08:03:21.197Z","5.7.0":"2026-09-11T11:43:19.461Z","5.8.0":"2026-09-11T15:44:44.720Z","5.9.0":"2026-09-12T14:00:00.632Z","5.10.0":"2026-09-12T17:06:47.550Z","5.10.1":"2026-09-13T06:35:11.595Z","5.11.0":"2026-09-13T10:27:08.409Z","5.12.0":"2026-09-13T14:33:58.456Z","5.13.0":"2026-09-13T18:59:13.764Z","5.14.0":"2026-09-13T21:16:13.728Z","5.15.0":"2026-09-14T16:02:26.624Z","5.15.1":"2026-09-14T19:47:48.540Z","5.16.0":"2026-09-17T05:36:47.927Z","5.17.0":"2026-09-17T06:32:42.003Z","5.17.1":"2026-09-17T07:16:06.538Z","5.18.0":"2026-09-17T15:47:12.375Z","5.19.0":"2026-09-19T13:08:56.288Z","5.20.0":"2026-09-19T19:36:52.806Z","5.21.0":"2026-09-20T07:06:34.192Z","5.21.1":"2026-09-20T14:11:08.107Z","5.22.0":"2026-09-20T20:06:11.155Z","5.23.0":"2026-09-21T07:44:13.688Z","5.24.0":"2026-09-22T19:29:08.196Z","5.25.0":"2026-09-23T08:18:41.274Z","5.26.0":"2026-09-23T09:24:05.875Z","5.27.0":"2026-09-23T13:11:29.982Z","5.28.0":"2026-09-23T19:07:58.169Z","5.29.0":"2026-09-24T07:42:15.268Z","5.30.0":"2026-09-25T04:50:22.161Z","5.31.0":"2026-09-25T07:04:33.071Z","5.32.0":"2026-09-25T13:27:00.745Z","5.32.1":"2026-09-25T17:06:14.178Z","5.32.2":"2026-09-25T19:14:41.117Z","5.33.0":"2026-09-26T05:59:36.701Z","5.34.0":"2026-09-26T07:51:17.707Z"},"bugs":{"url":"https://github.com/ASDAlexey/vitest-auto-spy/issues"},"author":{"name":"Alexey Popov","email":"asdalexey@yandex.ru"},"license":"MIT","homepage":"https://github.com/ASDAlexey/vitest-auto-spy#readme","keywords":["auto-mock","automock","class-mock","typed-mock","type-mock","interface-mock","deep-mock","createautomock","mockdeep","auto-spy","auto-spies","spy-from-class","vitest-mock","sinon-alternative","jest-auto-spies","jasmine-auto-spies","jasmine","karma","jest-to-vitest","jasmine-to-vitest","karma-to-vitest","codemod","createspyobj","observer-spy","fakeasync","eslint-plugin","vitest","bun","bun-test","bun-angular","angular-testbed","node-test","rstest","nestjs","react","vue","pinia","svelte","angular","testing","unit-testing","spy","spies","mock","mocking","test-doubles","rxjs","observable","zoneless","typescript"],"repository":{"url":"git+https://github.com/ASDAlexey/vitest-auto-spy.git","type":"git"},"description":"Auto-generate fully-typed test spies from a class — across Vitest, Bun, node:test and Rstest, with Angular/NestJS/React/Vue/Svelte recipes. Drop-in replacement for jest-auto-spies and jasmine-auto-spies.","maintainers":[{"name":"asdalexey","email":"asdalexey@yandex.ru"}],"readme":"<div align=\"center\">\n\n# vitest-auto-spy\n\n**Auto-generate fully-typed test spies from a class — across any Vitest-compatible runtime and framework.**\n\nThe only auto-spy library that reads a **class** and gives a **fully-typed** spy of every method\nwith **return-type-aware** helpers — `resolveWith` / `rejectWith` for `Promise`s, `nextWith` /\n`throwWith` for RxJS `Observable`s, and `calledWith` / `mustBeCalledWith` for argument matching. Or\nskip the class entirely and mock straight from a **type or interface** with `createAutoMock<T>()` and\nrecursive `mockDeep<T>()`. Runs on **Vitest**, **Bun** (`bun:test`), **`node:test`** and **Rstest** behind one\nidentical API, with **RxJS** spies and **Angular / NestJS / React / Vue·Pinia / Svelte** recipes\n([availability](#availability)). A drop-in replacement for\n[`jest-auto-spies`](https://www.npmjs.com/package/jest-auto-spies) — same API, and roughly 1.5x\nfaster at suite scale ([benchmarks](#benchmarks)) — and for\n[`jasmine-auto-spies`](https://www.npmjs.com/package/jasmine-auto-spies) through\n[`vitest-auto-spy/jasmine`](#migrating-from-jasmine-auto-spies), which keeps `.and`, `.calls` and\n`.withArgs` working while you land the suite green.\n\n[![npm version](https://img.shields.io/npm/v/vitest-auto-spy?color=brightgreen&logo=npm)](https://www.npmjs.com/package/vitest-auto-spy)\n[![downloads per day](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.npmjs.org%2Fdownloads%2Fpoint%2Flast-day%2Fvitest-auto-spy&query=%24.downloads&color=brightgreen&logo=npm&label=downloads%2Fday)](https://www.npmjs.com/package/vitest-auto-spy)\n[![downloads per week](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.npmjs.org%2Fdownloads%2Fpoint%2Flast-week%2Fvitest-auto-spy&query=%24.downloads&color=brightgreen&logo=npm&label=downloads%2Fweek)](https://www.npmjs.com/package/vitest-auto-spy)\n[![downloads per month](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.npmjs.org%2Fdownloads%2Fpoint%2Flast-month%2Fvitest-auto-spy&query=%24.downloads&color=brightgreen&logo=npm&label=downloads%2Fmonth)](https://www.npmjs.com/package/vitest-auto-spy)\n[![downloads over 18 months](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.npmjs.org%2Fdownloads%2Fpoint%2F2026-06-21%3A2030-01-01%2Fvitest-auto-spy&query=%24.downloads&color=brightgreen&logo=npm&label=downloads%2F18mo)](https://www.npmjs.com/package/vitest-auto-spy)\n[![CI](https://github.com/ASDAlexey/vitest-auto-spy/actions/workflows/ci.yml/badge.svg)](https://github.com/ASDAlexey/vitest-auto-spy/actions/workflows/ci.yml)\n[![minzipped size](https://img.shields.io/badge/minzip-26.6%20kB-brightgreen)](#install)\n[![types](https://img.shields.io/npm/types/vitest-auto-spy?logo=typescript&logoColor=white)](https://www.npmjs.com/package/vitest-auto-spy)\n[![coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)](https://github.com/ASDAlexey/vitest-auto-spy/actions/workflows/ci.yml)\n[![license](https://img.shields.io/npm/l/vitest-auto-spy?color=blue)](./LICENSE)\n\n[![Vitest](https://img.shields.io/badge/Vitest-✓-6E9F18?logo=vitest&logoColor=white)](#runtimes)\n[![Bun](https://img.shields.io/badge/Bun%201.4-✓-6E9F18?logo=bun&logoColor=white)](#availability)\n[![Angular on Bun](https://img.shields.io/badge/Angular%20on%20Bun-✓-6E9F18?logo=angular&logoColor=white)](#angular-on-bun-buntest)\n[![node:test](https://img.shields.io/badge/node%3Atest-✓-6E9F18?logo=node.js&logoColor=white)](#availability)\n[![runtime deps](https://img.shields.io/badge/runtime%20deps-0-brightgreen)](#install)\n\n📚 [**Documentation**](https://asdalexey.github.io/vitest-auto-spy/) · 🧭 [**Spec patterns**](https://asdalexey.github.io/vitest-auto-spy/recipes) · 📦 [**npm**](https://www.npmjs.com/package/vitest-auto-spy) · 🐙 [**GitHub**](https://github.com/ASDAlexey/vitest-auto-spy) · 🔖 [**Changelog**](./CHANGELOG.md)\n\n🤖 [**AGENTS.md**](./AGENTS.md) · 🔤 [**llms.txt**](https://asdalexey.github.io/vitest-auto-spy/llms.txt) · 📄 [**llms-full.txt**](https://asdalexey.github.io/vitest-auto-spy/llms-full.txt) — works with [Claude Code, OpenAI Codex, GLM, Cursor, Copilot, Gemini CLI and the rest](#which-file-your-agent-reads)\n\n<br/>\n\n<img src=\"./assets/one-api-three-runtimes.svg\" alt=\"One class-based API — createSpyFromClass, or provideAutoSpy for Angular DI — across three Vitest-compatible runtimes: Vitest, Bun and node:test\" width=\"720\" />\n\n</div>\n\n---\n\n- 🧪 Reads a class and generates a typed spy for **every** method — no hand-written `vi.fn()` lists\n- 🧬 Or mock from a **type/interface** alone — `createAutoMock<T>()`, no class required; `mockDeep<T>()` for a whole tree, arrays included (`api.page.items[0].title = 'x'` makes a real `Array` of deep mocks), and `{ fallbackMockImplementation }` makes a call nobody configured throw instead of answering `undefined`\n- 🪛 Or patch the object you already hold, in place — `createSpyFromInstance(client)` spies a real instance without replacing it, so a closure or a DI container that captured it first sees the spies; `restoreSpiedInstance` puts it back. With `{ passthrough: true }` the real methods keep running and are recorded until the test configures one — `createSpyFromInstance(TestBed.inject(CartService), { passthrough: true })` keeps the DI graph, the signals and `ngOnDestroy` real\n- 🎯 One method, one call — `spyOnOwnMethod(sut, 'method')` records a single method of the object under test and lets it keep running, every other member left real, and `spyOnVoidMethod(event, 'preventDefault')` does the same for a native void method a handler is meant to call, seeding the `undefined` a strict suite needs so the observed call does not trip the guard — together the drop-in for a bare `vi.spyOn` a preset bans, on every runtime\n- 🌐 One `MockAdapter` core — **Vitest**, **Bun** and **`node:test`**, identical API on each\n- 🧩 Framework recipes: **Angular**, **NestJS**, **React**, **Vue/Pinia** and **Svelte**\n- 🎯 Return-type-aware helpers — sync, `Promise`, and `Observable` all get the right API\n- 🔀 `calledWith` / `mustBeCalledWith` argument dispatch — and `explainSpy(spy)` prints every configured list next to every recorded call, before anything has failed\n- 📡 First-class RxJS `Observable` spying (`nextWith`, `nextWithValues`, `throwWith`, …)\n- ⚙️ Getter / setter spies via `accessorSpies` — **including on Bun**, where `bun:test`'s own `spyOn(obj, 'prop', 'get')` throws _\"does not support accessor properties yet\"_ (verified on Bun 1.4.0); no library that generates a double from a class or a type has accessor spies on any runner\n- 🧰 DI & mocking utilities — `provideAutoSpy` / `injectSpy` (Angular, NestJS, Vue), `createFunctionSpy`, `adoptMock` (typed `calledWith` / `resolveWith` on a `vi.mock` factory's `vi.fn()`, same object, history kept), `mockReadonlyProp` for signals\n- ⚡ Angular speed & zoneless helpers — [`renderShallow`](#shallow-component-rendering), which brings a component up through the real `TestBed` without its child subtree, `createWithAutoSpies`, `stable` / `flushEffects`, `settleResource` for `httpResource()`, `toHaveSignalValue`, per-file `TestBed` timings\n- **`node:test` stops retaining every spy.** Node's built-in runner keeps every `mock.fn()` in one\n  process-wide `MockTracker` and has no way to drop a single entry, so a long suite accumulates every\n  spy it ever made along with every argument they recorded. `trackNodeMocks()` gives this library a\n  tracker of its own and replaces it after each test — 124.5 MB retained down to 5.9 MB on 20 000\n  spies of a 10-method class (Node v24.19.0, `--expose-gc`, 5.4 MB baseline). It never calls\n  `mock.reset()`, so a `mock.fn()` your spec made by hand is untouched.\n- 🌐 `httpResource()` and `HttpClient` in two lines — `provideHttpTesting()` + `await expectRequest(url).flush(body)` does the tick, the controller, the `expectOne`, the flush **and the settling**, so `resource.value()` reads on the next line; `@angular/common` stays an optional peer, confined to the `/angular-http` entry\n- 🧭 An `ActivatedRoute` that cannot disagree with itself — `provideActivatedRoute({ params, queryParams, data })` provides Angular's own route, its streams, `paramMap`s and snapshot built from one record, and `injectActivatedRoute().setParams(…)` moves them together the way a navigation does; `@angular/router` stays an optional peer, confined to the `/angular-router` entry\n- 🧱 The providers every suite hand-rolls, provided once — `provideRouterDouble({ url })` for a `Router` that derives `url`, `routerState`, `events` and `currentNavigation()` from one URL rather than four guesses; `provideWindowDouble(WINDOW, { screen })` and `provideDocumentDouble({ … })`, which merge what the spec names **over** the real jsdom object, so the member nobody thought of still answers; `provideMatDialogData(MAT_DIALOG_DATA, data)` and `provideMatDialogRef(MatDialogRef)` for the Material dialog trio, with Material itself staying out of this package's dependencies\n- 🧪 A signal graph you can assert on — `mockSignalProp` writes **through** a member that is already a `signal()`, `model()` or `linkedSignal()` instead of replacing it, so a computed, an effect or a template that read it first is still connected; `setInputs(fixture, { … })` changes an input mid-test; `hostElement(fixture)` / `queryElement(fixture, '.close', HTMLButtonElement)` hand back a typed, `instanceof`-checked element where Angular gives `any`; `trackRecomputations` / `trackEffectRuns` count what actually re-ran; `runEffect` runs the previous cleanup first, the way Angular's own scheduler does\n- 🪆 NestJS units from their own DI metadata — `createNestUnit(Target, { expose, providers })`, the solitary / sociable model of `@suites/unit` with the real prototype behind every spy and no `@nestjs` dependency\n- 🧱 The providers a testing module cannot reach — `overrideComponentProvider` (which verifies the override actually applied), `provideAutoSpyForToken`, `assertNgModuleScopes`, `assertComponentDefIntact`, `createDirectiveHost`, and `createComponentStub` for a child whose selector and inputs are read off the real one, so the stub cannot drift\n- 🚨 Failures that used to be silence — `enableAngularDiagnostics()` for dead NgModule imports, dead `schemas`, an unspied provider and unflushed HTTP requests; `trackInjections` for which collaborators the code actually asked for. `injectSpy` already warns once per token when DI handed back a real instance, naming the token and the missing `provideAutoSpy` — where Spectator's `inject<T>(token): SpyObject<T>` types **every** token as a spy whether it was mocked or not, so the compiler hides the same mistake\n- 🐢 Which test is slow, and why — [`npx vitest-auto-spy perf --gate`](#perf--where-the-cpu-time-actually-goes) fails CI over a file whose tests each cost many times the median test of the same run, so a laptop and a runner nine times slower agree; it re-measures every suspect on its own first, and a confirmed one comes with a CPU profile card: the slowest tests, hooks against bodies, the time by package and in your own code, and a likely cause. Vitest 5.0 marks a test over a fixed `slowTestThreshold` of 300 ms and says nothing about where the time went\n- 🔒 [Strict doubles](#strict-doubles--fail-on-a-method-nobody-configured) — `strict: true` / `onUnstubbedCall` fail on a method nobody configured, naming the class, the method and the arguments instead of answering `undefined`; `unconfiguredReads` reports the getter and the stream nobody configured once the test is over\n- ♻️ `using spy = createSpyFromClass(X)` — every double carries `[Symbol.dispose]`, so the `afterEach` that only reset one spy can go\n- 📡 Observable assertions that fail on silence — `expectEmission` / `expectEmissions` / `expectAllEmissions` / `expectNoEmission` / `expectCompletion` / `expectError`, no rxjs required, Angular `output()` included\n- 🏗️ Doubles for what the code builds itself — `mockConstructor` / `stubConstructor` for `new`, plus `stubMediaElement`, `stubAbortController`, `stubWebStorage`, `stubWorker` and the observer stubs; `stubResponse({ body })` for a real `Response` a stubbed `fetch` answers with, no `as Response`\n- ⏳ Waiting that is not a guess — `flushEventLoop`, `settleDynamicImport`, `flushEventLoopUntil`, and a clock that survives fake timers (`mockSystemTime`, `useCountingClock`)\n- 🌀 `fakeAsync` / `waitForAsync` on Vitest — one import of `vitest-auto-spy/zone`; zone.js stays out of every other entry\n- 🧩 Module mocks that prove they applied — `assertMocked`, `moduleNamespace`, for a `vi.mock()` a bundler quietly ignored; `moduleNamespace(await importOriginal(), { passthrough: true })` is Vitest's `{ spy: true }` with `calledWith` on top, on any runner\n- 🧾 Fixtures without casts — deep-partial `createMock`, `createFixture` / `createFixtureFactory`, `narrow()`, `withOverrides()`, `asInstances()`, `captureArg()`, and `outOfType()` for the fixture that is outside its type on purpose\n- 🚚 A migration you can verify — `vitest-auto-spy/diagnostics`: `compareTestRuns` on the two JSON reports, `summarizeTestRun` / `formatTestRunComparison` to read the answer, `diffByField` for the assertion the reporter collapses, `explainSpy` for a double that answered something you did not configure\n- 📏 Lint rules and one-line test-run hygiene — forty-nine rules in `vitest-auto-spy/eslint-plugin` (six `--fix`, nineteen suggestions, four of them for a suite mid-migration off jasmine), `setupAutoSpy()` — with `preset: 'strict'` for every guard at its strictest grade, and under `isolate: false` `strayListeners` / `restoreGlobals` for the listeners and raw global assignments a file leaves the next one, `restoreStorageSpies` (on by default) for the storage spy happy-dom will not let `mockRestore()` remove\n- 🩺 [Editor diagnostics](#editor-diagnostics--webstorm--vs-code) — the same anti-patterns underlined while you type: native ESLint inspections in **WebStorm** and the other JetBrains IDEs, the ESLint extension in **VS Code**, no extra plugin either way\n- 🔎 [`npx vitest-auto-spy doctor`](#the-cli--doctor-perf-codemod-and-init) — suite-level defects **that never fail a run**: a `tsconfig` `include` matching no file, a production module importing a spec, a `@jest-environment` pragma the runner never reads, config left behind for a runner that is gone. Read-only, no config, exits 1 in CI\n- ⏱️ [`npx vitest-auto-spy perf`](#perf--where-the-cpu-time-actually-goes) — where a suite's CPU time actually goes, phase by phase, and which spec files to act on: the ones that reach no DOM and could run under `node`, the ones that import a barrel. Runs Vitest once with a reporter this package ships, reads `TestModule.diagnostic()`, names files, states the rule behind each finding\n- 🚚 [`npx vitest-auto-spy codemod`](#codemod--migrating-a-suite-off-jest-auto-spies) — thirteen transforms that move a suite off `jest-auto-spies` and Jest, or off `jasmine-auto-spies` and jasmine (`--from jasmine`), dry-run by default, with a `--verify` pass that also checks a file somebody edited by hand\n- 🔇 Console spies — `import { consoleInfoSpy } from 'vitest-auto-spy/console'` silences `console` and asserts its calls; [`setupAutoSpy({ strayConsole: 'throw' })`](#how-to-mock-the-console) fails any test whose console output nothing absorbed\n- 🧭 [**Spec patterns**](https://asdalexey.github.io/vitest-auto-spy/recipes) — the shapes a ~370-file Angular suite converged on, and the traps that only surface at scale; task recipes for [mocking classes](https://asdalexey.github.io/vitest-auto-spy/guides/mocking-classes), [`localStorage`](https://asdalexey.github.io/vitest-auto-spy/guides/mocking-local-storage), [Prisma Client](https://asdalexey.github.io/vitest-auto-spy/guides/mocking-prisma) and [Storybook stories (Angular)](https://asdalexey.github.io/vitest-auto-spy/guides/storybook-angular)\n- 🤖 Built for AI agents too — one `npx vitest-auto-spy init` writes the pointer into the files your agents actually read and specialises it for this repository, backed by an offline [`AGENTS.md`](#using-this-library-with-an-ai-agent) inside the package, a [per-agent map](#which-file-your-agent-reads) for **Claude Code**, **OpenAI Codex**, **GLM/z.ai**, **Cursor**, **Copilot**, **Gemini CLI** and the rest, `llms.txt` on the docs site, a Claude Code skill, and errors that name their own fix\n- 🟢 100% test coverage, **zero runtime dependencies** (in-tree arg serializer, no `javascript-stringify`)\n\n## New in 5\n\nA major that changes **no helper, no option and no runtime behaviour**. What it changes is what the\npackage claims to run on, because both old peer ranges were claims the code could not keep — the\nfull list, with what to do about each, is in\n[Upgrading to 5.0](https://asdalexey.github.io/vitest-auto-spy/upgrading-5).\n\n| What you get                                                                                                                                                                                                                        | Verified                                                                                                                            |\n| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| **The Angular range stops being false.** `>=16.0.0` admitted four majors on which an entry point cannot link at all: `ɵSIGNAL` is a value import and arrived in 18, `provideZonelessChangeDetection` in 20. The floor is now `>=20` | Angular 16 through 22 downloaded, their real `export { … }` lists parsed out of `fesm2022/*.mjs`; Angular 19 went EOL on 2026-05-19 |\n| **`@angular/platform-browser` is a declared peer.** `/angular` has always imported `By` from it as a value, and under pnpm's isolated layout that never resolved                                                                    | undeclared → optional peer on the same `>=20` range                                                                                 |\n| **The rxjs range stops promising rxjs 8.** Six operators came from `rxjs/operators`, a path rxjs 8 removes; they now come from the root entry, where rxjs re-exported them in 7.2, and the floor moved with the specifier           | read out of rxjs 7.2.0's own `dist/types/index.d.ts`; every Angular major from 16 to 22 already peers above it                      |\n| **`flushEffects()` is one line.** The `ApplicationRef.tick()` fallback and the spec that deleted `TestBed.tick` at runtime to cover it are both gone                                                                                | `TestBed.tick()` direct; coverage still 100 %                                                                                       |\n\nFor almost everyone the whole upgrade is a version number: every Angular still supported by Angular\nsatisfies the new floor, and only a project pinning `rxjs@7.0` or `7.1` on purpose has to move.\n\n## New in 4\n\nA major with **one job**: take out of your project the weight this library was making it carry.\nNothing was removed or renamed and no runtime behaviour changed — the whole cost is two import\nspecifiers, listed with their fix in\n[Upgrading to 4.0](https://asdalexey.github.io/vitest-auto-spy/upgrading-4).\n\n| What you get                                                                                                                                                                                                                                                        | Measured                                                                                                                                                        |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **rxjs is out of your TypeScript program.** The declarations named `Observable` and `Subject`, so every consumer loaded rxjs whether the project used it or not. `import type` does not fix that — TypeScript resolves it the same way — so the reference had to go | consumer program **303 → 114 files**, of which **189 → 0** are rxjs; `TS2307` inside a shipped `.d.ts` under `skipLibCheck: false` with no rxjs installed: gone |\n| **Every spec file gets time back.** The DOM stubs and the run diagnostics moved to `vitest-auto-spy/dom-stubs` and `…/diagnostics`, so a spec that never touches a DOM global stops evaluating 27 kB to reach `createSpyFromClass`                                  | **−0.159 ms per spec file** that does not import them, +0.155 ms in the files that do; root entry **15.5 → 12.9 kB** min+gzip                                   |\n| **A second copy of rxjs stops breaking detection.** Observable detection is structural now, so an `Observable` from a duplicated rxjs earns the observable helpers instead of failing with `nextWith is not a function`                                             | —                                                                                                                                                               |\n| **The lint rules stop deciding how much you care.** All nineteen ship as `error`; which findings block a merge is one line of config, documented per rule                                                                                                           | —                                                                                                                                                               |\n\nIf you use the observable helpers, keep `import 'vitest-auto-spy/rxjs'` somewhere your `tsconfig`\nincludes — that one import is what keeps `returnSubject()` typed as rxjs's own `Subject<T>`.\n\n## Table of contents\n\n- [Install](#install)\n  - [Requirements](#requirements)\n  - [Peer dependencies](#peer-dependencies)\n- [The CLI — `doctor`, `perf`, `codemod` and `init`](#the-cli--doctor-perf-codemod-and-init)\n  - [`doctor` — defects that never fail](#doctor--defects-that-never-fail)\n  - [`perf` — where the CPU time actually goes](#perf--where-the-cpu-time-actually-goes)\n  - [`codemod` — migrating a suite off `jest-auto-spies`](#codemod--migrating-a-suite-off-jest-auto-spies)\n  - [`init` — the pointer an agent reads](#init--the-pointer-an-agent-reads)\n- [Using this library with an AI agent](#using-this-library-with-an-ai-agent)\n  - [Point your agent at it once](#point-your-agent-at-it-once)\n  - [Which file your agent reads](#which-file-your-agent-reads)\n  - [Install it in your agent](#install-it-in-your-agent)\n  - [OpenAI Codex](#openai-codex)\n  - [GLM (z.ai), Kimi K3 and other Claude-compatible models](#glm-zai-kimi-k3-and-other-claude-compatible-models)\n  - [Gemini CLI](#gemini-cli)\n  - [Claude Code plugin](#claude-code-plugin)\n- [Availability](#availability)\n- [Quick start](#quick-start)\n- [How to mock](#how-to-mock)\n  - [A service behind Angular DI](#how-to-mock-a-service-behind-angular-di)\n  - [A service without DI](#how-to-mock-a-service-without-di)\n  - [An object the test already holds](#how-to-mock-an-object-the-test-already-holds)\n  - [A plain data fixture](#how-to-mock-a-plain-data-fixture)\n  - [Reading a spy back from DI](#how-to-mock-reading-a-spy-back-from-di)\n  - [A whole class's dependencies at once](#how-to-mock-a-whole-classs-dependencies-at-once)\n  - [A readonly property or a signal](#how-to-mock-a-readonly-property-or-a-signal)\n  - [An Observable](#how-to-mock-an-observable)\n  - [An overloaded method](#how-to-mock-an-overloaded-method)\n  - [A promise a test forgets to await](#how-to-mock-a-promise-a-test-forgets-to-await)\n  - [A component's children](#how-to-mock-a-components-children)\n  - [A child the template still binds](#how-to-mock-a-child-the-template-still-binds)\n  - [A class the code under test builds with `new`](#how-to-mock-a-class-the-code-under-test-builds-with-new)\n  - [A double more than one spec uses](#how-to-mock-a-double-more-than-one-spec-uses)\n  - [A pipe](#how-to-mock-a-pipe)\n  - [`localStorage` and `sessionStorage`](#how-to-mock-localstorage-and-sessionstorage)\n  - [a Web Worker](#how-to-mock-a-web-worker)\n  - [`fetch` and other globals](#how-to-mock-fetch-and-other-globals)\n  - [The console](#how-to-mock-the-console)\n  - [A jasmine suite mid-migration](#how-to-mock-a-jasmine-suite-mid-migration)\n- [Why](#why)\n- [How it works (and what it won't spy)](#how-it-works-and-what-it-wont-spy)\n- [Entry points & runtimes](#entry-points--runtimes)\n  - [Runtimes](#runtimes)\n- [Angular on Bun (`bun:test`)](#angular-on-bun-buntest)\n- [Comparison](#comparison)\n  - [@testing-library/angular /vitest-utils](#testing-libraryangular-vitest-utils)\n- [Benchmarks](#benchmarks)\n  - [Reproducing the numbers](#reproducing-the-numbers)\n- [Migrating from jest-auto-spies](#migrating-from-jest-auto-spies)\n- [Migrating from jasmine-auto-spies](#migrating-from-jasmine-auto-spies)\n- [Migrating from @ngneat/spectator](https://asdalexey.github.io/vitest-auto-spy/migrating-spectator)\n- [Migrating from @testing-library/angular](https://asdalexey.github.io/vitest-auto-spy/migrating-testing-library-angular)\n- [Configuration](#configuration)\n  - [Spying instance-assigned callables (`signal()`, arrow props, `signalStore()`)](#spying-instance-assigned-callables-signal-arrow-props-signalstore)\n  - [Strict doubles — fail on a method nobody configured](#strict-doubles--fail-on-a-method-nobody-configured)\n- [Auto-mock by type (no class needed)](#auto-mock-by-type-no-class-needed)\n- [Synchronous methods](#synchronous-methods)\n- [Promise-returning methods](#promise-returning-methods)\n- [Observable methods & properties](#observable-returning-methods--observable-properties)\n  - [Standalone observable builder](#standalone-observable-builder)\n- [Getters & setters](#getters--setters)\n- [Resetting — `using`, `resetAutoSpy`, `clearAutoSpy`](#resetting--using-resetautospy-clearautospy)\n- [Framework adapters](#framework-adapters)\n  - [Angular](#angular)\n    - [Signal / readonly property mocking (bonus)](#signal--readonly-property-mocking-bonus)\n    - [Shallow component rendering](#shallow-component-rendering)\n    - [Typed elements under a strict lint](#typed-elements-under-a-strict-lint)\n    - [Building a class with auto-spied dependencies](#building-a-class-with-auto-spied-dependencies)\n    - [Zoneless waiting](#zoneless-waiting)\n    - [Settling a `resource()` or `httpResource()`](#settling-a-resource-or-httpresource)\n    - [Asserting a signal's value](#asserting-a-signals-value)\n    - [Where a spec spends its time](#where-a-spec-spends-its-time)\n    - [A provider the component declares for itself](#a-provider-the-component-declares-for-itself)\n    - [Diagnostics — five silent failures made loud](#diagnostics--five-silent-failures-made-loud)\n    - [Which collaborators the code asked for](#which-collaborators-the-code-asked-for)\n    - [An `ActivatedRoute` whose halves agree](#an-activatedroute-whose-halves-agree--vitest-auto-spyangular-router)\n  - [NestJS](#nestjs)\n  - [React (Testing Library)](#react-testing-library)\n  - [Vue / Pinia](#vue--pinia)\n  - [Svelte](#svelte)\n  - [Which factory, and what it costs](#which-factory-and-what-it-costs)\n- [Utilities](#utilities)\n  - [Console spies — `vitest-auto-spy/console`](#console-spies--vitest-auto-spyconsole)\n  - [Taking hold of an argument — `captureArg`](#taking-hold-of-an-argument--capturearg)\n  - [Why a spy answered what it did — `explainSpy`](#why-a-spy-answered-what-it-did--explainspy)\n- [Observable assertions](#observable-assertions)\n- [Test-run hygiene](#test-run-hygiene)\n- [Fake timers](#fake-timers)\n- [Observer stubs](#observer-stubs)\n- [ESLint plugin](#eslint-plugin)\n- [Editor diagnostics — WebStorm & VS Code](#editor-diagnostics--webstorm--vs-code)\n  - [WebStorm and the other JetBrains IDEs](#webstorm-and-the-other-jetbrains-ides)\n  - [VS Code, Cursor, Windsurf, VSCodium](#vs-code-cursor-windsurf-vscodium)\n- [Bridging `Spy<T>` and `T`](#bridging-spyt-and-t)\n- [API reference](#api-reference)\n- [FAQ & troubleshooting](#faq--troubleshooting)\n- [Versioning](#versioning)\n- [Contributing](#contributing)\n- [Acknowledgements](#acknowledgements)\n- [License](#license)\n\n## Install\n\n```bash\nnpm i -D vitest-auto-spy\n```\n\n> The plural name — [`vitest-auto-spies`](https://www.npmjs.com/package/vitest-auto-spies) — is an\n> alias package that re-exports this one, entry point for entry point, so a typo resolves to the\n> same code. Prefer the singular; the alias only follows it.\n\n### Requirements\n\n| Tool       | Minimum                                                                                                           |\n| ---------- | ----------------------------------------------------------------------------------------------------------------- |\n| Node.js    | ≥ 22 — 18 and 20 are EOL; CI exercises 22, 24 and 26                                                              |\n| Vitest     | ≥ 2.1 (required peer) — one install covers 2.1 through 5.x                                                        |\n| Angular    | ≥ 20 for the Angular entry points, ≥ 22 for `vitest-auto-spy/signal-forms` — optional peer, nothing else needs it |\n| Bun        | ≥ 1.4 for `vitest-auto-spy/bun-angular`; any recent Bun for `vitest-auto-spy/bun`                                 |\n| TypeScript | ≥ 4.7 for the typed helpers (plain JS works too, just untyped)                                                    |\n\nVitest **≥ 2.1** because the typed `spy.method.mock.settledResults` surface is Vitest's own `Mock`\ntype, and `@vitest/spy` only grew `settledResults` in 2.0 — 2.1 is where the 2.x line actually sits.\nThe runtime helpers themselves still run on older Vitest (the library polyfills `settledResults` for\n`bun:test` and `node:test` regardless), but the types no longer line up there, so the range stops\nclaiming it.\n\n**Vitest 5 needs nothing from you.** The same install covers it — no second major of this package,\nno version-split types, no `@next` tag, no change to an import. Two changes in Vitest 5 would\notherwise have broken quietly, and both are handled here: its `clearAllMocks()` now visits only the\nmocks that were called, so a spy engine that is not `vi.fn()` had to make itself reachable to the\nsweep; and the `Matchers` interface grew a second type parameter, so the bundled matchers declare\nthemselves on Chai's `Assertion` instead and keep typing on 4 and 5 alike. The one thing Vitest 5\ncan still break is its own doing: `clearMocks` is on by default there, so a spec asserting on a call\nrecorded by an _earlier_ test now reads zero. Record it in a counter, not in the spy.\n\nOne feature of this package does need a line changed. `setupAutoSpy({ pruneMockRegistry: true })`\nfinds long-lived mocks by walking the runner's own registry, and Vitest 5 no longer exposes it — so\non Vitest 5 the automatic half does nothing and a mock that must survive `vi.resetAllMocks()` has to\nsay so: `keepMockRegistered(vi.fn().mockReturnThis())`. Everything after that mark behaves as before.\n\nMeasured 2026-09-06 on 40 spec files, 800 tests, 400 spied methods per file, v8 coverage on,\nNode v24.19.0, median of five runs: the same suite takes **1383 ms on Vitest 4.1.11 and 1276 ms on\nVitest 5.0.0** — **−7.7 %** for changing nothing but the runner. The spy engine this library has\nshipped since 4.1 is worth another **−6.1 % on Vitest 4 and −8.1 % on Vitest 5** against building\nevery method with the runner's own `vi.fn()` (`setSpyEngine('runner')`). End to end, the slowest\npairing to the fastest is 1473 ms → 1276 ms, **−13.4 %**.\n\nNode **≥ 22** is the library's own floor now — Node 18 and 20 are both past end of life, and every\nrunner this library supports already needed more: Vitest 4 pulls in Vite 7 (`^20.19.0 || >=22.12.0`)\nand calls `crypto.hash` (added in Node 20.12), so Node 18 died with\n`TypeError: crypto.hash is not a function` before a spec loads. Vitest 5 raises its own floor to\n`^22.12.0 || ^24.0.0 || >=26.0.0`, and `@angular/build` 22 needs `^22.22.3 || ^24.15.0 || >=26.0.0`.\nCI tests Node 22, 24 and 26, so 22 is what is actually exercised. Which version to run is measured in\n[Performance → Which Node version](https://asdalexey.github.io/vitest-auto-spy/core/performance#which-node-version):\nthe break is between 22 and 24, where a cold import more than halves.\n\nShips **ESM with bundled `.d.ts` types**. Two subpaths additionally ship a CommonJS build —\n`vitest-auto-spy/node` (a `node --test` suite written in CJS) and `vitest-auto-spy/eslint-plugin`\n(loaded by a CommonJS `eslint.config.cjs`, whose declaration is an `export =`, matching what\n`require('vitest-auto-spy/eslint-plugin')` actually returns — it used to say `default`, so an\n`eslint.config.cts` type-checked the call that throws and rejected the one that works).\nEverything else is ESM-only, because a `require()` of it\ncould never have worked: Vitest itself refuses to be required (`Vitest cannot be imported in a\nCommonJS module using require()`), so every Vitest-backed entry threw on the first line of its own\n`.cjs`. Test runners load ESM natively, so nothing is lost — and dropping the unreachable output cut\nthe published package roughly in half.\n\n### Peer dependencies\n\nAll peers are **provided by your project**, and every one of them is now **optional** — install each\nonly for the entry point that needs it. `vitest` is optional too: the range is unchanged (`>=2.1`),\nbut a suite on `vitest-auto-spy/bun` or `…/node` loads no Vitest at run time and should not have to\ninstall one. The one caveat is type-level — the `/bun`, `/bun-angular` and `/node` declarations still\nname Vitest's `Mock`, so a project type-checking those entries wants `vitest` as a devDependency\nanyway; freeing that is a breaking type change and waits for a major. The package itself has **zero\nruntime dependencies**.\n\n`vitest-auto-spy/package.json` is exported, so a tool that resolves a dependency's manifest by\nspecifier — Storybook, Nx, a renovate helper — no longer gets `ERR_PACKAGE_PATH_NOT_EXPORTED`.\n\n| Peer                        | Needed for                                                                                                                                   | Optional? |\n| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------- |\n| `vitest`                    | the default runner — `>=2.1`; optional, so a `/bun` or `/node` suite does not install a runner it never loads                                | yes       |\n| `rxjs`                      | `vitest-auto-spy/rxjs` observable spies — `>=7.2`, **no upper bound** (the rxjs 8 line included); not needed to type-check a spy since 4.0.0 | yes       |\n| `@angular/core`             | `vitest-auto-spy/angular` and `vitest-auto-spy/bun-angular` helpers — `>=20`                                                                 | yes       |\n| `@angular/common`           | `vitest-auto-spy/angular-http` — `>=20`, that entry only                                                                                     | yes       |\n| `@angular/router`           | `vitest-auto-spy/angular-router` — `>=20`, that entry only                                                                                   | yes       |\n| `@angular/forms`            | `vitest-auto-spy/signal-forms` — `>=22`, that entry only                                                                                     | yes       |\n| `@angular/platform-browser` | `By` and the directive matchers on `vitest-auto-spy/angular`, and the Bun preload's platform — `>=20`                                        | yes       |\n\n**rxjs ≥ 7.2**, and that number moved because an import specifier did. The observable layer builds\nits subjects out of six operators — `concatMap`, `delay`, `switchMap`, `take`, `takeUntil`,\n`takeWhile` — and it took them from `rxjs/operators`, the legacy deep path. **rxjs 8 removes that\npath entirely**, so the old open-ended `>=7.0.0` was promising a version the code could not have\nserved. The operators now come from the root `rxjs` entry, which is where rxjs itself re-exported\nthem in **7.2** — checked against rxjs 7.2.0's own `dist/types/index.d.ts`, not against its release\nnotes. `firstValueFrom`, which is what justified the old 7.0 floor, is still there; 7.2 is simply the\nfirst version where every symbol this package imports exists at the specifier it imports it from.\n\nIt costs an Angular consumer nothing. Every Angular major from 16 to 22 declares its own rxjs peer\nas `^6.5.3 || ^7.4.0`, which is already above what this asks — so only a project that pins `rxjs@7.0`\nor `7.1` on purpose has anything to do.\n\n**Angular ≥ 20**, and two symbols the shipped code imports **as values** are what set the number. A\nmissing value import is a link error, so the symptom is never one unavailable helper — it is an\nentry that does not load:\n\n- **`ɵSIGNAL` exists from Angular 18.** `runEffect()` reads it, and that import is the first line of\n  the `/angular` bundle, evaluated eagerly. On Angular 16 or 17 the entry fails to link, taking\n  `provideAutoSpy`, `injectSpy` and the rest with it — not just `runEffect`.\n- **`provideZonelessChangeDetection` exists from Angular 20.** In 18 and 19 the same function was\n  named `provideExperimentalZonelessChangeDetection`; in 16 and 17 there was nothing to name.\n  `vitest-auto-spy/bun-angular` imports it by name, so below 20 `bun test` dies loading the preload,\n  before any spec file.\n\nAngular 20 is also the oldest Angular that Angular still supports — six months active plus twelve\nmonths LTS put 19 past end of life on **2026-05-19**, and 18, 17 and 16 before it. The technical\nfloor and the supported floor are the same number, so nothing still receiving fixes is cut off; the\nrange this replaces said `>=16.0.0`, which was a promise on versions where the main entry could not\nlink. No upper bound is set on purpose — one would force a release per Angular major and hand\n`ERESOLVE` to whoever upgraded first.\n\n`@angular/platform-browser` is declared for the first time here. `vitest-auto-spy/angular` has\nalways imported `By` from it as a value, and the Bun preload boots through `platformBrowserTesting()`.\nUnder npm's hoisted `node_modules` it resolved by accident — every Angular workspace has it — while\nunder pnpm's isolated layout it did not resolve at all. Declaring it makes the accident a contract.\n\n## The CLI — `doctor`, `perf`, `codemod` and `init`\n\nThe package ships one executable, with no dependencies and nothing to configure:\n\n```bash\nnpx vitest-auto-spy doctor   # read-only. Exits 1 when it finds something\nnpx vitest-auto-spy perf     # where the suite's CPU time goes. --gate fails a budget and says why\nnpx vitest-auto-spy codemod  # prints the migration diff. Writes nothing without --write\nnpx vitest-auto-spy init     # writes the agent instructions pointer\n```\n\n**Exit `0` means \"ran, nothing to report\"; `1` means \"ran, and here is the finding\"; `2` means\n\"there was nothing to judge\".** The third one is the reason to read this line: an unknown flag for a\nknown command is an error and **nothing runs** — `init --dryrun` used to write the files and\n`perf --gat` used to pass with no gate at all, which is a typo that reads as a clean CI step. A path\nthat matches no file is the same kind of error, because _Nothing left to migrate_ off a tree nobody\nread is not a result. A red suite under `perf --gate` lands there too: a failing test is measured\nuntil its timeout, and 30 s of timeout looks exactly like 30 s of slow code.\n\nThe repository scan behind `doctor` and `codemod` skips the directories git ignores — every\n`.gitignore` from the root down, `.git/info/exclude` and the per-user `core.excludesFile`, read as\nfiles with no `git` process — and stops at a nested repository or a git worktree — a `.git` entry,\nwhether it is a directory or a file. A tree carrying worktrees under it used to be\nlisted twice, so `doctor` reported every import graph in duplicate and `codemod --write` could have\nrewritten specs on someone else's branch.\n\n### `doctor` — defects that never fail\n\nEvery check shares one property: **nothing consumes the result**. The suite is green,\n`tsc --noEmit` reports zero errors, and the only reader of the stale thing is whoever opens the\nfile. That is why they survive for years, and why a per-file linter cannot find most of them — the\nevidence is spread across files.\n\n```\n$ npx vitest-auto-spy doctor\nvitest-auto-spy doctor — /work/app\n1284 files, runner: vitest, entry: vitest-auto-spy/angular\n\nerror  tsconfig-glob-matches-nothing libs/users/tsconfig.spec.json\n       The \"include\" pattern \"src*.spec.ts\" matches no file.\n       → A pattern that matches nothing type-checks nothing, and `tsc --noEmit` still reports\n         zero errors. Fix the glob or delete the entry.\n\n3 errors, 4 warnings, 1 note\n```\n\n| Check                               | What it finds                                                                                                                     |\n| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |\n| `tsconfig-glob-matches-nothing`     | An `include` pattern that matches no file — so it type-checks nothing; `info` when nothing beside the config is there to miss yet |\n| `tsconfig-file-missing`             | A `files` entry naming a file that is gone                                                                                        |\n| `spec-imported-by-non-spec`         | A production module importing a `*.spec.ts`                                                                                       |\n| `spec-exports-fixture`              | A spec importing another spec, whose hooks then run in a foreign file                                                             |\n| `foreign-runner-pragma`             | `@jest-environment` left in a spec, which Vitest never reads                                                                      |\n| `dead-runner-config`                | `jest.config.*` / `karma.conf.*` for a runner that is not installed                                                               |\n| `orphan-runner-file`                | A setup file only that dead config referenced                                                                                     |\n| `angular-build-splitting-off`       | `@angular/build` in `[22.1.5, 22.1.7)` — the OOM under `--coverage`                                                               |\n| `coverage-all-removed`              | `coverage.all` in a config, on a Vitest that stopped reading the key                                                              |\n| `coverage-include-misses-bundle`    | A `coverage.include` of sources only, in a runner config over a bundle                                                            |\n| `coverage-include-recompiles-globs` | A coverage scope large enough that `picomatch` recompiling it per file costs more than the coverage. Info                         |\n| `jasmine-era-project`               | `jasmine-core`, `@types/jasmine`, `karma.conf.*` or `@hirez_io/observer-spy` still installed. Info, not an error                  |\n| `no-agent-instructions`             | No instruction file names the package. A note, not an error                                                                       |\n| `helper-from-wrong-entry`           | A named import taken from an entry that does not export it — `provideAutoSpy` from the root                                       |\n| `no-unawaited-helper`               | An `expectEmission` / `stable` / `flushEventLoop` call dropped as a bare statement, so nothing awaits it                          |\n\nThe check that motivated the tool: a spec showing `Cannot find name 'vi'` in the editor while\n`tsc --noEmit` reported zero errors. A migration codemod editing `include` had eaten a `/**`,\nturning `src/**/*.spec.ts` into `src*.spec.ts` — a valid glob that matches nothing. Nine of 152\nspec tsconfigs still covered their specs.\n\n`doctor` never writes. There is no `--fix`.\n\nThe last two checks resolve a **name**, and both read the same table: the entry each helper is\nexported from, generated from this package's own `exports` map by compiling the barrels and reading\nthe symbols back out of the compiler. That table is why they are `doctor` checks and not lint rules\n— a per-file linter has none. Both are conservative in the same way: the callee has to have been\nimported from this package in that same file (a rename with `as` still counts), `no-unawaited-helper`\nreports only a call that both begins and ends a statement, and the pair goes quiet when the installed\nmajor differs from the table's, because a helper moves between entries only in a major. Over this\nrepository's own 755 source files they report nothing outside their own fixtures. Neither has a\nfixer.\n\n### `perf` — where the CPU time actually goes\n\nVitest prints one summary line per run with a phase breakdown; it is the only place those numbers\nsurface, and it is for the whole suite, not a file. `perf` reads the same numbers per file — through\n`TestModule.diagnostic()`, Vitest's own public accessor, via a reporter this package ships — and\nturns whichever phase dominates into a list of files and the rule that put them there. Nothing here\nparses terminal output, and without --gate it always exits 0: a slow suite is not a failing one.\n\n```bash\nnpx vitest-auto-spy perf              # run the whole suite once and report\nnpx vitest-auto-spy perf src/cli      # path passed through to Vitest as a file filter\nnpx vitest-auto-spy perf --json out/perf.json  # re-analyse a report instead of running Vitest\n```\n\n```\n$ npx vitest-auto-spy perf src/cli\nvitest-auto-spy perf — /path/to/repo\n16 test files, 860ms wall clock, 17.30s of CPU time summed over the workers\n\n  phase               time    share\n  prepare            6.34s    36.7%\n  environment        5.46s    31.6%\n  setup              3.01s    17.4%\n  transform          1.19s     6.9%\n  import             879ms     5.1%\n  tests              411ms     2.4%\n\ninfo   perf-environment\n       Environment setup is 31.6% of the measured CPU time, against 2.4% in the test bodies. No\n       spec file could be proved DOM-free, so this names none; 109 were left undecided.\n       → Move what does not need a DOM to the `node` environment. …\n\n0 errors, 0 warnings, 2 notes\n```\n\nThat is this repository's own suite: `perf` names zero DOM-free candidates and leaves the rest\nundecided, because `src/test-setup.ts` builds an Angular `TestBed` before every spec. The rule is\ndeliberately one-sided — a spec is a candidate only when it, the setup files, and every module they\nimport were read, none mentions a DOM name, and every package they import is on a short\nDOM-free allowlist. Anything the rule cannot resolve is **undecided**, never assumed safe: a false\npositive is somebody's suite failing on `document is not defined`.\n\n**The phase totals are CPU time summed across workers**, which is why 860ms of wall clock reads as\n17.30s of CPU above — the six phases are `environment`, `prepare`, `import`, `setup`, `tests` (all\nper file) and `transform` (whole run). Where the isolation finding suggests `test.isolate: false`,\nit links to this package's own memory measurements rather than repeating the numbers here — that\nflag trades per-file cleanup for memory that grows with the suite.\n\nTwo findings are about settings rather than files. `perf-environment-engine` offers `happy-dom` to a\n`jsdom` config whose environment time dominates — 23.2 s of user CPU against 26.5 s on this\nrepository's own 117-file suite, and 119 ms against 253 ms per file on a spec that builds a DOM and\ndoes nothing else. `perf-workers` is the one about **memory**: with no `maxWorkers` declared, Vitest\ntakes one worker per core, and a worker measured at ~155 MB on top of a 1.42 GB floor — a cap of four\ncost 2.8 % of wall clock and about 2 GB less on a 16-core machine.\n\n**`--gate` is the half that may fail a pipeline**, and it is built so that it only ever fails over\nsomebody's code. It judges the `tests` phase alone — the other five are the harness and the machine\n— it counts a file's budget in the median test **of the same run** (2 000 of them, or 10× that\nmedian for each test in the file, whichever is larger), so the verdict survives a change of hardware\nand a large file of ordinary tests never fails it, and it re-measures every candidate on its own\nbefore failing anything. A file that is not slow when it has the machine to itself is reported as\n_not reproduced_ rather than as a defect; one that is gets a card saying why — its slowest tests,\nhooks against bodies, and where the CPU profile says the time went.\n\n```bash\nnpx vitest-auto-spy perf --gate                                              # a plain Vitest suite\nnpx vitest-auto-spy perf --command 'npm test -- {paths:--include=}' --gate   # a suite behind a script\n```\n\n```\nerror  perf-gate-slow-file libs/player/src/lib/vod/vod.component.spec.ts\n       The test bodies in this file add up to 9.20s, over the 5.00s budget (…). Re-measured on its own: 8.70s, still over budget.\n\n       ┌─ measurements ────────────────────────────────────────────────\n       │ tests             38   242ms each   20× the median test\n       ├─ slowest tests ───────────────────────────────────────────────\n       │  527ms  focus > moves through the controls\n       ├─ where the time went · CPU profile, 8.41s sampled ────────────\n       │ hooks        ███████████░░░░░░░░░ 54%   test bodies 46%\n       │ by package   ██████░░░░░░░░░░░░░░  28%  jsdom\n       │ in the spec  setUpWith 38%  ·  VodComponent_Template 17%  ·  assertFocus 8%\n       ├─ likely cause ────────────────────────────────────────────────\n       │ Most of the time is set-up that every test repeats: 54% is in hooks — setUpWith alone is 38%.\n       └───────────────────────────────────────────────────────────────\n```\n\nThe profiler behind the card is loaded only for the confirmation pass; an ordinary run never pays\nfor it. The whole card, and the rule the budget is counted by, are in\n[the CLI docs](https://asdalexey.github.io/vitest-auto-spy/utilities/cli#the-gate).\n\nOn an Angular spec the card adds a row of Angular's own costs — TestBed set-up, component creation,\nchange detection, JIT compilation, computed styles — and the likely cause reads it first; on Vitest\n4.1+ it also lists the spec's heaviest imports. Three things need no network in CI: `--baseline\nperf-history.jsonl` keeps the last 30 runs in a cache and fails a file only past twice its mean share\nand above every share it was recorded at; `--fail-on-flaky` fails a test that passed only on a retry;\nand `--code-quality <path>`, on `perf` and on `doctor`, writes the findings for the GitLab merge\nrequest widget. `--format json` prints either command as one JSON document on stdout, with the gate's verdict\nrows, for a script that would otherwise parse the text.\n\n`--command` is also the answer to a bare `vitest run` not being your suite at all: where the suite is\nbuilt by an Angular builder, an Nx target or a script, there is no root config, the defaults sweep up\nevery `*.spec.*` in the tree, and every file fails to collect — 1 830 files and 0 test bodies on the\nworkspace this was measured in, under a phase table that looked entirely plausible. `perf` refuses to\ncall that a measurement and says which of the two entry points to use. Exit `1` means the gate\nfailed; exit `2` means there was nothing to judge.\n\nFull reference, phase by phase and finding by finding: **[The CLI](https://asdalexey.github.io/vitest-auto-spy/utilities/cli)**.\n\n### `codemod` — migrating a suite off `jest-auto-spies`\n\n```bash\nnpx vitest-auto-spy codemod                    # every *.spec.ts / *.test.ts — dry run\nnpx vitest-auto-spy codemod src/app --write    # apply, under a path\nnpx vitest-auto-spy codemod --verify           # transform nothing; exit 1 on anything left\n```\n\nThirteen transforms in three families — four shared, three Jest's, six jasmine's. `--from` picks the\nfamily (`jest-auto-spies`, `jasmine-auto-spies` / `jasmine`, or `auto`, the default, which reads each\nfile). Two are this package's own knowledge: **`auto-spies-import`** splits\n`import { createSpyFromClass, provideAutoSpy, Spy } from 'jest-auto-spies'` across the entry points\nthat export each name — from a table read off the **installed** package's export map, not a\nhard-coded list — and **`inject-cast`** rewrites `TestBed.inject(X) as Spy<X>` into\n`asSpy<X>(TestBed.inject(X))`, the cast that fails with `TS2352` once per injected double in a\nmigrated suite. The other five are the Jest half: **`jest-types`** transposes `jest.Mock<R, [A]>`\ninto the single call signature Vitest takes (a plain rename compiles into the reverse meaning and\nnothing fails until a call site disagrees), **`jest-namespace`** renames the `jest.*` members that\nhave a `vi` twin, and `jest-globals-import`, `jasmine-aliases` (`xit` → `it.skip`) and\n`mock-implementation-arity` finish the mechanical part.\n\nThe six jasmine transforms take `.and` off the auto-spies helpers (`spy.load.and.nextWith(v)` →\n`spy.load.nextWith(v)`), turn jasmine's own strategies into their `mock*` twins, rewrite the\n`jasmine` global's members onto `vi` / `expect`, rename the matchers Vitest spells differently — and\ngive **`spyOn` back the stub it had for free**: jasmine's `spyOn` stubs the method, `vi.spyOn` calls\nthrough, so a bare rename is green, silent and inverts the behaviour of every unstubbed spy in the\nsuite. That one is why this is a codemod and not a `sed` line. A bare `spyOn(` is deliberately not\nenough for `--from auto` to classify a file, for exactly the same reason — that suite says\n`--from jasmine` out loud.\n\n**Dry-run by default**, so the first thing a repository sees is a diff it can reject. `--write`\napplies it, `--only` / `--skip` select transforms by id, `--list` prints them together with the\ngenerated entry-point table. Past 50 000 files the scan truncates and says so, because _Nothing left\nto migrate_ off a truncated list is a claim about a tree it never looked at;\n`VITEST_AUTO_SPY_SCAN_CAP` raises the cap.\n\n**Every rewrite is parsed before it is written**, with the project's own `typescript`, and its\ndiagnostics are compared against the original's. A file the run would have broken is reported as\n`codemod-broke-syntax` and left byte for byte as it was, so the run ends with one file named instead\nof a tree that no longer compiles; where `typescript` is not installed the check is skipped in\nsilence rather than turned into an install instruction. JavaScript specs are visited too —\n`*.spec.js`, `*.test.jsx`, the `.cjs` and `.mjs` forms — because a Jest suite that was never\nTypeScript is the suite with the most `jest.` in it.\n\nWhat it deliberately does not do is guess. A `jest.*` member with no `vi` twin — `requireMock`,\n`replaceProperty`, `createMockFromModule`, `jest.setTimeout`, `requireActual` — is **left exactly as\nit was and reported with what to do instead**, and so is any member in neither list: a mechanical\n`jest.` → `vi.` is right for about thirty members and wrong for a dozen more, and the wrong ones fail\nlater as `vi.requireMock is not a function`, which reads as \"the runner broke\". Same for an import\nname no entry point exports, and for a span it could not reach at all — a template literal, an\nunbalanced bracket. Two more it now reports rather than rewriting into something worse:\n`jest.fn<R, [A]>()` in a file importing from `@jest/globals` (`jest-mock` 29 already takes the whole\nfunction type, so transposing a second time produces a return type of a return type), and\n`.withArgs(…)` on a `vi.spyOn` chain — `vi.spyOn` has no `calledWith`, so renaming it produces a\nmethod that does not exist.\n\n`--verify` is the pass to run afterwards: it transforms nothing and matches the files against the\npatterns the codemod removes, exiting 1 on anything left. Matching the _result_ rather than reading\nthe diff is the only form that notices a file the transforms declined to enter — and it works the\nsame on a file somebody migrated by hand.\n\nFull reference, transform by transform:\n**[The codemod](https://asdalexey.github.io/vitest-auto-spy/utilities/codemod)**.\n\n### `init` — the pointer an agent reads\n\nNo coding agent scans dependencies for instructions, so the `AGENTS.md` and the skill shipped\ninside this package's tarball are never discovered on their own. `init` writes the pointer into\nthe files that _are_ read — `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, a Claude Code skill stub, and a\nglob-scoped rule file for each tool whose directory already exists — and specialises it for this\nrepository's runner, framework and setup file. Everything sits between markers, so a re-run is a\nno-op and `--uninstall` puts the files back.\n\n`init --check` is the CI form, and it compares **the managed block**, not the version stamp inside\nits marker. Upgrading this package no longer turns that step red on a repository whose instructions\nhave not changed a word; a plain `init` still refreshes the stamp.\n\nFull reference, including the flags and the CI form: **[The CLI](https://asdalexey.github.io/vitest-auto-spy/utilities/cli)**.\n\n## Using this library with an AI agent\n\nMost tests are now written with an assistant in the loop, so this package ships documentation\nwritten for one — not a second copy of the README, but the compressed form an agent can act on:\nthe decision tree, the configuration semantics, an error→fix table and the anti-patterns.\n\n| What                                                                         | Where                                                  | For                                                      |\n| ---------------------------------------------------------------------------- | ------------------------------------------------------ | -------------------------------------------------------- |\n| [`AGENTS.md`](./AGENTS.md)                                                   | `node_modules/vitest-auto-spy/AGENTS.md`               | any agent, **offline** — it ships inside the npm tarball |\n| [`llms.txt`](https://asdalexey.github.io/vitest-auto-spy/llms.txt)           | the docs site root                                     | a crawler picking the one page it needs                  |\n| [`llms-full.txt`](https://asdalexey.github.io/vitest-auto-spy/llms-full.txt) | the docs site root                                     | reading the entire documentation in one fetch            |\n| A Claude Code skill                                                          | `skills/vitest-auto-spy/SKILL.md`, also in the tarball | Claude Code — and any client that _is_ it, GLM included  |\n| Runtime error messages                                                       | every thrown error ends with `Docs: <url>`             | reading a stack trace instead of guessing                |\n\n### Point your agent at it once\n\nAdd this to the instruction file your agent actually reads — the table below says which one that is:\n\n```md\nWhen writing or fixing tests that use `vitest-auto-spy`, first read\n`node_modules/vitest-auto-spy/AGENTS.md`. It is the authoritative reference for the API,\nthe configuration semantics and the common mistakes.\n```\n\nThe text is the same everywhere; only the filename changes. **Two files cover the whole field: a\nroot `AGENTS.md` and a root `CLAUDE.md`.** Put the identical block in both and every agent below is\nserved — including the ones your teammates use and you do not.\n\n### Which file your agent reads\n\n| Agent                                                               | Instruction file it reads                                                                                                                                                                 | Reads `AGENTS.md`?                                                |\n| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |\n| **Claude Code**                                                     | `CLAUDE.md` — project, `.claude/CLAUDE.md` and `~/.claude/CLAUDE.md`, all concatenated                                                                                                    | **No.** Bridge with an `@AGENTS.md` import line, or a symlink     |\n| **OpenAI Codex** — the `codex` CLI, the IDE extension, Codex cloud  | `AGENTS.md`, one per directory from the git root down to the cwd ([below](#openai-codex))                                                                                                 | native                                                            |\n| **GLM (z.ai coding plan)**, **Kimi K3**                             | whatever their client reads — inside Claude Code that is `CLAUDE.md` ([below](#glm-zai-kimi-k3-and-other-claude-compatible-models))                                                       | through the client                                                |\n| **Cursor**                                                          | root `AGENTS.md`; `.cursor/rules/*.mdc` for glob-scoped rules                                                                                                                             | native — and it applies a root `CLAUDE.md` the same always-on way |\n| **GitHub Copilot**                                                  | root `AGENTS.md`; `.github/copilot-instructions.md`                                                                                                                                       | native, coding agent included                                     |\n| **OpenCode**                                                        | `AGENTS.md`, then `CLAUDE.md`, per directory upwards                                                                                                                                      | native                                                            |\n| **Cline**                                                           | root `AGENTS.md`; the `.clinerules/` directory                                                                                                                                            | native                                                            |\n| **Windsurf / Cascade**                                              | root `AGENTS.md`; `.windsurf/rules/*.md` (`.devin/rules/*.md` when present)                                                                                                               | yes                                                               |\n| **Zed**                                                             | **first match wins, no merging**: `.rules` → `.cursorrules` → `.windsurfrules` → `.clinerules` → `.github/copilot-instructions.md` → `AGENT.md` → `AGENTS.md` → `CLAUDE.md` → `GEMINI.md` | yes — only if nothing earlier in that list exists                 |\n| **Gemini CLI**                                                      | `GEMINI.md` ([below](#gemini-cli))                                                                                                                                                        | **not by default**                                                |\n| **Qwen Code**                                                       | `QWEN.md`                                                                                                                                                                                 | native fallback                                                   |\n| **Roo Code**                                                        | root `AGENTS.md`; `.roo/rules/`                                                                                                                                                           | yes                                                               |\n| **Junie**                                                           | root `AGENTS.md` — note that `.junie/AGENTS.md` replaces it outright                                                                                                                      | yes                                                               |\n| **Aider**                                                           | nothing implicitly — list the file: `read: [AGENTS.md]` in `.aider.conf.yml`                                                                                                              | on request                                                        |\n| **Jules, Factory, goose, Amp, Warp, Devin, Kilo, Augment, VS Code** | root `AGENTS.md`          ","readmeFilename":"README.md"}