{"_id":"@hot-teapot/mock-yard","_rev":"10-7f46a2c1895604f7a9e0b6e5a8217daa","name":"@hot-teapot/mock-yard","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@hot-teapot/mock-yard","version":"1.0.0","_id":"@hot-teapot/mock-yard@1.0.0","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"}],"dist":{"shasum":"a1969f00892fcc955e2e24bd131676b8d9e2c31c","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.0.0.tgz","fileCount":34,"integrity":"sha512-KQ+VK7c8cjCuwiInkjP3x4bmE/oWm7tzuc0ZXnyKY24rLZnRvVdsdKZwXbIUNJ90tbonmVaq0A9YEZmnJI+JwA==","signatures":[{"sig":"MEYCIQCvSDHHVA/MAyBlOevd1T38dqEq1CLp7Dks87DGV3NPKgIhAORhfG8FTVLoRuNTraHEK/E7Yf6m/8sBDqDjalAU888Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91576},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/mock-yard.css"},"gitHead":"4237357bd9ada81140fc61be2d756c2f2099f772","private":false,"scripts":{"dev":"vite --config dev/vite.config.ts","test":"vitest","build":"vite build","test:e2e":"vitest run src/tests/e2e.test.ts","test:once":"vitest run","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","check:typescript":"tsgo --project tsconfig.json --noEmit","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"_npmUser":{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},"_npmVersion":"11.1.0","description":"","directories":{},"_nodeVersion":"22.14.0","dependencies":{"clsx":"2.1.1","radix-ui":"1.5.0","lucide-react":"1.17.0","tailwind-merge":"3.6.0","@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.12.7","vite":"8.0.16","orval":"8.16.0","vitest":"4.1.8","zustand":"5.0.9","typescript":"5.8.3","@types/node":"25.9.2","tailwindcss":"4","@types/react":"19.1.1","tw-animate-css":"1.4.0","vite-plugin-dts":"5.0.2","@types/react-dom":"19.1.1","@tailwindcss/vite":"4.3.0","vite-plugin-externalize-deps":"0.10.0"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","zustand":">=5.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-yard_1.0.0_1781782890507_0.13425452295741014","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@hot-teapot/mock-yard","version":"1.0.1","_id":"@hot-teapot/mock-yard@1.0.1","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"}],"dist":{"shasum":"16c21febab2e1722d1bdd1b549f3e837454d894c","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.0.1.tgz","fileCount":35,"integrity":"sha512-2mqSuYFVhoSTsXaAvld+FDjcJRUn4gJ8OUNpO7GR+LvE/1rHaxZFAyr9YGuPP8uOIuawVEGDYqGcqcxvPIDN4Q==","signatures":[{"sig":"MEQCICLRdgenHNIvFhJVuePVXB97LFb4gpHEWIUMzL6DlayVAiA4tEQMkBMbz61AbE8/wPo9X9t4Opu9v/bnd2CTbfBG1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89805},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/mock-yard.css"},"gitHead":"4237357bd9ada81140fc61be2d756c2f2099f772","private":false,"scripts":{"dev":"vite --config dev/vite.config.ts","test":"vitest","build":"vite build","test:e2e":"vitest run src/tests/e2e.test.ts","test:once":"vitest run","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","check:typescript":"tsgo --project tsconfig.json --noEmit","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"_npmUser":{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},"_npmVersion":"11.1.0","description":"","directories":{},"_nodeVersion":"22.14.0","dependencies":{"clsx":"2.1.1","radix-ui":"1.5.0","lucide-react":"1.17.0","tailwind-merge":"3.6.0","@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.12.7","vite":"8.0.16","orval":"8.16.0","vitest":"4.1.8","zustand":"5.0.9","typescript":"5.8.3","@types/node":"25.9.2","tailwindcss":"4","@types/react":"19.1.1","tw-animate-css":"1.4.0","vite-plugin-dts":"5.0.2","@types/react-dom":"19.1.1","@tailwindcss/vite":"4.3.0","vite-plugin-externalize-deps":"0.10.0"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","zustand":">=5.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-yard_1.0.1_1781783562111_0.993608041048913","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@hot-teapot/mock-yard","version":"1.0.2","_id":"@hot-teapot/mock-yard@1.0.2","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"}],"dist":{"shasum":"793b4ae7dd5bee81d20c17a52b862a588017fbed","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.0.2.tgz","fileCount":35,"integrity":"sha512-wPAuVSMbswoPhgwNIjJh6PU59k/an8Q55rPZYUilHrxdLGraAwzsxk1zQTOUQtXCIsXOZKkF0uo8rzYtnae8pw==","signatures":[{"sig":"MEQCIA4It0wQc2R8Icrg5S5S0X989z8indwYKJ3UgendN/ZkAiB+Qa2L18VBCedvAmcqCNjPCVwCGBOm1EER57UdOwsIzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89931},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/styles.css"},"gitHead":"d66af9dd39cea45c334080aa6ba65cf6c5799b16","private":false,"scripts":{"dev":"vite --config dev/vite.config.ts","test":"vitest","build":"vite build && build:styles","test:e2e":"vitest run src/tests/e2e.test.ts","test:once":"vitest run","build:styles":"tailwindcss -i src/ui/styles.css -o lib/styles.css","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","check:typescript":"tsgo --project tsconfig.json --noEmit","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"_npmUser":{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},"_npmVersion":"11.1.0","description":"","directories":{},"_nodeVersion":"22.14.0","dependencies":{"clsx":"2.1.1","radix-ui":"1.5.0","lucide-react":"1.17.0","tailwind-merge":"3.6.0","@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.12.7","vite":"8.0.16","orval":"8.16.0","vitest":"4.1.8","zustand":"5.0.9","typescript":"5.8.3","@types/node":"25.9.2","tailwindcss":"4.3.1","@types/react":"19.1.1","tw-animate-css":"1.4.0","vite-plugin-dts":"5.0.2","@tailwindcss/cli":"4.3.1","@types/react-dom":"19.1.1","@tailwindcss/vite":"4.3.0","vite-plugin-externalize-deps":"0.10.0"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","zustand":">=5.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-yard_1.0.2_1781787512806_0.46336302589555234","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@hot-teapot/mock-yard","version":"1.0.3","_id":"@hot-teapot/mock-yard@1.0.3","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"}],"dist":{"shasum":"6259678a16d87e10b9ba01443f6a178ef416eb89","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.0.3.tgz","fileCount":35,"integrity":"sha512-B3afwSp/smt3JEfv1q0p21JyRbB/u2rdxV57DhUvpXNAkGLPIvmBXcGguXggNomIfEzqJqZXcDai4MEDoUkcpw==","signatures":[{"sig":"MEQCIA/M/U2dbwetjdESpKrrDfA6Z+1XJNp5OBHntG5XeAZaAiAU6jp4EucTrFcmn0pDT4w4o1uSwo9hKUdHn2Y8lM+m0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89931},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/styles.css"},"gitHead":"d66af9dd39cea45c334080aa6ba65cf6c5799b16","private":false,"scripts":{"dev":"vite --config dev/vite.config.ts","test":"vitest","build":"vite build && build:styles","test:e2e":"vitest run src/tests/e2e.test.ts","test:once":"vitest run","build:styles":"tailwindcss -i src/ui/styles.css -o lib/styles.css","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","check:typescript":"tsgo --project tsconfig.json --noEmit","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"_npmUser":{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},"_npmVersion":"11.1.0","description":"","directories":{},"_nodeVersion":"22.14.0","dependencies":{"clsx":"2.1.1","radix-ui":"1.5.0","lucide-react":"1.17.0","tailwind-merge":"3.6.0","@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.12.7","vite":"8.0.16","orval":"8.16.0","vitest":"4.1.8","zustand":"5.0.9","typescript":"5.8.3","@types/node":"25.9.2","tailwindcss":"4.3.1","@types/react":"19.1.1","tw-animate-css":"1.4.0","vite-plugin-dts":"5.0.2","@tailwindcss/cli":"4.3.1","@types/react-dom":"19.1.1","@tailwindcss/vite":"4.3.0","vite-plugin-externalize-deps":"0.10.0"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","zustand":">=5.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-yard_1.0.3_1781787734599_0.97700667608945","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@hot-teapot/mock-yard","version":"1.0.4","_id":"@hot-teapot/mock-yard@1.0.4","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"}],"dist":{"shasum":"544d840a313e3232b8c08cd88bb5534145ada2e9","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.0.4.tgz","fileCount":36,"integrity":"sha512-XqWVNhFGN4dr6RQObobBjfZLbXh7Yuv6X56W4v+23rmN5zwZPHTfl/bqgTjG7UeAoHVJ0CxDO6vI1JvGnmao3Q==","signatures":[{"sig":"MEQCIEL3lpH8QKpS9oE+N5jsxyE7l3NCSMDDoyrGvm3tzKTeAiByUD5oOuqdRvfCLMxEB/9HahALNuPK3LzQagJHsoHm/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130610},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/styles.css"},"gitHead":"d66af9dd39cea45c334080aa6ba65cf6c5799b16","private":false,"scripts":{"dev":"vite --config dev/vite.config.ts","test":"vitest","build":"vite build && bun run build:styles","test:e2e":"vitest run src/tests/e2e.test.ts","test:once":"vitest run","build:styles":"tailwindcss -i src/ui/styles.css -o lib/styles.css","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","check:typescript":"tsgo --project tsconfig.json --noEmit","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"_npmUser":{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},"_npmVersion":"11.1.0","description":"","directories":{},"_nodeVersion":"22.14.0","dependencies":{"clsx":"2.1.1","radix-ui":"1.5.0","lucide-react":"1.17.0","tailwind-merge":"3.6.0","@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.12.7","vite":"8.0.16","orval":"8.16.0","vitest":"4.1.8","zustand":"5.0.9","typescript":"5.8.3","@types/node":"25.9.2","tailwindcss":"4.3.1","@types/react":"19.1.1","tw-animate-css":"1.4.0","vite-plugin-dts":"5.0.2","@tailwindcss/cli":"4.3.1","@types/react-dom":"19.1.1","@tailwindcss/vite":"4.3.0","vite-plugin-externalize-deps":"0.10.0"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","zustand":">=5.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-yard_1.0.4_1781788064497_0.33961636728201317","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@hot-teapot/mock-yard","version":"1.0.5","_id":"@hot-teapot/mock-yard@1.0.5","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"}],"dist":{"shasum":"d1c0248c2a6a771f81497abf8db60e86a4a7fdae","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.0.5.tgz","fileCount":37,"integrity":"sha512-uNOkj4At6mxACjfBd7e1fhQ9jwd1EmMzyc5t4JJSbU+DxpkLzvZkEwWrB5zp5LygpKnvweIt4ul9Dr/0jE3WzQ==","signatures":[{"sig":"MEQCIHLdodWUrpsKbGf5Az+bl6qAB8FtGR+hbk6rmgfjRkyOAiBfOVmo/Gy6Y7kfNm7BG+XlB+TBy3tSHHikLeckjYhW+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137706},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/styles.css"},"gitHead":"4db414cf48a28d8d0f936687a16e474b031e4f17","private":false,"scripts":{"dev":"vite --config dev/vite.config.ts","test":"vitest","build":"vite build && bun run build:styles","test:e2e":"vitest run src/tests/e2e.test.ts","test:once":"vitest run","build:styles":"tailwindcss -i src/ui/styles.css -o lib/styles.css","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","check:typescript":"tsgo --project tsconfig.json --noEmit","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"_npmUser":{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},"_npmVersion":"11.1.0","description":"","directories":{},"_nodeVersion":"22.14.0","dependencies":{"clsx":"2.1.1","radix-ui":"1.5.0","lucide-react":"1.17.0","tailwind-merge":"3.6.0","@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.12.7","vite":"8.0.16","orval":"8.16.0","vitest":"4.1.8","zustand":"5.0.9","typescript":"5.8.3","@types/node":"25.9.2","tailwindcss":"4.3.1","@types/react":"19.1.1","tw-animate-css":"1.4.0","vite-plugin-dts":"5.0.2","@tailwindcss/cli":"4.3.1","@types/react-dom":"19.1.1","@tailwindcss/vite":"4.3.0","vite-plugin-externalize-deps":"0.10.0"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","zustand":">=5.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-yard_1.0.5_1782804324649_0.3351975618101486","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@hot-teapot/mock-yard","version":"1.0.6","_id":"@hot-teapot/mock-yard@1.0.6","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"}],"dist":{"shasum":"07689ea6fec8aefca1b5fadd83663277f63bed1b","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.0.6.tgz","fileCount":37,"integrity":"sha512-yF9HZqYmhvx43gcSA6Yw0xcJKmwrNGmx7wl8R9NI9Sls94UMbulIaupDljOqRsgn7CDylPfLUq0ny9Cc4I4Qew==","signatures":[{"sig":"MEYCIQCdj5+LqgM15RPhkgYobZ/uFj5hTTmspdUkyIDTj8YTWQIhAK7z5PG/uENFW+qH2LFpAffW/GxEb7Zc64SsgHOFTf4a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137706},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/styles.css"},"gitHead":"1679c421d87afda21a5cc754f2479ebfc88f4bd5","private":false,"scripts":{"dev":"vite --config dev/vite.config.ts","test":"vitest","build":"vite build && bun run build:styles","test:e2e":"vitest run src/tests/e2e.test.ts","test:once":"vitest run","build:styles":"tailwindcss -i src/ui/styles.css -o lib/styles.css","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","check:typescript":"tsgo --project tsconfig.json --noEmit","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"_npmUser":{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},"_npmVersion":"11.1.0","description":"","directories":{},"_nodeVersion":"22.14.0","dependencies":{"clsx":"2.1.1","radix-ui":"1.5.0","lucide-react":"1.17.0","tailwind-merge":"3.6.0","@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.12.7","vite":"8.0.16","orval":"8.16.0","vitest":"4.1.8","zustand":"5.0.9","typescript":"5.8.3","@types/node":"25.9.2","tailwindcss":"4.3.1","@types/react":"19.1.1","tw-animate-css":"1.4.0","vite-plugin-dts":"5.0.2","@tailwindcss/cli":"4.3.1","@types/react-dom":"19.1.1","@tailwindcss/vite":"4.3.0","vite-plugin-externalize-deps":"0.10.0"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","zustand":">=5.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-yard_1.0.6_1784147200149_0.725029872242609","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@hot-teapot/mock-yard","version":"1.0.7","keywords":["msw","mock-service-worker","orval","faker","faker-js","api-mocking","mock","mocking","mock-server","http-mocking","react","devtools","react-devtools","openapi","swagger","rest","http","testing","service-worker","scenarios","frontend"],"author":{"name":"hot-teapot"},"license":"MIT","_id":"@hot-teapot/mock-yard@1.0.7","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},{"name":"behcetilhan","email":"behcet.ilhan@gmail.com"}],"homepage":"https://github.com/hot-teapot/mock-yard#readme","bugs":{"url":"https://github.com/hot-teapot/mock-yard/issues"},"dist":{"shasum":"256c9fd6259afc18afc322a109bf2d4eb19cde96","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.0.7.tgz","fileCount":40,"integrity":"sha512-Dob6Tr3Ii4U61U0HEWeVM7o47GAoXjE+q6nWbK/dgFaB3p2Si9J+n9rC5HlrHJmd37xL88QqBTh3MIurVOknzw==","signatures":[{"sig":"MEYCIQCdxKy/o9lKnC0NgQWY99I4Cx3t1I2rP+JTHotk+nA8uAIhAKkyYtw1GZMn1UySZ8rtP2mi0IyUWJNbULMIn34fCKuo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163300},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/styles.css"},"gitHead":"1db44dd9efbd9851b8a1576214323db2a46f5758","private":false,"scripts":{"dev":"vite --config dev/vite.config.ts","test":"vitest","build":"vite build && bun run build:styles","test:e2e":"vitest run src/tests/e2e.test.ts","test:once":"vitest run","build:styles":"tailwindcss -i src/ui/styles.css -o lib/styles.css","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","prepublishOnly":"bun run build","check:typescript":"tsgo --project tsconfig.json --noEmit","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"_npmUser":{"name":"behcetilhan","email":"behcet.ilhan@gmail.com"},"repository":{"url":"git+https://github.com/hot-teapot/mock-yard.git","type":"git"},"_npmVersion":"11.9.0","description":"A browser devtools panel for MSW, built for orval + Faker. Toggle mocked endpoints, switch success/empty/error/custom scenarios, tweak latency & status, and inspect traffic — without touching code.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"clsx":"2.1.1","radix-ui":"1.5.0","lucide-react":"1.17.0","tailwind-merge":"3.6.0","@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.12.7","vite":"8.0.16","orval":"8.16.0","vitest":"4.1.8","zustand":"5.0.9","typescript":"5.8.3","@types/node":"25.9.2","tailwindcss":"4.3.1","@types/react":"19.1.1","tw-animate-css":"1.4.0","vite-plugin-dts":"5.0.2","@tailwindcss/cli":"4.3.1","@types/react-dom":"19.1.1","@tailwindcss/vite":"4.3.0","vite-plugin-externalize-deps":"0.10.0"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","zustand":">=5.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-yard_1.0.7_1784192300243_0.3933392768221897","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@hot-teapot/mock-yard","version":"1.1.0","private":false,"description":"A browser devtools panel for MSW, built for orval + Faker. Toggle mocked endpoints, switch success/empty/error/custom scenarios, tweak latency & status, and inspect traffic — without touching code.","keywords":["msw","mock-service-worker","orval","faker","faker-js","api-mocking","mock","mocking","mock-server","http-mocking","react","devtools","react-devtools","openapi","swagger","rest","http","testing","service-worker","scenarios","frontend"],"homepage":"https://github.com/hot-teapot/mock-yard#readme","bugs":{"url":"https://github.com/hot-teapot/mock-yard/issues"},"repository":{"type":"git","url":"git+https://github.com/hot-teapot/mock-yard.git"},"license":"MIT","author":{"name":"hot-teapot"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"prepublishOnly":"bun run build","build":"vite build && bun run build:styles","build:styles":"tailwindcss -i src/ui/styles.css -o lib/styles.css","dev:lib":"trap 'kill 0' EXIT; vite build --watch & tailwindcss -i src/ui/styles.css -o lib/styles.css --watch","check:typescript":"tsgo --project tsconfig.json --noEmit","test":"vitest","test:once":"vitest run","test:e2e":"vitest run src/tests/e2e.test.ts","dev":"vite --config dev/vite.config.ts","dev:generate":"bun -e \"import {generateMockYardRegistry} from './src/generateRegistry.ts'; import path from 'path'; for(const f of ['basic-split','complex-schemas','basic-tags-split','array-responses','multi-spec']) await generateMockYardRegistry({cwd:path.resolve('src/tests/fixtures',f)})\"","generate-fixtures":"bun run src/tests/generate-fixtures.ts"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.mjs","default":"./lib/index.mjs"},"./styles":"./lib/styles.css"},"dependencies":{"@faker-js/faker":"9.6.0","class-variance-authority":"0.7.1","clsx":"2.1.1","lucide-react":"1.17.0","radix-ui":"1.5.0","tailwind-merge":"3.6.0"},"devDependencies":{"@tailwindcss/cli":"4.3.1","@tailwindcss/vite":"4.3.0","@types/node":"25.9.2","@types/react":"19.1.1","@types/react-dom":"19.1.1","msw":"2.12.7","orval":"8.16.0","tailwindcss":"4.3.1","tw-animate-css":"1.4.0","typescript":"5.8.3","vite":"8.0.16","vite-plugin-dts":"5.0.2","vite-plugin-externalize-deps":"0.10.0","vitest":"4.1.8","zustand":"5.0.9"},"peerDependencies":{"msw":">=2.0.0","react":">=18.0.0","react-dom":">=18.0.0","zustand":">=5.0.0"},"gitHead":"181c9ec11fe72c4fde5f96e3b821d799eb07997c","_id":"@hot-teapot/mock-yard@1.1.0","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-h2ZK5nagH78vrNN+/i5PKo3n8GCRxoKEJANQesDFz5UUXqntLrgJ+lKz4guYZ7YEwN05GPjCVIWfKF+RFzqphw==","shasum":"8144ed17d5d5fe2f60a3ef7060b98944da92a313","tarball":"https://registry.npmjs.org/@hot-teapot/mock-yard/-/mock-yard-1.1.0.tgz","fileCount":40,"unpackedSize":164477,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCMShOe5Bcufte24gSSP66RRlyT1MSFNt1fbQ1Pwn7azwIgRqrgX44GACrbfdO4NElN/+y4Kf5qHFVzxwO2kUrSTbc="}]},"_npmUser":{"name":"behcetilhan","email":"behcet.ilhan@gmail.com"},"directories":{},"maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},{"name":"behcetilhan","email":"behcet.ilhan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mock-yard_1.1.0_1784280914041_0.897427511574608"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-18T11:41:30.250Z","modified":"2026-07-17T09:35:14.369Z","1.0.0":"2026-06-18T11:41:30.680Z","1.0.1":"2026-06-18T11:52:42.244Z","1.0.2":"2026-06-18T12:58:32.954Z","1.0.3":"2026-06-18T13:02:14.748Z","1.0.4":"2026-06-18T13:07:44.641Z","1.0.5":"2026-06-30T07:25:24.782Z","1.0.6":"2026-07-15T20:26:40.309Z","1.0.7":"2026-07-16T08:58:20.388Z","1.1.0":"2026-07-17T09:35:14.173Z"},"bugs":{"url":"https://github.com/hot-teapot/mock-yard/issues"},"author":{"name":"hot-teapot"},"license":"MIT","homepage":"https://github.com/hot-teapot/mock-yard#readme","keywords":["msw","mock-service-worker","orval","faker","faker-js","api-mocking","mock","mocking","mock-server","http-mocking","react","devtools","react-devtools","openapi","swagger","rest","http","testing","service-worker","scenarios","frontend"],"repository":{"type":"git","url":"git+https://github.com/hot-teapot/mock-yard.git"},"description":"A browser devtools panel for MSW, built for orval + Faker. Toggle mocked endpoints, switch success/empty/error/custom scenarios, tweak latency & status, and inspect traffic — without touching code.","maintainers":[{"name":"muell_morty","email":"maarten.schmidt98@gmail.com"},{"name":"behcetilhan","email":"behcet.ilhan@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"assets/banner.svg\" alt=\"Mock Yard — a browser devtools panel for MSW, built for orval + Faker\" width=\"100%\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@hot-teapot/mock-yard\"><img src=\"https://img.shields.io/npm/v/@hot-teapot/mock-yard?color=34d399&label=npm\" alt=\"npm version\"></a>\n  <a href=\"https://www.npmjs.com/package/@hot-teapot/mock-yard\"><img src=\"https://img.shields.io/npm/dm/@hot-teapot/mock-yard?color=34d399\" alt=\"npm downloads\"></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/npm/l/@hot-teapot/mock-yard?color=34d399\" alt=\"MIT license\"></a>\n  <img src=\"https://img.shields.io/badge/types-included-3178c6?logo=typescript&logoColor=white\" alt=\"TypeScript types included\">\n  <img src=\"https://img.shields.io/badge/peer-msw%20%E2%89%A52-f472b6\" alt=\"MSW peer dependency\">\n  <img src=\"https://img.shields.io/badge/react-%E2%89%A518-60a5fa?logo=react&logoColor=white\" alt=\"React 18+\">\n</p>\n\n<p align=\"center\">\n  <b>Mock Yard</b> is a browser devtools panel for <a href=\"https://mswjs.io\">MSW</a>, purpose-built for\n  <a href=\"https://orval.dev\">orval</a> + <a href=\"https://fakerjs.dev\">Faker</a> output.<br>\n  Flip endpoints on and off, switch response scenarios, dial in latency and status codes, and inspect\n  traffic — <b>without touching a line of app code.</b>\n</p>\n\n---\n\n## Contents\n\n- [Why Mock Yard](#why-mock-yard)\n- [Features](#features)\n- [How it works](#how-it-works)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Quick start](#quick-start)\n- [Generating the registry](#generating-the-registry)\n- [API reference](#api-reference)\n- [The panel, feature by feature](#the-panel-feature-by-feature)\n- [Response scenarios](#response-scenarios)\n- [Driving the store programmatically](#driving-the-store-programmatically)\n- [Theming](#theming)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## Why Mock Yard\n\nIf you generate your API client and mocks with **orval** (`mock: true`), you already have MSW handlers\nbacked by realistic **Faker** data. Mock Yard turns those generated handlers into an interactive control\npanel that lives in the corner of your app.\n\n- **No code changes.** Toggle any endpoint, change its scenario, or add latency from the UI. Your\n  components keep calling `fetch`/TanStack Query as usual.\n- **Realistic by default.** Success responses come straight from orval's Faker `*ResponseMock()`\n  generators, reseeded deterministically from a seed you control.\n- **Reproduce any state.** Empty lists, `500`s, slow networks, or a hand-written JSON body — per\n  endpoint, or as a global default.\n- **Sticky.** Everything you toggle is persisted to `localStorage`, so your setup survives reloads.\n\n<p align=\"center\">\n  <img src=\"assets/panel-anatomy.svg\" alt=\"Anatomy of the Mock Yard panel\" width=\"100%\">\n</p>\n\n## Features\n\n**Control**\n- Enable/disable individual endpoints, whole tags, or everything at once.\n- A master **Intercept** switch that starts/stops **and unregisters** the MSW service worker.\n- Fuzzy search across HTTP method and URL.\n- State persisted to `localStorage` (survives reloads).\n\n**Realism**\n- Success responses from orval + Faker `*ResponseMock()` generators.\n- Deterministic, editable **Faker seed**.\n- Four scenarios per endpoint: `success` · `empty` · `error` · `custom`.\n\n**Fine-tuning**\n- Per-endpoint **delay** (ms) and **status code** overrides, with one-click reset to the global default.\n- Custom, live-validated **JSON response** bodies.\n- Global per-scenario defaults (delay / status / body).\n\n**Insight**\n- Console **debug logging** with toggles for incoming / handled / unhandled requests, plus a verbose\n  mode that includes headers, bodies, and the applied scenario.\n\n## How it works\n\n<p align=\"center\">\n  <img src=\"assets/architecture.svg\" alt=\"Mock Yard architecture and data flow\" width=\"100%\">\n</p>\n\n<details>\n<summary>Same diagram as text (Mermaid)</summary>\n\n```mermaid\nflowchart LR\n  subgraph build[\"1 · Build time (codegen)\"]\n    spec[\"OpenAPI spec<br/>spec.yaml\"] --> orval[\"orval<br/>mock: true\"]\n    orval --> gen[\"*.msw.ts handlers<br/>+ *ResponseMock (Faker)\"]\n    gen --> genreg[\"generateMockYardRegistry()\"]\n    genreg --> reg[\"mock-yard.registry.ts<br/>{ registry, resolvers }\"]\n  end\n  subgraph run[\"2 · Runtime (browser, dev only)\"]\n    panel[\"&lt;MockYard /&gt;\"] -->|resetHandlers| worker[\"MSW worker\"]\n    app[\"Your app<br/>fetch / TanStack Query\"] -->|request| worker\n    worker -->|Faker mock response| app\n  end\n  reg -.imported as registry + resolvers.-> panel\n```\n\n</details>\n\n1. **orval** generates MSW handlers and Faker-backed `*ResponseMock()` functions (`mode: 'split'` or\n   `'tags-split'`, with `mock: true`).\n2. **`generateMockYardRegistry()`** scans those generated files and writes a typed\n   `mock-yard.registry.ts` containing a `registry` (workspace → tag → endpoint) and a `resolvers` map.\n3. **`<MockYard registry resolvers />`** renders the panel and wires the enabled handlers into MSW at\n   runtime. Requests from your app are intercepted and answered from the registry.\n\n## Requirements\n\nMock Yard ships as ESM + types and relies on the following peer dependencies:\n\n| Peer          | Version    |\n| ------------- | ---------- |\n| `msw`         | `>= 2.0.0` |\n| `react`       | `>= 18.0.0`|\n| `react-dom`   | `>= 18.0.0`|\n| `zustand`     | `>= 5.0.0` |\n\nYou'll also want **orval** in your toolchain to generate the MSW handlers Mock Yard consumes.\n\n## Installation\n\n```bash\n# the package\nnpm install -D @hot-teapot/mock-yard\n\n# peers you may not have yet\nnpm install -D msw orval\nnpm install zustand            # react / react-dom are usually already present\n```\n\nMSW needs its service worker script served from your public directory (once per project):\n\n```bash\nnpx msw init public/ --save\n```\n\n## Quick start\n\n**1. Generate MSW mocks with orval.** Enable `mock: true` and use `split` or `tags-split` mode:\n\n```ts\n// orval.config.ts\nimport { defineConfig } from 'orval'\nimport path from 'node:path'\n\nexport default defineConfig({\n  users: {\n    input: { target: './spec.yaml' },\n    output: {\n      mode: 'split',                 // or 'tags-split'\n      target: './endpoints/users.ts',\n      schemas: './models',\n      workspace: path.resolve(__dirname, 'gen'),\n      mock: true,                    // ← required: emits MSW handlers + Faker mocks\n      client: 'fetch',\n    },\n  },\n})\n```\n\n**2. Generate the Mock Yard registry** from orval's output (see [below](#generating-the-registry)) — this\nwrites `mock-yard.registry.ts`.\n\n**3. Mount the panel** (dev only) near the root of your app:\n\n```tsx\nimport { MockYard } from '@hot-teapot/mock-yard'\nimport '@hot-teapot/mock-yard/styles'\nimport { registry, resolvers } from './mock-yard.registry'\n\nexport function App() {\n  return (\n    <>\n      <YourApp />\n      {import.meta.env.DEV && (\n        <MockYard registry={registry} resolvers={resolvers} theme=\"system\" />\n      )}\n    </>\n  )\n}\n```\n\nThat's it. A target button appears in the bottom-right corner — open it, toggle an endpoint, and your\napp starts receiving mocked responses.\n\n> **Heads up:** every endpoint starts **disabled**. Nothing is intercepted until you switch it on (or\n> hit **All On**), so Mock Yard is inert until you ask it to do something.\n\n## Generating the registry\n\n`generateMockYardRegistry()` reads your `orval.config.{ts,js,mjs,mts}`, finds every project that emits\nMSW mocks, and writes a single `mock-yard.registry.ts` in the common parent of your orval workspaces.\n\n### Recommended: hook it into the orval run\n\norval's [`afterAllFilesWrite`](https://orval.dev/docs/reference/configuration/hooks) hook runs right\nafter the generated files are written. Point it at `generateMockYardRegistry` and the registry is rebuilt\non every `orval` run — no extra script or `package.json` wiring to remember:\n\n```ts\n// orval.config.ts\nimport { defineConfig } from 'orval'\nimport path from 'node:path'\nimport { generateMockYardRegistry } from '@hot-teapot/mock-yard'\n\nexport default defineConfig({\n  users: {\n    input: { target: './spec.yaml' },\n    output: {\n      mode: 'split',                 // or 'tags-split'\n      target: './endpoints/users.ts',\n      schemas: './models',\n      workspace: path.resolve(__dirname, 'gen'),\n      mock: true,\n      client: 'fetch',\n    },\n    hooks: {\n      // runs after orval has written the generated MSW files\n      afterAllFilesWrite: () => generateMockYardRegistry({ cwd: __dirname }),\n    },\n  },\n})\n```\n\nNow `orval` on its own regenerates both the mocks and the Mock Yard registry. Using the **function** form\nof the hook (rather than a shell command) means orval calls it directly and doesn't append the generated\nfile paths as CLI arguments.\n\n> **Multi-spec setups:** `afterAllFilesWrite` is defined per project and fires after *that* project's\n> files are written. If you generate several specs, attach the hook to your **last** project (so every\n> workspace exists before the scan) or use the standalone script below.\n\n### Alternative: a standalone script\n\nPrefer to keep codegen out of the orval config? Run it immediately after orval instead:\n\n```ts\n// scripts/gen-registry.ts\nimport { generateMockYardRegistry } from '@hot-teapot/mock-yard'\n\nawait generateMockYardRegistry({ cwd: process.cwd() })\n```\n\n```jsonc\n// package.json\n{\n  \"scripts\": {\n    // run orval, then build the Mock Yard registry\n    \"mock:generate\": \"orval && tsx scripts/gen-registry.ts\"\n  }\n}\n```\n\n> Whichever approach you pick, `generateMockYardRegistry()` imports your orval config — so run it under a\n> TypeScript-aware runtime (`tsx`, `bun`, etc.) when that config is written in TypeScript. A `.js`/`.mjs`\n> config runs under plain Node.\n\nThe generated file looks like this:\n\n```ts\n/**\n * Auto-generated by mock-yard generateMockYardRegistry.\n * Do not edit manually.\n */\nimport type { MockYardRegistry } from '@hot-teapot/mock-yard'\nimport { getUsersResponseMock, getUserResponseMock } from './gen/endpoints/users.msw'\n\nexport const registry: MockYardRegistry = [ /* workspaces → tags → handlers */ ]\n\nexport const resolvers: Record<string, (...args: any[]) => unknown> = {\n  getUsersResponseMock,\n  getUserResponseMock,\n}\n```\n\nMultiple orval projects (multi-spec setups) are supported — each becomes its own **workspace** in the\npanel.\n\n## API reference\n\n### `<MockYard />`\n\n| Prop        | Type                 | Default    | Description                                                        |\n| ----------- | -------------------- | ---------- | ------------------------------------------------------------------ |\n| `registry`  | `MockYardRegistry`   | —          | The generated registry (workspaces → tags → endpoints). Required.  |\n| `resolvers` | `MockYardResolvers`  | `{}`       | The generated map of orval `*ResponseMock` functions.              |\n| `theme`     | `'light' \\| 'dark' \\| 'system'` | `'system'` | Panel theme. `system` follows the `.dark` class / OS preference. |\n| `isOpen`    | `boolean`            | `false`    | Whether the panel starts open.                                     |\n\n### Exports\n\n```ts\nimport {\n  MockYard,                    // the panel component\n  mockYardStore,               // the underlying zustand (vanilla) store\n  generateMockYardRegistry,    // codegen helper (Node/bun)\n} from '@hot-teapot/mock-yard'\n\nimport '@hot-teapot/mock-yard/styles' // panel CSS (import once)\n\nimport type {\n  MockYardRegistry, HandlerEntry, TagEntry, WorkspaceEntry,\n  HandlerState, Scenario, DebugState,\n  MockYardResolvers, ThemeMode,\n} from '@hot-teapot/mock-yard'\n```\n\n### Registry shape\n\n```ts\ntype MockYardRegistry = WorkspaceEntry[]\n\ninterface WorkspaceEntry { workspace: string; tags: TagEntry[] }\ninterface TagEntry       { tag: string; handlers: HandlerEntry[]; importPath: string }\ninterface HandlerEntry {\n  id: string               // `${workspace}/${tag}/${METHOD}:${urlPattern}`\n  method: string\n  urlPattern: string\n  handlerName: string\n  responseMockName: string\n  isArray: boolean\n}\n```\n\n## The panel, feature by feature\n\n- **Intercept switch** — the master kill switch. On means MSW is intercepting; off fully stops **and\n  unregisters** the service worker, so the browser goes back to hitting your real network.\n- **All On / All Off / Reset** — bulk-toggle every handler, or clear all per-endpoint state.\n- **Search** — fuzzy filter across method and URL.\n- **Workspace → tag → endpoint tree** — a group checkbox on a tag toggles all of its endpoints (with an\n  indeterminate state when only some are on).\n- **Per-endpoint controls** — scenario, delay, status code, and a custom JSON body. An orange dot marks\n  handlers that have overrides; the ↺ button resets a field to its global default.\n- **Settings** — edit the **Faker seed** and the **global defaults** (delay / status / body) for each\n  scenario, and configure **debug logging**.\n- **Debug logging** — streams request activity to the browser console: toggle incoming, handled, and\n  unhandled requests, plus a verbose mode that adds headers, bodies, scenario, delay, and status.\n\n## Response scenarios\n\n<p align=\"center\">\n  <img src=\"assets/scenarios.svg\" alt=\"The four Mock Yard response scenarios\" width=\"100%\">\n</p>\n\n| Scenario  | Status                                   | Body                                                            |\n| --------- | ---------------------------------------- | --------------------------------------------------------------- |\n| `success` | global default (`200`)                   | orval + Faker `*ResponseMock()` (or `[]` / `{}` if none)        |\n| `empty`   | global default (`200`)                   | `[]` for array endpoints, otherwise `null`                      |\n| `error`   | chosen code (`400/401/403/404/500`)      | `{ \"err\": \"Mocked error\" }`                                     |\n| `custom`  | global default (`200`)                   | your live-validated JSON body                                   |\n\nA non-empty **custom JSON** body overrides the response for any scenario (and always for `custom`),\nwhich is handy for reproducing a specific payload on a single endpoint.\n\n## Driving the store programmatically\n\n`mockYardStore` is a plain [zustand vanilla store](https://zustand.docs.pmnd.rs/), so you can read and\ndrive Mock Yard from tests or setup code without the UI:\n\n```ts\nimport { mockYardStore } from '@hot-teapot/mock-yard'\n\nconst id = 'users/users/GET:/users'\n\n// force an endpoint into a slow 500 for a test\nmockYardStore.getState().setHandler(id, { enabled: true, scenario: 'error', statusCode: 500, delay: 800 })\n\n// deterministic data\nmockYardStore.getState().setFakerSeed('my-seed')\n\n// bulk helpers\nmockYardStore.getState().enableAll()\nmockYardStore.getState().reset()\n```\n\nHandler `id`s follow the pattern `` `${workspace}/${tag}/${METHOD}:${urlPattern}` `` — the same `id`\nfound on each `HandlerEntry` in the registry.\n\n## Theming\n\nImport the stylesheet once, anywhere in your app:\n\n```ts\nimport '@hot-teapot/mock-yard/styles'\n```\n\nThe panel's Tailwind classes are namespaced (`yard:`) and scoped under a `mock-yard-root` container, so\nthey won't collide with your app's styles. Control the theme with the `theme` prop\n(`'light' | 'dark' | 'system'`); `system` follows a `.dark` class on `<html>` or the OS\n`prefers-color-scheme`.\n\n## Troubleshooting\n\n- **Nothing gets mocked.** Endpoints start disabled — enable at least one (or **All On**), and make sure\n  the **Intercept** switch is on.\n- **`Failed to register a ServiceWorker`.** Run `npx msw init public/ --save` and confirm\n  `mockServiceWorker.js` is served from your public directory.\n- **Real requests still hit the network.** By design — unhandled requests are bypassed\n  (`onUnhandledRequest: 'bypass'`). Only enabled endpoints are intercepted.\n- **The registry is empty.** `generateMockYardRegistry()` only picks up orval projects with `mock`\n  enabled and `mode: 'split'` or `'tags-split'`.\n- **Ship it to dev only.** Mock Yard is a development tool — gate it behind `import.meta.env.DEV` (or your\n  framework's equivalent) so it never reaches production.\n\n## Contributing\n\n```bash\nbun install          # or npm install\nbun run dev          # launch the local playground (dev/) with sample fixtures\nbun run test         # watch-mode unit + e2e tests\nbun run test:once    # single run\nbun run check:typescript\n```\n\nThe `dev/` playground mounts the panel against several orval fixtures (`basic-split`, `basic-tags-split`,\n`complex-schemas`, `array-responses`, `multi-spec`) so you can exercise every code path.\n\n## License\n\n[MIT](./LICENSE) © hot-teapot\n","readmeFilename":"README.md"}