{"_id":"zod-fixture","_rev":"46-ff551f978c5ffa5320e90d2eebb560d4","name":"zod-fixture","dist-tags":{"latest":"2.5.2","beta":"2.0.0-beta.16"},"versions":{"1.0.0":{"name":"zod-fixture","version":"1.0.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.30.7","@typescript-eslint/parser":"^5.30.7","c8":"^7.12.0","eslint":"^8.20.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","prettier":"^2.7.1","typescript":"^4.7.4","vite":"^3.0.4","vite-plugin-dts":"^1.4.1","vitest":"^0.18.0","zod":"^3.17.10"},"gitHead":"af37f9907422e56bf9bb08dc0684ac7be40f11cc","_id":"zod-fixture@1.0.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Ci4VeMEy2fUnb1W5bcT01BxCP9Dx7CBh818ylfIy11Kwapb2npeofBAl3qsuJp3/I277e736bSg+DC62EjK1bg==","shasum":"36c4ea8d747b5fa85563dc1ecc4d1a607ea5e128","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.0.0.tgz","fileCount":29,"unpackedSize":30575,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6l8d8hIsp6RGgBFi9eGb6qiQFPITAXnkuU0PIt3inlgIgASZSjoD3CbVi07gPcpFCkiC4J6vnoNT9kzBrWru4Fzw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7q9vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQ7BAAinifNEEHkmmRmU9dSN86vfD5S98lDf0Hv31axnox+4UPxN/m\r\naZj8Cnka3V4bcglROmEkscCOGIbgm0gIr9rD+rWB32Ih1GmIz1vyqg1KC7Hl\r\nZ7K03D98JGN3rUJNIPeJw3rKLthM0PT/WDeJJ3+DCaoYtE4EJFk4NTfluheO\r\nyJu+XdufniHZhAS04U6JAiPMx3UyzYZUDIpqHWbpQEBJ540yHXcisPS0WgBV\r\ntArQeVxJO7JprOOsDShfWxDiXYrrSaLgMOdiZa8v8Yf3xycFmYtxwy5MqFIg\r\nwee+MWEzOxJxBdtugcH0s/m8zRkjvr9F/oXUrE0PV5hCp8mbG8RaWXkcL9Pc\r\nt84UktzJx8yXzmb7sD5/lu3pyHKD+HdMvWF0doCKcEYjGkI6a6pLoQcR7UrI\r\nw8CUSJpJOkghSE7r1e+VFmLBm+f5Bm+Pb/c0MLSdb9IBXQANMOfntEi96Nfd\r\n8ZGAoQqC0WiTYNe+6mP2OAULq7/c3knG/YRJT0C5vs/HdpSge2ZDeO9P6jnI\r\nPatJRwXlj22wbacj4vWE8o0kcGPeIpqXLM3TxELXYe+Ge/3DpToqEtxYokmH\r\n8UNlbUNo9WYIfuQKX4uvTSAPYsFkpslwckbWgvGPZqXSY22/l76/n9BoSeb/\r\nsxUMiMM7Fs32AFwnpnpY5ng24I4P7g8sfpQ=\r\n=r8Q/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.0.0_1659809646974_0.9689685215245272"},"_hasShrinkwrap":false},"1.0.1":{"name":"zod-fixture","version":"1.0.1","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.30.7","@typescript-eslint/parser":"^5.30.7","c8":"^7.12.0","eslint":"^8.20.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","prettier":"^2.7.1","typescript":"^4.7.4","vite":"^3.0.4","vite-plugin-dts":"^1.4.1","vitest":"^0.18.0","zod":"^3.17.10"},"gitHead":"80d60351483dc26b9fb52e94ee2fe749c00fd7d6","_id":"zod-fixture@1.0.1","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-mY+iusKzY851ocwXyOiDlhoK1Lgs8hZdOLR+oPCmoUJdIzNDjIZNOet2na6nSDBII66eK2kyBJH2Amum3YeywQ==","shasum":"e38b393e97b02ec94c37933e1a8bad469f846ba9","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.0.1.tgz","fileCount":29,"unpackedSize":31118,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXyXX00Th269ZmvH3L5gyf5JJrGketzBpQkWWundNS5QIhAMwzqJ9An6rbXSFGJi7fc9RnylT/3fWy3FOmrQw8S1A4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjOHwyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrM+xAAnEmEehVFId9IT5Gi5jLv8b65S+qIrtKzvGMRtV10noQWVKJq\r\n3+EeQcBco6OY/itiMzrhP6alyOf9FeluoJhflVOxlr0UMh+f9LSqvGrcBaFM\r\n3rw9FndWKio1UfgZxMGeyty/uh9rT3M/J0tx8Bl0X0EbUKwQU7iU8PghP8UH\r\nwOgBmFtYc5246pB1SZQHUqPi4SHmvrpvuqDw3nvMlpN85Slz5TlMaDw0Erjm\r\nhk4cBTR+R4HlY0dZslkih5aiXAxQrE+F+de8tus2+XmSdBFM8UKG9DMwCGr6\r\niDAB2WDsKpbI9QK5YcYbisNs8UGY5Dbg7CNRCVo0+V1iVhH+d2Hd7j5hc6wu\r\np2NWsfohD2xG93jVJkCMVehpvORGb/Z0j4eEdFNnPrhwFYg8fzp86/HAfzA6\r\n33pEDt0cqM0PzDP8THCDoawPcA6zWCnPRhVlNuNZEgH3nBZSiFE4dFqgFJFJ\r\nVSh4TiQdwOa1dspcvTO442oPasP/6OJVf4LK94gW+33WCtPfdpwwjnmYdYHx\r\nmsF9Igxl4wVdp6UxqlhIVMJthwL+c154N7HFn1kNToTxp8tryyJL5Ai59TYc\r\n5CidEM0wtOu/l0CNdOXWtHkwJTUoONDllQv06x2TwzHdktcaLuByDUGbN7Js\r\np8O/4Yaob5fr1NufFKGJm/pgbmv12UZYk4w=\r\n=1Qe8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.0.1_1664646194663_0.06415460629851011"},"_hasShrinkwrap":false},"1.0.2":{"name":"zod-fixture","version":"1.0.2","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.30.7","@typescript-eslint/parser":"^5.30.7","c8":"^7.12.0","eslint":"^8.20.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","prettier":"^2.7.1","typescript":"^4.7.4","vite":"^3.0.4","vite-plugin-dts":"^1.4.1","vitest":"^0.18.0","zod":"^3.17.10"},"gitHead":"a17588c2d8e8b6dee7cd89338b270e181aac08bd","_id":"zod-fixture@1.0.2","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-/ZaFv0jXXg2ghgyAaKAKwME8seizCUA1Oj6RRfZSba7870xXob15WrJRVq3ORSGf+1hUYmCIEWXFaJNzyKObtA==","shasum":"0a0d10d4bdcce3f594f961e51becbaeb6f2ba525","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.0.2.tgz","fileCount":29,"unpackedSize":31222,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLZ3txwpykQXvdkDRjJULeaCx1KHsUPeJko+zCFkCz1AIhAPHXeAlU9XHeKQXQovK4AQlFUxBslngn5KSecOK81Sm3"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV98zACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqpqg/+MgTqz0BSctuRK5uLd5Yc14bw2Jm7Mu4eHMtbpQLRaFI8vZTe\r\nuGWlFzoaNUAAPfmmjTZtWsNMANTJx0QjcXVMhiZYZGUcl+J29v7URIv4XOOZ\r\n9TI2Wx7Jpt54o7aTwohNWUPH4TVAKzERZG0v6OCJ92za+6oP0+K1tJy4baiR\r\n6GRGlGGDNHqSNiQNEi3QM8IBIeALNeMLaFJMz4aNlHoepbbEr9BvFx+znkVr\r\n8cCJpFJ8N9M70GJ4VE0hQ8JnnGcp2/QXJFd73i6EUZy7WywsWp4/QL5QzVN8\r\n6VxUEuyvHxWAHIh/hdgM3MgwFJEvjk2xq1WzfCW4cumeeSe/3NCz0CeO1HFu\r\nCRbELZIOesJszPvctPG5WWq8JWCvXh0Q3Q8hEPPO+rNxq9ycuv1OTzRZKIyL\r\nz7gxPK07eXfmVe6ymZI7NiaIRyuv61CQEoG/NPHix/MQZfyurVWEV25r8u5O\r\nIESgUIGSIJL8EBvfIQ+4pJl0uC4ZYb5SdLTFeKzAuV5m19v67+sk1zWJXG5w\r\n6LJj9thHNf1jYL/gO8FtZPu/cUAb/lU/t/+YKHiOJYj4i5RA0xcqJA+dug8x\r\ntyG8zB//vLsU520VbU7jBpILRU5eYppW/DC/7Tpkg4t/6ht0DcWD/d7B5Ou3\r\nOPGtozujwRUxOHYYsuqgXnO1BfXu5Ws30F0=\r\n=Sls6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.0.2_1666703155194_0.09952712552989418"},"_hasShrinkwrap":false},"1.1.0":{"name":"zod-fixture","version":"1.1.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"gitHead":"54fb901571fbf627419eb41c6d6708babfa769e0","_id":"zod-fixture@1.1.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-+LdVqOW7GVJOC4YOPwoEjyjvgPqbJ5CHEISQuccCzLz+Xi3Dz0RVS/q977dt0A5h5Sc2BUYIhgp2WvcXrXsFyg==","shasum":"e3313a56006b4b26b7294f6c97e53b53cde3e838","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.1.0.tgz","fileCount":29,"unpackedSize":31416,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBszIGBKe4OPwCSDBIko83i7rQPyUo07kd2BgcO5jJVOAiEAlE5HXq1nWN3kOtKol6ec115CMt3RvOajU6j3pT3fYrY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTOrGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqkNA//XHnG/2okRqemaH0rlv9ZdW5qCIlmeFXXDgJ4ykvdvF5qDKrC\r\nEVXm77bexScI7Qp6QaRdkILdcOcheXoFPidPEe/+asO6oX47U9yXiVypaaw6\r\nr0uC62H2reIxPmyhKSIEpy+gzyOR2fmX3DF8S4KrLk4AEOmncg6RU3JxQ5w3\r\nLOZa9q5ur0sIUxjc1qTiH6tZiqC+7kNnFuHZPgpUmwO/6NdxOi/zlZ+yZbRc\r\n2nPEqrpnp7fyy+qDmQkasQx+aZR7uAGqil7QOoYUlsfjyOCgMwzc1uyWBooe\r\n//ZeFoaFLDtO7pXMFIZ6MosKbs82hMMTNbGyLOjxwMwf2clUV5urbsWtQhEx\r\nYn+u+FO7c9sqcTby2DP/RfjszRiuKsuP1yd7ZAlvhAa4e2MJYd/aQG1bnF9w\r\n0NOL1N9yoScrQT9gBly5NZ3H93Zn1rE8SPG4joi0wkyF7eafDbMrkrCMIjkW\r\n6xEjgPb3tFW6trZXILw8IundAmDIkGrTk9G7EsUIoN11ePzX+JoBWClPtovb\r\nCirP1tUH6WRkx0CrY6esJm/70NHqAKcIYA2A9mm1hFijzolucfcRpIiYTtTb\r\nDkydru2EjYcDHmLUoC6EkbyqqF06BZknKNOBu6JhSzboJg4rpIr1p5wtIGKj\r\nnSiIGTk4wyz9jpwj8m9iSwo5P/3STED+tUA=\r\n=kmtE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.1.0_1682762438299_0.8744011945734351"},"_hasShrinkwrap":false},"1.2.0":{"name":"zod-fixture","version":"1.2.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"gitHead":"dfeb69cb3521907bb0eb0e87b387ae4ae7c9082c","_id":"zod-fixture@1.2.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-s0o9ngyU6orMcV/C/ng/ntNy6G00lNRsv38CIOjxPNzTVZxwPF0JJZ/vly7Tg8+Z5GPVzLNU2NIUTP33XX2p7w==","shasum":"3cb20c5dec4d16779b573c0312a2e1a2da337d66","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.2.0.tgz","fileCount":29,"unpackedSize":31207,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLhIwtkXrgu1qLBIlY5IIzW3WtJjKf9hZyH0QJtLb++AIhAPsjr5hyjQ8lvkRJ1V0NhSjyABkTf9cadU94KBrJK1KI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTPUHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNhRAAjEbhz2A30ATJfbZl5lx3fr3XAv/p4P/el/BYKMrYGrDCw+pS\r\nAX2lMd2ySKQOiaCHSrk+lo+ERQAVqZMk8gSZz670K6fYJ+9yKNGPvzn0evgW\r\nOWJ7SfcogH0jt8LgrLTUve0iy0Hxm/P2Bu82JwCmPCDlqS2TRu1YLZQaZGlo\r\n5QRpE3th7X1kdF1MT+6a1+vTfsaLR7iFukSMAy1Vv89ggwpENVpeL4dEo1T9\r\nkraigZs/Ps/8l22ujow6SWSeqOMnuwCoF7hwcYpb3VoABpWIijB1AMEXI7kF\r\nHt3dc07jkNb/2rXWeoWhmVeHr2vlMqBCdtVeKT7z5jnQ+wj8AjB9mMDhEorK\r\neze9jSLpsInBChGBc1zx2Q39zVsT8+RIohuvLy+gDsczmytwJ7qBYHqRtXkL\r\nIg9kquPvWzlOQHvSxWjIDYRDvYATjGgTy5Tq7zV8AE4ENQSUHalIFudaMHd0\r\ntsL56F+XzJ1yopJVtfTPbf0PduyvO7MOwfJUpAxAaC3KzIIZ76XfnYx48oWo\r\nh6jPKO7j06Qd5ZLLtJNwt8MnrOKAlpqwoyspgqNQpBkdAW9mDmFhwpwOOYP/\r\nICM5hQAHc0PSFXPAWcklbyrpK2B4mGjxLMVV9vLzJ02jVbA69A+rCR1SY/0y\r\n2M02kd8/575Gx3QJH50vZeGW4eYNVlrLRe8=\r\n=uY6S\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.2.0_1682765063180_0.23728654996999965"},"_hasShrinkwrap":false},"1.3.0":{"name":"zod-fixture","version":"1.3.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"2a915dbb3860406a3549b3a173b65fcc87f89763","_id":"zod-fixture@1.3.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-2DjUZDM2t24S6UMiMBBrDvu2fmLZmw8N33teeeTeSY8CW0bkss580I7t8dAR97nJD+OoduyN+EnWQtbWIGrYOg==","shasum":"bc176e07e13074964db7452bb8849aaee5838154","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.3.0.tgz","fileCount":29,"unpackedSize":58979,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYnhPc1TeShzRzAniUYXPRogSxekEPejbidMXbwXCLGQIhAM8ZMbSQ24KRpAbxAmlrx7gFy3Kiqx/pwv7XHHV+jdyN"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkT7e1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmobew//UIBClSGoSvAqF9iHA988Ru/9tqdvdgBc13XePe4T0GEsr7Mf\r\nscGsc1d3j0Dlq3043RsevT6ridD3lz/U3gUmB7rDGxX+1l90hWv7mBeCYEDm\r\n/EjLrGVYNrQ/5Fl6MlACLmv7+4v5OgRKksVtjE/EVS1un/Qph902T4PjC1I2\r\n/91x4DG4Ob6I4okTsOOGnAoqDuoLPkG19ZM4GwbOoV1fGiUqGhuJ7/IpgOO6\r\n90YXVEBWamoqtnjW4OTNlIu/ORZ/C6LkmKWvQeeiEXJhgERwDyVQpfoaiRgo\r\nEgcV67Phm5L9RGQEQL+Ofth7Tn77cwqZVJnIG74Bg65KwqpBwvFWOdyFxYr0\r\ntLtbMB4LikjNanKp6DNVEr+r9K9YzhYY2fSi8w+cy5ZLYSiNPeKuTqeBhV/O\r\ni9CKxDk9D8rt65ijrkZ5l6dslcbFDA84J2VgMkMnOnbMAR8jt7h69USOZ598\r\nqYwm8XKc231AQw7wDgLEIbSGgz33y9zPd6rH5XHverZpUbkbMMS9h6y+99Zq\r\nMKyKNyR5QvUP/C88fbEYSC5OprIMYQMYY5fJUEye6G84pFftYgGaleG86pLf\r\nqtKCnJdR/SymTYS29yaB5RFMuhLj34MsNWiaybzT+MwjwoeYBqwVr6+z0od7\r\nj1iY91n4w0fSgaUGDbj3AedNgmoOn2ObNQM=\r\n=uvH+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.3.0_1682945973266_0.08216871409556847"},"_hasShrinkwrap":false},"1.4.0":{"name":"zod-fixture","version":"1.4.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"586a57b181c87662f7cc640ba0fb0ef89d7c0162","_id":"zod-fixture@1.4.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-6qY37wHiMR+RgJ5b8FFkLqJUeYuEKKeg2WYCOYzGUmetbenHVBPkKC7CmwphfP8Ge2yZblTEELDs0Su1mQHc1w==","shasum":"56a58ef85ce2be486fa9758cf24280aad96bf7ea","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.4.0.tgz","fileCount":29,"unpackedSize":59196,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID0zGNRn3xPhLYJN9lDBJjjvdmFUVJQCjQf8oiKFmV7/AiBHy2W9r1yLO844p6D42xO+PoRkx8Q54HBxZv6CZbnO9A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkT7lYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKTQ//UklQLAyd//ql4HqO+/7vCVUy/DNIAkGlnjEv9gj5x1m8rsL3\r\nLNFiAI/3ZDWIDG7zfsnXhD+p2xtUKAOYk559Nb51EVcTMLFjcz7mla8RuR5T\r\nD9zB4DUbDrYC9Boh3n3FHrElgvKFX43V2wMcFNauRaTNa5wlci6xKwyUtMGY\r\nl85eM/+egbz1PZpgJkYQvOtnil7NnOsYxDswAGYHXoZ3x0Us4OxmXBh3nk/7\r\n40RqOxIHVX+WHEUihWAOdV2Wn5fK321WTNgmRVe+rQz9ZgBxQJPCTb5ER0nd\r\nJzuba9k3GDULEZtrE1aSTCkEXIRKQygMCDsaFUhdXc4GLr9sXHG58Cbw1hPs\r\n/+rkocBhLZO9hYNLqW22ErG9+sOrdHDpH1Co4VLeUJoMkMtkaLnx85o7dEfi\r\nD+rgun+Dj4RKN2QayXwomKmd1PEBKZJ1nTJOJvwdl1dIlVHCuCePTzVcvXRy\r\ns6woff92KidOZSunVqN7p/8tLZSW+lxWmf2VSDZR3QFXkk6hFvU0Nt2ZSnU5\r\nqsaJHRc2h+lJOaE6Af2AfwAJSE2UlZKQ2YMwiXAkXjXL5a6Wf9VfXhzAc3KT\r\ntGrSIVMnd3CuerwO+mMfF25pnhbS3jbWqXx1TZExF79YlSwT2o54Qp4v8rlO\r\nWl8uThXqx+IAYm7bsOkjzQGY0QYv5dDHe00=\r\n=7GKy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.4.0_1682946392430_0.8644106503852602"},"_hasShrinkwrap":false},"1.5.0":{"name":"zod-fixture","version":"1.5.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"68d7f1b588534cd3d9fdc6eb1bd8b7c6c49d5ed5","_id":"zod-fixture@1.5.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-iHC3k3jpXkt9R6VsEaVrKBlzpv78iWmK0xvPfr/Z/xp/21glzTNfMGvkSJ3eM3hPn1WDaLpnZoQ2PkSYYCP4Mw==","shasum":"391f5089208de0c0071871de9c0b8cc324cf7158","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.5.0.tgz","fileCount":29,"unpackedSize":59288,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkMbUIBbRtRnbwPTMN2mcQ7r4PGLdQzV0gbThD2A/OdAiB2IEOx9DvLHM05e8atEkloYqJGG1QoDKfKPcgc9IU6YQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkT7skACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCew/8CdIobB7GXUZgg24tm8hs36DibFaI+DSPL7+oY932CuCvp4jx\r\nWR7/e88hvB2Oe/YhaHOArsb2TFUv3jRm7SJQBxnklnoS3JbHmzYQVl3L2dug\r\n7xJMc5k4gQH190U6Tc+t5AAQCuYvyNmiLzNMlb3DmG7x2attDd5Bxtjls1Fh\r\n9+KG5bcuFUeHAHiZSijFEI2ko1I4+TI6jdASeWI7tUKkkUFsAlOkFvPkdtVq\r\nA2Z3gdWZR5bIFAYy36xbvMgHTb+gkvu5Wlui1kyJoLgcy6CBv1G8aqYk/PKv\r\nREyoaYD4BNocY5TjnDL5WNlNnTeXT4r92WeAJEPk+qAHJWctju8v/2ORu3v5\r\nJxDUSvWVBAZCp+oFexkmLF/rWEbUKG/RTn7S8OJoAMETLdkUTBzqp5s6/tGn\r\nfrs8tkdwKYDiZ7C1Y41gCNcucNjKEkbca6/YxE69LHg5r/MuwjOvrA2OFfCm\r\nOwAQgDCG08AQiNvYX95ETvk8eAKQQwaR6CI8TkwpHTC4QcDib/sdVZIcoDco\r\nsR/sBZLF5NMh8kLLQwcXfRP3Ta+moxNp7/8VkAiuSkLmemXwuaURWA/jyVrV\r\nqtVwhBobbZ5mDVX4BOM5Q8ymprQJ662Ymo0TIEQJ1BxCUmRngvqMx8zOCfPk\r\n05ZS8JGML0n/yddjgn4mr2NWPeZfzh/+7Fs=\r\n=nqeD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.5.0_1682946852193_0.17846264177828175"},"_hasShrinkwrap":false},"1.6.0":{"name":"zod-fixture","version":"1.6.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"21789466cf980f89c39468a873360769e8460360","_id":"zod-fixture@1.6.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-cqa4xMikWdeyIBmvEvLn5Hu0WbSx2MgRVl+0MRLhvz7UNOt/dJzg+eEuGfuwH9c33ZtD+0Uqqq1l8SNjKJyCIA==","shasum":"df10aafa75213cacc5e057f1e73317bf90374541","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.6.0.tgz","fileCount":30,"unpackedSize":60380,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaqigpvGr/NqEOd7y9ldm0TCrvFbHRxDV1iQ84YGrYAQIhAKq957EXLvNDf298y4zndwxIj3kfav9Z/QFCt4ypPf42"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkT+eEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPyw/+Oekb1JIUmLB/wadVMKYhske0Xq0WxU15xOgpEOt5OwSPrl/M\r\njgd8XaAdcPakcyKe25BaRVrM25MhnKWKwA+NE2ZKjEOeJC1Ex64KcMOkq4I8\r\nMWP2ohw0sNSRHq8QLAUaNczZMd70xZD1cJayRVLtKpv6+c8B1G0qaNNMGQdV\r\nWdvcWudV6yLAOh8AFZS2s4VKppeWrkptDymUD5E/bmZB56XDWfgjwL+1lal9\r\nVyLSxBzUcEVdA7FBgwJiUVfPQafET7S7rbXeFSlCGh4m7JXO48Ro7Wi0n9zU\r\nLN628SrFrB51F4cwG+ePpjxw0CNaEVVZgxAA3m5M/UjBtmWRASZu2w4wK2hD\r\nSOjPHfc6gdYc7ddWkE4tLWVsoTZVCezTUziecPV7UzIZ5fFIbW6O5mYC2AHf\r\nJ9Mugt3N8fp8uckZz0nvMmo3ifJsPoUGqHSVRbQ2XE9bEXxS8iyzIfkM2yK+\r\nCi9btMPezymMIluoz7AjQLyAiLmzmhHH+4AIPZm7yQ+Q9BNyNGw8H5qbvcgI\r\nmYlT4P6lGQ8o3Lw6BCFdbzt06tzYqQDT4AIEr1PVL2SFCFyhVXkO1T7padKm\r\n15D/ynIZdtKOYA+RBYcFnJOnNyuhRan0IPx1T6OwcUKIh+lTcbq0fAx45xjh\r\nQNOf0/Gm+v0VrT0lBuaHqg0AmY6RBmZAnTU=\r\n=VBc3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.6.0_1682958211997_0.45618888939817115"},"_hasShrinkwrap":false},"1.6.1":{"name":"zod-fixture","version":"1.6.1","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.js","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.js"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"27a0c15290fd63f221c2ce32add1fc63384cc405","_id":"zod-fixture@1.6.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-RD37Np/TRgKESnD4RxmwdFx9MjHeh6TOecMb5JBoEw1MbZqVDDCBksN/dTrCMqBz63mclgk2ArWWV/CMp8vqPg==","shasum":"984b33d86bcc895c4171a0f193f57aa169b6ae22","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.6.1.tgz","fileCount":30,"unpackedSize":33184,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICEBeNVzjNYsHv+6EnVNWjPuwWMgcBZlSCnDKxJtpYV5AiEAy3HgmgMFwsRtvRlDy291WlVJMA5Ov+6SE1PfSOqC9lE="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.6.1_1683042202160_0.3427450861368859"},"_hasShrinkwrap":false},"1.7.0":{"name":"zod-fixture","version":"1.7.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"f22fe0f2fdc88469b81ac21c7715a8363223e2fd","_id":"zod-fixture@1.7.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-3StTkzDZtKDeXGKNGXdOVcAiXQHpOCUsVMSl958BhZAenS6+3UWWsgcKnKmr5ipqcsNLrblZC8EAvMutwLWfgg==","shasum":"a0afb10455b992fcc879a8f44f72ef5b3ccd10b4","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.7.0.tgz","fileCount":30,"unpackedSize":33996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC9IiLgB3OClKYORs+8mFSXwhnwm/Swet1kr0S8gOH6xAiEA4E+yT1g/btoOPXaBqsT5KGIrjqhCqNyoBt/8tO7dj2M="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.7.0_1683913085747_0.43565227535539464"},"_hasShrinkwrap":false},"1.8.0":{"name":"zod-fixture","version":"1.8.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"008c7d19e43ad22e2f74ad5ade934e7c9ea2046b","_id":"zod-fixture@1.8.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-PHNINMwHD0XYXTb+OMkbfOUG7TizBdpFNJxxLvSG+F/hK2QzVPnNiD3zDRTXvHxLgjKiwQkNjcrcvBitjySl3w==","shasum":"89f8067ec07bff7d68846f256dece38aa2bc98e9","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.8.0.tgz","fileCount":31,"unpackedSize":35303,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMgmfxu7elP/0OgVk+zHU3Cc18YX+V5Oxp9qp1BfJkkQIgZRErnGMysiznjgKHb/8zSgz3BhEXSR4nZ6rMjfIwhhc="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.8.0_1685515504109_0.5545441558583308"},"_hasShrinkwrap":false},"1.9.0":{"name":"zod-fixture","version":"1.9.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"d025acf6e2fd9dbb45dfe29ebb8a6b9ba792e75f","_id":"zod-fixture@1.9.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-TrzPeFNpnVTzDwo1G/b+3bJ3+ukoeCnefTdPnk27VUxzQeNz7G0F1GjY2FS4y4bthd5Ter9HfvraTBMgWG6YYg==","shasum":"eb588bb05b0540e29579391ad80490a9e9bd75bb","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.9.0.tgz","fileCount":31,"unpackedSize":35891,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbCaP3gbM3Yd4kGGQxmekdXsYIWZtuzFIZ1UlD9IHjfgIhAMM/XKvKljHrZShxdkZA/LMBK7THpOfRhrgeD1qM1cqi"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.9.0_1686588183627_0.6195942122160838"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"zod-fixture","version":"2.0.0-beta.1","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite","test":"vitest --ui","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","dependencies":{"@paralleldrive/cuid2":"^2.2.0","zod":"^3.21.4"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitest":"^0.31.0"},"imports":{"@/*":"./src/*"},"readme":"# zod-fixture\n\nCreating test fixtures should be easy.\n`zod-fixture` helps with the arrange phase of your tests by creating test fixtures based on a [zod](https://github.com/colinhacks/zod) schema.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Example\n\nPass a zod schema to the `generate` method.\n\n```ts\nimport { z } from 'zod';\nimport { generate } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema);\n```\n\nGives you the following value for `person`:\n\n```json\n{\n\t\"name\": \"name-b1d5c46c-ec89-4fd5-abdf-b263ae808b84\",\n\t\"birthday\": \"2021-01-11T23:58:00.091Z\",\n\t\"address\": {\n\t\t\"street\": \"street-a088e991-896e-458c-bbbd-7045cd880879\",\n\t\t\"city\": \"city-0a3d2843-5b32-48f0-99e4-bdda3c6ed531\",\n\t\t\"state\": \"state-b5f857d4-ccad-46ad-94da-4524ecc672ae\"\n\t},\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-27bdfe2e-2408-4fbe-b984-c5043211ec70\",\n\t\t\t\"breed\": \"breed-addd4dcb-0fa3-4682-af78-af7a32e03890\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-bf785f1c-e989-4ea7-97ac-9e9a9d629b1f\",\n\t\t\t\"breed\": \"breed-2c177585-7a22-4bef-a50f-a00182bdfdce\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-7ac981b0-4cc8-4236-9d76-642121b9bac3\",\n\t\t\t\"breed\": \"breed-0e156d71-5d81-4ffd-ad51-87a2c6baeea0\"\n\t\t}\n\t],\n\t\"totalVisits\": 372\n}\n```\n\n## Generators\n\nTo change it's behavior you can create your own generators.\n\n```ts\nimport { z, ZodObject } from 'zod';\nimport { generate, Generator } from 'zod-fixture';\n\nconst AddressGenerator = Generator({\n\tschema: ZodObject,\n\tmatches: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema, {\n\textend: [AddressGenerator],\n});\n```\n\nGives us the following person:\n\n```json\n{\n\t\"name\": \"name-e5d36b60-2404-4cdc-a438-e9fc8bf9b704\",\n\t\"birthday\": \"2022-04-01T07:22:37.187Z\",\n\t\"address\": { \"street\": \"My Street\", \"city\": \"My City\", \"state\": \"My State\" },\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-1cd9b68f-94ab-4881-b5ba-2a996b68d9c3\",\n\t\t\t\"breed\": \"breed-020aae4b-c88f-4f7e-9711-bbe1b5a01c0f\"\n\t\t}\n\t],\n\t\"totalVisits\": 3\n}\n```\n\n## Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"201632fb9780a23793f434f91d9d76fec0ebb5b3","_id":"zod-fixture@2.0.0-beta.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-UUszVqGSFEXG6y8eP2MuCgwRVO+b25GWPyjVTbAg8ZtxYaCDymcfDO7gpKdfUJ7WE6/v66XZO1Nrjancr9ooZg==","shasum":"e78ec9cbcbb7fc359c0b4ad5966cde786f2e5d33","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.1.tgz","fileCount":37,"unpackedSize":173342,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWOlA8lLsTbQmcD0mnsKIuVCs+SoO8hF2miaMlcwSWJAIhAPvSWvpWOXnR0OrY+XW4W8bw+sFHxgNj7JyxP5uRqhXe"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.1_1687400387956_0.646845040808993"},"_hasShrinkwrap":false},"2.0.0-beta.2":{"name":"zod-fixture","version":"2.0.0-beta.2","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite","test":"vitest --ui","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","dependencies":{"@paralleldrive/cuid2":"^2.2.0","zod":"^3.21.4"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitest":"^0.31.0"},"imports":{"@/*":"./src/*"},"readme":"# zod-fixture\n\nCreating test fixtures should be easy.\n`zod-fixture` helps with the arrange phase of your tests by creating test fixtures based on a [zod](https://github.com/colinhacks/zod) schema.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Example\n\nPass a zod schema to the `generate` method.\n\n```ts\nimport { z } from 'zod';\nimport { generate } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema);\n```\n\nGives you the following value for `person`:\n\n```json\n{\n\t\"name\": \"name-b1d5c46c-ec89-4fd5-abdf-b263ae808b84\",\n\t\"birthday\": \"2021-01-11T23:58:00.091Z\",\n\t\"address\": {\n\t\t\"street\": \"street-a088e991-896e-458c-bbbd-7045cd880879\",\n\t\t\"city\": \"city-0a3d2843-5b32-48f0-99e4-bdda3c6ed531\",\n\t\t\"state\": \"state-b5f857d4-ccad-46ad-94da-4524ecc672ae\"\n\t},\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-27bdfe2e-2408-4fbe-b984-c5043211ec70\",\n\t\t\t\"breed\": \"breed-addd4dcb-0fa3-4682-af78-af7a32e03890\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-bf785f1c-e989-4ea7-97ac-9e9a9d629b1f\",\n\t\t\t\"breed\": \"breed-2c177585-7a22-4bef-a50f-a00182bdfdce\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-7ac981b0-4cc8-4236-9d76-642121b9bac3\",\n\t\t\t\"breed\": \"breed-0e156d71-5d81-4ffd-ad51-87a2c6baeea0\"\n\t\t}\n\t],\n\t\"totalVisits\": 372\n}\n```\n\n## Generators\n\nTo change it's behavior you can create your own generators.\n\n```ts\nimport { z, ZodObject } from 'zod';\nimport { generate, Generator } from 'zod-fixture';\n\nconst AddressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema, {\n\textend: [AddressGenerator],\n});\n```\n\nGives us the following person:\n\n```json\n{\n\t\"name\": \"name-e5d36b60-2404-4cdc-a438-e9fc8bf9b704\",\n\t\"birthday\": \"2022-04-01T07:22:37.187Z\",\n\t\"address\": { \"street\": \"My Street\", \"city\": \"My City\", \"state\": \"My State\" },\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-1cd9b68f-94ab-4881-b5ba-2a996b68d9c3\",\n\t\t\t\"breed\": \"breed-020aae4b-c88f-4f7e-9711-bbe1b5a01c0f\"\n\t\t}\n\t],\n\t\"totalVisits\": 3\n}\n```\n\n## Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"393c7828515b7759736426b86d466b36f669290a","_id":"zod-fixture@2.0.0-beta.2","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-rWzCPZ9av7pccelwHXlCEVA0kzFjBQBDL6LnoBbkT/fNk/3sz7D/qn0NcjT3/APQQlXzU4nrkg5UmXWQ8tDGeg==","shasum":"1a5815553e80a99903d8e41efeefb36de76bdc86","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.2.tgz","fileCount":39,"unpackedSize":173388,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDOFPW9PgCQKopQJYUqyTl8YuOUmKW/qQIXKuijzg+LwIgBWTRw0/7wIDfXEjDekX61UMTnAzZwr4qId+H5vKsmNk="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.2_1687633030382_0.9823101247567074"},"_hasShrinkwrap":false},"2.0.0-beta.3":{"name":"zod-fixture","version":"2.0.0-beta.3","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite","test":"vitest --ui","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*"},"readme":"# zod-fixture\n\nCreating test fixtures should be easy.\n`zod-fixture` helps with the arrange phase of your tests by creating test fixtures based on a [zod](https://github.com/colinhacks/zod) schema.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Example\n\nPass a zod schema to the `generate` method.\n\n```ts\nimport { z } from 'zod';\nimport { generate } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema);\n```\n\nGives you the following value for `person`:\n\n```json\n{\n\t\"name\": \"name-b1d5c46c-ec89-4fd5-abdf-b263ae808b84\",\n\t\"birthday\": \"2021-01-11T23:58:00.091Z\",\n\t\"address\": {\n\t\t\"street\": \"street-a088e991-896e-458c-bbbd-7045cd880879\",\n\t\t\"city\": \"city-0a3d2843-5b32-48f0-99e4-bdda3c6ed531\",\n\t\t\"state\": \"state-b5f857d4-ccad-46ad-94da-4524ecc672ae\"\n\t},\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-27bdfe2e-2408-4fbe-b984-c5043211ec70\",\n\t\t\t\"breed\": \"breed-addd4dcb-0fa3-4682-af78-af7a32e03890\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-bf785f1c-e989-4ea7-97ac-9e9a9d629b1f\",\n\t\t\t\"breed\": \"breed-2c177585-7a22-4bef-a50f-a00182bdfdce\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-7ac981b0-4cc8-4236-9d76-642121b9bac3\",\n\t\t\t\"breed\": \"breed-0e156d71-5d81-4ffd-ad51-87a2c6baeea0\"\n\t\t}\n\t],\n\t\"totalVisits\": 372\n}\n```\n\n## Generators\n\nTo change it's behavior you can create your own generators.\n\n```ts\nimport { z, ZodObject } from 'zod';\nimport { generate, Generator } from 'zod-fixture';\n\nconst AddressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema, {\n\textend: [AddressGenerator],\n});\n```\n\nGives us the following person:\n\n```json\n{\n\t\"name\": \"name-e5d36b60-2404-4cdc-a438-e9fc8bf9b704\",\n\t\"birthday\": \"2022-04-01T07:22:37.187Z\",\n\t\"address\": { \"street\": \"My Street\", \"city\": \"My City\", \"state\": \"My State\" },\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-1cd9b68f-94ab-4881-b5ba-2a996b68d9c3\",\n\t\t\t\"breed\": \"breed-020aae4b-c88f-4f7e-9711-bbe1b5a01c0f\"\n\t\t}\n\t],\n\t\"totalVisits\": 3\n}\n```\n\n## Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"beb2e669d0fbde02123f81a62529061c6082461f","_id":"zod-fixture@2.0.0-beta.3","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-w5Gq8gIv0cGE7+CpHEsBWE6Q+cgsW7ntxfbdbKZetupXwAQ8s6Ni6B3SimgE6tQYQroCjbTzfg12jSeQU/s96g==","shasum":"aceaabd97462b14321d89196b45490b927aaecec","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.3.tgz","fileCount":39,"unpackedSize":173957,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEHNe9ZZCSRcS53fwoY2ghh7YUsl2hv31Op9ORPivkhyAiEA/2oOYVR3fv6M8WesrvsU0Zc5jlFMUzZy5kuygSWyBBk="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.3_1687847289199_0.7189618931379478"},"_hasShrinkwrap":false},"1.10.0":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"1.10.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"0b8df1c1b9f903d92f2fa01e85c149af53b52a1e","_id":"zod-fixture@1.10.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-VRJ1e6IXm/2zsiOOLXYygHl+96azeEhtjCEPGGskgxe0naesjX5D6j2tWCXpWJjjADR43OJlY3iuJjPilYTOiA==","shasum":"1a57f490c2bb911150a69c8e3bca6abeb167d848","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.10.0.tgz","fileCount":31,"unpackedSize":35964,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCW7V3ECNGAxLXv3rxm5Ev1TsGD9c5QtsGFhkIii4MTXQIgdYkqxfM52OTw1NdmxOOOePj3KItn9aCKadJE+vzZ2/Q="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.10.0_1687886630834_0.45412032749010933"},"_hasShrinkwrap":false},"2.0.0-beta.4":{"name":"zod-fixture","version":"2.0.0-beta.4","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite","test":"vitest --ui","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*"},"readme":"# zod-fixture\n\nCreating test fixtures should be easy.\n`zod-fixture` helps with the arrange phase of your tests by creating test fixtures based on a [zod](https://github.com/colinhacks/zod) schema.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Example\n\nPass a zod schema to the `generate` method.\n\n```ts\nimport { z } from 'zod';\nimport { generate } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema);\n```\n\nGives you the following value for `person`:\n\n```json\n{\n\t\"name\": \"name-b1d5c46c-ec89-4fd5-abdf-b263ae808b84\",\n\t\"birthday\": \"2021-01-11T23:58:00.091Z\",\n\t\"address\": {\n\t\t\"street\": \"street-a088e991-896e-458c-bbbd-7045cd880879\",\n\t\t\"city\": \"city-0a3d2843-5b32-48f0-99e4-bdda3c6ed531\",\n\t\t\"state\": \"state-b5f857d4-ccad-46ad-94da-4524ecc672ae\"\n\t},\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-27bdfe2e-2408-4fbe-b984-c5043211ec70\",\n\t\t\t\"breed\": \"breed-addd4dcb-0fa3-4682-af78-af7a32e03890\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-bf785f1c-e989-4ea7-97ac-9e9a9d629b1f\",\n\t\t\t\"breed\": \"breed-2c177585-7a22-4bef-a50f-a00182bdfdce\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-7ac981b0-4cc8-4236-9d76-642121b9bac3\",\n\t\t\t\"breed\": \"breed-0e156d71-5d81-4ffd-ad51-87a2c6baeea0\"\n\t\t}\n\t],\n\t\"totalVisits\": 372\n}\n```\n\n## Generators\n\nTo change it's behavior you can create your own generators.\n\n```ts\nimport { z, ZodObject } from 'zod';\nimport { generate, Generator } from 'zod-fixture';\n\nconst AddressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema, {\n\textend: [AddressGenerator],\n});\n```\n\nGives us the following person:\n\n```json\n{\n\t\"name\": \"name-e5d36b60-2404-4cdc-a438-e9fc8bf9b704\",\n\t\"birthday\": \"2022-04-01T07:22:37.187Z\",\n\t\"address\": { \"street\": \"My Street\", \"city\": \"My City\", \"state\": \"My State\" },\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-1cd9b68f-94ab-4881-b5ba-2a996b68d9c3\",\n\t\t\t\"breed\": \"breed-020aae4b-c88f-4f7e-9711-bbe1b5a01c0f\"\n\t\t}\n\t],\n\t\"totalVisits\": 3\n}\n```\n\n## Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"bdf8c3f5d8adaba8e91fcdc3128d155764b2be6b","_id":"zod-fixture@2.0.0-beta.4","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-sLcFJnBoL1spMB1hAzqJjgI+kyLDrl4Co/MTjv7sfvM2WyWcfHwdpsS62ljRwjXHgQzWUZSoy1uZR0UWAV/4Tg==","shasum":"a43a6b331e18c759b82d98430e475c2f7fba2c14","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.4.tgz","fileCount":39,"unpackedSize":175627,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7JHNUY2TPxhY7Vak4Z5VMPSudAL1kam/FXgbyx0WndAIhAN8FyraOsg3OnvbRJI7Fgh+b+LDHfc4qNMt8VoBlzSNz"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.4_1687970724256_0.07673552650219562"},"_hasShrinkwrap":false},"2.0.0-beta.5":{"name":"zod-fixture","version":"2.0.0-beta.5","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite","test":"vitest --ui","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*"},"readme":"# zod-fixture\n\nCreating test fixtures should be easy.\n`zod-fixture` helps with the arrange phase of your tests by creating test fixtures based on a [zod](https://github.com/colinhacks/zod) schema.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Example\n\nPass a zod schema to the `generate` method.\n\n```ts\nimport { z } from 'zod';\nimport { generate } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema);\n```\n\nGives you the following value for `person`:\n\n```json\n{\n\t\"name\": \"name-b1d5c46c-ec89-4fd5-abdf-b263ae808b84\",\n\t\"birthday\": \"2021-01-11T23:58:00.091Z\",\n\t\"address\": {\n\t\t\"street\": \"street-a088e991-896e-458c-bbbd-7045cd880879\",\n\t\t\"city\": \"city-0a3d2843-5b32-48f0-99e4-bdda3c6ed531\",\n\t\t\"state\": \"state-b5f857d4-ccad-46ad-94da-4524ecc672ae\"\n\t},\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-27bdfe2e-2408-4fbe-b984-c5043211ec70\",\n\t\t\t\"breed\": \"breed-addd4dcb-0fa3-4682-af78-af7a32e03890\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-bf785f1c-e989-4ea7-97ac-9e9a9d629b1f\",\n\t\t\t\"breed\": \"breed-2c177585-7a22-4bef-a50f-a00182bdfdce\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-7ac981b0-4cc8-4236-9d76-642121b9bac3\",\n\t\t\t\"breed\": \"breed-0e156d71-5d81-4ffd-ad51-87a2c6baeea0\"\n\t\t}\n\t],\n\t\"totalVisits\": 372\n}\n```\n\n## Generators\n\nTo change it's behavior you can create your own generators.\n\n```ts\nimport { z, ZodObject } from 'zod';\nimport { generate, Generator } from 'zod-fixture';\n\nconst AddressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema, {\n\textend: [AddressGenerator],\n});\n```\n\nGives us the following person:\n\n```json\n{\n\t\"name\": \"name-e5d36b60-2404-4cdc-a438-e9fc8bf9b704\",\n\t\"birthday\": \"2022-04-01T07:22:37.187Z\",\n\t\"address\": { \"street\": \"My Street\", \"city\": \"My City\", \"state\": \"My State\" },\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-1cd9b68f-94ab-4881-b5ba-2a996b68d9c3\",\n\t\t\t\"breed\": \"breed-020aae4b-c88f-4f7e-9711-bbe1b5a01c0f\"\n\t\t}\n\t],\n\t\"totalVisits\": 3\n}\n```\n\n## Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"6eb8bdb789173f86121096c840cb7ad66e4bee55","_id":"zod-fixture@2.0.0-beta.5","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-lu1hmlascLE7XR8kxaeZduHVjpjxZhZxmMhVqPMFZJzlcZGJuSSXuO679xTKeCyRhjHxJC1NeCSHnxsiKx2lBQ==","shasum":"4ede080803ed3a08b70f9141cc8f224563243249","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.5.tgz","fileCount":40,"unpackedSize":175231,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID4bfeRUitrero7QVuBzEN4vRlBxvJh5HtlyWYFbnZWiAiEAuVZCcGbt+J8YESM+6aZm2nqHyOkjIQ2vt+DaQHl1Tys="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.5_1687974891018_0.34854886069804447"},"_hasShrinkwrap":false},"2.0.0-beta.6":{"name":"zod-fixture","version":"2.0.0-beta.6","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite","test":"vitest --ui","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*"},"readme":"# zod-fixture\n\nCreating test fixtures should be easy.\n`zod-fixture` helps with the arrange phase of your tests by creating test fixtures based on a [zod](https://github.com/colinhacks/zod) schema.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Example\n\nPass a zod schema to the `generate` method.\n\n```ts\nimport { z } from 'zod';\nimport { generate } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema);\n```\n\nGives you the following value for `person`:\n\n```json\n{\n\t\"name\": \"name-b1d5c46c-ec89-4fd5-abdf-b263ae808b84\",\n\t\"birthday\": \"2021-01-11T23:58:00.091Z\",\n\t\"address\": {\n\t\t\"street\": \"street-a088e991-896e-458c-bbbd-7045cd880879\",\n\t\t\"city\": \"city-0a3d2843-5b32-48f0-99e4-bdda3c6ed531\",\n\t\t\"state\": \"state-b5f857d4-ccad-46ad-94da-4524ecc672ae\"\n\t},\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-27bdfe2e-2408-4fbe-b984-c5043211ec70\",\n\t\t\t\"breed\": \"breed-addd4dcb-0fa3-4682-af78-af7a32e03890\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-bf785f1c-e989-4ea7-97ac-9e9a9d629b1f\",\n\t\t\t\"breed\": \"breed-2c177585-7a22-4bef-a50f-a00182bdfdce\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-7ac981b0-4cc8-4236-9d76-642121b9bac3\",\n\t\t\t\"breed\": \"breed-0e156d71-5d81-4ffd-ad51-87a2c6baeea0\"\n\t\t}\n\t],\n\t\"totalVisits\": 372\n}\n```\n\n## Generators\n\nTo change it's behavior you can create your own generators.\n\n```ts\nimport { z, ZodObject } from 'zod';\nimport { generate, Generator } from 'zod-fixture';\n\nconst AddressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema, {\n\textend: [AddressGenerator],\n});\n```\n\nGives us the following person:\n\n```json\n{\n\t\"name\": \"name-e5d36b60-2404-4cdc-a438-e9fc8bf9b704\",\n\t\"birthday\": \"2022-04-01T07:22:37.187Z\",\n\t\"address\": { \"street\": \"My Street\", \"city\": \"My City\", \"state\": \"My State\" },\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-1cd9b68f-94ab-4881-b5ba-2a996b68d9c3\",\n\t\t\t\"breed\": \"breed-020aae4b-c88f-4f7e-9711-bbe1b5a01c0f\"\n\t\t}\n\t],\n\t\"totalVisits\": 3\n}\n```\n\n## Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"af501026f2e435efe2c931e82341b591894b6011","_id":"zod-fixture@2.0.0-beta.6","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-cQ/HJt9ionj1xNxVy5aarDWbduavpabSuO2vcmzD56TTXOlE4p2CJx7zQCrPPhj0EewT2cIjbYc+zlu0xoOtQg==","shasum":"6b649cb25c6b8641d365ba05924d0dd9299d728d","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.6.tgz","fileCount":40,"unpackedSize":174769,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDIqR2Or2o2xQCHYuVfBk7py3KMn1isD6zGO2PFUwxQRAiAo1azpCoYKgvqp+lnJjHy0qAWSGQcBbuUJ7GAofplZzA=="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.6_1687975059801_0.093555846478236"},"_hasShrinkwrap":false},"2.0.0-beta.7":{"name":"zod-fixture","version":"2.0.0-beta.7","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite","test":"vitest --ui","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"# zod-fixture\n\nCreating test fixtures should be easy.\n`zod-fixture` helps with the arrange phase of your tests by creating test fixtures based on a [zod](https://github.com/colinhacks/zod) schema.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Example\n\nPass a zod schema to the `generate` method.\n\n```ts\nimport { z } from 'zod';\nimport { generate } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema);\n```\n\nGives you the following value for `person`:\n\n```json\n{\n\t\"name\": \"name-b1d5c46c-ec89-4fd5-abdf-b263ae808b84\",\n\t\"birthday\": \"2021-01-11T23:58:00.091Z\",\n\t\"address\": {\n\t\t\"street\": \"street-a088e991-896e-458c-bbbd-7045cd880879\",\n\t\t\"city\": \"city-0a3d2843-5b32-48f0-99e4-bdda3c6ed531\",\n\t\t\"state\": \"state-b5f857d4-ccad-46ad-94da-4524ecc672ae\"\n\t},\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-27bdfe2e-2408-4fbe-b984-c5043211ec70\",\n\t\t\t\"breed\": \"breed-addd4dcb-0fa3-4682-af78-af7a32e03890\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-bf785f1c-e989-4ea7-97ac-9e9a9d629b1f\",\n\t\t\t\"breed\": \"breed-2c177585-7a22-4bef-a50f-a00182bdfdce\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"name-7ac981b0-4cc8-4236-9d76-642121b9bac3\",\n\t\t\t\"breed\": \"breed-0e156d71-5d81-4ffd-ad51-87a2c6baeea0\"\n\t\t}\n\t],\n\t\"totalVisits\": 372\n}\n```\n\n## Generators\n\nTo change it's behavior you can create your own generators.\n\n```ts\nimport { z, ZodObject } from 'zod';\nimport { generate, Generator } from 'zod-fixture';\n\nconst AddressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst person = generate(PersonSchema, {\n\textend: [AddressGenerator],\n});\n```\n\nGives us the following person:\n\n```json\n{\n\t\"name\": \"name-e5d36b60-2404-4cdc-a438-e9fc8bf9b704\",\n\t\"birthday\": \"2022-04-01T07:22:37.187Z\",\n\t\"address\": { \"street\": \"My Street\", \"city\": \"My City\", \"state\": \"My State\" },\n\t\"pets\": [\n\t\t{\n\t\t\t\"name\": \"name-1cd9b68f-94ab-4881-b5ba-2a996b68d9c3\",\n\t\t\t\"breed\": \"breed-020aae4b-c88f-4f7e-9711-bbe1b5a01c0f\"\n\t\t}\n\t],\n\t\"totalVisits\": 3\n}\n```\n\n## Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"80678a931128c2ca043e60be4039fac15341f5dd","_id":"zod-fixture@2.0.0-beta.7","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-hOO7Kxjbkq627CMFdevZRwm6392ALX6l0MpDxBwXElODHizo6ljrENclJ0BS/C1tL6qiP8uge/lnculmIC0VrQ==","shasum":"1f36f6323e7641e58ba586dab5f08d9db8a2a33b","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.7.tgz","fileCount":41,"unpackedSize":177678,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDr4VmB5EgI20A2LIk/I5YBpxDpbvJExwevjBDiTsPCQIhAMRdF6uF2xVQS6y3SCH294K6sdYBcxU2Njgn99rOnP0m"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.7_1688194010680_0.010421603972757598"},"_hasShrinkwrap":false},"2.0.0-beta.8":{"name":"zod-fixture","version":"2.0.0-beta.8","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","predocs:build":"node ./scripts/predocs-build.js","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitepress":"^1.0.0-beta.3","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content:center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=beta\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://github.com/colinhacks/zod\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [API](#api)\n  - [Generators](#generators)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n::: code-group\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n:::\n\n## Getting Started\n\nThe easiest way to start using zod-fixture is to import the preconfigured (more details on this later) `Fixture` class.\n\n::: info\nThe examples make use of a seed to generate the same fixture every time. This is useful for our docs, or to reproduce issues, but it's not needed in your test code.\n:::\n\n<sub>[view implementation](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-person.test.ts)</sub>\n\n::: code-group\n\n<!-- embedme examples/create-fixture-person.test.ts#L2-L18 -->\n\n```ts [input.ts]\nimport { z } from 'zod';\nimport { Fixture } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst fixture = new Fixture({ seed: 11 });\nconst person = fixture.from(PersonSchema);\n```\n\n<!-- embedme examples/create-fixture-person.test.ts#L22-L45 -->\n\n```json [person-fixture.json]\n{\n  \"address\": {\n    \"city\": \"43K>5SG250E\",\n    \"state\": \"kbszkSZm^3Kg<CPyfa4z1HikF\",\n    \"street\": \"oQes]5YUwRzbITAPk\",\n  },\n  \"birthday\": 1980-09-26T06:36:51.341Z,\n  \"name\": \"8zGj;1humNI>G?8p6;ej\\\\\\\\T4jS3\",\n  \"pets\": [\n    {\n      \"breed\": \"RIEgfwDI7]yK6RE581:h]QM^P\",\n      \"name\": \"wgIuUNfJKl;i4\\`\\`l3\\`A\",\n    },\n    {\n      \"breed\": \"iVI2P\\\\\\\\\",\n      \"name\": \"YOMKN<ukgnGg1qp\\`CdV>\",\n    },\n    {\n      \"breed\": \"fotFqP\",\n      \"name\": \"8Z?ap[eGC\",\n    },\n  ],\n  \"totalVisits\": 5544703130861567,\n}\n```\n\n:::\n\n## Customizing\n\nThis library provides utility methods to provide fine-grained support to create your fixtures.\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/beta/examples) to see how you can use `zod-fixture` in your tests.\n\n### Extending\n\nThe `Fixture` class provides a predefined set of generators that supports each type that's included in zod.\n\nFor most cases this is fine, and offers a fast and easy way to create fixtures.\nBut, for those times where you need a custom implementation, you can write your own [Generator](#generators) to change it's behavior using the `extend` method.\n\nIn the example below we create a custom implemantion `addressGenerator` to return a custom address object, and a `totalVisitsGenerator` to return a more realistic number of visits.\n\n<sub>[view implementation](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-using-generators-person.test.ts)</sub>\n\n::: code-group\n\n<!-- embedme examples/create-fixture-extension.test.ts#L2-L18 -->\n\n```ts [input.ts]\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n<!-- embedme examples/create-fixture-extension.test.ts#L40-L63 -->\n\n```json [person-fixture.json]\n{\n  \"address\": {\n    \"city\": \"My City\",\n    \"state\": \"My State\",\n    \"street\": \"My Street\",\n  },\n  \"birthday\": 1926-02-23T02:07:24.494Z,\n  \"name\": \"c\",\n  \"pets\": [\n    {\n      \"breed\": \"5yOQfkYfI6=kRuH^F?5BCNHft\",\n      \"name\": \"mYxRp1GBY2aw\",\n    },\n    {\n      \"breed\": \"6Qz\\\\\\\\s\",\n      \"name\": \"_\",\n    },\n    {\n      \"breed\": \"6e9\",\n      \"name\": \";l]@\",\n    },\n  ],\n  \"totalVisits\": 22,\n}\n```\n\n:::\n\n### Create Your Own Transformer\n\nInstead of using the opinionated `Fixture` class, you can extend the unopinionated `Transformer` and register the desired generators.\n\n```ts\nimport { Transformer } from 'zod-fixture';\n\nconst transform = new Transformer().extend([\n\t/* insert your generators here */\n]);\n\nconst value = transform.from(zodSchema);\n```\n\n## API\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nTo help you to create your own generators this library also includes some useful utility methods to generate data.\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n::: tip\nThe order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n:::\n\n<!-- embedme examples/create-fixture-extension.test.ts#L15-L18 -->\n\n```ts [totalVisitsGenerator.ts]\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"bff1fcef1404182457daeb786e4280dbab55872a","_id":"zod-fixture@2.0.0-beta.8","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-ALXUluKOO7j9eGTLTOdONX67p5YAeYwrMeQGuj/nhr5nmun7UdwW42c+9pNEkeW+bV8BU2zuJdnlIpNpibSRrw==","shasum":"89e118c250199de5174daee2759157a05f494626","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.8.tgz","fileCount":42,"unpackedSize":60952,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDvi22fKCCf5WqqvB94vDVZa/41aXvxrrCTykQMg39XZAiBUBptm/noTX3Z3+lJwapjQzjI/bc31BVUUUiY5Q0QwQA=="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.8_1688995264283_0.569399505521996"},"_hasShrinkwrap":false},"2.0.0-beta.9":{"name":"zod-fixture","version":"2.0.0-beta.9","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","predocs:build":"node ./scripts/predocs-build.js","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitepress":"^1.0.0-beta.3","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content:center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=beta\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://github.com/colinhacks/zod\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [API](#api)\n  - [Generators](#generators)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n::: code-group\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n:::\n\n## Getting Started\n\nThe easiest way to start using zod-fixture is to import the preconfigured (more details on this later) `Fixture` class.\n\n::: info\nThe examples make use of a seed to generate the same fixture every time. This is useful for our docs, or to reproduce issues, but it's not needed in your test code.\n:::\n\n<sub>[view implementation](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-person.test.ts)</sub>\n\n::: code-group\n\n<!-- embedme examples/create-fixture-person.test.ts#L2-L18 -->\n\n```ts [input.ts]\nimport { z } from 'zod';\nimport { Fixture } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst fixture = new Fixture({ seed: 11 });\nconst person = fixture.from(PersonSchema);\n```\n\n<!-- embedme examples/create-fixture-person.test.ts#L22-L45 -->\n\n```json [person-fixture.json]\n{\n  \"address\": {\n    \"city\": \"43K>5SG250E\",\n    \"state\": \"kbszkSZm^3Kg<CPyfa4z1HikF\",\n    \"street\": \"oQes]5YUwRzbITAPk\",\n  },\n  \"birthday\": 1980-09-26T06:36:51.341Z,\n  \"name\": \"8zGj;1humNI>G?8p6;ej\\\\\\\\T4jS3\",\n  \"pets\": [\n    {\n      \"breed\": \"RIEgfwDI7]yK6RE581:h]QM^P\",\n      \"name\": \"wgIuUNfJKl;i4\\`\\`l3\\`A\",\n    },\n    {\n      \"breed\": \"iVI2P\\\\\\\\\",\n      \"name\": \"YOMKN<ukgnGg1qp\\`CdV>\",\n    },\n    {\n      \"breed\": \"fotFqP\",\n      \"name\": \"8Z?ap[eGC\",\n    },\n  ],\n  \"totalVisits\": 5544703130861567,\n}\n```\n\n:::\n\n## Customizing\n\nThis library provides utility methods to provide fine-grained support to create your fixtures.\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/beta/examples) to see how you can use `zod-fixture` in your tests.\n\n### Extending\n\nThe `Fixture` class provides a predefined set of generators that supports each type that's included in zod.\n\nFor most cases this is fine, and offers a fast and easy way to create fixtures.\nBut, for those times where you need a custom implementation, you can write your own [Generator](#generators) to change it's behavior using the `extend` method.\n\nIn the example below we create a custom implemantion `addressGenerator` to return a custom address object, and a `totalVisitsGenerator` to return a more realistic number of visits.\n\n<sub>[view implementation](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-using-generators-person.test.ts)</sub>\n\n::: code-group\n\n<!-- embedme examples/create-fixture-extension.test.ts#L2-L18 -->\n\n```ts [input.ts]\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n<!-- embedme examples/create-fixture-extension.test.ts#L40-L63 -->\n\n```json [person-fixture.json]\n{\n  \"address\": {\n    \"city\": \"My City\",\n    \"state\": \"My State\",\n    \"street\": \"My Street\",\n  },\n  \"birthday\": 1926-02-23T02:07:24.494Z,\n  \"name\": \"c\",\n  \"pets\": [\n    {\n      \"breed\": \"5yOQfkYfI6=kRuH^F?5BCNHft\",\n      \"name\": \"mYxRp1GBY2aw\",\n    },\n    {\n      \"breed\": \"6Qz\\\\\\\\s\",\n      \"name\": \"_\",\n    },\n    {\n      \"breed\": \"6e9\",\n      \"name\": \";l]@\",\n    },\n  ],\n  \"totalVisits\": 22,\n}\n```\n\n:::\n\n### Create Your Own Transformer\n\nInstead of using the opinionated `Fixture` class, you can extend the unopinionated `Transformer` and register the desired generators.\n\n```ts\nimport { Transformer } from 'zod-fixture';\n\nconst transform = new Transformer().extend([\n\t/* insert your generators here */\n]);\n\nconst value = transform.from(zodSchema);\n```\n\n## API\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nTo help you to create your own generators this library also includes some useful utility methods to generate data.\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n::: tip\nThe order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n:::\n\n<!-- embedme examples/create-fixture-extension.test.ts#L15-L18 -->\n\n```ts [totalVisitsGenerator.ts]\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"32c373fcf58ee3dc337a70e8415f5844b51a5e60","_id":"zod-fixture@2.0.0-beta.9","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-wACBXD8dQICC7U8mn6cFxqhoRCMG15bI09cpJvjqqP/wH6Kti2OP1wmaeIWWHtiwBLvDNzOb203aW337JbiN2w==","shasum":"3b679d07baa6d1e7e690aa6ac96626a30cdae884","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.9.tgz","fileCount":43,"unpackedSize":185561,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOy8KyqsBL/W3mQYQyc6IytG7nXTdMoaGjZpHvhG0aQwIgYaJdwWrllmPKIyt7DtYHTdG7ZtDka/O9jfRKImZQQpc="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.9_1689067739628_0.8831355694517993"},"_hasShrinkwrap":false},"2.0.0-beta.10":{"name":"zod-fixture","version":"2.0.0-beta.10","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","predocs:build":"node ./scripts/predocs-build.js","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitepress":"^1.0.0-beta.3","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content:center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=beta\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://github.com/colinhacks/zod\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [API](#api)\n  - [Generators](#generators)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n::: code-group\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n:::\n\n## Getting Started\n\nThe easiest way to start using zod-fixture is to import the preconfigured (more details on this later) `Fixture` class.\n\n::: info\nThe examples make use of a seed to generate the same fixture every time. This is useful for our docs, or to reproduce issues, but it's not needed in your test code.\n:::\n\n<sub>[view implementation](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-person.test.ts)</sub>\n\n::: code-group\n\n<!-- embedme examples/create-fixture-person.test.ts#L2-L18 -->\n\n```ts [input.ts]\nimport { z } from 'zod';\nimport { Fixture } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst fixture = new Fixture({ seed: 11 });\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<!-- embedme examples/create-fixture-person.test.ts#L22-L45 -->\n\n```json [person-fixture.json]\n{\n  \"address\": {\n    \"city\": \"43K>5SG250E\",\n    \"state\": \"kbszkSZm^3Kg<CPyfa4z1HikF\",\n    \"street\": \"oQes]5YUwRzbITAPk\",\n  },\n  \"birthday\": 1980-09-26T06:36:51.341Z,\n  \"name\": \"8zGj;1humNI>G?8p6;ej\\\\\\\\T4jS3\",\n  \"pets\": [\n    {\n      \"breed\": \"RIEgfwDI7]yK6RE581:h]QM^P\",\n      \"name\": \"wgIuUNfJKl;i4\\`\\`l3\\`A\",\n    },\n    {\n      \"breed\": \"iVI2P\\\\\\\\\",\n      \"name\": \"YOMKN<ukgnGg1qp\\`CdV>\",\n    },\n    {\n      \"breed\": \"fotFqP\",\n      \"name\": \"8Z?ap[eGC\",\n    },\n  ],\n  \"totalVisits\": 5544703130861567,\n}\n```\n\n:::\n\n## Customizing\n\nThis library provides utility methods to provide fine-grained support to create your fixtures.\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/beta/examples) to see how you can use `zod-fixture` in your tests.\n\n### Extending\n\nThe `Fixture` class provides a predefined set of generators that supports each type that's included in zod.\n\nFor most cases this is fine, and offers a fast and easy way to create fixtures.\nBut, for those times where you need a custom implementation, you can write your own [Generator](#generators) to change it's behavior using the `extend` method.\n\nIn the example below we create a custom implemantion `addressGenerator` to return a custom address object, and a `totalVisitsGenerator` to return a more realistic number of visits.\n\n<sub>[view implementation](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-using-generators-person.test.ts)</sub>\n\n::: code-group\n\n<!-- embedme examples/create-fixture-extension.test.ts#L2-L18 -->\n\n```ts [input.ts]\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n<!-- embedme examples/create-fixture-extension.test.ts#L40-L63 -->\n\n```json [person-fixture.json]\n{\n  \"address\": {\n    \"city\": \"My City\",\n    \"state\": \"My State\",\n    \"street\": \"My Street\",\n  },\n  \"birthday\": 1926-02-23T02:07:24.494Z,\n  \"name\": \"c\",\n  \"pets\": [\n    {\n      \"breed\": \"5yOQfkYfI6=kRuH^F?5BCNHft\",\n      \"name\": \"mYxRp1GBY2aw\",\n    },\n    {\n      \"breed\": \"6Qz\\\\\\\\s\",\n      \"name\": \"_\",\n    },\n    {\n      \"breed\": \"6e9\",\n      \"name\": \";l]@\",\n    },\n  ],\n  \"totalVisits\": 22,\n}\n```\n\n:::\n\n### Create Your Own Transformer\n\nInstead of using the opinionated `Fixture` class, you can extend the unopinionated `Transformer` and register the desired generators.\n\n```ts\nimport { Transformer } from 'zod-fixture';\n\nconst transform = new Transformer().extend([\n\t/* insert your generators here */\n]);\n\nconst value = transform.fromSchema(zodSchema);\n```\n\n## API\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nTo help you to create your own generators this library also includes some useful utility methods to generate data.\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n::: tip\nThe order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n:::\n\n<!-- embedme examples/create-fixture-extension.test.ts#L15-L18 -->\n\n```ts [totalVisitsGenerator.ts]\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"e61cef45ad96496617f043b7098295d00693eaab","_id":"zod-fixture@2.0.0-beta.10","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-EYsz+q6a7A/vHppRkgzulc65avi/nLU3S7T8fxiTe9zW6s9z2J8zLuqUM15S7LP+FwuxFs7N4LE53La7HSxaDA==","shasum":"b9893f5bdb1ea74368f4273f16d0b890fed692c5","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.10.tgz","fileCount":43,"unpackedSize":185886,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5tuAmLugBSJt/cqx3CsWCY0j+zNIepmQUqNK7U/jQGgIhAKdjdKCbIvrHDJWYbbbvG9jYelJWB/GQUk1ookPZjxKP"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.10_1689068077666_0.24982482289247354"},"_hasShrinkwrap":false},"1.11.0":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"1.11.0","description":"Creating fixtures based on zod schemas","scripts":{"test":"vitest","test:coverage":"vitest run --coverage","build":"vite build","lint":"eslint . --max-warnings 0","pre-commit":"npm run lint && npm run test:coverage","prepare":"git config core.hookspath .githooks"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.1","@typescript-eslint/parser":"^5.59.1","@vitest/coverage-c8":"^0.30.1","eslint":"^8.39.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^4.3.3","vite-plugin-dts":"^2.3.0","vitest":"^0.30.1","zod":"^3.21.4"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","cuid":"^3.0.0"},"gitHead":"2b41d572f3a44486361a79da1de4aad9bb59e01c","_id":"zod-fixture@1.11.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-MoVnXCyJ7ZcI0xZa27HLhlvwA6r94Xm2x/c6WgKjFTByTUItmA3DNnWags1z3g7pSPNgtaiZrl5fmnIATNoBsA==","shasum":"0d07f5fce62c93eaf9d41c12eba0cb50471885bb","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-1.11.0.tgz","fileCount":31,"unpackedSize":36054,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4FT6SL/XmvfUuz7BURXylIAo3JIsEh7tNqj1QOphTDgIgbxAj+I1zlxHS9GCPAOB2JQ0ruE/XuBCyOnDVqU+K6kI="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_1.11.0_1689146310803_0.6134641103557792"},"_hasShrinkwrap":false},"2.0.0-beta.11":{"name":"zod-fixture","version":"2.0.0-beta.11","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitepress":"^1.0.0-beta.3","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<!-- DO NOT EDIT DIRECTLY -->\n<!-- This file is autogenerated from https://github.com/timdeschryver/zod-fixture/edit/main/docs/index.md -->\n<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content:center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=beta\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://github.com/colinhacks/zod\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [API](#api)\n  - [Generators](#generators)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n## Getting Started\n\nThe easiest way to start using zod-fixture is to import the preconfigured (more details on this later) `Fixture` class.\n\n> INFO: The examples make use of a seed to generate the same fixture every time. This is useful for our docs, or to reproduce issues, but it's not needed in your test code.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-person.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Fixture } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst fixture = new Fixture({ seed: 11 });\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-person.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: '43K>5SG250E',\n\t\tstate: 'kbszkSZm^3Kg<CPyfa4z1HikF',\n\t\tstreet: 'oQes]5YUwRzbITAPk',\n\t},\n\tbirthday: new Date('1980-09-26T06:36:51.341Z'),\n\tname: '8zGj;1humNI>G?8p6;ej\\\\T4jS3',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'RIEgfwDI7]yK6RE581:h]QM^P',\n\t\t\tname: 'wgIuUNfJKl;i4``l3`A',\n\t\t},\n\t\t{\n\t\t\tbreed: 'iVI2P\\\\',\n\t\t\tname: 'YOMKN<ukgnGg1qp`CdV>',\n\t\t},\n\t\t{\n\t\t\tbreed: 'fotFqP',\n\t\t\tname: '8Z?ap[eGC',\n\t\t},\n\t],\n\ttotalVisits: 5544703130861567,\n}\n\n```\n\n## Customizing\n\nThis library provides utility methods to provide fine-grained support to create your fixtures.\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/beta/examples) to see how you can use `zod-fixture` in your tests.\n\n### Extending\n\nThe `Fixture` class provides a predefined set of generators that supports each type that's included in zod.\n\nFor most cases this is fine, and offers a fast and easy way to create fixtures.\nBut, for those times where you need a custom implementation, you can write your own [Generator](#generators) to change it's behavior using the `extend` method.\n\nIn the example below we create a custom implemantion `addressGenerator` to return a custom address object, and a `totalVisitsGenerator` to return a more realistic number of visits.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-extension.test.ts)</sub>\n\n```ts\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\taddressGenerator,\n\ttotalVisitsGenerator,\n]);\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-extension.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t\tstreet: 'My Street',\n\t},\n\tbirthday: new Date('1926-02-23T02:07:24.494Z'),\n\tname: 'c',\n\tpets: [\n\t\t{\n\t\t\tbreed: '5yOQfkYfI6=kRuH^F?5BCNHft',\n\t\t\tname: 'mYxRp1GBY2aw',\n\t\t},\n\t\t{\n\t\t\tbreed: '6Qz\\\\s',\n\t\t\tname: '_',\n\t\t},\n\t\t{\n\t\t\tbreed: '6e9',\n\t\t\tname: ';l]@',\n\t\t},\n\t],\n\ttotalVisits: 22,\n}\n\n```\n\n### Create Your Own Transformer\n\nInstead of using the opinionated `Fixture` class, you can extend the unopinionated `Transformer` and register the desired generators.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/transformer.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Transformer } from 'zod-fixture';\n\nconst transform = new Transformer().extend([\n\t/* insert your generators here */\n]);\n\ntransform.from(z.any());\n```\n\n## API\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nTo help you to create your own generators this library also includes some useful utility methods to generate data.\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n> TIP: The order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/create-fixture-extension.test.ts)</sub>\n\n```ts\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"3b992119f0cb8bbb9efe97acdf6d6e153c98d173","_id":"zod-fixture@2.0.0-beta.11","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-IAx6BhtCf5P6AJ+vtjCsrjWd0W9Go0FuaUgo/UbzD6CtquYguHLUeuWD9KnfoCNgp1aL8/hJP+0QCZuMWMNU9A==","shasum":"cc65e2803c037dbddf02a7a9bbb0ca9540401192","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.11.tgz","fileCount":43,"unpackedSize":189509,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7PkLf8xLHbL1h/l6j7sJTOV7VlNFwb6o/Q+TkiG2ZQAiA8QSm/UN6spcrjjxLzQYBNaH9Byx7BRitarkNALt8Sdw=="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.11_1689229484116_0.7770487759310298"},"_hasShrinkwrap":false},"2.0.0-beta.12":{"name":"zod-fixture","version":"2.0.0-beta.12","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitepress":"^1.0.0-beta.3","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<!-- DO NOT EDIT DIRECTLY -->\n<!-- This file is autogenerated from https://github.com/timdeschryver/zod-fixture/edit/main/docs/index.md -->\n<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content:center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=beta\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://github.com/colinhacks/zod\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [API](#api)\n  - [Generators](#generators)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n## Getting Started\n\nThe easiest way to start using zod-fixture is to import the preconfigured (more details on this later) `Fixture` class.\n\n> INFO: The examples make use of a seed to generate the same fixture every time. This is useful for our docs, or to reproduce issues, but it's not needed in your test code.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Fixture } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst fixture = new Fixture({ seed: 11 });\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: '43K>5SG250E',\n\t\tstate: 'kbszkSZm^3Kg<CPyfa4z1HikF',\n\t\tstreet: 'oQes]5YUwRzbITAPk',\n\t},\n\tbirthday: new Date('1980-09-26T06:36:51.341Z'),\n\tname: '8zGj;1humNI>G?8p6;ej\\\\T4jS3',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'RIEgfwDI7]yK6RE581:h]QM^P',\n\t\t\tname: 'wgIuUNfJKl;i4``l3`A',\n\t\t},\n\t\t{\n\t\t\tbreed: 'iVI2P\\\\',\n\t\t\tname: 'YOMKN<ukgnGg1qp`CdV>',\n\t\t},\n\t\t{\n\t\t\tbreed: 'fotFqP',\n\t\t\tname: '8Z?ap[eGC',\n\t\t},\n\t],\n\ttotalVisits: 5544703130861567,\n}\n\n```\n\n## Customizing\n\nThis library provides utility methods to provide fine-grained support to create your fixtures.\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/beta/examples) to see how you can use `zod-fixture` in your tests.\n\n### Extending\n\nThe `Fixture` class provides a predefined set of generators that supports each type that's included in zod.\n\nFor most cases this is fine, and offers a fast and easy way to create fixtures.\nBut, for those times where you need a custom implementation, you can write your own [Generator](#generators) to change it's behavior using the `extend` method.\n\nIn the example below we create a custom implemantion `addressGenerator` to return a custom address object, and a `totalVisitsGenerator` to return a more realistic number of visits.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\taddressGenerator,\n\ttotalVisitsGenerator,\n]);\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t\tstreet: 'My Street',\n\t},\n\tbirthday: new Date('1926-02-23T02:07:24.494Z'),\n\tname: 'c',\n\tpets: [\n\t\t{\n\t\t\tbreed: '5yOQfkYfI6=kRuH^F?5BCNHft',\n\t\t\tname: 'mYxRp1GBY2aw',\n\t\t},\n\t\t{\n\t\t\tbreed: '6Qz\\\\s',\n\t\t\tname: '_',\n\t\t},\n\t\t{\n\t\t\tbreed: '6e9',\n\t\t\tname: ';l]@',\n\t\t},\n\t],\n\ttotalVisits: 22,\n}\n\n```\n\n### Create Your Own Transformer\n\nInstead of using the opinionated `Fixture` class, you can extend the unopinionated `Transformer` and register the desired generators.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/transformer.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Transformer } from 'zod-fixture';\n\nconst transform = new Transformer().extend([\n\t/* insert your generators here */\n]);\n\ntransform.from(z.any());\n```\n\n## API\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nTo help you to create your own generators this library also includes some useful utility methods to generate data.\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n> TIP: The order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"fb54fb5a642ac7fd161999644384ba06e96d5e0d","_id":"zod-fixture@2.0.0-beta.12","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-EYpi0jZyioMZxjmcHqw8IUvKybmeNfTRXE/CTwxekj0Xlhnro62TmfT+bwzVLCsV0SiAqdL7XFVA0EhlwSBrmg==","shasum":"92c63c8169fe87d91ca44c078fa51cf8deffe7d3","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.12.tgz","fileCount":42,"unpackedSize":189758,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDeWR0zki3nofte9Jvrah+v75jlBnIdJWl8A0rdkfRUgIgBV/lJSZ8F3C641mXrAdZ6TME3WFl8XfARYzGdQjCUr4="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.12_1689231983404_0.27491004783022666"},"_hasShrinkwrap":false},"2.0.0-beta.13":{"name":"zod-fixture","version":"2.0.0-beta.13","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitepress":"^1.0.0-beta.3","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<!-- DO NOT EDIT DIRECTLY -->\n<!-- This file is autogenerated from https://github.com/timdeschryver/zod-fixture/edit/main/docs/index.md -->\n<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content:center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=beta\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://github.com/colinhacks/zod\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [API](#api)\n  - [Generators](#generators)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n## Getting Started\n\nThe easiest way to start using zod-fixture is to import the preconfigured (more details on this later) `Fixture` class.\n\n> INFO: The examples make use of a seed to generate the same fixture every time. This is useful for our docs, or to reproduce issues, but it's not needed in your test code.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Fixture } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst fixture = new Fixture({ seed: 11 });\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'bonzm-sjnglvkbb',\n\t\tstate: 'fbmiabahyvsy-vm',\n\t\tstreet: 'etuqnbvmbkqwlty',\n\t},\n\tbirthday: new Date('2073-08-30T03:26:04.735Z'),\n\tname: 'd-iveauywljfifd',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'ifsztjznktjkveu',\n\t\t\tname: 'qbjuehl-trb-aiu',\n\t\t},\n\t\t{\n\t\t\tbreed: 'q-jcmhccaduqmkq',\n\t\t\tname: 'rrvbrgzmjhttzhj',\n\t\t},\n\t\t{\n\t\t\tbreed: 'rgsnffunjalqicp',\n\t\t\tname: 'tolkjleyvtwitax',\n\t\t},\n\t],\n\ttotalVisits: 21,\n}\n\n```\n\n## Customizing\n\nThis library provides utility methods to provide fine-grained support to create your fixtures.\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/beta/examples) to see how you can use `zod-fixture` in your tests.\n\n### Extending\n\nThe `Fixture` class provides a predefined set of generators that supports each type that's included in zod.\n\nFor most cases this is fine, and offers a fast and easy way to create fixtures.\nBut, for those times where you need a custom implementation, you can write your own [Generator](#generators) to change it's behavior using the `extend` method.\n\nIn the example below we create a custom implemantion `addressGenerator` to return a custom address object, and a `totalVisitsGenerator` to return a more realistic number of visits.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\taddressGenerator,\n\ttotalVisitsGenerator,\n]);\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t\tstreet: 'My Street',\n\t},\n\tbirthday: new Date('2091-09-17T10:54:58.574Z'),\n\tname: 'sdnlwozmxaigobr',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'fbgglityarecl-q',\n\t\t\tname: '-lmtvotjcevmyiq',\n\t\t},\n\t\t{\n\t\t\tbreed: 'mylchvprjdgelkq',\n\t\t\tname: 'devqfcctdx-link',\n\t\t},\n\t\t{\n\t\t\tbreed: 'rcrrkytqrdmzajo',\n\t\t\tname: 'ivrplyhts-yypas',\n\t\t},\n\t],\n\ttotalVisits: 4,\n}\n\n```\n\n### Create Your Own Transformer\n\nInstead of using the opinionated `Fixture` class, you can extend the unopinionated `Transformer` and register the desired generators.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/transformer.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { UnconstrainedFixture } from 'zod-fixture';\n\nconst transform = new UnconstrainedFixture().extend([\n\t/* insert your generators here */\n]);\n\ntransform.fromSchema(z.any());\n```\n\n## API\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nTo help you to create your own generators this library also includes some useful utility methods to generate data.\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n> TIP: The order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"2fd78a01b9fd95df134d7708904b0e2aa43a5140","_id":"zod-fixture@2.0.0-beta.13","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-EzYoXG6Pl+2mjKM8+5hFegvW2Eg4cpOaVFuMXS9zggCp0FbIapnr4LuGA0DG/sAXp27Ewo550jEAoTIYifzUIw==","shasum":"79dbe7a8445c3838c1158f75cf95987440f832fb","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.13.tgz","fileCount":43,"unpackedSize":74636,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDy/gVP6rokQrWzhPNmFKkaleORhcuD+ii9s9ppcESncAiEAsxI/9a0BpbXlmpG/dQ0Qby+l3SSo29aU6PiZdpkpmjc="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.13_1689319350083_0.1714777150989586"},"_hasShrinkwrap":false},"2.0.0-beta.14":{"name":"zod-fixture","version":"2.0.0-beta.14","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","ulid":"^2.3.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitepress":"^1.0.0-beta.3","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<!-- DO NOT EDIT DIRECTLY -->\n<!-- This file is autogenerated from https://github.com/timdeschryver/zod-fixture/edit/main/docs/index.md -->\n<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content:center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=beta\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://github.com/colinhacks/zod\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [API](#api)\n  - [Generators](#generators)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n## Getting Started\n\nThe easiest way to start using zod-fixture is to import the preconfigured (more details on this later) `Fixture` class.\n\n> INFO: The examples make use of a seed to generate the same fixture every time. This is useful for our docs, or to reproduce issues, but it's not needed in your test code.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Fixture } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst fixture = new Fixture({ seed: 11 });\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'bonzm-sjnglvkbb',\n\t\tstate: 'fbmiabahyvsy-vm',\n\t\tstreet: 'etuqnbvmbkqwlty',\n\t},\n\tbirthday: new Date('2073-08-30T03:26:04.735Z'),\n\tname: 'd-iveauywljfifd',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'ifsztjznktjkveu',\n\t\t\tname: 'qbjuehl-trb-aiu',\n\t\t},\n\t\t{\n\t\t\tbreed: 'q-jcmhccaduqmkq',\n\t\t\tname: 'rrvbrgzmjhttzhj',\n\t\t},\n\t\t{\n\t\t\tbreed: 'rgsnffunjalqicp',\n\t\t\tname: 'tolkjleyvtwitax',\n\t\t},\n\t],\n\ttotalVisits: 21,\n}\n\n```\n\n## Customizing\n\nThis library provides utility methods to provide fine-grained support to create your fixtures.\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/beta/examples) to see how you can use `zod-fixture` in your tests.\n\n### Extending\n\nThe `Fixture` class provides a predefined set of generators that supports each type that's included in zod.\n\nFor most cases this is fine, and offers a fast and easy way to create fixtures.\nBut, for those times where you need a custom implementation, you can write your own [Generator](#generators) to change it's behavior using the `extend` method.\n\nIn the example below we create a custom implemantion `addressGenerator` to return a custom address object, and a `totalVisitsGenerator` to return a more realistic number of visits.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\taddressGenerator,\n\ttotalVisitsGenerator,\n]);\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t\tstreet: 'My Street',\n\t},\n\tbirthday: new Date('2091-09-17T10:54:58.574Z'),\n\tname: 'sdnlwozmxaigobr',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'fbgglityarecl-q',\n\t\t\tname: '-lmtvotjcevmyiq',\n\t\t},\n\t\t{\n\t\t\tbreed: 'mylchvprjdgelkq',\n\t\t\tname: 'devqfcctdx-link',\n\t\t},\n\t\t{\n\t\t\tbreed: 'rcrrkytqrdmzajo',\n\t\t\tname: 'ivrplyhts-yypas',\n\t\t},\n\t],\n\ttotalVisits: 4,\n}\n\n```\n\n### Create Your Own Transformer\n\nInstead of using the opinionated `Fixture` class, you can extend the unopinionated `Transformer` and register the desired generators.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/transformer.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { UnconstrainedFixture } from 'zod-fixture';\n\nconst transform = new UnconstrainedFixture().extend([\n\t/* insert your generators here */\n]);\n\ntransform.fromSchema(z.any());\n```\n\n## API\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nTo help you to create your own generators this library also includes some useful utility methods to generate data.\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n> TIP: The order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"8b34b04fe6da9b18995842987b02e1abc635c1e8","_id":"zod-fixture@2.0.0-beta.14","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-qMdWfLm2J1qlNtdQ3t+71X2pRWkQFH234czk+bjEayWfp58oo1USAlTUYQ4GPMaotq1IlUxkwI5hzlUES2XNRQ==","shasum":"63ed14fb43e900f994c6a6fc4297b4f477114b6c","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.14.tgz","fileCount":43,"unpackedSize":77184,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4ZL/Qn/A1qMIsIYmHRGSvoXW1Jn+QrQAkmw/ZAKw2DAIgMgBpxpyejA6196kLEcXi6Mtg4FXltEOGirkmXQ5gD1s="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.14_1689447105248_0.38023418571675793"},"_hasShrinkwrap":false},"2.0.0-beta.15":{"name":"zod-fixture","version":"2.0.0-beta.15","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.0","ulid":"^2.3.0","randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.0","c8":"^7.12.0","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.2","prettier":"^2.8.8","typescript":"^5.0.4","vite":"^3.2.6","vite-plugin-dts":"^1.4.1","vitepress":"^1.0.0-beta.3","vitest":"^0.31.0","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<!-- DO NOT EDIT DIRECTLY -->\n<!-- This file is autogenerated from https://github.com/timdeschryver/zod-fixture/edit/main/docs/index.md -->\n<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content:center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=beta\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://github.com/colinhacks/zod\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [API](#api)\n  - [Generators](#generators)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n## Getting Started\n\nThe easiest way to start using zod-fixture is to import the preconfigured (more details on this later) `Fixture` class.\n\n> INFO: The examples make use of a seed to generate the same fixture every time. This is useful for our docs, or to reproduce issues, but it's not needed in your test code.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Fixture } from 'zod-fixture';\n\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst fixture = new Fixture({ seed: 11 });\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'bonzm-sjnglvkbb',\n\t\tstate: 'fbmiabahyvsy-vm',\n\t\tstreet: 'etuqnbvmbkqwlty',\n\t},\n\tbirthday: new Date('2073-08-30T03:26:04.735Z'),\n\tname: 'd-iveauywljfifd',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'ifsztjznktjkveu',\n\t\t\tname: 'qbjuehl-trb-aiu',\n\t\t},\n\t\t{\n\t\t\tbreed: 'q-jcmhccaduqmkq',\n\t\t\tname: 'rrvbrgzmjhttzhj',\n\t\t},\n\t\t{\n\t\t\tbreed: 'rgsnffunjalqicp',\n\t\t\tname: 'tolkjleyvtwitax',\n\t\t},\n\t],\n\ttotalVisits: 21,\n}\n\n```\n\n## Customizing\n\nThis library provides utility methods to provide fine-grained support to create your fixtures.\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/beta/examples) to see how you can use `zod-fixture` in your tests.\n\n### Extending\n\nThe `Fixture` class provides a predefined set of generators that supports each type that's included in zod.\n\nFor most cases this is fine, and offers a fast and easy way to create fixtures.\nBut, for those times where you need a custom implementation, you can write your own [Generator](#generators) to change it's behavior using the `extend` method.\n\nIn the example below we create a custom implemantion `addressGenerator` to return a custom address object, and a `totalVisitsGenerator` to return a more realistic number of visits.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\nconst PersonSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\taddressGenerator,\n\ttotalVisitsGenerator,\n]);\nconst person = fixture.fromSchema(PersonSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t\tstreet: 'My Street',\n\t},\n\tbirthday: new Date('2091-09-17T10:54:58.574Z'),\n\tname: 'sdnlwozmxaigobr',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'fbgglityarecl-q',\n\t\t\tname: '-lmtvotjcevmyiq',\n\t\t},\n\t\t{\n\t\t\tbreed: 'mylchvprjdgelkq',\n\t\t\tname: 'devqfcctdx-link',\n\t\t},\n\t\t{\n\t\t\tbreed: 'rcrrkytqrdmzajo',\n\t\t\tname: 'ivrplyhts-yypas',\n\t\t},\n\t],\n\ttotalVisits: 4,\n}\n\n```\n\n### Create Your Own Transformer\n\nInstead of using the opinionated `Fixture` class, you can extend the unopinionated `Transformer` and register the desired generators.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/transformer.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { UnconstrainedFixture } from 'zod-fixture';\n\nconst transform = new UnconstrainedFixture().extend([\n\t/* insert your generators here */\n]);\n\ntransform.fromSchema(z.any());\n```\n\n## API\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nTo help you to create your own generators this library also includes some useful utility methods to generate data.\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n> TIP: The order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"86ea6b2d9502af3275a700555845859d13fb3fe1","_id":"zod-fixture@2.0.0-beta.15","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-x3chUmUbvYI9qiv5fcZKScpiDX/kpM3X8xFsyyz1KuCXEqw9M6iim5shgl4FpTTqB5lGbwQzsTYLMC9ztqcaGA==","shasum":"b26e2f6a82fa78a9190f1069fa3c18dc3b37db2b","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.15.tgz","fileCount":43,"unpackedSize":78292,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIlO0qP1hnlCWY2U784DDxsZp4nzOlevo0Ug0EL5LX+gIhAOgosaKc412yLFpNkwIwH/2HtM2YHEqhzjGm604un9hY"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.15_1689573559160_0.019995102805091536"},"_hasShrinkwrap":false},"2.0.0-beta.16":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.0.0-beta.16","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.1","randexp":"^0.5.3","ulid":"^2.3.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"readme":"<!-- DO NOT EDIT DIRECTLY -->\n<!-- This file is autogenerated from https://github.com/timdeschryver/zod-fixture/edit/main/docs/index.md -->\n<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content: center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=main\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://zod.dev/\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Generators](#generators)\n    - [Matching](#matching)\n    - [Filtering](#filtering)\n      - [Filter by Check](#filter-by-check)\n      - [Filter by Key](#filter-by-key)\n    - [Output](#output)\n- [FAQ](#faq)\n  - [I have a custom type that I need to support. How do I do that?](#i-have-a-custom-type-that-i-need-to-support-how-do-i-do-that)\n  - [Do you support faker/chance/falso?](#do-you-support-fakerchancefalso)\n- [API](#api)\n  - [Fixture](#fixture)\n    - [Config](#config)\n      - [Seed (optional)](#seed-optional)\n- [Advanced Topics](#advanced-topics)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n```sh [npm]\nnpm install -D vitepress\n```\n\n```sh [pnpm]\npnpm add -D vitepress\n```\n\n```sh [yarn]\nyarn add -D vitepress\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n## Getting Started\n\nThe easiest way to start using `zod-fixture` is to import the pre-configured `createFixture` function.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { createFixture } from 'zod-fixture';\n\nconst personSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst person = createFixture(personSchema, { seed: 11 });\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-person.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'bonzm-sjnglvkbb',\n\t\tstate: 'fbmiabahyvsy-vm',\n\t\tstreet: 'etuqnbvmbkqwlty',\n\t},\n\tbirthday: new Date('2073-08-30T03:26:04.735Z'),\n\tname: 'd-iveauywljfifd',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'ifsztjznktjkveu',\n\t\t\tname: 'qbjuehl-trb-aiu',\n\t\t},\n\t\t{\n\t\t\tbreed: 'q-jcmhccaduqmkq',\n\t\t\tname: 'rrvbrgzmjhttzhj',\n\t\t},\n\t\t{\n\t\t\tbreed: 'rgsnffunjalqicp',\n\t\t\tname: 'tolkjleyvtwitax',\n\t\t},\n\t],\n\ttotalVisits: 21,\n}\n\n```\n\n> INFO: The examples make use of the optional [seed](#seed-optional) parameter to generate the same fixture every time. This is useful for our docs, deterministic testing, and to reproduce issues, but is not necessary in your code. Simply calling `createFixture` with no configuration is acceptable.\n\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/main/examples) to see how you can use `zod-fixture` in your tests.\n\n## Customizing\n\n`zod-fixture` is highly customizable. We provide you with the same utility methods we use internally to give you fine-grained support for creating your own fixtures.\n\n### Extending\n\nThe easiset way to start customizing `zod-fixture` is to use the `Fixture` class directly and extend it with your own [generator](#generators).\n\n> INFO: `createFixture(...)` is just syntactic sugar for `new Fixture().fromSchema(...)`\n\nThe example below uses 2 custom generators and a typical pattern for filtering based on the keys of an object.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\tfilter: ({ context }) => context.path.at(-1) === 'totalVisits',\n\t/**\n\t * The `context` provides a path to the current field\n\t *\n\t * {\n\t *   totalVisits: ...,\n\t *   nested: {\n\t *     totalVisits: ...,\n\t *   }\n\t * }\n\t *\n\t * Would match twice with the following paths:\n\t *   ['totalVisits']\n\t *   ['nested', 'totalVisits']\n\t */\n\n\t// returns a more realistic number of visits.\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\t// returns a custom address object\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst personSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\taddressGenerator,\n\ttotalVisitsGenerator,\n]);\nconst person = fixture.fromSchema(personSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t\tstreet: 'My Street',\n\t},\n\tbirthday: new Date('2091-09-17T10:54:58.574Z'),\n\tname: 'sdnlwozmxaigobr',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'fbgglityarecl-q',\n\t\t\tname: '-lmtvotjcevmyiq',\n\t\t},\n\t\t{\n\t\t\tbreed: 'mylchvprjdgelkq',\n\t\t\tname: 'devqfcctdx-link',\n\t\t},\n\t\t{\n\t\t\tbreed: 'rcrrkytqrdmzajo',\n\t\t\tname: 'ivrplyhts-yypas',\n\t\t},\n\t],\n\ttotalVisits: 4,\n}\n\n```\n\n> TIP: The order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nA `Generator` has 3 fundamental parts:\n\n- [schema](#matching) -- the zod type to match\n- [filter](#filtering) -- [optional] a function to further refine our match (ie filtering by keys or zod checks)\n- [output](#output) -- a function that's called to produce the fixture\n\n#### Matching\n\nAll generators require a `zod` schema to match against. A schema can be provided in the following ways:\n\n- A zod type constructor (ie `ZodString`)\n- An instance of a type (typically `z.custom`)\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/generator-schema-matching.test.ts)</sub>\n\n```ts\nimport { z, ZodString } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\n// this is a custom zod type\nconst pxSchema = z.custom<`${number}px`>((val) => {\n\treturn /^\\d+px$/.test(val as string);\n});\n\nconst StringGenerator = Generator({\n\tschema: ZodString,\n\toutput: () => 'John Doe',\n});\n\nconst PixelGenerator = Generator({\n\tschema: pxSchema,\n\toutput: () => '100px',\n});\n\nconst developerSchema = z.object({\n\tname: z.string().max(10),\n\tresolution: z.object({\n\t\theight: pxSchema,\n\t\twidth: pxSchema,\n\t}),\n});\n\nconst fixture = new Fixture({ seed: 7 }).extend([\n\tPixelGenerator,\n\tStringGenerator,\n]);\nconst developer = fixture.fromSchema(developerSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/generator-schema-matching.test.ts)</sub>\n\n```ts\n{\n\tname: 'John Doe',\n\tresolution: {\n\t\theight: '100px',\n\t\twidth: '100px',\n\t},\n}\n\n```\n\n#### Filtering\n\nIn addition to matching schemas, `zod-fixture` provides robust tools for filtering, allowing you to further narrow the matches for your generator. There are two common patterns for filtering.\n\n##### Filter by Check\n\nIn the case where you use a `zod` method like `z.string().email()`, `zod` adds what they call a \"check\" to the defintion. These are additional constraints that are checked during parsing that don't conform to a Typescript type. (ie TS does not have the concept of an email, just a string). `zod-fixture` provides a type safe utility called `checks` for interacting with these additional constraints.\n\nThere are two methods provided by the `checks` utility:\n\n- `has` -- returns a boolean letting you know if a particular check exists on the schema.\n- `find` -- returns the full definition of a check, which can be useful for generating output.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/generator-filtering-zod-checks.test.ts)</sub>\n\n```ts\nimport { z, ZodString } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst EmailGenerator = Generator({\n\tschema: ZodString,\n\tfilter: ({ transform, def }) =>\n\t\ttransform.utils.checks(def.checks).has('email'),\n\toutput: () => 'john.malkovich@gmail.com',\n});\n\nconst StringGenerator = Generator({\n\tschema: ZodString,\n\toutput: ({ transform, def }) => {\n\t\tlet min = transform.utils.checks(def.checks).find('min')?.value;\n\t\t/**\n\t\t *     kind: \"min\";\n\t\t *     value: number;\n\t\t *     message?: string | undefined; // a custom error message\n\t\t */\n\n\t\tlet max = transform.utils.checks(def.checks).find('max')?.value;\n\t\t/**\n\t\t *     kind: \"max\";\n\t\t *     value: number;\n\t\t *     message?: string | undefined; // a custom error message\n\t\t */\n\n\t\tconst length = transform.utils.checks(def.checks).find('length');\n\t\t/**\n\t\t *     kind: \"length\";\n\t\t *     value: number;\n\t\t *     message?: string | undefined; // a custom error message\n\t\t */\n\n\t\tif (length) {\n\t\t\tmin = length.value;\n\t\t\tmax = length.value;\n\t\t}\n\n\t\treturn transform.utils.random.string({ min, max });\n\t},\n});\n\nconst personSchema = z.object({\n\tname: z.string().max(10),\n\temail: z.string().email(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\tEmailGenerator,\n\tStringGenerator,\n]);\nconst person = fixture.fromSchema(personSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/generator-filtering-zod-checks.test.ts)</sub>\n\n```ts\n{\n\temail: 'john.malkovich@gmail.com',\n\tname: 'sdnlwozmxa',\n}\n\n```\n\n##### Filter by Key\n\nMatching keys of an object is another common pattern and a bit tricky if you don't give it enough thought. Every generator is called with a `context` and that context includes a `path`. The path is an array of keys that got us to this value. Generally speaking, you will only want the last key in the path for matching things like \"name\", \"email\", \"age\", etc in a deeply nested object.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/generator-filtering-key-match.test.ts)</sub>\n\n```ts\nimport { z, ZodString } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst NameGenerator = Generator({\n\tschema: ZodString,\n\tfilter: ({ context }) => context.path.at(-1) === 'name',\n\toutput: () => 'John Doe',\n});\n\nconst personSchema = z.object({\n\tname: z.string(), // this matches ['name']\n\temail: z.string().email(),\n\trelatives: z\n\t\t.object({\n\t\t\tname: z.string(), // this will match as well ['relatives', 'name']\n\t\t\temail: z.string().email(),\n\t\t})\n\t\t.array(),\n});\n\nconst fixture = new Fixture({ seed: 7 }).extend(NameGenerator);\nconst person = fixture.fromSchema(personSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/generator-filtering-key-match.test.ts)</sub>\n\n```ts\n{\n\temail: 'rando@email.com',\n\tname: 'John Doe',\n\trelatives: [\n\t\t{\n\t\t\temail: 'rando@email.com',\n\t\t\tname: 'John Doe',\n\t\t},\n\t\t{\n\t\t\temail: 'rando@email.com',\n\t\t\tname: 'John Doe',\n\t\t},\n\t\t{\n\t\t\temail: 'rando@email.com',\n\t\t\tname: 'John Doe',\n\t\t},\n\t],\n}\n\n```\n\n#### Output\n\nOutput is a function that generates the fixture for any matches. `zod-fixture` provides a randomization utility for creating data, in addition to all of the defaults (including the seed).\n\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/fixture-extension.test.ts)</sub>\n\n```ts\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\tfilter: ({ context }) => context.path.at(-1) === 'totalVisits',\n\t/**\n\t * The `context` provides a path to the current field\n\t *\n\t * {\n\t *   totalVisits: ...,\n\t *   nested: {\n\t *     totalVisits: ...,\n\t *   }\n\t * }\n\t *\n\t * Would match twice with the following paths:\n\t *   ['totalVisits']\n\t *   ['nested', 'totalVisits']\n\t */\n\n\t// returns a more realistic number of visits.\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## FAQ\n\n### I have a custom type that I need to support. How do I do that?\n\n`zod-fixture` was built with this in mind. Simply define your custom type using zod's `z.custom` and pass the resulting schema to your custom generator.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/custom-type.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\n// Your custom type\nconst pxSchema = z.custom<`${number}px`>((val) => {\n\treturn /^\\d+px$/.test(val as string);\n});\n\n// Your custom generator\nconst PixelGenerator = Generator({\n\tschema: pxSchema,\n\toutput: () => '100px',\n});\n\n// Example\nconst resolutionSchema = z.object({\n\twidth: pxSchema,\n\theight: pxSchema,\n});\n\nconst fixture = new Fixture().extend([PixelGenerator]);\nconst resolution = fixture.fromSchema(resolutionSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/custom-type.test.ts)</sub>\n\n```ts\n{\n\twidth: '100px',\n\theight: '100px',\n}\n\n```\n\n### Do you support faker/chance/falso?\n\nThe short answer, not yet. We plan to build out pre-defined generators for popular mocking libraries but are currently prioritizing reliability and ease of use. If you'd like to help us build out this functionality, feel free to open a pull request 😀\n\n## API\n\n### Fixture\n\n> INFO: `Fixture` is a `Transformer` that comes prepackaged with generators for each of the first party types that Zod provides. For most cases, this is all you wil need, and offers a fast and easy way to create fixtures. For building a custom `Transformer` refer to the [Advanced](#advanced-topics) documentation.\n\n#### Config\n\nWe provide sane defaults for the random utilities used by our generators, but these can easily be customized.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/src/transformer/defaults.ts)</sub>\n\n```ts\ninterface Defaults {\n\tseed?: number;\n\tarray: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tmap: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tset: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tint: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tfloat: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tbigint: {\n\t\tmin: bigint;\n\t\tmax: bigint;\n\t};\n\tdate: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tstring: {\n\t\tmin: number;\n\t\tmax: number;\n\t\tcharacterSet: string;\n\t};\n}\n```\n\n##### Seed (optional)\n\nA seed can be provided to produce the same results every time.\n\n```ts\nconst fixture = new Fixture({ seed: number });\n```\n\n## Advanced Topics\n\n### Create Your Own Transformer\n\nInstead of using one of the opinionated `Fixture`s, you can extend the unopinionated `Transformer` and register the desired generators.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/beta/examples/transformer.test.ts)</sub>\n\n```ts\nimport { ConstrainedTransformer, UnconstrainedTransformer } from 'zod-fixture';\n\n/**\n * Constrained defaults\n *\n * {\n *   array: {\n *     min: 3,\n *     max: 3,\n *   },\n *   // ...\n *   string: {\n *     min: 15,\n *     max: 15,\n *     characterSet: 'abcdefghijklmnopqrstuvwxyz-',\n *   }\n * }\n */\nnew ConstrainedTransformer().extend([\n\t/* insert your generators here */\n]);\n\n/**\n * Less constrained. Better for mocking APIs.\n */\nnew UnconstrainedTransformer().extend([\n\t/* insert your generators here */\n]);\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","gitHead":"15e67e81f3b78112efba63eeee8879dc7b655409","_id":"zod-fixture@2.0.0-beta.16","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-MMWpnM0eOkf4SxVI5wftO7LixW8FL7P9QHbDux3TIeiKUAkM4S1njnJ/zZZ3vQjr4SxW1Lszxz64AMGuwBmmKQ==","shasum":"97bb8ab5ffd8643bd4bb887f96bc2f5f7d08ce8b","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0-beta.16.tgz","fileCount":43,"unpackedSize":89235,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqBdQ4zCURgUWfoSia+aIvIgks5KG0jOFgEIgTus6uOwIgDYsghxdpIwML6pWIo6GL1cGWY+Rv0b7++h81vITofcs="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0-beta.16_1689585491703_0.6738701325551781"},"_hasShrinkwrap":false},"2.0.0":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.0.0","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.1","randexp":"^0.5.3","ulid":"^2.3.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"40dae26bee3bab52b32dd10b4a380bbda0d55454","_id":"zod-fixture@2.0.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-xNExG+fY4f4xt8BHimRDp/IrdjYeH0C0/BTTukAYAhdpKRm/ERHepKr/F+Zl2jofgkR9witqiNl46C/OZtekdA==","shasum":"d3e10b7b095d4eea4ab0d9b0ec9fd86b37d127bc","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.0.0.tgz","fileCount":43,"unpackedSize":89227,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDUUdr6obZP5fSTI++UKsAPiyBrBeu8YH8izpcc88XzWAiBkjS9ksbGKMVSokhm59L7mL2np1uzARQCzyFwljiBrcQ=="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.0.0_1689605768780_0.4277007679537361"},"_hasShrinkwrap":false},"2.1.0":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.1.0","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.1","randexp":"^0.5.3","ulid":"^2.3.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"130d8751c9ee5d5494f4e76266c8cd2641f088bc","_id":"zod-fixture@2.1.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-3LB9LWVkE8tCnv0Ttar4Ems8H63D4qmzIBAcVWjLa0JEaImqnPNWHnHTnAzCCNadOxryxrJSDoTPRp9+JQEVNg==","shasum":"a0f9cf460b439ec3b5b09077be7065b2f91bafef","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.1.0.tgz","fileCount":47,"unpackedSize":219576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAJ/fnWZJGvXHLbuKlOEcRC7rCFRZTW5TnZr7MiN+y3YAiAyY6XTcPru+NzuxkewQ5TWp/5MAyc/PAAszgQOUT9X2Q=="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.1.0_1689610023586_0.9194998082468431"},"_hasShrinkwrap":false},"2.1.1":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.1.1","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.1","randexp":"^0.5.3","ulid":"^2.3.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"183a6eb907fc32c0afab1e68a9e7aa2971d632c0","_id":"zod-fixture@2.1.1","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-JUy9y6fvyfqzMJFtlNZWCMOeseGWBBnFs+s4Vq2VXoGjhUDkJV0KBkekFt/s23zJ7nuCtFeccbl0DMTdpJn32A==","shasum":"8937ec354a51dfe7c3eb432e12ca5a1b428d342f","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.1.1.tgz","fileCount":47,"unpackedSize":222774,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICQKACxOZmKCO53e+Y2PQv/ptJlw3IZ9c/RT04U267uwAiEAmK3Jon5heoPLYevrigdI9RR5w4hv3O/zC4c/F5bVFFU="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.1.1_1689773329361_0.34382488909785835"},"_hasShrinkwrap":false},"2.1.2":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.1.2","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"@paralleldrive/cuid2":"^2.2.1","randexp":"^0.5.3","ulid":"^2.3.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"b75079a92a1b43c2cd367b4b29e0979e7a64aeaf","_id":"zod-fixture@2.1.2","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-ZVlhK/AYq7QkGLc3ZyL9mbAF8HJa7yJcpyxYsWOeqs4dEqEJJcCj2AUaZ4ASh9OFOh/SUHD1e/KNFgBTRXegOQ==","shasum":"1bcf6bad61e89da0faa158fbf7f715aee853139b","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.1.2.tgz","fileCount":48,"unpackedSize":223363,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9Id8iQDjc7BcaWfn3NnWe6R8MMfpjzMQuZd6WjD0BygIhAMNNen2Vl0LBLop1Eidc0jUeqGD2Ho20TExAOqkBE6yq"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.1.2_1689840086848_0.087469817286288"},"_hasShrinkwrap":false},"2.1.3":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.1.3","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"f8c8d4e9e8c9ea9e7a0535dd78606a0b3f4744e8","_id":"zod-fixture@2.1.3","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-DYO43WehgGcDQGwXnpv5yHW/e6pv8TBOyzsLcnUWeG9K/an2sblDSzahY+lx4aBATRDLc/bVS2V1dpkgnabW6g==","shasum":"a5fd65d52517c9f0a2aaac3d79babd17915a8c90","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.1.3.tgz","fileCount":47,"unpackedSize":225870,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQRo4c9gEPYzlIaWX9d100oWebjM0D81UC/b5Qf45PKAIhANzpNgQLb6YWWZnn7lyVxneQoWK/ea1moAQvWoLQ5klA"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.1.3_1689946805795_0.28518579339087746"},"_hasShrinkwrap":false},"2.1.4":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.1.4","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"12d855dec8ca9c29a0471ece3f7e946ef9ce7125","_id":"zod-fixture@2.1.4","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-AzLjw0MRRNlxIX0yifu3ZChTiZq88qipglzFmN2Xv1cH266ZQqFVA7JxsRt9MqPaO3aFGwFf9Oi+s8K24nYVGw==","shasum":"e22f4442e9d7714cab5386cf1824020987933311","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.1.4.tgz","fileCount":48,"unpackedSize":227493,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJcpE2NpnZoyyin9XM3aH1xuJbpIpeFS2JBy++g24YRAIhALCj8GYETHQ+8Q8OWQDabiCg5FCLKZQrKvpWhZ8r3ojC"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.1.4_1690032841781_0.5304145757416001"},"_hasShrinkwrap":false},"2.2.0":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.2.0","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"5f8bfebd8deec7364cc923b45a1a92d99facdd1c","_id":"zod-fixture@2.2.0","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-BOKwlmIKTNIGcL7Di3F1Pgxrih5CuP1s4cl9OPCwos6hfZoOesVdx/qmbc4WyEudM573po2msKfQ4d02ML5k/Q==","shasum":"843acfb27c8d9bdcecd0495a6179f505cdd01906","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.2.0.tgz","fileCount":48,"unpackedSize":228005,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGHD+fb4K3+3Cu0CF27tPFcoaWBJW3nQZ/g8/dtmnyWYAiEA5jSPwXmUZBph+POJ40+Ob59nId8bcKVmCT34cckblcY="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.2.0_1690359026026_0.6568182233939475"},"_hasShrinkwrap":false},"2.2.1":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.2.1","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"78039ecb050193bb8c11968b3b9c7de255ffeefe","_id":"zod-fixture@2.2.1","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-j/L5gI+dThI+t+FUJTbC1Q1kXEWsYOcYVgomqDyReOsCDK8D9h6HxLcIUCJEteycuC8J7N//+sHgEn98qwp71g==","shasum":"2a565a14b7ccd7657aa61e62d60adb3ab2e85a9f","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.2.1.tgz","fileCount":48,"unpackedSize":229171,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBBhReNF5gI859Em/LfGTwcGRRd9maOkbnX5Vtc4kZvRAiAoRiWW6a92seGj5xC2CsIzpDd5rwens0XcRj0MX5Hq1A=="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.2.1_1690466162364_0.02897855296374141"},"_hasShrinkwrap":false},"2.2.2":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.2.2","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"1a719e98f06d43461241ec8fc598220bfe21640d","_id":"zod-fixture@2.2.2","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-7a/CG49gh29G3qjO85mOeVNy0smeSOvf+WII/b0E1X3UElv+JK792NXyTc6L0M7vGBrQSMzMwZpm4rLzxLblrA==","shasum":"a89b3a81e54dc298ed59a1e4622c998ec536e25f","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.2.2.tgz","fileCount":48,"unpackedSize":229638,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDExy64dvk1cTSbhZoQEKfsyfaOB7Od9e9YusMwVeV9CwIgWMBAOQPaeVjTy7CNChRhVkSyuqW8iPKI2l8t/NNCMg0="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.2.2_1690472681570_0.47340137004523575"},"_hasShrinkwrap":false},"2.3.0":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.3.0","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","fixtures"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^2.8.8","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"ef70ae1461d9ecc2b4edbce52f128b74f6a6de28","_id":"zod-fixture@2.3.0","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-gdKW3U4iabfLRUDGuB41059MGqlUOwRrGfzeQW15OMwEOqG1NNyZnKarEYeeVuFub5+V8rbspd4BVoss2uLQpg==","shasum":"33c356d25d7fbdf0210e22bad0c8cbedc7c3357b","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.3.0.tgz","fileCount":49,"unpackedSize":230662,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGvT13pGmUARJzYd0DaoDmnuAchFTpOPaIDdZ0bZQGAaAiBr4Wolh+2ooBRUKuftVWAZsnkPyArpxJcs3eQGgeIbZQ=="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.3.0_1690907508423_0.8407187738503163"},"_hasShrinkwrap":false},"2.4.0":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.4.0","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","test","data","generator","random","fake","fixtures","contextual","stub","mock","schema","dummy"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^3.0.0","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"813cbbc746b516f43ef1322bb067c1db68245361","_id":"zod-fixture@2.4.0","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-wDnWG4X3zfElwtDmwvdY9RezBU0LmTFMFNtD0CD+PFGXbagRi5RHYz+usl5W4AzGNzY1W8kzJtSQe6hHooKn1g==","shasum":"92b7dab888c9334331b074fa287aec5a94c36848","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.4.0.tgz","fileCount":49,"unpackedSize":110246,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNQcLS6YqSLQXoisYwCiV0Xja9liQf3vYT+iAZT/uoaQIgSvUPaWjhseZxpBqCyYcp1X8W7/UdMnmGb65/e+ZXMWo="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.4.0_1691327974045_0.7524270713441179"},"_hasShrinkwrap":false},"2.4.1":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.4.1","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","test","data","generator","random","fake","fixtures","contextual","stub","mock","schema","dummy"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^3.0.0","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"58cfcf475e3aa3a09c4a71795d5456a1fe1df3fe","_id":"zod-fixture@2.4.1","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-zKPaf9q1csqtzWcUiXt33fNM7Sf5utvEeuaX6rWBoFF8YJU6y5Ac3TK9udggY67fBRiAFICNeltm28AFD/H+nQ==","shasum":"81bc54ce48b21e469c753143983fa197610d46ef","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.4.1.tgz","fileCount":49,"unpackedSize":110246,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD35ut/Rw7IuvK2ONN36opIiGT2kk8hMCmvt47hLrzdzQIhAI+aQunEwBWMPIyAUTNxJ9kVlEkY4ElYSi2kBUiHK4Vy"}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.4.1_1691518533121_0.43198314444388597"},"_hasShrinkwrap":false},"2.4.2":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.4.2","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","test","data","generator","random","fake","fixtures","contextual","stub","mock","schema","dummy"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^3.0.0","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.21.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"a228ab84b5d90c9a0f3e421064c60c10981b92bd","_id":"zod-fixture@2.4.2","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-/4mg+RHu+GqftGbJbFu1KtXWuwMeyv2n7fApwpLmosQ1IAXCJe5ybqYkOPq/gcZerZw5eLylNbZQO41DihyNww==","shasum":"666e2626fafe47e3b2bd52b146c9caa5d6d15356","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.4.2.tgz","fileCount":49,"unpackedSize":110258,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNaLg0DsHS8Qr9lSmlWKzKWmW7tFi19Cl/5sUhOiXPdAiB+fr0RFN73MG9BSbqI01gMWLiNfpb4KIFqrX37Ys+aDA=="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.4.2_1691599730546_0.3076498564378882"},"_hasShrinkwrap":false},"2.5.0":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.5.0","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.5.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","type":"module","keywords":["zod","test","data","generator","random","fake","fixtures","contextual","stub","mock","schema","dummy"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","@vitest/coverage-c8":"^0.30.1","@vitest/ui":"^0.31.4","c8":"^7.14.0","eslint":"^8.45.0","eslint-config-prettier":"^8.8.0","lint-staged":"^13.2.3","minimist":"^1.2.8","prettier":"^3.0.0","typescript":"^5.1.6","vite":"^4.4.4","vite-plugin-dts":"^1.7.3","vitepress":"^1.0.0-beta.3","vitest":"^0.31.4","zod":"^3.22.0"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"gitHead":"8ad1d25d86d8ada1c84aede68d9fe39ab81b0261","_id":"zod-fixture@2.5.0","_nodeVersion":"18.17.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-lMQcUI5RC9zdkU26RUaOTDsUo1xWHEHtkVrERn6Cs/sRe+s/0qzltHQlRZMwYuvGh5SGPRI3Xy4eOToVJCj9sQ==","shasum":"ebeff7caee981eca012f88ac2727de0dffffe642","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.5.0.tgz","fileCount":50,"unpackedSize":111229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIETeey6y1ZRjYjv3lzLejSK/x1lRXZa0gKYIj0t3/7lZAiEAmnKY0AL6oS/Keg+OaQuP3d9sCxK9WjAES7t1tH2h1V4="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.5.0_1692290497958_0.9245564689759342"},"_hasShrinkwrap":false},"2.5.1":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.5.1","description":"Creating fixtures based on zod schemas","packageManager":"npm@9.9.0","scripts":{"start":"vite -c vite.lib.config.ts","test":"vitest run -c vite.lib.config.ts","test:watch":"vitest -c vite.lib.config.ts","test:ui":"vitest -c vite.lib.config.ts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.ts","build":"vite build -c vite.lib.config.ts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme.mjs","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","keywords":["zod","test","data","generator","random","fake","fixtures","contextual","stub","mock","schema","dummy"],"author":{"name":"Tim Deschryver"},"license":"MIT","peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^6.7.5","@typescript-eslint/parser":"^6.7.5","@vitest/coverage-v8":"^0.34.6","@vitest/ui":"^0.34.6","eslint":"^8.51.0","eslint-config-prettier":"^9.0.0","lint-staged":"^14.0.1","minimist":"^1.2.8","prettier":"^3.0.3","typescript":"^5.2.2","vite":"^4.4.11","vite-plugin-dts":"^3.6.0","vitepress":"^1.0.0-rc.21","vitest":"^0.34.6","zod":"^3.22.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"_id":"zod-fixture@2.5.1","gitHead":"e6ca692e9cc0bc87efe8c9bb61cbab5dcaabbe73","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-qjLe9TbZL22+MVMovGc6pB7O/7iXwquS4hXX3YImYzZ1p8FN3XEpYzjfR86dDQwBs/mf/jyYjwibPXktzXEljA==","shasum":"dd46683d20e57a60367a83d19b37c3839998634d","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.5.1.tgz","fileCount":51,"unpackedSize":111001,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3Z4aasSuh4B3/4xoCtxVaIC/XaRx0Cy8w4wS+j1AnCAiEAxrApvYJGxOMjDfoBQMivo+FyD55aDGvOJBSgtK6e84o="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.5.1_1701457499584_0.8966063553016028"},"_hasShrinkwrap":false},"2.5.2":{"$schema":"https://json.schemastore.org/package","name":"zod-fixture","version":"2.5.2","description":"Creating fixtures based on zod schemas","packageManager":"npm@10.2.5","scripts":{"start":"vite -c vite.lib.config.mts","test":"vitest run -c vite.lib.config.mts","test:watch":"vitest -c vite.lib.config.mts","test:ui":"vitest -c vite.lib.config.mts --ui","test:coverage":"vitest run --coverage -c vite.lib.config.mts","build":"vite build -c vite.lib.config.mts","lint":"eslint . --max-warnings 0","prepare":"git config core.hookspath .githooks","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","readme:generate":"node ./scripts/readme.mjs","readme:check":"git diff --name-only --exit-code README.md"},"main":"./dist/zod-fixture.umd.cjs","module":"./dist/zod-fixture.es.js","exports":{".":{"import":"./dist/zod-fixture.es.js","require":"./dist/zod-fixture.umd.cjs","types":"./dist/public.d.ts"}},"types":"./dist/public.d.ts","keywords":["zod","test","data","generator","random","fake","fixtures","contextual","stub","mock","schema","dummy"],"author":{"name":"Tim Deschryver"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/timdeschryver/zod-fixture.git"},"bugs":{"url":"https://github.com/timdeschryver/zod-fixture/issues"},"homepage":"https://zod-fixture.timdeschryver.dev/","private":false,"sideEffects":false,"peerDependencies":{"zod":">=3.0.0"},"dependencies":{"randexp":"^0.5.3"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","@vitest/coverage-v8":"^1.1.1","@vitest/ui":"^1.1.1","eslint":"^8.56.0","eslint-config-prettier":"^9.1.0","lint-staged":"^15.2.0","minimist":"^1.2.8","prettier":"^3.1.1","typescript":"^5.3.3","vite":"^5.0.10","vite-plugin-dts":"^3.7.0","vitepress":"^1.0.0-rc.34","vitest":"^1.1.1","zod":"^3.22.4"},"imports":{"@/*":"./src/*","zod-fixture":["./src/public.ts"]},"_id":"zod-fixture@2.5.2","gitHead":"73bbb920d6acf6fc9a9f88909afb6ba962656db9","_nodeVersion":"18.19.1","_npmVersion":"10.2.4","dist":{"integrity":"sha512-JipX1OVrKA3QSdx/k29sK9zocFM8mvdFHu8Wt0htrJ5ZlE8vcmnNfT9iKXMjjc3Hqy8btWtPyP4e03D0IxpVxg==","shasum":"ec00b2227e89535d48a0e20e4bd67515f9fb2735","tarball":"https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.5.2.tgz","fileCount":51,"unpackedSize":111280,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFVAZfpw7iSNI2ej3ndu5kv39IlbooeCXCg+T+vPxwahAiEAzpfTKICUHKR54ZjVG2pt3NzURnKp3Tl7k/Ex0jspmrw="}]},"_npmUser":{"name":"timdeschryver","email":"timdeschryver@outlook.com"},"directories":{},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/zod-fixture_2.5.2_1709995659548_0.8768898425511307"},"_hasShrinkwrap":false}},"time":{"created":"2022-08-06T18:14:06.974Z","1.0.0":"2022-08-06T18:14:07.165Z","modified":"2024-03-09T14:47:40.528Z","1.0.1":"2022-10-01T17:43:14.915Z","1.0.2":"2022-10-25T13:05:55.403Z","1.1.0":"2023-04-29T10:00:38.451Z","1.2.0":"2023-04-29T10:44:23.341Z","1.3.0":"2023-05-01T12:59:33.435Z","1.4.0":"2023-05-01T13:06:32.609Z","1.5.0":"2023-05-01T13:14:12.362Z","1.6.0":"2023-05-01T16:23:32.176Z","1.6.1":"2023-05-02T15:43:22.439Z","1.7.0":"2023-05-12T17:38:06.007Z","1.8.0":"2023-05-31T06:45:04.354Z","1.9.0":"2023-06-12T16:43:03.836Z","2.0.0-beta.1":"2023-06-22T02:19:48.185Z","2.0.0-beta.2":"2023-06-24T18:57:10.591Z","2.0.0-beta.3":"2023-06-27T06:28:09.345Z","1.10.0":"2023-06-27T17:23:51.025Z","2.0.0-beta.4":"2023-06-28T16:45:24.493Z","2.0.0-beta.5":"2023-06-28T17:54:51.236Z","2.0.0-beta.6":"2023-06-28T17:57:40.093Z","2.0.0-beta.7":"2023-07-01T06:46:50.885Z","2.0.0-beta.8":"2023-07-10T13:21:04.422Z","2.0.0-beta.9":"2023-07-11T09:28:59.795Z","2.0.0-beta.10":"2023-07-11T09:34:37.913Z","1.11.0":"2023-07-12T07:18:31.032Z","2.0.0-beta.11":"2023-07-13T06:24:44.273Z","2.0.0-beta.12":"2023-07-13T07:06:23.658Z","2.0.0-beta.13":"2023-07-14T07:22:30.249Z","2.0.0-beta.14":"2023-07-15T18:51:45.429Z","2.0.0-beta.15":"2023-07-17T05:59:19.309Z","2.0.0-beta.16":"2023-07-17T09:18:11.888Z","2.0.0":"2023-07-17T14:56:09.041Z","2.1.0":"2023-07-17T16:07:03.944Z","2.1.1":"2023-07-19T13:28:49.598Z","2.1.2":"2023-07-20T08:01:27.069Z","2.1.3":"2023-07-21T13:40:05.996Z","2.1.4":"2023-07-22T13:34:02.013Z","2.2.0":"2023-07-26T08:10:26.221Z","2.2.1":"2023-07-27T13:56:02.556Z","2.2.2":"2023-07-27T15:44:41.738Z","2.3.0":"2023-08-01T16:31:48.622Z","2.4.0":"2023-08-06T13:19:34.208Z","2.4.1":"2023-08-08T18:15:33.311Z","2.4.2":"2023-08-09T16:48:50.728Z","2.5.0":"2023-08-17T16:41:38.124Z","2.5.1":"2023-12-01T19:04:59.798Z","2.5.2":"2024-03-09T14:47:39.700Z"},"maintainers":[{"name":"timdeschryver","email":"timdeschryver@outlook.com"}],"description":"Creating fixtures based on zod schemas","keywords":["zod","test","data","generator","random","fake","fixtures","contextual","stub","mock","schema","dummy"],"author":{"name":"Tim Deschryver"},"license":"MIT","readme":"<!-- DO NOT EDIT DIRECTLY -->\n<!-- This file is autogenerated from https://github.com/timdeschryver/zod-fixture/edit/main/docs/index.md -->\n<h1 align=\"center\">Zod Fixture</h1>\n<p align=\"center\">Fixture Generation with 1:1 Zod Parity</p>\n<br>\n<p align=\"center\" style=\"display: flex; gap: .5em; justify-content: center\">\n\t<a href=\"https://badge.fury.io/js/zod-fixture\"><img src=\"https://badge.fury.io/js/zod-fixture.svg\" alt=\"npm version\" height=\"18\"></a>\n\t<a href=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml\"><img src=\"https://github.com/timdeschryver/zod-fixture/actions/workflows/ci.yaml/badge.svg?branch=main\"></a>\n\t<a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/license/timdeschryver/zod-fixture\" alt=\"License\"></a>\n\t<a href=\"https://www.npmjs.com/package/zod-fixture\" rel=\"nofollow\"><img src=\"https://img.shields.io/github/stars/timdeschryver/zod-fixture\" alt=\"stars\"></a>\n</p>\n<br>\n<p align=\"center\">\nCreating test fixtures should be easy.<br>\n<a href=\"https://github.com/timdeschryver/zod-fixture\">zod-fixture</a> helps with the arrange phase of your tests by creating test fixtures based on a <a href=\"https://zod.dev/\">zod</a> schema.\n</p>\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Customizing](#customizing)\n  - [Extending](#extending)\n  - [Generators](#generators)\n    - [Schema](#schema)\n    - [Filtering](#filtering)\n      - [Filter by Check](#filter-by-check)\n      - [Filter by Key](#filter-by-key)\n    - [Output](#output)\n- [FAQ](#faq)\n  - [I have a custom type that I need to support. How do I do that?](#i-have-a-custom-type-that-i-need-to-support-how-do-i-do-that)\n  - [`z.instanceof` isn't returning what I expected. What gives?](#zinstanceof-isnt-returning-what-i-expected-what-gives)\n  - [Do you support faker/chance/falso?](#do-you-support-fakerchancefalso)\n- [API](#api)\n  - [Fixture](#fixture)\n    - [Config](#config)\n      - [Seed (optional)](#seed-optional)\n- [Advanced Topics](#advanced-topics)\n  - [Create Your Own Transformer](#create-your-own-transformer)\n- [Migration Guide](#migration-guide)\n  - [v1 to v2](#v1-to-v2)\n    - [Why a rewrite?](#why-a-rewrite)\n    - [Breaking changes](#breaking-changes)\n      - [createFixture](#createfixture)\n      - [Customization](#customization)\n      - [Configuring the fixture](#configuring-the-fixture)\n- [Contributing](#contributing)\n  - [Getting started with GitHub Codespaces](#getting-started-with-github-codespaces)\n  - [StackBlitz](#stackblitz)\n- [Blog posts](#blog-posts)\n- [Credits](#credits)\n\n## Installation\n\n```sh [npm]\nnpm install -D zod-fixture\n```\n\n```sh [pnpm]\npnpm add -D zod-fixture\n```\n\n```sh [yarn]\nyarn add -D zod-fixture\n```\n\n```sh [bun]\nbun add -d zod-fixture\n```\n\n## Getting Started\n\nThe easiest way to start using `zod-fixture` is to import the pre-configured `createFixture` function.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/main/examples/fixture-person.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { createFixture } from 'zod-fixture';\n\nconst personSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst person = createFixture(personSchema, { seed: 11 });\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/main/examples/fixture-person.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'd-iveauywljfifd',\n\t\tstate: 'cetuqnbvmbkqwlt',\n\t\tstreet: 'wyttcnyvxpetrsa',\n\t},\n\tbirthday: new Date('2089-04-19T20:26:28.411Z'),\n\tname: 'barmftzlcngaynw',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'fbmiabahyvsy-vm',\n\t\t\tname: 'bonzm-sjnglvkbb',\n\t\t},\n\t\t{\n\t\t\tbreed: 'vifsztjznktjkve',\n\t\t\tname: 'wqbjuehl-trb-ai',\n\t\t},\n\t\t{\n\t\t\tbreed: 'cq-jcmhccaduqmk',\n\t\t\tname: 'brrvbrgzmjhttzh',\n\t\t},\n\t],\n\ttotalVisits: 63,\n},\n\n```\n\n> [!NOTE]\n>\n> The examples make use of the optional [seed](#seed-optional) parameter to generate the same fixture every time. This is useful for our docs, deterministic testing, and to reproduce issues, but is not necessary in your code. Simply calling `createFixture` with no configuration is acceptable.\n\nTake a look at the [examples](https://github.com/timdeschryver/zod-fixture/tree/main/examples) to see how you can use `zod-fixture` in your tests.\n\n## Customizing\n\n`zod-fixture` is highly customizable. We provide you with the same utility methods we use internally to give you fine-grained support for creating your own fixtures.\n\n### Extending\n\nThe easiset way to start customizing `zod-fixture` is to use the `Fixture` class directly and extend it with your own [generator](#generators).\n\n> [!NOTE]\n>\n> `createFixture(...)` is just syntactic sugar for `new Fixture().fromSchema(...)`\n\nThe example below uses 2 custom generators and a typical pattern for filtering based on the keys of an object.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/main/examples/fixture-extension.test.ts)</sub>\n\n```ts\nimport { ZodNumber, ZodObject, z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\tfilter: ({ context }) => context.path.at(-1) === 'totalVisits',\n\t/**\n\t * The `context` provides a path to the current field\n\t *\n\t * {\n\t *   totalVisits: ...,\n\t *   nested: {\n\t *     totalVisits: ...,\n\t *   }\n\t * }\n\t *\n\t * Would match twice with the following paths:\n\t *   ['totalVisits']\n\t *   ['nested', 'totalVisits']\n\t */\n\n\t// returns a more realistic number of visits.\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\t// returns a custom address object\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n\nconst personSchema = z.object({\n\tname: z.string(),\n\tbirthday: z.date(),\n\taddress: z.object({\n\t\tstreet: z.string(),\n\t\tcity: z.string(),\n\t\tstate: z.string(),\n\t}),\n\tpets: z.array(z.object({ name: z.string(), breed: z.string() })),\n\ttotalVisits: z.number().int().positive(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\taddressGenerator,\n\ttotalVisitsGenerator,\n]);\nconst person = fixture.fromSchema(personSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/main/examples/fixture-extension.test.ts)</sub>\n\n```ts\n{\n\taddress: {\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t\tstreet: 'My Street',\n\t},\n\tbirthday: new Date('1952-01-21T17:32:42.094Z'),\n\tname: 'yxyzyskryqofekd',\n\tpets: [\n\t\t{\n\t\t\tbreed: 'dnlwozmxaigobrz',\n\t\t\tname: 'vhvlrnsxroqpuma',\n\t\t},\n\t\t{\n\t\t\tbreed: 'ifbgglityarecl-',\n\t\t\tname: 'c-lmtvotjcevmyi',\n\t\t},\n\t\t{\n\t\t\tbreed: 'fmylchvprjdgelk',\n\t\t\tname: 'ydevqfcctdx-lin',\n\t\t},\n\t],\n\ttotalVisits: 15,\n},\n\n```\n\n> [!IMPORTANT]\n>\n> The order the registered generators matters. The first generator that matches the conditions (`schema` and `filter`) is used to create the value.\n\n### Generators\n\nTo generate a value based on a zod type we're using what we call a `Generator`.\n\nA `Generator` has 3 fundamental parts:\n\n- [schema](#schema) -- [optional] the zod type to match\n- [filter](#filtering) -- [optional] a function to further refine our match (ie filtering by keys or zod checks)\n- [output](#output) -- a function that's called to produce the fixture\n\n#### Schema\n\nA schema can be provided in the following ways:\n\n- A zod type constructor (ie `ZodString`)\n- An instance of a type (ie `z.custom()`)\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/main/examples/generator-schema-matching.test.ts)</sub>\n\n```ts\nimport { z, ZodString } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\n// this is a custom zod type\nconst pxSchema = z.custom<`${number}px`>((val) => {\n\treturn /^\\d+px$/.test(val as string);\n});\n\nconst StringGenerator = Generator({\n\tschema: ZodString,\n\toutput: () => 'John Doe',\n});\n\nconst PixelGenerator = Generator({\n\tschema: pxSchema,\n\toutput: () => '100px',\n});\n\nconst developerSchema = z.object({\n\tname: z.string().max(10),\n\tresolution: z.object({\n\t\theight: pxSchema,\n\t\twidth: pxSchema,\n\t}),\n});\n\nconst fixture = new Fixture({ seed: 7 }).extend([\n\tPixelGenerator,\n\tStringGenerator,\n]);\nconst developer = fixture.fromSchema(developerSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/main/examples/generator-schema-matching.test.ts)</sub>\n\n```ts\n{\n\tname: 'John Doe',\n\tresolution: {\n\t\theight: '100px',\n\t\twidth: '100px',\n\t},\n}\n\n```\n\n#### Filtering\n\nIn addition to matching schemas, `zod-fixture` provides robust tools for filtering, allowing you to further narrow the matches for your generator. There are two common patterns for filtering.\n\n##### Filter by Check\n\nIn the case where you use a `zod` method like `z.string().email()`, `zod` adds what they call a \"check\" to the definition. These are additional constraints that are checked during parsing that don't conform to a Typescript type. (ie TS does not have the concept of an email, just a string). `zod-fixture` provides a type safe utility called `checks` for interacting with these additional constraints.\n\nThere are two methods provided by the `checks` utility:\n\n- `has` -- returns a boolean letting you know if a particular check exists on the schema.\n- `find` -- returns the full definition of a check, which can be useful for generating output.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/main/examples/generator-filtering-zod-checks.test.ts)</sub>\n\n```ts\nimport { z, ZodString } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst EmailGenerator = Generator({\n\tschema: ZodString,\n\tfilter: ({ transform, def }) =>\n\t\ttransform.utils.checks(def.checks).has('email'),\n\toutput: () => 'john.malkovich@gmail.com',\n});\n\nconst StringGenerator = Generator({\n\tschema: ZodString,\n\toutput: ({ transform, def }) => {\n\t\tlet min = transform.utils.checks(def.checks).find('min')?.value;\n\t\t/**\n\t\t *     kind: \"min\";\n\t\t *     value: number;\n\t\t *     message?: string | undefined; // a custom error message\n\t\t */\n\n\t\tlet max = transform.utils.checks(def.checks).find('max')?.value;\n\t\t/**\n\t\t *     kind: \"max\";\n\t\t *     value: number;\n\t\t *     message?: string | undefined; // a custom error message\n\t\t */\n\n\t\tconst length = transform.utils.checks(def.checks).find('length');\n\t\t/**\n\t\t *     kind: \"length\";\n\t\t *     value: number;\n\t\t *     message?: string | undefined; // a custom error message\n\t\t */\n\n\t\tif (length) {\n\t\t\tmin = length.value;\n\t\t\tmax = length.value;\n\t\t}\n\n\t\treturn transform.utils.random.string({ min, max });\n\t},\n});\n\nconst personSchema = z.object({\n\tname: z.string().max(10),\n\temail: z.string().email(),\n});\n\nconst fixture = new Fixture({ seed: 38 }).extend([\n\tEmailGenerator,\n\tStringGenerator,\n]);\nconst person = fixture.fromSchema(personSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/main/examples/generator-filtering-zod-checks.test.ts)</sub>\n\n```ts\n{\n\temail: 'john.malkovich@gmail.com',\n\tname: 'yxyzyskryq',\n},\n\n```\n\n##### Filter by Key\n\nMatching keys of an object is another common pattern and a bit tricky if you don't give it enough thought. Every generator is called with a `context` and that context includes a `path`. The path is an array of keys that got us to this value. Generally speaking, you will only want the last key in the path for matching things like \"name\", \"email\", \"age\", etc in a deeply nested object.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/main/examples/generator-filtering-key-match.test.ts)</sub>\n\n```ts\nimport { z, ZodString } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nconst NameGenerator = Generator({\n\tschema: ZodString,\n\tfilter: ({ context }) => context.path.at(-1) === 'name',\n\toutput: () => 'John Doe',\n});\n\nconst personSchema = z.object({\n\tname: z.string(), // this matches ['name']\n\temail: z.string().email(),\n\trelatives: z\n\t\t.object({\n\t\t\tname: z.string(), // this will match as well ['relatives', 'name']\n\t\t\temail: z.string().email(),\n\t\t})\n\t\t.array(),\n});\n\nconst fixture = new Fixture({ seed: 7 }).extend(NameGenerator);\nconst person = fixture.fromSchema(personSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/main/examples/generator-filtering-key-match.test.ts)</sub>\n\n```ts\n{\n\temail: 'rando@email.com',\n\tname: 'John Doe',\n\trelatives: [\n\t\t{\n\t\t\temail: 'rando@email.com',\n\t\t\tname: 'John Doe',\n\t\t},\n\t\t{\n\t\t\temail: 'rando@email.com',\n\t\t\tname: 'John Doe',\n\t\t},\n\t\t{\n\t\t\temail: 'rando@email.com',\n\t\t\tname: 'John Doe',\n\t\t},\n\t],\n}\n\n```\n\n#### Output\n\nOutput is a function that generates the fixture for any matches. `zod-fixture` provides a randomization utility for creating data, in addition to all of the defaults (including the seed).\n\nFor example, in the example below we create our own `totalVisitsGenerator` to return more realastic numbers using the `random` utilities.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/main/examples/fixture-extension.test.ts)</sub>\n\n```ts\nconst totalVisitsGenerator = Generator({\n\tschema: ZodNumber,\n\tfilter: ({ context }) => context.path.at(-1) === 'totalVisits',\n\t/**\n\t * The `context` provides a path to the current field\n\t *\n\t * {\n\t *   totalVisits: ...,\n\t *   nested: {\n\t *     totalVisits: ...,\n\t *   }\n\t * }\n\t *\n\t * Would match twice with the following paths:\n\t *   ['totalVisits']\n\t *   ['nested', 'totalVisits']\n\t */\n\n\t// returns a more realistic number of visits.\n\toutput: ({ transform }) => transform.utils.random.int({ min: 0, max: 25 }),\n});\n```\n\n## FAQ\n\n### I have a custom type that I need to support. How do I do that?\n\n`zod-fixture` was built with this in mind. Simply define your custom type using zod's `z.custom` and pass the resulting schema to your custom generator.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/main/examples/custom-type.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\n// Your custom type\nconst pxSchema = z.custom<`${number}px`>((val) => {\n\treturn /^\\d+px$/.test(val as string);\n});\n\n// Your custom generator\nconst PixelGenerator = Generator({\n\tschema: pxSchema,\n\toutput: () => '100px',\n});\n\n// Example\nconst resolutionSchema = z.object({\n\twidth: pxSchema,\n\theight: pxSchema,\n});\n\nconst fixture = new Fixture().extend([PixelGenerator]);\nconst resolution = fixture.fromSchema(resolutionSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/main/examples/custom-type.test.ts)</sub>\n\n```ts\n{\n\twidth: '100px',\n\theight: '100px',\n}\n\n```\n\n### `z.instanceof` isn't returning what I expected. What gives?\n\n`z.instanceof` is one of the few schemas that doesn't have first party support in `zod`. It's technically a `z.custom` under the hood, which means the only way to match is for you to create a custom generator and pass an instance of it as your schema.\n\n<sub>[Example](https://github.com/timdeschryver/zod-fixture/tree/main/examples/instanceof-type.test.ts)</sub>\n\n```ts\nimport { z } from 'zod';\nimport { Fixture, Generator } from 'zod-fixture';\n\nclass ExampleClass {\n\tid: number;\n\tconstructor() {\n\t\tthis.id = ExampleClass.uuid++;\n\t}\n\tstatic uuid = 1;\n}\n\n// Schema from instanceof (remember, this is just a z.custom)\nconst exampleSchema = z.instanceof(ExampleClass);\n\n// Your custom generator\nconst ExampleGenerator = Generator({\n\tschema: exampleSchema,\n\toutput: () => new ExampleClass(),\n});\n\n// Example\nconst listSchema = z.object({\n\texamples: exampleSchema.array(),\n});\n\nconst fixture = new Fixture().extend(ExampleGenerator);\nconst result = fixture.fromSchema(listSchema);\n```\n\n<sub>[Output](https://github.com/timdeschryver/zod-fixture/tree/main/examples/instanceof-type.test.ts)</sub>\n\n```ts\n{\n\texamples: [\n\t\t{\n\t\t\tid: 1,\n\t\t},\n\t\t{\n\t\t\tid: 2,\n\t\t},\n\t\t{\n\t\t\tid: 3,\n\t\t},\n\t],\n}\n\n```\n\n### Do you support faker/chance/falso?\n\nThe short answer, not yet. We plan to build out pre-defined generators for popular mocking libraries but are currently prioritizing reliability and ease of use. If you'd like to help us build out this functionality, feel free to open a pull request 😀\n\n## API\n\n### Fixture\n\n> [!NOTE]\n>\n> `Fixture` is a `Transformer` that comes prepackaged with generators for each of the first party types that Zod provides. For most cases, this is all you wil need, and offers a fast and easy way to create fixtures. For building a custom `Transformer` refer to the [Advanced](#advanced-topics) documentation.\n\n#### Config\n\nWe provide sane defaults for the random utilities used by our generators, but these can easily be customized.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/main/src/transformer/defaults.ts)</sub>\n\n```ts\ninterface Defaults {\n\tseed?: number;\n\tarray: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tmap: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tset: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tint: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tfloat: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tbigint: {\n\t\tmin: bigint;\n\t\tmax: bigint;\n\t};\n\tdate: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tstring: {\n\t\tmin: number;\n\t\tmax: number;\n\t\tcharacterSet: string;\n\t};\n\trecursion: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n}\n```\n\n##### Seed (optional)\n\nA seed can be provided to produce the same results every time.\n\n```ts\nconst fixture = new Fixture({ seed: number });\n```\n\n## Advanced Topics\n\n### Create Your Own Transformer\n\nInstead of using one of the opinionated `Fixture`s, you can extend the unopinionated `Transformer` and register the desired generators.\n\n<sub>[Source](https://github.com/timdeschryver/zod-fixture/tree/main/examples/transformer.test.ts)</sub>\n\n```ts\nimport { ConstrainedTransformer, UnconstrainedTransformer } from 'zod-fixture';\n\n/**\n * Constrained defaults\n *\n * {\n *   array: {\n *     min: 3,\n *     max: 3,\n *   },\n *   // ...\n *   string: {\n *     min: 15,\n *     max: 15,\n *     characterSet: 'abcdefghijklmnopqrstuvwxyz-',\n *   }\n * }\n */\nnew ConstrainedTransformer().extend([\n\t/* insert your generators here */\n]);\n\n/**\n * Less constrained. Better for mocking APIs.\n */\nnew UnconstrainedTransformer().extend([\n\t/* insert your generators here */\n]);\n```\n\n## Migration Guide\n\n### v1 to v2\n\nThe v2 version is a total rewrite of v1.\nThanks for all the help [@THEtheChad](https://twitter.com/thethechad) 🤝\n\n#### Why a rewrite?\n\nv1 was flexible and allowed that multiple validation libraries could be supported in the future.\nBut, this made things more complex and I don't think we intended to add more libraries than `zod`.\n\nv2 is a full-on `zod` version.\nThis benefits you because we make more use of zod's schema while creating fixtures.\nFor example, when you want to create a custom generator (previously a customization) you can also access zod's schema definition.\n\n> Fixture Generation with 1:1 Zod Parity\n\n#### Breaking changes\n\n##### createFixture\n\n`createFixture` still exists, but it could be that it generated its output with a slightly different output.\nIt still is compatible (even more compatible) with zod's schema.\nFor example, the changes to a string output:\n\nBEFORE:\n\n```\nstreet-a088e991-896e-458c-bbbd-7045cd880879\n```\n\nAFTER:\n\n```\nfbmiabahyvsy-vm\n```\n\n`createFixture` uses a pre-configured `Fixture` instance, which cannot be customized anymore.\nTo create a custom fixture in v2, you need to create your own `Fixture` instance, for more info see the [docs](#customizing).\n\n##### Customization\n\n`Customization` is renamed to `Generator`.\n\nBEFORE:\n\n```ts\nconst addressCustomization: Customization = {\n\tcondition: ({ type, propertName }) =>\n\t\ttype === 'object' && propertName === 'address',\n\tgenerator: () => {\n\t\treturn {\n\t\t\tstreet: 'My Street',\n\t\t\tcity: 'My City',\n\t\t\tstate: 'My State',\n\t\t};\n\t},\n};\n```\n\nAFTER:\n\n```ts\nconst addressGenerator = Generator({\n\tschema: ZodObject,\n\tfilter: ({ context }) => context.path.at(-1) === 'address',\n\toutput: () => ({\n\t\tstreet: 'My Street',\n\t\tcity: 'My City',\n\t\tstate: 'My State',\n\t}),\n});\n```\n\n##### Configuring the fixture\n\nTo add custom generators to the fixture, you need to create your own fixture instance and [extend](#extending) it with your own generators.\n\nBEFORE:\n\n```ts\nconst person = createFixture(PersonSchema, {\n\tcustomizations: [addressCustomization],\n});\n```\n\nAFTER:\n\n```ts\nconst fixture = new Fixture().extend([addressGenerator]);\nconst person = fixture.fromSchema(personSchema);\n```\n\n## Contributing\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=515959275)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with software needed for this project.\n\n**Note**: Dev containers is an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### StackBlitz\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/vitejs-vite-4nsv9h?file=src/preview.ts)\n\n## Blog posts\n\n- [Why we should verify HTTP response bodies, and why we should use zod for this](https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this)\n- [How zod-fixture can help with your test setups](https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups)\n- [Using zod-fixture with MSW to generate mocked API responses](https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses)\n\n## Credits\n\nThis package is inspired on [AutoFixture](https://github.com/AutoFixture/AutoFixture).\n","readmeFilename":"README.md","homepage":"https://zod-fixture.timdeschryver.dev/","repository":{"type":"git","url":"git+https://github.com/timdeschryver/zod-fixture.git"},"bugs":{"url":"https://github.com/timdeschryver/zod-fixture/issues"}}